Histórico da Página
...
- Compensar titulos de um mesmo fornecedor/loja com adiantamentos deste mesmo fornecedor/loja
- Compensar titulos de um determinado fornecedor com adiantamentos deste mesmo fornecedor, não importando qual a loja do titulo a compensar
- Compensar título de determinado fornecedor com adiantamentos de diversos fornecedores, podendo ser determinada uma faixa de fornecedores ou todos. Com isso, o título pode ser compensado com qualquer título de adiantamento em aberto no cadastro de títulos, não importando qual o fornecedor deste título.
02. EXECUÇÃO
- Manual
Procedimento efetuado de forma manual via rotina Compensação contas a pagar (FINA340), com exibição das telas envolvidas no processo e necessitando de ações/comandos do usuário
- Automática
Procedimento realizado de forma automática na rotina de Compensação contas a pagar (FINA340), sem exibição de telas ou necessidade de interação do usuário.
...
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#INCLUDE 'Protheus.ch' #INCLUDE "TBICONN.ch" User Function CMPCPAUT() Local nSavInd := IndexOrd() LOCAL nSavRec := RecNO() PRIVATE nTamTit := TamSX3("E2_PREFIXO")[1]+TamSX3("E2_NUM")[1]+TamSX3("E2_PARCELA")[1] PRIVATE nTamTip := TamSX3("E2_TIPO")[1] Private aCores :={ { 'E2_SALDO = E2_VALOR .AND. E2_ACRESC = E2_SDACRES','ENABLE'},; // Titulo nao Compensado { 'E2_SALDO = 0' , 'DISABLE'},; // Titulo Compensado Totalmente { 'E2_SALDO <> 0' , 'BR_AZUL'} } // Titulo Compensado Parcialmente //----------------------------- // Define Variaveis //----------------------------- PRIVATE aRotina := { { "Pesquisar","AxPesqui" , 0 , 1,,.F. },; //"Pesquisar" { "Visualizar","AxVisual" , 0 , 2 },; //"Visualizar" { "Compensar","XAFCMPAD" , 0 , 4 },; //"Compensar" { "Excluir","Fa340Desc" , 0 , 4 },; //"Excluir" { "Legenda","Fa340Leg" ,0,2, ,.F.} } //"Legenda" //----------------------------------------------------------------- // Carrega fun‡„o Pergunte //----------------------------------------------------------------- SetKey (VK_F12,{|a,b| AcessaPerg("AFI340",.T.)}) Pergunte("AFI340",.F.) //------------------------------------------------- // Define o cabe‡alho da tela de baixas //------------------------------------------------- PRIVATE cCadastro := "Compensação de Titulos Automatico" //------------------------------------------------ // Verifica o numero do Lote //------------------------------------------------ PRIVATE cLoteLoteCont( "FIN" ) PRIVATE VALOR := 0 PRIVATE VLRINSTR := 0 Private aTxMoedas := {} dbSelectArea("SE2") dbSetOrder(1) dbGoTop() //---------------------------------------- // Endere‡a a Funçao de BROWSE //---------------------------------------- mBrowse( 6, 1,22,75,"SE2",,,,,,aCores) dbSelectArea("SE2") dbSetOrder(nSavInd) dbGoTo(nSavRec) Return /* Programa | XAFCMPAD ========================================================== Desc. | Realiza a compensação do titulo de adiantamento */ Static Function XAFCMPAD() Local aArea := GetArea() Local aAreaSE2 := SE2->(GetArea()) Local aRecPA := {} // Array contendo os Recnos dos titulos PA Local aRecAux := {} Local nX := 0 Local lContabiliza nX := .F. Local lAglutina := 0.F. Local lDigita := .F. Local lContabiliza := .F. Local lAglutina := .F. Local lDigita := .F. Local aRecSE2 := {SE2->(Recno())} LOCAL oDlg LOCAL nOpca := 0 Local dBaixaCMP := dDataBase aRecSE2 := {SE2->(Recno())} LOCAL oDlg LOCAL nOpca := 0 Local dBaixaCMP := dDataBase //-------------------------------------------------------- // Carrega o pergunte da rotina de compensação financeira //-------------------------------------------------------- PERGUNTE("AFI340",.F.) lContabiliza := MV_PAR11 == 1 lAglutina := MV_PAR08 == 1 lDigita := MV_PAR09 == 1 //---------------------------------- //Ordenação das tabelas envolvidas //---------------------------------- SE2->(dbSetOrder(1)) //E2_FILIAL+E2_PREFIXO+E2_NUM+E2_PARCELA+E2_TIPO+E2_FORNECE+E2_LOJA aRecAux := {} aRecAux := XGetTitAd(SE2->E2_FORNECE,SE2->E2_LOJA ) For nX := 1 To Len(aRecAux) aADD(aRecPA,aRecAux[nX]) Next nX If !Empty(aRecPA) DEFINE MSDIALOG oDlg FROM 080,000 TO 190,260 TITLE "Data de Baixa para a Compensação" PIXEL oDlg:lMaximized := .F. oPanel := TPanel():New(0,0,'',oDlg,, .T., .T.,, ,20,20) oPanel:Align := CONTROL_ALIGN_ALLCLIENT @ 015, 010 SAY "Dt. Baixa: " SIZE 52, 08 OF oPanel PIXEL @ 015, 035 MSGET dBaixaCMP Valid !Empty(dBaixaCMP) SIZE 52, 08 OF oPanel PIXEL hasbutton DEFINE SBUTTON FROM 034,050 TYPE 1 ACTION {||oDlg:End(),nOpca:=1} ENABLE OF oDlg DEFINE SBUTTON FROM 034,080 TYPE 2 ACTION {||oDlg:End(),nOpca:=0} ENABLE OF oDlg ACTIVATE MSDIALOG oDlg CENTERED If nOpca == 1 .and. !MaIntBxCP(2,aRecSE2,,aRecPA,,{lContabiliza,lAglutina,lDigita,.F.,.F.,.F.},,,,dBaixaCMP) Help("XAFCMPAD",1,"HELP","XAFCMPAD","Não foi possível a compensação"+CRLF+" do titulo do adiantamento",1,0) ElseIf nOpca == 0 MsgInfo("Processo não realizado por desistência do usuário","Atencao") Else MsgInfo("Compensação Automática Concluida","Atencao") EndIf EndIf RestArea(aAreaSE2) RestArea(aArea) Return /* Programa| XGetTitAd ===================================================================== Desc| Função que retorna os titulos de adiantamento do Fornecedor | e Loja Informados ===================================================================== */ Static Function XGetTitAd( cFornece,cLoja ) Local aArea := GetArea() Local aRecPA := {} // Array contendo os Recnos dos titulos PA Local cQuery := "" Local cTab := GetNextAlias() If Select(cTab) > 0 (cTab)->(dbCloseArea()) EndIf cQuery += " SELECT " cQuery += " R_E_C_N_O_ SE2REC " cQuery += " FROM " + RetSqlTab("SE2") cQuery += " WHERE " cQuery += " E2_FORNECE = '"+cFornece+"' AND " cQuery += " E2_LOJA = '"+cLoja+"' AND " cQuery += " E2_TIPO IN ('PA ','NDF') AND " cQuery += " E2_SALDO > 0 AND " cQuery += RetSQLCond("SE2") cQuery := ChangeQuery(cQuery) dbUseArea(.T., "TOPCONN", TCGenQry(,,cQuery), cTab, .F., .T.) (cTab)->(dbGoTop()) While (cTab)->(!EOF()) aAdd(aRecPA,(cTab)->SE2REC) (cTab)->(dbSkip()) EndDo (cTab)->(dbCloseArea()) RestArea(aArea) Return aRecPA |
03. TELA XXXXX
Outras Ações / Ações relacionadas
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas