Histórico da Página
...
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#include #Include "Protheus.ch" #Include "RwMake.ch" #Include "rwmakeTbiConn.ch" #include#Include 'tbiconnTOPConn.ch' #Include "FILEIO.CH" #INCLUDE "PROTHEUSPARMTYPE.CH" Static __lTemDic As Logical Static __oTitPaga As Object Static __oTitRece As Object User Function FinFixB40(aFiliaisStatic __aGrpEmp As Array) Local lRetorno As Logical Local cMAEmpSED As Char Local cMAUniSED As Char Local cMAFilSED As Char Local cMAEmpSA1 As Char Local cMAUniSA1 As Char Local cMAFilSA1 As Char Local cMAEmpSA2 As Char //------------------------------------------------------------------- /*/{Protheus.doc} FIXREINF FIX para fazer o vinculo da(s) Natureza(s) de Rendimento da EFD-REinf para os títulos lançados no sistema antes da vigência do bloco 40 e que serão baixados após o inicio da vigência (Set/2023). /*/ //------------------------------------------------------------------- User Function FIXREINF() Local cMAUniSA2aAllGroup As CharArray Local cMAFilSA2aFilial As CharArray Local cMAEmpSE1nI As Char Local cMAUniSE1 As CharNumeric Local cMAFilSE1aButtons As CharArray Local//PREPARE cMAEmpSE2ENVIRONMENT EMPRESA As Char Local cMAUniSE2 As Char Local cMAFilSE2 As Char Local nTamFilSED As Numeric Local nTamFilSA1 As Numeric Local nTamFilSA2 As Numeric Local nTamFilSE1 As Numeric Local nTamFilSE2 As Numeric Local nTamEmp As Numeric Local nTamUni As Numeric Local nTamFil As Numeric PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "FIN" TABLES "SE2", "SE5", "SA6", "SED", "SE1", "SEV", "F71", "SE2" //Parâmetros de entrada. Default aFiliais := {cFilAnt} If __lTemDic == Nil __lTemDic := cPaisLoc == "BRA" .And. SED->(ColumnPos("ED_NATREN")) > 0 EndIf If (lRetorno := __lTemDic) //Inicializa variáveis lRetorno := .T. cMAEmpSED := AllTrim(FWModeAccess("SED",1)) cMAUniSED := AllTrim(FWModeAccess("SED",2)) cMAFilSED := AllTrim(FWModeAccess("SED",3)"T1" FILIAL "D MG 01 " MODULO "FIN" TABLES "SE2", "SE5", "SA6", "SED", "SE1", "SEV", "F71", "SE2" //#del //Inicializa variáveis aAllGroup := FwLoadSM0() aFilial := {} nI := 0 aButtons := {} Private aGrp := {} Private aFilGrp := {} Private oModal := Nil Private oContainer := Nil Private oBrw := Nil Private oOK := LoadBitmap(GetResources(), "NGBIOALERTA_02.png") Private oNO := LoadBitmap(GetResources(), "NGBIOALERTA_03.png") Private oProcess := Nil Private oReinfTable := Nil Private cReinfLog := "REINFLOG" Private oProcess := Nil Private oReinfTable := Nil Private cReinfLog := "REINFLOG" Private cDtIni := "20220101" //Data inicial a ser considera para filtrar a emissão dos títulos (Formato AAAAMMDD) For nI := 1 To Len(aAllGroup) cMAEmpSA1nPos := AllTrim(FWModeAccess("SA1",1)) aScan(aFilial,{|x| x[1] == aAllGroup[nI,1]} ) cMAUniSA1 := AllTrim(FWModeAccess("SA1",2)) cMAFilSA1If nPos :== AllTrim(FWModeAccess("SA1",3))0 cMAEmpSA2 := AllTrim(FWModeAccess("SA2",1))aAdd(aFilial,{aAllGroup[nI,1],aAllGroup[nI,2]}) cMAUniSA2 := AllTrim(FWModeAccess("SA2",2))aAdd(aGrp,aAllGroup[nI,1]) cMAFilSA2Else := AllTrim(FWModeAccess("SA2",3)) cMAEmpSE1 :aFilial[nPos,2] += AllTrim(FWModeAccess("SE1",1))|" + aAllGroup[nI,2] cMAUniSE1Endif := AllTrim(FWModeAccess("SE1",2))Next nI cMAFilSE1aFilGrp := AllTrim(FWModeAccess("SE1",3)FIXGRPFIL(aFilial, 1) aAdd(aButtons, {Nil, "Atualizar", {||FIXALL()}, Nil, 2, .T., Nil}) cMAEmpSE2oModal := AllTrimFWDialogModal(FWModeAccess("SE2",1)) ):New() cMAUniSE2 oModal:= AllTrim(FWModeAccess("SE2",2))SetEscClose(.T.) oModal:setTitle("Fix - REINF (COM cMAFilSE2/ FAT := AllTrim(FWModeAccess("SE2",3))/ FIN)") oModal:setSubTitle("Documentos de Entrada/Saida e nTamFilSEDTitulos := 0a Pagar/Receber") nTamFilSA1 := 0 nTamFilSA2 := 0//Seta a largura e altura da janela em pixel oModal:setSize(280,500) oModal:createDialog() nTamFilSE1 := 0oModal:addCloseButton(nil, "Fechar") nTamFilSE2 := 0oModal:addButtons(aButtons) nTamEmpoContainer := LenTPanel(FwSM0Layout):New(,1) ,,, oModal:getPanelMain() ) oContainer:SetCss("TPanel{background-color : white;}") nTamUni oContainer:Align := Len(FwSM0Layout(,2))CONTROL_ALIGN_ALLCLIENT nTamFiloS1 := LenTSay(FwSM0Layout):New(,3)) 10,05,{|| "Descrição: Selecione a(s) filial(ais)"},oContainer,,,,,,.T.,,,180,150) //Grupo Empresa oBrw1 If (nTamEmp+nTamUni) == 0:= TWBrowse():New(40,05,190,165,,{"Grupo Empresa"},{05,20},oContainer,,,,,,,,,,,,.F.,,.T.,,.F.,,,) //"Grupo Empresa" oBrw1:SetArray(aGrp) cMAEmpSED := cMAUniSEDoBrw1:bLine := cMAFilSED {|| {aGrp[oBrw1:nAt]} } cMAEmpSA1 oBrw1:bChange := cMAUniSA1 := cMAFilSA1{|| FIXGRP(oBrw1:nAt, aFilial, oBrw2)} //Grupo Empresa cMAEmpSA2 := cMAUniSA2 := cMAFilSA2- Filiais cMAEmpSE1 oBrw2 := cMAUniSE1 := cMAFilSE1 cMAEmpSE2 := cMAUniSE2 := cMAFilSE2 Else If nTamEmp == 0 cMAEmpSED := cMAUniSED cMAEmpSA1 := cMAUniSA1 cMAEmpSA2 := cMAUniSA2 cMAEmpSE1 := cMAUniSE1 cMAEmpSE2 := cMAUniSE2 ElseIf nTamUni == 0 cMAUniSED := cMAFilSED cMAUniSA1 := cMAFilSA1 cMAUniSA2 := cMAFilSA2 cMAUniSE1 := cMAFilSE1 cMAUniSE2 := cMAFilSE2 EndIf EndIf nTamFilSED := (IIf(cMAEmpSED == "C", 0, nTamEmp) + IIf(cMAUniSED == "C", 0, nTamUni) + IIf(cMAFilSED == "C", 0, nTamFil)) nTamFilSA1 := (IIf(cMAEmpSA1 == "C", 0, nTamEmp) + IIf(cMAUniSA1 == "C", 0, nTamUni) + IIf(cMAFilSA1 == "C", 0, nTamFil)) nTamFilSA2 := (IIf(cMAEmpSA2 == "C", 0, nTamEmp) + IIf(cMAUniSA2 == "C", 0, nTamUni) + IIf(cMAFilSA2 == "C", 0, nTamFil)) nTamFilSE1 := (IIf(cMAEmpSE1 == "C", 0, nTamEmp) + IIf(cMAUniSE1 == "C", 0, nTamUni) + IIf(cMAFilSE1 == "C", 0, nTamFil)) nTamFilSE2 := (IIf(cMAEmpSE2 == "C", 0, nTamEmp) + IIf(cMAUniSE2 == "C", 0, nTamUni) + IIf(cMAFilSE2 == "C", 0, nTamFil)) //Atualiza a natureza de rendimentos do contas a pagar FinCPag(aFiliais, nTamFilSED, nTamFilSA2, nTamFilSE2) //Atualiza a natureza de rendimentos do contas a receber FinCRec(aFiliais, nTamFilSED, nTamFilSA1, nTamFilSE1) Else Help(" ", 1, "ATUAMBREINF", Nil, "Ambiente desatualizado", 2, 0, Nil, Nil, Nil, Nil, Nil, {"Para realizar o ajuste da base, é necessário atualizar o ambiente"}) EndIf Return lRetorno /*/{Protheus.doc} FinCPag @type User Function @author Sivaldo Oliveira @since 28/08/2023 @param aFiliais, array unidimensional, lista de filais que serão processadas @return Logical, lRetorno, Logico que indica se ocorreu o processamento de atualização da natureza de rendimento do títulos a pagar /*/ Static Function FinCPag(aFiliais As Array, nTamFilSED As Numeric, nTamFilSA2 As Numeric, nTamFilSE2 As Numeric) As Logical Local lRetorno As Logical Local lAchouFKF As Logical Local cTblPagar As Char Local cQuery As Char Local cIdDocFK7 As Char Local cTpImpos As Char Local nMenorFil As Numeric Local nTpImpos As Numeric Local nVlrImpos As Numeric Local nBaseImpos As Numeric Local aDados As Array //Parâmetros de entrada. Default aFiliais := {cFilAnt} Default nTamFilSED := 0 Default nTamFilSA2 := 0 Default nTamFilSE2 := 0 //Inicializa variáveis. Retorno := .T. lAchouFKF := .T. cTblPagar := "" cQuery := "" cIdDocFK7 := "" cTpImpos := "SEMIMP" nMenorFil := 0 nTpImpos := 0 nVlrImpos := 0 nBaseImpos := 0 aDados := {} If __oTitPaga == Nil cQuery := "SELECT SE2.E2_FILIAL, SE2.E2_PREFIXO, SE2.E2_NUM, SE2.E2_PARCELA, SE2.E2_TIPO, SE2.E2_FORNECE, SE2.E2_LOJA, SE2.E2_FILORIG, " cQuery += "SE2.E2_PIS, SE2.E2_COFINS, SE2.E2_CSLL, SE2.E2_IRRF, SE2.E2_VALOR, SE2.E2_SALDO, SE2.E2_BASEIRF, SE2.E2_BASEPIS, SE2.E2_BASECOF, " cQuery += "SE2.E2_BASECSL, SE2.R_E_C_N_O_, SED.ED_NATREN, SED.ED_CALCIRF, SED.ED_CALCPIS, SED.ED_CALCCOF, SED.ED_CALCCSL, SED.ED_PERCIRF, " cQuery += "SED.ED_PERCPIS, SED.ED_PERCCOF, SED.ED_PERCCSL, SA2.A2_RECPIS, SA2.A2_RECCOFI, SA2.A2_RECCSLL, SA2.A2_CALCIRF " cQuery += "FROM ? SE2 " //Relacionamento: SE2 vs SED nMenorFil := IIf(nTamFilSED > nTamFilSE2, nTamFilSE2, nTamFilSED) cQuery += "INNER JOIN ? SED ON " cQuery += "(SUBSTRING(SE2.E2_FILIAL, 1, " + cValToChar(nMenorFil) + ") = SUBSTRING(SED.ED_FILIAL, 1, " + cValToChar(nMenorFil) + ") " cQuery += "AND SE2.E2_NATUREZ = SED.ED_CODIGO " cQuery += "AND SE2.D_E_L_E_T_ = SED.D_E_L_E_T_) " //Relacionamento: SE2 vs SA2 nMenorFil := IIf(nTamFilSA2 > nTamFilSE2, nTamFilSE2, nTamFilSA2) cQuery += "INNER JOIN ? SA2 ON " cQuery += "(SUBSTRING(SE2.E2_FILIAL, 1, " + cValToChar(nMenorFil) + ") = SUBSTRING(SA2.A2_FILIAL, 1, " + cValToChar(nMenorFil) + ") " cQuery += "AND SE2.E2_FORNECE = SA2.A2_COD " cQuery += "AND SE2.E2_LOJA = SA2.A2_LOJA " cQuery += "AND SE2.D_E_L_E_T_ = SA2.D_E_L_E_T_) " cQuery += "WHERE " cQuery += "SE2.E2_FILIAL IN (?) " cQuery += "AND SE2.E2_SALDO > 0 " cQuery += "AND SE2.E2_TIPO NOT IN ('PR', 'INS', 'TX', 'AB-', 'ISS', 'SES', 'CH') " cQuery += "AND SE2.E2_ORIGEM NOT IN ('MATA100', 'MATA103') " cQuery += "AND SE2.D_E_L_E_T_ = ' ' " cQuery += "AND SED.ED_NATREN IS NOT NULL AND SED.ED_NATREN <> ' ' " // cQuery += "AND ((SED.ED_CALCIRF = 'S') OR (SED.ED_CALCPIS = 'S') OR (SED.ED_CALCCOF = 'S') OR (SED.ED_CALCCSL = 'S')) " // cQuery += "AND ((A2_RECPIS = '2') OR (A2_RECCOFI = '2') OR (A2_RECCSLL = '2') OR (A2_CALCIRF <> '2')) " cQuery := ChangeQuery(cQuery) __oTitPaga := FwPreparedStatement():New(cQuery) EndIf __oTitPaga:SetNumeric(1, RetSqlName("SE2")) __oTitPaga:SetNumeric(2, RetSqlName("SED")) __oTitPaga:SetNumeric(3, RetSqlName("SA2")) __oTitPaga:SetIn(4, aFiliais) cQuery := __oTitPaga:GetFixQuery() cTblPagar := MpSysOpenQuery(cQuery) DbSelectArea("FKF") FKF->(DbSetOrder(1)) While (cTblPagar)->(!Eof()) cIdDocFK7 := FINBuscaFK7((cTblPagar)->(E2_FILIAL+"|"+E2_PREFIXO+"|"+E2_NUM+"|"+E2_PARCELA+"|"+E2_TIPO+"|"+E2_FORNECE+"|"+E2_LOJA), "SE2", (cTblPagar)->E2_FILORIG) If Empty(cIdDocFK7) (cTblPagar)->(DbSkip()) Loop EndIf lAchouFKF := FKF->(MsSeek(xFilial("FKF", (cTblPagar)->E2_FILORIG)+cIdDocFK7)) If (!lAchouFKF .Or. (lAchouFKF .And. !Empty(FKF->FKF_NATREN))) (cTblPagar)->(DbSkip()) Loop EndIf //Atualiza FKF RecLock("FKF", .F.) FKF->FKF_NATREN := (cTblPagar)->ED_NATREN FKF->(MsUnLock()) For nTpImpos := 1 To 5 Do Case Case nTpImpos == 1 //IRRF If (AllTrim((cTblPagar)->ED_CALCIRF) != "S" .Or. (cTblPagar)->ED_PERCIRF <= 0 .Or. AllTrim((cTblPagar)->A2_CALCIRF) != "1") Loop EndIf cTpImpos := "IRF" nVlrImpos := (cTblPagar)->E2_IRRF nBaseImpos := (cTblPagar)->E2_BASEIRF Case nTpImpos == 2 //PIS If (AllTrim((cTblPagar)->ED_CALCPIS) != "S" .Or. (cTblPagar)->ED_PERCPIS <= 0 .Or. AllTrim((cTblPagar)->A2_RECPIS) != "2") Loop EndIf cTpImpos := "PIS" nVlrImpos := (cTblPagar)->E2_PIS nBaseImpos := (cTblPagar)->E2_BASEPIS Case nTpImpos == 3 //COFINS If (AllTrim((cTblPagar)->ED_CALCCOF) != "S" .Or. (cTblPagar)->ED_PERCCOF <= 0 .Or. AllTrim((cTblPagar)->A2_RECCOFI) != "2") Loop EndIf cTpImpos := "COF" nVlrImpos := (cTblPagar)->E2_COFINS nBaseImpos := (cTblPagar)->E2_BASECOF Case nTpImpos == 4 //CSLL If (AllTrim((cTblPagar)->ED_CALCCSL) != "S" .Or. (cTblPagar)->ED_PERCCSL <= 0 .Or. AllTrim((cTblPagar)->A2_RECCSLL) != "2") Loop EndIf cTpImpos := "CSL" nVlrImpos := (cTblPagar)->E2_CSLL nBaseImpos := (cTblPagar)->E2_BASECSL OtherWise // Títulos sem impostos If Len(aDados) == 0 cTpImpos := "SEMIMP" nVlrImpos := 0 nBaseImpos := (cTblPagar)->E2_VALOR EndIf EndCase AAdd(aDados, {; (cTblPagar)->E2_FILIAL,; cIdDocFK7,; cTpImpos,; (cTblPagar)->ED_NATREN,; 100,; nBaseImpos,; 0,; //valor do impos retido 7 0,; //Base imposto nao retido 8 0,; //Valor do impoto nao retido 9 "",; //Numero Processo Judicial 10 "",; //Tipo Processo 11 "",; //Cod. Indicativo suspensao 12 0}) Next nTpImpos (cTblPagar)->(DbSkip()) EndDo (cTblPagar)->(DbCloseArea()) //Gravação do FKW If Len(aDados) > 0 F070Grv(aDados, 4, "1") EndIf Return lRetorno /*/{Protheus.doc} FinCRec @type User Function @author Sivaldo Oliveira @since 28/08/2023 @param aFiliais, array unidimensional, lista de filais que serão processadas @return Logical, lRetorno, Logico que indica se ocorreu o processamento de atualização da natureza de rendimento do títulos a receber /*/ Static Function FinCRec(aFiliais As Array, nTamFilSED As Numeric, nTamFilSA1 As Numeric, nTamFilSE1 As Numeric) As Logical Local lRetorno As Logical Local lAchouFKF As Logical Local cTblTmp As Char Local cQuery As Char Local cIdDocFK7 As Char Local cTpImpos As Char Local nMenorFil As Numeric Local aDados As Array //Parâmetros de entrada. Default aFiliais := {cFilAnt} Default nTamFilSED := 0 Default nTamFilSA1 := 0 Default nTamFilSE1 := 0 //Inicializa variáveis. Retorno := .T. lAchouFKF := .T. cTblTmp := "" cQuery := "" cIdDocFK7 := "" nMenorFil := 0 aDados := {} If __oTitRece == Nil cQuery := "SELECT SE1.E1_FILIAL, SE1.E1_PREFIXO, SE1.E1_NUM, SE1.E1_PARCELA, SE1.E1_TIPO, SE1.E1_CLIENTE, SE1.E1_LOJA, SE1.E1_FILORIG, SE1.E1_PIS, " cQuery += "SE1.E1_COFINS, SE1.E1_CSLL, SE1.E1_IRRF, SE1.E1_VALOR, SE1.E1_SALDO, SE1.E1_BASEIRF, SE1.E1_BASEPIS, SE1.E1_BASECOF, SE1.E1_BASECSL, " cQuery += "SE1.R_E_C_N_O_, SED.ED_NATREN, SED.ED_CALCIRF, SED.ED_CALCPIS, SED.ED_CALCCOF, SED.ED_CALCCSL, SED.ED_PERCIRF, SED.ED_PERCPIS, " cQuery += "SED.ED_PERCCOF,SED.ED_PERCCSL FROM ? SE1 " //Relacionamento: SE1 vs SED nMenorFil := IIf(nTamFilSED > nTamFilSE1, nTamFilSE1, nTamFilSED) cQuery += "INNER JOIN ? SED ON " cQuery += "(SUBSTRING(SE1.E1_FILIAL , 1 , " + cValToChar(nMenorFil) + ") = SUBSTRING(SED.ED_FILIAL , 1 , " + cValToChar(nMenorFil) + ") " cQuery += "AND SE1.E1_NATUREZ = SED.ED_CODIGO " cQuery += "AND SE1.D_E_L_E_T_ = SED.D_E_L_E_T_) " //Relacionamento: SE1 vs SA1 nMenorFil := IIf(nTamFilSA1 > nTamFilSE1, nTamFilSE1, nTamFilSA1) cQuery += "INNER JOIN ? SA1 ON " cQuery += "(SUBSTRING(SE1.E1_FILIAL , 1 , " + cValToChar(nMenorFil) + ") = SUBSTRING(SA1.A1_FILIAL , 1 , " + cValToChar(nMenorFil) + ") " cQuery += "AND SE1.E1_CLIENTE = SA1.A1_COD " cQuery += "AND SE1.E1_LOJA = SA1.A1_LOJA " cQuery += "AND SE1.D_E_L_E_T_ = SA1.D_E_L_E_T_)" //Filtro de linhas cQuery += "WHERE " cQuery += "SE1.E1_FILIAL IN (?) AND SE1.E1_SALDO > 0 " cQuery += "AND SE1.E1_TIPO NOT IN ('PR', 'INS', 'TX', 'AB-', 'ISS', 'SES', 'CH') " cQuery += "AND SE1.E1_ORIGEM NOT IN ('MATA460', 'MATA461') " cQuery += "AND SED.ED_NATREN IS NOT NULL AND SED.ED_NATREN <> ' ' AND SED.ED_CALCIRF = 'S' " cQuery += "AND SA1.A1_RECIRRF = '2' AND SE1.D_E_L_E_T_ = ' ' " cQuery := ChangeQuery(cQuery) __oTitRece := FwPreparedStatement():New(cQuery) EndIf __oTitRece:SetNumeric(1, RetSqlName("SE1")) __oTitRece:SetNumeric(2, RetSqlName("SED")) __oTitRece:SetNumeric(3, RetSqlName("SA1")) __oTitRece:SetIn(4, aFiliais) cQuery := __oTitRece:GetFixQuery() cTblTmp := MpSysOpenQuery(cQuery) DbSelectArea("FKF") FKF->(DbSetOrder(1)) While (cTblTmp)->(!Eof()) cIdDocFK7 := FINBuscaFK7((cTblTmp)->(E1_FILIAL+"|"+E1_PREFIXO+"|"+E1_NUM+"|"+E1_PARCELA+"|"+E1_TIPO+"|"+E1_CLIENTE+"|"+E1_LOJA), "SE1", (cTblTmp)->E1_FILORIG) If Empty(cIdDocFK7) (cTblTmp)->(DbSkip()) Loop EndIf lAchouFKF := FKF->(MsSeek(xFilial("FKF", (cTblTmp)->E1_FILORIG)+cIdDocFK7)) If (!lAchouFKF .Or. (lAchouFKF .And. !Empty(FKF->FKF_NATREN))) (cTblTmp)->(DbSkip()) Loop EndIf //Atualiza FKF RecLock("FKF", .F.) FKF->FKF_NATREN := (cTblTmp)->ED_NATREN FKF->(MsUnLock()) AAdd(aDados, {; (cTblTmp)->E1_FILIAL,; cIdDocFK7,; "IRF",; (cTblTmp)->ED_NATREN,; 100,; (cTblTmp)->E1_BASEIRF,; (cTblTmp)->E1_IRRF,; 0,; //Base imposto nao retido 8 0,; //Valor do impoto nao retido 9 "",; //Numero Processo Judicial 10 "",; //Tipo Processo 11 "",; //Cod. Indicativo suspensao 12 0}) (cTblTmp)->(DbSkip()) EndDo (cTblTmp)->(DbCloseArea()) //Gravação do FKW If Len(aDados) > 0 F070Grv(aDados, 4, "2") EndIf Return lRetorno TWBrowse():New(10,210,280,195,,{"Sel. Filial","Grp Empresa","Filial","Desc. Filial"},{50,50,50,100},oContainer,,,,,,,,,,,,.F.,,.T.,,.F.,,,) oBrw2:SetArray(aFilGrp) oBrw2:bLine := { || {Iif(aFilGrp[oBrw2:nAt,1], oOK, oNO), aFilGrp[oBrw2:nAt,2], aFilGrp[oBrw2:nAt,3], aFilGrp[oBrw2:nAt,4]}} oBrw2:bLDblClick := {|| FIXFILGRP(oBrw2, @aFilGrp, "I")} oBrw2:bHeaderClick := {|| FIXFILGRP(oBrw2, @aFilGrp, "A")} oModal:Activate() oProcess := MsNewProcess():New({|| U_FIXCFF() },"FIX REINF","Lendo Registros do COM / FAT / FIN",.T.) oProcess:Activate() Return Static Function FIXGRP(nEmpLin, aFilial, oObjFil) //AScan(aFilGrp, {|x| AllTrim(x[2]) == "T1"}) aFilGrp := FIXGRPFIL(aFilial, nEmpLin) If Len(aFilGrp) > 0 oObjFil:SetArray(aFilGrp) oObjFil:bLine := {|| {If(aFilGrp[oObjFil:nAT,1], oOK,oNo), aFilGrp[oObjFil:nAt,02], aFilGrp[oObjFil:nAt,03], aFilGrp[oObjFil:nAt, 04]}} oObjFil:Refresh() Endif Return Static Function FIXFILGRP(oObj, aDados, cOpc) Local nI := 0 Default cOpc := "I" If cOpc == "I" aDados[oObj:nAt,1] := !aDados[oObj:nAt,1] Elseif cOpc == "A" For nI := 1 To Len(aDados) aDados[nI,1] := !aDados[nI,1] Next nI Endif If Len(aDados) > 0 //Atualiza Browse oObj:SetArray(aDados) oObj:bLine := {|| {If(aDados[oObj:nAT,1], oOK, oNo), aDados[oObj:nAt,02], aDados[oObj:nAt,03], aDados[oObj:nAt, 04]}} oObj:Refresh() Endif Return Static Function FIXGRPFIL(aFilial,nEmp) Local nI As Numeric Local nPosicao As Numeric Local aAux As Array Local aFil As Array Local aSM0Dados As Array //Inicializa variáveis. nI := 0 nPosicao := 0 aAux := {} aFil := {} aSM0Dados := {} If __aGrpEmp == Nil __aGrpEmp := {} EndIf aAux := Separa(aFilial[nEmp,2],"|") For nI := 1 To Len(aAux) aSM0Dados := FWSM0Util():GetSM0Data(aFilial[nEmp,1], aAux[nI], {"M0_FILIAL"}) //Verifica se ja possui vinculo com o Transmite (DHW) aAdd(aFil, {.F., aFilial[nEmp,1], aAux[nI], aSM0Dados[1,2]}) Next nI If Len(__aGrpEmp) > 0 For nI := 1 To Len(__aGrpEmp) If (AScan(__aGrpEmp[nI,1], aFilial[nEmp,1])) > 0 nPosicao := nI Exit EndIf Next nI EndIf If nPosicao > 0 aFil := Aclone(__aGrpEmp[nPosicao]) Else AAdd(__aGrpEmp, AClone(aFil)) EndIf Return aFil User Function FIXCFF(aFiliais) oProcess:SetRegua1(3) //COM / FAT / FIN //Cria Temporario - LOGs U_REINFLOG() /* ##del aFiliais := {} aAdd(aFiliais,"D MG 01") aAdd(aFiliais,"D MG 02") aAdd(aFiliais,"M SP 01") */ //Atualiza base de dados //For nZ:= 1 to Len(aFiliais) U_FIXCOMREINF() //COM U_FIXFATREINF() //FAT U_FIXFINREINF(aFiliais) //FIN //Endif Return User Function REINFLOG() Local aArea := GetArea() Local aStruct := {} aAdd(aStruct,{"GRUPO" ,"C", 008, 00}) //Grupo de empresa aAdd(aStruct,{"EMPFIL" ,"C", 008, 00}) //Empresa/filial do documento/título aAdd(aStruct,{"DATAPROC" ,"C", 020, 00}) //Data e hora do processamento aAdd(aStruct,{"TIPO" ,"C", 002, 00}) //DE=Documento de entrada / DS = Documento de Saída / CP = Contas a Pagar / CR = Contas a Receber aAdd(aStruct,{"CHAVE" ,"C", 220, 00}) //Chave do documento/título aAdd(aStruct,{"FATC6" ,"C", 001, 00}) //Identifica se foi atualizada natureza de rendimento no pedido de venda aAdd(aStruct,{"FATFKW" ,"C", 001, 00}) //Identifica se foi criado o registro na FKW referente ao documento de saída aAdd(aStruct,{"COMDHR" ,"C", 001, 00}) //Identifica se foi criado/atualizado o registro na tabela DHR referente ao documento de entrada aAdd(aStruct,{"COMFKW" ,"C", 001, 00}) //Identifica se foi criado o registro na tabela FKW referente ao documento de entrada aAdd(aStruct,{"FINFKF" ,"C", 001, 00}) //Identifica se foi atualizado o registro na tabela FKF referente ao título avulso aAdd(aStruct,{"FINFKW" ,"C", 001, 00}) //Identifica se foi criado o registro na tabela FKW referente ao título avulso If !TCCanOpen(cReinfLog) MsCreate(cReinfLog, aStruct, 'TOPCONN' ) dbUseArea( .T., 'TOPCONN', cReinfLog, cReinfLog, .T., .F. ) (cReinfLog)->(DBCreateIndex('IND1', 'TIPO + CHAVE')) else dbUseArea( .T., 'TOPCONN', cReinfLog, cReinfLog, .T., .F. ) Endif dbSelectArea( cReinfLog ) RestArea(aArea) Return (cReinfLog) /* Inicio das funções de FIX do módulo SIGACOM que abrange a gravação da FKW para os Documentos de Entrada. */ User Function FIXCOMREINF(aFiliais As Array) Default aFiliais := {cFilAnt} Private aDadosDoc := U_FixDoc(aFiliais) If Len(aDadosDoc) > 0 oProcess:IncRegua1("Atualizando: " + AllTrim(Str(Len(aDadosDoc))) + " Documentos de Entrada") oProcess:SetRegua2(Len(aDadosDoc)) U_FIXDHR(aDadosDoc) Endif Return |
DEMAIS INFORMAÇÕES
Não há.
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas