Ponto de Entrada
Descrição: | Este ponto de entrada está localizado no fonte de funções gerais VEIFUNA.PRW. O ponto de entrada é executado no momento em que a checagem do crédito do cliente é executado em diversas rotinas do sistema. Tem como objetivo estabelecer uma personalização de regras para realização da análise e exibição ou não da janela com as informações financeiras do cliente, independente do processamento do padrão. |
Parâmetros: | N/A |
Eventos: | Function FG_CKCLINI(cCliLoj,lRetorno,lSemMos) Local aArea := {} Local lAtual := .f. Local OXFig Local lMostra := .f. Local cHrMin := left(time(),5) Local cPRW := FunName() Local aTit := {{"","","",CtoD(""),CtoD(""),0}} Local nValor := 0 Local cQuery := "" Local cAliasSE1 := "SQLSE1" Local aFilAtu := FWArrFilAtu() Local aSM0 := FWAllFilial( aFilAtu[3] , aFilAtu[4] , aFilAtu[1] , .f. ) Local cBkpFilAnt:= cFilAnt Local nCont := 0 DEFAULT lSemMos := .f. // Mostra sempre, independente do Parametro MV_CKCLINR DEFAULT lRetorno := .t.
DEFINE FONT oFCliNIR NAME "Arial" SIZE 08,15 BOLD dbSelectArea("SX6") dbSetOrder(1) lMostra := Getmv("MV_CKCLIXX",.T.)
If lMostra // Salva posicoes originais dos Arquivos aArea := sGetArea(aArea,"VCF") aArea := sGetArea(aArea,"VCB") aArea := sGetArea(aArea,"SA1") aArea := sGetArea(aArea,"VAI") If !Empty(Alias()) aArea := sGetArea(aArea,Alias()) EndIf
DbSelectArea("SA1") DbSetOrder(1) DbSeek(xFilial("SA1") + cCliLoj ) // lMosTelaPE := .f. // If ( ExistBlock("VFATECLI") ) lMosTelaPE := ExecBlock("VFATECLI",.f.,.f.,{lMosTelaPE}) EndIf If Alltrim(GetMV("MV_CKCLIXX")) # Alltrim( cPRW +" "+ cHrMin +" "+ __CUSERID +" "+ cCliLoj ) DbSelectArea("VCF") DbSetOrder(1) If DbSeek( xFilial("VCF") + cCliLoj ) // Posiciona nos dados do Cliente If VCF->VCF_NIVIMP $ GetNewPar("MV_CKCLINI","AA") // Verifica o nivel do Cliente se esta no Parametro lAtual := .t. DbSelectArea("VCB") DbSetOrder(1) DbSeek(xFilial("VCB") + VCF->VCF_AREVEN ) DbSelectArea("VAI") DbSetOrder(4) DbSeek( xFilial("VAI") + __CUSERID ) DEFINE MSDIALOG oCliNI FROM 000,000 TO 011,055 TITLE (STR0180+VCF->VCF_NIVIMP) OF oMainWnd @ 016,015 SAY VAI->VAI_NOMUSU SIZE 180,08 OF oCliNI PIXEL COLOR CLR_RED FONT oFCliNIR DEFINE SBUTTON FROM 013,333 TYPE 15 ENABLE OF oCliNI // Botao VISUALIZAR DEFINE SBUTTON FROM 013,175 TYPE 1 ACTION (oCliNI:End()) ENABLE OF oCliNI // Botao OK @ 033,015 SAY (STR0181+"( "+VCF->VCF_NIVIMP+" )") SIZE 180,08 OF oCliNI PIXEL COLOR CLR_BLUE FONT oFCliNIR If !Empty(VCF->VCF_AREVEN) @ 045,015 SAY (STR0182+VCF->VCF_AREVEN+" - "+VCB->VCB_DESREG) SIZE 180,08 OF oCliNI PIXEL COLOR CLR_BLUE FONT oFCliNIR EndIf @ 060,015 SAY SA1->A1_NOME SIZE 180,08 OF oCliNI PIXEL COLOR CLR_HBLUE FONT oFCliNIR @ 005,007 TO 077,211 LABEL "" OF oCliNI PIXEL // Caixa Sair ACTIVATE MSDIALOG oCliNI CENTER EndIf EndIf
If lSemMos .or. SA1->A1_RISCO $ GetNewPar("MV_CKCLINR","E") .or. lMosTelaPE // Verifica o risco do Cliente se esta no Parametro
nQtd := 0 nValor := 0
For nCont := 1 to Len(aSM0)
cFilAnt := aSM0[nCont]
cQuery := "SELECT SE1.E1_FILIAL,SE1.E1_NUM,SE1.E1_PARCELA,SE1.E1_EMISSAO,SE1.E1_VENCREA,SE1.E1_VALOR " cQuery += "FROM "+RetSqlName( "SE1" ) + " SE1 WHERE " cQuery += "SE1.E1_FILIAL='"+xFilial("SE1")+"' AND " cQuery += "SE1.E1_CLIENTE='"+SA1->A1_COD+"' AND SE1.E1_LOJA='"+SA1->A1_LOJA+"' AND SE1.E1_SALDO <> 0 AND SE1.E1_TIPO <> 'NCC' AND " cQuery += "SE1.D_E_L_E_T_=' ' ORDER BY SE1.E1_FILIAL,SE1.E1_VENCREA,SE1.E1_NUM,SE1.E1_PARCELA" dbUseArea( .T., "TOPCONN", TcGenQry(,,cQuery), cAliasSE1, .T., .T. ) Do While !( cAliasSE1 )->( Eof() ) if len(aTit) == 1 .and. Empty(aTit[1,1]) aTit := {} Endif aadd(aTit,{( cAliasSE1 )->E1_FILIAL,( cAliasSE1 )->E1_NUM,( cAliasSE1 )->E1_PARCELA,stod(( cAliasSE1 )->E1_EMISSAO),stod(( cAliasSE1 )->E1_VENCREA),( cAliasSE1 )->E1_VALOR}) nQtd++ nValor += ( cAliasSE1 )->E1_VALOR dbSelectArea(cAliasSE1) ( cAliasSE1 )->(dbSkip()) Enddo ( cAliasSE1 )->(dbCloseArea()) dbSelectArea("SE1")
Next cFilAnt := cBkpFilAnt
lAtual := .t. DbSelectArea("VAI") DbSetOrder(4) DbSeek( xFilial("VAI") + __CUSERID ) DEFINE MSDIALOG oCliNR FROM 000,000 TO 025,055 TITLE (STR0259+SA1->A1_RISCO) OF oMainWnd @ 016,015 SAY VAI->VAI_NOMUSU SIZE 180,08 OF oCliNR PIXEL COLOR CLR_BLUE FONT oFCliNIR DEFINE SBUTTON FROM 013,333 TYPE 15 ENABLE OF oCliNR // Botao VISUALIZAR DEFINE SBUTTON FROM 013,175 TYPE 1 ACTION (oCliNR:End()) ENABLE OF oCliNR // Botao OK @ 030,014 BITMAP OXFig RESOURCE "SVM" OF oCliNR PIXEL ADJUST NOBORDER SIZE 40,40 @ 030,062 SAY (STR0260+SA1->A1_RISCO+STR0261) SIZE 140,08 OF oCliNR PIXEL COLOR CLR_HRED FONT oFCliNIR @ 045,062 SAY SA1->A1_NOME SIZE 140,08 OF oCliNR PIXEL COLOR CLR_HBLUE FONT oFCliNIR @ 060,062 SAY STR0262+Dtoc(SA1->A1_VENCLC) SIZE 140,08 OF oCliNR PIXEL COLOR CLR_HBLUE FONT oFCliNIR @ 005,007 TO 077,211 LABEL "" OF oCliNR PIXEL // Caixa Sair @ 078,040 SAY (STR0263) SIZE 160,08 OF oCliNR PIXEL COLOR CLR_HRED FONT oFCliNIR @ 085,006 LISTBOX oLbx1 FIELDS HEADER (STR0264),(STR0265),(STR0266),(STR0267),(STR0268),(STR0269) COLSIZES 30,20,40,40,50 SIZE 209,080 OF oCliNR PIXEL oLbx1:SetArray(aTit) oLbx1:bLine := { || { aTit[oLbx1:nAt,1],aTit[oLbx1:nAt,2],aTit[oLbx1:nAt,3],aTit[oLbx1:nAt,4],aTit[oLbx1:nAt,5],transform(aTit[oLbx1:nAt,6],"@E 99,999,999,999.99")}} @ 166,013 SAY STR0270+transform(SA1->A1_LC,"@E 999,999,999.99")+STR0272+transform(nValor,"@E 99,999,999,999.99") SIZE 300,08 OF oCliNR PIXEL COLOR CLR_HBLUE FONT oFCliNIR @ 180,013 SAY STR0271+transform(SA1->A1_LC-nValor,"@E 99,999,999,999.99")+Iif(fm_pilha("OFIXA016"),STR0273+transform(VS1->VS1_VTOTNF,"@E 99,999,999,999.99"),"") SIZE 300,08 OF oCliNR PIXEL COLOR CLR_HBLUE FONT oFCliNIR ACTIVATE MSDIALOG oCliNR CENTER EndIf If lAtual PutMv("MV_CKCLIXX",cPRW +" "+ cHrMin +" "+ __CUSERID +" "+ cCliLoj) EndIf EndIf // Volta posicoes originais dos Arquivos sRestArea(aArea) EndIf Return(lRetorno) |
Programa Fonte: | VEIFUNA |
Retorno: | lMosTelaPE - Mostra ou não a Tela (Tipo Lógico) |
Exemplo:
User Function VFATECLI
lMosTelaPE := .f.
cAliasPE1 := GetNextAlias()
//
cQuery := "SELECT SE1.E1_FILIAL,SE1.E1_NUM,SE1.E1_PARCELA,SE1.E1_EMISSAO,SE1.E1_VENCREA,SE1.E1_VALOR "
cQuery += "FROM "+RetSqlName( "SE1" ) + " SE1 WHERE "
cQuery += "SE1.E1_FILIAL='"+xFilial("SE1")+"' AND "
cQuery += "SE1.E1_CLIENTE='"+SA1->A1_COD+"' AND SE1.E1_LOJA='"+SA1->A1_LOJA+"' AND SE1.E1_SALDO <> 0 AND SE1.E1_TIPO <> 'NCC' AND "
cQuery += "SE1.D_E_L_E_T_=' ' ORDER BY SE1.E1_FILIAL,SE1.E1_VENCREA,SE1.E1_NUM,SE1.E1_PARCELA"
dbUseArea( .T., "TOPCONN", TcGenQry(,,cQuery), cAliasPE1, .T., .T. )
Do While !( cAliasPE1 )->( Eof() )
nValor += ( cAliasPE1 )->E1_VALOR
dbSelectArea(cAliasPE1)
( cAliasPE1 )->(dbSkip())
Enddo
( cAliasPE1 )->(dbCloseArea())
if SA1->A1_LC - nValor < 0 .or. SA1->A1_VENCLC < DDATABASE
lMosTelaPE := .t.
endif
return lMosTelaPE