Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #INCLUDE "mata953.ch"
- #include "FIVEWIN.CH"
- #include "FWCOMMAND.CH"
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北
- 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪目北
- 北矲uncao 矼ATA953 ?Autor 矨ndreia dos Santos ?Data ?6/08/2001 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪拇北
- 北矰esc. 矨puracao do ICMS Operacoes Proprias e Substituicao Tributaria潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪拇北
- 北砇etorno 砃enhum 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪拇北
- 北砅arametros? 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁北
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌
- /*/
- Function MATA953(lAutomato,nOpcApu,cTestCase)
- Local cCadastro := STR0001 //"Apuracao de ICMS"
- Local aSays := {}
- Local aButtons := {}
- LOCAL nOpca := 0
- LOCAL aCAP := {STR0002,STR0003,STR0004} //"Confirma"###"Abandona"###"Par僲etros"
- Local cPerg := "MTA951"
- LocaL cTitulo := STR0001 //"Apuracao de ICMS"
- Local cText1 := STR0010 //"Este programa faz a Apura噭o de ICMS, conforme par僲etros "
- Local cText2 := STR0011 //"informados pelo usu爎io."
- Default lAutomato := .F.
- Default nOpcApu := 2
- Default cTestCase := "MATA953TestCase"
- PRIVATE aRotina := { { OemToAnsi(STR0005) ,"AxPesqui" ,0,1},; //"Pesquisar"
- { OemToAnsi(STR0006) ,"AxAlter" ,0,2},; //"Visual"
- { OemToAnsi(STR0007) ,"AxInclui" ,0,3},; //"Incluir"
- { OemToAnsi(STR0008) ,"AxAlter" ,0,4},; //"Alterar"
- { OemToAnsi(STR0009) ,"AxAlter" ,0,5} } //"Exclusao"
- Pergunte(cPerg,.F.)
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Janela Principal ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- While .T.
- AADD(aSays,OemToAnsi( ctext1 ) )
- AADD(aSays,OemToAnsi( cText2 ) )
- AADD(aButtons, { 1,.T.,{|o| nOpca:= 1,o:oWnd:End()}} )
- AADD(aButtons, { 2,.T.,{|o| o:oWnd:End() }} )
- AADD(aButtons, { 5,.T.,{|| Pergunte(cPerg,.T. ) } } )
- If !lAutomato
- FormBatch( cCadastro, aSays, aButtons )
- Else
- nOpca := 1
- EndIf
- Do Case
- Case nOpca == 1
- Processa({||a953Processa(lAutomato,nOpcApu,cTestCase)})
- Case nOpca == 3
- Pergunte(cPerg,.t.)
- Loop
- EndCase
- Exit
- EndDo
- RETURN
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北
- 北谀哪哪哪哪穆哪哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪目北
- 北篎uncao 矨953processa篈utor 矨ndreia dos Santos ?Data ?09/08/2001罕?
- 北媚哪哪哪哪呐哪哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪拇北
- 北篋esc. 矨puracao do ICMS Operacoes Proprias e Substituicao Tributaria 罕?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪拇北
- 北砇etorno 砃enhum 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪拇北
- 北砅arametros? 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁北
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌
- /*/
- Function a953Processa(lAutomato,nOpcApu,cTestCase)
- Local aArea := GetArea()
- Local aPosObj := {}
- Local aObjects := {}
- Local aSize := MsAdvSize()
- Local aTitles := { STR0012,STR0013,STR0014,STR0015,STR0016,STR0017,STR0018,'DIFAL/FECP'} //"ICMS-Entradas"###"ICMS-Saidas"###"ST-Entradas"###"ST-Saidas"###"Apuracao-ICMS"###"Apuracao-ST"###"Informacoes Complementares"
- Local aCFG := {}
- Local aOBS := {}
- Local nGd1 := 0
- Local nGd2 := 0
- Local nGd3 := 0
- Local nGd4 := 0
- Local oGetDad1
- Local oGetDad2
- Local oGetDad3
- Local oGetDad4
- Local oGetDad5
- Local oGetDad6
- Local oGetDad7
- Local oGetDad8
- Local oGetDad9
- Local oGetDad10
- Local oGetDad11
- Local oGetDad12
- Local oGetDad13
- Local oDlg
- Local cImp := "IC"
- Local cImposto := "ICMS"
- Local nPosRecPR := 0
- Local nPosRecST := 0
- Local nS := 0
- Local nY := 0
- Local nX := 0
- Local cLcPadTit := Substr(SuperGetMv("MV_LPADICM"),1,3)
- Local cLcPadExt := Substr(SuperGetMv("MV_LPADICM"),5,3)
- Local cProdec := SuperGetMv("MV_PRODEC",.F.,"4")
- Local cArqST := ""
- Local cProgram := "MATA953"
- Local aDadIC := {}
- Local aDadST := {}
- Local nProtege := 0
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Variaveis utilizadas para parametros ?
- //?mv_par01 // Mes de Apuracao ?
- //?mv_par02 // Ano da Apuracao ?
- //?mv_par03 // Livro Selecionado ?
- //?mv_par04 // Apuracao(Decendial/Mensal/Quinzenal/Semestral/Anual ?
- //?mv_par05 // Periodo (1o./2o./3o.) ?
- //?mv_par06 // Arquivo do Perido Anterior ?
- //?mv_par07 // Moeda do Titulo ?
- //?mv_par08 // Gera Titulo ( Sim/Nao ) ?
- //?mv_par09 // Exibir Lancamento Contabil( Sim/Nao ) ?
- //?mv_par10 // Considera Filiais( Sim/Nao ) ?
- //?mv_par11 // Da Filial ?
- //?mv_par12 // Ate a Filial ?
- //?mv_par13 // Gera Guia de Rec.( Sim/Nao ) ?
- //?mv_par14 // Gera Cred. Estimulo ( Sim/Nao ) ?
- //?mv_par15 // Imprime Cred. ST. ( Sim/Nao ) ?
- //?mv_par16 // Consolida玢o na mesma UF ( Sim/Nao ) ?
- //?mv_par17 // Gera Tit. ICMS Compl. ( Sim/Nao ) ?
- //?mv_par18 // Imprime Mapa Resumo ( Sim/Nao ) ?
- //?mv_par19 // Seleiona Filiais ( Sim/Nao ) ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- Local nMes := mv_par01
- Local nAno := mv_par02
- Local cNrLivro := mv_par03
- Local nApuracao := mv_par04
- Local nPeriodo := mv_par05
- Local nMoedTit := If(Trim(Str(mv_par07))$"12345",mv_par07,1)
- Local lTitulo := (mv_par08==1)
- Local lContab := (mv_par09==1)
- Local nConsFil := mv_par10
- Local cFilDe := mv_par11
- Local cFilAte := mv_par12
- Local lGuiaRec := If(mv_par13==1,.T.,.F.)
- Local lCrdEst := If(mv_par14==1,.T.,.F.)
- Local lImpCrdST := If(mv_par15==1,.T.,.F.)
- Local aDatas := DetDatas(nMes,nAno,nApuracao,nPeriodo)
- Local dDtIni := aDatas[1]
- Local dDtFim := aDatas[2]
- Local dDtVenc := DataValida(aDatas[2]+1,.t.)
- Local cArqApur := NmArqApur(cImp,nAno,nMes,nApuracao,nPeriodo,cNrLivro)
- Local cOrgArrec := Space(30)
- Local cObserv := ""
- Local cNumero := Space(TamSx3("F6_NUMERO")[1])
- Local cNumero2 := Space(TamSx3("F6_NUMERO")[1])
- Local nValSt := 0
- Local aGnreSt := {}
- Local aIcmPago := {}
- Local aUfEsp := {}
- Local nNum := 0
- Local dDtVenc2 := ""
- Local cClasse := ""
- Local aApuICM := {}
- Local nValGuiaSf6 := 0
- Local aEstimulo := {}
- Local aIncent := {{"INC",0,0,0,0}}
- Local aTitulo := {}
- Local lInfComp := .F. //Gera uma linha no arquivo texto da apuracao, com os dados das Informacoes Complementares
- Local cMVSIGNRE := SuperGetMv("MV_SIGNRE",.F.,"")
- Local cGNREDF := SuperGetMv("MV_GNREDF",.F.,"1")
- lOCAL nVlGnreDif := 0
- Local lConsUF := If(mv_par16==1,.T.,.F.)
- Local lIcmCompl := If(mv_par17==1,.T.,.F.)
- Local aRet := {}
- Local lApPadrao := .T.
- Local aGNRSTAnt := {}
- Local aRecTit := {}
- Local nRecTit := 0
- Local lConfTit := .F.
- Local cTitulo := ""
- Local cErro := ""
- Local cSolucao := ""
- Local cUfAjSt := ""
- Local nValAtuF := 0
- Local lMonta := .F.
- Local lUsaSped := SuperGetMv("MV_USASPED",,.T.) .And. AliasIndic("CDH") .And. AliasIndic("CDA") .And. AliasIndic("CC6") .And. AliasIndic("CDO")
- Local lLancCDA := .F.
- Local lP9Sped := SuperGetMv("MV_P9SPED",,.F.)
- Local aTitCDH := {}
- Local aColAnt := {}
- Local aLisFil := {}
- //Local lFiliais := If(mv_par19==1,.T.,.F.)
- Local lICMDes := SuperGetMv("MV_ICMS271",,.F.) .And. AliasIndic("CDM")// Indica se vai haver o controle do CREDITO.NAO DESTACADO ICMS
- Local lOldLan := (AliasIndic("CC6") .And. CC6->(FieldPos("CC6_TIPOAJ")) > 0)
- Local lGnrePrtge:= Iif(Valtype(MV_PAR26)=="N",Iif(MV_PAR26 == 1,.T.,.F.),.T.)
- Local nVlrFECP := 0
- Local nVlrFECPST:= 0
- Local nVFcRN5410:= 0
- Local nVFcRN5415:= 0
- Local nVFcRN5420:= 0
- Local nVFcMG := 0
- Local nVFcMGST := 0
- Local nVFcMT := 0
- Local nProtege := 0
- Local nIx := 0
- Local nIy := 0
- Local nXX := 0
- Local nVlrDeb := 0
- Local nVlrDebSt := 0
- Local aGNREX := {}
- Local nPosGNREX := 0
- Local nPsGNR5410:= 0
- Local nPsGNR5415:= 0
- Local nPsGNR5420:= 0
- Local nPsGNRMG := 0
- Local nPsGNRMGST:= 0
- Local nPosFECPMG:= 0
- Local nPosFESTMG:= 0
- Local nPosFCPMG := 0
- Local nPsGNRMT := 0
- Local aRetEsp := {}
- Local nLmFumacop:= 0
- Local nPosFumac := 0
- Local lMvDComPro := SuperGetMv("MV_DCOMPRO",,.F.)
- Local cPictVal := ""
- Local lExclGNR := mv_par21==1
- Local aApIncent := {}
- Local aMVINVEST := &(GetNewPar("MV_INVEST","{}") )
- Local aMVFISPRDC:= &(GetNewPar("MV_FISPRDC" , "{}") )
- Local nValGNREST:= 0
- Local cCDeFecpPe := "RJ70000005/RJ70000006" //C骴igos de Lan鏰mentos de D閎ito Especial de FECP que poder鉶 ser geradas Guias.
- Local nTitDebEsp:= 0
- Local nTitCnv139:= 0
- Local aVlrDebEsp := { 0 , 0 } //-> Valores de Debitos Especiais para geracao de GNRE (Posicao 1 - apenas FECP's ; Posicao 2 - Demais linhas)
- Local aPzRecSt := {}
- Local dDtVencDif := ""
- Local nSolicFlg := ""
- Local aDadUsrFlg := {}
- Local nDH0 := 0
- Local cGNREDF := SuperGetMv("MV_GNREDF",.F.,"1")
- lOCAL nVlGnreDif := 0
- Local aTitDifal := {}
- Local aDifal := {}
- Local aCDADifal := {}
- Local nTitDifal:= 0
- Local aDifEst := {}
- Local nPosDifal := 0
- Local aApurDifal := {}
- Local aAuto := {}
- Local nPosPad := 0
- Local aRetAuto := {}
- Local nPosAuto := 0
- Local lFECPsep := .F.
- Local nFeef := 0
- Local cMVUFICDED:= GetNewPar("MV_UFICDED","MG|AL|CE|DF|ES|MA|MS|PB|PE|PI|SE|RS|AM|PA")
- Default lAutomato := .F.
- Default nOpcApu := 2
- Default cTestCase := "MATA953TestCase"
- PRIVATE aExclApur := {} //Indica os subitem que dever鉶 constar na Apuracao de ICMS (Outros Creditos/Outros Debitos) mais
- // que nao devam ser considerados na compensacao de credito-debito. Esta implementacao se dah para o
- // estado de MG, segundo $1 do art. 7. da Parte 1 do Anexo XV do RICMS/MG.
- //Esta alteracao somente deverah mostrar o lancamento em Outros Creditos/Debitos para ICMS/ST sobre
- // prestacao de servico de transporte, a compensacao feita na Apuracao deverah ser efetuada somente
- // sobre o ICMS/ST Normal.
- //Para este tratamento ser considerado, a TES deverah estar com o campo F4_CREDST igual a 4 e com o P9
- // do estado atualizado.
- PRIVATE aHEADER1:= {}
- PRIVATE aCOLS1 := {}
- PRIVATE aAlter1 := {}
- PRIVATE aHEADER2:= {}
- PRIVATE aCOLS2 := {}
- PRIVATE aAlter2 := {}
- PRIVATE aHEADER3:= {}
- PRIVATE aCOLS3 := {}
- PRIVATE aAlter3 := {}
- PRIVATE aHEADER4:= {}
- PRIVATE aCOLS4 := {}
- PRIVATE aAlter4 := {}
- PRIVATE aHEADER5:= {}
- PRIVATE aCOLS5 := {}
- PRIVATE aAlter5 := {}
- PRIVATE aHEADER6:= {}
- PRIVATE aCOLS6 := {}
- PRIVATE aAlter6 := {}
- PRIVATE aHEADER7:= {}
- PRIVATE aCOLS7 := {}
- PRIVATE aAlter7 := {}
- PRIVATE aHEADER8:= {}
- PRIVATE aCOLS8 := {}
- PRIVATE aAlter8 := {}
- PRIVATE aHEADER9:= {}
- PRIVATE aCOLS9 := {}
- PRIVATE aAlter9 := {}
- PRIVATE aHEADER10:= {}
- PRIVATE aCOLS10 := {}
- PRIVATE aAlter10:= {}
- PRIVATE aCOLS11 := {}
- PRIVATE aAlter11:= {}
- PRIVATE aHEADER11:= {}
- PRIVATE aCOLS12 := {}
- PRIVATE aAlter12:= {}
- PRIVATE aHEADER12:= {}
- PRIVATE aCOLS13 := {}
- PRIVATE aAlter13:= {}
- PRIVATE aHEADER13:= {}
- PRIVATE oFolder
- PRIVATE nVlrTitulo:= 0
- PRIVATE nVlrTitST:= 0
- PRIVATE cCadastro := STR0001 //"Apuracao de ICMS"
- PRIVATE lFomentGO := (SuperGetMv("MV_ESTADO")=="GO".And. SuperGetMv("MV_FOMENGO",,.F.))
- PRIVATE lApurBA := (SuperGetMv("MV_ESTADO")=="BA" .And. SuperGetMv("MV_APURBA",,.F.))
- PRIVATE lAtuFomGO := .T.
- PRIVATE lArt488MG := .F.
- PRIVATE nVlrArt488MG:= 0
- PRIVATE lCon13906 := Iif(!Empty(SuperGetMv("MV_C13906",.F.,"")),If(mv_par23==1,.T.,.F.),.F.)
- PRIVATE lGnreC139 := Iif(!Empty(SuperGetMv("MV_C13906",.F.,"")),If(mv_par24==1,.T.,.F.),.F.)
- PRIVATE aFoment := {} // Guarda a informacao sobre se vai refazer a apuracao ou nao.
- PRIVATE aApurExp := {}
- PRIVATE aApurOut := {}
- Private aGnre := {}
- Private cObsArt488MG:= ""
- Private nAuxIncent := {}
- PRIVATE aRecStDif := {}
- Private lFiliais := If(mv_par19==1,.T.,.F.)
- Private lGTitFluig :=( mv_par25==1 .And. lUsaSped .And. lTitulo ) //Indica que o cliente solicitou iniciar uma solicitacao de aprovacao do titulo no Fluig
- Private aGnreDifal := {}
- Private lGerDifal := .T.
- Private lProcDifal := AliasIndic("F0I") .AND. AliasIndic("F0J") .AND. AliasIndic("F0K")
- IF (GetNewPar("MV_PZRECST","1") <> "1")
- aPzRecSt := &(GetNewPar("MV_PZRECST",{"",""}))
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矨penas ira montar o folder do fomentar se for de Goias e se o cliente utilizar ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?nTitDifal := Len(aTitles)
- If lFomentGO
- Aadd(aTitles,STR0135) // "Apura玢o-Fomentar"
- Elseif lApurBA
- Aadd(aTitles,STR0233)//"Cred.Acumulado-Exporta玢o"
- Aadd(aTitles,STR0234)//"Cred.Acumulado-Out.hipoteses"
- Endif
- Aadd(aTitles,"D閎itos Especiais")
- nTitDebEsp:= Len(aTitles)
- IF lCon13906
- Aadd(aTitles,STR0267) // "Conv阯io 139/06"
- nTitCnv139:= Len(aTitles)
- EndiF
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //砈omente sera permitido processar filial de/ate se o processamento for consolidado.?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If (nConsFil == 1 .And. !(cFilDe <= cFilAnt .Or. cFilAnt >= cFilAte)) .Or.;
- (nConsFil == 1 .And. (cFilDe == "" .Or. cFilAte == ""))
- cTitulo := STR0106 //"Processamento Consolidado"
- cErro := STR0107 //"O processamento consolidado (filial de/at? somente poder?ser executado "
- cErro += STR0108 //"se a filial inicial (filial de) for a filial consolidadora, ou seja, ser "
- cErro += STR0109 //"a filial da empresa selecionada no momento do processamento da rotina. No momento, a "
- cErro += STR0110 + cFilAnt //"filial selecionada ?a "
- cErro += STR0111 + cFilDe + "." //", e a filial inicial informada a ser processada foi a "
- cSolucao := STR0112 //"Efetue o processamento consolidado da apura玢o do ICMS apenas na empresa "
- cSolucao += STR0113 + cFilDe //"consolidadora. Exemplo: caso queira efetuar a apura玢o da filial "
- cSolucao += STR0114 + cFilDe //"selecione a filial "
- cSolucao += STR0115 //" antes de efetuar o processamento da rotina."
- xMagHelpFis(cTitulo,cErro,cSolucao)
- Return
- Endif
- If lFiliais
- nConsFil:= 1
- If MV_PAR22==1
- aLisFil :=MatFilCalc(lFiliais,,,MV_PAR22==1,,2)
- Else
- aLisFil :=MatFilCalc(lFiliais)
- Endif
- Else
- aLisFil:={{.T.,cFilAnt}}
- nConsFil := 1
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //砎erifica se ja foi feita apuracao para este periodo ?
- //矼V_USASPED - Indica se usa SPED ?
- //硈e sim (.T.), deve buscar informacoes de apuracao da tabela CDH ?
- //硈e nao (.F.), busca dos arquivos de apuracao ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If lUsaSped
- lMonta := CkApurCDH(nApuracao,nPeriodo,cNrLivro,@aDadIC,cLcPadExt,dDtIni,cArqApur,@aDadST,cProgram,lTitulo,@aGNREX,dDtFim,@nOpcApu,@aFoment, lGuiaRec, lExclGNR,,@aCDADifal,lAutomato)
- nOpcApu := Iif( nOpcApu == 2 , 1 , Iif( nOpcApu == 3 , 2 , 1 ) )
- Else
- lMonta := CheckApur(cImp,nAno,nMes,nApuracao,nPeriodo,cNrLivro,cImposto,@aDadIC,nMoedTit,cLcPadExt,@cArqApur,@aDadSt,cProgram,,lTitulo,@aFoment,@aApurExp,@aApurOut,@nOpcApu,lAutomato)
- nOpcApu := Iif( nOpcApu == 2 , 1 , Iif( nOpcApu == 3 , 2 , 1 ) )
- EndIf
- //Caso utilize a integracao com o Fluig devo verificar se o usuario logado
- //no sistema possui cadastro no Fluig
- If lGTitFluig
- //Busco dados do Usuario no Fluig
- aDadUsrFlg := FWWFGetUser( cUserName )
- //Se o array estiver vazio eh porque ocorreu algum problema
- //na comunicacao Protheus x Fluig
- If !Empty( aDadUsrFlg )
- //Caso a posicao 2 do array seja Nil significa que
- //o usuario nao existe no Fluig
- If Valtype( aDadUsrFlg[1][2] ) == "U"
- Help( "", 1, 'Usu醨io Inv醠ido',,"O usu醨io " + cUserName + " n鉶 est?cadastrado no Fluig, a apura玢o "+;
- "ser?gerada normalmente sem considerar a integra玢o. ", 1, 1 )
- //Seto a apuracao para nao considerar a integracao
- lGTitFluig := .F.
- EndIf
- Else
- If FWWFIsError()
- Help( "", 1, 'Erro na Comunica玢o Fluig',,"Ocorreu o seguinte erro na integra玢o com o Fluig " + FWWFGetError()[2] +;
- ", a apura玢o ser?gerada normalmente sem considerar a integra玢o", 1, 1 )
- //Seto a apuracao para nao considerar a integracao
- lGTitFluig := .F.
- EndIf
- EndIf
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //砎erifico se preciso montar novamente as inf do Fomentar?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?lAtuFomGO := Iif(Len(aFoment) > 0,.F.,.T.)
- //Verifico a picture dos campos de valores da apuracao
- cPictVal := Iif(lUsaSped,RetPictVal(),"@E 999,999,999.99")
- If lMonta
- If lAutomato
- If FindFunction("GetParAuto")
- aRetAuto := GetParAuto(cTestCase)
- EndIf
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aCols (5) - Resumo da Apuracao - ICMS ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- AADD(aCOLS5,{" "," "," ","","","",.F.})
- AADD(aCOLS5,{" "," ",STR0019,"","","",.F.}) //" DEBITO DO IMPOSTO "
- AADD(aCOLS5,{" "," "," ","","","",.F.})
- AADD(aCOLS5,{"001"," ",STR0020,0,"","",.F.}) //"Por Saidas/Prestacoes com debito do Imposto "
- AADD(aCOLS5,{"002","002.00 ",STR0021,0,"","",.F.}) //"Outros Debitos "
- For nX:=1 to Len(aDadIC)
- IF aDadIC[nX][1]=="002"
- IF lUsaSped .And. len(aDadIC[nX]) == 8
- AADD(aCOLS5,{"002",aDadIC[nX][4],aDadIC[nX][2],aDadIC[nX][3],aDadIC[nX][5],aDadIC[nX][6],aDadIC[nX][7],aDadIC[nX][8],.F.}) //"Texto do usuario
- Else
- AADD(aCOLS5,{"002",aDadIC[nX][4],aDadIC[nX][2],aDadIC[nX][3],aDadIC[nX][5],aDadIC[nX][6],.F.}) //"Texto do usuario
- EndIf
- Endif
- Next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="05" .And. aRetAuto[nPosAuto][3]=="002"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCOLS5,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCOLS5,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCOLS5,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCOLS5,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- AADD(aCOLS5,{"003","003.00 ",STR0022,0,"","",.F.}) //"Estorno de Creditos "
- For nX:=1 to Len(aDadIC)
- IF aDadIC[nX][1]=="003"
- IF lUsaSped .And. len(aDadIC[nX]) == 8
- AADD(aCOLS5,{"003",aDadIC[nX][4],aDadIC[nX][2],aDadIC[nX][3],aDadIC[nX][5],aDadIC[nX][6],aDadIC[nX][7],aDadIC[nX][8],.F.}) //"Texto do usuario
- Else
- AADD(aCOLS5,{"003",aDadIC[nX][4],aDadIC[nX][2],aDadIC[nX][3],aDadIC[nX][5],aDadIC[nX][6],.F.}) //"Texto do usuario
- EndIf
- Endif
- Next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="05" .And. aRetAuto[nPosAuto][3]=="003"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCOLS5,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCOLS5,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCOLS5,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCOLS5,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- If FindFunction("GetSumDH0") .And. AliasIndic("DH0")
- nDH0:= GetSumDH0(DTos(dDtIni),DTos(dDtFim),"ICM")
- If nDH0 > 0
- AADD(aCOLS5,{"003","003.99 ","Estorno de Credito CIAP",nDH0,"","",.F.}) //"Estorno de Creditos "
- EndIf
- Endif
- AADD(aCOLS5,{"004"," ",STR0023,0,"","",.F.}) //"Sub-Total "
- AADD(aCOLS5,{" "," "," ","","","",.F.})
- AADD(aCOLS5,{" "," ",STR0024,"","","",.F.}) //" CREDITO DO IMPOSTO "
- AADD(aCOLS5,{" "," "," ","","","",.F.})
- AADD(aCOLS5,{"005"," ",STR0025,0,"","",.F.}) //"Por Entradas/Aquisicoes com Credito do Imposto"
- AADD(aCOLS5,{"006","006.00 ",STR0026,0," ","",.F.}) //"Outros Creditos "
- For nX:=1 to Len(aDadIC)
- IF aDadIC[nX][1]=="006"
- IF lUsaSped .And. len(aDadIC[nX]) == 8
- AADD(aCOLS5,{"006",aDadIC[nX][4],aDadIC[nX][2],aDadIC[nX][3],aDadIC[nX][5],aDadIC[nX][6],aDadIC[nX][7],aDadIC[nX][8],.F.}) //"Texto do usuario
- Else
- AADD(aCOLS5,{"006",aDadIC[nX][4],aDadIC[nX][2],aDadIC[nX][3],aDadIC[nX][5],aDadIC[nX][6],.F.}) //"Texto do usuario
- EndIf
- Endif
- next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="05" .And. aRetAuto[nPosAuto][3]=="006"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCOLS5,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCOLS5,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCOLS5,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCOLS5,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- AADD(aCOLS5,{"007","007.00 ",STR0027,0,"","",.F.}) //"Estorno de Debitos "
- For nX:=1 to Len(aDadIC)
- IF aDadIC[nX][1]=="007"
- IF lUsaSped .And. len(aDadIC[nX]) == 8
- AADD(aCOLS5,{"007",aDadIC[nX][4],aDadIC[nX][2],aDadIC[nX][3],aDadIC[nX][5],aDadIC[nX][6],aDadIC[nX][7],aDadIC[nX][8],.F.}) //"Texto do usuario
- Else
- AADD(aCOLS5,{"007",aDadIC[nX][4],aDadIC[nX][2],aDadIC[nX][3],aDadIC[nX][5],aDadIC[nX][6],.F.}) //"Texto do usuario
- EndIf
- Endif
- Next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="05" .And. aRetAuto[nPosAuto][3]=="007"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCOLS5,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCOLS5,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCOLS5,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCOLS5,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- AADD(aCOLS5,{"008"," ",STR0023,0,"","",.F.}) //"Sub-Total "
- AADD(aCOLS5,{"009"," ",STR0028,0,"","",.F.}) //"Saldo Credor do Periodo Anterior "
- AADD(aCOLS5,{"010"," ",STR0029,0,"","",.F.}) //"Total "
- AADD(aCOLS5,{" "," "," ","","","",.F.})
- AADD(aCOLS5,{" "," ",STR0030,"","","",.F.}) //" APURACAO DO SALDO "
- AADD(aCOLS5,{" "," "," ","","","",.F.})
- AADD(aCOLS5,{"011"," ",STR0031,0,"","",.F.}) //"Saldo Devedor( Debito menos Credito) "
- AADD(aCOLS5,{"012","012.00 ",STR0032,0,"","",.F.}) //"Deducoes "
- For nX:=1 to Len(aDadIC)
- IF aDadIC[nX][1]=="012"
- IF lUsaSped .And. len(aDadIC[nX]) == 8
- AADD(aCOLS5,{"012",aDadIC[nX][4],aDadIC[nX][2],aDadIC[nX][3],aDadIC[nX][5],aDadIC[nX][6],aDadIC[nX][7],aDadIC[nX][8],.F.}) //"Texto do usuario
- Else
- AADD(aCOLS5,{"012",aDadIC[nX][4],aDadIC[nX][2],aDadIC[nX][3],aDadIC[nX][5],aDadIC[nX][6],.F.}) //"Texto do usuario
- EndIf
- Endif
- next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="05" .And. aRetAuto[nPosAuto][3]=="012"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCOLS5,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCOLS5,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCOLS5,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCOLS5,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- AADD(aCOLS5,{"013"," ",STR0033,0,"","",.F.}) //"Imposto a Recolher "
- AADD(aCOLS5,{"014"," ",STR0034,0,"","",.F.}) //"Saldo Credor ( Credito menos Debito) "
- cObserv := ""
- For nX := 1 To Len(aDadIC)
- If aDadIC[nX][1]=="OBS"
- cObserv += aDadIC[nX][2]+CHR(13)+CHR(10)
- Endif
- Next nX
- //Adiciona um elemento para gravar o CODLAN
- If lUsaSped
- aColAnt := aClone(aCOLS5)
- aCOLS5 := {}
- For nX := 1 to Len(aColAnt)
- If len(aColAnt[nX]) == 7
- AADD(aCOLS5,Array(9))
- For nY := 1 to 6
- aCOLS5[nX][nY] := aColAnt[nX][nY]
- Next
- aCOLS5[nX][7] := ""
- aCOLS5[nX][8] := ""
- aCOLS5[nX][9] := .F.
- Else
- AADD(aCOLS5,aColAnt[nX])
- EndIf
- Next
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aCols (6) Resumo da Apuracao - ST ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- AADD(aCOLS6,{" "," "," ","","","",.F.})
- AADD(aCOLS6,{" "," ",STR0035,"","","",.F.}) //" DEBITO DO IMPOSTO( ST ) "
- AADD(aCOLS6,{" "," "," ","","","",.F.})
- AADD(aCOLS6,{"001"," ",STR0020,0,"","",.F.}) //"Por Saidas/Prestacoes com debito do Imposto "
- AADD(aCOLS6,{"002","002.00 ",STR0021,0,"","",.F.}) //"Outros Debitos "
- For nX:=1 to Len(aDadST)
- IF aDadST[nX][1]=="002"
- IF lUsaSped .And. len(aDadST[nX]) == 8
- AADD(aCOLS6,{"002",aDadST[nX][4],aDadST[nX][2],aDadST[nX][3],aDadST[nX][5],"",aDadST[nX][7],aDadST[nX][8],.F.}) //"Texto do usuario
- Else
- AADD(aCOLS6,{"002",aDadST[nX][4],aDadST[nX][2],aDadST[nX][3],aDadST[nX][5],"",.F.}) //"Texto do usuario
- EndIf
- Endif
- next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="06" .And. aRetAuto[nPosAuto][3]=="002"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCOLS6,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCOLS6,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCOLS6,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCOLS6,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- AADD(aCOLS6,{"003","003.00 ",STR0022,0,"","",.F.}) //"Estorno de Creditos "
- For nX:=1 to Len(aDadST)
- IF aDadST[nX][1]=="003"
- IF lUsaSped .And. len(aDadST[nX]) == 8
- AADD(aCOLS6,{"003",aDadST[nX][4],aDadST[nX][2],aDadST[nX][3],aDadST[nX][5],"",aDadST[nX][7],aDadST[nX][8],.F.}) //"Texto do usuario
- Else
- AADD(aCOLS6,{"003",aDadST[nX][4],aDadST[nX][2],aDadST[nX][3],aDadST[nX][5],"",.F.}) //"Texto do usuario
- EndIf
- Endif
- next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="06" .And. aRetAuto[nPosAuto][3]=="003"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCOLS6,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCOLS6,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCOLS6,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCOLS6,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- AADD(aCOLS6,{"005"," ",STR0036,0,"","",.F.}) //"SUB-TOTAL ( 001+002+003 ) "
- AADD(aCOLS6,{" "," "," ","","","",.F.})
- AADD(aCOLS6,{" "," ",STR0037,"","","",.F.}) //" CREDITO DO IMPOSTO( ST ) "
- AADD(aCOLS6,{" "," "," ","","","",.F.})
- AADD(aCOLS6,{"006"," ",STR0025,0,"","",.F.}) //"Por Entradas/Aquisicoes com Credito do Imposto"
- AADD(aCOLS6,{"007","007.00 ",STR0026,0," ","",.F.}) //"Outros Creditos "
- For nX:=1 to Len(aDadST)
- IF aDadST[nX][1]=="007"
- IF lUsaSped .And. len(aDadST[nX]) == 8
- AADD(aCOLS6,{"007",aDadST[nX][4],aDadST[nX][2],aDadST[nX][3],aDadST[nX][5],aDadST[nX][6],aDadST[nX][7],aDadST[nX][8],.F.}) //"Texto do usuario
- Else
- AADD(aCOLS6,{"007",aDadST[nX][4],aDadST[nX][2],aDadST[nX][3],aDadST[nX][5],aDadST[nX][6],.F.}) //"Texto do usuario
- EndIf
- Endif
- next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="06" .And. aRetAuto[nPosAuto][3]=="007"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCOLS6,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCOLS6,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCOLS6,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCOLS6,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- AADD(aCOLS6,{"008","008.00 ",STR0027,0,"","",.F.}) //"Estorno de Debitos "
- For nX:=1 to Len(aDadST)
- IF aDadST[nX][1]=="008"
- IF lUsaSped .And. len(aDadST[nX]) == 8
- AADD(aCOLS6,{"008",aDadST[nX][4],aDadST[nX][2],aDadST[nX][3],aDadST[nX][5],"",aDadST[nX][7],aDadST[nX][8],.F.}) //"Texto do usuario
- Else
- AADD(aCOLS6,{"008",aDadST[nX][4],aDadST[nX][2],aDadST[nX][3],aDadST[nX][5],"",.F.}) //"Texto do usuario
- EndIf
- Endif
- Next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="06" .And. aRetAuto[nPosAuto][3]=="008"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCOLS6,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCOLS6,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCOLS6,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCOLS6,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- AADD(aCOLS6,{"010"," ",STR0038,0,"","",.F.}) //"SUB-TOTAL ( 006+007+008 ) "
- AADD(aCOLS6,{"011"," ",STR0028,0,"","",.F.}) //"Saldo Credor do Periodo Anterior "
- AADD(aCOLS6,{"012"," ",STR0039,0,"","",.F.}) //"TOTAL ( 010+011 ) "
- AADD(aCOLS6,{" "," "," ","","","",.F.})
- AADD(aCOLS6,{" "," ",STR0040,"","","",.F.}) //" APURACAO DO SALDO( ST ) "
- AADD(aCOLS6,{" "," "," ","","","",.F.})
- AADD(aCOLS6,{"013"," ",STR0041,0,"","",.F.}) //"Saldo Devedor( 005-012 ) "
- AADD(aCOLS6,{"014","014.00 ",STR0032,0,"","",.F.}) //"Deducoes "
- For nX:=1 to Len(aDadST)
- IF aDadST[nX][1]=="014"
- IF lUsaSped .And. len(aDadST[nX]) == 8
- AADD(aCOLS6,{"014",AllTrim(aDadST[nX][4]),aDadST[nX][2],aDadST[nX][3],aDadST[nX][5],"",aDadST[nX][7],aDadST[nX][8],.F.}) //"Texto do usuario
- Else
- AADD(aCOLS6,{"014",aDadST[nX][4],aDadST[nX][2],aDadST[nX][3],aDadST[nX][5],"",.F.}) //"Texto do usuario
- EndIf
- Endif
- Next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="06" .And. aRetAuto[nPosAuto][3]=="014"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCOLS6,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCOLS6,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCOLS6,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCOLS6,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- AADD(aCOLS6,{"015"," ",STR0042,0,"","",.F.}) //"Imposto a Recolher( 013-014 ) "
- AADD(aCOLS6,{"016"," ",STR0043,0,"","",.F.}) //"Saldo Credor ( 012-005 ) "
- //Adiciona um elemento para gravar o CODLAN
- If lUsaSped
- aColAnt := aClone(aCOLS6)
- aCOLS6 := {}
- For nX := 1 to Len(aColAnt)
- If len(aColAnt[nX]) == 7
- AADD(aCOLS6,Array(9))
- For nY := 1 to 6
- aCOLS6[nX][nY] := aColAnt[nX][nY]
- Next
- aCOLS6[nX][7] := ""
- aCOLS6[nX][8] := ""
- aCOLS6[nX][9] := .F.
- Else
- AADD(aCOLS6,aColAnt[nX])
- EndIf
- Next
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aCOLS(7) Informacoes Complementares -Op.Proprias?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- AADD(aCols7,{"015",STR0044,0,.F.}) //1-"ICMS Retido (Saidas-Devolucoes)"
- AADD(aCols7,{"016",STR0045,0,.F.}) //2-"ICMS Complementar (Diferencial de Aliquotas)"
- AADD(aCols7,{"017",STR0046,0,.F.}) //3-"ICMS Retido (Devolucoes de Vendas)"
- AADD(aCols7,{"018",STR0067,0,.F.}) //4-"ICMS Diferido"
- AADD(aCols7,{"019",STR0070,0,.F.}) //5-"ICMS Complementar (Ativo Imobilizado)"
- AADD(aCols7,{"020",STR0071,0,.F.}) //6-"ICMS Complementar (Mat. Uso ou Consumo)"
- AADD(aCols7,{"021",STR0068,0,.F.}) //7-"Transf. de Credito"
- AADD(aCols7,{"022",STR0069,0,.F.}) //8-"Transf. de Debito"
- AADD(aCols7,{"023",STR0073,0,.F.}) //9-"Credito ICMS Solidario"
- AADD(aCols7,{"024",STR0076,0,.F.}) //10-"Credito Estimulo"
- AADD(aCols7,{"025",STR0077,0,.F.}) //11-"Credito Presumido"
- AADD(aCols7,{"026",STR0078,0,.F.}) //12-"Credito Presumido - Prest. Servicos de Transporte"
- AADD(aCols7,{"027",STR0079,0,.F.}) //13-"Credito Presumido - Zona Franca de Manaus"
- AADD(aCols7,{"028",STR0080,0,.F.}) //14-"Credito Presumido - Serv.Transp. t韙ulo ST"
- AADD(aCols7,{"029",STR0086,0,.F.}) //15-"Cred Pres - Inf./Elet./Tel.-Dec.4.316 (BA)"
- AADD(aCols7,{"030",STR0116,0,.F.}) //16-"Fundersul - Mato Grosso do Sul"
- AADD(aCols7,{"031",STR0117,0,.F.}) //17-"Estorno de Credito"
- AADD(aCols7,{"032",STR0126,0,.F.}) //18-"Estorno de Debito"
- AADD(aCols7,{"033",STR0128,0,.F.}) //19-"Fust"
- AADD(aCols7,{"034",STR0129,0,.F.}) //20-"Funttel"
- AADD(aCols7,{"035",STR0235,0,.F.}) //21-"Credito Acumulado - Exporta珲es"
- AADD(aCols7,{"036",STR0236,0,.F.}) //22-"Credito Acumulado - Outras hip髏eses"
- AADD(aCols7,{"037",STR0239,0,.F.}) //23
- AADD(aCols7,{"038",STR0240,0,.F.}) //24
- AADD(aCols7,{"039",STR0241,0,.F.}) //25
- AADD(aCols7,{"040",STR0242,0,.F.}) //26
- AADD(aCols7,{"041",STR0243,0,.F.}) //27-Cred. Presumido-art.631-A do RICMS/2008
- AADD(aCols7,{"042",STR0244,0,.F.}) //28-FECP COMPLEMENTAR
- AADD(aCols7,{"043",STR0245,0,.F.}) //29-Senar
- AADD(aCols7,{"045",STR0252,0,.F.}) //30-Credito Outorgado
- AADD(aCols7,{"046",STR0256,0,.F.}) //31-"ICMS/ST Recolhido no Momento da Entrada no Estado."
- AADD(aCols7,{"047",STR0254,0,.F.}) //32-FECOP-Opera玢o Direta
- AADD(aCols7,{"048",STR0255,0,.F.}) //33-FECOP-Opera玢o Interna ST
- AADD(aCols7,{"049",STR0257,0,.F.}) //34-FECOP-Opera玢o Interestadual ST
- AADD(aCols7,{"050",STR0258,0,.F.}) //35-FECP/MG-ICMS pr髉rio
- AADD(aCols7,{"051",STR0259,0,.F.}) //36-FECP/MG-ICMS ST
- AADD(aCols7,{"052",STR0260,0,.F.}) //37-FECP/MG-ANTECIPADO
- AADD(aCols7,{"053",STR0261,0,.F.}) //38-FECP/MT-ICMS pr髉rio
- AADD(aCols7,{"054","DNVP",0,.F.}) //39-DNVP
- AADD(aCols7,{"055","CNVP",0,.F.}) //40-CNVP
- AADD(aCols7,{"063","PROTEGE-GO",0,.F.}) //41-Fundo de Protecao Social do Estado de GO - PROTEGE
- AADD(aCols7,{"064","FEEF-RJ",0,.F.}) //42-Fundo Estadual de Equil韇rio Fiscal do Estado do Rio de Janeiro
- If lFomentGO
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aCOLS(8) Demonstrativo Apura玢o Fomentar ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- AADD(aCols8,{" "," ",STR0136,"","","",.F.})
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{" "," ",STR0137,"","","",.F.})
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{"001"," ",STR0139,0,"","",.F.})
- AADD(aCols8,{"002"," ",STR0140,0,"","",.F.})
- AADD(aCols8,{"003"," ",STR0141,0,"","",.F.})
- AADD(aCols8,{"004"," ",STR0142,0,"","",.F.})
- AADD(aCols8,{"005"," ",STR0143,0,"","",.F.})
- AADD(aCols8,{"006"," ",STR0144,0,"","",.F.})
- AADD(aCols8,{"007"," ",STR0145,0,"","",.F.})
- AADD(aCols8,{"008"," ",STR0146,0,"","",.F.})
- AADD(aCols8,{"009"," ",STR0147,0,"","",.F.})
- AADD(aCols8,{"010"," ",STR0148,0,"","",.F.})
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{" "," ",STR0276,"","","",.F.})
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{"101"," ",STR0277,0,"","",.F.})
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{" "," ",STR0149,"","","",.F.})
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{"011"," ",STR0150,0,"","",.F.})
- AADD(aCols8,{"012"," ",STR0151,0,"","",.F.})
- AADD(aCols8,{"013"," ",STR0152,0,"","",.F.})
- AADD(aCols8,{"014"," ",STR0153,0,"","",.F.})
- AADD(aCols8,{"015"," ",STR0154,0,"","",.F.})
- AADD(aCols8,{"016"," ",STR0155,0,"","",.F.})
- AADD(aCols8,{"017"," ",STR0156,0,"","",.F.})
- AADD(aCols8,{"018"," ",STR0157,0,"","",.F.})
- AADD(aCols8,{"019"," ",STR0158,0,"","",.F.})
- AADD(aCols8,{"020"," ",STR0159,0,"","",.F.})
- AADD(aCols8,{"021"," ",STR0160,0,"","",.F.})
- AADD(aCols8,{"022"," ",STR0161,0,"","",.F.})
- AADD(aCols8,{"023"," ",STR0162,0,"","",.F.})
- AADD(aCols8,{"024"," ",STR0163,0,"","",.F.})
- AADD(aCols8,{"025"," ",STR0164,0,"","",.F.})
- AADD(aCols8,{"026"," ",STR0165,0,"","",.F.})
- AADD(aCols8,{"027"," ",STR0166,0,"","",.F.})
- AADD(aCols8,{"028"," ",STR0167,0,"","",.F.})
- AADD(aCols8,{"029"," ",STR0168,0,"","",.F.})
- AADD(aCols8,{"030"," ",STR0169,0,"","",.F.})
- AADD(aCols8,{"031"," ",STR0170,0,"","",.F.})
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{" "," ",STR0171,"","","",.F.})
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{"032"," ",STR0172,0,"","",.F.})
- AADD(aCols8,{"033"," ",STR0173,0,"","",.F.})
- AADD(aCols8,{"034"," ",STR0174,0,"","",.F.})
- AADD(aCols8,{"035"," ",STR0175,0,"","",.F.})
- AADD(aCols8,{"036"," ",STR0176,0,"","",.F.})
- AADD(aCols8,{"037"," ",STR0177,0,"","",.F.})
- AADD(aCols8,{"038"," ",STR0178,0,"","",.F.})
- AADD(aCols8,{"039"," ",STR0179,0,"","",.F.})
- AADD(aCols8,{"040"," ",STR0180,0,"","",.F.})
- AADD(aCols8,{"041"," ",STR0181,0,"","",.F.})
- AADD(aCols8,{"042"," ",STR0182,0,"","",.F.})
- AADD(aCols8,{"043"," ",STR0183,0,"","",.F.})
- AADD(aCols8,{"044"," ",STR0184,0,"","",.F.})
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{" "," ",STR0185,"",.F.})
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{" "," ",STR0186,"",.F.})
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{"045"," ",STR0187,0,"","",.F.})
- AADD(aCols8,{"046"," ",STR0188,0,"","",.F.})
- AADD(aCols8,{"047"," ",STR0189,0,"","",.F.})
- AADD(aCols8,{"048"," ",STR0190,0,"","",.F.})
- AADD(aCols8,{"049"," ",STR0191,0,"","",.F.})
- AADD(aCols8,{"050"," ",STR0192,0,"","",.F.})
- AADD(aCols8,{"051"," ",STR0193,0,"","",.F.})
- AADD(aCols8,{"052"," ",STR0194,0,"","",.F.})
- AADD(aCols8,{"053"," ",STR0195,0,"","",.F.})
- AADD(aCols8,{"054"," ",STR0196,0,"","",.F.})
- AADD(aCols8,{"055"," ",STR0197,0,"","",.F.})
- AADD(aCols8,{"056"," ",STR0198,0,"","",.F.})
- AADD(aCols8,{"057"," ",STR0199,0,"","",.F.})
- AADD(aCols8,{"058"," ",STR0200,0,"","",.F.})
- AADD(aCols8,{"059"," ",STR0201,0,"","",.F.})
- AADD(aCols8,{"060"," ",STR0202,0,"","",.F.})
- AADD(aCols8,{"061"," ",STR0203,0,"","",.F.})
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{" "," ",STR0204,"","","",.F.})
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{"062"," ",STR0205,0,"","",.F.})
- AADD(aCols8,{"063"," ",STR0206,0,"","",.F.})
- AADD(aCols8,{"064"," ",STR0207,0,"","",.F.})
- AADD(aCols8,{"065"," ",STR0208,0,"","",.F.})
- AADD(aCols8,{"066"," ",STR0209,0,"","",.F.})
- AADD(aCols8,{"067"," ",STR0210,0,"","",.F.})
- AADD(aCols8,{"068"," ",STR0211,0,"","",.F.})
- AADD(aCols8,{"069"," ",STR0212,0,"","",.F.})
- AADD(aCols8,{"070"," ",STR0213,0,"","",.F.})
- AADD(aCols8,{"071"," ",STR0214,0,"","",.F.})
- AADD(aCols8,{"072"," ",STR0215,0,"","",.F.})
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{" "," ",STR0216,"","","",.F.})
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{"073"," ",STR0217,0,"","",.F.})
- AADD(aCols8,{"074"," ",STR0218,0,"","",.F.})
- AADD(aCols8,{"075"," ",STR0219,0,"","",.F.})
- AADD(aCols8,{"076"," ",STR0220,0,"","",.F.})
- AADD(aCols8,{"077"," ",STR0221,0,"","",.F.})
- AADD(aCols8,{"078"," ",STR0222,0,"","",.F.})
- AADD(aCols8,{"079"," ",STR0223,0,"","",.F.})
- AADD(aCols8,{"080"," ",STR0224,0,"","",.F.})
- AADD(aCols8,{"081"," ",STR0225,0,"","",.F.})
- AADD(aCols8,{"082"," ",STR0226,0,"","",.F.})
- AADD(aCols8,{"083"," ",STR0227,0,"","",.F.})
- AADD(aCols8,{"084"," ",STR0228,0,"","",.F.})
- //Tenho que carregar os valores j?definidos na apuracao caso ele esteja refazendo uma apuracao j?gravada anteriormente
- For nX:=1 to Len(aFoment)
- IF aFoment[nX][1]=="FOM" .And.;
- (Substr(aFoment[nX][2],1,3)$"001#002#003#004#005#006#007#008#009#010#011#012#013#014#015#016#017#018#019#020#021#022#023#024#025#026#027#028#029#030" .Or.;
- Substr(aFoment[nX][2],1,3)$"031#032#033#034#035#036#037#038#039#040#041#042#043#044#045#046#047#048#049#050#051#052#053#054#055#056#057#058#059#060" .Or.;
- Substr(aFoment[nX][2],1,3)$"061#062#063#064#065#066#067#068#069#070#071#072#073#074#075#076#077#078#079#080#081#082#083#084#101")
- nY := aScan(aCols8,{|x| x[1] == Substr(aFoment[nX][2],1,3)})
- If nY <> 0
- nValAtuF := Val(Alltrim(Substr(aFoment[nX][2],79,14)))
- aCols8[nY][4] := nValAtuF
- Endif
- Endif
- Next nX
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?Tratamento para Credito Acumulado de ICMS - Bahia ?
- //?Artigos 106 a 109 do RICMS/BA ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? Elseif lApurBA
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aCOLS(8) - Credito Acumulado BA - Exportacoes ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{" "," ",STR0019,"","","",.F.}) //" DEBITO DO IMPOSTO "
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{"001"," ",STR0020,0,"","",.F.}) //"Por Saidas/Prestacoes com debito do Imposto "
- AADD(aCols8,{"002","002.00 ",STR0021,0,"","",.F.}) //"Outros Debitos "
- For nX:=1 to Len(aApurExp)
- IF aApurExp[nX][1]=="002"
- IF lUsaSped .And. len(aApurExp[nX]) == 7
- AADD(aCols8,{"002",aApurExp[nX][4],aApurExp[nX][2],aApurExp[nX][3],aApurExp[nX][5],aApurExp[nX][6],aApurExp[nX][7],.F.}) //"Texto do usuario
- Else
- AADD(aCols8,{"002",aApurExp[nX][4],aApurExp[nX][2],aApurExp[nX][3],aApurExp[nX][5],aApurExp[nX][6],.F.}) //"Texto do usuario
- EndIf
- Endif
- Next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="08" .And. aRetAuto[nPosAuto][3]=="002"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCols8,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCols8,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCols8,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCols8,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- AADD(aCols8,{"003","003.00 ",STR0022,0,"","",.F.}) //"Estorno de Creditos "
- For nX:=1 to Len(aApurExp)
- IF aApurExp[nX][1]=="003"
- IF lUsaSped .And. len(aApurExp[nX]) == 7
- AADD(aCols8,{"003",aApurExp[nX][4],aApurExp[nX][2],aApurExp[nX][3],aApurExp[nX][5],aApurExp[nX][6],aApurExp[nX][7],.F.}) //"Texto do usuario
- Else
- AADD(aCols8,{"003",aApurExp[nX][4],aApurExp[nX][2],aApurExp[nX][3],aApurExp[nX][5],aApurExp[nX][6],.F.}) //"Texto do usuario
- EndIf
- Endif
- Next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="08" .And. aRetAuto[nPosAuto][3]=="003"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCols8,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCols8,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCols8,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCols8,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- AADD(aCols8,{"004"," ",STR0023,0,"","",.F.}) //"Sub-Total "
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{" "," ",STR0024,"","","",.F.}) //" CREDITO DO IMPOSTO "
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{"005"," ","Entradas/Aquisicoes com Credito do Imposto",0,"","",.F.}) //"Por Entradas/Aquisicoes com Credito do Imposto"
- AADD(aCols8,{"006","006.00 ",STR0026,0," ","",.F.}) //"Outros Creditos "
- For nX:=1 to Len(aApurExp)
- IF aApurExp[nX][1]=="006"
- IF lUsaSped .And. len(aApurExp[nX]) == 7
- AADD(aCols8,{"006",aApurExp[nX][4],aApurExp[nX][2],aApurExp[nX][3],aApurExp[nX][5],aApurExp[nX][6],aApurExp[nX][7],.F.}) //"Texto do usuario
- Else
- AADD(aCols8,{"006",aApurExp[nX][4],aApurExp[nX][2],aApurExp[nX][3],aApurExp[nX][5],aApurExp[nX][6],.F.}) //"Texto do usuario
- EndIf
- Endif
- next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="08" .And. aRetAuto[nPosAuto][3]=="006"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCols8,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCols8,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCols8,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCols8,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- AADD(aCols8,{"007","007.00 ",STR0027,0,"","",.F.}) //"Estorno de Debitos "
- For nX:=1 to Len(aApurExp)
- IF aApurExp[nX][1]=="007"
- IF lUsaSped .And. len(aApurExp[nX]) == 7
- AADD(aCols8,{"007",aApurExp[nX][4],aApurExp[nX][2],aApurExp[nX][3],aApurExp[nX][5],aApurExp[nX][6],aApurExp[nX][7],.F.}) //"Texto do usuario
- Else
- AADD(aCols8,{"007",aApurExp[nX][4],aApurExp[nX][2],aApurExp[nX][3],aApurExp[nX][5],aApurExp[nX][6],.F.}) //"Texto do usuario
- EndIf
- Endif
- Next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="08" .And. aRetAuto[nPosAuto][3]=="007"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCols8,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCols8,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCols8,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCols8,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- AADD(aCols8,{"008"," ",STR0023,0,"","",.F.}) //"Sub-Total "
- AADD(aCols8,{"009"," ",STR0028,0,"","",.F.}) //"Saldo Credor do Periodo Anterior "
- AADD(aCols8,{"010"," ",STR0029,0,"","",.F.}) //"Total "
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{" "," ",STR0030,"","","",.F.}) //" APURACAO DO SALDO "
- AADD(aCols8,{" "," "," ","","","",.F.})
- AADD(aCols8,{"011"," ",STR0031,0,"","",.F.}) //"Saldo Devedor( Debito menos Credito) "
- AADD(aCols8,{"012","012.00 ",STR0032,0,"","",.F.}) //"Deducoes "
- For nX:=1 to Len(aApurExp)
- IF aApurExp[nX][1]=="012"
- IF lUsaSped .And. len(aApurExp[nX]) == 7
- AADD(aCols8,{"012",aApurExp[nX][4],aApurExp[nX][2],aApurExp[nX][3],aApurExp[nX][5],aApurExp[nX][6],aApurExp[nX][7],.F.}) //"Texto do usuario
- Else
- AADD(aCols8,{"012",aApurExp[nX][4],aApurExp[nX][2],aApurExp[nX][3],aApurExp[nX][5],aApurExp[nX][6],.F.}) //"Texto do usuario
- EndIf
- Endif
- next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="08" .And. aRetAuto[nPosAuto][3]=="012"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCols8,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCols8,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCols8,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCols8,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- AADD(aCols8,{"013"," ",STR0033,0,"","",.F.}) //"Imposto a Recolher "
- AADD(aCols8,{"014"," ",STR0034,0,"","",.F.}) //"Saldo Credor ( Credito menos Debito) "
- cObserv := ""
- For nX := 1 To Len(aApurExp)
- If aApurExp[nX][1]=="OBS"
- cObserv += aApurExp[nX][2]+CHR(13)+CHR(10)
- Endif
- Next nX
- //Adiciona um elemento para gravar o CODLAN
- If lUsaSped
- aColAnt := aClone(aCols8)
- aCOLS8 := {}
- For nX := 1 to Len(aColAnt)
- If len(aColAnt[nX]) == 7
- AADD(aCols8,Array(8))
- For nY := 1 to 6
- aCols8[nX][nY] := aColAnt[nX][nY]
- Next
- aCols8[nX][7] := ""
- aCols8[nX][8] := .F.
- Else
- AADD(aCols8,aColAnt[nX])
- EndIf
- Next
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aCOLS(9) - Credito Acumulado BA - Outras hipoteses ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- AADD(aCols9,{" "," "," ","","","",.F.})
- AADD(aCols9,{" "," ",STR0019,"","","",.F.}) //" DEBITO DO IMPOSTO "
- AADD(aCols9,{" "," "," ","","","",.F.})
- AADD(aCols9,{"001"," ",STR0020,0,"","",.F.}) //"Por Saidas/Prestacoes com debito do Imposto "
- AADD(aCols9,{"002","002.00 ",STR0021,0,"","",.F.}) //"Outros Debitos "
- For nX:=1 to Len(aApurOut)
- IF aApurOut[nX][1]=="002"
- IF lUsaSped .And. len(aApurOut[nX]) == 7
- AADD(aCols9,{"002",aApurOut[nX][4],aApurOut[nX][2],aApurOut[nX][3],aApurOut[nX][5],aApurOut[nX][6],aApurOut[nX][7],.F.}) //"Texto do usuario
- Else
- AADD(aCols9,{"002",aApurOut[nX][4],aApurOut[nX][2],aApurOut[nX][3],aApurOut[nX][5],aApurOut[nX][6],.F.}) //"Texto do usuario
- EndIf
- Endif
- Next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="09" .And. aRetAuto[nPosAuto][3]=="002"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCols9,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCols9,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCols9,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCols9,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- AADD(aCols9,{"003","003.00 ",STR0022,0,"","",.F.}) //"Estorno de Creditos "
- For nX:=1 to Len(aApurOut)
- IF aApurOut[nX][1]=="003"
- IF lUsaSped .And. len(aApurOut[nX]) == 7
- AADD(aCols9,{"003",aApurOut[nX][4],aApurOut[nX][2],aApurOut[nX][3],aApurOut[nX][5],aApurOut[nX][6],aApurOut[nX][7],.F.}) //"Texto do usuario
- Else
- AADD(aCols9,{"003",aApurOut[nX][4],aApurOut[nX][2],aApurOut[nX][3],aApurOut[nX][5],aApurOut[nX][6],.F.}) //"Texto do usuario
- EndIf
- Endif
- Next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="09" .And. aRetAuto[nPosAuto][3]=="003"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCols9,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCols9,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCols9,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCols9,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- AADD(aCols9,{"004"," ",STR0023,0,"","",.F.}) //"Sub-Total "
- AADD(aCols9,{" "," "," ","","","",.F.})
- AADD(aCols9,{" "," ",STR0024,"","","",.F.}) //" CREDITO DO IMPOSTO "
- AADD(aCols9,{" "," "," ","","","",.F.})
- AADD(aCols9,{"005"," ","Entradas/Aquisicoes com Credito do Imposto",0,"","",.F.}) //"Por Entradas/Aquisicoes com Credito do Imposto"
- AADD(aCols9,{"006","006.00 ",STR0026,0," ","",.F.}) //"Outros Creditos "
- For nX:=1 to Len(aApurOut)
- IF aApurOut[nX][1]=="006"
- IF lUsaSped .And. len(aApurOut[nX]) == 7
- AADD(aCols9,{"006",aApurOut[nX][4],aApurOut[nX][2],aApurOut[nX][3],aApurOut[nX][5],aApurOut[nX][6],aApurOut[nX][7],.F.}) //"Texto do usuario
- Else
- AADD(aCols9,{"006",aApurOut[nX][4],aApurOut[nX][2],aApurOut[nX][3],aApurOut[nX][5],aApurOut[nX][6],.F.}) //"Texto do usuario
- EndIf
- Endif
- next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="09" .And. aRetAuto[nPosAuto][3]=="006"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCols9,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCols9,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCols9,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCols9,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- AADD(aCols9,{"007","007.00 ",STR0027,0,"","",.F.}) //"Estorno de Debitos "
- For nX:=1 to Len(aApurOut)
- IF aApurOut[nX][1]=="007"
- IF lUsaSped .And. len(aApurOut[nX]) == 7
- AADD(aCols9,{"007",aApurOut[nX][4],aApurOut[nX][2],aApurOut[nX][3],aApurOut[nX][5],aApurOut[nX][6],aApurOut[nX][7],.F.}) //"Texto do usuario
- Else
- AADD(aCols9,{"007",aApurOut[nX][4],aApurOut[nX][2],aApurOut[nX][3],aApurOut[nX][5],aApurOut[nX][6],.F.}) //"Texto do usuario
- EndIf
- Endif
- Next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="09" .And. aRetAuto[nPosAuto][3]=="007"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCols9,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCols9,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCols9,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCols9,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- AADD(aCols9,{"008"," ",STR0023,0,"","",.F.}) //"Sub-Total "
- AADD(aCols9,{"009"," ",STR0028,0,"","",.F.}) //"Saldo Credor do Periodo Anterior "
- AADD(aCols9,{"010"," ",STR0029,0,"","",.F.}) //"Total "
- AADD(aCols9,{" "," "," ","","","",.F.})
- AADD(aCols9,{" "," ",STR0030,"","","",.F.}) //" APURACAO DO SALDO "
- AADD(aCols9,{" "," "," ","","","",.F.})
- AADD(aCols9,{"011"," ",STR0031,0,"","",.F.}) //"Saldo Devedor( Debito menos Credito) "
- AADD(aCols9,{"012","012.00 ",STR0032,0,"","",.F.}) //"Deducoes "
- For nX:=1 to Len(aApurOut)
- IF aApurOut[nX][1]=="012"
- IF lUsaSped .And. len(aApurOut[nX]) == 7
- AADD(aCols9,{"012",aApurOut[nX][4],aApurOut[nX][2],aApurOut[nX][3],aApurOut[nX][5],aApurOut[nX][6],aApurOut[nX][7],.F.}) //"Texto do usuario
- Else
- AADD(aCols9,{"012",aApurOut[nX][4],aApurOut[nX][2],aApurOut[nX][3],aApurOut[nX][5],aApurOut[nX][6],.F.}) //"Texto do usuario
- EndIf
- Endif
- next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="09" .And. aRetAuto[nPosAuto][3]=="012"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCols9,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCols9,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCols9,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCols9,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- AADD(aCols9,{"013"," ",STR0033,0,"","",.F.}) //"Imposto a Recolher "
- AADD(aCols9,{"014"," ",STR0034,0,"","",.F.}) //"Saldo Credor ( Credito menos Debito) "
- cObserv := ""
- For nX := 1 To Len(aApurOut)
- If aApurOut[nX][1]=="OBS"
- cObserv += aApurOut[nX][2]+CHR(13)+CHR(10)
- Endif
- Next nX
- //Adiciona um elemento para gravar o CODLAN
- If lUsaSped
- aColAnt := aClone(aCols9)
- aCOLS9 := {}
- For nX := 1 to Len(aColAnt)
- If len(aColAnt[nX]) == 7
- AADD(aCols9,Array(8))
- For nY := 1 to 6
- aCols9[nX][nY] := aColAnt[nX][nY]
- Next
- aCols9[nX][7] := ""
- aCols9[nX][8] := .F.
- Else
- AADD(aCols9,aColAnt[nX])
- EndIf
- Next
- EndIf
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aCOLS(10) - D閎itos Especiais.?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- IF lUsaSped
- AADD(aCOLS10,{" "," ",Space(30)+"DEBITOS ESPECIAIS - ICMS" ,"" ,"" ,"" ,"" ,.F.})
- AADD(aCOLS10,{"900","900.00 ",STR0238 ,0 ,"" ,"" ,"" ,.F.})
- Else
- AADD(aCOLS10,{" "," ",Space(30)+"DEBITOS ESPECIAIS - ICMS" ,"" ,"" ,"" ,.F.})
- AADD(aCOLS10,{"900","900.00 ",STR0238 ,0 ,"" ,"" ,.F.})
- EndIf
- For nX:=1 to Len(aDadIC)
- IF aDadIC[nX][1]=="900"
- IF lUsaSped .And. len(aDadIC[nX]) == 7
- AADD(aCOLS10,{"900",Padr(aDadIC[nX][4],10),aDadIC[nX][2],aDadIC[nX][3],aDadIC[nX][5],aDadIC[nX][6],aDadIC[nX][7],.F.}) //"Texto do usuario
- Else
- AADD(aCOLS10,{"900",Padr(aDadIC[nX][4],10),aDadIC[nX][2],aDadIC[nX][3],aDadIC[nX][5],aDadIC[nX][6],.F.}) //"Texto do usuario
- EndIf
- Endif
- Next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="10" .And. aRetAuto[nPosAuto][3]=="900"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCOLS10,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCols10,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCOLS10,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCols10,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- IF lUsaSped
- AADD(aCOLS10,{" "," ","" ,"" ,"" ,"" ,"" ,.F.})
- AADD(aCOLS10,{" "," ",Space(27)+"DEBITOS ESPECIAIS - ICMS/ST" ,"" ,"" ,"" ,"" ,.F.})
- AADD(aCOLS10,{"901","901.00 ",STR0238 ,0 ,"" ,"" ,"" ,.F.})
- Else
- AADD(aCOLS10,{" "," ","" ,"" ,"" ,"" ,.F.})
- AADD(aCOLS10,{" "," ",Space(27)+"DEBITOS ESPECIAIS - ICMS/ST" ,"" ,"" ,"" ,.F.})
- AADD(aCOLS10,{"901","901.00 ",STR0238 ,0 ,"" ,"" ,.F.})
- EndIf
- For nX:=1 to Len(aDadST)
- IF aDadST[nX][1]=="901"
- IF lUsaSped .And. len(aDadST[nX]) == 7
- AADD(aCOLS10,{"901",Padr(AllTrim(aDadST[nX][4]),10),aDadST[nX][2],aDadST[nX][3],aDadST[nX][5],"",aDadST[nX][7],.F.})
- Else
- AADD(aCOLS10,{"901",Padr(aDadST[nX][4],10),aDadST[nX][2],aDadST[nX][3],aDadST[nX][5],"",.F.})
- EndIf
- Endif
- Next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="10" .And. aRetAuto[nPosAuto][3]=="901"
- If aRetAuto[nPosAuto][1] == "Man"
- nPosPad := aScan(aCOLS10,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad == 0
- AtuAcols(aCols10,nPosPad,aRetAuto,nPosAuto)
- EndIf
- Elseif aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCOLS10,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCols10,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aHeader (1) Op.Propria - Entradas ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- AADD(aHeader1,{STR0047 ,"F3_CFO" ,"@ 9.9999" ,05,0,".t." ,"? ,"C"," "," " }) //"CFOP"
- AADD(aHeader1,{STR0048 ,"F3_VALCONT" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Valor Contabil"
- AADD(aHeader1,{STR0049 ,"F3_BASEICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Base de Calculo"
- AADD(aHeader1,{STR0050 ,"F3_VALICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Imposto Creditado"
- AADD(aHeader1,{STR0051 ,"F3_ISENICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Isentas"
- AADD(aHeader1,{STR0052 ,"F3_OUTRICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Outras"
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aHeader (2) - Op. Proprias - Saida ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- AADD(aHeader2,{STR0047 ,"F3_CFO" ,"@ 9.9999" ,05,0,".t." ,"? ,"C"," "," " }) //"CFOP"
- AADD(aHeader2,{STR0048 ,"F3_VALCONT" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Valor Contabil"
- AADD(aHeader2,{STR0049 ,"F3_BASEICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Base de Calculo"
- AADD(aHeader2,{STR0053 ,"F3_VALICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Imposto Debitado"
- AADD(aHeader2,{STR0051 ,"F3_ISENICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Isentas"
- AADD(aHeader2,{STR0052 ,"F3_OUTRICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Outras"
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aHeader (3) - Subs. Tributaria - Entrada ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- AADD(aHeader3,{STR0054 ,"F3_ESTADO" ,"@!" ,04,0,".t." ,"? ,"C"," "," " }) //"UF "
- AADD(aHeader3,{STR0049 ,"F3_BASEICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Base de Calculo"
- AADD(aHeader3,{STR0050 ,"F3_VALICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Imposto Creditado"
- AADD(aHeader3,{STR0053 ,"F3_VALICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Imposto Debitado"
- AADD(aHeader3,{STR0028 ,"F3_VALICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Saldo Credor"
- AADD(aHeader3,{STR0237 ,"F3_VALICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Imposto Creditado - Devolu珲es de vendas"
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aHeader (4) Subst. Tributaria - Saida ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- AADD(aHeader4,{STR0054 ,"F3_ESTADO" ,"@!" ,04,0,".t." ,"? ,"C"," "," " }) //"UF "
- AADD(aHeader4,{STR0049 ,"F3_BASEICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Base de Calculo"
- AADD(aHeader4,{STR0053 ,"F3_VALICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Imposto Debitado"
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aHeader (5) Resumo da Apuracao - ICMS ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- AADD(aHeader5,{STR0055 ,"cLinha" ,"@E 999" ,03,0,".t." ,"? ,"C"," "," " }) //"Linha"
- AADD(aHeader5,{STR0056 ,"cCodigo" ,"@!" ,10,0,"a953Codigo()" ,"? ,"C"," "," " }) //"Codigo"
- AADD(aHeader5,{STR0057 ,"cDescr" ,"@!" ,TamSx3("CDH_DESC")[1],0,".t." ,"? ,"C"," "," " }) //"Descricao"
- AADD(aHeader5,{STR0058 ,"nValor" ,cPictVal ,15,2,"a953Saldo(.F.,.F.,.F.,.F.)" ,"? ,"N"," "," " }) //"Valor"
- AADD(aHeader5,{STR0072 ,"cGNRE" ,"@!" ,14,0,"a953GNRE('0')" ,"? ,"C"," "," " }) //"GNRE"
- AADD(aHeader5,{STR0074 ,"cClasse" ,"@!" ,06,0,".t." ,"? ,"C"," "," " }) //"Classe de Vencto."
- If lUsaSped
- AADD(aHeader5,{STR0118 ,"cCodLan" ,"@!" ,22,0,"a953CODLAN('0')" ,"? ,"C"," "," " }) //"Cod. Lan鏰mento"
- AADD(aHeader5,{STR0262 ,"cTipLan" ,"@!" ,01,0,".f." ,"","C","","" }) //"Tipo Lan鏰mento"
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aHeader (6) Resumo da Apuracao - ST ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- AADD(aHeader6,{STR0055 ,"cLinha" ,"@E 999" ,03,0,".t." ,"? ,"C"," "," " }) //"Linha"
- AADD(aHeader6,{STR0056 ,"cCodigo" ,"@!" ,10,0,".t." ,"a953Codigo()" ,"C"," "," " }) //"Codigo"
- AADD(aHeader6,{STR0057 ,"cDescr" ,"@!" ,TamSx3("CDH_DESC")[1],0,".t." ,"? ,"C"," "," " }) //"Descricao"
- AADD(aHeader6,{STR0058 ,"nValor" ,cPictVal ,15,2,"a953Saldo(.F.,.T.,.F.,.F.)" ,"? ,"N"," "," " }) //"Valor"
- AADD(aHeader6,{STR0072 ,"cGNRE" ,"@!" ,14,0,"a953GNRE('1')" ,"? ,"C"," "," " }) //"GNRE"
- AADD(aHeader6,{STR0074 ,"cClasse" ,"@!" ,06,0,".t." ,"? ,"C"," "," " }) //"Classe de Vencto."
- If lUsaSped
- AADD(aHeader6,{STR0118 ,"cCodLan" ,"@!" ,22,0,"a953CODLAN('1')" ,"? ,"C"," "," " }) //"Cod. Lan鏰mento"
- AADD(aHeader6,{STR0262 ,"cTipLan" ,"@!" ,01,0,".f." ,"","C","","" }) //"Tipo Lan鏰mento"
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aHeader (7) Informacoes Complementares ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- AADD(aHeader7,{STR0055 ,"cLinha" ,"@E 999" ,03,0,".t." ,"? ,"C"," "," " }) //"Linha"
- AADD(aHeader7,{STR0057 ,"cDescr" ,"@!" ,47,0,".t." ,"? ,"C"," "," " }) //"Descricao"
- AADD(aHeader7,{STR0058 ,"nValor" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Valor"
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矼ontagem do aHeader (8) Demonstrativo Apura玢o Fomentar?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If lFomentGO
- AADD(aHeader8,{STR0055 ,"cLinha" ,"@E 999" ,03,0,".t." ,"? ,"C"," "," " }) //"Linha"
- AADD(aHeader8,{" " ,"cCodigo" ,"@!" ,1,0,".t." ,"? ,"C"," "," " }) //""
- AADD(aHeader8,{STR0057 ,"cDescr" ,"@!" ,100,0,".t." ,"? ,"C"," "," " }) //"Descricao"
- AADD(aHeader8,{STR0058 ,"nValor" ,cPictVal ,14,2,"a953Saldo(.F.,.F.,.T.,.F.)" ,"? ,"N"," "," " }) //"Valor"
- Endif
- If lApurBA
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aHeader (8) Credito Acumulado - Exportacoes ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- AADD(aHeader8,{STR0055 ,"cLinha" ,"@E 999" ,03,0,".t." ,"? ,"C"," "," " }) //"Linha"
- AADD(aHeader8,{STR0056 ,"cCodigo" ,"@!" ,10,0,"a953Codigo()" ,"? ,"C"," "," " }) //"Codigo"
- AADD(aHeader8,{STR0057 ,"cDescr" ,"@!" ,47,0,".t." ,"? ,"C"," "," " }) //"Descricao"
- AADD(aHeader8,{STR0058 ,"nValor" ,cPictVal ,15,2,"a953Saldo(.F.,.F.,.F.,.T.)" ,"? ,"N"," "," " }) //"Valor"
- AADD(aHeader8,{STR0072 ,"cGNRE" ,"@!" ,14,0,"a953GNRE()" ,"? ,"C"," "," " }) //"GNRE"
- AADD(aHeader8,{STR0074 ,"cClasse" ,"@!" ,06,0,".t." ,"? ,"C"," "," " }) //"Classe de Vencto."
- If lUsaSped
- AADD(aHeader8,{STR0118 ,"cCodLan" ,"@!" ,22,0,"a953CODLAN('0')" ,"? ,"C"," "," " }) //"Cod. Lan鏰mento"
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aHeader (9) Credito Acumulado - Outras hipoteses ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- AADD(aHeader9,{STR0055 ,"cLinha" ,"@E 999" ,03,0,".t." ,"? ,"C"," "," " }) //"Linha"
- AADD(aHeader9,{STR0056 ,"cCodigo" ,"@!" ,10,0,"a953Codigo()" ,"? ,"C"," "," " }) //"Codigo"
- AADD(aHeader9,{STR0057 ,"cDescr" ,"@!" ,47,0,".t." ,"? ,"C"," "," " }) //"Descricao"
- AADD(aHeader9,{STR0058 ,"nValor" ,cPictVal ,15,2,"a953Saldo(.F.,.F.,.F.,.T.)" ,"? ,"N"," "," " }) //"Valor"
- AADD(aHeader9,{STR0072 ,"cGNRE" ,"@!" ,14,0,"a953GNRE()" ,"? ,"C"," "," " }) //"GNRE"
- AADD(aHeader9,{STR0074 ,"cClasse" ,"@!" ,06,0,".t." ,"? ,"C"," "," " }) //"Classe de Vencto."
- If lUsaSped
- AADD(aHeader9,{STR0118 ,"cCodLan" ,"@!" ,22,0,"a953CODLAN('0')" ,"? ,"C"," "," " }) //"Cod. Lan鏰mento"
- EndIf
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aHeader (10) Debitos Especiais ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- AADD(aHeader10,{STR0055 ,"cLinha" ,"@E 999" ,03,0,".t." ,"? ,"C"," "," " }) //"Linha"
- AADD(aHeader10,{STR0056 ,"cCodigo" ,"@!" ,10,0,"a953Codigo()" ,"? ,"C"," "," " }) //"Codigo"
- AADD(aHeader10,{STR0057 ,"cDescr" ,"@!" ,47,0,".t." ,"? ,"C"," "," " }) //"Descricao"
- AADD(aHeader10,{STR0058 ,"nValor" ,cPictVal ,15,2,"a953Saldo(.F.,.F.,.F.,.F.,.T.)" ,"? ,"N"," "," " }) //"Valor"
- AADD(aHeader10,{STR0072 ,"cGNRE" ,"@!" ,14,0,"a953GNRE('')" ,"? ,"C"," "," " }) //"GNRE"
- AADD(aHeader10,{STR0074 ,"cClasse" ,"@!" ,06,0,".t." ,"? ,"C"," "," " }) //"Classe de Vencto."
- If lUsaSped
- AADD(aHeader10,{STR0118 ,"cCodLan" ,"@!" ,22,0,"a953CODLAN('')" ,"? ,"C"," "," " }) //"Cod. Lan鏰mento"
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aHeader (9) Credito Acumulado - Outras hipoteses ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- AADD(aHeader11,{STR0263 ,"cUF" ,"@!" ,15,0,"" ,"? ,"C"," "," " }) //"UF"
- AADD(aHeader11,{STR0264,"nValServ" ,cPictVal ,15,2,"" ,"? ,"N"," "," " }) //"Valor Servi鏾"
- AADD(aHeader11,{STR0265 ,"nBaseCalc" ,cPictVal ,15,2,"" ,"? ,"N"," "," " }) //"Base de calculo"
- AADD(aHeader11,{STR0266 ,"nValor" ,cPictVal ,15,2,".F." ,"? ,"N"," "," " }) //"Valor"
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aHeader (12) Apura玢o DIFAL/FECP agrupada
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- Aadd(aHeader12, {" " ,"cMostra", "@BMP", 2, 0, ".F." ,"" , "C", "", "V" ,"" , "","","V"})
- AADD(aHeader12,{'Estado' ,"cUF" ,"@!" ,40,0,".T." ,"? ,"C"," "," " }) //"UF"
- AADD(aHeader12,{'DIFAL a Recolher' ,"nValServ" ,cPictVal ,15,2,"" ,"? ,"N"," "," " }) //"Valor do Difal a Recolher"
- AADD(aHeader12,{'Saldo Credor DIFAL' ,"nBaseCalc" ,cPictVal ,15,2,"" ,"? ,"N"," "," " }) //"Saldo Credor do Difal"
- AADD(aHeader12,{'FECP a Recolher' ,"nValFecp" ,cPictVal ,15,2,"" ,"? ,"N"," "," " }) //"Fecp a Recolher"
- AADD(aHeader12,{'Saldo Credor FECP' ,"nSaldoFecp" ,cPictVal ,15,2,"" ,"? ,"N"," "," " }) //"Saldo Credor do FECP"
- AADD(aHeader12,{'D閎itos Especial' ,"nDep蓅p" ,cPictVal ,15,2,"" ,"? ,"N"," "," " }) //"Saldo Credor do FECP"
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aHeader (13) Apura玢o DIFAL/FECP Detalhada por UF
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- AADD(aHeader13,{'Linha' ,"cLinha" ,"@E 999" ,3,0,".T." ,"? ,"C"," "," " }) //"C骴igo da Linha"
- AADD(aHeader13,{'SubItem' ,"cCodigo" ,"@!" ,10,0,".T.","? ,"C"," "," " }) //"C骴igo do SubItem"
- AADD(aHeader13,{'Descri玢o' ,"cDescr" ,'@!' ,60,0,"" ,"? ,"C"," "," " }) //"Descri玢o da linha"
- AADD(aHeader13,{'Valor' ,"nValor" ,cPictVal ,15,2,"a953Saldo(.F.,.F.,.F.,.F.,.F.,.F.,.T.)" ,"? ,"N"," "," " }) //"Valor"
- AADD(aHeader13,{'C骴igo Lan鏰mento' ,"cCodLan" ,"@!" ,8,2,"a953CODLAN('2')" ,"" ,"C"," "," " }) //"C骴igo de lan鏰mento de apura玢o"
- AADD(aHeader13,{'GNRE' ,"cGNRE" ,"@!" ,14,0,"a953GNRE('2')" ,"" ,"C"," "," " }) //"GNRE"
- AADD(aHeader13,{'Tipo Ajuste' ,"cTpAju" ,"@!" ,15,0,".T.","? ,"C"," "," " }) //"Tipo de ajuste"
- a953Apura(cImp,dDtIni,dDtFim,cNrLivro,nConsFil,cFilDe,cFilAte,lImpCrdSt,lCrdEst,@aEstimulo,@aIncent,lConsUF,nAno,nMes,nApuracao,nPeriodo,cNrLivro,@lLancCDA,aLisFil,lICMDes,@aIcmPago,@aRetEsp,nOpcApu,@aDifal,@aCDADifal,@aApurDifal,lAutomato,cTestCase)
- If SuperGetMv("MV_ESTADO") == "MG" .And. nVlrArt488 <> 0
- a953Saldo( .T.,.F.,.F.,.F.,.F.,.T.)
- Else
- a953Saldo( .T.,.F.,.F.,.F.) // Operacoes Proprias
- EndIf
- a953Saldo( .T.,.T.,.F.,.F.) // Substituicao Tributaria
- If lFomentGO
- a953Saldo( .T.,.F.,.T.,.F.) // Fomentar
- Elseif lApurBA
- a953Saldo( .T.,.F.,.T.,.T.) // Apuracao Credito Acumulado Bahia
- Endif
- a953Saldo( .T.,.F.,.F.,.F.,.T.) // Debitos Especiais
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矯onforme a consultoria realizada no Jira, apagar a linha do?
- //矲ECP ST de Dedu珲es e de Debitos Especiais quando ?
- //硉em saldo credor e recalcula o saldo da Apura玢o. ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁d
- lApagFecpST := .F.
- If SuperGetMv("MV_ESTADO")$"RJ|BA"
- If (nFecpST := aScan(aCols6,{|aX|aX[1]=="014" .And. "FECP"$Upper(aX[3])}))>0
- If !aCols6[aScan(aCols6,{|aX|aX[1]=="015"}),4]>0
- aDel(aCols6,nFecpST)
- aSize(aCols6,Len(aCols6)-1)
- a953Saldo( .T.,.F.,.F.,.F.) // Operacoes Proprias
- a953Saldo( .T.,.T.,.F.,.F.) // Substituicao Tributaria
- lApagFecpST := .T.
- EndIf
- EndIf
- If lApagFecpST .And. (nFecpST := aScan(aCols10,{|aX|aX[1]$"901" .And. "FECP"$Upper(aX[3])}))>0
- aDel(aCols10,nFecpST)
- aSize(aCols10,Len(aCols10)-1)
- a953Saldo( .T.,.F.,.F.,.F.,.T.) // Debitos Especiais
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矯onforme a consultoria realizada no Jira, apagar a linha do?
- //矲ECP proprio de Dedu珲es e de Debitos Especiais quando ?
- //硉em saldo credor e recalcula o saldo da Apuracao. ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? lApagFecp := .F.
- If (nFecp :=aScan(aCols5,{|aX|aX[1]=="012" .And. "FECP"$Upper(aX[3])}))>0
- If !aCols5[aScan(aCols5,{|aX|aX[1]=="013"}),4]>0
- aDel(aCols5,nFecp)
- aSize(aCols5,Len(aCols5)-1)
- a953Saldo( .T.,.F.,.F.,.F.) // Operacoes Proprias
- a953Saldo( .T.,.T.,.F.,.F.) // Substituicao Tributaria
- lApagFecp := .T.
- Endif
- Endif
- If lApagFecp .And. (nFecp := aScan(aCols10,{|aX|aX[1]$"900" .And. "FECP"$Upper(aX[3])}))>0
- aDel(aCols10,nFecp)
- aSize(aCols10,Len(aCols10)-1)
- a953Saldo( .T.,.F.,.F.,.F.,.T.) // Debitos Especiais
- EndIf
- EndIf
- aObjects := {}
- AAdd( aObjects, { 60, 100, .t., .t. } )
- aInfo := { aSize[ 1 ], aSize[ 2 ], aSize[ 3 ], aSize[ 4 ], 3, 3 }
- aPosObj := MsObjSize( aInfo, aObjects )
- If !lLancCDA .Or. lP9Sped
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Carrega os parametros de autopreenchimento ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- PRIVATE aTotal
- aCFG := FsLoadCFGAp("P9AUTOTEXT")
- FsExecCFGAp(aCFG[4],aObs,aCols5)
- EndIf
- If lArt488MG
- cObserv := cObsArt488MG
- Else
- For nX := 1 To Len(aObs)
- cObserv += aObs[nX]+CHR(13)+CHR(10)
- Next nX
- EndIf
- //verifica o linte do valor do FUMACOP
- If SuperGetMv("MV_ESTADO")$"MA"
- nPosFumac := aScan(aCols5,{|x|x[1]=="011"})
- nLmFumacop := aCols5[nPosFumac,4]
- nPosFumac := aScan(aCols6,{|x|x[1]=="005"})
- nLmFumacop := nLmFumacop + aCols6[nPosFumac,4]
- nPosFumac := aScan(aCols5,{|x|x[1]=="012"})
- If aCols5[nPosFumac+1,4]>nLmFumacop
- aCols5[nPosFumac+1,4] := nLmFumacop
- a953Saldo( .T.,.F.,.F.,.F.) // Operacoes Proprias
- a953Saldo( .T.,.T.,.F.,.F.) // Substituicao Tributaria
- EndIf
- EndIf
- /* -----------------------------------
- INCENTIVOS FISCAIS
- ----------------------------------- */
- /* -------------------
- DESENVOLVE/BA
- ------------------- */
- If GetNewPar("MV_ESTADO") == "BA"
- If !Empty (aApIncent := xApGetIncent( "DES" , , , {2,dDtIni,,,} ) )
- aAdd(aApIncent,"")
- a953Saldo( .T. , .F. , .F. , .F. ) // Operacoes Proprias
- Endif
- /* -------------------
- INVEST/ES
- ------------------- */
- Elseif GetNewPar("MV_ESTADO") == "ES" .And. Len( aMVINVEST ) >= 3
- // Credito Presumido
- // -------------------
- xApGetIncent( "INV" , , , {1,dDtIni,aMVINVEST} )
- a953Saldo( .T. , .F. , .F. , .F. ) // Operacoes Proprias
- // Estorno de Debito
- // -------------------
- xApGetIncent( "INV" , , , {2,dDtIni,aMVINVEST} )
- a953Saldo( .T. , .F. , .F. , .F. ) // Operacoes Proprias
- // Estorno de Credito
- // -------------------
- xApGetIncent( "INV" , , , {3,dDtIni} )
- a953Saldo( .T. , .F. , .F. , .F. ) // Operacoes Proprias
- /* -------------------
- PRODEC(FAMDES)/SC
- ------------------- */
- Elseif GetNewPar("MV_ESTADO") == "SC" .And. Len( aMVFISPRDC ) >= 10
- If !Empty (aApIncent := xApGetIncent( "PDC" , , , {2,dDtIni,,,aMVFISPRDC} ) )
- aAdd(aApIncent,"")
- a953Saldo( .T. , .F. , .F. , .F. ) // Operacoes Proprias
- Endif
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem da Tela ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- DEFINE MSDIALOG oDlg TITLE cCadastro From aSize[7],00 To aSize[6],aSize[5] OF oMainWnd PIXEL
- If lFomentGO
- oFolder := TFolder():New(aPosObj[1,1],aPosObj[1,2],aTitles,{"","","","","","","","",""},oDlg,,,,.T.,.F.,aPosObj[1,4]-aPosObj[1,2],aPosObj[1,3]-aPosObj[1,1])
- Elseif lApurBA
- oFolder := TFolder():New(aPosObj[1,1],aPosObj[1,2],aTitles,{"","","","","","","","","",""},oDlg,,,,.T.,.F.,aPosObj[1,4]-aPosObj[1,2],aPosObj[1,3]-aPosObj[1,1])
- Else
- oFolder := TFolder():New(aPosObj[1,1],aPosObj[1,2],aTitles,{"","","","","","","",""},oDlg,,,,.T.,.F.,aPosObj[1,4]-aPosObj[1,2],aPosObj[1,3]-aPosObj[1,1])
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Define as posicoes da Getdados a partir do folder ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- nOpcx := 4
- nOpca := 1
- nGd1 := 2
- nGd2 := 2
- nGd3 := aPosObj[1,3]-aPosObj[1,1]-15
- nGd4 := aPosObj[1,4]-aPosObj[1,2]-4
- IF lCon13906
- aHeader := aClone(aHeader11)
- aCols := aClone(aCols11)
- oGetDad11 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"a953lin5Ok","A953TdOk","",nOpcx!=2,aAlter11,3,,len(aCols11),,,,"a953Del5Col",oFolder:aDialogs[nTitCnv139])
- oGetDad11:oBrowse:lDisablePaint := .T.
- oGetDad11:oBrowse:bDrawSelect := {|| a953Cpo5Alt(oGetDad11:oBrowse)}
- oGetDad11:oBrowse:Cargo:={|nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB| MyEditCel(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)}
- EndIF
- aHeader := aClone(aHeader10)
- aCols := aClone(aCols10)
- oGetDad10 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"a953lin5Ok","A953TdOk","",nOpcx!=2,aAlter10,3,,Len(aCols10),,,,"a953Del5Col(.T.)",oFolder:aDialogs[nTitDebEsp])
- oGetDad10 :oBrowse:lDisablePaint := .T.
- oGetDad10 :oBrowse:bDrawSelect := {|| a953Cpo5Alt(oGetDad10:oBrowse)}
- oGetDad10 :oBrowse:Cargo := {|nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB| MyEditCel(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)}
- //Cria novo folder com apura玢o consolidada do DIFAL/FECP
- aHeader := aClone(aHeader13)
- aCols := aClone(aCols13)
- oGetDad13 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"a953Lin6Ok","a953VldDif()","",nOpcx!=2,aAlter13,3,,len(aCols13),,,,"a953Del5Col",oFolder:aDialogs[nTitDifal])
- oGetDad13:oBrowse:lDisablePaint := .T.
- oGetDad13:oBrowse:bDrawSelect := {|| a953CPODIF(oGetDad13:oBrowse)}
- oGetDad13:oBrowse:Cargo:={|nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB| MyEditCel(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)}
- oGetDad13:oBrowse:bLDblClick := {|| DuploClick(@oGetDad12,@oGetDad13,@oDlg,@aApurDifal,dDtIni)}
- If lUsaSped
- oGetDad13:aInfo[5][1] := "CDO" //na coluna de Cod Lancamento
- oGetDad13:aInfo[6][1] := "SF6DIF" //na coluna de Cod Lancamento
- EndIf
- aHeader := aClone(aHeader12)
- aCols := aClone(aCols12)
- oGetDad12 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"A953Lin6Ok","a953VldDif()","",nOpcx!=2,aAlter12,3,,len(aCols12),,,,"a953Del5Col",oFolder:aDialogs[nTitDifal])
- oGetDad12:oBrowse:lDisablePaint := .T.
- oGetDad12:oBrowse:bDrawSelect := {|| .T.}
- oGetDad12:oBrowse:Cargo:={|nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB| MyEditCel(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)}
- oGetDad12:oBrowse:bLDblClick := {|| DuploClick(@oGetDad12,@oGetDad13,@oDlg,@aApurDifal,dDtIni)}
- //Adiciona Consulta Padrao na coluna de Cod Lancamento
- oGetDad10:aInfo[5][1] := "SF6AP" //na coluna de GNRE
- If lUsaSped .And. len(aHeader10) == 7
- oGetDad10:aInfo[7][1] := "CDO"
- EndIf
- If lFomentGO
- aHeader := aClone(aHeader8)
- aCols := aClone(aCols8)
- oGetDad8 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"AlwaysTrue","AlwaysTrue","",nOpcx!=2,aAlter8,,,len(aCols8),,,,,oFolder:aDialogs[9])
- oGetDad8:oBrowse:lDisablePaint := .T.
- oGetDad8 :oBrowse:bDrawSelect := {|| a953Cpo8Alt(oGetDad8:oBrowse)}
- oGetDad8:oBrowse:Cargo:={|nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB| MyEditCelF(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)}
- Elseif lApurBA
- //Exportacoes
- aHeader := aClone(aHeader8)
- aCols := aClone(aCols8)
- oGetDad8 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"a953lin5Ok","A953TdOk","",nOpcx!=2,aAlter8,3,,len(aCols8),,,,"a953Del5Col",oFolder:aDialogs[9])
- oGetDad8:oBrowse:lDisablePaint := .T.
- oGetDad8:oBrowse:bDrawSelect := {|| a953Cpo5Alt(oGetDad8:oBrowse)}
- oGetDad8:oBrowse:Cargo:={|nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB| MyEditCel(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)}
- //Outras hipoteses
- aHeader := aClone(aHeader9)
- aCols := aClone(aCols9)
- oGetDad9 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"a953lin5Ok","A953TdOk","",nOpcx!=2,aAlter9,3,,len(aCols9),,,,"a953Del5Col",oFolder:aDialogs[10])
- oGetDad9:oBrowse:lDisablePaint := .T.
- oGetDad9:oBrowse:bDrawSelect := {|| a953Cpo5Alt(oGetDad9:oBrowse)}
- oGetDad9:oBrowse:Cargo:={|nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB| MyEditCel(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)}
- Endif
- aHeader := aClone(aHeader7)
- aCols := aClone(aCols7)
- oGetDad7 := MSGetDados():New(nGd1,nGd2,58,388,nOpcx,"AlwaysTrue","AlwaysTrue","",nOpcx!=2,aAlter7,,,len(aCols7),,,,,oFolder:aDialogs[7])
- oFolder:aDialogs[7]:oFont := oDlg:oFont
- @ 62 ,002 TO 170,386 LABEL '' OF oFolder:aDialogs[7] PIXEL
- @ 072, 020 SAY OemToAnsi(STR0059) Of oFolder:aDialogs[7] PIXEL SIZE 80,08 //"Data de Vencimento do Imposto:"
- @ 070, 101 MSGET dDtVenc VALID (dDtVenc>=dDtFim) OF oFolder:aDialogs[7] PIXEL WHEN (nVlrTitulo>0) SIZE 32,08
- @ 089, 020 SAY OemToAnsi(STR0060)Of oFolder:aDialogs[7] PIXEL SIZE 60,08 //"Org刼 Arrecadador :"
- @ 087, 101 MSGET cOrgArrec PICTURE "@!" OF oFolder:aDialogs[7] PIXEL WHEN (nVlrTitulo>0) SIZE 80 ,9
- @ 112, 020 SAY OemToAnsi(STR0061) Of oFolder:aDialogs[7] PIXEL SIZE 80,08 //"Observacoes :"
- @ 117, 070 GET cObserv MEMO OF oFolder:aDialogs[7] PIXEL SIZE 260,042
- oGetDad7 :oBrowse:lDisablePaint := .T.
- aHeader := aClone(aHeader6)
- aCols := aClone(aCols6)
- oGetDad6 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"a953Lin6Ok","AlwaysTrue","",nOpcx!=2,aAlter6,3,,23,,,,"a953Del6Col",oFolder:aDialogs[6])
- oGetDad6 :oBrowse:lDisablePaint := .T.
- oGetDad6 :oBrowse:bDrawSelect := {|| a953Cpo6Alt(oGetDad6:oBrowse)}
- oGetDad6 :oBrowse:Cargo := {|nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB| MyEditCelST(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)}
- //Adiciona Consulta Padrao na coluna de Cod Lancamento
- If lUsaSped .And. len(aHeader6) == 8
- oGetDad6:aInfo[7][1] := "CDO"
- EndIf
- aHeader := aClone(aHeader5)
- aCols := aClone(aCols5)
- oGetDad5 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"a953lin5Ok","A953TdOk","",nOpcx!=2,aAlter5,3,,len(aCols5),,,,"a953Del5Col",oFolder:aDialogs[5])
- oGetDad5 :oBrowse:lDisablePaint := .T.
- oGetDad5 :oBrowse:bDrawSelect := {|| a953Cpo5Alt(oGetDad5:oBrowse)}
- oGetDad5 :oBrowse:Cargo := {|nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB| MyEditCel(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)}
- //Adiciona Consulta Padrao
- oGetDad5:aInfo[5][1] := "SF6AP" //na coluna de GNRE
- If lUsaSped .And. len(aHeader5) == 8
- oGetDad5:aInfo[7][1] := "CDO" //na coluna de Cod Lancamento
- EndIf
- aHeader := aClone(aHeader4)
- aCols := aClone(aCols4)
- oGetDad4 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"AlwaysTrue","AlwaysTrue","",nOpcx!=2,aAlter4,,,len(aCols4),,,,,oFolder:aDialogs[4])
- oGetDad4 :oBrowse:lDisablePaint := .T.
- aHeader := aClone(aHeader3)
- aCols := aClone(aCols3)
- oGetDad3 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"AlwaysTrue","AlwaysTrue","",nOpcx!=2,aAlter3,,,len(aCols3),,,,,oFolder:aDialogs[3])
- oGetDad3 :oBrowse:lDisablePaint := .T.
- aHeader := aClone(aHeader2)
- aCols := aClone(aCols2)
- oGetDad2 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"AlwaysTrue","AlwaysTrue","",nOpcx!=2,aAlter2,,,len(aCols2),,,,,oFolder:aDialogs[2])
- oGetDad2 :oBrowse:lDisablePaint := .T.
- aHeader := aClone(aHeader1)
- aCols := aClone(aCols1)
- oGetDad1 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"AlwaysTrue","AlwaysTrue","",nOpcx!=2,aAlter1,,,len(aCols1),,,,,oFolder:aDialogs[1])
- oGetDad1 :oBrowse:lDisablePaint := .T.
- If lFomentGO
- oFolder:bSetOption:={|nAtu| Ft953Fld(nAtu,oFolder:nOption,oFolder,{oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,{oGetDad12,oGetDad13},oGetDad8,oGetDad10,oGetDad11},aApurDifal,nAno)}
- Elseif lApurBA
- oFolder:bSetOption:={|nAtu| Ft953Fld(nAtu,oFolder:nOption,oFolder,{oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,{oGetDad12,oGetDad13},oGetDad8,oGetDad9,oGetDad10,oGetDad11},aApurDifal,nAno)}
- //Adiciona Consulta Padrao na coluna de Cod Lancamento
- If lUsaSped .And. len(aHeader8) == 7
- oGetDad8:aInfo[7][1] := "CDO"
- EndIf
- //Adiciona Consulta Padrao na coluna de Cod Lancamento
- If lUsaSped .And. len(aHeader9) == 7
- oGetDad9:aInfo[7][1] := "CDO"
- EndIf
- Else
- oFolder:bSetOption:={|nAtu| Ft953Fld(nAtu,oFolder:nOption,oFolder,{oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,{oGetDad12,oGetDad13},oGetDad10,oGetDad11},aApurDifal,nAno)}
- Endif
- If ( nOpcx!=2 )
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?Ao confirmar, simula a mudanca de folder para atualizar os arrays necessarios ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If lFomentGO
- If !lAutomato
- ACTIVATE MSDIALOG oDlg ON INIT ( Ft953Refre( { oGetDad1, oGetDad2, oGetDad3, oGetDad4, oGetDad5, oGetDad6, oGetDad7, oGetDad8,oGetDad9,oGetDad10,oGetDad11,oGetDad12,oGetDad13 } ),;
- EnchoiceBar(oDlg,{||nopca:=If(Ft953Fld(oFolder:nOption,oFolder:nOption,oFolder,{oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,{oGetDad12,oGetDad13},oGetDad8,oGetDad10,oGetDad11},aApurDifal,nAno).And.;
- Ft953Ok({oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,oGetDad8,oGetDad10,oGetDad12,oGetDad13},;
- oFolder:nOption),1,0),If(nOpcA==1,oDlg:End(),Nil)},{||nOpcA:=0,oDlg:End()},,{{"BMPINCLUIR",{|| AddAcols(If(oFolder:nOption==5,oGetDad5,If(oFolder:nOption==6,oGetDad6,If(oFolder:nOption==8,oGetDad8,If(oFolder:nOption==9,oGetDad10,If(oFolder:nOption==10,oGetDad13,Nil))))))},STR0062,STR0075},;
- {"BMPVISUAL",{|| ProcLogView()},'Vizualiza玢o do LOG de processamento multi-thread',"Log MThread"},{"BMPVISUAL",{|| A953Legenda()} ,'Legenda','Legenda'}})) //"Inclui Linhas"
- Else
- nOpcA := If (Ft953Fld(oFolder:nOption,oFolder:nOption,oFolder,{oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,{oGetDad12,oGetDad13},oGetDad8,oGetDad10,oGetDad11},aApurDifal,nAno) .And. ;
- Ft953Ok({oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,oGetDad8,oGetDad10,oGetDad12,oGetDad13},oFolder:nOption),1,0)
- EndIf
- Elseif lApurBa
- If !lAutomato
- ACTIVATE MSDIALOG oDlg ON INIT ( Ft953Refre( { oGetDad1, oGetDad2, oGetDad3, oGetDad4, oGetDad5, oGetDad6, oGetDad7, oGetDad8, oGetDad9,oGetDad10,oGetDad11,oGetDad12,oGetDad13 } ),;
- EnchoiceBar(oDlg,{||nopca:=If(Ft953Fld(oFolder:nOption,oFolder:nOption,oFolder,{oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,{oGetDad12,oGetDad13},oGetDad8,oGetDad9,oGetDad10,oGetDad11},aApurDifal,nAno).And.;
- Ft953Ok({oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,oGetDad8,oGetDad9,oGetDad10,oGetDad12,oGetDad13},;
- oFolder:nOption),1,0),If(nOpcA==1,oDlg:End(),Nil)},{||nOpcA:=0,oDlg:End()},,{{"BMPINCLUIR",{|| AddAcols(If(oFolder:nOption==5,oGetDad5,If(oFolder:nOption==6,oGetDad6,If(oFolder:nOption==8,oGetDad8,If(oFolder:nOption==9,oGetDad9,If(oFolder:nOption==10,oGetDad10,Nil))))))},STR0062,STR0075},;
- {"BMPVISUAL",{|| ProcLogView()},'Vizualiza玢o do LOG de processamento multi-thread',"Log MThread"},{"BMPVISUAL",{|| A953Legenda()} ,'Legenda','Legenda'}})) //"Inclui Linhas"
- Else
- nOpcA := If (Ft953Fld(oFolder:nOption,oFolder:nOption,oFolder,{oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,{oGetDad12,oGetDad13},oGetDad8,oGetDad9,oGetDad10,oGetDad11},aApurDifal,nAno) .And. ;
- Ft953Ok({oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,oGetDad8,oGetDad9,oGetDad10,oGetDad12,oGetDad13},oFolder:nOption),1,0)
- EndIf
- Else
- If !lAutomato
- ACTIVATE MSDIALOG oDlg ON INIT ( Ft953Refre( { oGetDad1, oGetDad2, oGetDad3, oGetDad4, oGetDad5, oGetDad6, oGetDad7,oGetDad8,oGetDad9,oGetDad10,oGetDad11,oGetDad12,oGetDad13} ),;
- EnchoiceBar(oDlg,{||nopca:=If(Ft953Fld(oFolder:nOption,oFolder:nOption,oFolder,{oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,{oGetDad12,oGetDad13},oGetDad10,oGetDad11},aApurDifal,nAno).And.;
- Ft953Ok({oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,oGetDad10,oGetDad12,oGetDad13},;
- oFolder:nOption),1,0),If(nOpcA==1,oDlg:End(),Nil)},{||nOpcA:=0,oDlg:End()},,{{"BMPINCLUIR",{|| AddAcols(If(oFolder:nOption==5,oGetDad5,If(oFolder:nOption==6,oGetDad6,If(oFolder:nOption==8,oGetDad10,IF(oFolder:nOption==9,oGetDad13,Nil)))))},STR0062,STR0075},;
- {"BMPVISUAL",{|| ProcLogView()},'Vizualiza玢o do LOG de processamento multi-thread',"Log MThread"}, {"BMPVISUAL",{|| A953Legenda()} ,'Legenda','Legenda'} })) //"Inclui Linhas"
- Else
- nOpcA := If (Ft953Fld(oFolder:nOption,oFolder:nOption,oFolder,{oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,{oGetDad12,oGetDad13},oGetDad10,oGetDad11},aApurDifal,nAno) .And. ;
- Ft953Ok({oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,oGetDad10,oGetDad12,oGetDad13},oFolder:nOption),1,0)
- EndIf
- Endif
- If ( nOpcA == 1 )
- If Existblock("A953CONT")
- aApuICM:= FisApur(cImp,nAno,nMes,nApuracao,nPeriodo,cNrLivro,.F.,aApuICM,nMoedTit,.F.,"")
- Execblock("A953CONT",.F.,.F.,aApuICM)
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Apaga arquivo de apuracao ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- IiF(File(cArqApur),Ferase(cArqApur),.F.)
- cArqST := substr(cArqApur,1,Len(cArqApur)-3)+"ST"+substr(cArqApur,Len(cArqApur),1)
- IiF(File(cArqST),Ferase(cArqST),.F.)
- //Adiciono no array de Apuracao do ICMS os valores de debitos especiais. Codigo 900/901 e subitem 900.??/901.??
- For nXX := 1 To Len(aCOLS10)
- If aCOLS10[nXX,1]=="900"
- aAdd(aCOLS5,aCOLS10[nXX])
- ElseIf aCOLS10[nXX,1]=="901"
- aAdd(aCOLS6,aCOLS10[nXX])
- EndIf
- Next nXX
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矴era as guias de recolhimento do ICMS ST, da seguinte forma: ?
- //砅ara o estado do contribuinte: Saidas - Entradas (apurado) ?
- //砅ara outros estados: Apenas saidas (Ler Explicacao Abaixo) ?
- //?conforme consulta IOB em 01/11/2006) ?
- //? ?
- //矰e acordo com informacao acima nao deveria ser realizada geracao de GNRE de ICMS ST com valor ?
- //砤purado (Saidas - Entradas) nos casos de operacoes interestaduais, deveria apenas considerar o ?
- //硋alor da saida, porem na data de 20/10/2011 foi realizada nova analise e constatado que a GNRE deve ser?
- //砱erada com o valor apurado(Saidas - Entradas). ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- // Entradas com ST
- For nX := 1 To Len(aCols3)
- If !Empty(aCols3[nX][1]) .And. aCols3[nX][3]+aCols3[nX][5] > 0 .And. Empty(aCols3[nX][6]) /*.And. aCols3[nX][1] == SuperGetMv("MV_ESTADO")*/
- nY := aScan(aGNRESt,{|x| x[1] == aCols3[nX][1]})
- If nY == 0
- aadd(aGNRESt,{aCols3[nX][1],0,.F., .F.,0})
- nY := Len(aGNRESt)
- EndIf
- aGNRESt[nY,2] -= aCols3[nX][3]+aCols3[nX][5]
- EndIf
- //Tratamento para nota de entrada com debito de ICMS-ST. Tratamento para todos os estados, como na saida.
- If !Empty(aCols3[nX][1]) .And. aCols3[nX][4] > 0
- If (SuperGetMv("MV_ESTADO") $"PE|MG" .OR. SuperGetMv("MV_DESTENT",,.F.)) .And. aCols3[nX][1] == SuperGetMv("MV_ESTADO")
- Loop
- Endif
- nY := aScan(aGNRESt,{|x| x[1] == aCols3[nX][1]})
- If nY == 0
- aadd(aGNRESt,{aCols3[nX][1],0,.F., .F.,0})
- nY := Len(aGNRESt)
- EndIf
- aGNRESt[nY,2] += aCols3[nX][4]
- EndIf
- //Devolucoes de vendas - credita no saldo ST
- If !Empty(aCols3[nX][1]) .And. Valtype(aCOLS3[nX,6]) == "N" .And. aCols3[nX][6] > 0
- nY := aScan(aGNRESt,{|x| x[1] == aCols3[nX][1]})
- If nY == 0
- aadd(aGNRESt,{aCols3[nX][1],0,.F.,.F.,0})
- nY := Len(aGNRESt)
- EndIf
- aGNRESt[nY,2] -= aCols3[nX][6]+aCols3[nX][5]
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪??
- //矱ste tratamento eh utilizado para subtrair o valor de debito de ST dos documentos de ?
- //? entrada que tiveram a configuacao para gerar um imposto debitado(CREDST=3). ?
- //? Alem disso, tambem tiveram um lancamento de debito especial configurado, gerando ?
- //? entao na apuracao de ICMS/ST um valor a pagar em ST-Entrada e outro tambem ?
- //? em Debitos Especiais. ?
- //? ?
- //砈em este tratamento, seria gerado 2 GNREs, uma para o debito de ST-Entrada e outro ?
- //? para o Debito Especial. Este tratamento visa contemplar somente o valor referente ao?
- //? lancamento de debitos especiais. ?
- //? ?
- //|SubStr(aX[3],4,1)=="1" --> A quarta opcao igual a "1" Indica que se refere a um |
- //| lancamento de debito especial de ST |
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?? aEval(aRetEsp,{|aX| aGNRESt[nY,2] -= Iif(aX[3]==aCols3[nX][1] .And. SubStr(aX[3],4,1)=="1",aX[2],0)})
- Next nX
- // Saidas com ST para todos os estados
- For nX := 1 To Len(aCols4)
- If !Empty(aCols4[nX][1]) .And. aCols4[nX][3] > 0
- nY := aScan(aGNRESt,{|x| x[1] == aCols4[nX][1]})
- If nY == 0
- aadd(aGNRESt,{aCols4[nX][1],0,.F., .F.,0})
- nY := Len(aGNRESt)
- EndIf
- nPos := aScan(aRecStDif,{|y| y[2] == aGNREST[nY][01]}) //Verifica se ?o mesmo estado
- If (nPos <> 0) .And. aRecStDif[nPos][3]>0
- aGNRESt[nY,2] += (aCols4[nX][3] - aRecStDif[nPos][3])
- aadd(aGNRESt,{aCols4[nX][1],aRecStDif[nPos][3],.F., .T.,0})
- Else
- aGNRESt[nY,2] += aCols4[nX][3]
- aGNRESt[nY,5] += aCols4[nX][04]
- EndIf
- EndIf
- Next nX
- // Contabilizando outros creditos e outros debitos.
- // A verificacao sera feita da seguinte forma:
- // Sera verificado os dois primeiros digitos do sub-codigo de outros creditos e outros debitos.
- // Se no array aGNRESt eu ja tiver o estado informado irei considerar os outros deb/cred para o titulo
- // mas se nao tiver o estado informado irei considerar para o titulo do MV_ESTADO do contribuinte.
- For nX := 1 To Len(aCols6)
- If aCols6[nX][1] == "002" .And. aCols6[nX][2] <> "002.00" //Outros debitos
- cUfAjSt := IIF(lUsaSped,Substr(aCols6[nX][7],1,2),Substr(aCols6[nX][3],1,2))
- nY := aScan(aGNRESt,{|x| x[1] == cUfAjSt})
- nY := Iif(nY == 0,aScan(aCols6,{|x| x[1] == SuperGetMv("MV_ESTADO")}),nY)
- If nY <> 0 .And. aCols6[nX,4] > 0
- aGNRESt[nY,2] += aCols6[nX,4]
- ElseIf aCols6[nX,4] > 0
- nZ := aScan(aGNRESt,{|x| x[1] == cUfAjSt })
- If !( cUfAjSt $ SuperGetMv("MV_ESTICM"))
- nZ := Iif(nZ == 0,aScan(aGNRESt,{|x| x[1] == SuperGetMv("MV_ESTADO")}),nZ)
- Endif
- If nZ <> 0
- aGNRESt[nZ,2] += aCols6[nX,4]
- Else
- nK := Len(aGNRESt) + 1
- aadd(aGNRESt,{Iif( cUfAjSt $ SuperGetMv("MV_ESTICM") , cUfAjSt ,SuperGetMv("MV_ESTADO")),0,.F., .F.,0})
- aGNRESt[nK,2] += aCols6[nX,4]
- EndIf
- Endif
- ElseIf aCols6[nX][1] == "007" .And. aCols6[nX][2] <> "007.00" //Outros creditos
- cUfAjSt := IIF(lUsaSped,Substr(aCols6[nX][7],1,2),Substr(aCols6[nX][3],1,2))
- nY := aScan(aGNRESt,{|x| x[1] == cUfAjSt})
- nY := Iif(nY == 0,aScan(aGNRESt,{|x| x[1] == SuperGetMv("MV_ESTADO")}),nY)
- If nY <> 0 .And. aCols6[nX,4] > 0
- aGNRESt[nY,2] -= aCols6[nX,4]
- Endif
- ElseIf aCols6[nX][1] == "003" .And. aCols6[nX][2] <> "003.00" //Estorno de creditos
- cUfAjSt := IIF(lUsaSped,Substr(aCols6[nX][7],1,2),Substr(aCols6[nX][3],1,2))
- nY := aScan(aGNRESt,{|x| x[1] == cUfAjSt})
- nY := Iif(nY == 0,aScan(aGNRESt,{|x| x[1] == SuperGetMv("MV_ESTADO")}),nY)
- If nY <> 0 .And. aCols6[nX,4] > 0
- aGNRESt[nY,2] += aCols6[nX,4]
- Endif
- ElseIf aCols6[nX][1] == "008" .And. aCols6[nX][2] <> "008.00" //Estorno de debitos
- cUfAjSt := IIF(lUsaSped,Substr(aCols6[nX][7],1,2),Substr(aCols6[nX][3],1,2))
- nY := aScan(aGNRESt,{|x| x[1] == cUfAjSt})
- nY := Iif(nY == 0,aScan(aGNRESt,{|x| x[1] == SuperGetMv("MV_ESTADO")}),nY)
- If nY <> 0 .And. aCols6[nX,4] > 0
- aGNRESt[nY,2] -= aCols6[nX,4]
- Endif
- ElseIf aCols6[nX][1] == "014" .And. aCols6[nX][2] <> "014.00" //Deducoes
- cUfAjSt := IIF(lUsaSped,Substr(aCols6[nX][7],1,2),Substr(aCols6[nX][3],1,2))
- nY := aScan(aGNRESt,{|x| x[1] == cUfAjSt})
- nY := Iif(nY == 0,aScan(aGNRESt,{|x| x[1] == SuperGetMv("MV_ESTADO")}),nY)
- If nY <> 0 .And. aCols6[nX,4] > 0 .And. !('FECP'$aCols6[nX,3])
- aGNRESt[nY,2] -= aCols6[nX,4]
- Endif
- EndIf
- If !Empty(aCOLS6[nX,5]) .And. AllTrim(aCols6[nX,1])<>"007" .And. AllTrim(aCols6[nX,1])<>"008" .And. AllTrim(aCols6[nX,1])<>"014"
- cUfAjSt := IIF(lUsaSped,Substr(aCols6[nX][7],1,2),Substr(aCols6[nX][3],1,2))
- nY := aScan(aGNRESt,{|x| x[1] == cUfAjSt})
- nY := Iif(nY == 0,aScan(aGNRESt,{|x| x[1] == SuperGetMv("MV_ESTADO")}),nY)
- If nY <> 0 .And. aCols6[nX,4] > 0
- aGNRESt[nY,2] -= aCols6[nX,4]
- EndIf
- EndIf
- If aCols6[nX][1] == "011" .And. aCols6[nX][2] <> "011.00" //Creditos Periodo Anterior
- cUfAjSt := IIF(lUsaSped,Substr(aCols6[nX][7],1,2),Substr(aCols6[nX][3],1,2))
- nY := aScan(aGNRESt,{|x| x[1] == cUfAjSt})
- nY := Iif(nY == 0,aScan(aGNRESt,{|x| x[1] == SuperGetMv("MV_ESTADO")}),nY)
- If nY <> 0 .And. aCols6[nX,4] > 0 .And. aCols3[Len(aCols3),5] > 0
- aGNRESt[nY,2] -= aCols6[nX,4]
- EndIf
- EndIf
- Next nX
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?Abate do valor a recolher o valor das guias ja pagas (amarracao CDC)|
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? For nX := 1 to len(aIcmPago)
- If (nY := aScan(aGNRESt,{|x| x[1] == aIcmPago[nX][1]})) > 0
- aGNRESt[nY,2] -= aIcmPago[nX][2]
- EndIf
- Next
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?Inicializa a gera鏰o de lancamentos do SIGAPCO ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? PcoIniLan('000250')
- Begin Transaction
- nPosRecPR := Ascan(aCols5,{|x|x[1]=="013"}) //imposto a recolher
- nPosFECP := Ascan(aCols5,{|x|x[1]=="012"}) //FECP a recolher
- nPosRecST := Ascan(aCols6,{|x|x[1]=="015"}) //imposto a recolher Substituicao Tributaria
- nPosFECPST := Ascan(aCols6,{|x|x[1]=="014"}) //FECP a recolher Substituicao Tributaria
- If SuperGetMv("MV_ESTADO") == "MG"
- nPosFECPMG:= Ascan(aCols5,{|x|x[1]=="012"}) //FECP a recolher
- nPosFESTMG:= Ascan(aCols6,{|x|x[1]=="014"}) //FECP a recolher Substituicao Tributaria
- nPosFCPMG:= Ascan(aCols5,{|x|x[1]=="007"}) //FECP a recolher, referente ao FEM
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //砎isando Atender a FNC:27052/2011 foi incluido tratamento para que o valor ?
- //砫o ICMS COMPLEMENTAR seja deduzido do valor apurado de ICMS PROPRIO ?
- //硁a geracao da GNRE quando o parametro MV_DCOMPRO = .T. ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If lMvDComPro
- nPosDifAliq := Ascan(aCols7,{|x|x[1]=="016"})//ICMS COMPLEMENTAR - Diferencial de Aliquota
- nVlrTitulo := (aCols5[nPosRecPR,4] - aCols7[nPosDifAliq][3])
- Else
- nVlrTitulo := aCols5[nPosRecPR,4]
- nVlrTitST := aCols6[nPosRecST,4]
- EndIf
- nPosDeb := Ascan(aCols5,{|x|x[1]=="900"}) // Debitos Especiais ICMS proprio
- nPosDebSt := Ascan(aCols6,{|x|x[1]=="901"}) // Debitos Especiais ST
- For nNum :=1 to Len(aCOLS5)
- //Somente considero os registros que tem o nr da GNRE preenchido e que nao estejam em OUTROS CREDITOS, ESTORNO DE DEBITO e DEBITOS ESPECIAIS
- If !Empty(aCOLS5[nNum,5]) .And. AllTrim(aCols5[nNum,1])<>"006" .And. AllTrim(aCols5[nNum,1])<>"007" .And. AllTrim(aCols5[nNum,1])<>"012" .And. AllTrim(aCols5[nNum,1])<>"900" .And. AllTrim(aCols5[nNum,1])<>"901"
- nVlrTitulo -=aCols5[nNum,4]
- //aCols5[nPosRecPR,4] -=aCols5[nNum,4]
- EndIf
- Next
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Efetua Lancamento Contabil LP 712 Apuracao ICMS Saldo Credor ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If lContab
- VALOR := aCols5[ Ascan(aCols5,{|x|x[1]=="004"}) ,04]
- VALOR2 := aCols5[ Ascan(aCols5,{|x|x[1]=="010"}) ,04]
- LancCont("712","MATA953",lContab)
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Armazena vencimento e orgao arrecadador do imposto ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- nValGuiaSf6 := nVlrTitulo
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Efetua consistencia de Guias selecionadas ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- aGNRE := VerificaGNRE()
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //砅E caso haja necessidade de se parametrizar a grava玢o dos titulos (SE2) e GNREs gerados atraves da Apuracao de ICMS.?
- //? O PE deve substituir a gravacao padrao. ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? lApPadrao := .T.
- If ExistBlock ("MT953TIT") .And. !lGTitFluig
- aGNRSTAnt := aGNREST
- aRet := ExecBlock ("MT953TIT", .F., .F., {lTitulo, cImposto, cImp, cLcPadTit, dDtIni, dDtFim, dDtVenc, nMoedTit, lGuiaRec, nMes, nAno, lContab, aGNRESt, cMVSIGNRE, cProdec, cOrgArrec, nValGuiaSf6})
- If ValType (aRet)=="A" .And. Len (aRet)>=6 .And.;
- ValType (aRet[1])=="C" .And.;
- ValType (aRet[2])=="A" .And.;
- ValType (aRet[3])=="A" .And.;
- ValType (aRet[4])=="A" .And.;
- ValType (aRet[5])=="L" .And.;
- ValType (aRet[6])=="C"
- cNumero := aRet[1]
- aGNRE := aRet[2]
- aGNREST := aRet[3]
- aTitulo := aRet[4]
- lInfComp := aRet[5]
- cNumero2 := aRet[6]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矨rray com os dados dos titulos gerados, para grava玢o no CDH ?
- //砫eve estar no seguinte formato: {E2_PREFIXO,E2_NUM,E2_PARCELA,E2_TIPO,E2_FORNECE,E2_LOJA,"IC" ou "ST","Descr"}?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If Len (aRet)==7 .And. ValType (aRet[7])=="A"
- aTitCDH := aRet[7]
- EndIf
- lApPadrao := .F.
- Else //Se o PE NAO retornar as informacoes necessarias, processo pelo PADRAO
- cNumero := Space(TamSx3("F6_NUMERO")[1])
- aGNRE := {}
- aGNREST := aGNRSTAnt
- aTitulo := {}
- lInfComp := .F.
- cNumero2 := Space(TamSx3("F6_NUMERO")[1])
- lApPadrao := .T.
- EndIf
- EndIf //Fim do tratamento para o PE MT953TIT
- If lApPadrao
- nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "ICMS"$aX[8] .And. !"COMPLEMENTAR"$Upper(aX[8])})
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矴rava o titulo do ICMS Normal?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪? nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nSolicFlg := FGerTit(lTitulo,nVlrTitulo,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit,lGuiaRec,nMes,nAno, nValGuiaSf6,;
- 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,,,;
- Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),@aRecTit,@lConfTit,,,,,,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0100 //"Apura玢o do ICMS - ICMS Normal"
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0100})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0100, nSolicFlg } )
- EndIf
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?Gera os lancamentos do SIGAPCO ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? PcoDetLan('000250','01','MATA953')
- //Altera data de vencimento conforme guia de recolhimento apenas se gerar a mesma
- If mv_par13 = 1
- if SF6->F6_DTVENC <> dDtVenc
- dDtVenc := SF6->F6_DTVENC
- EndIF
- EndIf
- If lTitulo .And. nVlrTitulo>0 .And. lConfTit
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nVlrTitulo})
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矴rava o titulo de Adicional relativo ao FECP ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- nVlrFECP := 0
- If SuperGetMv("MV_ESTADO")$"RJ|BA" .And. aCols5[nPosFECP,4]>0
- For nIx := nPosFECP To Len(aCols5)
- //Gero neste momento somente quando o numero da GNRE nao for informado, caso seja, serah gerado mais abaixo.
- //Desconsidera as linhas de debitos especiais "900" - P9AUTOTEXT.RJ - para que o valor do FECP nao seja somado 2x.
- If "FECP"$aCols5[nIx,3] .And. Empty(aCols5[nIx,5]) .And. !"900"$aCols5[nIx,1]
- nVlrFECP += aCols5[nIx,4]
- EndIf
- Next nIx
- EndIf
- If SuperGetMv("MV_ESTADO")$"RJ|BA" .And. nVlrFECP>0
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nSolicFlg := FGerTit(lTitulo,nVlrFECP,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,nVlrFECP,;
- 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,.T.,,,@aRecTit,@lConfTit,,,,"RFECP",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0101 //"Apura玢o do ICMS - Adicional FECP"
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0101})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0101, nSolicFlg } )
- EndIf
- Endif
- If lTitulo .And. nVlrFECP>0 .And. lConfTit
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nVlrFECP})
- Endif
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矴rava o titulo de Adicional relativo ao FECOP-RN ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If SuperGetMv("MV_ESTADO")=="RN"
- nVFcRN5410 := 0
- nVFcRN5415 := 0
- nVFcRN5420 := 0
- If aCols7[32,3]>0//FECOP opera玢o direta consumo
- nVFcRN5410 += aCols7[32,3]
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nPsGNR5410 := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "ICMS"$aX[8] .And. "RFECP"$Upper(aX[7])})
- nSolicFlg := FGerTit(lTitulo,nVFcRN5410,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,nVFcRN5410,;
- 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,.T.,,Iif(nPsGNR5410>0,aGNREX[nPsGNR5410,1],Nil),@aRecTit,@lConfTit,,,,"RFECP",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0254 //"FECOP-Opera玢o Direta
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0254})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0254, nSolicFlg } )
- EndIf
- Endif
- If lTitulo .And. nVFcRN5410>0 .And. lConfTit
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nVFcRN5410})
- Endif
- EndIf
- If aCols7[33,3]>0//FECOP opera玢o interna ST
- nVFcRN5415 += aCols7[33,3]
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nPsGNR5415 := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "ICMS"$aX[8] .And. nVFcRN5415==aX[3] .And. "RFECPST"$Upper(aX[7])})
- nSolicFlg := FGerTit(lTitulo,nVFcRN5415,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,0,;
- nVFcRN5415,"MATA953",lContab,@cNumero,@aGNRE,,,,,.T.,,Iif(nPsGNR5415>0,aGNREX[nPsGNR5415,1],Nil),@aRecTit,@lConfTit,,,,"RFECPST",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0255 //"FECOP-Opera玢o Interna ST
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"ST",STR0255})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "ST", STR0255, nSolicFlg } )
- EndIf
- Endif
- If lTitulo .And. nVFcRN5415>0 .And. lConfTit
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nVFcRN5415})
- Endif
- EndIf
- If aCols7[34,3]>0//FECOP opera玢o interestadual ST
- nVFcRN5420 += aCols7[34,3]
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nPsGNR5420 := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "ICMS"$aX[8] .And. nVFcRN5420==aX[3] .And. "RFECPST"$Upper(aX[7])})
- nSolicFlg := FGerTit(lTitulo,nVFcRN5420,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,0,;
- nVFcRN5420,"MATA953",lContab,@cNumero,@aGNRE,,,,,.T.,,Iif(nPsGNR5420>0,aGNREX[nPsGNR5420,1],Nil),@aRecTit,@lConfTit,,,,"RFECPST",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0257 //"FECOP-Opera玢o Interestadual ST
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"ST",STR0257})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "ST", STR0257, nSolicFlg } )
- EndIf
- Endif
- If lTitulo .And. nVFcRN5420>0 .And. lConfTit
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nVFcRN5420})
- Endif
- EndIf
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矴rava o titulo de Adicional relativo ao FECP-MG?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If SuperGetMv("MV_ESTADO")=="MG"
- nVFcMG := 0
- nVFcMGST := 0
- If aCols5[nPosFECPMG,4]>0
- For nIx := nPosFECPMG To Len(aCols5)
- If "012.01"==Alltrim(aCols5[nIx,2]) .And. "FECP"$Alltrim(aCols5[nIx,3]) .And. Empty(aCols5[nIx,5]) .And. !"900"$aCols5[nIx,2] //Gero neste momento, somente quando o numero da GNRE nao for informado, caso seja, serah gerado mais abaixo.
- nVFcMG += aCols5[nIx,4]
- EndIf
- Next nIx
- EndIf
- If aCols5[nPosFCPMG,4]>0
- For nIx := nPosFCPMG To Len(aCols5)
- If "007" $ Alltrim(aCols5[nIx,1]) .And. "MG20000018"$Alltrim(aCols5[nIx,7]) .And. Empty(aCols5[nIx,5]) .And. !"900"$aCols5[nIx,2] //Gero neste momento, somente quando o numero da GNRE nao for informado, caso seja, serah gerado mais abaixo.
- nVFcMG += aCols5[nIx,4]
- EndIf
- Next nIx
- EndIf
- If aCols7[35,3]>0 .And. nVFcMG > 0 //FECP ICMS pr髉rio
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nPsGNRMG := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "ICMS"$aX[8] .And. "RFECP"$Upper(aX[7])})
- nSolicFlg := FGerTit(lTitulo,nVFcMG,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,nVFcMG,;
- 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,.T.,,Iif(nPsGNRMG>0,aGNREX[nPsGNRMG,1],Nil),@aRecTit,@lConfTit,,,,"RFECP",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0258 //"FECP/MG-ICMS pr髉rio
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0258})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0258, nSolicFlg } )
- EndIf
- Endif
- If lTitulo .And. nVFcMG > 0 .And. lConfTit
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nVFcMG})
- Endif
- EndIf
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪目
- //矴rava o titulo do FECP-MT?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪? If SuperGetMv("MV_ESTADO")=="MT"
- nVFcMT := 0
- If aCols7[38,3]>0
- nVFcMT += aCols7[38,3]
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nPsGNRMT := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "ICMS"$aX[8] .And. "RFECP"$Upper(aX[7])})
- nSolicFlg := FGerTit(lTitulo,nVFcMT,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,nVFcMT,;
- 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,.T.,,Iif(nPsGNRMT>0,aGNREX[nPsGNRMT,1],Nil),@aRecTit,@lConfTit,,,,"RFECP",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0261
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0258})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0258, nSolicFlg } )
- EndIf
- Endif
- If lTitulo .And. nVFcMT > 0 .And. lConfTit
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nVFcMT})
- Endif
- EndIf
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矴rava o titulo do PROTEGE - GO?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If SuperGetMv("MV_ESTADO")=="GO" .And. lGnrePrtge
- nProtege := 0
- If aCols7[41,3]>0
- nProtege += aCols7[41,3]
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nSolicFlg := FGerTit(lGnrePrtge,nProtege,cImposto,"PR",cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit,.F.,nMes,nAno,nProtege,;
- 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,.F.,,,@aRecTit,@lConfTit,,,,"",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0270
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0270})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0102, nSolicFlg } )
- EndIf
- Endif
- If lGnrePrtge .And. nProtege > 0 .And. lConfTit
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nProtege})
- Endif
- EndIf
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矴rava o titulo do FEEF-RJ ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If SuperGetMv("MV_ESTADO")=="RJ"
- nFeef := 0
- If aCols7[42,3]>0
- nFeef += aCols7[42,3]
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nSolicFlg := FGerTit(lTitulo,nFeef,cImposto,"FEEF",cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit,.F.,nMes,nAno,nFeef,;
- 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,.F.,,,@aRecTit,@lConfTit,,,,"",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0270
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",'Fundo Estadual de Equil韇rio Fiscal do Estado do Rio de janeiro ?FEEF'})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0102, nSolicFlg } )
- EndIf
- Endif
- If nFeef > 0 .And. lConfTit
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nFeef})
- Endif
- EndIf
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矴rava o titulo de Diferencial de Aliquotas (RJ/MG/DF) ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- // Para o DF Art. 74 do RICMS DF
- If lIcmCompl .And. aCols7[2,3] > 0
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "COMPLEMENTAR"$Upper(aX[8])})
- nSolicFlg := FGerTit(lTitulo,aCols7[2,3],cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit,lGuiaRec,nMes,nAno, aCols7[2,3],;
- 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,,.T.,Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),@aRecTit,@lConfTit,,,,"RICDIF",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0102 //"Apura玢o do ICMS - ICMS Complementar"
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0102})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0102, nSolicFlg } )
- EndIf
- Endif
- If lTitulo .And. aCols7[2,3]>0 .And. lConfTit
- lInfComp := .T.
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,aCols7[2,3]})
- Endif
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矴era o titulo a pagar referente ao ICMS Complementar ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If lIcmCompl .And. SuperGetMv("MV_ESTADO")$"RJ|BA" .And. aCols7[28,3] > 0
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nSolicFlg := FGerTit(lTitulo,aCols7[28,3],cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit,lGuiaRec,nMes,nAno, aCols7[28,3],;
- 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,,.T.,,@aRecTit,@lConfTit,,,,"RICDIFRJ",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0244 //"FECP Complementar(Cod Receita 750-1)"
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0102})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0102, nSolicFlg } )
- EndIf
- Endif
- If lTitulo .And. aCols7[28,3]>0 .And. lConfTit
- lInfComp := .T.
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,aCols7[28,3]})
- Endif
- Endif
- IF lCon13906 .AND. lGnreC139
- For nNum := 1 to Len (aCols11)
- nRecTit := Len(aRecTit)
- IF Len(Alltrim(aCols11[nNum,1])) == 2
- nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. 'CONV蔔IO 139/06'$Upper(aX[8])})
- nSolicFlg := FGerTit(lGnreC139,aCols11[nNum,4],cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit, Iif(Alltrim(aCols11[nNum,1]) $ SuperGetMv("MV_139GNUF",,""),.F.,.T.),nMes,nAno,0,;
- 0,"MATA953",lContab,@cNumero,@aGNRE,,@aGNREST,;
- aCols11[nNum,1],,,,Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),@aRecTit,@lConfTit,,,,'CONV139',,,,aCols11[nNum,4],,,,,,,,,,,lAutomato,aRetAuto,)
- EndIF
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := 'CONVENIO 139/06' //"FECP Complementar(Cod Receita 750-1)"
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0102})
- EndIf
- EndIF
- Next nNum
- EndIF
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矴rava os titulos de Substituicao Tributaria para os estados com valor de imposto retido na operacao?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? For nNum := 1 to Len(aGNREST)
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- lFECPsep:= aGNRESt[nNum][05] > 0
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //砈e existir Deb. Especial e Debitar Substituicao Tributaria, nao gera GNRE?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? nVlrDebSt := 0
- //Nao eh necessario realizar esta deducao pois ja foram feitas anteriormente
- If !SuperGetMv("MV_ESTADO") $ cMVUFICDED
- If aCols6[nPosDebSt,4]>0
- For nIx := nPosDebSt TO Len(aCols6)
- If "901"$aCols6[nIx,2] .And. Empty(aCols6[nIx,5]) .And. !"FECP"$aCols6[nIx,3] .And. !Empty(aCols6[nIx,7]) .And. Left(aCols6[nIx,7],2)==aGNREST[nNum,1]
- nVlrDebSt := aCols6[nIx,4]
- Endif
- Next nIx
- aGNREST[nNum,2] -= nVlrDebSt
- EndIf
- Endif
- If SuperGetMv("MV_ESTADO")=="RN"
- nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "- ST"$aX[8] .And. aGNREST[nNum,1]==aX[5] .And. aX[7]=="RECSALDO" .And. aGNREST[nNum,2]==aX[3]})
- Else
- nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "- ST"$aX[8] .And. aGNREST[nNum,1]==aX[5] .And. aGNREST[nNum,2]==aX[3]})
- EndIf
- nValGNREST := aGNREST[nNum][02]
- nValFECSEP := aGNRESt[nNum][05]
- IF aGNREST[nNum][04] .And. !(cNrLivro $ Alltrim(SuperGetMV("MV_APUSEP",,""))) //// Valida para n鉶 gerar titulo e GNRE para ST de subapura玢o
- If Len(aPzRecSt) > 0 .And. (aPzRecSt[01][02] <= 31) .And. (Month2Str((FirstDate(MonthSum(aDatas[01],aPzRecSt[01][01]))))== Month2Str(DaySum(FirstDate(MonthSum(aDatas[01],2)),(aPzRecSt[01][02])-1)))
- dDtVencDif:= DaySum(FirstDate(MonthSum(aDatas[01],aPzRecSt[01][01])),(aPzRecSt[01][02])-1) //Gera com o dia que foi definido no Par鈓etro
- ElseIf Len(aPzRecSt) > 0 .And. Len(aDatas)>0 //Se pular para o proximo M阺 pega o ultimo dia do mes
- dDtVencDif := LastDate(FirstDate(MonthSum(aDatas[01],aPzRecSt[01][01])))
- EndIf
- nSolicFlg := FGerTit(lTitulo,nValGNREST,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
- DataValida(dDtVencDif,.F.),nMoedTit,lGuiaRec,nMes,nAno,0,;
- nValGNREST,"MATA953",lContab,@cNumero,@aGNRE,,@aGNREST,;
- aGNREST[nNum][01],,,,Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),@aRecTit,@lConfTit,,,,,,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- ElseIf !(cNrLivro $ Alltrim(SuperGetMV("MV_APUSEP",,""))) // Valida para n鉶 gerar titulo e GNRE para ST de subapura玢o
- nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "- ST"$aX[8] .And. aGNREST[nNum,1]==aX[5] .And. aGNREST[nNum,2]==aX[3]+nValFECSEP})
- nSolicFlg := FGerTit(lTitulo,Iif(lFECPsep,nValGNREST - nValFECSEP,nValGNREST),cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,0,;
- Iif(lFECPsep,nValGNREST - nValFECSEP,nValGNREST),"MATA953",lContab,@cNumero,@aGNRE,,@aGNREST,;
- aGNREST[nNum][01],,,,Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),@aRecTit,@lConfTit,,,,,,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0104 //"Apura玢o do ICMS - Substitui玢o Tribut醨ia"
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"ST",STR0104})
- EndIf
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "ST", STR0104, nSolicFlg } )
- EndIf
- Endif
- If lFECPsep
- nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "- ST"$aX[8] .And. aGNREST[nNum,1]==aX[5] .And. nValFECSEP == aX[3]})
- nSolicFlg := FGerTit(lTitulo,nValFECSEP,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,0,;
- nValFECSEP,"MATA953",lContab,@cNumero,@aGNRE,,,aGNREST[nNum][01],,.T.,,Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),@aRecTit,@lConfTit,,,,,,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0104 //"Apura玢o do ICMS - Substitui玢o Tribut醨ia"
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"ST",STR0104})
- EndIf
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "ST", STR0104, nSolicFlg } )
- EndIf
- Endif
- EndIf
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?Gera os lancamentos do SIGAPCO ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? PcoDetLan('000250','03','MATA953')
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矴rava a informacao do titulo na apuracao se o mesmo foi gerado?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If lTitulo .And. aGNREST[nNum][02]>0 .And. lConfTit
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,aGNREST[nNum][02]})
- Endif
- Next
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矴ero as GNREs de ICMS/ST que tiveram o numero informado manualmente na apuracao?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? For nNum :=1 to Len(aCOLS6)
- //Somente considero os registros que tem o nr da GNRE preenchido
- If !Empty(aCOLS6[nNum,5]) .And. !"901"$aCols6[nNum,2]
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nSolicFlg := FGerTit(lTitulo,aCols6[nNum,4],cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,0,;
- aCols6[nNum,4],"MATA953",lContab,@cNumero,@aGNRE,aCOLS6[nNum,6],@aGNREST,substr(aCOLS6[nNum,7],1,2),,,,aCOLS6[nNum,5],@aRecTit,@lConfTit,,,,aCols6[nNum,2],,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0104 //"Apura玢o do ICMS - Substitui玢o Tribut醨ia"
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"ST",STR0104})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "ST", STR0104, nSolicFlg } )
- EndIf
- Endif
- EndIf
- Next
- /*
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //砎erifica se para Debitos Especiais ICMS tem numero de GNRE?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- For nNum :=1 to Len(aCOLS5)
- //Somente considero os registros que tem o nr da GNRE preenchido
- If !Empty(aCOLS5[nNum,5])
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- GravaTit(lTitulo,aCols5[nNum,4],cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit,lGuiaRec,nMes,nAno, aCols5[nNum,4],;
- 0,"MATA953",lContab,@cNumero2,@aGNRE,aCOLS5[nNum,6],,,,,,aCOLS5[nNum,5],@aRecTit,@lConfTit,,,,aCOLS5[nNum,2])
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0248 //"Debitos Especiais ICMS Normal"
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0248})
- EndIf
- Endif
- EndIf
- Next
- */
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矴ero todas as GNREs amarradas na apucacao de ICMS Proprio manualmente preenchendo o numero da guia.?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? For nNum :=1 to Len(aCOLS5)
- //Somente considero os registros que tem o nr da GNRE preenchido
- If !Empty(aCOLS5[nNum,5]) // .And. !"900"$aCols5[nNum,2]
- If !(AllTrim (aCOLS5[nNum, 2])$cMVSIGNRE)
- dDtVenc2 :=STOD(StrZero(Year(ddtvenc)+Val(cProdec),4)+StrZero(Month(ddtvenc),2)+StrZero(Day(ddtvenc),2))
- Else
- dDtVenc2 := dDtVenc
- EndIf
- //
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nSolicFlg := FGerTit(lTitulo,aCols5[nNum,4],cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
- dDtVenc2,nMoedTit,lGuiaRec,nMes,nAno,aCols5[nNum,4],;
- 0,"MATA953",lContab,@cNumero2,@aGNRE,aCOLS5[nNum,6],,,,,,aCOLS5[nNum,5],@aRecTit,@lConfTit,,,,aCOLS5[nNum,2],,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0105 //"Apura玢o do ICMS - PRODEC"
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0105})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0105, nSolicFlg } )
- EndIf
- Endif
- /* //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //砈UPONHAMOS QUE POSSU蚆OS UM D葿ITO DE 100, INSERIMOS UM SUBITEM ?
- //? DE MAIS 150 GERANDO UMA GNRE INDEPENDENTE NUMERO "000001". AO ?
- //? CONFIRMAR A APURACAO DE ICMS, APARECERA O PRIMEIRO DEBITO DE 100 ?
- //? ONDE INFORMAMOS O NUMERO DA GNRE "000001" (MESMO NUMERO DA GNRE ?
- //? INDEPENDENTE A SER GERADA), ESTA GNRE SERA GRAVADA, EM SEGUIDA, SERA ?
- //? APRESENTADA NOVAMENTE A TELA DE GRAVACAO DA GNRE INDEPENDENTE NO ?
- //? VALOR DE 150 COM O MESMO NUMERO, SE REDIGITARMOS O NUMERO SERA ?
- //? APRESENTADO O HELP "JAGRAVADO", MAS SE NAO REDIGITARMOS E GRAVARMOS ?
- //? SE ALTERAR O CAMPO DE NUMERO, SERA CRIADO DUAS GNREs COM O MESMO ?
- //? NUMERO PARA O MESMO ESTADO. ?
- //矲OI IMPLEMENTADO UM TRATAMENTO NA GRAVATIT PARA QUANDO OCORRER ESTA ?
- //? SITUACAO, O CAMPO SERA ZERADO OBRIGANDO A DIGITACAO, NESTE PONTO O QUE?
- //? FOI DIGITADO DEVERA TAMBEM ALTERAR TAMBEM A GRAVACAO DO ARQUITO TEXTO ?
- //? DA APURACAO. ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If (Len (aGNRE)>0)
- aCOLS5[nNum,5] := aGNRE[Len (aGNRE)][1]
- EndIf
- */ //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?Gera os lancamentos do SIGAPCO ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? PcoDetLan('000250','04','MATA953')
- EndIf
- Next
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矴era a Guia de Recolhimento para os Debitos Especiais de ICMS Proprio?
- //|Serah gerado abaixo, somente as GNREs que nao tiveram um numero |
- //| amarrado atraves da Apuracao. |
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //砊ratamento para os estado que utilizam o FECP Generico (F3_VALFECP/F3_VFECPST) e que nao possuem tratamento ?
- //砮specifico para geracao das GNRE's. ?
- //? ?
- //砄s estados que possuem esses tratamentos especificos (MT;RN;MG;MA;RJ;BA) nao terao as guias de FECP ?
- //砱eradas neste momento, pois ja foram feitas anteriormente. ?
- //? ?
- //砃este processamento (para Debitos Especiais), vou separar as linhas de lancadas especificamente para o FECP das ?
- //砫emais linhas, para assim gerar a Guia de forma separada. ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If !( GetNewPar( "MV_ESTADO" ) $ "MT|RN|MG|MA|RJ|BA" )
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //砎erifico se a aba de Debitos Especiais (ICMS Proprio) possui recolhimento de imposto ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If aCols5[ nPosDeb , 4 ] > 0
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矨baixo passo por todas as linhas incluidas em Debitos Especiais, segregando os valores que serao ?
- //硆ecolhidos exclusivamente para o FECP - para outros estados outras nomenclaturas, por esse motivo ?
- //砤 utilizacao da funcao UFxNameFcp() - dos valores recolhidos normalmente como ICMS Proprio. ?
- //? ?
- //砅reciso fazer a segregacao pois as GNRE's geradas para o FECP possuem Codigo de Receita especificos ?
- //? ?
- //矱sse mecanismo funciona apenas para os estados que possuem codigos de ajuste especificos para o FECP ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? For nIx := nPosDeb To Len( aCols5 )
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?aVlrDebEsp[ 1 ] -> Valores exclusivos do FECP ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? //Valida玢o para que gere guia de debitos especiais quando o par鈓etro MV_USASPED estiver igual a F, e que n鉶 duplique o valor da guia(aCols5[nIx,2]<>aCols5[nPosDeb,2])
- If aCols5[ nIx , 4 ] > 0 .And. IIf(lUsaSped == .T.,!Empty(aCols5[ nIx , 7 ]),aCols5[nIx,2] <> aCols5[nPosDeb,2]) .And. Empty( aCols5[ nIx , 5 ] ) .And. !UFxNameFcp( GetNewPar( "MV_ESTADO" ) ) $ aCols5[ nIx , 3 ]
- aVlrDebEsp[ 1 ] += aCols5[ nIx , 4 ]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?aVlrDebEsp[ 2 ] -> Valores para ICMS Proprio ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- Elseif aCols5[ nIx , 4 ] > 0 .And. IIf(lUsaSped == .T.,!Empty(aCols5[ nIx , 7 ]),aCols5[nIx,2] <> aCols5[nPosDeb,2]) .And. Empty( aCols5[ nIx , 5 ] )
- aVlrDebEsp[ 2 ] += aCols5[ nIx , 4 ]
- Endif
- Next nIx
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矴eracao das GNRE's e Titulos conforme validacoes acima ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? For nNum := 1 To Len( aVlrDebEsp )
- If aVlrDebEsp[ nNum ] > 0
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. AllTrim(aX[7])=="RDBESP"})
- nSolicFlg := FGerTit( lTitulo,;
- aVlrDebEsp[ nNum ],;
- cImposto,;
- cImp,;
- cLcPadTit,;
- dDtIni,;
- dDtFim,;
- dDtVenc,;
- nMoedTit,;
- lGuiaRec,;
- nMes,;
- nAno,;
- aVlrDebEsp[ nNum ],;
- 0,;
- "MATA953",;
- lContab,;
- @cNumero,;
- @aGNRE,,,,,,,;
- Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),;
- @aRecTit,;
- @lConfTit,;
- ,,,;
- "RDBESP",;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0248 //"Apura玢o do ICMS - Debitos Especiais"
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0248})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0248, nSolicFlg } )
- EndIf
- Endif
- If lTitulo .And.aCols5[nPosDeb,4]>0 .And. lConfTit
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,aVlrDebEsp[ nNum ]})
- Endif
- Endif
- Next nNum
- Else
- nVlrDeb := 0
- If aCols5[nPosDeb,4]>0
- For nIx := nPosDeb TO Len(aCols5)
- If "900"$aCols5[nIx,2] .And. Empty(aCols5[nIx,5]) .And. (!"FECP"$aCols5[nIx,3] .OR. Alltrim(aCols5[nIx,7]) $ cCDeFecpPe ) .And. !Empty(aCols5[nIx,7]) .And. SuperGetMv("MV_ESTADO")<>"MT"
- nVlrDeb += aCols5[nIx,4]
- Endif
- Next nIx
- Endif
- //verifica se j?foi lan鏰do no complementar se j?foi n鉶 lan鏰 de novo s?se a aba especial
- //for maior do que o que foi lan鏰do no complementar ai lan鏰 a diferen鏰
- if lIcmCompl .and. ((aCols7[28,3] + aCols7[2,3]) - nVlrDeb)>=0
- nVlrDeb := 0
- elseif lIcmCompl
- nVlrDeb := nVlrDeb - (aCols7[28,3] + aCols7[2,3])
- endif
- If nVlrDeb >0
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. AllTrim(aX[7])=="RDBESP"})
- nSolicFlg := FGerTit(lTitulo,nVlrDeb,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit,lGuiaRec,nMes,nAno, nVlrDeb,;
- 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,,,Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),@aRecTit,@lConfTit,,,,"RDBESP",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0248 //"Apura玢o do ICMS - Debitos Especiais"
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0248})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0248, nSolicFlg } )
- EndIf
- Endif
- If lTitulo .And.aCols5[nPosDeb,4]>0 .And. lConfTit
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nVlrDeb})
- Endif
- Endif
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矴era a Guia de Recolhimento para os Debitos Especiais de ICMS ST ?
- //|Serah gerado abaixo, somente as GNREs que nao tiveram um numero |
- //| amarrado atraves da Apuracao. |
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- nVlrDebSt := 0
- If aCols6[nPosDebSt,4]>0
- For nIx := nPosDebSt TO Len(aCols6)
- If aCols6[ nIx , 4 ] > 0 .And. Empty(aCols6[nIx,5]) .And. !"FECP"$aCols6[nIx,3] .And. !Empty(aCols6[nIx,7]) .And. aCols6[nIx,7] <> aCols6[nIx-1,7]
- For nIy := nPosDebSt TO Len(aCols6)
- If aCols6[ nIx , 4 ] > 0 .And. Empty(aCols6[nIy,5]) .And. !"FECP"$aCols6[nIy,3] .And. !Empty(aCols6[nIy,7]) .And. aCols6[nIx,7] <> aCols6[nIx-1,7]
- If (aScan(aUfEsp,{|x| x[1] == substr(aCOLS6[nIy,7],1,2)})) == 0
- If substr(aCOLS6[nIy,7],1,2) == substr(aCOLS6[nIx,7],1,2)
- nVlrDebSt += aCols6[nIy,4]
- EndIf
- EndIF
- EndIf
- Next nIy
- AADD(aUfEsp,{substr(aCOLS6[nIx,7],1,2)})
- If nVlrDebSt > 0
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. AllTrim(aX[7])=="RDBESPST"})
- nSolicFlg := FGerTit(lTitulo,nVlrDebSt,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,0,nVlrDebSt,;
- "MATA953",lContab,@cNumero,@aGNRE,,,substr(aCOLS6[nIx,7],1,2),,,,Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),@aRecTit,@lConfTit,,,,"RDBESPST",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0249 //"Apura玢o do ICMS ST - Debitos Especiais"
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"ST",STR0249})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "ST", STR0249, nSolicFlg } )
- EndIf
- Endif
- If lTitulo .And.aCols6[nPosDebSt,4]>0 .And. lConfTit
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nVlrDebSt})
- Endif
- Endif
- nVlrDebSt := 0
- Endif
- Next nIx
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矴era o titulo a pagar referente ao Fundersul - Mato Grosso do Sul?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If GetMV("MV_ESTADO") $ "MS" .And. aCols7[16,3] > 0
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nSolicFlg := FGerTit(lTitulo,aCols7[16,3],"FDS","FD",cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,0,;
- 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,,.T.,,@aRecTit,@lConfTit,aCols7[16,3],,,"RFUNDSUL",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0116 //"Fundersul - Mato Grosso do Sul"
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0116})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0116, nSolicFlg } )
- EndIf
- Endif
- If lTitulo .And. aCols7[16,3]>0 .And. lConfTit
- lInfComp := .T.
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,aCols7[16,3]})
- Endif
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矴era o titulo a pagar referente ao Senar ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If aCols7[29,3] > 0
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nSolicFlg := FGerTit(lTitulo,aCols7[29,3],"SENAR","SE",cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,0,;
- 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,,.T.,,@aRecTit,@lConfTit,aCols7[29,3],,,"RSENAR",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := STR0245 //"Senar"
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0245})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0245, nSolicFlg } )
- EndIf
- Endif
- If lTitulo .And. aCols7[29,3]>0 .And. lConfTit
- lInfComp := .T.
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,aCols7[29,3]})
- Endif
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矴era o titulo a pagar referente ao Fumacop ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If SuperGetMv("MV_ESTADO")=="MA"
- nPosFumac:= Ascan(aCols5,{|x|x[2]=="012.01"})
- If nPosFumac > 0 .And. aCols5[nPosFumac,4] > 0
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nSolicFlg := FGerTit(.F.,aCols5[nPosFumac,4],"FUMA","FU",cLcPadTit,dDtIni,dDtFim,;
- dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,0,;
- 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,,.T.,,@aRecTit,@lConfTit,aCols5[nPosFumac,4],,,"RFUMAC",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
- Endif
- Endif
- //-------------------------------------------------------------------------------------------------------------
- // GERACAO DA GUIA NACIONAL DE RECOLHIMENTO
- //-------------------------------------------------------------------------------------------------------------
- //
- // INCENTIVOS FISCAIS
- //
- //-------------------------------------------------------------------------------------------------------------
- // Abaixo sao geradas as guias de recolhimento dos incentivos fiscais
- //-------------------------------------------------------------------------------------------------------------
- If !Empty(aApIncent)
- //-------------------------------------------------------------------------------------
- // DESENVOLVE - BA
- //-------------------------------------------------------------------------------------
- // Programa de Desenvolvimento Industrial e de Integracao Economica do Estado da Bahia
- // Embasamento legal:
- // Resolucao No 123/2009 (regime especial) , Lei no 7.980/2001 e Decreto no 8.205/2002
- //-------------------------------------------------------------------------------------
- If GetNewPar("MV_ESTADO") == "BA"
- // ------------------------------
- //DESENVOLVE PARCELA DE INCENTIVO
- // ------------------------------
- If aApIncent[3] > 0
- // Descricao para GNRE
- aApIncent[Len(aApIncent)] := "Desenvolve"
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nSolicFlg := FGerTit( lTitulo,; //-> Gera Titulo
- aApIncent[3],; //-> Valor do Titulo
- cImposto,cImp,;
- cLcPadTit,;
- dDtIni, dDtFim,;
- aApIncent[4],; //-> Vencimento da GNRE
- nMoedTit,lGuiaRec,;
- nMes,nAno,;
- 0,0,;
- "MATA953",;
- lContab,;
- @cNumero,;
- @aGNRE,;
- ,,,,,;
- .T.,;
- ,;
- @aRecTit,;
- @lConfTit,;
- aApIncent[3],;
- ,;
- ,;
- "RDESENV",;
- aApIncent,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := "Desenvolve"
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD ( aTitCDH, { SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,;
- SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC","Desenvolve"})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", "Desenvolve", nSolicFlg } )
- EndIf
- Endif
- If lTitulo .And. lConfTit
- lInfComp := .T.
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,aApIncent[2]})
- Endif
- Endif
- // ------------------------------
- //DESENVOLVE PARCELA ANTECIPADA
- // ------------------------------
- If aApIncent[2] > 0
- // Descricao para GNRE
- aApIncent[Len(aApIncent)] := "Desenvolve Ant."
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nSolicFlg := FGerTit( lTitulo,; //-> Gera Titulo
- aApIncent[2],; //-> Valor do Titulo
- cImposto,cImp,;
- cLcPadTit,;
- dDtIni, dDtFim,;
- aApIncent[5],; //-> Vencimento da GNRE
- nMoedTit,lGuiaRec,;
- nMes,nAno,;
- 0,0,;
- "MATA953",;
- lContab,;
- @cNumero,;
- @aGNRE,;
- ,,,,,;
- .T.,;
- ,;
- @aRecTit,;
- @lConfTit,;
- aApIncent[2],;
- ,;
- ,;
- "RDSVANT",;
- aApIncent,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := "Desenvolve Ant."
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD ( aTitCDH, { SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,;
- SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC","Desenvolve Ant."})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", "Desenvolve Ant.", nSolicFlg } )
- EndIf
- Endif
- If lTitulo .And. lConfTit
- lInfComp := .T.
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,aApIncent[3]})
- Endif
- Endif
- //-------------------------------------------------------------------------------------
- // PRODEC - SC
- //-------------------------------------------------------------------------------------
- // Programa de Desenvolvimento Industrial e de Integracao Economica do Estado da Bahia
- // Embasamento legal:
- // Resolucao No 123/2009 (regime especial) , Lei no 7.980/2001 e Decreto no 8.205/2002
- //-------------------------------------------------------------------------------------
- ElseIf GetNewPar("MV_ESTADO") == "SC"
- // ------------------------------
- // Prodec / SC
- // ------------------------------
- If aApIncent[2] > 0
- // Descricao para GNRE
- aApIncent[Len(aApIncent)] := "Prodec"
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nSolicFlg := FGerTit( lTitulo,; //-> Gera Titulo
- aApIncent[2],; //-> Valor do Titulo
- cImposto,cImp,;
- cLcPadTit,;
- dDtIni, dDtFim,;
- aApIncent[4],; //-> Vencimento da GNRE
- nMoedTit,lGuiaRec,;
- nMes,nAno,;
- 0,0,;
- "MATA953",;
- lContab,;
- @cNumero,;
- @aGNRE,;
- ,,,,,;
- .T.,;
- ,;
- @aRecTit,;
- @lConfTit,;
- aApIncent[2],;
- ,;
- ,;
- "RPRODEC",;
- aApIncent,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := "Prodec"
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD ( aTitCDH, { SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,;
- SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC","Prodec"})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", "Prodec", nSolicFlg } )
- EndIf
- Endif
- If lTitulo .And. lConfTit
- lInfComp := .T.
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,aApIncent[2]})
- Endif
- Endif
- // ------------------------------
- // Famdes / SC
- // ------------------------------
- If aApIncent[3] > 0
- // Descricao para GNRE
- aApIncent[Len(aApIncent)] := "Famdes"
- // Atribuo os dados financeiros do incentivo auxiliar na posicao do incentivo proncipal
- // para correta geracao na GravaTit()
- If aApIncent[8] <> Nil
- aApIncent[6] := aApIncent[8]
- Endif
- If aApIncent[9] <> Nil
- aApIncent[7] := aApIncent[9]
- Endif
- nRecTit := Len(aRecTit)
- lConfTit:= .F.
- nSolicFlg := FGerTit( lTitulo,; //-> Gera Titulo
- aApIncent[3],; //-> Valor do Titulo
- cImposto,cImp,;
- cLcPadTit,;
- dDtIni, dDtFim,;
- aApIncent[5],; //-> Vencimento da GNRE
- nMoedTit,lGuiaRec,;
- nMes,nAno,;
- 0,0,;
- "MATA953",;
- lContab,;
- @cNumero,;
- @aGNRE,;
- ,,,,,;
- .T.,;
- ,;
- @aRecTit,;
- @lConfTit,;
- aApIncent[3],;
- ,;
- ,;
- "RFAMDES",;
- aApIncent,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,,,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- aRecTit[Len(aRecTit)][02] := "Famdes"
- If lUsaSped
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD ( aTitCDH, { SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,;
- SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC","Famdes"})
- EndIf
- Else
- //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
- If lGTitFluig
- AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", "Famdes", nSolicFlg } )
- EndIf
- Endif
- If lTitulo .And. lConfTit
- lInfComp := .T.
- AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,aApIncent[3]})
- Endif
- Endif
- Endif
- Endif
- EndIf
- If lProcDifal
- For nX := 1 to Len(aDifal)
- nPosDifal := aScan(aApurDifal,{|x|x[1] == aDifal[nX][1]} )
- aDifEst :=aApurDifal[nPosDifal][2]
- nVlGnreDif := aDifEst[aScan(aDifEst,{|x|x[2] == '010.00'} )][4]
- If cGNREDF == '2'
- nVlGnreDif += aDifEst[aScan(aDifEst,{|x|x[2] == IIF(Year(dDtIni) < 2017,'016.00','022.00')} )][4]
- EndIF
- If Len(aDifEst) > 0 .AND. nVlGnreDif > 0
- //Gera guia do Difal
- lConfTit := .F.
- nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. aX[5]== aDifal[nX][1] .and. AllTrim(aX[8])=="1"})
- nRecTit := Len(aRecTit)
- FGerTit( lTitulo,; //-> Gera Titulo
- nVlGnreDif ,; //-> Valor do Titulo
- cImposto,;
- cImp,;
- cLcPadTit,;
- dDtIni,;
- dDtFim,;
- dDtVenc,; //-> Vencimento da GNRE
- nMoedTit,;
- lGuiaRec,; //10
- nMes,;
- nAno,;
- 0,;
- nVlGnreDif,;
- "MATA953",;
- lContab,;
- @cNumero,;
- @aGnreDifal,;
- ,;
- ,;//20
- aDifal[nX][1],;
- ,;
- ,;
- .T.,;
- Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),;
- @aRecTit,;
- @lConfTit,;
- ,; //28
- ,;
- ,;//30
- "DIFAL",;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- .T.,,,,,,,lAutomato,aRetAuto,)//48
- If nRecTit <> Len(aRecTit)
- //Adiciona o t韙ulo no array para grava玢o do F0J
- aRecTit[Len(aRecTit)][02] := "EC 87/15 - DIFAL"
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD ( aTitDifal, { SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,;
- SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"EC 87/15 - DIFAL",aDifal[nX][1],SE2->E2_VALOR,SE2->E2_VENCTO})
- Endif
- EndIF
- //Gera unica Guia DIFAL+FECP debito especial
- nVlGnreDif := aDifEst[aScan(aDifEst,{|x|x[2] == '012.00'} )][4]
- If cGNREDF == '2' .And. Year(dDtIni) >= 2017
- nVlGnreDif += aDifEst[aScan(aDifEst,{|x|x[2] =='024.00'} )][4]
- EndIF
- //D閎ito especial do Difal
- If Len(aDifEst) > 0 .AND. aDifEst[aScan(aDifEst,{|x|x[2] == '012.00'} )][4] > 0
- //Gera guia do D閎ito especial
- lConfTit := .F.
- nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. aX[5]== aDifal[nX][1] .and. AllTrim(aX[8])=="3"})
- nRecTit := Len(aRecTit)
- FGerTit( lTitulo,; //-> Gera Titulo
- nVlGnreDif,; //-> Valor do Titulo
- cImposto,;
- cImp,;
- cLcPadTit,;
- dDtIni,;
- dDtFim,;
- dDtVenc,; //-> Vencimento da GNRE
- nMoedTit,;
- lGuiaRec,; //10
- nMes,;
- nAno,;
- 0,;
- nVlGnreDif,;
- "MATA953",;
- lContab,;
- @cNumero,;
- @aGnreDifal,;
- ,;
- ,;//20
- aDifal[nX][1],;
- ,;
- ,;
- .T.,;
- Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),;
- @aRecTit,;
- @lConfTit,;
- ,; //28
- ,;
- ,;//30
- "DEBITO ESPECIAL",;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- .T.,,,,,,,lAutomato,aRetAuto,)//48
- If nRecTit <> Len(aRecTit)
- //Adiciona o t韙ulo no array para grava玢o do F0J
- aRecTit[Len(aRecTit)][02] := "EC 87/15 - DEBITO ESPECIAL"
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD ( aTitDifal, { SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,;
- SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"EC 87/15 - DEBITO ESPECIAL",aDifal[nX][1],SE2->E2_VALOR,SE2->E2_VENCTO})
- Endif
- EndIF
- If aDifal[nX][1] <> GetNewPar("MV_ESTADO") .AND. Len(aDifEst) > 0 .AND. aDifEst[aScan(aDifEst,{|x|x[2] == IIF(Year(dDtIni) < 2017,'016.00','022.00')} )][4] > 0 .AND. cGNREDF == '1'
- //Gera guia do FECP
- lConfTit := .F.
- nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. aX[5]== aDifal[nX][1] .and. AllTrim(aX[8])=="2"})
- nRecTit := Len(aRecTit)
- FGerTit( lTitulo,; //-> Gera Titulo
- aDifEst[aScan(aDifEst,{|x|x[2] == IIF(Year(dDtIni) < 2017,'016.00','022.00')} )][4],; //-> Valor do Titulo
- cImposto,;
- cImp,;
- cLcPadTit,;
- dDtIni,;
- dDtFim,;
- dDtVenc,; //-> Vencimento da GNRE
- nMoedTit,;
- lGuiaRec,; //10
- nMes,;
- nAno,;
- 0,;
- aDifEst[aScan(aDifEst,{|x|x[2] == IIF(Year(dDtIni) < 2017,'016.00','022.00')} )][4],;
- "MATA953",;
- lContab,;
- @cNumero,;
- @aGnreDifal,;
- ,;
- ,;//20
- aDifal[nX][1],;
- ,;
- .T.,;
- ,;
- Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),;
- @aRecTit,;
- @lConfTit,;
- ,; //28
- ,;
- ,;//30
- "FECP",;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- .T.,,,,,,,lAutomato,aRetAuto,)//48
- If nRecTit <> Len(aRecTit)
- //Adiciona o t韙ulo no array para grava玢o do F0J
- aRecTit[Len(aRecTit)][02] := "EC 87/15 - FECP"
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD ( aTitDifal, { SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,;
- SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"EC 87/15 - FECP",aDifal[nX][1],SE2->E2_VALOR,SE2->E2_VENCTO})
- Endif
- EndIF
- //D閎ito especial do FECP
- If Year(dDtIni) >= 2017 .And. Len(aDifEst) > 0 .AND. aDifEst[aScan(aDifEst,{|x|x[2] == '024.00'} )][4] > 0 .And. cGNREDF == '1'
- //Gera guia do D閎ito especial de FECP
- lConfTit := .F.
- nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. aX[5]== aDifal[nX][1] .and. AllTrim(aX[8])=="4"})
- nRecTit := Len(aRecTit)
- GravaTit( lTitulo,; //-> Gera Titulo
- aDifEst[aScan(aDifEst,{|x|x[2] == '024.00'} )][4],; //-> Valor do Titulo
- cImposto,;
- cImp,;
- cLcPadTit,;
- dDtIni,;
- dDtFim,;
- dDtVenc,; //-> Vencimento da GNRE
- nMoedTit,;
- lGuiaRec,; //10
- nMes,;
- nAno,;
- 0,;
- aDifEst[aScan(aDifEst,{|x|x[2] == '024.00'} )][4],;
- "MATA953",;
- lContab,;
- @cNumero,;
- @aGnreDifal,;
- ,;
- ,;//20
- aDifal[nX][1],;
- ,;
- ,;
- .T.,;
- Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),;
- @aRecTit,;
- @lConfTit,;
- ,; //28
- ,;
- ,;//30
- "DEBITO ESPECIAL FECP",;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- ,;
- .T.,,,lAutomato,aRetAuto,)
- If nRecTit <> Len(aRecTit)
- //Adiciona o t韙ulo no array para grava玢o do F0J
- aRecTit[Len(aRecTit)][02] := "EC 87/15 - DEBITO ESPECIAL FECP"
- dbSelectArea("SE2")
- MsGoto(aRecTit[Len(aRecTit)][01])
- AADD ( aTitDifal, { SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,;
- SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"EC 87/15 - DEBITO ESPECIAL FECP",aDifal[nX][1],SE2->E2_VALOR,SE2->E2_VENCTO})
- Endif
- EndIF
- Next nX
- EndIF
- For nS:= 1 to Len(aCOLS7)
- AADD(aCOLS5,{aCOLS7[nS,1],"",aCOLS7[nS,2],aCOLS7[nS,3],"","","",aCOLS7[nS,4]})
- Next nS
- AADD(aCOLS5,{"IND","",Transform(xMoeda(1,nMoedTit,1,dDataBase),"9.999"),0,"","","",.F.})
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Armazena linhas do Fomentar para gravar na apuracao ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If lFomentGO
- For nS :=1 to Len(aCols8)
- AADD(aCOLS5,{"FOM","",aCOLS8[nS,1]+" "+aCOLS8[nS,3],aCOLS8[nS,4],"","","",.F.})
- Next nS
- Elseif lApurBA
- //Exportacoes
- For nS :=1 to Len(aCols8)
- AADD(aCOLS5,{"EXP",aCOLS8[nS,2],aCOLS8[nS,1]+" "+aCOLS8[nS,3],aCOLS8[nS,4],"","",aCOLS8[nS,7],.F.})
- Next nS
- //Outras hipoteses
- For nS :=1 to Len(aCols9)
- AADD(aCOLS5,{"OUT",aCOLS9[nS,2],aCOLS9[nS,1]+" "+aCOLS9[nS,3],aCOLS9[nS,4],"","",aCOLS9[nS,7],.F.})
- Next nS
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Armazena linhas de observacao ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- For nY :=1 to MLCount(cObserv,Tamsx3("CDH_DESC")[1]-1)
- If Len(Alltrim(MemoTran(MemoLine(cObserv,Tamsx3("CDH_DESC")[1]-1,nY),"")))>0
- AADD(aCOLS5,{"OBS","",MemoTran(MemoLine(cObserv,Tamsx3("CDH_DESC")[1]-1,nY)),0,"","","",.F.})
- Endif
- Next
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?Exibe os titulos gerados dos impostos a pagar pela apuracao ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If SuperGetMv("MV_TITAPUR",.F.,.F.)
- For nX := 1 To Len(aRecTit)
- If aRecTit[nX][01] <> 0
- dbSelectArea("SE2")
- MsGoto(aRecTit[nX][01])
- cCadastro := aRecTit[nX][02]
- // Titulo contabilizado - apos consulta com lider da CONTROLADORIA/FINANCEIRO,
- // foi estipulado retirar a verificacao e manter a chamada do FINA050
- ALTERA := .T.
- INCLUI := .F.
- EXCLUI := .F.
- lRefresh:= .f.
- nMoeda := 1
- pergunte("FIN050",.F.)
- If lAutomato
- aAuto := {}
- AADD(aAuto,{"E2_FILIAL" ,xFilial("SE2") , NIL } )
- AADD(aAuto,{"E2_PREFIXO" ,SE2->E2_PREFIXO, NIL } )
- AADD(aAuto,{"E2_NUM" ,SE2->E2_NUM, NIL } )
- AADD(aAuto,{"E2_PARCELA" ,SE2->E2_PARCELA, NIL } )
- AADD(aAuto,{"E2_TIPO" ,SE2->E2_TIPO, NIL } )
- AADD(aAuto,{"E2_NATUREZ" ,SE2->E2_NATUREZ, NIL } )
- AADD(aAuto,{"E2_FORNECE" ,SE2->E2_FORNECE, NIL } )
- AADD(aAuto,{"E2_LOJA" ,SE2->E2_LOJA, NIL } )
- AADD(aAuto,{"E2_EMISSAO" ,SE2->E2_EMISSAO, NIL } )
- AADD(aAuto,{"E2_VENCTO" ,SE2->E2_VENCTO, NIL } )
- AADD(aAuto,{"E2_VALOR" ,SE2->E2_VALOR, NIL } )
- EndIf
- FINA050(If(lAutomato,aAuto,Nil),,4,'FA050Alter("SE2",SE2->(RECNO()),2)')
- If lAutomato
- pergunte("MTA951",.F.)
- EndIf
- EndIf
- If Len(aTitulo)>0 .And. Len(aTitulo)>=nx
- If aTitulo[nX][1]=="TIT"
- aTitulo[nX][2]:= SE2->E2_NUM+" "+DTOC(SE2->E2_VENCREA)+" "+cOrgArrec
- Endif
- Endif
- Next nX
- Endif
- If lTitulo .And. ( nVlrTitulo>0 .Or. lInfComp .Or. Len(aTitulo) > 0 ) .And. !lGTitFluig
- For nNum := 1 to Len(aTitulo)
- AADD(aCOLS5,{aTitulo[nNum][01],"",aTitulo[nNum][02],aTitulo[nNum][03],"","","",.F.})
- Next
- For nNum :=1 to Len(aCOLS5)
- If !Empty(aCOLS5[nNum,6])
- dDtVenc2 :=STOD(StrZero(Year(ddtvenc)+Val(cProdec),4)+StrZero(Month(ddtvenc),2)+StrZero(Day(ddtvenc),2))
- AADD(aCOLS5,{"TIT","",cNumero2+" "+Dtoc(dDtVenc2)+" "+cOrgArrec,aCols5[nNum,4],"","","",.F.})
- Endif
- Next
- EndIf
- If lGuiaRec
- For nX:=1 To Len(aGnre)
- AADD(aCOLS5,{"GNR","",aGnre[nX,1]+" "+DtoC(aGnre[nX,2])+" "+cOrgArrec,aGnre[nX,3],aGnre[nX,4],"","",.F.})
- Next
- EndIf
- FisApur(cImp,nAno,nMes,nApuracao,nPeriodo,cNrLivro,.t.,aCOLS5,nMoedTit,.F.,"",aHeader5[3,4])
- nValSt := 0
- aEval(aCOLS6, {|z| nValSt += Iif(ValType(z[4])=="N",z[4],0)})
- For nX:=1 To Len(aGnreSt)
- AADD(aCOLS6,{"1"+aGnreST[nX,1],"","ICMSST:"+aGnreST[nX,1],aGnreST[nX,2],"","","",.F.})
- Next nX
- FisApur("ST",nAno,nMes,nApuracao,nPeriodo,cNrLivro,.t.,aCOLS6,nMoedTit,.F.,"",aHeader5[3,4])
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼V_USASPED - Indica se usa SPED ?
- //硈e sim (.T.), Grava apuracao na tabela CDH ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If lUsaSped
- FisApurCDH(nApuracao,nPeriodo,cNrLivro,dDtIni,dDtFim,lConsUF,cFilDe,cFilAte,aCOLS5,aCOLS6,aTitCDH,aGNRE,lApurBA )
- EndIf
- //Se tabelas e campos do difal existirem, ent鉶 dever?chamar func玢o para gravar
- If lProcDifal
- GrvApDifal(aDifal,dDtIni,cNrLivro,aTitDifal,aGnreDifal,aApurDifal,aCDADifal)
- EndIF
- End Transaction
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?Finaliza os lancamentos do SIGAPCO. ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? PcoFinLan("000250")
- EndIf
- EndIf
- EndIf
- Return
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北
- 北谀哪哪哪哪穆哪哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪目北
- 北篎uncao 矲t953Refre 篈utor 矼icrosiga ?Data ?08/07/2001罕?
- 北媚哪哪哪哪呐哪哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪拇北
- 北篋esc. ?Atualiza os folders 罕?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪拇北
- 北砇etorno 砃enhum 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪拇北
- 北砅arametros矱xpA1: Array com as getdados 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁北
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌
- /*/
- Static Function Ft953Refre(aGetDad)
- Local nLoop := 0
- For nLoop := 1 To Len(aGetDad)
- If len(aGetDad) > 1 // Se esta processando todos as getdados carrego o aHeader correspondente
- IF aGetDad[nLoop] <> nil
- If nLoop >= 10
- aHeader := aClone(&("aHeader"+STR(nLoop,2)))
- aCols := aClone(&("aCols"+STR(nLoop,2)))
- Else
- aHeader := aClone(&("aHeader"+STR(nLoop,1)))
- aCols := aClone(&("aCols"+STR(nLoop,1)))
- Endif
- aGetDad[nLoop]:oBrowse:lDisablePaint := .F.
- aGetDad[nLoop]:oBrowse:Refresh(.T.)
- EndIf
- EndIf
- Next nLoop
- If len(aGetDad) > 1
- aHeader := aClone(aHeader1)
- aCols := aClone(aCols1)
- EndIf
- Return( .T. )
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北矲uncao 矲t953Fld ?Autor 矨ndreia dos Santos ?Data ?8.08.2001潮?
- 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北矰escri噮o 矲uncao de Tratamento dos Folders 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砇etorno 砃enhum 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros矱xpN1: Folder de Destino 潮?
- 北? 矱xpN2: Folder Atual 潮?
- 北? 矱xpO3: Objeto do Folder 潮?
- 北? 矱xpA4: Array com as getdados. 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?
- /*/
- Static Function Ft953Fld(nFldDst,nFldAtu,oFolder,aGetDad,aApurDifal,nAno)
- Local lRetorno:= .F.
- Local nApurDifal := 0
- Local nPos := 0
- Local lTudoOk := .F.
- DEfault aApurDifal := {}
- Default nAno := 2016
- If nFldAtu <> 8
- lTudoOk := aGetDad[nFldAtu]:TudoOk()
- Else
- lTudoOk := aGetDad[nFldAtu][1]:TudoOk()
- EndIF
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矱fetua a Validacao da GetDados ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If lTudoOk
- lRetorno := .T.
- If nFldAtu <> 8
- aGetDad[nFldAtu]:oBrowse:lDisablePaint := .T.
- Else
- aGetDad[nFldAtu][1]:oBrowse:lDisablePaint := .T.
- EndIF
- Do Case
- Case ( nFldAtu == 1 )
- aCols1 := aClone(aCols)
- aHeader1:= aClone(aHeader)
- Case ( nFldAtu == 2 )
- aCols2 := aClone(aCols)
- aHeader2:= aClone(aHeader)
- Case ( nFldAtu == 3 )
- aCols3 := aClone(aCols)
- aHeader3:= aClone(aHeader)
- Case ( nFldAtu == 4 )
- aCols4 := aClone(aCols)
- aHeader4:= aClone(aHeader)
- Case ( nFldAtu == 5 )
- aCols5 := aClone(aCols)
- aHeader5:= aClone(aHeader)
- Case ( nFldAtu == 6 )
- aCols6 := aClone(aCols)
- aHeader6:= aClone(aHeader)
- Case ( nFldAtu == 7 )
- aCols7 := aClone(aCols)
- aHeader7:= aClone(aHeader)
- Case ( nFldAtu == 8 )
- //est?saindo da tela da apura玢o do difal
- If lGerDifal
- aCols12 := aClone(aCols)
- aHeader12:= aClone(aHeader)
- Else
- aCols13 := aClone(aCols)
- aHeader13:= aClone(aHeader)
- EndIF
- lGerDifal := .T.
- nPos := aScan(aApurDifal,{|x|x[1] == SubStr(aCols12[aGetDad[nFldAtu][1]:oBrowse:nAt][2],1,2)} )
- nApurDifal := aScan(aCOLS12,{|x|SubStr(x[2],1,2) == SubStr(aCols12[aGetDad[nFldAtu][1]:oBrowse:nAt][2],1,2)} )
- If lProcDifal .AND. nApurDifal > 0 .AND. nPos >0
- aCOLS12[nApurDifal,03] := aApurDifal[nPos ][2][aScan(aApurDifal[nPos][2],{|x|x[2] == '010.00'} )][4]
- aCOLS12[nApurDifal,04] := aApurDifal[nPos ][2][aScan(aApurDifal[nPos][2],{|x|x[2] == '011.00'} )][4]
- aCOLS12[nApurDifal,07] := aApurDifal[nPos ][2][aScan(aApurDifal[nPos][2],{|x|x[2] == '012.00'} )][4]
- If nAno < 2017
- aCOLS12[nApurDifal,05] := aApurDifal[nPos ][2][aScan(aApurDifal[nPos][2],{|x|x[2] == '016.00'} )][4]
- aCOLS12[nApurDifal,06] := aApurDifal[nPos ][2][aScan(aApurDifal[nPos][2],{|x|x[2] == '017.00'} )][4]
- Else
- aCOLS12[nApurDifal,05] := aApurDifal[nPos ][2][aScan(aApurDifal[nPos][2],{|x|x[2] == '022.00'} )][4]
- aCOLS12[nApurDifal,06] := aApurDifal[nPos ][2][aScan(aApurDifal[nPos][2],{|x|x[2] == '023.00'} )][4]
- aCOLS12[nApurDifal,07] += aApurDifal[nPos ][2][aScan(aApurDifal[nPos][2],{|x|x[2] == '024.00'} )][4]
- EndIF
- EndIF
- Case ( lFomentGO .And. nFldAtu == 9 )
- aCols8 := aClone(aCols)
- aHeader8:= aClone(aHeader)
- Case ( lApurBA .And. nFldAtu == 9 ) //Exportacoes
- aCols8 := aClone(aCols)
- aHeader8:= aClone(aHeader)
- Case ( lApurBA .And. nFldAtu == 10 ) //Outras hipoteses
- aCols9 := aClone(aCols)
- aHeader9:= aClone(aHeader)
- Case (lFomentGO .And. nFldAtu == 10) .Or. (lApurBA .And. nFldAtu == 11) .Or. (!lFomentGO .And. !lApurBA .And. nFldAtu == 9)
- aCols10 := aClone(aCols)
- aHeader10:= aClone(aHeader)
- Case ( lCon13906 .AND. nFldAtu == 10 )
- aCols11 := aClone(aCols)
- aHeader11:= aClone(aHeader)
- EndCase
- If nFldDst <> 8
- N := Max(aGetDad[nFldDst]:oBrowse:nAt,1)
- Else
- N := Max(aGetDad[nFldDst][1]:oBrowse:nAt,1)
- EndIF
- Do Case
- Case ( nFldDst == 1 )
- aCols := aClone(aCols1)
- aHeader := aClone(aHeader1)
- Case ( nFldDst == 2 )
- aCols := aClone(aCols2)
- aHeader := aClone(aHeader2)
- Case ( nFldDst == 3 )
- aCols := aClone(aCols3)
- aHeader := aClone(aHeader3)
- Case ( nFldDst == 4 )
- aCols := aClone(aCols4)
- aHeader := aClone(aHeader4)
- Case ( nFldDst == 5 )
- aCols := aClone(aCols5)
- aHeader := aClone(aHeader5)
- Case ( nFldDst == 6 )
- aCols := aClone(aCols6)
- aHeader := aClone(aHeader6)
- Case ( nFldDst == 7 )
- aCols := aClone(aCols7)
- aHeader := aClone(aHeader7)
- Case ( nFldDst == 8 )
- //Est?entrando na aba
- If lGerDifal
- aCols := aClone(aCols12)
- aHeader := aClone(aHeader12)
- aGetDad[nFldDst][2]:Hide()
- aGetDad[nFldDst][1]:Show()
- aGetDad[nFldDst][1]:oBrowse:Refresh(.T.)
- EndIF
- Case ( lFomentGO .And. nFldDst == 9 )
- aCols := aClone(aCols8)
- aHeader := aClone(aHeader8)
- Case ( lApurBA .And. nFldDst == 9 )
- aCols := aClone(aCols8)
- aHeader := aClone(aHeader8)
- Case ( lApurBA .And. nFldDst == 10 )
- aCols := aClone(aCols9)
- aHeader := aClone(aHeader9)
- Case (lFomentGO .And. nFldDst == 10) .Or. (lApurBA .And. nFldDst == 11) .Or. (!lFomentGO .And. !lApurBA .And. nFldDst == 9)
- aCols := aClone(aCols10)
- aHeader:= aClone(aHeader10)
- Case ( lCon13906 .AND. nFldDst == 10 )
- aCols := aClone(aCols11)
- aHeader := aClone(aHeader11)
- EndCase
- If nFldDst <> 8
- aGetDad[nFldDst]:oBrowse:lDisablePaint := .F.
- aGetDad[nFldDst]:oBrowse:Refresh(.T.)
- Else
- aGetDad[nFldDst][1]:oBrowse:lDisablePaint := .F.
- aGetDad[nFldDst][1]:oBrowse:Refresh(.T.)
- EndIF
- EndIf
- Return(lRetorno)
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北矲uncao 矲t953Ok ?Autor 矱duardo Riera ?Data ?3.01.2000潮?
- 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北矰escri噮o 矲uncao de validacao da Getdados 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砇etorno 砃enhum 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros矱xpA1: Array com as getdados 潮?
- 北? 矱xpN2: Folder atual. 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Function Ft953Ok(aGetDad,nAtu)
- Local lRetorno := .F.
- Local aSavHead := aClone(aHeader)
- Local aSavCols := aClone(aCols)
- Local nSavN := N
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Valida todas as getdados ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?aCols e aHeader 1 e 2 nao coincidem com folder 1 e 2 devido ?
- //?a um erro na classe folder ( nao alterar ) ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If ( nAtu == 2 )
- aHeader := aClone(aSavHead)
- aCols := aClone(aSavCols)
- N := nSavN
- Else
- aHeader := aClone(aHeader1)
- aCols := aClone(aCols1)
- N := Max(aGetDad[1]:oBrowse:nAT,1)
- EndIf
- If ( aGetDad[1]:TudoOk() )
- If ( nAtu == 1 )
- aHeader := aClone(aSavHead)
- aCols := aClone(aSavCols)
- N := nSavN
- Else
- aHeader := aClone(aHeader2)
- aCols := aClone(aCols2)
- N := Max(aGetDad[2]:oBrowse:nAT,1)
- EndIf
- If ( aGetDad[2]:TudoOk() )
- If ( nAtu == 3 )
- aHeader := aClone(aSavHead)
- aCols := aClone(aSavCols)
- N := nSavN
- Else
- aHeader := aClone(aHeader3)
- aCols := aClone(aCols3)
- N := Max(aGetDad[3]:oBrowse:nAT,1)
- EndIf
- If ( aGetDad[3]:TudoOk() )
- If ( nAtu == 4 )
- aHeader := aClone(aSavHead)
- aCols := aClone(aSavCols)
- N := nSavN
- Else
- aHeader := aClone(aHeader4)
- aCols := aClone(aCols4)
- N := Max(aGetDad[4]:oBrowse:nAT,1)
- EndIf
- If ( aGetDad[4]:TudoOk() )
- If ( nAtu == 5 )
- aHeader := aClone(aSavHead)
- aCols := aClone(aSavCols)
- N := nSavN
- Else
- aHeader := aClone(aHeader5)
- aCols := aClone(aCols5)
- N := Max(aGetDad[5]:oBrowse:nAT,1)
- EndIf
- If ( aGetDad[5]:TudoOk() )
- lRetorno := .T.
- Endif
- EndIf
- EndIf
- EndIf
- EndIf
- aHeader := aClone(aSavHead)
- aCols := aClone(aSavCols)
- N := nSavN
- Return(lRetorno)
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北篎uncao 砤953Saldo 篈utor 矨ndreia dos Santos ?Data ?13/08/01 罕?
- 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北篋esc. ?Apura o saldo do ICMS operacoes proprias, substituicao 罕?
- 北? ?Tributaria e Fomentar GO 罕?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砇etorno 砃enhum 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros矱xpN1: Primeira vez que apura o saldo quando monta o aCols 潮?
- 北? 矱xpN2: Operacoes com Substituicao Tributaria 潮?
- 北? 矱xpN3: Funcao chamada a partir da delecao da linha 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Function a953Saldo(lFirst,lST,lFomentar,lApurBA,lDebEsp, lArt488MG,lDifal)
- Local n001 := 0
- Local n002 := 0
- Local n003 := 0
- Local n004 := 0
- Local n005 := 0
- Local n006 := 0
- Local n007 := 0
- Local n008 := 0
- Local n009 := 0
- Local n010 := 0
- Local n011 := 0
- Local n012 := 0
- Local n013 := 0
- Local n014 := 0
- Local n015 := 0
- Local n016 := 0
- Local n017 := 0
- Local n018 := 0
- Local n019 := 0
- Local n020 := 0
- Local n021 := 0
- Local n022 := 0
- Local n023 := 0
- Local n024 := 0
- Local n025 := 0
- Local n026 := 0
- Local n027 := 0
- Local n028 := 0
- Local n029 := 0
- Local n030 := 0
- Local n031 := 0
- Local n032 := 0
- Local n033 := 0
- Local n034 := 0
- Local n035 := 0
- Local n036 := 0
- Local n037 := 0
- Local n038 := 0
- Local n039 := 0
- Local n040 := 0
- Local n041 := 0
- Local n042 := 0
- Local n043 := 0
- Local n044 := 0
- Local n045 := 0
- Local n046 := 0
- Local n047 := 0
- Local n048 := 0
- Local n049 := 0
- Local n050 := 0
- Local n051 := 0
- Local n052 := 0
- Local n053 := 0
- Local n054 := 0
- Local n055 := 0
- Local n056 := 0
- Local n057 := 0
- Local n058 := 0
- Local n059 := 0
- Local n060 := 0
- Local n061 := 0
- Local n062 := 0
- Local n063 := 0
- Local n064 := 0
- Local n065 := 0
- Local n066 := 0
- Local n067 := 0
- Local n068 := 0
- Local n069 := 0
- Local n070 := 0
- Local n071 := 0
- Local n072 := 0
- Local n073 := 0
- Local n074 := 0
- Local n075 := 0
- Local n076 := 0
- Local n077 := 0
- Local n078 := 0
- Local n079 := 0
- Local n080 := 0
- Local n081 := 0
- Local n082 := 0
- Local n083 := 0
- Local n084 := 0
- Local n900 := 0
- Local n901 := 0
- Local n0101 := 0
- Local nX := 0
- Local nY := 0
- Local n01202 := 0
- Local nValAtu := 0
- Local n003_05 := 0
- Local n004_05 := 0
- Local n005_05 := 0
- Local n006_05 := 0
- Local n007_05 := 0
- Local n009_05 := 0
- Local n010_05 := 0
- Local n021_05 := 0
- Local nLin001 := 0
- Local nLin005 := 0
- Local nLin004 := 0
- Local nLin033 := 0
- Local nLin048 := 0
- Local nLin055 := 0
- Local nLin063 := 0
- Local nLin070 := 0
- Local nLin002 := 0
- Local nLin003 := 0
- Local nLin015 := 0
- Local nLin016 := 0
- Local nLin017 := 0
- Local nLin037 := 0
- Local nLin043_2 := 0
- Local nLin019 := 0
- Local nLin006 := 0
- Local nLin007 := 0
- Local nLin009 := 0
- Local nLin011 := 0
- Local nLin012 := 0
- Local nLin014 := 0
- Local nLin013 := 0
- Local nLin018 := 0
- Local nLin020 := 0
- Local nLin021 := 0
- Local nLin022 := 0
- Local nLin023 := 0
- Local nLin024 := 0
- Local nLin030 := 0
- Local nLin032 := 0
- Local nLin034 := 0
- Local nLin035 := 0
- Local nLin043 := 0
- Local nLin045 := 0
- Local nLin046 := 0
- Local nLin047 := 0
- Local nLin049 := 0
- Local nLin050 := 0
- Local nLin051 := 0
- Local nLin052 := 0
- Local nLin053 := 0
- Local nLin054 := 0
- Local nLin056 := 0
- Local nLin057 := 0
- Local nLin058 := 0
- Local nLin059 := 0
- Local nLin060 := 0
- Local nLin062 := 0
- Local nLin064 := 0
- Local nLin065 := 0
- Local nLin066 := 0
- Local nLin067 := 0
- Local nLin068 := 0
- Local nLin069 := 0
- Local nLin073 := 0
- Local nLin074 := 0
- Local nLin076 := 0
- Local nLin078 := 0
- Local nLin027 := 0
- Local nLin040 := 0
- Local nLin0101 := 0
- Local nPosRecPR := 0
- Local nPosRecST := 0
- Local n002Cons := 0
- Local n007Cons := 0
- Local n006Cons := 0
- Local nI := 0
- Local nMes := mv_par01
- Local nAno := mv_par02
- Local cNrLivro := mv_par03
- Local nApuracao := mv_par04
- Local nPeriodo := mv_par05
- Local aDatas := DetDatas(nMes,nAno,nApuracao,nPeriodo)
- Local dDtIni := aDatas[1]
- Local dDtFim := aDatas[2]
- Local aMvDes := &( GetNewPar( 'MV_DESENV' , '{}' ) )
- Local aMvPrdc := &( GetNewPar( 'MV_FISPRDC' , '{}' ) )
- Default lFomentar := .F.
- Default lApurBA := .F.
- Default lDebEsp := .F.
- Default lArt488MG := .F.
- Default lDifal := .F.
- If !lDebEsp
- If lFirst .And. !lFomentar
- For nI := 1 To Len(aExclApur)
- If SubStr(aExclApur[nI][2],1,3)=="002" .And. !aExclApur[nI][4] .And.;
- ((lST .And. aExclApur[nI][5]=="ST") .Or.;
- (!lST .And. aExclApur[nI][5]=="IC"))
- n002Cons += aExclApur[nI][3]
- ElseIf lST .And. SubStr(aExclApur[nI][2],1,3)=="007" .And. !aExclApur[nI][4] .And. aExclApur[nI][5]=="ST"
- n007Cons += aExclApur[nI][3]
- ElseIf !lST .And. SubStr(aExclApur[nI][2],1,3)=="006" .And. !aExclApur[nI][4] .And. aExclApur[nI][5]=="IC"
- n006Cons += aExclApur[nI][3]
- EndIf
- Next nI
- ElseIf !lFomentar
- For nI := 1 To Len(aExclApur)
- If SubStr(aExclApur[nI][2],1,3)=="002" .And. !aExclApur[nI][4] .And.;
- ((lST .And. aExclApur[nI][5]=="ST") .Or.;
- (!lST .And. aExclApur[nI][5]=="IC"))
- If AllTrim (aCols[n,2])==aExclApur[nI,2] .And. aExclApur[nI][3]<>0 .And. (ReadVar()=="M->NVALOR")
- aExclApur[nI][3] := M->NVALOR
- EndIf
- n002Cons += aExclApur[nI][3]
- ElseIf lST .And. SubStr(aExclApur[nI][2],1,3)=="007" .And. !aExclApur[nI][4] .And. aExclApur[nI][5]=="ST"
- If AllTrim (aCols[n,2])==aExclApur[nI,2] .And. aExclApur[nI][3]<>0 .And. (ReadVar()=="M->NVALOR")
- aExclApur[nI][3] := M->NVALOR
- EndIf
- n007Cons += aExclApur[nI][3]
- ElseIf !lST .And. SubStr(aExclApur[nI][2],1,3)=="006" .And. !aExclApur[nI][4] .And. aExclApur[nI][5]=="IC"
- If AllTrim (aCols[n,2])==aExclApur[nI,2] .And. aExclApur[nI][3]<>0 .And. (ReadVar()=="M->NVALOR")
- aExclApur[nI][3] := M->NVALOR
- EndIf
- n006Cons += aExclApur[nI][3]
- EndIf
- Next nI
- EndIf
- EndIf
- If lST // SUBSTITUICAO TRIBUTARIA
- n001 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="001"}) //por saidas com debito do imposto
- n002 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="002"}) //outros debitos
- n003 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="003"}) //estorno de creditos
- n005 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="005"}) //Total das saidas
- n006 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="006"}) //entradas com credito do imposto
- n007 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="007"}) //outros creditos
- n008 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="008"}) //estorno de debitos
- n010 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="010"}) //Sub-total das entradas
- n011 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="011"}) //Saldo credor do periodo anterior
- n012 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="012"}) //Total das entradas
- n013 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="013"}) //Saldo devedor
- n014 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="014"}) //deducoes
- n015 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="015"}) //imposto a recolher
- n016 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="016"}) //Saldo Credor
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //砊otalizacao das linhas expandidas?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? a953TotLin(n002,"002",lFirst,aCols6)
- a953TotLin(n003,"003",lFirst,aCols6)
- a953TotLin(n007,"007",lFirst,aCols6)
- a953TotLin(n008,"008",lFirst,aCols6)
- a953TotLin(n014,"014",lFirst,aCols6)
- if !lFirst
- if ReadVar() =="M->NVALOR"
- nLin001 := if(aCols[n,1]==aCols[n001,1],M->NVALOR,aCols[n001,4])
- nLin006 := if(aCols[n,1]==aCols[n006,1],M->NVALOR,aCols[n006,4])
- nLin011 := if(aCols[n,1]==aCols[n011,1],M->NVALOR,aCols[n011,4])
- Elseif empty(ReadVar())
- nLin001 := aCols[n001,4]
- nLin006 := aCols[n006,4]
- nLin011 := aCols[n011,4]
- Endif
- nLin002 := aCols[n002,4] //outros debitos
- nLin003 := aCols[n003,4] //estorno de creditos
- nLin007 := aCols[n007,4] //outros creditos
- nLin008 := aCols[n008,4] //estorno de debitos
- nLin014 := aCols[n014,4] //deducoes
- aCols[n005,04] := nLin001+nLin002+nLin003 //total saidas
- aCols[n010,04] := nLin006+nLin007+nLin008 //sub-total entradas
- aCols[n012,04] := aCols[n010,4]+nLin011 //total entradas
- aCols[n013,04] := if((aCols[n005,4]-n002Cons)-(aCols[n012,4]-n007Cons)>=0,(aCols[n005,4]-n002Cons)-(aCols[n012,4]-n007Cons),0) //Saldo Devedor( 005-012 )
- aCols[n015,04] := if(aCols[n013,4]-nLin014>=0,aCols[n013,4]-nLin014,0) //Imposto a recolher( 013-014 )
- aCols[n016,04] := if((aCols[n012,4]-n007Cons)-(aCols[n005,4]-n002Cons)>=0,(aCols[n012,4]-n007Cons)-(aCols[n005,4]-n002Cons),0) //Saldo Credor ( 012-005 )
- nPosRecPR := Ascan(aCols5,{|x|x[1]=="013"}) //imposto a recolher Operacoes Proprias
- nVlrTitulo := aCols5[nPosRecPR,4]+aCols[n015,4]
- Else
- aCols6[n005,04]:= aCols6[n001,4]+aCols6[n002,4]+aCols6[n003,4] //total saidas
- aCols6[n010,04]:= aCols6[n006,4]+aCols6[n007,4]+aCols6[n008,4] //sub-total entradas
- aCols6[n012,04]:= aCols6[n010,4]+aCols6[n011,4] //total entradas
- aCols6[n013,04] := if((aCols6[n005,4]-n002Cons)-(aCols6[n012,4]-n007Cons)>=0,(aCols6[n005,4]-n002Cons)-(aCols6[n012,4]-n007Cons),0) //Saldo Devedor( 005-012 )
- aCols6[n015,04]:= if(aCols6[n013,4]-aCols6[n014,4]>=0,aCols6[n013,4]-aCols6[n014,4],0) //Imposto a recolher( 013-014 )
- aCols6[n016,04]:= if((aCols6[n012,4]-n007Cons)-(aCols6[n005,4]-n002Cons)>=0,(aCols6[n012,4]-n007Cons)-(aCols6[n005,4]-n002Cons),0) //Saldo Credor ( 012-005 )
- nPosRecPR := Ascan(aCols5,{|x|x[1]=="013"}) //imposto a recolher Substituicao Tributaria
- nVlrTitulo := aCols5[nPosRecPR,4]+aCols6[n015,4]
- Endif
- ElseIf lFomentar .And. !lApurBA
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //砎erifico os valores array aCols8 ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- n001 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="001"})
- n002 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="002"})
- n003 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="003"})
- n004 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="004"})
- n005 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="005"})
- n006 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="006"})
- n007 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="007"})
- n008 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="008"})
- n009 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="009"})
- n010 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="010"})
- n0101 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="101"})
- n011 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="011"})
- n012 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="012"})
- n013 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="013"})
- n014 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="014"})
- n015 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="015"})
- n016 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="016"})
- n017 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="017"})
- n018 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="018"})
- n019 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="019"})
- n020 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="020"})
- n021 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="021"})
- n022 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="022"})
- n023 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="023"})
- n024 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="024"})
- n025 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="025"})
- n026 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="026"})
- n027 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="027"})
- n028 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="028"})
- n029 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="029"})
- n030 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="030"})
- n031 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="031"})
- n032 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="032"})
- n033 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="033"})
- n034 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="034"})
- n035 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="035"})
- n036 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="036"})
- n037 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="037"})
- n038 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="038"})
- n039 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="039"})
- n040 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="040"})
- n041 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="041"})
- n042 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="042"})
- n043 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="043"})
- n044 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="044"})
- n045 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="045"})
- n046 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="046"})
- n047 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="047"})
- n048 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="048"})
- n049 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="049"})
- n050 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="050"})
- n051 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="051"})
- n052 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="052"})
- n053 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="053"})
- n054 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="054"})
- n055 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="055"})
- n056 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="056"})
- n057 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="057"})
- n058 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="058"})
- n059 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="059"})
- n060 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="060"})
- n061 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="061"})
- n062 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="062"})
- n063 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="063"})
- n064 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="064"})
- n065 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="065"})
- n066 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="066"})
- n067 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="067"})
- n068 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="068"})
- n069 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="069"})
- n070 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="070"})
- n071 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="071"})
- n072 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="072"})
- n073 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="073"})
- n074 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="074"})
- n075 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="075"})
- n076 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="076"})
- n077 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="077"})
- n078 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="078"})
- n079 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="079"})
- n080 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="080"})
- n081 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="081"})
- n082 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="082"})
- n083 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="083"})
- n084 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="084"})
- If !lFirst
- If ReadVar() =="M->NVALOR"
- nLin001 := If(aCols[n,1]==aCols[n001,1],M->NVALOR,aCols[n001,4])
- nLin002 := If(aCols[n,1]==aCols[n002,1],M->NVALOR,aCols[n002,4])
- nLin004 := If(aCols[n,1]==aCols[n004,1],M->NVALOR,aCols[n004,4])
- nLin005 := If(aCols[n,1]==aCols[n005,1],M->NVALOR,aCols[n005,4])
- nLin006 := If(aCols[n,1]==aCols[n006,1],M->NVALOR,aCols[n006,4])
- nLin007 := If(aCols[n,1]==aCols[n007,1],M->NVALOR,aCols[n007,4])
- nLin0101 := If(aCols[n,1]==aCols[n0101,1],M->NVALOR,aCols[n0101,4])
- nLin011 := If(aCols[n,1]==aCols[n011,1],M->NVALOR,aCols[n011,4])
- nLin012 := If(aCols[n,1]==aCols[n012,1],M->NVALOR,aCols[n012,4])
- nLin013 := If(aCols[n,1]==aCols[n013,1],M->NVALOR,aCols[n013,4])
- nLin015 := If(aCols[n,1]==aCols[n015,1],M->NVALOR,aCols[n015,4])
- nLin018 := If(aCols[n,1]==aCols[n018,1],M->NVALOR,aCols[n018,4])
- nLin019 := If(aCols[n,1]==aCols[n019,1],M->NVALOR,aCols[n019,4])
- nLin022 := If(aCols[n,1]==aCols[n022,1],M->NVALOR,aCols[n022,4])
- nLin024 := If(aCols[n,1]==aCols[n024,1],M->NVALOR,aCols[n024,4])
- nLin027 := If(aCols[n,1]==aCols[n027,1],M->NVALOR,aCols[n027,4])
- nLin032 := If(aCols[n,1]==aCols[n032,1],M->NVALOR,aCols[n032,4])
- nLin033 := If(aCols[n,1]==aCols[n033,1],M->NVALOR,aCols[n033,4])
- nLin034 := If(aCols[n,1]==aCols[n034,1],M->NVALOR,aCols[n034,4])
- nLin035 := If(aCols[n,1]==aCols[n035,1],M->NVALOR,aCols[n035,4])
- nLin037 := If(aCols[n,1]==aCols[n037,1],M->NVALOR,aCols[n037,4])
- nLin040 := If(aCols[n,1]==aCols[n040,1],M->NVALOR,aCols[n040,4])
- nLin045 := If(aCols[n,1]==aCols[n045,1],M->NVALOR,aCols[n045,4])
- nLin046 := If(aCols[n,1]==aCols[n046,1],M->NVALOR,aCols[n046,4])
- nLin047 := If(aCols[n,1]==aCols[n047,1],M->NVALOR,aCols[n047,4])
- nLin048 := If(aCols[n,1]==aCols[n048,1],M->NVALOR,aCols[n048,4])
- nLin049 := If(aCols[n,1]==aCols[n049,1],M->NVALOR,aCols[n049,4])
- nLin050 := If(aCols[n,1]==aCols[n050,1],M->NVALOR,aCols[n050,4])
- nLin051 := If(aCols[n,1]==aCols[n051,1],M->NVALOR,aCols[n051,4])
- nLin052 := If(aCols[n,1]==aCols[n052,1],M->NVALOR,aCols[n052,4])
- nLin053 := If(aCols[n,1]==aCols[n053,1],M->NVALOR,aCols[n053,4])
- nLin054 := If(aCols[n,1]==aCols[n054,1],M->NVALOR,aCols[n054,4])
- nLin055 := If(aCols[n,1]==aCols[n055,1],M->NVALOR,aCols[n055,4])
- nLin056 := If(aCols[n,1]==aCols[n056,1],M->NVALOR,aCols[n056,4])
- nLin057 := If(aCols[n,1]==aCols[n057,1],M->NVALOR,aCols[n057,4])
- nLin058 := If(aCols[n,1]==aCols[n058,1],M->NVALOR,aCols[n058,4])
- nLin059 := If(aCols[n,1]==aCols[n059,1],M->NVALOR,aCols[n059,4])
- nLin060 := If(aCols[n,1]==aCols[n060,1],M->NVALOR,aCols[n060,4])
- nLin062 := If(aCols[n,1]==aCols[n062,1],M->NVALOR,aCols[n062,4])
- nLin063 := If(aCols[n,1]==aCols[n063,1],M->NVALOR,aCols[n063,4])
- nLin064 := If(aCols[n,1]==aCols[n064,1],M->NVALOR,aCols[n064,4])
- nLin065 := If(aCols[n,1]==aCols[n065,1],M->NVALOR,aCols[n065,4])
- nLin066 := If(aCols[n,1]==aCols[n066,1],M->NVALOR,aCols[n066,4])
- nLin067 := If(aCols[n,1]==aCols[n067,1],M->NVALOR,aCols[n067,4])
- nLin068 := If(aCols[n,1]==aCols[n068,1],M->NVALOR,aCols[n068,4])
- nLin069 := If(aCols[n,1]==aCols[n069,1],M->NVALOR,aCols[n069,4])
- nLin070 := If(aCols[n,1]==aCols[n070,1],M->NVALOR,aCols[n070,4])
- nLin073 := If(aCols[n,1]==aCols[n073,1],M->NVALOR,aCols[n073,4])
- nLin074 := If(aCols[n,1]==aCols[n074,1],M->NVALOR,aCols[n074,4])
- nLin076 := If(aCols[n,1]==aCols[n076,1],M->NVALOR,aCols[n076,4])
- nLin078 := If(aCols[n,1]==aCols[n078,1],M->NVALOR,aCols[n078,4])
- ElseIf Empty(ReadVar())
- nLin001 := aCols[n001,4]
- nLin002 := aCols[n002,4]
- nLin004 := aCols[n004,4]
- nLin005 := aCols[n005,4]
- nLin006 := aCols[n006,4]
- nLin007 := aCols[n007,4]
- nLin0101 := aCols[n0101,4]
- nLin011 := aCols[n011,4]
- nLin012 := aCols[n012,4]
- nLin013 := aCols[n013,4]
- nLin015 := aCols[n015,4]
- nLin018 := aCols[n018,4]
- nLin019 := aCols[n019,4]
- nLin022 := aCols[n022,4]
- nLin024 := aCols[n024,4]
- nLin027 := aCols[n027,4]
- nLin032 := aCols[n032,4]
- nLin033 := aCols[n033,4]
- nLin034 := aCols[n034,4]
- nLin035 := aCols[n035,4]
- nLin037 := aCols[n037,4]
- nLin040 := aCols[n040,4]
- nLin045 := aCols[n045,4]
- nLin046 := aCols[n046,4]
- nLin047 := aCols[n047,4]
- nLin048 := aCols[n048,4]
- nLin049 := aCols[n049,4]
- nLin050 := aCols[n050,4]
- nLin051 := aCols[n051,4]
- nLin052 := aCols[n052,4]
- nLin053 := aCols[n053,4]
- nLin054 := aCols[n054,4]
- nLin055 := aCols[n055,4]
- nLin056 := aCols[n056,4]
- nLin057 := aCols[n057,4]
- nLin058 := aCols[n058,4]
- nLin059 := aCols[n059,4]
- nLin060 := aCols[n060,4]
- nLin062 := aCols[n062,4]
- nLin063 := aCols[n063,4]
- nLin064 := aCols[n064,4]
- nLin065 := aCols[n065,4]
- nLin066 := aCols[n066,4]
- nLin067 := aCols[n067,4]
- nLin068 := aCols[n068,4]
- nLin069 := aCols[n069,4]
- nLin070 := aCols[n070,4]
- nLin073 := aCols[n073,4]
- nLin074 := aCols[n074,4]
- nLin076 := aCols[n076,4]
- nLin078 := aCols[n078,4]
- Endif
- If !(SuperGetMV("MV_RNDFOM",,.F.)) //Nao arredonda os valores
- //Quadro A - Proporcao dos creditos apropriados
- aCols[n001,04]:= nLin001 //saidas de oper. incentivadas
- aCols[n002,04]:= nLin002 //todal das saidas
- aCols[n003,04]:= Iif(aCols[n002,04]>0,((aCols[n001,04]/aCols[n002,04])*100),0) //percentual
- aCols[n004,04]:= nLin004 //creditos por entrada
- aCols[n005,04]:= nLin005 //outros creditos
- aCols[n006,04]:= nLin006 //estorno de debitos
- aCols[n007,04]:= nLin007 //saldo credor do periodo anterior
- aCols[n008,04]:= aCols[n004,04]+aCols[n005,04]+aCols[n006,04]+aCols[n007,04] //total dos creditos do periodo
- aCols[n009,04]:= Iif(aCols[n003,04]>0,((aCols[n003,04]*aCols[n008,04])/100),0) //credito para operacoes incentivadas
- aCols[n010,04]:= aCols[n008,04]-aCols[n009,04] //credito para operacoes nao incentivadas
- aCols[n0101,04]:= nLin0101 //Outros Creditos Correspondente Primeira Parcela de ICMS
- //Quadro B - Apuracao dos saldos das operacoes incentivadas
- aCols[n011,04]:= nLin011 //debito do IMCS das operacoes incentivadas
- aCols[n012,04]:= nLin012 //outros debitos das operacoes incentivadas
- aCols[n013,04]:= nLin013 //estorno de debito das operacoes incentivadas
- aCols[n014,04]:= aCols[n009,04]+aCols[n0101,04] //creditos das operacoes incentivadas
- aCols[n015,04]:= nLin015 //deducoes das operacoes incentivadas
- aCols[n016,04]:= aCols[n043,04] //credito ref. saldo credor do period. operacoes nao incentivadas
- aCols[n017,04]:= Iif((aCols[n011,04]+aCols[n012,04]+aCols[n013,04])-;
- (aCols[n014,04]+aCols[n015,04])>0,(aCols[n011,04]+aCols[n012,04]+aCols[n013,04])-;
- (aCols[n014,04]+aCols[n015,04]+aCols[n016,04]),0) //saldo devedor do ICMS das operacoes incentivadas
- aCols[n018,04]:= nLin018 //ICMS por media
- aCols[n019,04]:= nLin019 //deducoes/compensacoes
- aCols[n020,04]:= aCols[n018,04]-aCols[n019,04] //saldo do ICMS a pagar por media
- aCols[n021,04]:= Iif(aCols[n017,04]>aCols[n018,04],aCols[n017,04]-aCols[n018,04],0)//ICMS base para Fomentar/produzir
- aCols[n022,04]:= nLin022 //percentagem do financiamento
- aCols[n023,04]:= ((aCols[n021,04]*aCols[n022,04])/100) //ICMS sujeito a financiamento
- aCols[n024,04]:= nLin024 //ICMS excedente nao sujeito ao incentivo
- aCols[n025,04]:= Iif((aCols[n023,04]-aCols[n024,04])>0,aCols[n023,04]-aCols[n024,04],0)//ICMS Financiado
- aCols[n026,04]:= Iif(aCols[n021,04]>aCols[n023,04],aCols[n021,04]-aCols[n023,04],0) //saldo do ICMS da parcela nao financiada
- aCols[n027,04]:= nLin027 //deducoes/compensacoes
- aCols[n028,04]:= aCols[n026,04]-aCols[n027,04] //saldo do ICMS a pagar da parcela nao financiada
- aCols[n029,04]:= Iif((aCols[n014,04]+aCols[n015,04])>;
- (aCols[n011,04]+aCols[n012,04]+aCols[n013,04]),(aCols[n014,04]+aCols[n015,04])-;
- (aCols[n011,04]+aCols[n012,04]+aCols[n013,04]),0) //saldo credor do periodo
- nLin030 := (aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04]-aCols[n036,04]-aCols[n037,04])
- aCols[n030,04]:= Iif(aCols[n029,04]==0,0,Iif(nLin030<=0,0,Iif(nLin030>=aCols[n029,04],aCols[n029,04],nLin030))) //saldo credor do periodo utilizado nas operacoes nao incentivadas
- aCols[n031,04]:= aCols[n029,04]-aCols[n030,04] //saldo credor a transportar para o periodo seguinte
- //Quadro C - Apuracao dos saldos das operacoes nao incentivadas
- aCols[n032,04]:= nLin032 //debito do ICMS das operacoes nao incentivadas
- aCols[n033,04]:= nLin033 //outros debitos das opercaoes nao incentivadas
- aCols[n034,04]:= nLin034 //estorno de creditos das operacoes nao incentivadas
- aCols[n035,04]:= nLin035 //ICMS excedente nao sujeito ao incentivo
- aCols[n036,04]:= aCols[n010,04] //credito para operacoes nao incentivadas
- aCols[n037,04]:= nLin037 //deducoes das operacoes nao incentivadas
- aCols[n038,04]:= aCols[n030,04] //credito referente a saldo credor do periodo das operacoes incentivadas
- aCols[n039,04]:= Iif((aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04])>;
- (aCols[n036,04]+aCols[n037,04]+aCols[n038,04]),(aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04])-;
- (aCols[n036,04]+aCols[n037,04]+aCols[n038,04]),0) //saldo devedor do ICMS das operacoes nao incentivadas
- aCols[n040,04]:= nLin040 //deducoes/compensacoes
- aCols[n041,04]:= aCols[n039,04]-aCols[n040,04] //saldo do ICMS a pagar das operacoes nao incentivadas
- aCols[n042,04]:= Iif((aCols[n036,04]+aCols[n037,04])>;
- (aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04]),(aCols[n036,04]+aCols[n037,04])-;
- (aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04]),0) //saldo credor do periodo
- nLin043 := ((aCols[n036,04]+aCols[n037,04])-(aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04]))
- nLin043_2:= (aCols[n011,04]+aCols[n012,04]+aCols[n013,04]-aCols[n014,04]-aCols[n015,04])
- aCols[n043,04]:= Iif(nLin043<=0,0,Iif(nLin043_2<=0,0,Iif(nLin043_2>=nLin043,nLin043,nLin043_2)))//saldo credor do periodo utilizado nas operacoes incentivadas
- aCols[n044,04]:= aCols[n042,04]-aCols[n043,04] //saldo credor a transp. para o periodo seguinte
- //Quadro D - Demontrativo e utilizacao dos creditos escriturados na linha observacoes do LRA
- //Demonstrativo dos creditos
- aCols[n045,04]:= nLin045 //saldo credor da linha observacoes do periodo anterior
- aCols[n046,04]:= nLin046 //cheque moradia
- aCols[n047,04]:= nLin047 //protege Goias
- aCols[n048,04]:= nLin048 //proesporte
- aCols[n049,04]:= nLin049 //goyazes
- aCols[n050,04]:= nLin050 //pagamento antecipado
- aCols[n051,04]:= nLin051 //ICMS recebido em transferencia
- aCols[n052,04]:= nLin052 //credito do fabricante de papel e embalagem reciclado
- aCols[n053,04]:= nLin053 //credito relativo ao adicional de 2% na aliquota do ICMS
- aCols[n054,04]:= nLin054 //ajuste do valor pago por forca de legislacao
- aCols[n055,04]:= nLin055 //credito especial para investimento
- aCols[n056,04]:= nLin056 //credito industrial na producao interna do biodiesel
- aCols[n057,04]:= nLin057 //credito na producao de alcool anidro
- aCols[n058,04]:= nLin058 //credito do ICMS pago em DARE
- aCols[n059,04]:= nLin059 //credito outorgado para industrial de veiculo automotor
- aCols[n060,04]:= nLin060 //outros creditos autorizados pela legislacao tributaria
- aCols[n061,04]:= aCols[n045,04]+aCols[n046,04]+aCols[n047,04]+aCols[n048,04]+aCols[n049,04]+;
- aCols[n050,04]+aCols[n051,04]+aCols[n052,04]+aCols[n053,04]+aCols[n054,04]+;
- aCols[n055,04]+aCols[n056,04]+aCols[n057,04]+aCols[n058,04]+aCols[n059,04]+aCols[n060,04] //total dos creditos
- //Utilizacao dos creditos
- aCols[n062,04]:= nLin062 //ICMS Retido via DARE ou de ST
- aCols[n063,04]:= nLin063 //ICMS sobre operacoes nao incentivadas
- aCols[n064,04]:= nLin064 //ICMS por media
- aCols[n065,04]:= nLin065 //ICMS da percela nao financiada
- aCols[n066,04]:= nLin066 //transferencia para terceiros e/ou filiais
- aCols[n067,04]:= nLin067 //restituicao de credito (em moeda)
- aCols[n068,04]:= nLin068 //quitacao de auto de infracao
- aCols[n069,04]:= nLin069 //estorno de credito apropriado indevidamente
- aCols[n070,04]:= nLin070 //outras deducoes/compensacoes
- aCols[n071,04]:= aCols[n062,04]+aCols[n063,04]+aCols[n064,04]+aCols[n065,04]+aCols[n066,04]+;
- aCols[n067,04]+aCols[n068,04]+aCols[n069,04]+aCols[n070,04] //total das deducoes/compensacoes
- aCols[n072,04]:= aCols[n061,04]-aCols[n071,04] //saldo credor do ICMS da linha obs a transportar para periodo seguinte
- //Quadro E - Demonstrativo de debitos referentes a mercadoria importada para comercializacao
- aCols[n073,04]:= nLin073 //total das mercadorias importadas
- aCols[n074,04]:= nLin074 //outros acrescimos sobre importacao
- aCols[n075,04]:= aCols[n073,04]+aCols[n074,04] //total das operacoes de importacao
- aCols[n076,04]:= nLin076 //total das entradas no periodo
- aCols[n077,04]:= Iif(aCols[n076,04]>0,((aCols[n075,04]/aCols[n076,04])*100),0) //percentual das operacoes de importacao
- aCols[n078,04]:= nLin078 //ICMS sobre importacao
- aCols[n079,04]:= Iif(aCols[n077,04]<30,0,((aCols[n076,04]*(aCols[n077,04]-30))/100)) //mercadorias importadas excedentes
- aCols[n080,04]:= Iif(aCols[n075,04]<=0,0,(aCols[n078,04]*(aCols[n079,04]/aCols[n075,04]))) //ICMS sobre importacao excedente
- aCols[n081,04]:= ((aCols[n080,04]*aCols[n022,04])/100) //ICMS sobre importacao excedente nao sujeito a incentivo
- aCols[n082,04]:= aCols[n078,04]-aCols[n080,04] //ICMS sobre importacao sujeito a incentivo
- aCols[n083,04]:= ((aCols[n078,04]*(100-aCols[n022,04]))/100) //ICMS sobre importacao da parcela nao financiada
- aCols[n084,04]:= aCols[n081,04]+aCols[n083,04] //saldo do ICMS sobre importacao a pagar
- Else
- //Quadro A - Proporcao dos creditos apropriados
- aCols[n001,04]:= Round(nLin001,2) //saidas de oper. incentivadas
- aCols[n002,04]:= Round(nLin002,2) //todal das saidas
- aCols[n003,04]:= Iif(aCols[n002,04]>0,Round(((aCols[n001,04]/aCols[n002,04])*100),2),0) //percentual
- aCols[n004,04]:= Round(nLin004,2) //creditos por entrada
- aCols[n005,04]:= Round(nLin005,2) //outros creditos
- aCols[n006,04]:= Round(nLin006,2) //estorno de debitos
- aCols[n007,04]:= Round(nLin007,2) //saldo credor do periodo anterior
- aCols[n008,04]:= Round(aCols[n004,04]+aCols[n005,04]+aCols[n006,04]+aCols[n007,04],2) //total dos creditos do periodo
- aCols[n009,04]:= Iif(aCols[n003,04]>0,Round(((aCols[n003,04]*aCols[n008,04])/100),2),0) //credito para operacoes incentivadas
- aCols[n010,04]:= Round(aCols[n008,04]-aCols[n009,04],2) //credito para operacoes nao incentivadas
- aCols[n0101,04]:= Round(nLin0101,2) //Outros Creditos Correspondente Primeira Parcela de ICMS
- //Quadro B - Apuracao dos saldos das operacoes incentivadas
- aCols[n011,04]:= Round(nLin011,2) //debito do IMCS das operacoes incentivadas
- aCols[n012,04]:= Round(nLin012,2) //outros debitos das operacoes incentivadas
- aCols[n013,04]:= Round(nLin013,2) //estorno de debito das operacoes incentivadas
- aCols[n014,04]:= Round(aCols[n009,04]+aCols[n0101,04],2) //creditos das operacoes incentivadas
- aCols[n015,04]:= Round(nLin015,2) //deducoes das operacoes incentivadas
- aCols[n016,04]:= Round(aCols[n043,04],2) //credito ref. saldo credor do period. operacoes nao incentivadas
- aCols[n017,04]:= Iif((aCols[n011,04]+aCols[n012,04]+aCols[n013,04])-;
- (aCols[n014,04]+aCols[n015,04])>0,Round((aCols[n011,04]+aCols[n012,04]+aCols[n013,04]),2)-;
- Round((aCols[n014,04]+aCols[n015,04]+aCols[n016,04]),2),0) //saldo devedor do ICMS das operacoes incentivadas
- aCols[n018,04]:= Round(nLin018,2) //ICMS por media
- aCols[n019,04]:= Round(nLin019,2) //deducoes/compensacoes
- aCols[n020,04]:= Round(aCols[n018,04]-aCols[n019,04],2) //saldo do ICMS a pagar por media
- aCols[n021,04]:= Iif(aCols[n017,04]>aCols[n018,04],Round(aCols[n017,04]-aCols[n018,04],2),0)//ICMS base para Fomentar/produzir
- aCols[n022,04]:= Round(nLin022,2) //percentagem do financiamento
- aCols[n023,04]:= Round(((aCols[n021,04]*aCols[n022,04])/100),2) //ICMS sujeito a financiamento
- aCols[n024,04]:= Round(nLin024,2) //ICMS excedente nao sujeito ao incentivo
- aCols[n025,04]:= Iif((aCols[n023,04]-aCols[n024,04])>0,Round(aCols[n023,04]-aCols[n024,04],2),0)//ICMS Financiado
- aCols[n026,04]:= Iif(aCols[n021,04]>aCols[n023,04],Round(aCols[n021,04]-aCols[n023,04],2),0) //saldo do ICMS da parcela nao financiada
- aCols[n027,04]:= Round(nLin027,2) //deducoes/compensacoes
- aCols[n028,04]:= Round(aCols[n026,04]-aCols[n027,04],2) //saldo do ICMS a pagar da parcela nao financiada
- aCols[n029,04]:= Iif((aCols[n014,04]+aCols[n015,04])>;
- (aCols[n011,04]+aCols[n012,04]+aCols[n013,04]),Round((aCols[n014,04]+aCols[n015,04]),2)-;
- Round((aCols[n011,04]+aCols[n012,04]+aCols[n013,04]),2),0) //saldo credor do periodo
- nLin030 := Round((aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04]-aCols[n036,04]-aCols[n037,04]),2)
- aCols[n030,04]:= Iif(aCols[n029,04]==0,0,Iif(nLin030<=0,0,Iif(nLin030>=aCols[n029,04],Round(aCols[n029,04],2),Round(nLin030,2)))) //saldo credor do periodo utilizado nas operacoes nao incentivadas
- aCols[n031,04]:= Round(aCols[n029,04]-aCols[n030,04],2) //saldo credor a transportar para o periodo seguinte
- //Quadro C - Apuracao dos saldos das operacoes nao incentivadas
- aCols[n032,04]:= Round(nLin032,2) //debito do ICMS das operacoes nao incentivadas
- aCols[n033,04]:= Round(nLin033,2) //outros debitos das opercaoes nao incentivadas
- aCols[n034,04]:= Round(nLin034,2) //estorno de creditos das operacoes nao incentivadas
- aCols[n035,04]:= Round(nLin035,2) //ICMS excedente nao sujeito ao incentivo
- aCols[n036,04]:= Round(aCols[n010,04],2) //credito para operacoes nao incentivadas
- aCols[n037,04]:= Round(nLin037,2) //deducoes das operacoes nao incentivadas
- aCols[n038,04]:= Round(aCols[n030,04],2) //credito referente a saldo credor do periodo das operacoes incentivadas
- aCols[n039,04]:= Iif((aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04])>;
- (aCols[n036,04]+aCols[n037,04]+aCols[n038,04]),Round((aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04]),2)-;
- Round((aCols[n036,04]+aCols[n037,04]+aCols[n038,04]),2),0) //saldo devedor do ICMS das operacoes nao incentivadas
- aCols[n040,04]:= Round(nLin040,2) //deducoes/compensacoes
- aCols[n041,04]:= Round(aCols[n039,04]-aCols[n040,04],2) //saldo do ICMS a pagar das operacoes nao incentivadas
- aCols[n042,04]:= Iif((aCols[n036,04]+aCols[n037,04])>;
- (aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04]),Round((aCols[n036,04]+aCols[n037,04]),2)-;
- Round((aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04]),2),0) //saldo credor do periodo
- nLin043 := Round(((aCols[n036,04]+aCols[n037,04])-(aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04])),2)
- nLin043_2:= Round((aCols[n011,04]+aCols[n012,04]+aCols[n013,04]-aCols[n014,04]-aCols[n015,04]),2)
- aCols[n043,04]:= Iif(nLin043<=0,0,Iif(nLin043_2<=0,0,Iif(nLin043_2>=nLin043,Round(nLin043,2),Round(nLin043_2,2))))//saldo credor do periodo utilizado nas operacoes incentivadas
- aCols[n044,04]:= Round(aCols[n042,04]-aCols[n043,04],2) //saldo credor a transp. para o periodo seguinte
- //Quadro D - Demontrativo e utilizacao dos creditos escriturados na linha observacoes do LRA
- //Demonstrativo dos creditos
- aCols[n045,04]:= Round(nLin045,2) //saldo credor da linha observacoes do periodo anterior
- aCols[n046,04]:= Round(nLin046,2) //cheque moradia
- aCols[n047,04]:= Round(nLin047,2) //protege Goias
- aCols[n048,04]:= Round(nLin048,2) //proesporte
- aCols[n049,04]:= Round(nLin049,2) //goyazes
- aCols[n050,04]:= Round(nLin050,2) //pagamento antecipado
- aCols[n051,04]:= Round(nLin051,2) //ICMS recebido em transferencia
- aCols[n052,04]:= Round(nLin052,2) //credito do fabricante de papel e embalagem reciclado
- aCols[n053,04]:= Round(nLin053,2) //credito relativo ao adicional de 2% na aliquota do ICMS
- aCols[n054,04]:= Round(nLin054,2) //ajuste do valor pago por forca de legislacao
- aCols[n055,04]:= Round(nLin055,2) //credito especial para investimento
- aCols[n056,04]:= Round(nLin056,2) //credito industrial na producao interna do biodiesel
- aCols[n057,04]:= Round(nLin057,2) //credito na producao de alcool anidro
- aCols[n058,04]:= Round(nLin058,2) //credito do ICMS pago em DARE
- aCols[n059,04]:= Round(nLin059,2) //credito outorgado para industrial de veiculo automotor
- aCols[n060,04]:= Round(nLin060,2) //outros creditos autorizados pela legislacao tributaria
- aCols[n061,04]:= Round(aCols[n045,04]+aCols[n046,04]+aCols[n047,04]+aCols[n048,04]+aCols[n049,04]+;
- aCols[n050,04]+aCols[n051,04]+aCols[n052,04]+aCols[n053,04]+aCols[n054,04]+;
- aCols[n055,04]+aCols[n056,04]+aCols[n057,04]+aCols[n058,04]+aCols[n059,04]+aCols[n060,04],2) //total dos creditos
- //Utilizacao dos creditos
- aCols[n062,04]:= Round(nLin062,2) //ICMS Retido via DARE ou de ST
- aCols[n063,04]:= Round(nLin063,2) //ICMS sobre operacoes nao incentivadas
- aCols[n064,04]:= Round(nLin064,2) //ICMS por media
- aCols[n065,04]:= Round(nLin065,2) //ICMS da percela nao financiada
- aCols[n066,04]:= Round(nLin066,2) //transferencia para terceiros e/ou filiais
- aCols[n067,04]:= Round(nLin067,2) //restituicao de credito (em moeda)
- aCols[n068,04]:= Round(nLin068,2) //quitacao de auto de infracao
- aCols[n069,04]:= Round(nLin069,2) //estorno de credito apropriado indevidamente
- aCols[n070,04]:= Round(nLin070,2) //outras deducoes/compensacoes
- aCols[n071,04]:= Round(aCols[n062,04]+aCols[n063,04]+aCols[n064,04]+aCols[n065,04]+aCols[n066,04]+;
- aCols[n067,04]+aCols[n068,04]+aCols[n069,04]+aCols[n070,04],2) //total das deducoes/compensacoes
- aCols[n072,04]:= Round(aCols[n061,04]-aCols[n071,04],2) //saldo credor do ICMS da linha obs a transportar para periodo seguinte
- //Quadro E - Demonstrativo de debitos referentes a mercadoria importada para comercializacao
- aCols[n073,04]:= Round(nLin073,2) //total das mercadorias importadas
- aCols[n074,04]:= Round(nLin074,2) //outros acrescimos sobre importacao
- aCols[n075,04]:= Round(aCols[n073,04]+aCols[n074,04],2) //total das operacoes de importacao
- aCols[n076,04]:= Round(nLin076,2) //total das entradas no periodo
- aCols[n077,04]:= Iif(aCols[n076,04]>0,Round(((aCols[n075,04]/aCols[n076,04])*100),2),0) //percentual das operacoes de importacao
- aCols[n078,04]:= Round(nLin078,2) //ICMS sobre importacao
- aCols[n079,04]:= Iif(aCols[n077,04]<30,0,Round(((aCols[n076,04]*(aCols[n077,04]-30))/100),2)) //mercadorias importadas excedentes
- aCols[n080,04]:= Iif(aCols[n075,04]<=0,0,Round((aCols[n078,04]*(aCols[n079,04]/aCols[n075,04])),2)) //ICMS sobre importacao excedente
- aCols[n081,04]:= Round(((aCols[n080,04]*aCols[n022,04])/100),2) //ICMS sobre importacao excedente nao sujeito a incentivo
- aCols[n082,04]:= Round(aCols[n078,04]-aCols[n080,04],2) //ICMS sobre importacao sujeito a incentivo
- aCols[n083,04]:= Round(((aCols[n078,04]*(100-aCols[n022,04]))/100),2) //ICMS sobre importacao da parcela nao financiada
- aCols[n084,04]:= Round(aCols[n081,04]+aCols[n083,04],2) //saldo do ICMS sobre importacao a pagar
- Endif
- ElseIf lAtuFomGO .And. !lApurBA // So passo aqui se ele nao carregar os valores da apuracao ja feita anteriormente, ou seja, se estiver refazendo a apuracao nao atualizo pq ja peguei os valores pelo array aDadIC
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //砎erifico os valores array aCols5 ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- n003_05 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="003"}) //estorno de credito
- n004_05 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="004"}) //total das saidas
- n005_05 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="005"}) //entradas com credito do imposto
- n006_05 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="006"}) //outros creditos
- n007_05 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="007"}) //estorno de debitos
- n009_05 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="009"}) //saldo credor do periodo anterior
- n010_05 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="010"}) //total das entradas
- n021_05 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="021"}) //transferencia de credito
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //砊otalizacao das linhas expandidas?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? a953TotLin(n003_05,"003",lFirst,aCols5)
- a953TotLin(n006_05,"006",lFirst,aCols5)
- a953TotLin(n007_05,"007",lFirst,aCols5)
- If !(SuperGetMV("MV_RNDFOM",,.F.)) //Nao arredonda os valores
- //Quadro A - Proporcao dos creditos apropriados
- aCols8[n001,04]:= aCols8[n001,04] //saidas de oper. incentivadas
- aCols8[n002,04]:= aCols5[n004_05,04] //todal das saidas (com excecao das oper. incentivadas)
- aCols8[n003,04]:= Iif(aCols8[n002,04]>0,((aCols8[n001,04]/aCols8[n002,04])*100),0)//percentual
- aCols8[n004,04]:= aCols5[n005_05,04] //creditos por entrada
- aCols8[n005,04]:= aCols5[n006_05,04] //outros creditos
- aCols8[n006,04]:= aCols5[n007_05,04] //estorno de debitos
- aCols8[n007,04]:= aCols5[n009_05,04] //saldo credor do periodo anterior
- aCols8[n008,04]:= aCols8[n004,04]+aCols8[n005,04]+aCols8[n006,04]+aCols8[n007,04] //total dos creditos do periodo
- aCols8[n009,04]:= Iif(aCols8[n003,04]>0,((aCols8[n003,04]*aCols8[n008,04])/100),0) //credito para operacoes incentivadas
- aCols8[n010,04]:= aCols8[n008,04]-aCols8[n009,04] //credito para operacoes nao incentivadas
- //Quadro B - Apuracao dos saldos das operacoes incentivadas
- aCols8[n011,04]:= aCols8[n011,04] //debito do IMCS das operacoes incentivadas
- aCols8[n012,04]:= aCols8[n012,04] //outros debitos das operacoes incentivadas
- aCols8[n013,04]:= aCols8[n013,04] //estorno de debito das operacoes incentivadas
- aCols8[n014,04]:= aCols8[n009,04] //creditos das operacoes incentivadas
- aCols8[n015,04]:= aCols8[n015,04] //deducoes das operacoes incentivadas
- aCols8[n016,04]:= aCols8[n043,04] //credito ref. saldo credor do period. operacoes nao incentivadas
- aCols8[n017,04]:= Iif((aCols8[n011,04]+aCols8[n012,04]+aCols8[n013,04])-;
- (aCols8[n014,04]+aCols8[n015,04])>0,(aCols8[n011,04]+aCols8[n012,04]+aCols8[n013,04])-;
- (aCols8[n014,04]+aCols8[n015,04]+aCols8[n016,04]),0) //saldo devedor do ICMS das operacoes incentivadas
- aCols8[n018,04]:= aCols8[n018,04] //ICMS por media
- aCols8[n019,04]:= aCols8[n019,04] //deducoes/compensacoes
- aCols8[n020,04]:= aCols8[n018,04]-aCols8[n019,04] //saldo do ICMS a pagar por media
- aCols8[n021,04]:= Iif(aCols8[n017,04]>aCols8[n018,04],aCols8[n017,04]-aCols8[n018,04],0) //ICMS base para Fomentar/produzir
- aCols8[n022,04]:= aCols8[n022,04] //percentagem do financiamento
- aCols8[n023,04]:= ((aCols8[n021,04]*aCols8[n022,04])/100) //ICMS sujeito a financiamento
- aCols8[n024,04]:= aCols8[n024,04] //ICMS excedente nao sujeito ao incentivo
- aCols8[n025,04]:= Iif((aCols8[n023,04]-aCols8[n024,04])>0,aCols8[n023,04]-aCols8[n024,04],0) //ICMS Financiado
- aCols8[n026,04]:= Iif(aCols8[n021,04]>aCols8[n023,04],aCols8[n021,04]-aCols8[n023,04],0) //saldo do ICMS da parcela nao financiada
- aCols8[n027,04]:= aCols8[n027,04] //deducoes/compensacoes
- aCols8[n028,04]:= aCols8[n026,04]-aCols8[n027,04] //saldo do ICMS a pagar da parcela nao financiada
- aCols8[n029,04]:= Iif((aCols8[n014,04]+aCols8[n015,04])>;
- (aCols8[n011,04]+aCols8[n012,04]+aCols8[n013,04]),(aCols8[n014,04]+aCols8[n015,04])-;
- (aCols8[n011,04]+aCols8[n012,04]+aCols8[n013,04]),0) //saldo credor do periodo
- nLin030 := (aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04]-aCols8[n036,04]-aCols8[n037,04])
- aCols8[n030,04]:= Iif(aCols8[n029,04]==0,0,Iif(nLin030<=0,0,Iif(nLin030>=aCols8[n029,04],aCols8[n029,04],nLin030))) //saldo credor do periodo utilizado nas operacoes nao incentivadas
- aCols8[n031,04]:= aCols8[n029,04]-aCols8[n030,04] //saldo credor a transportar para o periodo seguinte
- //Quadro C - Apuracao dos saldos das operacoes nao incentivadas
- aCols8[n032,04]:= aCols8[n032,04] //debito do ICMS das operacoes nao incentivadas
- aCols8[n033,04]:= aCols8[n033,04] //outros debitos das opercaoes nao incentivadas
- aCols8[n034,04]:= aCols8[n034,04] //estorno de creditos das operacoes nao incentivadas
- aCols8[n035,04]:= aCols8[n035,04] //ICMS excedente nao sujeito ao incentivo
- aCols8[n036,04]:= aCols8[n010,04] //credito para operacoes nao incentivadas
- aCols8[n037,04]:= aCols8[n037,04] //deducoes das operacoes nao incentivadas
- aCols8[n038,04]:= aCols8[n030,04] //credito referente a saldo credor do periodo das operacoes incentivadas
- aCols8[n039,04]:= Iif((aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04])>;
- (aCols8[n036,04]+aCols8[n037,04]+aCols8[n038,04]),(aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04])-;
- (aCols8[n036,04]+aCols8[n037,04]+aCols8[n038,04]),0) //saldo devedor do ICMS das operacoes nao incentivadas
- aCols8[n040,04]:= aCols8[n040,04] //deducoes/compensacoes
- aCols8[n041,04]:= aCols8[n039,04]-aCols8[n040,04] //saldo do ICMS a pagar das operacoes nao incentivadas
- aCols8[n042,04]:= Iif((aCols8[n036,04]+aCols8[n037,04])>;
- (aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04]),(aCols8[n036,04]+aCols8[n037,04])-;
- (aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04]),0) //saldo credor do periodo
- nLin043 := ((aCols8[n036,04]+aCols8[n037,04])-(aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04]))
- nLin043_2:= (aCols8[n011,04]+aCols8[n012,04]+aCols8[n013,04]-aCols8[n014,04]-aCols8[n015,04])
- aCols8[n043,04]:= Iif(nLin043<=0,0,Iif(nLin043_2<=0,0,Iif(nLin043_2>=nLin043,nLin043,nLin043_2))) //saldo credor do periodo utilizado nas operacoes incentivadas
- aCols8[n044,04]:= aCols8[n042,04]-aCols8[n043,04] //saldo credor a transp. para o periodo seguinte
- //Quadro D - Demontrativo e utilizacao dos creditos escriturados na linha observacoes do LRA
- //Demonstrativo dos creditos
- aCols8[n045,04]:= aCols8[n045,04] //saldo credor da linha observacoes do periodo anterior
- aCols8[n046,04]:= aCols8[n046,04] //cheque moradia
- aCols8[n047,04]:= aCols8[n047,04] //protege Goias
- aCols8[n048,04]:= aCols8[n048,04] //proesporte
- aCols8[n049,04]:= aCols8[n049,04] //goyazes
- aCols8[n050,04]:= aCols8[n050,04] //pagamento antecipado
- aCols8[n051,04]:= aCols8[n051,04] //ICMS recebido em transferencia
- aCols8[n052,04]:= aCols8[n052,04] //credito do fabricante de papel e embalagem reciclado
- aCols8[n053,04]:= aCols8[n053,04] //credito relativo ao adicional de 2% na aliquota do ICMS
- aCols8[n054,04]:= aCols8[n054,04] //ajuste do valor pago por forca de legislacao
- aCols8[n055,04]:= aCols8[n055,04] //credito especial para investimento
- aCols8[n056,04]:= aCols8[n056,04] //credito industrial na producao interna do biodiesel
- aCols8[n057,04]:= aCols8[n057,04] //credito na producao de alcool anidro
- aCols8[n058,04]:= aCols8[n058,04] //credito do ICMS pago em DARE
- aCols8[n059,04]:= aCols8[n059,04] //credito outorgado para industrial de veiculo automotor
- aCols8[n060,04]:= aCols8[n060,04] //outros creditos autorizados pela legislacao tributaria
- aCols8[n061,04]:= aCols8[n045,04]+aCols8[n046,04]+aCols8[n047,04]+aCols8[n048,04]+aCols8[n049,04]+;
- aCols8[n050,04]+aCols8[n051,04]+aCols8[n052,04]+aCols8[n053,04]+aCols8[n054,04]+;
- aCols8[n055,04]+aCols8[n056,04]+aCols8[n057,04]+aCols8[n058,04]+aCols8[n059,04]+aCols8[n060,04] //total dos creditos
- //Utilizacao dos creditos
- aCols8[n062,04]:= aCols8[n062,04] //ICMS Retido via DARE ou de ST
- aCols8[n063,04]:= aCols8[n063,04] //ICMS sobre operacoes nao incentivadas
- aCols8[n064,04]:= aCols8[n064,04] //ICMS por media
- aCols8[n065,04]:= aCols8[n065,04] //ICMS da percela nao financiada
- aCols8[n066,04]:= Iif(n021_05>0,aCols5[n021_05,04],aCols8[n066,04]) //transferencia para terceiros e/ou filiais
- aCols8[n067,04]:= aCols8[n067,04] //restituicao de credito (em moeda)
- aCols8[n068,04]:= aCols8[n068,04] //quitacao de auto de infracao
- aCols8[n069,04]:= aCols5[n003_05,04] //estorno de credito apropriado indevidamente
- aCols8[n070,04]:= aCols8[n070,04] //outras deducoes/compensacoes
- aCols8[n071,04]:= aCols8[n062,04]+aCols8[n063,04]+aCols8[n064,04]+aCols8[n065,04]+aCols8[n066,04]+;
- aCols8[n067,04]+aCols8[n068,04]+aCols8[n069,04]+aCols8[n070,04] //total das deducoes/compensacoes
- aCols8[n072,04]:= aCols8[n061,04]-aCols8[n071,04] //saldo credor do ICMS da linha obs a transportar para periodo seguinte
- //Quadro E - Demonstrativo de debitos referentes a mercadoria importada para comercializacao
- aCols8[n073,04]:= aCols8[n073,04] //total das mercadorias importadas
- aCols8[n074,04]:= aCols8[n074,04] //outros acrescimos sobre importacao
- aCols8[n075,04]:= aCols8[n073,04]+aCols8[n074,04] //total das operacoes de importacao
- aCols8[n076,04]:= aCols5[n010_05,04] //total das entradas no periodo
- aCols8[n077,04]:= Iif(aCols8[n076,04]>0,((aCols8[n075,04]/aCols8[n076,04])*100),0) //percentual das operacoes de importacao
- aCols8[n078,04]:= aCols8[n078,04] //ICMS sobre importacao
- aCols8[n079,04]:= Iif(aCols8[n077,04]<30,0,((aCols8[n076,04]*(aCols8[n077,04]-30))/100)) //mercadorias importadas excedentes
- aCols8[n080,04]:= Iif(aCols8[n075,04]<=0,0,(aCols8[n078,04]*(aCols8[n079,04]/aCols8[n075,04])))//ICMS sobre importacao excedente
- aCols8[n081,04]:= ((aCols8[n080,04]*aCols8[n022,04])/100) //ICMS sobre importacao excedente nao sujeito a incentivo
- aCols8[n082,04]:= aCols8[n078,04]-aCols8[n080,04] //ICMS sobre importacao sujeito a incentivo
- aCols8[n083,04]:= ((aCols8[n078,04]*(100-aCols8[022,04]))/100) //ICMS sobre importacao da parcela nao financiada
- aCols8[n084,04]:= aCols8[n081,04]+aCols8[n083,04] //saldo do ICMS sobre importacao a pagar
- Else
- //Quadro A - Proporcao dos creditos apropriados
- aCols8[n001,04]:= Round(aCols8[n001,04],2) //saidas de oper. incentivadas
- aCols8[n002,04]:= Round(aCols5[n004_05,04],2) //todal das saidas (com excecao das oper. incentivadas)
- aCols8[n003,04]:= Iif(aCols8[n002,04]>0,Round(((aCols8[n001,04]/aCols8[n002,04])*100),2),0)//percentual
- aCols8[n004,04]:= Round(aCols5[n005_05,04],2) //creditos por entrada
- aCols8[n005,04]:= Round(aCols5[n006_05,04],2) //outros creditos
- aCols8[n006,04]:= Round(aCols5[n007_05,04],2) //estorno de debitos
- aCols8[n007,04]:= Round(aCols5[n009_05,04],2) //saldo credor do periodo anterior
- aCols8[n008,04]:= Round(aCols8[n004,04]+aCols8[n005,04]+aCols8[n006,04]+aCols8[n007,04],2) //total dos creditos do periodo
- aCols8[n009,04]:= Iif(aCols8[n003,04]>0,Round(((aCols8[n003,04]*aCols8[n008,04])/100),2),0) //credito para operacoes incentivadas
- aCols8[n010,04]:= Round(aCols8[n008,04]-aCols8[n009,04],2) //credito para operacoes nao incentivadas
- //Quadro B - Apuracao dos saldos das operacoes incentivadas
- aCols8[n011,04]:= Round(aCols8[n011,04],2) //debito do IMCS das operacoes incentivadas
- aCols8[n012,04]:= Round(aCols8[n012,04],2) //outros debitos das operacoes incentivadas
- aCols8[n013,04]:= Round(aCols8[n013,04],2) //estorno de debito das operacoes incentivadas
- aCols8[n014,04]:= Round(aCols8[n009,04],2) //creditos das operacoes incentivadas
- aCols8[n015,04]:= Round(aCols8[n015,04],2) //deducoes das operacoes incentivadas
- aCols8[n016,04]:= Round(aCols8[n043,04],2) //credito ref. saldo credor do period. operacoes nao incentivadas
- aCols8[n017,04]:= Iif((aCols8[n011,04]+aCols8[n012,04]+aCols8[n013,04])-;
- (aCols8[n014,04]+aCols8[n015,04])>0,Round((aCols8[n011,04]+aCols8[n012,04]+aCols8[n013,04]),2)-;
- Round((aCols8[n014,04]+aCols8[n015,04]+aCols8[n016,04]),2),0) //saldo devedor do ICMS das operacoes incentivadas
- aCols8[n018,04]:= Round(aCols8[n018,04],2) //ICMS por media
- aCols8[n019,04]:= Round(aCols8[n019,04],2) //deducoes/compensacoes
- aCols8[n020,04]:= Round(aCols8[n018,04]-aCols8[n019,04],2) //saldo do ICMS a pagar por media
- aCols8[n021,04]:= Iif(aCols8[n017,04]>aCols8[n018,04],Round(aCols8[n017,04]-aCols8[n018,04],2),0) //ICMS base para Fomentar/produzir
- aCols8[n022,04]:= Round(aCols8[n022,04],2) //percentagem do financiamento
- aCols8[n023,04]:= Round(((aCols8[n021,04]*aCols8[n022,04])/100),2) //ICMS sujeito a financiamento
- aCols8[n024,04]:= Round(aCols8[n024,04],2) //ICMS excedente nao sujeito ao incentivo
- aCols8[n025,04]:= Iif((aCols8[n023,04]-aCols8[n024,04])>0,Round(aCols8[n023,04]-aCols8[n024,04],2),0) //ICMS Financiado
- aCols8[n026,04]:= Iif(aCols8[n021,04]>aCols8[n023,04],Round(aCols8[n021,04]-aCols8[n023,04],2),0) //saldo do ICMS da parcela nao financiada
- aCols8[n027,04]:= Round(aCols8[n027,04],2) //deducoes/compensacoes
- aCols8[n028,04]:= Round(aCols8[n026,04]-aCols8[n027,04],2) //saldo do ICMS a pagar da parcela nao financiada
- aCols8[n029,04]:= Iif((aCols8[n014,04]+aCols8[n015,04])>;
- (aCols8[n011,04]+aCols8[n012,04]+aCols8[n013,04]),Round((aCols8[n014,04]+aCols8[n015,04]),2)-;
- Round((aCols8[n011,04]+aCols8[n012,04]+aCols8[n013,04]),2),0) //saldo credor do periodo
- nLin030 := Round((aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04]-aCols8[n036,04]-aCols8[n037,04]),2)
- aCols8[n030,04]:= Iif(aCols8[n029,04]==0,0,Iif(nLin030<=0,0,Iif(nLin030>=aCols8[n029,04],Round(aCols8[n029,04],2),Round(nLin030,2)))) //saldo credor do periodo utilizado nas operacoes nao incentivadas
- aCols8[n031,04]:= Round(aCols8[n029,04]-aCols8[n030,04],2) //saldo credor a transportar para o periodo seguinte
- //Quadro C - Apuracao dos saldos das operacoes nao incentivadas
- aCols8[n032,04]:= Round(aCols8[n032,04],2) //debito do ICMS das operacoes nao incentivadas
- aCols8[n033,04]:= Round(aCols8[n033,04],2) //outros debitos das opercaoes nao incentivadas
- aCols8[n034,04]:= Round(aCols8[n034,04],2) //estorno de creditos das operacoes nao incentivadas
- aCols8[n035,04]:= Round(aCols8[n035,04],2) //ICMS excedente nao sujeito ao incentivo
- aCols8[n036,04]:= Round(aCols8[n010,04],2) //credito para operacoes nao incentivadas
- aCols8[n037,04]:= Round(aCols8[n037,04],2) //deducoes das operacoes nao incentivadas
- aCols8[n038,04]:= Round(aCols8[n030,04],2) //credito referente a saldo credor do periodo das operacoes incentivadas
- aCols8[n039,04]:= Iif((aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04])>;
- (aCols8[n036,04]+aCols8[n037,04]+aCols8[n038,04]),Round((aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04]),2)-;
- Round((aCols8[n036,04]+aCols8[n037,04]+aCols8[n038,04]),2),0) //saldo devedor do ICMS das operacoes nao incentivadas
- aCols8[n040,04]:= Round(aCols8[n040,04],2) //deducoes/compensacoes
- aCols8[n041,04]:= Round(aCols8[n039,04]-aCols8[n040,04],2) //saldo do ICMS a pagar das operacoes nao incentivadas
- aCols8[n042,04]:= Iif((aCols8[n036,04]+aCols8[n037,04])>;
- (aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04]),Round((aCols8[n036,04]+aCols8[n037,04]),2)-;
- Round((aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04]),2),0) //saldo credor do periodo
- nLin043 := Round(((aCols8[n036,04]+aCols8[n037,04])-(aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04])),2)
- nLin043_2:= Round((aCols8[n011,04]+aCols8[n012,04]+aCols8[n013,04]-aCols8[n014,04]-aCols8[n015,04]),2)
- aCols8[n043,04]:= Iif(nLin043<=0,0,Iif(nLin043_2<=0,0,Iif(nLin043_2>=nLin043,Round(nLin043,2),Round(nLin043_2,2)))) //saldo credor do periodo utilizado nas operacoes incentivadas
- aCols8[n044,04]:= Round(aCols8[n042,04]-aCols8[n043,04],2) //saldo credor a transp. para o periodo seguinte
- //Quadro D - Demontrativo e utilizacao dos creditos escriturados na linha observacoes do LRA
- //Demonstrativo dos creditos
- aCols8[n045,04]:= Round(aCols8[n045,04],2) //saldo credor da linha observacoes do periodo anterior
- aCols8[n046,04]:= Round(aCols8[n046,04],2) //cheque moradia
- aCols8[n047,04]:= Round(aCols8[n047,04],2) //protege Goias
- aCols8[n048,04]:= Round(aCols8[n048,04],2) //proesporte
- aCols8[n049,04]:= Round(aCols8[n049,04],2) //goyazes
- aCols8[n050,04]:= Round(aCols8[n050,04],2) //pagamento antecipado
- aCols8[n051,04]:= Round(aCols8[n051,04],2) //ICMS recebido em transferencia
- aCols8[n052,04]:= Round(aCols8[n052,04],2) //credito do fabricante de papel e embalagem reciclado
- aCols8[n053,04]:= Round(aCols8[n053,04],2) //credito relativo ao adicional de 2% na aliquota do ICMS
- aCols8[n054,04]:= Round(aCols8[n054,04],2) //ajuste do valor pago por forca de legislacao
- aCols8[n055,04]:= Round(aCols8[n055,04],2) //credito especial para investimento
- aCols8[n056,04]:= Round(aCols8[n056,04],2) //credito industrial na producao interna do biodiesel
- aCols8[n057,04]:= Round(aCols8[n057,04],2) //credito na producao de alcool anidro
- aCols8[n058,04]:= Round(aCols8[n058,04],2) //credito do ICMS pago em DARE
- aCols8[n059,04]:= Round(aCols8[n059,04],2) //credito outorgado para industrial de veiculo automotor
- aCols8[n060,04]:= Round(aCols8[n060,04],2) //outros creditos autorizados pela legislacao tributaria
- aCols8[n061,04]:= Round(aCols8[n045,04]+aCols8[n046,04]+aCols8[n047,04]+aCols8[n048,04]+aCols8[n049,04]+;
- aCols8[n050,04]+aCols8[n051,04]+aCols8[n052,04]+aCols8[n053,04]+aCols8[n054,04]+;
- aCols8[n055,04]+aCols8[n056,04]+aCols8[n057,04]+aCols8[n058,04]+aCols8[n059,04]+aCols8[n060,04],2) //total dos creditos
- //Utilizacao dos creditos
- aCols8[n062,04]:= Round(aCols8[n062,04],2) //ICMS Retido via DARE ou de ST
- aCols8[n063,04]:= Round(aCols8[n063,04],2) //ICMS sobre operacoes nao incentivadas
- aCols8[n064,04]:= Round(aCols8[n064,04],2) //ICMS por media
- aCols8[n065,04]:= Round(aCols8[n065,04],2) //ICMS da percela nao financiada
- aCols8[n066,04]:= Iif(n021_05>0,Round(aCols5[n021_05,04],2),Round(aCols8[n066,04],2)) //transferencia para terceiros e/ou filiais
- aCols8[n067,04]:= Round(aCols8[n067,04],2) //restituicao de credito (em moeda)
- aCols8[n068,04]:= Round(aCols8[n068,04],2) //quitacao de auto de infracao
- aCols8[n069,04]:= Round(aCols5[n003_05,04],2) //estorno de credito apropriado indevidamente
- aCols8[n070,04]:= Round(aCols8[n070,04],2) //outras deducoes/compensacoes
- aCols8[n071,04]:= Round(aCols8[n062,04]+aCols8[n063,04]+aCols8[n064,04]+aCols8[n065,04]+aCols8[n066,04]+;
- aCols8[n067,04]+aCols8[n068,04]+aCols8[n069,04]+aCols8[n070,04],2) //total das deducoes/compensacoes
- aCols8[n072,04]:= Round(aCols8[n061,04]-aCols8[n071,04],2) //saldo credor do ICMS da linha obs a transportar para periodo seguinte
- //Quadro E - Demonstrativo de debitos referentes a mercadoria importada para comercializacao
- aCols8[n073,04]:= Round(aCols8[n073,04],2) //total das mercadorias importadas
- aCols8[n074,04]:= Round(aCols8[n074,04],2) //outros acrescimos sobre importacao
- aCols8[n075,04]:= Round(aCols8[n073,04]+aCols8[n074,04],2) //total das operacoes de importacao
- aCols8[n076,04]:= Round(aCols5[n010_05,04],2) //total das entradas no periodo
- aCols8[n077,04]:= Iif(aCols8[n076,04]>0,Round(((aCols8[n075,04]/aCols8[n076,04])*100),2),0) //percentual das operacoes de importacao
- aCols8[n078,04]:= Round(aCols8[n078,04],2) //ICMS sobre importacao
- aCols8[n079,04]:= Iif(aCols8[n077,04]<30,0,Round(((aCols8[n076,04]*(aCols8[n077,04]-30))/100),2)) //mercadorias importadas excedentes
- aCols8[n080,04]:= Iif(aCols8[n075,04]<=0,0,Round((aCols8[n078,04]*(aCols8[n079,04]/aCols8[n075,04])),2))//ICMS sobre importacao excedente
- aCols8[n081,04]:= Round(((aCols8[n080,04]*aCols8[n022,04])/100),2) //ICMS sobre importacao excedente nao sujeito a incentivo
- aCols8[n082,04]:= Round(aCols8[n078,04]-aCols8[n080,04],2) //ICMS sobre importacao sujeito a incentivo
- aCols8[n083,04]:= Round(((aCols8[n078,04]*(100-aCols8[022,04]))/100),2) //ICMS sobre importacao da parcela nao financiada
- aCols8[n084,04]:= Round(aCols8[n081,04]+aCols8[n083,04],2) //saldo do ICMS sobre importacao a pagar
- Endif
- Endif
- Elseif lApurBA
- //谀哪哪哪哪哪哪哪哪哪哪哪目
- //矱xportacoes ?
- //滥哪哪哪哪哪哪哪哪哪哪哪馁
- n001:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="001"}) //por saidas com debito do imposto
- n002:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="002"}) //outros debitos
- n003:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="003"}) //estorno de creditos
- n004:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="004"}) //Total das saidas
- n005:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="005"}) //entradas com credito do imposto
- n006:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="006"}) //outros creditos
- n007:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="007"}) //estorno de debitos
- n008:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="008"}) //Sub-total das entradas
- n009:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="009"}) //Saldo credor do periodo anterior
- n010:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="010"}) //Total das entradas
- n011:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="011"}) //Saldo devedor
- n012:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="012"}) //deducoes
- n013:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="013"}) //imposto a recolher
- n014:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="014"}) //Saldo Credor
- //Totalizacao das linhas expandidas
- a953TotLin(n002,"002",lFirst,aCols8)
- a953TotLin(n003,"003",lFirst,aCols8)
- a953TotLin(n006,"006",lFirst,aCols8)
- a953TotLin(n007,"007",lFirst,aCols8)
- a953TotLin(n012,"012",lFirst,aCols8)
- If !lFirst
- If ReadVar() =="M->NVALOR"
- nLin001 := if(aCols[n,1]==aCols[n001,1],M->NVALOR,aCols[n001,4])
- nLin005 := if(aCols[n,1]==aCols[n005,1],M->NVALOR,aCols[n005,4])
- nLin009 := if(aCols[n,1]==aCols[n009,1],M->NVALOR,aCols[n009,4])
- Elseif empty(ReadVar())
- nLin001 := aCols[n001,4]
- nLin005 := aCols[n005,4]
- nLin009 := aCols[n009,4]
- Endif
- nLin002 := aCols[n002,4]
- nLin003 := aCols[n003,4]
- nLin006 := aCols[n006,4]
- nLin007 := aCols[n007,4]
- nLin012 := aCols[n012,4]
- aCols[n004,04] := nLin001+nLin002+nLin003 //total saidas
- aCols[n008,04] := nLin005+nLin006+nLin007 //sub-total entradas
- aCols[n010,04] := aCols[n008,4]+nLin009 //total entradas
- aCols[n011,04] := if((aCols[n004,4]-n002Cons)-(aCols[n010,4]-n006Cons)>=0,(aCols[n004,4]-n002Cons)-(aCols[n010,4]-n006Cons),0) //Saldo Devedor( 004-010 )
- aCols[n013,04] := if(aCols[n011,4]-nLin012>=0,aCols[n011,4]-nLin012,0) //Imposto a recolher( 011-012 )
- aCols[n014,04] := if(((aCols[n010,4]-n006Cons)-(aCols[n004,4]-n002Cons))+nLin012>=0,((aCols[n010,4]-n006Cons)-(aCols[n004,4]-n002Cons))+nLin012,0) //Saldo Credor ( 010-004 )
- Else
- aCols8[n004,04]:= aCols8[n001,4]+aCols8[n002,4]+aCols8[n003,4] //total saidas
- aCols8[n008,04]:= aCols8[n005,4]+aCols8[n006,4]+aCols8[n007,4] //sub-total entradas
- aCols8[n010,04]:= aCols8[n008,4]+aCols8[n009,4] //total entradas
- aCols8[n011,04]:= if((aCols8[n004,4]-n002Cons)-aCols8[n010,4]>=0,(aCols8[n004,4]-n002Cons)-aCols8[n010,4],0) //Saldo Devedor( 004-010 )
- aCols8[n013,04]:= if(aCols8[n011,4]-aCols8[n012,4]>=0,aCols8[n011,4]-aCols8[n012,4],0) //Imposto a recolher( 011-012 )
- aCols8[n014,04]:= if(((aCols8[n010,4]-n006Cons)-(aCols8[n004,4]-n002Cons))+aCols8[n012,4]>=0,((aCols8[n010,4]-n006Cons)-(aCols8[n004,4]-n002Cons))+aCols8[n012,4],0) //Saldo Credor ( 010-004 )
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //砄utras hipoteses ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- n001 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="001"}) //por saidas com debito do imposto
- n002 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="002"}) //outros debitos
- n003 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="003"}) //estorno de creditos
- n004 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="004"}) //Total das saidas
- n005 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="005"}) //entradas com credito do imposto
- n006 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="006"}) //outros creditos
- n007 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="007"}) //estorno de debitos
- n008 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="008"}) //Sub-total das entradas
- n009 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="009"}) //Saldo credor do periodo anterior
- n010 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="010"}) //Total das entradas
- n011 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="011"}) //Saldo devedor
- n012 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="012"}) //deducoes
- n013 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="013"}) //imposto a recolher
- n014 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="014"}) //Saldo Credor
- //Totalizacao das linhas expandidas
- a953TotLin(n002,"002",lFirst,aCols9)
- a953TotLin(n003,"003",lFirst,aCols9)
- a953TotLin(n006,"006",lFirst,aCols9)
- a953TotLin(n007,"007",lFirst,aCols9)
- a953TotLin(n012,"012",lFirst,aCols9)
- If !lFirst
- if ReadVar() =="M->NVALOR"
- nLin001 := if(aCols[n,1]==aCols[n001,1],M->NVALOR,aCols[n001,4])
- nLin005 := if(aCols[n,1]==aCols[n005,1],M->NVALOR,aCols[n005,4])
- nLin009 := if(aCols[n,1]==aCols[n009,1],M->NVALOR,aCols[n009,4])
- Elseif empty(ReadVar())
- nLin001 := aCols[n001,4]
- nLin005 := aCols[n005,4]
- nLin009 := aCols[n009,4]
- Endif
- nLin002 := aCols[n002,4]
- nLin003 := aCols[n003,4]
- nLin006 := aCols[n006,4]
- nLin007 := aCols[n007,4]
- nLin012 := aCols[n012,4]
- aCols[n004,04] := nLin001+nLin002+nLin003 //total saidas
- aCols[n008,04] := nLin005+nLin006+nLin007 //sub-total entradas
- aCols[n010,04] := aCols[n008,4]+nLin009 //total entradas
- aCols[n011,04] := if((aCols[n004,4]-n002Cons)-(aCols[n010,4]-n006Cons)>=0,(aCols[n004,4]-n002Cons)-(aCols[n010,4]-n006Cons),0) //Saldo Devedor( 004-010 )
- aCols[n013,04] := if(aCols[n011,4]-nLin012>=0,aCols[n011,4]-nLin012,0) //Imposto a recolher( 011-012 )
- aCols[n014,04] := if(((aCols[n010,4]-n006Cons)-(aCols[n004,4]-n002Cons))+nLin012>=0,((aCols[n010,4]-n006Cons)-(aCols[n004,4]-n002Cons))+nLin012,0) //Saldo Credor ( 010-004 )
- Else
- aCols9[n004,04]:= aCols9[n001,4]+aCols9[n002,4]+aCols9[n003,4] //total saidas
- aCols9[n008,04]:= aCols9[n005,4]+aCols9[n006,4]+aCols9[n007,4] //sub-total entradas
- aCols9[n010,04]:= aCols9[n008,4]+aCols9[n009,4] //total entradas
- aCols9[n011,04]:= if((aCols9[n004,4]-n002Cons)-aCols9[n010,4]>=0,(aCols9[n004,4]-n002Cons)-aCols9[n010,4],0) //Saldo Devedor( 004-010 )
- aCols9[n013,04]:= if(aCols9[n011,4]-aCols9[n012,4]>=0,aCols9[n011,4]-aCols9[n012,4],0) //Imposto a recolher( 011-012 )
- aCols9[n014,04]:= if(((aCols9[n010,4]-n006Cons)-(aCols9[n004,4]-n002Cons))+aCols9[n012,4]>=0,((aCols9[n010,4]-n006Cons)-(aCols9[n004,4]-n002Cons))+aCols9[n012,4],0) //Saldo Credor ( 010-004 )
- Endif
- ElseIf lDebEsp
- n900:= Ascan(if(lFirst,aCols10,aCols),{|x|x[1]=="900"}) //Saldo Credor
- n901:= Ascan(if(lFirst,aCols10,aCols),{|x|x[1]=="901"}) //Saldo Credor
- //Totalizacao das linhas expandidas
- a953TotLin(n900,"900",lFirst,aCols10)
- a953TotLin(n901,"901",lFirst,aCols10)
- ElseIf lDifal
- n001 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="001"}) //por saidas com debito do imposto
- n002 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="002"}) //por saidas com debito do imposto
- n003 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="003"}) //por saidas com debito do imposto
- n004 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="004"}) //por saidas com debito do imposto
- n005 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="005"}) //por saidas com debito do imposto
- n006 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="006"}) //por saidas com debito do imposto
- n007 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="007"}) //por saidas com debito do imposto
- n008 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="008"}) //por saidas com debito do imposto
- n009 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="009"}) //por saidas com debito do imposto
- n010 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="010"}) //por saidas com debito do imposto
- n011 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="011"}) //por saidas com debito do imposto
- n012 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="012"}) //por saidas com debito do imposto
- n013 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="013"}) //por saidas com debito do imposto
- n014 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="014"}) //por saidas com debito do imposto
- n015 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="015"}) //por saidas com debito do imposto
- n016 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="016"}) //por saidas com debito do imposto
- n017 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="017"}) //por saidas com debito do imposto
- If Year(dDtIni) >= 2017
- n018 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="018"}) //por saidas com debito do imposto
- n019 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="019"}) //por saidas com debito do imposto
- n020 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="020"}) //por saidas com debito do imposto
- n021 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="021"}) //por saidas com debito do imposto
- n022 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="022"}) //por saidas com debito do imposto
- n023 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="023"}) //por saidas com debito do imposto
- n024 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="024"}) //por saidas com debito do imposto
- Endif
- a953TotLin(n002,"002",lFirst,aCols13)
- a953TotLin(n003,"003",lFirst,aCols13)
- a953TotLin(n006,"006",lFirst,aCols13)
- a953TotLin(n007,"007",lFirst,aCols13)
- a953TotLin(n009,"009",lFirst,aCols13)
- a953TotLin(n012,"012",lFirst,aCols13)
- If Year(dDtIni) >= 2017
- a953TotLin(n014,"014",lFirst,aCols13)
- a953TotLin(n015,"015",lFirst,aCols13)
- a953TotLin(n017,"017",lFirst,aCols13)
- a953TotLin(n018,"018",lFirst,aCols13)
- a953TotLin(n019,"019",lFirst,aCols13)
- a953TotLin(n021,"021",lFirst,aCols13)
- a953TotLin(n024,"024",lFirst,aCols13)
- Endif
- if ReadVar() =="M->NVALOR"
- nLin001 := if(aCols[n,1]==aCols[n001,1],M->NVALOR,aCols[n001,4])
- nLin002 := if(aCols[n,1]==aCols[n002,1],M->NVALOR,aCols[n002,4])
- nLin003 := if(aCols[n,1]==aCols[n003,1],M->NVALOR,aCols[n003,4])
- nLin004 := if(aCols[n,1]==aCols[n004,1],M->NVALOR,aCols[n004,4])
- nLin005 := if(aCols[n,1]==aCols[n005,1],M->NVALOR,aCols[n005,4])
- nLin006 := if(aCols[n,1]==aCols[n006,1],M->NVALOR,aCols[n006,4])
- nLin007 := if(aCols[n,1]==aCols[n007,1],M->NVALOR,aCols[n007,4])
- nLin008 := if(aCols[n,1]==aCols[n008,1],M->NVALOR,aCols[n008,4])
- nLin009 := if(aCols[n,1]==aCols[n009,1],M->NVALOR,aCols[n009,4])
- nLin010 := if(aCols[n,1]==aCols[n010,1],M->NVALOR,aCols[n010,4])
- nLin011 := 0
- nLin012 := if(aCols[n,1]==aCols[n012,1],M->NVALOR,aCols[n012,4])
- nLin013 := if(aCols[n,1]==aCols[n013,1],M->NVALOR,aCols[n013,4])
- nLin014 := if(aCols[n,1]==aCols[n014,1],M->NVALOR,aCols[n014,4])
- nLin015 := if(aCols[n,1]==aCols[n015,1],M->NVALOR,aCols[n015,4])
- nLin016 := if(aCols[n,1]==aCols[n016,1],M->NVALOR,aCols[n016,4])
- nLin017 := 0
- If Year(dDtIni) >= 2017
- nLin017 := if(aCols[n,1]==aCols[n017,1],M->NVALOR,aCols[n017,4])
- nLin018 := if(aCols[n,1]==aCols[n018,1],M->NVALOR,aCols[n018,4])
- nLin019 := if(aCols[n,1]==aCols[n019,1],M->NVALOR,aCols[n019,4])
- nLin020 := if(aCols[n,1]==aCols[n020,1],M->NVALOR,aCols[n020,4])
- nLin021 := if(aCols[n,1]==aCols[n021,1],M->NVALOR,aCols[n021,4])
- nLin022 := if(aCols[n,1]==aCols[n022,1],M->NVALOR,aCols[n022,4])
- nLin023 := 0
- nLin024 := if(aCols[n,1]==aCols[n024,1],M->NVALOR,aCols[n024,4])
- Endif
- Elseif empty(ReadVar())
- nLin001 := aCols[n001,4]
- nLin002 := aCols[n002,4]
- nLin003 := aCols[n003,4]
- nLin004 := aCols[n004,4]
- nLin005 := aCols[n005,4]
- nLin006 := aCols[n006,4]
- nLin007 := aCols[n007,4]
- nLin008 := aCols[n008,4]
- nLin009 := aCols[n009,4]
- nLin010 := aCols[n010,4]
- nLin011 := 0
- nLin012 := aCols[n012,4]
- nLin013 := aCols[n013,4]
- nLin014 := aCols[n014,4]
- nLin015 := aCols[n015,4]
- nLin016 := aCols[n016,4]
- nLin017 := 0
- If Year(dDtIni) >= 2017
- nLin017 := if(aCols[n,1]==aCols[n017,1],M->NVALOR,aCols[n017,4])
- nLin018 := if(aCols[n,1]==aCols[n018,1],M->NVALOR,aCols[n018,4])
- nLin019 := if(aCols[n,1]==aCols[n019,1],M->NVALOR,aCols[n019,4])
- nLin020 := if(aCols[n,1]==aCols[n020,1],M->NVALOR,aCols[n020,4])
- nLin021 := if(aCols[n,1]==aCols[n021,1],M->NVALOR,aCols[n021,4])
- nLin022 := if(aCols[n,1]==aCols[n022,1],M->NVALOR,aCols[n022,4])
- nLin023 := 0
- nLin024 := if(aCols[n,1]==aCols[n024,1],M->NVALOR,aCols[n024,4])
- Endif
- Endif
- nLin008 := (nLin001+nLin002+nLin003) - (nLin004+nLin005+nLin006+nLin007) // Saldo Devedor de DIFAL
- nLin010 := nLin008 - nLin009 //VAlor a recolher do Difal
- If Year(dDtIni) < 2017
- nLin016 := nLin013 - (nLin014+nLin015)
- Else
- nLin020 := (nLin013+nLin014+nLin015) - (nLin016+nLin017+nLin018+nLin019) // Saldo Devedor de FCP
- nLin022 := nLin020 - nLin021 //VAlor a recolher do FCP
- Endif
- If nLin008 < 0
- nLin011 += nLin008 * -1
- nLin008 := 0
- nLin011 += nLin009
- nLin010 := 0
- ElseIF nLin010 < 0
- nLin011 += nLin010 * -1
- nLin010 := 0
- EndIF
- aCols[n008,04] := nLin008//saldo devedor difal //20
- aCols[n010,04] := nLin010 //valor recolher difal //22
- aCols[n011,04] := nLin011 //saldo credor difal //23
- If Year(dDtIni) < 2017
- IF nLin016 < 0
- nLin017 += nLin016
- nLin016 := 0
- EndIF
- aCols[n016,04] := nLin016//Valor a recolher FECP
- aCols[n017,04] := nLin017 //Saldo credor Fecp
- Else
- If nLin020 < 0
- nLin023 += nLin020 * -1
- nLin020 := 0
- nLin023 += nLin021
- nLin022 := 0
- ElseIF nLin022 < 0
- nLin023 += nLin022 * -1
- nLin022 := 0
- EndIF
- aCols[n020,04] := nLin020 //saldo devedor FCP
- aCols[n022,04] := nLin022 //Valor a recolher FECP
- aCols[n023,04] := nLin023 //Saldo credor Fecp
- Endif
- Else
- n001 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="001"}) //por saidas com debito do imposto
- n002 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="002"}) //outros debitos
- n003 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="003"}) //estorno de creditos
- n004 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="004"}) //Total das saidas
- n005 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="005"}) //entradas com credito do imposto
- n006 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="006"}) //outros creditos
- n007 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="007"}) //estorno de debitos
- n008 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="008"}) //Sub-total das entradas
- n009 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="009"}) //Saldo credor do periodo anterior
- n010 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="010"}) //Total das entradas
- n011 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="011"}) //Saldo devedor
- n012 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="012"}) //deducoes
- n013 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="013"}) //imposto a recolher
- n014 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="014"}) //Saldo Credor
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //砊otalizacao das linhas expandidas?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? a953TotLin(n002,"002",lFirst,aCols5)
- a953TotLin(n003,"003",lFirst,aCols5)
- a953TotLin(n006,"006",lFirst,aCols5)
- a953TotLin(n007,"007",lFirst,aCols5)
- a953TotLin(n012,"012",lFirst,aCols5)
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矱storno RICMS-DF Inciso V art. 60 Decreto 18.955?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If GetMv("MV_ESTADO") == "DF"
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矯riado parametro MV_GESTCRE que permite ao usuario que o estorno de credito nao?
- //硈eja realizado automaticamente pelo sistema. ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If GetNewPar("MV_GESTCRE",.T.)
- aCols5[6][4]+=ProcRICMDF(dDtIni,dDtFim)
- EndIf
- EndIf
- if !lFirst
- if ReadVar() =="M->NVALOR"
- nLin001 := if(aCols[n,1]==aCols[n001,1],M->NVALOR,aCols[n001,4])
- nLin005 := if(aCols[n,1]==aCols[n005,1],M->NVALOR,aCols[n005,4])
- nLin009 := if(aCols[n,1]==aCols[n009,1],M->NVALOR,aCols[n009,4])
- Elseif empty(ReadVar())
- nLin001 := aCols[n001,4]
- nLin005 := aCols[n005,4]
- nLin009 := aCols[n009,4]
- Endif
- nLin002 := aCols[n002,4]
- nLin003 := aCols[n003,4]
- nLin006 := aCols[n006,4]
- nLin007 := aCols[n007,4]
- nLin012 := aCols[n012,4]
- aCols[n004,04] := nLin001+nLin002+nLin003 //total saidas
- aCols[n008,04] := nLin005+nLin006+nLin007 //sub-total entradas
- aCols[n010,04] := aCols[n008,4]+nLin009 //total entradas
- aCols[n011,04] := if((aCols[n004,4]-n002Cons)-(aCols[n010,4]-n006Cons)>=0,(aCols[n004,4]-n002Cons)-(aCols[n010,4]-n006Cons),0) //Saldo Devedor( 004-010 )
- aCols[n013,04] := if(aCols[n011,4]-nLin012>=0,aCols[n011,4]-nLin012,0) //Imposto a recolher( 011-012 )
- aCols[n014,04] := if(((aCols[n010,4]-n006Cons)-(aCols[n004,4]-n002Cons))+nLin012>=0,((aCols[n010,4]-n006Cons)-(aCols[n004,4]-n002Cons))+nLin012,0) //Saldo Credor ( 010-004 )
- nPosRecST := Ascan(aCols6,{|x|x[1]=="015"}) //imposto a recolher Substituicao Tributaria
- nVlrTitulo := aCols[n013,4]+aCols6[nPosRecST,4]
- Else
- aCols5[n004,04]:= aCols5[n001,4]+aCols5[n002,4]+aCols5[n003,4] //total saidas
- aCols5[n008,04]:= aCols5[n005,4]+aCols5[n006,4]+aCols5[n007,4] //sub-total entradas
- aCols5[n010,04]:= aCols5[n008,4]+aCols5[n009,4] //total entradas
- aCols5[n011,04]:= if((aCols5[n004,4]-n002Cons)-aCols5[n010,4]>=0,(aCols5[n004,4]-n002Cons)-aCols5[n010,4],0) //Saldo Devedor( 004-010 )
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矨tualizacao do valor das deducoes|
- //硆eferente a lei 4533 - RJ |
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If SuperGetMv("MV_ESTADO") == "RJ" .And. GetNewPar("MV_REGESP",0) > 0
- nValAtu := If(aCols5[n011,4]-aCols5[n012,4]>=0,aCols5[n011,4]-aCols5[n012,4],0)
- aCols5[n012,4] := nValAtu
- Endif
- aCols5[n013,04]:= if(aCols5[n011,4]-aCols5[n012,4]>=0,aCols5[n011,4]-aCols5[n012,4],0) //Imposto a recolher( 011-012 )
- If lArt488MG
- aCols5[n013,04] := aCols5[n013,04] - nVlrArt488MG
- Endif
- aCols5[n014,04]:= if(((aCols5[n010,4]-n006Cons)-(aCols5[n004,4]-n002Cons))+aCols5[n012,4]>=0,((aCols5[n010,4]-n006Cons)-(aCols5[n004,4]-n002Cons))+aCols5[n012,4],0) //Saldo Credor ( 010-004 )
- nPosRecST := Ascan(aCols6,{|x|x[1]=="015"}) //imposto a recolher Substituicao Tributaria
- nVlrTitulo := aCols5[n013,4]+aCols6[nPosRecST,4]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矨tualizacao do valor das deducoes|
- //?referente a lei 4533 - RJ |
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If SuperGetMv("MV_ESTADO") == "RJ" .And. GetNewPar("MV_REGESP",0) > 0
- For n01202 := 1 to Len(aCols5)
- If Alltrim(aCols5[n01202][2])=="012.02" //Deducoes - Conforme Lei 4533 de 04/04/05
- aCols5[n01202][4] := nValAtu
- Exit
- Endif
- Next
- Endif
- Endif
- // Incentivos Fiscais
- If !lFirst .And. !lST .And. !lFomentar .And. !lApurBA .And. !lDebEsp .And. !lArt488MG
- // -- DESENVOLVE BA --
- If !Empty( aMvDes ) .And. GetNewPar( 'MV_ESTADO' ) == 'BA'
- If aScan( aCols , { |x| Alltrim(x[2]) == aMvDes[8] } ) > 0
- aCols[ aScan( aCols , { |x| Alltrim(x[2]) == aMvDes[ 8 ] } ) , 4 ] := ( ( nAuxIncent + aCols[ n011 , 4 ] ) * aMvDes[ 2 ] ) / 100
- a953TotLin( n012 , "012" , lFirst , aCols )
- nLin012 := aCols[ n012 , 4 ]
- aCols[ n013 , 04 ] := if( aCols[ n011 , 4 ] - nLin012 >= 0 , aCols[ n011 , 4 ] - nLin012 , 0 ) //Imposto a recolher( 011-012 )
- Endif
- // -- PRODEC SC --
- Elseif !Empty( aMvPrdc ) .And. GetNewPar( 'MV_ESTADO' ) == 'SC'
- If aScan( aCols, { |x| Alltrim(x[2]) == aMvPrdc[8] } ) > 0
- aCols[ aScan( aCols, { |x| Alltrim(x[2]) == aMvPrdc[ 8 ] } ) , 4 ] := ( aCols[n011,4] * aMvPrdc[ 2 ] ) / 100
- a953TotLin( n012 , "012" , lFirst , aCols )
- nLin012 := aCols[ n012 , 4 ]
- aCols[ n013 , 04 ] := if( aCols[ n011 , 4 ] - nLin012 >= 0 , aCols[ n011 , 4 ] - nLin012 , 0 ) //Imposto a recolher( 011-012 )
- Endif
- Endif
- Endif
- Endif
- Return(.t. )
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北篎unction 矨ddCols 篈utor 矨ndreia dos Santos ?Data ? 13/08/01罕?
- 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北篋esc. ?Adiciona linha no acols para "outros Debitos","outros credi罕?
- 北? 硉os","Estorno de debitos","Estorno de debitos","Deducoes" e 罕?
- 北? ?Debitos Especiais" 罕?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砇etorno 砃enhum 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros矱xpN1: GetDados 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Static Function AddAcols(oGetDad)
- Local i, nPos
- Local cTipo
- Local nPosl := len(aCols[1])
- Local cLinha := ''
- If oGetDad <> NIL
- If !LGERDIFAL //Apura玢o detalhada do DIFAL est?acionada
- If lProcDifal
- Do case
- Case aCols[n][1] == "002" .and. alltrim(aCols[n][2]) =="002.00" ; cLinha := aCols[n][1]
- Case aCols[n][1] == "003" .and. alltrim(aCols[n][2]) =="003.00" ; cLinha := aCols[n][1]
- Case aCols[n][1] == "006" .and. alltrim(aCols[n][2]) =="006.00" ; cLinha := aCols[n][1]
- Case aCols[n][1] == "007" .and. alltrim(aCols[n][2]) =="007.00" ; cLinha := aCols[n][1]
- Case aCols[n][1] == "009" .and. alltrim(aCols[n][2]) =="009.00" ; cLinha := aCols[n][1]
- Case aCols[n][1] == "012" .and. alltrim(aCols[n][2]) =="012.00" ; cLinha := aCols[n][1]
- //FECP
- Case aCols[n][1] == "014" .and. alltrim(aCols[n][2]) =="014.00" ; cLinha := aCols[n][1]
- Case aCols[n][1] == "015" .and. alltrim(aCols[n][2]) =="015.00" ; cLinha := aCols[n][1]
- Case aCols[n][1] == "018" .and. alltrim(aCols[n][2]) =="018.00" ; cLinha := aCols[n][1]
- Case aCols[n][1] == "019" .and. alltrim(aCols[n][2]) =="019.00" ; cLinha := aCols[n][1]
- Case aCols[n][1] == "021" .and. alltrim(aCols[n][2]) =="021.00" ; cLinha := aCols[n][1]
- Case aCols[n][1] == "024" .and. alltrim(aCols[n][2]) =="024.00" ; cLinha := aCols[n][1]
- EndCase
- IF !Empty(cLinha)
- nPos := n-1
- Aeval(aCols,{|x| if(x[1]==cLinha .and. x[nPosl]==.F.,nPos++,)})
- nPos++
- aCols := Asize(aCols,Len(aCols)+1)
- aCols := Ains(aCols,nPos)
- aCols[nPos] := Array(Len(aHeader)+1)
- For i := 1 To Len(aHeader)
- cTipo := aHeader[i][8]
- If cTipo $ "CM"
- aCols[nPos][i] := Space(aHeader[i][4])
- ElseIf cTipo == "N"
- aCols[nPos][i] := 0
- ElseIf cTipo == "L"
- aCols[nPos][i] := .F.
- ElseIf cTipo == "D"
- aCols[nPos][i] := Ctod("")
- EndIf
- Next
- aCols[nPos][1] := cLinha
- aCols[nPos][7] := '2'+'-MANUAL'
- aCols[nPos][Len(aHeader)+1] := .F.
- oGetDad:GOTO(nPos)
- Eval(oGetDad:obrowse:bDrawSelect)
- EndIF
- EndIf
- ElseIf aCols[n][1] == "002" .and. alltrim(aCols[n][2]) =="002.00"
- nPos := n-1
- Aeval(aCols,{|x| if(x[1]=="002" .and. x[nPosl]==.F.,nPos++,)})
- nPos++
- aCols := Asize(aCols,Len(aCols)+1)
- aCols := Ains(aCols,nPos)
- aCols[nPos] := Array(Len(aHeader)+1)
- For i := 1 To Len(aHeader)
- cTipo := aHeader[i][8]
- If cTipo $ "CM"
- aCols[nPos][i] := Space(aHeader[i][4])
- ElseIf cTipo == "N"
- aCols[nPos][i] := 0
- ElseIf cTipo == "L"
- aCols[nPos][i] := .F.
- ElseIf cTipo == "D"
- aCols[nPos][i] := Ctod("")
- EndIf
- Next
- aCols[nPos][1] := "002"
- If SuperGetMv("MV_USASPED",,.T.)
- aCols[nPos][8] := "M"
- aCols[nPos][Len(aHeader)+1] := .F.
- Else
- aCols[nPos][Len(aHeader)+1] := .F.
- EndIf
- oGetDad:GOTO(nPos)
- Eval(oGetDad:obrowse:bDrawSelect)
- elseIf aCols[n][1] == "003" .and. alltrim(aCols[n][2]) =="003.00"
- nPos := n-1
- Aeval(aCols,{|x| if(x[1]=="003" .and. x[nPosl]==.F.,nPos++,)})
- nPos++
- aCols := Asize(aCols,Len(aCols)+1)
- aCols := Ains(aCols,nPos)
- aCols[nPos] := Array(Len(aHeader)+1)
- For i := 1 To Len(aHeader)
- cTipo := aHeader[i][8]
- If cTipo $ "CM"
- aCols[nPos][i] := Space(aHeader[i][4])
- ElseIf cTipo == "N"
- aCols[nPos][i] := 0
- ElseIf cTipo == "L"
- aCols[nPos][i] := .F.
- ElseIf cTipo == "D"
- aCols[nPos][i] := Ctod("")
- EndIf
- Next
- aCols[nPos][1] := "003"
- aCols[nPos][Len(aHeader)+1] := .F.
- oGetDad:GOTO(nPos)
- Eval(oGetDad:obrowse:bDrawSelect)
- ElseIf aCols[n][1] == "006" .and. alltrim(aCols[n][2]) =="006.00"
- nPos := n-1
- Aeval(aCols,{|x| if(x[1]=="006" .and. x[nPosl]==.F.,nPos++,)})
- nPos++
- aCols := Asize(aCols,Len(aCols)+1)
- aCols := Ains(aCols,nPos)
- aCols[nPos] := Array(Len(aHeader)+1)
- For i := 1 To Len(aHeader)
- cTipo := aHeader[i][8]
- If cTipo $ "CM"
- aCols[nPos][i] := Space(aHeader[i][4])
- ElseIf cTipo == "N"
- aCols[nPos][i] := 0
- ElseIf cTipo == "L"
- aCols[nPos][i] := .F.
- ElseIf cTipo == "D"
- aCols[nPos][i] := Ctod("")
- EndIf
- Next
- aCols[nPos][1] := "006"
- //Conforme FNC 11560/2012
- //Tratado somente para Outros Creditos para RegE111 e RegE113 do SpedFiscal
- If SuperGetMv("MV_USASPED",,.T.)
- aCols[nPos][8] := "M"
- aCols[nPos][Len(aHeader)+1] := .F.
- Else
- aCols[nPos][7] := .F.
- EndIf
- oGetDad:GOTO(nPos)
- Eval(oGetDad:obrowse:bDrawSelect)
- ElseIf aCols[n][1] == "007" .and. alltrim(aCols[n][2]) =="007.00"
- nPos := n-1
- Aeval(aCols,{|x| if(x[1]=="007" .and. x[nPosl]==.F.,nPos++,)})
- nPos++
- aCols := Asize(aCols,Len(aCols)+1)
- aCols := Ains(aCols,nPos)
- aCols[nPos] := Array(Len(aHeader)+1)
- For i := 1 To Len(aHeader)
- cTipo := aHeader[i][8]
- If cTipo $ "CM"
- aCols[nPos][i] := Space(aHeader[i][4])
- ElseIf cTipo == "N"
- aCols[nPos][i] := 0
- ElseIf cTipo == "L"
- aCols[nPos][i] := .F.
- ElseIf cTipo == "D"
- aCols[nPos][i] := Ctod("")
- EndIf
- Next
- aCols[nPos][1] := "007"
- //Conforme FNC 11560/2012
- //Tratado somente para Outros Creditos para RegE111 e RegE113 do SpedFiscal
- If SuperGetMv("MV_USASPED",,.T.)
- aCols[nPos][8] := "M"
- aCols[nPos][Len(aHeader)+1] := .F.
- Else
- aCols[nPos][Len(aHeader)+1] := .F.
- EndIf
- oGetDad:GOTO(nPos)
- Eval(oGetDad:obrowse:bDrawSelect)
- ElseIf aCols[n][1] == "008" .and. alltrim(aCols[n][2]) =="008.00"
- nPos := n-1
- Aeval(aCols,{|x| if(x[1]=="008" .and. x[nPosl]==.F.,nPos++,)})
- nPos++
- aCols := Asize(aCols,Len(aCols)+1)
- aCols := Ains(aCols,nPos)
- aCols[nPos] := Array(Len(aHeader)+1)
- For i := 1 To Len(aHeader)
- cTipo := aHeader[i][8]
- If cTipo $ "CM"
- aCols[nPos][i] := Space(aHeader[i][4])
- ElseIf cTipo == "N"
- aCols[nPos][i] := 0
- ElseIf cTipo == "L"
- aCols[nPos][i] := .F.
- ElseIf cTipo == "D"
- aCols[nPos][i] := Ctod("")
- EndIf
- Next
- aCols[nPos][1] := "008"
- If SuperGetMv("MV_USASPED",,.T.)
- aCols[nPos][8] := "M"
- aCols[nPos][Len(aHeader)+1] := .F.
- Else
- aCols[nPos][Len(aHeader)+1] := .F.
- EndIf
- oGetDad:GOTO(nPos)
- Eval(oGetDad:obrowse:bDrawSelect)
- elseIf aCols[n][1] == "012" .and. alltrim(aCols[n][2]) =="012.00"
- nPos := n-1
- Aeval(aCols,{|x| if(x[1]=="012" .and. x[nPosl]==.F.,nPos++,)})
- nPos++
- aCols := Asize(aCols,Len(aCols)+1)
- aCols := Ains(aCols,nPos)
- aCols[nPos] := Array(Len(aHeader)+1)
- For i := 1 To Len(aHeader)
- cTipo := aHeader[i][8]
- If cTipo $ "CM"
- aCols[nPos][i] := Space(aHeader[i][4])
- ElseIf cTipo == "N"
- aCols[nPos][i] := 0
- ElseIf cTipo == "L"
- aCols[nPos][i] := .F.
- ElseIf cTipo == "D"
- aCols[nPos][i] := Ctod("")
- EndIf
- Next
- aCols[nPos][1] := "012"
- If SuperGetMv("MV_USASPED",,.T.)
- aCols[nPos][8] := "M"
- aCols[nPos][Len(aHeader)+1] := .F.
- Else
- aCols[nPos][Len(aHeader)+1] := .F.
- EndIf
- oGetDad:GOTO(nPos)
- Eval(oGetDad:obrowse:bDrawSelect)
- ElseIf aCols[n][1] == "014" .and. alltrim(aCols[n][2]) =="014.00"
- nPos := n-1
- Aeval(aCols,{|x| if(x[1]=="014" .and. x[nPosl]==.F.,nPos++,)})
- nPos++
- aCols := Asize(aCols,Len(aCols)+1)
- aCols := Ains(aCols,nPos)
- aCols[nPos] := Array(Len(aHeader)+1)
- For i := 1 To Len(aHeader)
- cTipo := aHeader[i][8]
- If cTipo $ "CM"
- aCols[nPos][i] := Space(aHeader[i][4])
- ElseIf cTipo == "N"
- aCols[nPos][i] := 0
- ElseIf cTipo == "L"
- aCols[nPos][i] := .F.
- ElseIf cTipo == "D"
- aCols[nPos][i] := Ctod("")
- EndIf
- Next
- aCols[nPos][1] := "014"
- If SuperGetMv("MV_USASPED",,.T.)
- aCols[nPos][8] := "M"
- aCols[nPos][Len(aHeader)+1] := .F.
- Else
- aCols[nPos][Len(aHeader)+1] := .F.
- EndIf
- oGetDad:GOTO(nPos)
- Eval(oGetDad:obrowse:bDrawSelect)
- elseIf aCols[n][1] == "900" .and. alltrim(aCols[n][2]) =="900.00"
- nPos := n-1
- Aeval(aCols,{|x| if(x[1]=="900" .and. x[nPosl]==.F.,nPos++,)})
- nPos++
- aCols := Asize(aCols,Len(aCols)+1)
- aCols := Ains(aCols,nPos)
- aCols[nPos] := Array(Len(aHeader)+1)
- For i := 1 To Len(aHeader)
- cTipo := aHeader[i][8]
- If cTipo $ "CM"
- aCols[nPos][i] := Space(aHeader[i][4])
- ElseIf cTipo == "N"
- aCols[nPos][i] := 0
- ElseIf cTipo == "L"
- aCols[nPos][i] := .F.
- ElseIf cTipo == "D"
- aCols[nPos][i] := Ctod("")
- EndIf
- Next
- aCols[nPos][1] := "900"
- aCols[nPos][Len(aHeader)+1] := .F.
- oGetDad:GOTO(nPos)
- Eval(oGetDad:obrowse:bDrawSelect)
- elseIf aCols[n][1] == "901" .and. alltrim(aCols[n][2]) =="901.00"
- nPos := n-1
- Aeval(aCols,{|x| if(x[1]=="901" .and. x[nPosl]==.F.,nPos++,)})
- nPos++
- aCols := Asize(aCols,Len(aCols)+1)
- aCols := Ains(aCols,nPos)
- aCols[nPos] := Array(Len(aHeader)+1)
- For i := 1 To Len(aHeader)
- cTipo := aHeader[i][8]
- If cTipo $ "CM"
- aCols[nPos][i] := Space(aHeader[i][4])
- ElseIf cTipo == "N"
- aCols[nPos][i] := 0
- ElseIf cTipo == "L"
- aCols[nPos][i] := .F.
- ElseIf cTipo == "D"
- aCols[nPos][i] := Ctod("")
- EndIf
- Next
- aCols[nPos][1] := "901"
- aCols[nPos][Len(aHeader)+1] := .F.
- oGetDad:GOTO(nPos)
- Eval(oGetDad:obrowse:bDrawSelect)
- EndIf
- Ft953Refre({oGetDad})
- EndIf
- Return
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北篎uncao 砤953CPO5ALT矨utor 矨ndreia dos Santos ?Data ?3/08/2001潮?
- 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北篋esc. 矨tualiza os campos que podem ser alterados a cada troca de 潮?
- 北? 砯older( para a apuracao das operacoes proprias) 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砇etorno 砃enhum 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros矱xpN1: GetDados 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- function a953CPO5ALT(oGetDad)
- If empty(aCols[oGetDad:nAt][1]).or. aCols[oGetDad:nAt][1]$"004#008#010#011#013#014"
- oGetDad:aAlter := {}
- oGetDad:oMother:aAlter := {}
- ElseIf aCols[oGetDad:nAt][1]$"002#003#006#007#012#900#901"
- if alltrim(aCols[oGetDad:nAt][2])=="002.00" .Or. alltrim(aCols[oGetDad:nAt][2])=="003.00" .Or. alltrim(aCols[oGetDad:nAt][2])=="006.00" .Or. alltrim(aCols[oGetDad:nAt][2])=="007.00" .Or. alltrim(aCols[oGetDad:nAt][2])=="012.00" .Or. alltrim(aCols[oGetDad:nAt][2])=="900.00" .Or. alltrim(aCols[oGetDad:nAt][2])=="901.00"
- oGetDad:aAlter := {}
- oGetDad:oMother:aAlter := {}
- else
- oGetDad:aAlter :={"cCodigo","cDescr","nValor","cGNRE","cClasse","cCodLan"}
- oGetDad:oMother:aAlter :={"cCodigo","cDescr","nValor","cGNRE","cClasse","cCodLan"}
- EndIf
- Else
- oGetDad:aAlter := {"nValor"}
- oGetDad:oMother:aAlter := {"nValor"}
- EndIf
- return .T.
- Function a953CPODIF(oGetDad)
- If !LGERDIFAL //Apura玢o detalhada do difal acionada
- oGetDad:aAlter :={"cCodigo","cDescr","nValor","cCodLan","cGNRE"}
- oGetDad:oMother:aAlter :={"cCodigo","cDescr","nValor","cCodLan","cGNRE"}
- EndIF
- Return .T.
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北篎uncao 砤953CPO6ALT矨utor 矨ndreia dos Santos ?Data ?3/08/2001潮?
- 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北篋esc. 矨tualiza os campos que podem ser alterados a cada troca de 潮?
- 北? 砯older( para a apuracao de substituicao tributaria) 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砇etorno 砃enhum 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros矱xpN1: GetDados 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- function a953CPO6ALT(oGetDad)
- If empty(aCols[oGetDad:nAt][1]).or. aCols[oGetDad:nAt][1]$"005#010#012#013#015#016"
- oGetDad:aAlter := {}
- oGetDad:oMother:aAlter := {}
- ElseIf aCols[oGetDad:nAt][1]$"002#003#007#008#014"
- if alltrim(aCols[oGetDad:nAt][2])=="002.00" .Or. alltrim(aCols[oGetDad:nAt][2])=="003.00" .Or. alltrim(aCols[oGetDad:nAt][2])=="007.00" .Or. alltrim(aCols[oGetDad:nAt][2])=="008.00" .Or. alltrim(aCols[oGetDad:nAt][2])=="014.00"
- oGetDad:aAlter := {}
- oGetDad:oMother:aAlter := {}
- else
- oGetDad:aAlter :={"cCodigo","cDescr","nValor","cGNRE","cClasse","cCodLan"}
- oGetDad:oMother:aAlter :={"cCodigo","cDescr","nValor","cGNRE","cClasse","cCodLan"}
- EndIf
- Else
- oGetDad:aAlter := {"nValor"}
- oGetDad:oMother:aAlter := {"nValor"}
- EndIf
- return .T.
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北篎uncao 砤953CPO8ALT矨utor 矻uciana Pires ?Data ?21/08/08 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北篋esc. 矨tualiza os campos que podem ser alterados a cada troca de 潮?
- 北? 砯older( para a apuracao do fomentar) 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砇etorno 砃enhum 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros矱xpN1: GetDados 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Function a953CPO8ALT(oGetDad)
- If Empty(aCols[oGetDad:nAt][1])
- oGetDad:aAlter := {}
- oGetDad:oMother:aAlter := {}
- ElseIf aCols[oGetDad:nAt][1]$"001#002#004#005#006#007#011#012#013#015#018#019#022#024#027#032#033#034#035#037#040#045#046#047#048#049#050#051#052#053#054#055#056#057#058#059#060#062#063#064#065#066#067#068#069#070#073#074#076#078"
- oGetDad:aAlter :={"cCodigo","cDescr","nValor"}
- oGetDad:oMother:aAlter :={"cCodigo","cDescr","nValor"}
- Else
- oGetDad:aAlter := {"nValor"}
- oGetDad:oMother:aAlter := {"nValor"}
- EndIf
- Return .T.
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北篎uncao 砤953TotLin 矨utor 矨ndreia dos Santos ?Data ?15/08/01 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北篋esc. 砊otaliza as linhas que podem ser expandidas 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砇etorno 砃enhum 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros矱xpN1: Posicao da linha totalizadora 潮?
- 北? 矱xpN2: Numero da linha que sera totalizada 潮?
- 北? 矱xpN3: primeira vez que apura o saldo na montagem do aCols 潮?
- 北? 矱xpN4: aCols 潮?
- 北? 矱xpN5: indica se a funcao foi chamada a partir da delecao da潮?
- 北? ? linha 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Function a953TotLin(nPos,cLin,lFirst,aColun)
- if !lFirst
- aCols[nPos,4] := 0
- //Aeval(aCols,{|x,y| if(x[1]==cLin .and. x[len(aCols[nPos])]==.F. .and. y<>n ,aCols[nPos,4]+=x[4],)})
- Aeval(aCols,{|x,y| if(x[1]==cLin .and. x[len(aCols[y])]==.F. .and. y<>n ,aCols[nPos,4]+=x[4],)})
- if !empty(ReadVar()) .And. ReadVar() == "M->NVALOR"
- //aCols[nPos,4] += if(aCols[n,1]==aCols[nPos,1].and. aCols[n,len(aCols[nPos])]==.F.,M->NVALOR,0)
- aCols[nPos,4] += if(aCols[n,1]==aCols[nPos,1].and. aCols[n,len(aCols[n])]==.F.,M->NVALOR,0)
- EndIF
- Else
- aColun[nPos,4] := 0
- Aeval(aColun,{|x| if(x[1]==cLin .and. x[len(aColun[nPos])]==.F.,aColun[nPos,4]+=x[4],)})
- if !empty(ReadVar()) .And. ReadVar() == "M->NVALOR"
- aColun[nPos,4] += if(aColun[n,1]==aColun[nPos,1].and. aColun[n,len(aColun[nPos])]==.F.,M->NVALOR,0)
- EndIF
- Endif
- Return
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北矲uncao 砤953Del5Col矨utor 矨ndreia dos Santos ?Data ?16/08/01 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北矰esc. 砎erifica se a linha pode ser deletada( aCols 5) 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砇etorno 砃enhum 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros? 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Function a953Del5Col(lDebEsp)
- Local lRet := .F.
- Local lST := .F.
- Local nAno := mv_par02
- Local cDif2017 := Iif(mv_par02 >= 2017,"/014/015/018/019/021/024","")
- Default lDebEsp := .F.
- IF !lGerDifal
- If aCols[n,1]$"002/003/006/007/009/012"+cDif2017 .AND. Substr(alltrim(aCols[n,2]),4,3)<> ".00"
- lRet := .T.
- aCols[n,3] :=space(60)
- aCols[n,4] :=0
- aCols[n,5] :=space(8)
- aCols[n,6] :=space(14)
- EndIF
- ElseIf aCols[n,1] $"002#003#006#007#012#900#901" .and. !(alltrim(aCols[n,2])=="002.00" .Or. alltrim(aCols[n,2])=="003.00" .Or. alltrim(aCols[n,2])=="006.00" .Or. alltrim(aCols[n,2])=="007.00" .Or. alltrim(aCols[n,2])=="012.00" .Or. alltrim(aCols[n,2])=="900.00" .Or. alltrim(aCols[n,2])=="901.00")
- lRet := .T.
- aCols[n,4] :=0
- aCols[n,5] :=Space (14)
- aCols[n,6] :=Space (06)
- EndIf
- If lRet
- If !lGerDifal
- a953Saldo(.F.,.F.,.F.,.F.,.F.,.F.,.T.)
- ElseIf !lDebEsp
- a953Saldo(.F.,lST,.F.,.F.)
- Else
- a953Saldo(.F.,.F.,.F.,.F.,.T.)
- EndIf
- EndIf
- Return( lRet )
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北矲uncao 砤953Del6Col矨utor 矨ndreia dos Santos ?Data ? 16/08/01潮?
- 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北矰esc. 砎erifica se a linha pode ser deletada ( aCols 6 ) 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砇etorno 砃enhum 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros? 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Function a953Del6Col()
- Local lRet := .F.
- Local lST := .T.
- Local nPosCons := aScan(aExclApur, {|aX| AllTrim(aCols[n,2])==aX[2]})
- Local nPosl := len(aCols[1])
- If aCols[n,1] $"002#003#007#008#014" .and. !(alltrim(aCols[n,2])=="002.00" .Or. alltrim(aCols[n,2])=="003.00" .Or. alltrim(aCols[n,2])=="007.00" .Or. alltrim(aCols[n,2])=="008.00" .Or. alltrim(aCols[n,2])=="014.00")
- lRet := .T.
- aCols[n,4] :=0
- If nPosCons<>0
- aExclApur[nPosCons][4] := Iif(aExclApur[nPosCons][4] .And. !aCols[n,nPosl], .F., .T.)
- EndIf
- EndIf
- If lRet
- a953Saldo(.F.,lST,.F.,.F.)
- EndIf
- Return( lRet )
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北矲uncao 矨953Lin5Ok 矨utor 矨ndreia dos Santos ?Data ?17/08/01 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北矰esc. 砎erifica se os campos obrigatorios da Apuracao de ICMS pro- 潮?
- 北? 硃rio estao preenchidos 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砇etorno 砃enhum 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros? 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Function A953Lin5Ok()
- Local lRet := .T.
- //Local nPosl := len(aCols[1])
- Local nX := 0
- Local lUsaSped := SuperGetMv("MV_USASPED",,.T.) .And. AliasIndic("CDH") .And. AliasIndic("CDA")
- Local cCodLanc := ""
- Local cSubItem := ""
- local lTdOk := SuperGetMv("MV_AICVALT",,.F.) // informa se ir?validar apenas ao confirmar
- If aCols[n,1] $"002#003#006#007#012#900#901" .and. ;
- !(alltrim(aCols[n,2])=="002.00" .Or. alltrim(aCols[n,2])=="003.00" .Or. alltrim(aCols[n,2])=="006.00" .Or. alltrim(aCols[n,2])=="007.00" .Or. alltrim(aCols[n,2])=="012.00" .Or. alltrim(aCols[n,2])=="900.00" .Or. alltrim(aCols[n,2])=="901.00") .and. aCols[n, Len(aCols[n])] == .F.
- If aCols[n,1]$"900#901" .And. Empty(aCols[n,2])
- MsgAlert(STR0250) //"O preenchimento do Codigo de Subitem ?obrigatorio"
- lRet := .F.
- Endif
- If aCols[n,1]$"900#901" .And. "FECP"$aCols[n,3] .And. lApagFecpST
- MsgAlert(STR0251) //"Nao ?possivel a inclusao de debito um especial para FECP quando h?saldo credor"
- lRet := .F.
- Endif
- If empty(aCols[n,3])
- MsgAlert(STR0230) //"O preenchimento da Descri玢o ?Obrigat髍ia"
- lRet := .F.
- EndIf
- If aCols[n,4]==0
- MsgAlert(STR0231) //"O preenchimento do Valor ?obrigat髍io"
- lRet := .F.
- EndIf
- If lUsaSped
- If empty(aCols[n,7])
- MsgAlert(STR0229) //"O preenchimento do C骴igo do Lan鏰mento ?obrigat髍io"
- lRet := .F.
- ElseIf !lTdOk
- cCodLanc := aCols[n,7]
- cSubItem := aCols[n,2]
- aCols[n,7]:=""
- aCols[n,2]:=""
- For nX := 1 to len(aCols)
- //Verifica se tem lancamento duplicado
- If !aCols[nX][Len(aCols[nX])] .And. aCols[nX,7] == cCodLanc //Len(aCols[nX] sempre .F. ou .T.
- //Se existir duplicidade de lancamento o SUBITEM deve estar informado
- If Empty(cSubItem) .Or. Empty(aCols[nX,2]) .Or. Alltrim(cSubItem) == Alltrim(aCols[nX,2])
- MsgAlert("Para utilizar o mesmo c骴igo de lan鏰mento ?necess醨io utilizar c骴igos de Subitem diferentes")
- lRet := .F.
- EndIf
- EndIf
- Next
- aCols[n,7]:=cCodLanc
- aCols[n,2]:=cSubItem
- EndIf
- EndIf
- Endif
- Return( lRet )
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北矲uncao 矨953Lin6Ok 矨utor 矨ndreia dos Santos ?Data ?17/08/01 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北矰esc. 砎erifica se os campos obrigatorios da Apuracao de ICMS Subs-潮?
- 北? 硉ituicao Tributaria estao preenchidos 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砇etorno 砃enhum 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros? 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Function A953Lin6Ok()
- Local lRet := .T.
- //Local nPosl := len(aCols[1])
- Local nX := 0
- Local lUsaSped := SuperGetMv("MV_USASPED",,.T.) .And. AliasIndic("CDH") .And. AliasIndic("CDA")
- Local cCodLanc := ""
- Local cSubItem := ""
- Local nAno := mv_par02
- Local cDif2017 := Iif(mv_par02 >= 2017,"/014/015/018/019/021/024","")
- IF !lGerDifal
- //Aqui significa que apura玢o detalhada do difal est?acionada
- If aCols[n,1]$"002/003/006/007/009/012"+cDif2017 .AND. Substr(alltrim(aCols[n,2]),4,3)<> ".00" .AND. aCols[n,Len(aCols[n])] == .F.
- If Empty(aCols[n,2])
- MsgAlert(STR0250) //"O preenchimento do Codigo de Subitem ?obrigatorio"
- lRet := .F.
- ElseIf Empty(aCols[n,3])
- MsgAlert(STR0230) //"O preenchimento da Descri玢o ?Obrigat髍ia"
- lRet := .F.
- ElseIf aCols[n,4]==0
- MsgAlert(STR0231) //"O preenchimento do Valor ?obrigat髍io"
- lRet := .F.
- ElseIF lUsaSped .AND. empty(aCols[n,5])
- MsgAlert(STR0229) //"O preenchimento do C骴igo do Lan鏰mento ?obrigat髍io"
- lRet := .F.
- EndIF
- EndIf
- ElseIf aCols[n,1] $"002#003#007#008#014#900#901" .and. !(alltrim(aCols[n,2])=="002.00" .Or. alltrim(aCols[n,2])=="003.00" .Or. alltrim(aCols[n,2])=="007.00" .Or. alltrim(aCols[n,2])=="008.00" .Or. alltrim(aCols[n,2])=="014.00" .Or. alltrim(aCols[n,2])=="900.00" .Or. alltrim(aCols[n,2])=="901.00") .and.;
- aCols[n,Len(aCols[n])] == .F.
- if empty(aCols[n,3]) .or. aCols[n,4]==0 .Or. (lUsaSped .And. empty(aCols[n,7]))
- lRet := .F.
- EndIf
- If aCols[n,1]$"900#901" .And. Empty(aCols[n,2])
- MsgAlert(STR0250) //"O preenchimento do Codigo de Subitem ?obrigatorio"
- lRet := .F.
- Endif
- If aCols[n,1]$"900#901" .And. "FECP"$aCols[n,3] .And. lApagFecpST
- MsgAlert(STR0251) //"Nao ?possivel a inclusao de um debito especial para FECP quando h?saldo credor"
- lRet := .F.
- Endif
- If empty(aCols[n,3])
- MsgAlert(STR0230) //"O preenchimento da Descri玢o ?Obrigat髍ia"
- lRet := .F.
- EndIf
- If aCols[n,4]==0
- MsgAlert(STR0231) //"O preenchimento do Valor ?obrigat髍io"
- lRet := .F.
- EndIf
- If lUsaSped
- If empty(aCols[n,7])
- MsgAlert(STR0229) //"O preenchimento do C骴igo do Lan鏰mento ?obrigat髍io"
- lRet := .F.
- Else
- cCodLanc := aCols[n,7]
- cSubItem := aCols[n,2]
- aCols[n,7]:=""
- aCols[n,2]:=""
- For nX := 1 to len(aCols)
- //Verifica se tem lancamento duplicado
- If !aCols[nX][Len(aCols[nX])] .And. aCols[nX,7] == cCodLanc
- //Se existir duplicidade de lancamento o SUBITEM deve estar informado
- If Empty(cSubItem) .Or. Empty(aCols[nX,2]) .Or. Alltrim(cSubItem) == Alltrim(aCols[nX,2])
- MsgAlert("Para utilizar o mesmo c骴igo de lan鏰mento ?necess醨io utilizar c骴igos de Subitem diferentes")
- lRet := .F.
- EndIf
- EndIf
- Next
- aCols[n,7]:=cCodLanc
- aCols[n,2]:=cSubItem
- EndIf
- EndIf
- Endif
- Return( lRet )
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北矲uncao 矨953Codigo 矨utor 矨ndreia dos Santos ?Data ?06/09/01 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北矰esc. ?Valida codigo digitado. 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砇etorno 砃enhum 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros? 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Function a953Codigo()
- Local lRet := .T.
- Local nPosl := len(aCols[1])
- Local nI := 0
- Local lUsaSped := SuperGetMv("MV_USASPED",,.T.) .And. AliasIndic("CDH") .And. AliasIndic("CDA")
- If alltrim(M->CCODIGO)=="002.00" .Or. alltrim(M->CCODIGO)=="003.00" .Or. alltrim(M->CCODIGO)=="006.00" .Or. alltrim(M->CCODIGO)=="007.00" .Or. alltrim(M->CCODIGO)=="008.00" .Or.;
- alltrim(M->CCODIGO)=="012.00" .Or. alltrim(M->CCODIGO)=="014.00" .Or. alltrim(M->CCODIGO)=="900.00" .Or. alltrim(M->CCODIGO)=="901.00".and. aCols[n,nPosl] == .F.
- lRet := .F.
- Endif
- If lUsaSped
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //砎ERIFICACAO SE O CODIGO DIGITADO NA COLUNA JA FOI DIGITADO ANTERIORMENTE EM OUTRA LINHA ?
- //矱SSA VALIDACAO SO E NECESSARIA PARA A APURACAO NO MODELO DO SPESFISCAL ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? For nI := 1 To Len (aCols)
- If !aCols[nI,Len(aCols[nI])] .And. (AllTrim (M->CCODIGO)$aCols[nI,2])
- HELP (" ", 1, "JAGRAVADO")
- lRet := .F.
- Exit
- EndIf
- Next (nI)
- EndIf
- Return( lRet )
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北矲uncao 砤953GNRE 矨utor 矴ustavo G. Rueda ?Data ?1/04/2006潮?
- 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北矰esc. 砎alidacao do codigo da GNRE, o estado eh o MV_ESTADO. 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砇etorno 砃enhum 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros? 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Function a953GNRE(cCodTP) //0-ICMS PROPRIO| 1-ICMS ST
- Local lRet := .T.
- Local nI := 1
- Local nX := 1
- Local nY := 0
- Local nPos := 0
- Local nPosl := len(aCols[1])
- Local lAchou := .F.
- Local cBloco := ""
- Local nPosRecST := 0
- Local aGnre2 := {}
- //Ajuste para novos codigos de difal exclusivos para FECP
- IF mv_par02 >= 2017 .And. cCodTP == '2' .And. aCols[n,1] $ "014|015|018|019|021|024"
- cCodTP := '3'
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //砆uando estiver vindo vazio, significa que estah vindo de debitos especiais e lah pode ser lancado tanto ICMS quanto ICMS ST.?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If Empty(cCodTP)
- If aCols[n,1]=="900"
- cCodTP := "0"
- ElseIf aCols[n,1]=="901"
- cCodTP := "1"
- EndIf
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //砎ERIFICACAO SE A GNRE JAH EXISTE GRAVADA NA TABELA SF6 PARA O MESMO ESTADO?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If !aCols[n,Len(aCols[n])]
- If !aCols[nI,Len(aCols[nI])] .And. !Empty (cGnre)
- SF6->(DbSetOrder (1))
- If cCodTP =='0' .And. SF6->(DbSeek (xFilial ("SF6")+SuperGetMV("MV_ESTADO")+cGnre))
- aCols[n,4] := SF6->F6_VALOR
- aCols[n,6] := SF6->F6_CLAVENC
- cBloco := Alltrim(aCols[n,1])
- cValor := 0
- nPos := 0
- For nX := 1 to Len(aCols)
- If Alltrim(aCols[nX][1]) == cBloco
- If Alltrim(aCols[nX,2]) == Alltrim(cBloco+".00")
- nPos := nX //Pega a posicao da Linha Pai
- Else
- cValor += aCols[nX,4] //acumula todos os Filhos
- EndIf
- EndIf
- Next
- If nPos > 0 .And. !"900"$cBloco
- aCols[nPos,4] := cValor //atualiza valor acumulado na linha Pai (para 002/003/006/007/012)
- n001 := Ascan(aCols,{|x|x[1]=="001"})
- n002 := Ascan(aCols,{|x|x[1]=="002"})
- n003 := Ascan(aCols,{|x|x[1]=="003"})
- n004 := Ascan(aCols,{|x|x[1]=="004"})
- n005 := Ascan(aCols,{|x|x[1]=="005"})
- n006 := Ascan(aCols,{|x|x[1]=="006"})
- n007 := Ascan(aCols,{|x|x[1]=="007"})
- n008 := Ascan(aCols,{|x|x[1]=="008"})
- n009 := Ascan(aCols,{|x|x[1]=="009"})
- n010 := Ascan(aCols,{|x|x[1]=="010"})
- n011 := Ascan(aCols,{|x|x[1]=="011"})
- n012 := Ascan(aCols,{|x|x[1]=="012"})
- n013 := Ascan(aCols,{|x|x[1]=="013"})
- n014 := Ascan(aCols,{|x|x[1]=="014"})
- If cBloco $ ("002/003")
- //ATUALIZA SAIDAS
- //atualiza valor do sub-total
- //v004 := v001 + v002 + v003
- aCols[n004][4] := aCols[n001][4] + aCols[n002][4] + aCols[n003][4]
- Else
- //ATUALIZA ENTRADAS
- //atualiza valor do sub-total
- //v008 := v005 + v006 + v007
- aCols[n008][4] := aCols[n005][4] + aCols[n006][4] + aCols[n007][4]
- //atualiza valor total
- //v010 := v008 - v009
- aCols[n010][4] := aCols[n008][4] - aCols[n009][4]
- EndIf
- //atualiza valor do saldo devedor/credor
- //v011 := v004 - v010
- If (aCols[n004][4] - aCols[n010][4]) > 0
- aCols[n011][4] := aCols[n004][4] - aCols[n010][4]
- aCols[n014][4] := 0
- Else
- aCols[n011][4] := 0
- aCols[n014][4] := aCols[n010][4] - aCols[n004][4]
- EndIf
- //corrige valor do saldo credor
- //v014 := v014 + v012
- If aCols[n014][4] + aCols[n012][4] - aCols[n011][4] > 0
- aCols[n014][4] := aCols[n014][4] + aCols[n012][4] - aCols[n011][4]
- EndIf
- //atualiza valor do imposto a recolher
- //v013 := v011 - v012
- If aCols[n011][4] - aCols[n012][4] > 0
- aCols[n013][4] := aCols[n011][4] - aCols[n012][4]
- Else
- aCols[n013][4] := 0
- EndIf
- nPosRecST := Ascan(aCols6,{|x|x[1]=="015"}) //imposto a recolher Substituicao Tributaria
- nVlrTitulo := aCols[n013,4]+aCols6[nPosRecST,4]
- EndIf
- //ACRESCENTA OU ATUALIZA ARRAY QUANDO GNRE FOI SELECIONADA
- lAchou := .F.
- For nX := 1 To Len (aGnre)
- If SF6->F6_NUMERO == aGnre[nX,1] .And. SF6->F6_EST == aGnre[nX,5] .And. aGnre[nX,6] == "IC"
- aGnre[nX][1] := SF6->F6_NUMERO
- aGnre[nX][2] := SF6->F6_DTVENC
- aGnre[nX][3] := SF6->F6_VALOR
- aGnre[nX][4] := SF6->F6_CLAVENC
- aGnre[nX][5] := SF6->F6_EST
- lAchou := .T.
- Exit
- EndIf
- Next
- If !lAchou
- AADD(aGnre,{SF6->F6_NUMERO,SF6->F6_DTVENC,SF6->F6_VALOR,SF6->F6_CLAVENC,SF6->F6_EST,"IC","RECNOTAF"}) //RECNOTAF - Recolhido antecipadamente via Nota Fiscal
- EndIf
- lRet := .T.
- ElseIf cCodTP =='1' .And. SF6->(DbSeek (xFilial ("SF6")+SuperGetMV("MV_ESTADO")+cGnre))
- aCols[n,4] := SF6->F6_VALOR
- aCols[n,6] := SF6->F6_CLAVENC
- cBloco := Alltrim(aCols[n,1])
- cValor := 0
- nPos := 0
- For nX := 1 to Len(aCols)
- If Alltrim(aCols[nX][1]) == cBloco
- If Alltrim(aCols[nX,2]) == Alltrim(cBloco+".00")
- nPos := nX //Pega a posicao da Linha Pai
- Else
- cValor += aCols[nX,4] //acumula todos os Filhos
- EndIf
- EndIf
- Next
- If nPos > 0 .And. !"901"$cBloco
- aCols[nPos,4] := cValor //atualiza valor acumulado na linha Pai (para 002/003/006/007/012)
- n001 := Ascan(aCols,{|x|x[1]=="001"})
- n002 := Ascan(aCols,{|x|x[1]=="002"})
- n003 := Ascan(aCols,{|x|x[1]=="003"})
- n004 := Ascan(aCols,{|x|x[1]=="005"})
- n005 := Ascan(aCols,{|x|x[1]=="006"})
- n006 := Ascan(aCols,{|x|x[1]=="007"})
- n007 := Ascan(aCols,{|x|x[1]=="008"})
- n008 := Ascan(aCols,{|x|x[1]=="010"})
- n009 := Ascan(aCols,{|x|x[1]=="011"})
- n010 := Ascan(aCols,{|x|x[1]=="012"})
- n011 := Ascan(aCols,{|x|x[1]=="013"})
- n012 := Ascan(aCols,{|x|x[1]=="014"})
- n013 := Ascan(aCols,{|x|x[1]=="015"})
- n014 := Ascan(aCols,{|x|x[1]=="016"})
- If cBloco $ ("002/003")
- //ATUALIZA SAIDAS
- //atualiza valor do sub-total
- //v004 := v001 + v002 + v003
- aCols[n004][4] := aCols[n001][4] + aCols[n002][4] + aCols[n003][4]
- Else
- //ATUALIZA ENTRADAS
- //atualiza valor do sub-total
- //v008 := v005 + v006 + v007
- aCols[n008][4] := aCols[n005][4] + aCols[n006][4] + aCols[n007][4]
- //atualiza valor total
- //v010 := v008 - v009
- aCols[n010][4] := aCols[n008][4] - aCols[n009][4]
- EndIf
- //atualiza valor do saldo devedor/credor
- //v011 := v004 - v010
- If (aCols[n004][4] - aCols[n010][4]) > 0
- aCols[n011][4] := aCols[n004][4] - aCols[n010][4]
- aCols[n014][4] := 0
- Else
- aCols[n011][4] := 0
- aCols[n014][4] := aCols[n010][4] - aCols[n004][4]
- EndIf
- //corrige valor do saldo credor
- //v014 := v014 + v012
- If aCols[n014][4] + aCols[n012][4] - aCols[n011][4] > 0
- aCols[n014][4] := aCols[n014][4] + aCols[n012][4] - aCols[n011][4]
- EndIf
- //atualiza valor do imposto a recolher
- //v013 := v011 - v012
- If aCols[n011][4] - aCols[n012][4] > 0
- aCols[n013][4] := aCols[n011][4] - aCols[n012][4]
- Else
- aCols[n013][4] := 0
- EndIf
- nPosRecST := Ascan(aCols6,{|x|x[1]=="015"}) //imposto a recolher Substituicao Tributaria
- nVlrTitulo := aCols[n013,4]+aCols6[nPosRecST,4]
- EndIf
- //ACRESCENTA OU ATUALIZA ARRAY QUANDO GNRE FOI SELECIONADA
- lAchou := .F.
- For nX := 1 To Len (aGnre)
- If SF6->F6_NUMERO == aGnre[nX,1] .And. SF6->F6_EST == aGnre[nX,5] .And. aGnre[nX,6] == "IC"
- aGnre[nX][1] := SF6->F6_NUMERO
- aGnre[nX][2] := SF6->F6_DTVENC
- aGnre[nX][3] := SF6->F6_VALOR
- aGnre[nX][4] := SF6->F6_CLAVENC
- aGnre[nX][5] := SF6->F6_EST
- lAchou := .T.
- Exit
- EndIf
- Next
- If !lAchou
- AADD(aGnre,{SF6->F6_NUMERO,SF6->F6_DTVENC,SF6->F6_VALOR,SF6->F6_CLAVENC,SF6->F6_EST,"IC","RECNOTAF"}) //RECNOTAF - Recolhido antecipadamente via Nota Fiscal
- EndIf
- lRet := .T.
- ElseIf cCodTP =='2'
- IF SF6->(DbSeek (xFilial ("SF6")+SubStr(aCols[2][3],At("(",aCols[2][3]) + 1,2)+cGnre))
- aCols[n,4] := SF6->F6_VALOR
- cBloco := Alltrim(aCols[n,1])
- cValor := 0
- nPos := 0
- For nX := 1 to Len(aCols)
- If Alltrim(aCols[nX][1]) == cBloco
- If Alltrim(aCols[nX,2]) == Alltrim(cBloco+".00")
- nPos := nX //Pega a posicao da Linha Pai
- Else
- cValor += aCols[nX,4] //acumula todos os Filhos
- EndIf
- EndIf
- Next
- aCols[nPos,4] := cValor //atualiza valor acumulado na linha Pai (para 002/003/006/007/012)
- n001 := Ascan(aCols,{|x|x[1]=="001"})
- n002 := Ascan(aCols,{|x|x[1]=="002"})
- n003 := Ascan(aCols,{|x|x[1]=="003"})
- n004 := Ascan(aCols,{|x|x[1]=="004"})
- n005 := Ascan(aCols,{|x|x[1]=="005"})
- n006 := Ascan(aCols,{|x|x[1]=="006"})
- n007 := Ascan(aCols,{|x|x[1]=="007"})
- n008 := Ascan(aCols,{|x|x[1]=="008"})
- n009 := Ascan(aCols,{|x|x[1]=="009"})
- n010 := Ascan(aCols,{|x|x[1]=="010"})
- n011 := Ascan(aCols,{|x|x[1]=="011"})
- n012 := Ascan(aCols,{|x|x[1]=="012"})
- aCols[n011][4] := 0 //zera saldo credor
- aCols[n008][4] := (aCols[n001][4] + aCols[n002][4] + aCols[n003][4]) - ;
- (aCols[n004][4] + aCols[n005][4] + aCols[n006][4] + aCols[n007][4]) //saldo devedor
- aCols[n010][4] := aCols[n008][4] - aCols[n009][4] //Valor a recolhe
- if aCols[n008][4] < 0 //se saldo devedor for negativo joga em saldo credor
- aCols[n011][4] += (aCols[n008][4] * -1)
- aCols[n008][4] := 0
- aCols[n011][4] += aCols[n009][4]
- aCols[n010][4] := 0
- ElseIF aCols[n010][4] < 0 //Se valor a recolher for negativo ent鉶 acumula saldo credot
- aCols[n011][4] += (aCols[n010][4] *-1)
- aCols[n010][4] := 0
- EndIF
- lRet := .T.
- Else
- lRet := .F.
- MsgAlert("Guia de recolhimento informada nao existe ou n鉶 pertence a este Estado")
- EndIF
- ElseIf cCodTP =='3' //Fecp Difal
- IF SF6->(DbSeek (xFilial ("SF6")+SubStr(aCols[2][3],At("(",aCols[2][3]) + 1,2)+cGnre))
- aCols[n,4] := SF6->F6_VALOR
- cBloco := Alltrim(aCols[n,1])
- cValor := 0
- nPos := 0
- For nX := 1 to Len(aCols)
- If Alltrim(aCols[nX][1]) == cBloco
- If Alltrim(aCols[nX,2]) == Alltrim(cBloco+".00")
- nPos := nX //Pega a posicao da Linha Pai
- Else
- cValor += aCols[nX,4] //acumula todos os Filhos
- EndIf
- EndIf
- Next
- aCols[nPos,4] := cValor //atualiza valor acumulado na linha Pai (para 014/015/018/019/021/024)
- n013 := Ascan(aCols,{|x|x[1]=="013"})
- n014 := Ascan(aCols,{|x|x[1]=="014"})
- n015 := Ascan(aCols,{|x|x[1]=="015"})
- n016 := Ascan(aCols,{|x|x[1]=="016"})
- n017 := Ascan(aCols,{|x|x[1]=="017"})
- n018 := Ascan(aCols,{|x|x[1]=="018"})
- n019 := Ascan(aCols,{|x|x[1]=="019"})
- n020 := Ascan(aCols,{|x|x[1]=="020"})
- n021 := Ascan(aCols,{|x|x[1]=="021"})
- n022 := Ascan(aCols,{|x|x[1]=="022"})
- n023 := Ascan(aCols,{|x|x[1]=="023"})
- n024 := Ascan(aCols,{|x|x[1]=="024"})
- aCols[n023][4] := 0 //zera saldo credor
- aCols[n020][4] := (aCols[n013][4] + aCols[n014][4] + aCols[n015][4]) - ;
- (aCols[n016][4] + aCols[n017][4] + aCols[n018][4] + aCols[n019][4]) //saldo devedor
- aCols[n022][4] := aCols[n020][4] - aCols[n021][4] //Valor a recolhe
- if aCols[n020][4] < 0 //se saldo devedor for negativo joga em saldo credor
- aCols[n023][4] += (aCols[n020][4] * -1)
- aCols[n020][4] := 0
- aCols[n023][4] += aCols[n021][4]
- aCols[n022][4] := 0
- ElseIF aCols[n022][4] < 0 //Se valor a recolher for negativo ent鉶 acumula saldo credot
- aCols[n023][4] += (aCols[n022][4] *-1)
- aCols[n022][4] := 0
- EndIF
- lRet := .T.
- Else
- lRet := .F.
- MsgAlert("Guia de recolhimento informada nao existe ou n鉶 pertence a este Estado")
- EndIF
- else
- MsgAlert("Guia de recolhimento informada nao existe, sera criada uma guia de recolhimento manual!")
- EndIf
- Else
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //砎ERIFICACAO SE A GNRE DIGITADA NA COLUNA GNRE JAH FOI DIGITADA ANTERIORMENTE EM OUTRA LINHA?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? For nI := 1 To Len (aCols)
- If !aCols[nI,Len(aCols[nI])] .And. (AllTrim (cGnre)$aCols[nI,5])
- HELP (" ", 1, "JAGRAVADO")
- lRet := .F.
- Exit
- EndIf
- Next (nI)
- EndIf
- EndIf
- Return (lRet)
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北矲uncao 砤953TdOk 矨utor 矴ustavo G. Rueda ?Data ?1/04/2006潮?
- 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北矰esc. 砎alidacao do codigo da GNRE, o estado padrao eh o MV_ESTADO.潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砇etorno 砃enhum 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros? 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Function a953TdOk()
- Local lRet := .T.
- Local nI := 1
- local nX := 1
- Local nPosl := len(aCols[1])
- Local cCodLanc := ""
- Local cSubItem := ""
- Local lUsaSped := SuperGetMv("MV_USASPED",,.T.) .And. AliasIndic("CDH") .And. AliasIndic("CDA")
- local lTdOk := SuperGetMv("MV_AICVALT",,.F.) // informa se ir?validar apenas ao confirmar
- For nI := 1 To Len (aCols)
- If !aCols[nI,nPosl] .And. !Empty (aCols[nI,5])
- SF6->(DbSetOrder (1))
- If SF6->(DbSeek (xFilial ("SF6")+SuperGetMV("MV_ESTADO")+aCols[nI,5]))
- //validar se a guia gerada e' exatamente igual a guia salva
- // se houver alguma diferenca, retorna msg de erro
- If !(SF6->F6_VALOR == aCols[nI,4])
- xMagHelpFis (STR0085,; //"Aten玢o"
- "O valor informado deve ser igual ao cadastrado na GNRE",;
- "Favor alterar o valor ou inserir um novo n鷐ero de GNRE")
- lRet := .F.
- Exit
- EndIf
- If !(AllTrim(SF6->F6_CLAVENC) == AllTrim(aCols[nI,6]))
- xMagHelpFis (STR0085,; //"Aten玢o"
- "A Classe de Vencimento informada deve ser igual a cadastrada na GNRE",;
- "Favor alterar a Classe de Vencimento ou inserir uma novo n鷐ero de GNRE")
- lRet := .F.
- Exit
- EndIf
- EndIf
- EndIf
- If lTdOk .And. lUsaSped .And. !Empty(aCols[nI,7])
- cCodLanc := aCols[nI,7]
- cSubItem := aCols[nI,2]
- aCols[nI,7]:=""
- aCols[nI,2]:=""
- For nX := 1 to len(aCols)
- //Verifica se tem lancamento duplicado
- If !aCols[nX][Len(aCols[nX])] .And. aCols[nX,7] == cCodLanc
- //Se existir duplicidade de lancamento o SUBITEM deve estar informado
- If Empty(cSubItem) .Or. Empty(aCols[nX,2]) .Or. Alltrim(cSubItem) == Alltrim(aCols[nX,2])
- MsgAlert("Para utilizar o mesmo c骴igo de lan鏰mento ?necess醨io preecher todos os Subitens com c骴igos diferentes")
- lRet := .F.
- Exit
- EndIf
- EndIf
- Next
- aCols[nI,7]:=cCodLanc
- aCols[nI,2]:=cSubItem
- If !lRet
- Exit
- EndIf
- ElseIf lUsaSped .And. Empty(aCols[nI,7]) .And. !Empty(aCols[nI,4]) .And. aCols[nI,1] $"002#003#006#007#012#900#901" .and. ;
- !(alltrim(aCols[nI,2])=="002.00" .Or. alltrim(aCols[nI,2])=="003.00" .Or. alltrim(aCols[nI,2])=="006.00" .Or. ;
- alltrim(aCols[nI,2])=="007.00" .Or. alltrim(aCols[nI,2])=="012.00" .Or. alltrim(aCols[nI,2])=="900.00" .Or. ;
- alltrim(aCols[nI,2])=="901.00") .and. aCols[nI, Len(aCols[nI])] == .F.
- MsgAlert(STR0229) //"O preenchimento do C骴igo do Lan鏰mento ?obrigat髍io"
- lRet := .F.
- EndIf
- Next (nI)
- Return( lRet )
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北矲uncao 矨953Apura 矨utor 矨ndreia dos Santos ?Data ?20/08/01 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北矰esc. ?Apura os valores do ICMS do periodo e distribui nos folders潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砇etorno 砃enhum 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros? 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Static Function a953Apura(cImp,dDtIni,dDtFim,cNrLivro,nConsFil,cFilDe,cFilAte,lImpCrdSt,lCrdEst,aEstimulo,aIncent,lConsUf,nAno,nMes,nApuracao,nPeriodo,cNrLivro,lLancCDA,aLisFil,lICMDes,aIcmPago,aRetEsp,nOpcApu,aDifal,aCDADifal,aApurDifal,lAutomato,cTestCase)
- Local aApuracao := {}
- Local aEntrada := {}
- Local aSaida := {}
- Local aCFG := {}
- Local aSaidaTmp := {}
- Local cArqAnt := Alltrim(mv_par06)
- Local nPos := 0
- Local nPos5 := 0
- Local nPos6 := 0
- Local nPos8 := 0
- Local nPos9 := 0
- Local nPosZ := 0
- Local nX := 0
- Local nEstCiap := 0
- Local nCredCiap := 0
- LOCAL cMV_Estado := SuperGetMv("MV_ESTADO") // Def. estado empresa
- LOCAL nImposto := 0
- Local lGiaSc01 :=.T.
- Local nValor := 0
- Local lSimplSC := SuperGetMv("MV_SIMPLSC",.F.,.T.)
- Local lArqAnt := SuperGetMv("MV_APURANT")
- Local lUsaSped := SuperGetMv("MV_USASPED",,.T.) .And. AliasIndic("CDH") .And. AliasIndic("CDA")
- Local nPosl := len(aCols5[1]) // Define Posi玢o da flag logica
- Local nPos2 := len(aCols10[1]) // Define Posi玢o da flag logica
- Local nPosIni := 0
- Local nPosSub := 1
- Local nSubIt := 1
- Local nCnt := 0
- Local nVlFumacop := 0
- Local cSubIt := ""
- Local cLinhas := ""
- Local cNotLinhas := ""
- Local aAuxCol := {}
- Local aCDAIC := {}
- Local aCDAST := {}
- Local aApurCDA := {}
- Local aApurF3 := {}
- Local lP9Sped := SuperGetMv("MV_P9SPED",,.F.)
- Local aCDADE := {}
- Local aConv139 := {}
- Local aCVTot := {0,0,0}
- Local lSTInterna := SuperGetMv("MV_STINTER",,.F.)
- Local cDsvInd := GetNewPar( "MV_DSVIND" , "''" )
- Local aDadosTMP:={}
- Local aDadosAgl:={}
- Local nWx,nXFil,nY
- Local aFilsAgl:={}
- Local cFilBack := cFilAnt
- Local aEstado := {}
- Local nEst := 0
- Local aDifEst := {}
- Local cMvEst := ''
- Local nPosPad := 0
- Local nPosAuto := 0
- Default aRetEsp := {}
- Default lImpCrdSt := .F.
- Default lICMDes := .F.
- Default aLisFil := {}
- Default nOpcApu := Nil
- Default lAutomato := .F.
- Default cTestCase := "MATA953TestCase"
- //aRetAuto
- If lAutomato
- If FindFunction("GetParAuto")
- aRetAuto := GetParAuto(cTestCase)
- EndIf
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?Processamento dos Creditos de Estimulo - Manaus ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?If lCrdEst
- ProcEst(dDtIni,dDtFim,@aEstimulo,cNrLivro,@aIncent)
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Carrega apuracao do SF3 ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If lFiliais//MV_PAR10==1 .and. MV_PAR22==1
- nConsFil:= 2
- For nXFil:=1 to Len(aLisFil)
- aFilsAgl:={}
- If aLisFil[nXFil][1]
- cFilAnt:=aLisFil[nXFil][2]
- aAdd(aFilsAgl,aLisFil[nXFil])
- If SuperGetMv("MV_ESTADO") == "RJ" .And. File("P9AUTOTEXT"+"."+SuperGetMv('MV_ESTADO'))
- Processa({||aDadosTmp:=ResumeF3(cImp,dDtIni,dDtFim,cNrLivro,.f.,.t.,1,.F.,nConsFil,cFilDe,cFilAte,@aEntrada,@aSaida,,,,.T.,,,lImpCrdST,,lCrdEst,aEstimulo,,lConsUf,@aApurCDA,@aApurF3,@aCDAIC,@aCDAST,"F3_MATRAPR",mv_par18,aFilsAgl,,lICMDes,@aIcmPago,,@aCDADE,@aRetEsp,,Mv_Par20,nOpcApu,,@aConv139,@aRecStDif,,@aDifal,@aCDADifal,lAutomato)})
- Else
- Processa({||aDadosTmp:=ResumeF3(cImp,dDtIni,dDtFim,cNrLivro,.f.,.t.,1,.F.,nConsFil,cFilDe,cFilAte,@aEntrada,@aSaida,,,,,,,lImpCrdST,,lCrdEst,aEstimulo,,lConsUf,@aApurCDA,@aApurF3,@aCDAIC,@aCDAST,"F3_MATRAPR",mv_par18,aFilsAgl,,lICMDes,@aIcmPago,,@aCDADE,@aRetEsp,,Mv_Par20,nOpcApu,,@aConv139,@aRecStDif,,@aDifal,@aCDADifal,lAutomato)})
- Endif
- If nXFil==1
- aDadosAgl:=ACLONE(aDadosTmp)
- aSaidaTmp:=ACLONE(aSaida)
- Else
- For nWX:=1 to Len(aDadosTmp)
- nPosAgl:=AScan( aDadosAgl,{ |x| x[1]==aDadosTmp[nWX,1] })
- If nPosAgl>0
- For nY:=1 to Len(aDadosTmp[nWX])
- If Len(aDadosAgl[nPosAgl])==Len(aDadosTmp[nWX])
- If ValType(aDadosTmp[nWX][nY])=='N'
- aDadosAgl[nPosAgl,nY]+=aDadosTmp[nWX,nY]
- Endif
- Endif
- Next
- Else
- Aadd(aDadosAgl,aDadosTmp[nWX])
- Endif
- Next
- For nWX:=1 to Len(aSaida)
- nPosAgl:=AScan( aSaidaTmp,{ |x| x[1]==aSaida[nWX,1] })
- If nPosAgl>0
- For nY:=1 to Len(aSaida[nWX])
- If aSaidaTmp[nWX][1] == aSaida[nWX][1]
- aSaidaTmp[nWX,nY]+=aSaida[nWX,nY]
- Endif
- Next
- Else
- Aadd(aSaidaTmp,aSaida[nWX])
- Endif
- Next
- Endif
- Endif
- Next
- aApuracao:=AClone(aDadosAgl)
- cFilant:=cFilBack
- aSaida :=AClone(aSaidaTmp)
- Else
- If SuperGetMv("MV_ESTADO") == "RJ" .And. File("P9AUTOTEXT"+"."+SuperGetMv('MV_ESTADO'))
- Processa({||aApuracao:=ResumeF3(cImp,dDtIni,dDtFim,cNrLivro,.f.,.t.,1,.F.,nConsFil,cFilDe,cFilAte,@aEntrada,@aSaida,,,,.T.,,,lImpCrdST,,lCrdEst,aEstimulo,,lConsUf,@aApurCDA,@aApurF3,@aCDAIC,@aCDAST,"F3_MATRAPR",mv_par18,aLisFil,,lICMDes,@aIcmPago,,@aCDADE,@aRetEsp,,Mv_Par20,nOpcApu,,@aConv139,@aRecStDif,,@aDifal,@aCDADifal,lAutomato)})
- Else
- Processa({||aApuracao:=ResumeF3(cImp,dDtIni,dDtFim,cNrLivro,.f.,.t.,1,.F.,nConsFil,cFilDe,cFilAte,@aEntrada,@aSaida,,,,,,,lImpCrdST,,lCrdEst,aEstimulo,,lConsUf,@aApurCDA,@aApurF3,@aCDAIC,@aCDAST,"F3_MATRAPR",mv_par18,aLisFil,,lICMDes,@aIcmPago,,@aCDADE,@aRetEsp,,Mv_Par20,nOpcApu,,@aConv139,@aRecStDif,,@aDifal,@aCDADifal,lAutomato)})
- Endif
- Endif
- lLancCDA := lUsaSped
- If !lLancCDA .Or. lP9Sped
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Carrega os parametros de autopreenchimento ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- PRIVATE aTotal
- aCFG := FsLoadCFGAp("P9AUTOTEXT")
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Executa a pre-configuracao de autopreenchimento ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- FsExecCFGAp(aCFG[1],aCols5)
- EndIf
- cObsArt488MG := "Nota(s) de transfer阯cia de cr閐ito: "
- nVlrArt488MG := 0
- For nX := 1 to len(aApuracao)
- If !lLancCDA .Or. lP9Sped
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Executa a configuracao de autopreenchimento do ICMS ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- FsExecCFGAp(aCFG[2],aCols5,aApuracao[nX],aCDAIC)
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Executa ponto de entrada ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If lGiaSc01
- If Existblock("GIASCDEB")
- nPos := ascan(aCols5,{|x|x[1]=="002"})
- Aeval(aCols5,{|x| if(x[1]=="002" .and. x[nPosl]==.F.,nPos++,)})
- aCols5 := Asize(aCols5,Len(aCols5)+1)
- aCols5 := Ains(aCols5,nPos)
- aCols5[nPos] :=Execblock("GIASCDEB",.F.,.F.)
- If lUsaSPED .And. len(aCols5[nPos]) < 8
- //Adiciona elemento para COD_LANCAMENTO
- aCols5[nPos][7] := ""
- AADD(aCols5[nPos],.F.)
- EndIf
- EndIf
- lGiaSc01 :=.F.
- EndIf
- If substr(aApuracao[nX,1],1,1) < "5"
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aCols (1) - Op. Proprias Entradas ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- nPos := Ascan(aCOLS1,{|x|x[1]==aApuracao[nX,1]})
- If nPos==0
- AADD(aCOLS1,Array(07))
- nPos := Len(aCOLS1)
- aCOLS1[nPos,01] := aApuracao[nX,1]
- aCOLS1[nPos,7] := .F.
- Aeval(aCOLS1[nPos],{|x,nX|aCOLS1[nPos,nX]:=0},2,5)
- Endif
- aCOLS1[nPos,2] += aApuracao[nX,11] //Valor Contabil
- aCOLS1[nPos,3] += aApuracao[nX,03] //Base do ICMS
- aCOLS1[nPos,4] += aApuracao[nX,04] //Valor do ICMS
- aCOLS1[nPos,5] += aApuracao[nX,05] //Isentas
- aCOLS1[nPos,6] += aApuracao[nX,06] //Outras
- nPos5 := ascan(aCols5,{|x|x[1]=="005"})
- aCols5[nPos5,04] += aApuracao[nX,04] //Por Entradas/prestacoes com debito do imposto
- //If !lUsaSped .Or. !lLancCDA
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?ICMS Complementar Diferencial de Aliq.?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[2,3] += aApuracao[nX,10] + IIf(GetNewPar("MV_PARICMS",.F.),aApuracao[nX,18]+aApuracao[nPos,17],0)
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?ICMS Retido Vendas (Devolucoes) ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[3,3] += aApuracao[nX,12]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?ICMS Diferido ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[4,3] += aApuracao[nX,14]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?ICMS Complementar Ativo Imobilizado ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[5,3] += aApuracao[nX,18]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?ICMS Complementar Mat. Uso ou Consumo ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[6,3] += aApuracao[nX,17]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //砊ransferencia de Credito ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If aApuracao[nX,1] <> "1605"
- aCols7[7,3] += aApuracao[nX,15]
- Else
- aCols7[8,3] += aApuracao[nX,16] // Transferencia de D閎ito na Entrada
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?Apuracao ICMS Retido( Entradas ) - Credito ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? nPos6 := ascan(aCols6,{|x|x[1]=="006"})
- If mv_par15 == 3
- //Imprime somente os creditos - ST por devolucao de vendas
- If !lSTInterna .Or. (lSTInterna .And. SubStr(aApuracao[nX,01],1,1)$"1/5" )
- aCols6[nPos6,4] += aApuracao[nX,12]
- Endif
- Else
- // Somando valores de devolu珲es (posi玢o 12) pois as posi珲es 21 e 08 n鉶 devem conter estes valores.
- aCols6[nPos6,4] += IIf(lImpCrdSt,aApuracao[nX,21],aApuracao[nX,08]) + aApuracao[nX,12]
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矯redito de ICMS Solidario ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[9,3] += aApuracao[nX,21]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪目
- //矯redito Estimulo - Manaus ? //滥哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[10,3] += aApuracao[nX,30]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪目
- //矲ECOP - Ceara ? //滥哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[23,3] += aApuracao[nX,68]
- aCols7[24,3] += aApuracao[nX,69]
- aCols7[25,3] += aApuracao[nX,70]
- aCols7[26,3] += aApuracao[nX,71]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪目
- //矲ECP ? //滥哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[28,3] += aApuracao[nX,73]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪目
- //砈ENAR ? //滥哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[29,3] += iif(!aApuracao[nX][133],0,aApuracao[nX,85])
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矯redito Presumido - RJ/PR/RO? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[11,3] += aApuracao[nX,34]+ aApuracao[nX,55]+ aApuracao[nX,64]
- If SF3->(FieldPos("F3_CRDPCTR"))>0 // Na entrada apenas pode se tratar de devolu玢o, portanto ser?estornado
- aCols7[11,3] -= aApuracao[nX,111]
- Endif
- If SF3->(FieldPos("F3_CREDPRE"))>0 // Na entrada apenas pode se tratar de devolu玢o, portanto ser?estornado
- aCols7[11,3] += aApuracao[nX,112]
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矯redito Presumido - Entradas Interestaduais Zona Franca de Manaus ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[13,3] += aApuracao[nX,38]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?Apuracao ICMS Retido( Entradas ) - Debito ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If !lSTInterna .Or. (lSTInterna .And. SubStr(aApuracao[nX,01],1,1)$"1/5" )
- If aApuracao[nX,33]<>0
- nPos6 := aScan(aCols6,{|x|x[1]=="002".And.AllTrim(x[3])==STR0130}) // "Outros Debitos - ICMS nao retido na entrada"
- If nPos6 == 0
- aCols6 := Asize(aCols6,Len(aCols6)+1)
- nPos6 := aScan(aCols6,{|x|x[1]=="002"})
- While Len(aCols6)>nPos6 .And. aCols6[nPos6][1]=="002"
- nPos6++
- EndDo
- aCols6 := Ains(aCols6,nPos6)
- aCols6[nPos6] := {"002",Soma1(aCols6[nPos6-1][2]),STR0130,aApuracao[nX,33],"","",""} //"Outros Debitos - ICMS nao retido na entrada"
- If lUsaSPED
- //Adiciona elemento para COD_LANCAMENTO
- AADD(aCols6[nPos6],"")
- EndIf
- AADD(aCols6[nPos6],.F.)
- Else
- aCols6[nPos6,4] += aApuracao[nX,33]
- EndIf
- EndIf
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪??
- //矯redito Presumido(20%) sobre prestacao servico de transporte com ICMS/ST devido ao alienante/remetente|
- //| da operacao - Decreto 44.147/2005 (MG) ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?? aCols7[14,3] += aApuracao[nX,39]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矲undersul - Mato Grosso do Sul? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[16,3] += aApuracao[nX,44]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矱storno de Credito ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[17,3] += aApuracao[nX,47]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矯redito Outorgado SP - Decreto 56.018 de 16.07.2010, |
- //|o Decreto 56.855, de 18.03.2011 e o |
- //|Decreto 56.874, de 23.03.2011 ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[30,3] += aApuracao[nX,86]
- aCols7[30,3] += aApuracao[nX,97]
- aCols7[30,3] += aApuracao[nX,98]
- aCols7[30,3] += aApuracao[nX,99]
- If SuperGetMv("MV_ESTADO") == "MG"
- aCols7[31,3] += aApuracao[nX,50]
- EndIf
- //谀哪哪哪哪哪?
- //矲ECOP - RN ?
- //滥哪哪哪哪哪? aCols7[34,3] += aApuracao[nX,106]
- //desenvolve
- aCols7[39,3] += aApuracao[nX,121]
- aCols7[40,3] += iif( allTrim( aApuracao[nX,1] ) $ cDsvInd , aApuracao[nX,121] , aApuracao[nX,120] )
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矲EEF - RJ / DECRETO N.?45.810 DE 03 DE NOVEMBRO DE 2016 ?
- //矲undo Estadual de Equil韇rio Fiscal do Estado do Rio de Janeiro?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[42,3] += aApuracao[nX,139]
- Else
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aCols (2) - Op. Proprias Saida ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- nPos := Ascan(aCOLS2,{|x|x[1]==aApuracao[nX,1]})
- If nPos==0
- AADD(aCOLS2,Array(07))
- nPos := Len(aCOLS2)
- aCOLS2[nPos,01] := aApuracao[nX,1]
- aCOLS2[nPos,7] := .F.
- Aeval(aCOLS2[nPos],{|x,nX|aCOLS2[nPos,nX]:=0},2,5)
- Endif
- aCOLS2[nPos,2] += aApuracao[nX,11] //Valor Contabil
- aCOLS2[nPos,3] += aApuracao[nX,03] //Base do ICMS
- aCOLS2[nPos,4] += aApuracao[nX,04] //Valor do ICMS
- aCOLS2[nPos,5] += aApuracao[nX,05] //Isentas
- aCOLS2[nPos,6] += aApuracao[nX,06] //Outras
- nPos5 := ascan(aCols5,{|x|x[1]=="001"})
- If cMV_Estado=="SC" .And. lSimplSC
- aCols5[nPos5,04] += aApuracao[nX,04] - aApuracao[nX,36] //Por saidas/prestacoes com debito do imposto - Simples/SC
- Else
- aCols5[nPos5,04] += aApuracao[nX,04] //Por saidas/prestacoes com debito do imposto
- Endif
- //If !lUsaSped .Or. !lLancCDA // Se usa SPED, montagem dos folder 5, 5 e 7 sera feita a parir de outro array
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?ICMS Retido Vendas ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- aCols7[1,3] += aApuracao[nX,13]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?ICMS Diferencial de Aliquota ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- aCols7[2,3] -= aApuracao[nX,10]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?ICMS Diferido ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- aCols7[4,3] += aApuracao[nX,14]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?ICMS Complementar Ativo Imobilizado ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- aCols7[5,3] -= aApuracao[nX,18]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?ICMS Complementar Mat.Uso ou Consumo?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- aCols7[6,3] -= aApuracao[nX,17]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //砊ransferencia de Debito ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If aApuracao[nX,1] <> "5605"
- aCols7[7,3] += aApuracao[nX,15] // Transferencia de Credito na Sa韉a
- Else
- aCols7[8,3] += aApuracao[nX,16]
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?ICMS Retido - Apuracao ST ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If !lSTInterna .Or. (lSTInterna .And. SubStr(aApuracao[nX,01],1,1)$"1/5" )
- nPos6 := ascan(aCols6,{|x|x[1]=="001"})
- aCols6[nPos6,4] += aApuracao[nX,08]
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矰ebito de ICMS Solidario ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[9,3] -= aApuracao[nX,21]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪目
- //矯redito Estimulo - Manaus ? //滥哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[10,3] += aApuracao[nX,30]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矯redito Presumido - RJ/PR/RO? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[11,3] += aApuracao[nX,34]+ aApuracao[nX,55]+ aApuracao[nX,64]
- If SF3->(FieldPos("F3_CRDPCTR"))>0
- aCols7[11,3] += aApuracao[nX,111]
- EndIf
- If SF3->(FieldPos("F3_CREDPRE"))>0
- aCols7[11,3] += aApuracao[nX,112]
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矯redito Presumido - RJ - Prestacoes de Servicos de Transporte ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[12,3] += aApuracao[nX,37]
- //
- //Valor Cr閐ito Presumido nas opera珲es de Sa韉a com o ICMS destacado sobre os produtos resultantes da industrializa玢o com componentes, partes e pecas recebidos do exterior, destinados a fabricacao de produtos de informatica, eletronicos e telecomunicacoes, por estabelecimento industrial desses setores. Tratamento conforme Art. 1?do DECRETO 4.316 de 19 de Junho de 1995.
- aCols7[15,3] += aApuracao[nX,41]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矲undersul - Mato Grosso do Sul? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[16,3] += aApuracao[nX,44]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //砈ENAR ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[29,3] += iif(!aApuracao[nX][133],0,aApuracao[nX,85])
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矱storno de Credito ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[17,3] -= aApuracao[nX,47]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪目
- //矲ECOP - Ceara ? //滥哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[23,3] += aApuracao[nX,68]
- aCols7[24,3] += aApuracao[nX,69]
- aCols7[25,3] += aApuracao[nX,70]
- aCols7[26,3] += aApuracao[nX,71]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矯red. Presumido-art.631-A do RICMS/2008 ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[27,3] += aApuracao[nX,72]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矯redito Outorgado SP - Decreto 56.018 de 16.07.2010, |
- //|o Decreto 56.855, de 18 .03.2011 e o |
- //|Decreto 56.874, de 23.03.2011 ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[30,3] += aApuracao[nX,86]
- aCols7[30,3] += aApuracao[nX,97]
- aCols7[30,3] += aApuracao[nX,98]
- aCols7[30,3] += aApuracao[nX,99]
- If SuperGetMv("MV_ESTADO") == "MG"
- aCols7[31,3] += aApuracao[nX,50]
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矯redito Outorgado - GO Inc.III, Art 11 Anexo IX - RCTE-GO/97 ?
- //e Fundo de Protecao Social do Estado de GO - PROTEGE ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If SuperGetMv("MV_ESTADO") == "GO"
- aCols7[30,3] += aApuracao[nX,110]
- Endif
- aCols7[41,3] += aApuracao[nX,51]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矲EEF - RJ / DECRETO N.?45.810 DE 03 DE NOVEMBRO DE 2016 ?
- //矲undo Estadual de Equil韇rio Fiscal do Estado do Rio de Janeiro?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[42,3] += aApuracao[nX,139]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矱storno de Debito ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[18,3] += aApuracao[nX,49]
- //谀哪哪哪哪哪?
- //矲ECOP - RN ?
- //滥哪哪哪哪哪?
- aCols7[32,3] += aApuracao[nX,104]
- aCols7[33,3] += aApuracao[nX,105]
- //谀哪哪哪哪哪?
- //矲ECP - MG ?
- //滥哪哪哪哪哪?
- If cMV_Estado=="MG"
- aCols7[35,3] += aApuracao[nX,113]
- aCols7[36,3] += aApuracao[nX,114]
- aCols7[37,3] += aApuracao[nX,115]
- aCols7[37,3] += aApuracao[nX,116]
- eNDiF
- //谀哪哪哪哪哪?
- //矲ECP - MT ?
- //滥哪哪哪哪哪? If cMV_Estado=="MT"
- aCols7[38,3] += aApuracao[nX,118]
- Endif
- //desenvolve
- aCols7[39,3] += aApuracao[nX,121]
- aCols7[40,3] += iif( allTrim( aApuracao[nX,1] ) $ cDsvInd , aApuracao[nX,121] , aApuracao[nX,120] )
- //Endif
- EndIf
- // If !lUsaSped .Or. !lLancCDA
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矲ust ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[19,3] := aApuracao[nX,53]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矲unttel ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[20,3] := aApuracao[nX,54]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矯redito Acumulado de ICMS - Exportacoes ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[21,3] := aApuracao[nX,62]
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矯redito Acumulado de ICMS - Outras hipoteses ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- aCols7[22,3] := aApuracao[nX,63]
- // Endif
- If cMV_Estado=="MG"
- //quando existe valor de transferencia de credito conforme art.488 RICMS-MG, deve ser descontado esse
- //valor do total de imposto a recolher
- If aApuracao[nX,87]<> 0
- nVlrArt488MG := nVlrArt488MG + aApuracao[nX,87]
- cObsArt488MG := cObsArt488MG + aApuracao[nX,89]
- lArt488MG := .T.
- EndIf
- If aApuracao[nX,88]<>0
- nVlrArt488MG := nVlrArt488MG - aApuracao[nX,88]
- cObsArt488MG := cObsArt488MG + aApuracao[nX,89]
- lArt488MG := .T.
- Endif
- EndIf
- If cMV_Estado=="MA"
- nVlFumacop := nVlFumacop + aApuracao[nX,83]
- EndIf
- Next nX
- If cMV_Estado=="MG"
- If aCols7[35,3] < 0
- aCols7[35,3] := 0
- EndIf
- If aCols7[36,3] < 0
- aCols7[36,3] := 0
- EndIf
- If aCols7[37,3] < 0
- aCols7[37,3] := 0
- EndIf
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?Insere no aCOLS7 os valores de ICMS-ST ja pagos em GNRE's emitidas junto com os documentos ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?For nX := 1 to len(aIcmPago)
- If (nY := aScan(aCols7,{|x| Substr(x[2],1,2) == aIcmPago[nX][1] })) == 0
- AADD(aCols7,{SOMA1(aCols7[len(aCols7)][1]),aIcmPago[nX][1] + " - ICMS ST pago via GNRE na emiss鉶 do Documento",0,.F.})
- nY := len(aCols7)
- EndIf
- aCols7[nY][3] += aIcmPago[nX][2]
- Next
- If lUsaSped .And. lLancCDA
- aApurCDA := Asort(aApurCDA,,,{|x,y|x[1]<y[1]})
- For nX := 1 to len(aApurCDA)
- If ("1"$aApurCDA[nX][8]) // ICMS-ST
- nPos := ascan(aCols6,{|x|x[1]==aApurCDA[nX][1]})
- If nPos > 0
- aCols6[nPos,04] += aApurCDA[nX,04]
- EndIf
- Else // ICMS
- nPos := ascan(aCols5,{|x|x[1]==aApurCDA[nX][1]})
- If nPos > 0
- aCols5[nPos,04] += aApurCDA[nX,04]
- EndIf
- EndIf
- Next
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Insere no aCOLS5 os ajustes de ICMS levantados do CDA ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- For nX := 1 to len(aCDAIC)
- If (nPosZ := ascan(aCols5,{|x|x[1]==aCDAIC[nX][1] .And. AllTrim(x[7])==AllTrim(aCDAIC[nX][7])}))==0
- nPos := ascan(aCols5,{|x|x[1]==aCDAIC[nX][1]})
- Aeval(aCols5,{|x| if(x[1]==aCDAIC[nX][1] .and. x[nPosl]==.F.,nPos++,)})
- aCols5 := Asize(aCols5,Len(aCols5)+1)
- aCols5 := Ains(aCols5,nPos)
- aCols5[nPos] := aCDAIC[nX]
- aCols5[nPos][2] := Space(10)
- Else
- aCols5[nPosZ][4] := aCDAIC[nX][4]
- Endif
- Next nX
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Insere no aCOLS6 os lancamentos de ICMS-ST levantados do CDA ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- For nX := 1 to len(aCDAST)
- If (nPosZ := ascan(aCols6,{|x|Alltrim(x[7])==Alltrim(aCDAST[nX][7])}))==0
- nPos := ascan(aCols6,{|x|x[1]==aCDAST[nX][1]})
- Aeval(aCols6,{|x| if(x[1]==aCDAST[nX][1] .and. x[nPosl]==.F.,nPos++,)})
- aCols6 := Asize(aCols6,Len(aCols6)+1)
- aCols6 := Ains(aCols6,nPos)
- aCols6[nPos] := aCDAST[nX]
- aCols6[nPos][2] := Space(10)
- Else
- aCols6[nPosZ][4] := aCDAST[nX][4]
- Endif
- Next
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //?Insere no aCOLS10 - Debitos especiais os ajustes de ICMS levantados do CDA ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?For nX := 1 to len(aCDADE)
- If ascan(aCols10,{|x|x[1]==aCDADE[nX][1] .And. AllTrim(x[7])==AllTrim(aCDADE[nX][7])})==0
- nPos := ascan(aCols10,{|x|x[1]==aCDADE[nX][1]})
- Aeval(aCols10,{|x| if(x[1]==aCDADE[nX][1] .and. x[nPos2]==.F.,nPos++,)})
- aCols10 := Asize(aCols10,Len(aCols10)+1)
- aCols10 := Ains(aCols10,nPos)
- aCols10[nPos] := aCDADE[nX]
- aCols10[nPos][2] := Space(10)
- EndIf
- Next nX
- If lAutomato .And. lUsaSped
- For nPosAuto :=1 to Len(aRetAuto)
- IF aRetAuto[nPosAuto][2]=="10" .And. aRetAuto[nPosAuto][3]=="900"
- If aRetAuto[nPosAuto][1] == "Aut"
- nPosPad := aScan(aCOLS10,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
- If nPosPad > 0
- AtuAcols(aCols10,nPosPad,aRetAuto,nPosAuto)
- EndIf
- EndIf
- EndIf
- Next nX
- EndIf
- IF lCon13906
- For nX :=1 to Len(aConv139)
- IF !aConv139[nX,01] $ SuperGetMv("MV_ESTADO")
- AADD(aCOLS11,Array(07))
- nPos := Len(aCOLS11)
- aCOLS11[nPos,01] := aConv139[nX,01]
- aCOLS11[nPos,02] := aConv139[nX,02]
- aCOLS11[nPos,03] := aConv139[nX,03]
- aCOLS11[nPos,04] := aConv139[nX,04]
- aCOLS11[nPos,05] :=' ""
- aCOLS11[nPos,06] := ""
- aCOLS11[nPos,07] := .F.
- aCVTot[1] += aConv139[nX,02]
- aCVTot[2] += aConv139[nX,03]
- aCVTot[3] += aConv139[nX,04]
- EndIF
- Next nX
- //Ordena array pela UF em ordem crescente
- aCOLS11 := ASort(aCOLS11,,,{|x,y| x[1] < y[1] })
- AADD(aCOLS11,Array(07))
- nPos := Len(aCOLS11)
- aCOLS11[nPos,01] := STR0264 //SUB TOTAL
- aCOLS11[nPos,02] := aCVTot[1]
- aCOLS11[nPos,03] := aCVTot[2]
- aCOLS11[nPos,04] := aCVTot[3]
- aCOLS11[nPos,05] := ""
- aCOLS11[nPos,06] := ""
- aCOLS11[nPos,07] := .F.
- AADD(aCOLS11,Array(07))
- nPos := Len(aCOLS11)
- aCOLS11[nPos,01] := SuperGetMv("MV_ESTADO")
- nX:= ascan(aConv139,{|x|x[1]==aCOLS11[nPos,01]})
- aCOLS11[nPos,02] := Iif(nX>0,aConv139[nX,02],0)
- aCOLS11[nPos,03] := Iif(nX>0,aConv139[nX,03],0)
- aCOLS11[nPos,04] := Iif(nX>0,aConv139[nX,04],0)
- aCOLS11[nPos,05] := ""
- aCOLS11[nPos,06] := ""
- aCOLS11[nPos,07] := .F.
- aCVTot[1] += aCOLS11[nPos,02]
- aCVTot[2] += aCOLS11[nPos,03]
- aCVTot[3] += aCOLS11[nPos,04]
- AADD(aCOLS11,Array(07))
- nPos := Len(aCOLS11)
- aCOLS11[nPos,01] := STR0265//"Total Geral"
- aCOLS11[nPos,02] := aCVTot[1]
- aCOLS11[nPos,03] := aCVTot[2]
- aCOLS11[nPos,04] := aCVTot[3]
- aCOLS11[nPos,05] := ""
- aCOLS11[nPos,06] := ""
- aCOLS11[nPos,07] := .F.
- EndIF
- Aadd(aEstado,{'Acre ' ,'AC'})
- Aadd(aEstado,{'Alagoas ','AL'})
- Aadd(aEstado,{'Amap?','AP'})
- Aadd(aEstado,{'Amazonas ','AM'})
- Aadd(aEstado,{'Bahia ','BA'})
- Aadd(aEstado,{'Cear?','CE'})
- Aadd(aEstado,{'Distrito Federal ','DF'})
- Aadd(aEstado,{'Esp韗ito Santo ','ES'})
- Aadd(aEstado,{'Goi醩 ','GO'})
- Aadd(aEstado,{'Maranh鉶 ','MA'})
- Aadd(aEstado,{'Mato Grosso ','MT'})
- Aadd(aEstado,{'Mato Grosso do Sul ','MS'})
- Aadd(aEstado,{'Minas Gerais ','MG'})
- Aadd(aEstado,{'Par?','PA'})
- Aadd(aEstado,{'Para韇a ','PB'})
- Aadd(aEstado,{'Paran?','PR'})
- Aadd(aEstado,{'Pernambuco ','PE'})
- Aadd(aEstado,{'Piau?','PI'})
- Aadd(aEstado,{'Rio de Janeiro ','RJ'})
- Aadd(aEstado,{'Rio Grande do Norte ','RN'})
- Aadd(aEstado,{'Rio Grande do Sul ','RS'})
- Aadd(aEstado,{'Rond鬾ia ','RO'})
- Aadd(aEstado,{'Roraima ','RR'})
- Aadd(aEstado,{'Santa Catarina ','SC'})
- Aadd(aEstado,{'S鉶 Paulo ','SP'})
- Aadd(aEstado,{'Sergipe ','SE'})
- Aadd(aEstado,{'Tocantins ','TO'})
- AADD(aCOLS12,Array(08))
- nPos := Len(aCOLS12)
- aCOLS12[nPos,01] := ''
- aCOLS12[nPos,02] := ''
- aCOLS12[nPos,08] := .F.
- aApurDifal := {}
- cMvEst := SuperGetMv("MV_ESTADO")
- If lProcDifal
- dbSelectArea("F0I")
- F0I->(DbSetOrder (1))
- EndIF
- For nEst := 1 to Len(aEstado)
- aDifEst := ApurDifal(aEstado[nEst][2] ,aEstado[nEst][1], aDifal, aCdaDifal,cNrLivro,dDtIni,lAutomato,cTestCase)
- AADD(aCOLS12,Array(08))
- nPos := Len(aCOLS12)
- If aEstado[nEst][2] == cMvEst
- aCOLS12[nPos,01] :='br_amarelo'
- Else
- aCOLS12[nPos,01] := Iif (Empty(IESubTrib(aEstado[nEst][2],.T.)) ,'br_vermelho' ,'br_verde' )
- EndIF
- aCOLS12[nPos,02] := aEstado[nEst][2] + ' - ' + aEstado[nEst][1]
- if lProcDifal .AND. ascan(aDifal,{|x|x[1]==aEstado[nEst][2]}) > 0
- aCOLS12[nPos,03] := aDifEst[aScan(aDifEst,{|x|x[2] == '010.00'} )][4]
- aCOLS12[nPos,04] := aDifEst[aScan(aDifEst,{|x|x[2] == '011.00'} )][4]
- aCOLS12[nPos,07] := aDifEst[aScan(aDifEst,{|x|x[2] == '012.00'} )][4]
- If Year(dDtIni) < 2017
- aCOLS12[nPos,05] := aDifEst[aScan(aDifEst,{|x|x[2] == '016.00'} )][4]
- aCOLS12[nPos,06] := aDifEst[aScan(aDifEst,{|x|x[2] == '017.00'} )][4]
- Else
- aCOLS12[nPos,05] := aDifEst[aScan(aDifEst,{|x|x[2] == '022.00'} )][4]
- aCOLS12[nPos,06] := aDifEst[aScan(aDifEst,{|x|x[2] == '023.00'} )][4]
- aCOLS12[nPos,07] += aDifEst[aScan(aDifEst,{|x|x[2] == '024.00'} )][4]
- Endif
- EndIF
- aCOLS12[nPos,08] := .F.
- //Armazena array do estado no array com todos os estados
- AADD(aApurDifal,{aEstado[nEst][2],aDifEst})
- next nEst
- AADD(aCOLS12,Array(08))
- nPos := Len(aCOLS12)
- aCOLS12[nPos,01] := ''
- aCOLS12[nPos,02] := ''
- aCOLS12[nPos,08] := .F.
- AADD(aCOLS13,Array(08))
- nPos := Len(aCOLS13)
- aCOLS13[nPos,01] := ''
- aCOLS13[nPos,06] := ""
- aCOLS13[nPos,08] := .F.
- If !lLancCDA .Or. lP9Sped
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Executa a configuracao de autopreenchimento do ICMS ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- FsExecCFGAp(aCFG[3],aCols5)
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aCols (3) - ST Entradas ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- For nX := 1 to len(aEntrada)
- nPos := Ascan(aCOLS3,{|x|x[1]==aEntrada[nX,01]})
- If nPos==0 .and. aEntrada[nX,04]+aEntrada[nX,06]+IIF(len(aEntrada[nX])>=7,aEntrada[nX,07],0) >0
- AADD(aCOLS3,Array(07))
- nPos := Len(aCOLS3)
- aCOLS3[nPos,01] := aEntrada[nX,01]
- Aeval(aCOLS3[nPos],{|x,nX|aCOLS3[nPos,nX]:=0},2)
- aCOLS3[nPos,len(aCOLS3[nPos])] := .F.
- EndIf
- If nPos <> 0
- aCOLS3[nPos,02]+= aEntrada[nX,03] //Base ST
- // mv_par15 = 3: Imprime somente os creditos - ST por devolucao de vendas.
- // Mesmo tratamento aplicado na montagem do aCols6: Apura玢o - ST.
- If mv_par15 <> 3
- aCOLS3[nPos,03]+= IIF(lImpCrdSt,aEntrada[nX,05],aEntrada[nX,04]) //Valor Retido
- EndIf
- aCOLS3[nPos,04]+= aEntrada[nX,06] //Imposto debitado na Entrada
- If len(aEntrada[nX]) >= 7 .And. Valtype(aCOLS3[nPos,6]) == "N"
- aCOLS3[nPos,06]+= aEntrada[nX,07] //Imposto creditado na Entrada por devolucoes de vendas
- EndIf
- EndIf
- Next nX
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //矯aso o parametro indique, o nome do arquivo do periodo anterior?
- //硈era montado automaticamente pela rotina. ?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?If Empty(cArqAnt)
- If lArqAnt
- If nMes == 1
- nAno := nAno - 1
- nMes := 12
- Else
- nMes := nMes - 1
- Endif
- cArqAnt := NmArqApur(cImp,nAno,nMes,nApuracao,nPeriodo,cNrLivro)
- Endif
- Endif
- If !Empty(cArqAnt)
- dbSelectArea("SX5")
- dbSetOrder(1)
- MsSeek(xFilial("SX5")+"12")
- While !Eof() .And. SX5->X5_FILIAL == xFilial("SX5") .And. SX5->X5_TABELA == "12"
- nValor := LoadAnt(substr(cArqAnt,1,Len(cArqAnt)-3)+"ST"+substr(cArqAnt,Len(cArqAnt),1),"1"+SubStr(SX5->X5_CHAVE,1,2))
- nPos := Ascan(aCOLS3,{|x|x[1]==SubStr(SX5->X5_CHAVE,1,2)})
- //Atualiza saldo do periodo anterior - ST
- If nValor < 0
- If nPos==0
- AADD(aCOLS3,Array(07))
- nPos := Len(aCOLS3)
- aCOLS3[nPos,01] := SubStr(SX5->X5_CHAVE,1,2)
- Aeval(aCOLS3[nPos],{|x,nX|aCOLS3[nPos,nX]:=0},2)
- aCOLS3[nPos,len(aCOLS3[nPos])] := .F.
- EndIf
- aCOLS3[nPos,05]+= Abs(nValor)
- EndIf
- dbSelectArea("SX5")
- dbSkip()
- EndDo
- EndIf
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矼ontagem do aCols (4) - ST Saidas ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- For nX := 1 to len(aSaida)
- nPos := Ascan(aCOLS4,{|x|x[1]==aSaida[nX,01]})
- If nPos==0 .and. aSaida[nX,04] >0
- AADD(aCOLs4,Array(05))
- nPos := Len(aCOLS4)
- aCOLS4[nPos,01] := aSaida[nX,01]
- aCOLS4[nPos,05] := .F.
- Aeval(aCOLS4[nPos],{|x,nX|aCOLS4[nPos,nX]:=0},2,3)
- Endif
- if nPos <> 0
- aCOLS4[nPos,02] += aSaida[nX,03] //Base ST
- aCOLS4[nPos,03] += aSaida[nX,04] //Valor Retido
- aCOLS4[nPos,04] += aSaida[nX,05] // fecp st
- EndIf
- Next nX
- nPos5 := ascan(aCols5,{|x|x[1]=="009"})
- aCols5[nPos5,4] := LoadAnt(cArqAnt,"014")
- nPos6 := ascan(aCols6,{|x|x[1]=="011"})
- aCols6[nPos6,4] := LoadAnt(substr(cArqAnt,1,Len(cArqAnt)-3)+"ST"+substr(cArqAnt,Len(cArqAnt),1),"016")
- If lApurBa
- //Exportacoes
- nPos8 := ascan(aCols8,{|x|x[1]=="009"})
- aCols8[nPos8,4] := LoadAnt(cArqAnt,"014","EXP")
- //Outras hipoteses
- nPos9 := ascan(aCols9,{|x|x[1]=="009"})
- aCols9[nPos9,4] := LoadAnt(cArqAnt,"014","OUT")
- Endif
- If cMV_Estado=="MA"
- nPos5 := ascan(aCols5,{|x|x[1]=="012"})
- aCols5[nPos5+1,04] := nVlFumacop //Adcional FUMACOP
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矯aso os aCOLS estejam vazios, preenche uma linha zerada ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If len(aCOLS1) == 0
- AADD(aCOLS1,Array(07))
- aCOLS1[1,1] := space(05)
- aCOLS1[1,7] := .F.
- Aeval(aCOLS1[1],{|x,nX|aCOLS1[1,nX]:=0} ,2,5)
- endif
- If len(aCOLS2) == 0
- AADD(aCOLS2,Array(07))
- aCOLS2[1,1] := space(05)
- aCOLS2[1,7] := .F.
- Aeval(aCOLS2[1],{|x,nX|aCOLS2[1,nX]:=0},2,5)
- EndIf
- If len(aCOLS3) == 0
- AADD(aCOLS3,Array(07))
- aCOLS3[1,1] := space(02)
- Aeval(aCOLS3[1],{|x,nX|aCOLS3[1,nX]:=0},2)
- aCOLS3[1,len(aCOLS3[1])] := .F.
- EndIf
- If len(aCOLS4) == 0
- AADD(aCOLS4,Array(05))
- aCOLS4[1,1] := space(02)
- aCOLS4[1,5] := .F.
- Aeval(aCOLS4[1],{|x,nX|aCOLS4[1,nX]:=0},2,3)
- EndIf
- Return
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北矲uncao 矲sLoadCFGA?Autor 矱duardo Riera ?Data ?1.06.2003潮?
- 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北矰escri噮o 矻eitura da configuracao de AutoTexto 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砇etorno 矱xpA1: Array com a seguinte estrutura: 潮?
- 北? ? [1] Array com a Pre-configuracao a ser executada 潮?
- 北? ? [2] Array com os valores a serem executados 潮?
- 北? ? [3] Array com a Pos-configuracao a ser executada 潮?
- 北? ? [4] Array com a Observacao a ser executada 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros矱xpC1: Arquivo de configuracao 潮?
- 北? ? 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Static Function FsLoadCFGAp(cArquivo)
- Local aArea := GetArea()
- Local aCFG := {{},{},{},{}}
- Local cArqCFG := AllTrim(cArquivo)
- Local cLinha := ""
- Local nLinha := 0
- Local aPre := {}
- Local aPos := {}
- Local aVlr := {}
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Procura o arquivo de configuracao do Estado ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If File(cArqCFG+"."+SuperGetMv('MV_ESTADO'))
- cArqCFG := cArqCFG+"."+SuperGetMv('MV_ESTADO')
- Else
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Utiliza o arquivo de configuracao Generico ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- cArqCFG := cArqCFG+".CFG"
- EndIf
- If File(cArqCFG)
- FT_FUSE(cArqCFG)
- FT_FGotop()
- While ( !FT_FEof() )
- cLinha := AllTrim(FT_FREADLN())
- Do Case
- Case SubStr(cLinha,1,1)=="["
- If nLinha <> 0
- aadd(aCFG[nLinha],aPre)
- aadd(aCFG[nLinha],aVlr)
- aadd(aCFG[nLinha],aPos)
- EndIf
- nLinha++
- aPre := {}
- aPos := {}
- aVlr := {}
- Case SubStr(cLinha,1,4)=="(PRE"
- aadd(aPre,SubStr(cLinha,6))
- Case SubStr(cLinha,1,4)=="(POS"
- aadd(aPos,SubStr(cLinha,6))
- OtherWise
- aadd(aVlr,cLinha)
- EndCase
- FT_FSKIP()
- EndDo
- If nLinha <= Len(aCFG)
- aadd(aCFG[nLinha],aPre)
- aadd(aCFG[nLinha],aVlr)
- aadd(aCFG[nLinha],aPos)
- EndIf
- FT_FUse()
- Else
- aCFG := {{{},{},{}},{{},{},{}},{{},{},{}},{{},{},{}}}
- EndIf
- RestArea(aArea)
- Return(aCFG)
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北矲uncao 矲sExecCFGA?Autor 矱duardo Riera ?Data ?1.06.2003潮?
- 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北矰escri噮o 矱xecucao do AutoText da apuracao de ICMS 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砇etorno 砃enhum 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros矱xpA1: Array de configuracao a ser executado 潮?
- 北? 矱xpA2: Acols da Apuracao que deve ser atualizado 潮?
- 北? 矱xpA3: Valor a ser passado, qdo a avaliacao for um codeblock潮?
- 北? ? (OPCIONAL) 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Static Function FsExecCFGAp(aCFG,aCols,aCB,aAuxCDAIC)
- Local aArea := GetArea()
- Local nX := 0
- Local nY := 0
- Local nP := 0
- Local nPosA := 0
- Local nTamCDA:= 0
- Local lGrvCDA:= .F.
- Local cLinha := ""
- Local cCodigo:= ""
- Local cCodInt:= ""
- Local cCodST:= ""
- Local cTexto := ""
- Local cValor := ""
- Local nValor := 0
- Local cCodGia:= ""
- Local cClasse:= ""
- Local cExec := ""
- Local cResult:= ""
- Local lUsaSped := SuperGetMv("MV_USASPED",,.T.) .And. AliasIndic("CDH") .And. AliasIndic("CDA") .And. AliasIndic("CC6") .And. AliasIndic("CDO")
- Local lP9Sped := SuperGetMv("MV_P9SPED",,.F.)
- Default aAuxCDAIC := {}
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Executa o Pre-Processamento ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- For nX := 1 To Len(aCFG[1])
- cLinha := aCFG[1,nX]
- If !Empty(cLinha)
- cLinha := &cLinha
- If ValType(cLinha)=="B"
- Eval(cLinha,aCB)
- EndIf
- EndIf
- Next nX
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Executa o Processamento ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- For nX := 1 To Len(aCFG[2])
- cLinha := aCFG[2,nX]
- cCodigo:= SubStr(cLinha,1,3)
- If cCodigo$"ST /DE "
- nY := At("=",cLinha)
- cCodST := SubStr(cLinha,nY-3,3)
- Endif
- nY := At("=",cLinha)
- cLinha := SubStr(cLinha,nY+1)
- Do Case
- Case cCodigo == "OBS"
- nY := At(";",cLinha)
- nY := IIf(nY==0,Len(cLinha)+1,nY)
- cResult := SubStr(cLinha,1,nY-1)
- cValor := &cResult
- If ValType(cValor)<>"C"
- cValor := Eval(&(cResult),aCB)
- EndIf
- aadd(aCols,cValor)
- OtherWise
- nY := At(";",cLinha)
- cCodInt := SubStr(cLinha,1,nY-1)
- cLinha := SubStr(cLinha,nY+1)
- nY := At(";",cLinha)
- cTexto := SubStr(cLinha,1,nY-1)
- cLinha := SubStr(cLinha,nY+1)
- nY := At(";",cLinha)
- cValor := SubStr(cLinha,1,nY-1)
- nValor := &cValor
- If ValType(nValor)<>"N"
- nValor := Eval(&(cValor),aCB)
- EndIf
- cLinha := SubStr(cLinha,nY+1)
- nY := At(";",cLinha)
- If nY==0
- nY := IIf(nY==0,Len(cLinha)+1,nY)
- cCodGia := SubStr(cLinha,1,nY-1)
- cLinha := SubStr(cLinha,nY+1)
- Else
- cCodGia := SubStr(cLinha,1,nY-1)
- cLinha := SubStr(cLinha,nY+1)
- nY := At(";",cLinha)
- nY := IIf(nY==0,Len(cLinha)+1,nY)
- cExec := SubStr(cLinha,1, nY-1)
- If !Empty(cExec) .And. ValType(&(cExec))=="L"
- If &(cExec)
- If cCodigo=="DE "
- aAdd (aExclApur, {&(cExec), cCodInt, nValor, .F., "DE"})
- ElseIf cCodigo <> "ST "
- aAdd (aExclApur, {&(cExec), cCodInt, nValor, .F., "IC"})
- Else
- aAdd (aExclApur, {&(cExec), cCodInt, nValor, .F., "ST"})
- EndIf
- EndIf
- EndIf
- cLinha := SubStr(cLinha,nY+1)
- EndIf
- nY := At(";",cLinha)
- If nY>0
- cClasse := SubStr(cLinha,1,nY-1)
- Endif
- If cCodigo=="DE "
- If nValor <> 0
- If ((nY := aScan(aCols10,{|x| AllTrim(x[2])==cCodInt .And. Iif(lP9Sped,AllTrim(x[2])==AllTrim(cCodInt),AllTrim(x[3])==AllTrim(cTexto))}))==0)
- nY := aScan(aCols10,{|x| x[1]==Left(cCodST,3) })
- aEval(aCols10,{|x| nY += IIf(x[1]==Left(cCodST,3) .And. x[len(aCols10[nY])]==.F.,1,0)})
- aCols10 := aSize(aCols10,Len(aCols10)+1)
- aCols10 := aIns(aCols10,nY)
- If !lUsaSped
- aCols10[nY] := {Left(cCodST,3),PadR(cCodInt,10),cTexto,nValor,cCodGia,cClasse,.F.}
- Else
- aCols10[nY] := {Left(cCodST,3),PadR(cCodInt,10),cTexto,nValor,cCodGia,cClasse,Space(10),.F.}
- EndIf
- Else
- aCols10[nY, 4] := nValor
- Endif
- EndIf
- ElseIf cCodigo <> "ST "
- If nValor <> 0
- If ((nY := aScan(aCols,{|x| x[1]==cCodigo .And. Iif(lP9Sped,AllTrim(x[2])==AllTrim(cCodInt),AllTrim(x[3])==AllTrim(cTexto))}))==0)
- nY := aScan(aCols,{|x| x[1]==cCodigo })
- aEval(aCols,{|x| nY += IIf(x[1]==cCodigo .And. x[len(aCols[nY])]==.F.,1,0)})
- aCols := aSize(aCols,Len(aCols)+1)
- aCols := aIns(aCols,nY)
- If !lUsaSped
- aCols[nY] := {cCodigo,PadR(cCodInt,10),cTexto,nValor,cCodGia,cClasse,.F.}
- Else
- nTamCDA := Len(aAuxCDAIC)
- lGrvCDA := .F.
- If !(SuperGetMv("MV_ESTADO") == "SC" .And. ((cCodInt = "25020" .And. Alltrim(aCb[1]) $ "2406|2551|2552|2553|2554|2555|2604") .Or.;
- (cCodInt = "25030" .And. Alltrim(aCb[1]) $ "2407|2556|2557")) .And. nTamCDA > 0)
- aCols[nY] := {cCodigo,PadR(cCodInt,10),cTexto,nValor,cCodGia,cClasse,space(10),"",.F.}
- lGrvCDA := .T.
- Else
- For nP := 1 to nTamCDA
- If aAuxCDAIC[nP][1] == cCodigo .And. ((cCodInt == "25030" .And. aAuxCDAIC[nP][7] == "SC40000003") .Or.;
- (cCodInt == "25020" .And. aAuxCDAIC[nP][7] == "SC40000002"))
- aCols[nY] := {cCodigo,PadR(cCodInt,10),cTexto,nValor,cCodGia,cClasse,aAuxCDAIC[nP][7],"",.F.}
- nP := nTamCDA
- lGrvCDA := .T.
- EndIf
- Next nP
- EndIf
- IIf(!lGrvCDA,aCols[nY] := {cCodigo,PadR(cCodInt,10),cTexto,nValor,cCodGia,cClasse,space(10),"",.F.}, Nil)
- EndIf
- Else
- aCols[nY,4] := nValor
- Endif
- EndIf
- Else
- If nValor <> 0
- If ((nY := aScan(aCols6,{|x| AllTrim(x[2])==AllTrim(cCodInt) .And. Iif(lP9Sped,AllTrim(x[2])==AllTrim(cCodInt),AllTrim(x[3])==AllTrim(cTexto))}))==0)
- nY := aScan(aCols6,{|x| x[1]==Left(cCodST,3) })
- aEval(aCols6,{|x| nY += IIf(x[1]==Left(cCodST,3) .And. x[len(aCols6[nY])]==.F.,1,0)})
- aCols6 := aSize(aCols6,Len(aCols6)+1)
- aCols6 := aIns(aCols6,nY)
- If !lUsaSped
- aCols6[nY] := {Left(cCodST,3),PadR(cCodInt,10),cTexto,nValor,cCodGia,cClasse,.F.}
- Else
- aCols6[nY] := {Left(cCodST,3),PadR(cCodInt,10),cTexto,nValor,cCodGia,cClasse,Space(10),"",.F.}
- EndIf
- Else
- aCols6[nY, 4] := nValor
- EndIf
- EndIf
- Endif
- EndCase
- Next nX
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //?Executa o Pos-Processamento ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- For nX := 1 To Len(aCFG[3])
- cLinha := aCFG[3,nX]
- If !Empty(cLinha)
- cLinha := &cLinha
- If ValType(cLinha)=="B"
- Eval(cLinha,aCB)
- EndIf
- EndIf
- Next nX
- RestArea(aArea)
- Return(.T.)
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北矲uncao 矲sApCiap ?Autor 矱duardo Riera ?Data ?1.06.2003潮?
- 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北矰escri噮o 矯alculo da Apuracao de ICMS com os estornos do CIAP 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砇etorno 矱xpA: 潮?
- 北? 砙1] Valor do Estorno CIAP para o periodo informado 潮?
- 北? 砙2] Valor do Credito CIAP para o periodo informado 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros矱xpD1: Data Inicial 潮?
- 北? 矱xpD2: Data Final 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Function FsApCiap(dDtIni,dDtFim)
- Local aArea := GetArea()
- Local cAliasSFA := "SFA"
- Local dLei102 := SuperGetMv("MV_DATCIAP")
- Local lQuery := .F.
- Local lCredito := .T.
- Local nEstCiap := 0
- Local nCredCiap := 0
- Local nDebCiap := 0
- Local cCampos := "SFA.FA_FILIAL,SFA.FA_DATA,SFA.FA_CODIGO,SFA.FA_TIPO,SFA.FA_CREDIT,SFA.FA_VALOR"
- If SFA->(FieldPos("FA_VALICCO")) > 0
- cCampos += ",SFA.FA_VALICCO"
- Endif
- If SFA->(FieldPos("FA_VLDBATV")) > 0
- cCampos += ",SFA.FA_VLDBATV"
- Endif
- cCampos := "%" + cCampos + "%"
- dbSelectARea("SFA")
- dbSetOrder(2)
- #IFDEF TOP
- If TcSrvType()<>"AS/400"
- lQuery := .T.
- cAliasSFA := GetNextAlias()
- BeginSql Alias cAliasSFA
- COLUMN FA_DATA AS DATE
- SELECT %Exp:cCampos%
- FROM %table:SFA% SFA
- WHERE SFA.FA_FILIAL = %xFilial:SFA% AND
- SFA.FA_DATA >= %Exp:dDtIni% AND
- SFA.FA_DATA <= %Exp:dDtFim% AND
- SFA.%NotDel%
- ORDER BY %Order:SFA%
- EndSql
- dbSelectArea(cAliasSFA)
- Else
- #ENDIF
- MsSeek(xFilial("SFA")+Dtos(dDtIni),.T.)
- #IFDEF TOP
- Endif
- #ENDIF
- While ( (cAliasSFA)->(!Eof()).And. xFilial("SFA")==(cAliasSFA)->FA_FILIAL .And.(cAliasSFA)->FA_DATA<=dDtFim )
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矯onforme Regulamento do ICMS do Estado de Santa Catarina, ativos permanentes ?
- //硄ue tiverem ingressado no estabelecimento at?31/12/2000 devem ter lan鏰dos os ?
- //硋alores de estornos na apura玢o do ICMS (Art. 37). J?para ativos permanentes que ?
- //硉iverem ingressado no estabelecimento a partir de 01/01/2001, deve ser emitida Nota ?
- //矲iscal, modelo 1 ou 1-A, para fins de entrada, indicando o valor do cr閐ito a ser ?
- //砤propriado, bem como ser registrado o valor do cr閐ito referido no inciso I na coluna ?
- //矯r閐ito do Imposto do livro Registro de Entradas. ?
- //|A partir de 27/11/08, foi revogada a obrigatoriedade de nota fiscal de entrada para |
- //|lan鏰mento do cr閐ito do ativo permanente mensalmente, dada pela altera玢o 1.817 |
- //|do RICMS, artigo 37, ?2? ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If SuperGetMv("MV_ESTADO") == "SC"
- If DTOS(SFA->FA_DATA) < "20081101"
- SF9->(dbSetOrder(1))
- SF9->(dbSeek(xFilial("SF9")+(cAliasSFA)->FA_CODIGO))
- If SF9->F9_DTENTNE < dLei102
- lCredito := .T.
- IF ((cAliasSFA)->FA_TIPO == "1" ) .And. ((cAliasSFA)->FA_CREDIT=="2")
- nCredCiap += (cAliasSFA)->FA_VALOR
- EndIf
- If ( (cAliasSFA)->FA_TIPO=="2" ) .And. (cAliasSFA)->FA_CREDIT<>"1"
- nEstCiap += (cAliasSFA)->FA_VALOR
- EndIf
- Else
- lCredito := .F.
- Endif
- Endif
- Endif
- If ( (cAliasSFA)->FA_TIPO=="2" ) .And. (cAliasSFA)->FA_CREDIT<>"1"
- nEstCiap += (cAliasSFA)->FA_VALOR
- EndIf
- IF ((cAliasSFA)->FA_TIPO == "1" ) .And. ((cAliasSFA)->FA_CREDIT=="1")
- If lCredito
- nCredCiap += (cAliasSFA)->FA_VALOR
- Endif
- EndIf
- If (cAliasSFA)->(FieldPos("FA_VLDBATV")) > 0 .AND. GetNewPar("MV_PARICMS",.F.)
- If ((cAliasSFA)->FA_TIPO=="2") .And. (cAliasSFA)->FA_CREDIT<>"1"
- nDebCiap -= (cAliasSFA)->FA_VLDBATV
- EndIf
- IF ((cAliasSFA)->FA_TIPO=="1") .And. ((cAliasSFA)->FA_CREDIT=="1")
- nDebCiap += (cAliasSFA)->FA_VLDBATV
- EndIf
- Endif
- dbSelectArea(cAliasSFA)
- DbSkip()
- EndDo
- If lQuery
- dbSelectArea(cAliasSFA)
- dbCloseArea()
- dbSelectArea("SFA")
- EndIf
- RestArea(aArea)
- Return({nEstCiap,nCredCiap,nDebCiap})
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北矲uncao 砅rocEst ?Autor 矱dstron E. Correia ?Data ?1.01.2005潮?
- 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北矰escri噮o 矯alcula Credito de Estimulo para Apuracao de ICMS - Manaus 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros矱xpD1: Data Inicial 潮?
- 北? 矱xpD2: Data Final 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Function ProcEst(dDataIni,dDataFim,aEstimulo,cNrLivro,aIncent)
- Local aArea := GetArea()
- Local aStruSD1 := {}
- Local aStruSD2 := {}
- Local aStruSF3 := {}
- Local cAliasSD1 := "SD1"
- Local cIndSd1 := ""
- Local cAliasSD2 := "SD2"
- Local cIndSd2 := ""
- Local cAliasSF3 := "SF3"
- Local cIndSF3 := ""
- Local cChave := ""
- Local cFiltro := ""
- Local cCFOS := SuperGetMv("MV_INCENTS",.F.,"5101/5949/6102/6949")
- Local cCFOE := SuperGetMv("MV_INCENTE",.F.,"1102/2102/2907")
- Local lQuery := .F.
- Local nX := 0
- Local nEstEntr := 0
- Local nBaseEntr := 0
- Local nValEntr := 0
- Local nValContE := 0
- Local nEstSaid := 0
- Local nBaseSaid := 0
- Local nValSaid := 0
- Local nValContS := 0
- Local nItem := 0
- Local nRetInd := 0
- Local nNum := 0
- Local nRec := 0
- Local nFTIN := 0
- Local nFTIF := 0
- Local nBaseIncE := 0
- Local nBaseIncS := 0
- Local nValIcmE := 0
- Local nValIcmS := 0
- Local nPercCred := 0
- Local nBaseInc := 0
- Local nValIcm := 0
- Local nI := 0
- Local nFtiFrete := 0
- Local cCampo := ""
- Local cCampo2 := ""
- Local cCfoExt := ""
- Local aRegra := M953CRDM()
- Local dDtCrdEs := SuperGetMv("MV_DTCRDES",.T.,cToD("//"))
- #IFDEF TOP
- Local cDtCanc := ""
- Local cQuery := ""
- #ENDIF
- Default cNrLivro := "*"
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //砄 parametro MV_DTCRDES ira indicar a partir de que data o valor do credito estimulo estara?//砱ravado no SF3, nao sendo necessario processar item a item. ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If dDataIni <= dDtCrdEs .Or. dDtCrdEs == cToD("//")
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //砅rocessa item a item, entradas e saidas?
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? dbSelectArea("SD1")
- SD1->(dbsetorder(1))
- #IFDEF TOP
- If TcSrvType()<>"AS/400"
- lQuery := .T.
- cAliasSD1 := GetNextAlias()
- BeginSql Alias cAliasSD1
- COLUMN D1_DTDIGIT AS DATE
- SELECT SD1.D1_FILIAL,SD1.D1_DTDIGIT,SD1.D1_TES,SD1.D1_TOTAL,SD1.D1_VALIPI,SD1.D1_ICMSRET,SD1.D1_VALFRE,SD1.D1_DESPESA,SD1.D1_VALDESC,SD1.D1_BASEICM,SD1.D1_VALICM,SD1.D1_CF,SD1.D1_DOC,SD1.D1_SERIE,SD1.D1_FORNECE,SD1.D1_LOJA,SD1.D1_COD
- FROM %table:SD1% SD1
- WHERE SD1.D1_FILIAL = %xFilial:SD1% AND
- SD1.D1_DTDIGIT >= %Exp:dDataIni% AND
- SD1.D1_DTDIGIT <= %Exp:dDataFim% AND
- SD1.%NotDel%
- ORDER BY %Order:SD1%
- EndSql
- dbSelectArea(cAliasSD1)
- Else
- #ENDIF
- cIndSd1 := CriaTrab (NIL, .F.)
- cChave := IndexKey()
- cFiltro := "D1_FILIAL=='"+xFilial("SD1")+"'"
- cFiltro += " .And. DTOS(SD1->D1_DTDIGIT)>='"+DTOS(dDataIni)+"' .AND. DTOS(SD1->D1_DTDIGIT)<='"+DTOS(dDataFim)+"' "
- IndRegua (cAliasSd1, cIndSd1, cChave,, cFiltro)
- nRetInd := RetIndex (cAliasSd1)
- DbSetIndex (cIndSd1+OrdBagExt ())
- DbSetOrder (nRetInd+1)
- nRec := LastRec()
- ProcRegua(nRec)
- DbGoTop ()
- #IFDEF TOP
- Endif
- #ENDIF
- nBaseIncE := 0.00
- nValIcmE := 0.00
- While !(cAliasSd1)->(Eof())
- IncProc(STR0119) //"Processamento Credito Estimulo - Entradas"
- If SB1->(DbSeek(xFilial("SB1")+(cAliasSD1)->D1_COD))
- SB5->(DbSeek(xFilial("SB5")+(cAliasSD1)->D1_COD))
- If !(xFilial ("SD1")+(cAliasSD1)->D1_DOC+(cAliasSD1)->D1_SERIE+(cAliasSD1)->D1_FORNECE+(cAliasSD1)->D1_LOJA==xFilial ("SF1")+SF1->F1_DOC+SF1->F1_SERIE+SF1->F1_FORNECE+SF1->F1_LOJA)
- nItem := 1
- SF1->(DbSetOrder (1))
- SF1->(DbSeek (xFilial ("SF1")+(cAliasSD1)->D1_DOC+(cAliasSD1)->D1_SERIE+(cAliasSD1)->D1_FORNECE+(cAliasSD1)->D1_LOJA))
- MaFisEnd ()
- MaFisIniNf (1, 0,, "SF1", .F.)
- SB1->(DbSeek(xFilial("SB1")+(cAliasSD1)->D1_COD))
- Else
- If nItem=0
- SF1->(DbSetOrder (1))
- SF1->(DbSeek (xFilial ("SF1")+(cAliasSD1)->D1_DOC+(cAliasSD1)->D1_SERIE+(cAliasSD1)->D1_FORNECE+(cAliasSD1)->D1_LOJA))
- MaFisEnd ()
- MaFisIniNf (1, 0,, "SF1", .F.)
- SB1->(DbSeek(xFilial("SB1")+(cAliasSD1)->D1_COD))
- Endif
- nItem++
- EndIf
- nBaseEntr := MaFisRet (nItem, "LF_BASEICM")
- nValContE := MaFisRet (nItem, "LF_VALCONT")
- cCfoExt := MaFisRet (nItem, "LF_CFOEXT")
- nFTIN := IIF(AllTrim((cAliasSD1)->D1_CF)=="2101",(nValContE*(SB5->B5_FTIN/100)),0)
- If !Empty(SB1->B1_CRDEST) .Or. !Empty(SB5->B5_PROPOR1)
- If !Empty(SB5->B5_PROPOR1)
- For nI :=1 TO 2
- cCampo :="B5_PROPOR"+AllTrim(Str(nI))
- cCampo2 :="B5_CRDEST"+AllTrim(Str(nI))
- nValEntr := MaFisRet (nItem, "LF_VALICM") * &("SB5->"+cCampo)/100
- nEstEntr := nValEntr * &("SB5->"+cCampo2)/100
- nNum :=Ascan(aEstimulo,{|x|x[1]==&("SB5->"+cCampo2)})
- If nNum==0
- AADD(aEstimulo,{&("SB5->"+cCampo2),nEstEntr,0,nBaseEntr,nValEntr,0,0,nFTIN,0})
- Else
- aEstimulo[nNum,02] +=nEstEntr
- aEstimulo[nNum,04] +=nBaseEntr
- aEstimulo[nNum,05] +=nValEntr
- aEstimulo[nNum,08] +=nFTIN
- Endif
- Next
- Else
- nValEntr := MaFisRet (nItem, "LF_VALICM")
- nEstEntr := MaFisRet (nItem, "LF_VALICM") * SB1->B1_CRDEST / 100
- nNum :=Ascan(aEstimulo,{|x|x[1]==SB1->B1_CRDEST})
- If nNum==0
- AADD(aEstimulo,{SB1->B1_CRDEST,nEstEntr,0,nBaseEntr,nValEntr,0,0,nFTIN,0,nBaseIncE,nValIcmE,0,0})
- Else
- aEstimulo[nNum,02] +=nEstEntr
- aEstimulo[nNum,04] +=nBaseEntr
- aEstimulo[nNum,05] +=nValEntr
- aEstimulo[nNum,08] +=nFTIN
- Endif
- Endif
- Else
- If !Empty(cCfoExt)
- nNum :=Ascan(aIncent,{|x|x[1]=="INC"})
- If nNum==0
- AADD(aIncent,{"INC",MaFisRet(nItem,"LF_BASEICM"),MaFisRet(nItem,"LF_VALICM"),0,0})
- Else
- aIncent[nNum,02] +=MaFisRet(nItem,"LF_BASEICM")
- aIncent[nNum,03] +=MaFisRet(nItem,"LF_VALICM")
- Endif
- Endif
- Endif
- Endif
- (cAliasSD1)->(dbskip())
- Enddo
- #IFDEF TOP
- dbSelectArea(cAliasSD1)
- dbCloseArea()
- #ELSE
- dbSelectArea(cAliasSD1)
- RetIndex (cAliasSd1)
- FErase (cIndSd1+OrdBagExt ())
- #ENDIF
- dbSelectArea("SD2")
- SD2->(DbSetOrder(3))
- #IFDEF TOP
- If TcSrvType()<>"AS/400"
- lQuery := .T.
- cAliasSD2 := GetNextAlias()
- BeginSql Alias cAliasSD2
- COLUMN D2_EMISSAO AS DATE
- SELECT SD2.D2_FILIAL,SD2.D2_EMISSAO,SD2.D2_TES,SD2.D2_TOTAL,SD2.D2_VALIPI,SD2.D2_ICMSRET,SD2.D2_VALFRE,SD2.D2_DESPESA,SD2.D2_BASEICM,SD2.D2_VALICM,SD2.D2_CF,SD2.D2_DOC,SD2.D2_SERIE,SD2.D2_CLIENTE,SD2.D2_LOJA,SD2.D2_COD
- FROM %table:SD2% SD2
- WHERE SD2.D2_FILIAL = %xFilial:SD2% AND
- SD2.D2_EMISSAO >= %Exp:dDataIni% AND
- SD2.D2_EMISSAO <= %Exp:dDataFim% AND
- SD2.%NotDel%
- ORDER BY %Order:SD2%
- EndSql
- dbSelectArea(cAliasSD2)
- Else
- #ENDIF
- cIndSd2 := CriaTrab (NIL, .F.)
- cChave := IndexKey()
- cFiltro := "D2_FILIAL=='"+xFilial("SD2")+"'"
- cFiltro += " .And. DTOS(SD2->D2_EMISSAO)>='"+DTOS(dDataIni)+"' .AND. DTOS(SD2->D2_EMISSAO)<='"+DTOS(dDataFim)+"' "
- IndRegua (cAliasSd2, cIndSd2, cChave,, cFiltro)
- nRetInd := RetIndex (cAliasSd2)
- DbSetIndex (cIndSd2+OrdBagExt ())
- DbSetOrder (nRetInd+1)
- nRec := LastRec()
- ProcRegua(nRec)
- DbGoTop ()
- #IFDEF TOP
- Endif
- #ENDIF
- nItem := 0
- nBaseIncS := 0.00
- nValIcmS := 0.00
- While !(cAliasSD2)->(Eof ())
- IncProc(STR0120) //"Processamento Credito Estimulo - Saidas"
- If SB1->(DbSeek(xFilial("SB1")+(cAliasSD2)->D2_COD))
- SB5->(DbSeek(xFilial("SB5")+(cAliasSD2)->D2_COD))
- If !(xFilial ("SD2")+(cAliasSD2)->D2_DOC+(cAliasSD2)->D2_SERIE+(cAliasSD2)->D2_CLIENTE+(cAliasSD2)->D2_LOJA==xFilial ("SF2")+SF2->F2_DOC+SF2->F2_SERIE+SF2->F2_CLIENTE+SF2->F2_LOJA)
- nItem := 1
- SF2->(DbSetOrder (1))
- SF2->(DbSeek (xFilial ("SF2")+(cAliasSD2)->D2_DOC+(cAliasSD2)->D2_SERIE+(cAliasSD2)->D2_CLIENTE+(cAliasSD2)->D2_LOJA))
- MaFisEnd ()
- MaFisIniNf (2, 0,, "SF2", .F.)
- SB1->(DbSeek(xFilial("SB1")+(cAliasSD2)->D2_COD))
- Else
- If nItem=0
- SF2->(DbSetOrder (1))
- SF2->(DbSeek (xFilial ("SF2")+(cAliasSD2)->D2_DOC+(cAliasSD2)->D2_SERIE+(cAliasSD2)->D2_CLIENTE+(cAliasSD2)->D2_LOJA))
- MaFisEnd ()
- MaFisIniNf (2, 0,, "SF2", .F.)
- SB1->(DbSeek(xFilial("SB1")+(cAliasSD2)->D2_COD))
- Endif
- nItem++
- EndIf
- nBaseSaid := MaFisRet (nItem, "LF_BASEICM")
- nValContS := MaFisRet (nItem, "LF_VALCONT")
- cCfoExt := MaFisRet (nItem, "LF_CFOEXT")
- nFTIF := IIF(SUBS(ALLTRIM((cAliasSD2)->D2_CF),1,1)>="5",(nValContS*(SB5->B5_FTIF/100)),0)
- If ( !Empty(SB1->B1_CRDEST) .Or. !Empty(SB5->B5_PROPOR1) ) .And. Iif(SF4->(FieldPos("F4_CRDEST"))>0,SF4->F4_CRDEST != "4",.T.)
- If !Empty(SB5->B5_PROPOR1)
- For nI :=1 TO 2
- cCampo :="B5_PROPOR"+AllTrim(Str(nI))
- cCampo2 :="B5_CRDEST"+AllTrim(Str(nI))
- nValSaid := MaFisRet (nItem, "LF_VALICM") * &("SB5->"+cCampo)/100
- nEstSaid := nValSaid * &("SB5->"+cCampo2)/100
- nNum :=Ascan(aEstimulo,{|x|x[1]==&("SB5->"+cCampo2)})
- If nNum==0
- AADD(aEstimulo,{&("SB5->"+cCampo2),0,nEstSaid,0,0,nBaseSaid,nValSaid,0,nFTIF,0,0,nBaseIncS,nValICMS})
- Else
- aEstimulo[nNum,03] +=nEstSaid
- aEstimulo[nNum,06] +=nBaseSaid
- aEstimulo[nNum,07] +=nValSaid
- aEstimulo[nNum,09] +=nFTIF
- Endif
- Next
- Else
- nValSaid := MaFisRet (nItem, "LF_VALICM")
- nEstSaid := MaFisRet (nItem, "LF_VALICM") * SB1->B1_CRDEST/100
- nNum :=Ascan(aEstimulo,{|x|x[1]==SB1->B1_CRDEST})
- If nNum==0
- AADD(aEstimulo,{SB1->B1_CRDEST,0,nEstSaid,0,0,nBaseSaid,nValSaid,0,nFTIF,0,0,nBaseIncS,nValICMS})
- Else
- aEstimulo[nNum,03] +=nEstSaid
- aEstimulo[nNum,06] +=nBaseSaid
- aEstimulo[nNum,07] +=nValSaid
- aEstimulo[nNum,09] +=nFTIF
- Endif
- Endif
- Else
- //Caio
- dbSelectArea("SA1")
- SA1->( DbSetOrder(1) )
- SA1->( DbSeek( xFilial("SA1")+(cAliasSD2)->D2_CLIENTE+(cAliasSD2)->D2_LOJA ) )
- dbSelectArea("SF4")
- SF4->( DbSetOrder(1) )
- SF4->( DbSeek( xFilial("SF4")+(cAliasSD2)->D2_TES) )
- If SF4->(FieldPos("F4_CRDEST"))>0 .And. SA1->(FieldPos("A1_CRDMA"))>0 .And. SF4->F4_CRDEST == "4" .And. Len(aRegra)>0 .And. ;
- ( (nX := AScanX(aRegra, {|x| x[1]== Alltrim(SB1->B1_POSIPI) .And. x[2]== SA1->A1_CRDMA } )) > 0 .Or. ;
- (nX := AScanx(aRegra, {|x| x[1]== Alltrim(SB1->B1_POSIPI) .And. x[2]=="4" } )) > 0 )
- nValSaid := MaFisRet (nItem, "LF_VALICM")
- nEstSaid := MaFisRet (nItem, "LF_VALICM") * aRegra[nX,3]/100
- nNum := Ascan(aEstimulo,{|x|x[1]==aRegra[nX,3]})
- If nNum==0
- AADD(aEstimulo,{aRegra[nX,3],0,nEstSaid,0,0,nBaseSaid,nValSaid,0,nFTIF,0,0,nBaseIncS,nValICMS})
- Else
- aEstimulo[nNum,03] +=nEstSaid
- aEstimulo[nNum,06] +=nBaseSaid
- aEstimulo[nNum,07] +=nValSaid
- aEstimulo[nNum,09] +=nFTIF
- Endif
- Else
- If !Empty(cCfoExt)
- nNum :=Ascan(aIncent,{|x|x[1]=="INC"})
- If nNum==0
- AADD(aIncent,{"INC",0,0,MaFisRet(nItem,"LF_BASEICM"),MaFisRet(nItem,"LF_VALICM")})
- Else
- aIncent[nNum,04] +=MaFisRet(nItem,"LF_BASEICM")
- aIncent[nNum,05] +=MaFisRet(nItem,"LF_VALICM")
- Endif
- Endif
- EndIf
- Endif
- Endif
- (cAliasSD2)->(dbskip())
- Enddo
- #IFDEF TOP
- dbSelectArea(cAliasSD2)
- dbCloseArea()
- #ELSE
- dbSelectArea(cAliasSD2)
- RetIndex (cAliasSd2)
- Ferase (cIndSd2+OrdBagExt ())
- #ENDIF
- Else
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
- //砎erifica o valor gravado diretamente no SF3 ?
- //|Apenas se existir o campo especifico (F3_CRDEST) |
- //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? dbSelectArea("SF3")
- SF3->(dbsetorder(1))
- #IFDEF TOP
- If TcSrvType()<>"AS/400"
- lQuery := .T.
- cAliasSF3 := GetNextAlias()
- If cNrLivro <> "*"
- cQuery := "% F3_NRLIVRO = " + cNrLivro + " AND %"
- Else
- cQuery := "% %"
- Endif
- cDtCanc := Space(TamSx3("F3_DTCANC")[01])
- BeginSql Alias cAliasSF3
- COLUMN F3_ENTRADA AS DATE
- SELECT SF3.F3_VALCONT,SF3.F3_BASEICM,SF3.F3_VALICM,SF3.F3_CRDEST,SF3.F3_CFO
- FROM %table:SF3% SF3
- WHERE SF3.F3_FILIAL = %xFilial:SF3% AND
- SF3.F3_ENTRADA >= %Exp:dDataIni% AND
- SF3.F3_ENTRADA <= %Exp:dDataFim% AND
- SF3.F3_DTCANC = %Exp:cDtCanc% AND
- %Exp:cQuery%
- SF3.%NotDel%
- ORDER BY %Order:SF3%
- EndSql
- dbSelectArea(cAliasSF3)
- Else
- #ENDIF
- cIndSF3 := CriaTrab(NIL,.F.)
- cChave := IndexKey()
- cFiltro := "SF3->F3_FILIAL == '" + xFilial("SF3") + "' .And. DTOS(SF3->F3_ENTRADA) >= '" + Dtos(dDataIni) + "' .AND. DTOS(SF3->F3_ENTRADA) <= '" + Dtos(dDataFim) + "'"
- cFiltro += " .And. DTOS(SF3->F3_DTCANC) == '" + Dtos(Ctod("")) + "'"
- If cNrLivro <> "*"
- cFiltro += " .And. SF3->F3_NRLIVRO == '" + cNrLivro + "'"
- endif
- IndRegua(cAliasSF3,cIndSF3,cChave,,cFiltro)
- (cAliasSF3)->(DbgoTop())
- #IFDEF TOP
- Endif
- #ENDIF
- While !(cAliasSF3)->(Eof())
- IncProc(STR0121) //"Processamento Credito Estimulo - Entradas e Saidas"
- nBaseInc := 0
- nValIcm := 0
- nPercCred := (cAliasSF3)->F3_CRDEST * 100 / (cAliasSF3)->F3_VALICM
- nNum := Ascan(aEstimulo,{|x|x[1]==nPercCred})
- If SubStr((cAliasSF3)->F3_CFO,1,1) $ "567"
- If nNum == 0
- AADD(aEstimulo,{nPercCred,0,(cAliasSF3)->F3_CRDEST,0,0,(cAliasSF3)->F3_BASEICM,(cAliasSF3)->F3_VALICM,0,0,0,0,nBaseInc,nValICM})
- Else
- aEstimulo[nNum,03] += (cAliasSF3)->F3_CRDEST
- aEstimulo[nNum,06] += (cAliasSF3)->F3_BASEICM
- aEstimulo[nNum,07] += (cAliasSF3)->F3_VALICM
- aEstimulo[nNum,09] += 0
- aEstimulo[nNum,12] += nBaseInc
- aEstimulo[nNum,13] += nValIcm
- Endif
- Else
- If nNum == 0
- AADD(aEstimulo,{nPercCred,(cAliasSF3)->F3_CRDEST,0,(cAliasSF3)->F3_BASEICM,(cAliasSF3)->F3_VALICM,0,0,0,0,nBaseInc,nValICM,0,0})
- Else
- aEstimulo[nNum,02] += (cAliasSF3)->F3_CRDEST
- aEstimulo[nNum,04] += (cAliasSF3)->F3_BASEICM
- aEstimulo[nNum,05] += (cAliasSF3)->F3_VALICM
- aEstimulo[nNum,08] += 0
- aEstimulo[nNum,10] += nBaseInc
- aEstimulo[nNum,11] += nValIcm
- Endif
- Endif
- (cAliasSF3)->(dbSkip())
- Enddo
- #IFDEF TOP
- dbSelectArea(cAliasSF3)
- dbCloseArea()
- #ELSE
- dbSelectArea(cAliasSF3)
- RetIndex(cAliasSF3)
- FErase(cIndSF3+OrdBagExt())
- #ENDIF
- Endif
- Return(.t.)
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北矲uncao 矼yEditCelST ?Autor ? Microsiga ?Data ?2.11.2007潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北矰escri噮o 矯ontrola a edicao dos campos da oGetDad5 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Function MyEditCel(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)
- Local bSave := oGloBrowse:Cargo
- If !(aCols[oGloBrowse:nAt,1]$"002#003#006#007#012" .And. (Alltrim(aCols[oGloBrowse:nAt,2])=="002.00" .Or. Alltrim(aCols[oGloBrowse:nAt,2])=="003.00" .Or. Alltrim(aCols[oGloBrowse:nAt,2])=="006.00" .Or. Alltrim(aCols[oGloBrowse:nAt,2])=="007.00" .Or. Alltrim(aCols[oGloBrowse:nAt,2])=="012.00"))
- oGloBrowse:Cargo := ""
- lEditCol( nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB )
- EndIf
- oGloBrowse:Cargo := bSave
- Return
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北矲uncao 矼yEditCelST ?Autor ? Microsiga ?Data ?2.11.2007潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北矰escri噮o 矯ontrola a edicao dos campos da oGetDad6 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Function MyEditCelST(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)
- Local bSave := oGloBrowse:Cargo
- If !(aCols[oGloBrowse:nAt,1]$"002#003#007#008#014" .And. (Alltrim(aCols[oGloBrowse:nAt,2])=="002.00" .Or. Alltrim(aCols[oGloBrowse:nAt,2])=="003.00" .Or. Alltrim(aCols[oGloBrowse:nAt,2])=="007.00" .Or. Alltrim(aCols[oGloBrowse:nAt,2])=="008.00" .Or. Alltrim(aCols[oGloBrowse:nAt,2])=="014.00"))
- oGloBrowse:Cargo := ""
- lEditCol( nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB )
- EndIf
- oGloBrowse:Cargo := bSave
- Return
- /*苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北矲un噮o 矲isApurCDH ?Autor ?Liber De Esteban ?Data ?18-12-07 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北矰escri噮o ?Grava apuracao no CDH 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北?Uso ?SIGAFIS 潮?
- 北媚哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北?ATUALIZACOES SOFRIDAS DESDE A CONSTRUCAO INICIAL. 潮?
- 北媚哪哪哪哪哪哪穆哪哪哪哪履哪哪穆哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北?PROGRAMADOR ?DATA ?BOPS ? MOTIVO DA ALTERACAO 潮?
- 北媚哪哪哪哪哪哪呐哪哪哪哪拍哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北?Murilo Alves ?1/07/08?49814?Correcao na insercao das observacoes no 潮?
- 北? ? ? ?CDH quando usar o parametro MV_USASPED. 潮?
- 北滥哪哪哪哪哪哪牧哪哪哪哪聊哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/
- Static Function FisApurCDH(nApuracao,nPeriodo,cNrLivro,dDtIni,dDtFim,lConsUF,cFilDe,cFilAte,aLancIC,aLancST,aTitCDH,aGNRE,lApurBA)
- Local cChave := STR(nApuracao,1)+STR(nPeriodo,1)+DTOS(dDtIni)+cNrLivro
- Local cSequen := "001"
- Local cMvEst := SuperGetMv('MV_ESTADO')
- Local nI := 0
- Local nCntTit := 1
- Local nCntObs := 1
- Local nCntIC := 0
- Local nCntST := 0
- Local nCntGnr := 0
- Local cTipo := "TX"+Space(TamSx3("E2_TIPO")[1]-2)
- Local cPrefixo := SuperGetMV("MV_PFAPUIC",,"ICM")
- Local cTipoIP := ""
- Local nPGNR := 0
- Local cDesc := ""
- Local lContCr := AliasIndic("CE5") .And. AliasIndic("CE6") .And. AliasIndic("CE7")
- Local aInfoFluig := {}
- Local lCompTit := .F.
- dbSelectArea("CDH")
- dbSetOrder(01)
- If dbSeek(xFilial("CDH")+"IC"+cChave)
- //dbSeek(xFilial("CDH")+"IC"+cChave+"999",.T.) // Posiciona na ultima sequencia
- //cSequen := Soma1(CDH->CDH_SEQUEN)
- While !EOF() .AND. CDH->CDH_FILIAL+CDH->CDH_TIPOIP+CDH->CDH_TIPOPR+CDH->CDH_PERIOD+DTOS(CDH->CDH_DTINI)+CDH->CDH_LIVRO == xFilial("CDH")+"IC"+cChave
- cSequen := CDH->CDH_SEQUEN
- dbSkip()
- EndDo
- cSequen := Soma1(cSequen)
- EndIf
- For nI:=1 to Len(aLancIC)
- If aLancIC[nI,Len(aLancIC[nI])] .Or. Empty(aLancIC[nI,1]) .or. aLancIC[nI,1] == "GNR" .or. aLancIC[nI,1] == "FOM" .or. (len(aTitCDH) > 0 .And. aLancIC[nI,1] == "TIT") .Or.;
- (lApurBA .And. aLancIC[nI,1]=="EXP" .Or. aLancIC[nI,1]=="OUT")
- Loop
- EndIf
- //Indica se existiu complemento do titulo na CDH
- lCompTit := .F.
- RecLock("CDH",.T.)
- CDH->CDH_FILIAL := xFilial("CDH")
- CDH->CDH_TIPOIP := "IC"
- CDH->CDH_TIPOPR := STR(nApuracao,1)
- CDH->CDH_PERIOD := STR(nPeriodo,1)
- CDH->CDH_LIVRO := cNrLivro
- CDH->CDH_SEQUEN := cSequen
- CDH->CDH_DTINI := dDtIni
- CDH->CDH_DTFIM := dDtFim
- CDH->CDH_CONSO := Iif(lConsUF,1,2)
- CDH->CDH_FILDE := cFilDe
- CDH->CDH_FILATE := cFilAte
- If aLancIC[nI,1]=="TIT" // Titulos
- //Quando o cliente nao utiliza a integracao gravo os dados do titulo
- If !lGTitFluig
- CDH->CDH_PRETIT := cPrefixo
- CDH->CDH_NUMTIT := aTitCDH[nI][2]
- CDH->CDH_PARTIT := ""
- CDH->CDH_TPTIT := cTipo
- CDH->CDH_VALOR := Iif(Valtype(aLancIC[nI][4]) == "N",aLancIC[nI][4],0)
- CDH->CDH_LINHA := "TIT"
- CDH->CDH_SUBITE := "TIT."+STRZERO(nCntTit,3)
- nCntTit++
- //Quando o cliente nao utiliza a integracao alimento a tabela espelho para
- //posterior geracao da CDH
- Else
- //Caso tenha ocorrido erro ao iniciar a tarefa
- //o retorno sera 0 e o array abaixo nao devera ser alimentado
- If aTitCDH[nI][9] > 0
- aInfoFluig := {}
- Aadd( aInfoFluig,{ 0,;
- cPrefixo,;
- aTitCDH[nI][2],;
- cTipo,;
- Iif(Valtype(aLancIC[nI][4]) == "N",aLancIC[nI][4],0),;
- "TIT",;
- "TIT."+STRZERO(nCntTit,3) } )
- lCompTit := .T.
- nCntTit++
- EndIf
- EndIf
- ElseIf aLancIC[nI,1]=="OBS" // Observacoes
- CDH->CDH_LINHA := "OBS"
- CDH->CDH_SUBITE := "OBS."+strZero(nCntObs,3)
- CDH->CDH_DESC := aLancIC[nI][3]
- nCntObs++
- ElseIf aLancIC[nI,1]=="IND"
- CDH->CDH_LINHA := "IND"
- CDH->CDH_SUBITE := "IND"
- CDH->CDH_DESC := STR0122 //"Indice de Convers鉶"
- CDH->CDH_VALOR := Val(aLancIC[nI][3])
- Else // Lancamentos Apuracao ICMS
- CDH->CDH_LINHA := aLancIC[nI][1]
- CDH->CDH_SUBITE := Alltrim(aLancIC[nI][2])
- CDH->CDH_DESC := aLancIC[nI][3]
- CDH->CDH_VALOR := Iif(Valtype(aLancIC[nI][4]) == "N",aLancIC[nI][4],0)
- CDH->CDH_GNRE := aLancIC[nI][5]
- CDH->CDH_CLVENC := aLancIC[nI][6]
- CDH->CDH_CODLAN := aLancIC[nI][7]
- If Len(aLancIC[nI]) > 8 // Maior que 8 significa que existe controle de lancto manual
- If CDH->(FieldPos("CDH_TPLANC")) > 0 .And. Len(aLancIC[nI]) > 8 .And. aLancIC[nI][1] <> "900" .And. aLancIC[nI][1] <> "901" .And. aLancIC[nI][8] == "M"
- CDH->CDH_TPLANC := aLancIC[nI][8]
- EndIf
- EndIf
- If (nPGNR:=aScan(aGnre,{|aX| AllTrim(aX[1])==AllTrim(aLancIC[nI][5]) .And. AllTrim(aX[4])==AllTrim(aLancIC[nI][6])}))>0
- CDH->CDH_ESTGNR := aGnre[nPGNR][5]
- ElseIf !Empty(aLancIC[nI][6]) .And. !Empty(aLancIC[nI][7]) .And.;
- Substr(aLancIC[nI][7],1,2) == SuperGetMv("MV_ESTADO")
- CDH->CDH_ESTGNR := SuperGetMv("MV_ESTADO")
- Else
- If !Empty(aLancIC[nI][5]) .And. !Empty(aLancIC[nI][7]) .And.;
- Substr(aLancIC[nI][7],1,2) == SuperGetMv("MV_ESTADO")
- CDH->CDH_ESTGNR := SuperGetMv("MV_ESTADO")
- EndIf
- EndIf
- EndIf
- MsUnlock()
- CDH->(FKCommit())
- //Caso tenha sido gerado o complemento do titulo na tabela CDH eu incluo o
- //Recno da CDH gerada na posicao 1 do Array
- If lCompTit
- aInfoFluig[1][1] := CDH->( Recno() )
- //Funcao para geracao da tabela espelho da CDH ( CH4 )
- FGvFluigWF( "APUR", "1", aTitCDH[nI][9], aInfoFluig )
- EndIf
- Next
- If Len(aTitCDH) > 0
- For nI := 1 to len(aTitCDH) // Titulos gerados pela apuracao
- //Caso o cliente utilize a integracao com o Fluig nao
- //gero a CDH neste momento, apenas apos a aprovacao da
- //solicitacao no Fluig
- If !lGTitFluig
- RecLock("CDH",.T.)
- CDH->CDH_FILIAL := xFilial("CDH")
- CDH->CDH_TIPOIP := aTitCDH[nI][7]
- CDH->CDH_TIPOPR := STR(nApuracao,1)
- CDH->CDH_PERIOD := STR(nPeriodo,1)
- CDH->CDH_LIVRO := cNrLivro
- CDH->CDH_SEQUEN := cSequen
- CDH->CDH_DTINI := dDtIni
- CDH->CDH_DTFIM := dDtFim
- CDH->CDH_CONSO := Iif(lConsUF,1,2)
- CDH->CDH_FILDE := cFilDe
- CDH->CDH_FILATE := cFilAte
- CDH->CDH_DESC := aTitCDH[nI][8]
- CDH->CDH_PRETIT := aTitCDH[nI][1]
- CDH->CDH_NUMTIT := aTitCDH[nI][2]
- CDH->CDH_PARTIT := aTitCDH[nI][3]
- CDH->CDH_TPTIT := aTitCDH[nI][4]
- CDH->CDH_FORTIT := aTitCDH[nI][5]
- CDH->CDH_LOJTIT := aTitCDH[nI][6]
- CDH->CDH_LINHA := "TIT"
- CDH->CDH_SUBITE := "TIT."+STRZERO(nCntTit,3)
- nCntTit++
- MsUnlock()
- CDH->(FKCommit())
- Else
- //Caso tenha ocorrido erro ao iniciar a tarefa
- //o retorno sera 0 e o array abaixo nao devera ser alimentado
- If aTitCDH[nI][9] > 0
- aInfoFluig := {}
- Aadd( aInfoFluig,{ aTitCDH[nI][7],;
- STR(nApuracao,1),;
- STR(nPeriodo,1),;
- cNrLivro,;
- cSequen,;
- dDtIni,;
- dDtFim,;
- Iif(lConsUF,1,2),;
- cFilDe,;
- cFilAte,;
- "TIT",;
- "TIT."+STRZERO(nCntTit,3),;
- aTitCDH[nI][8] } )
- nCntTit++
- //Funcao para geracao da tabela espelho da CDH ( CH4 )
- FGvFluigWF( "APUR", "2", aTitCDH[nI][9], aInfoFluig )
- EndIf
- EndIf
- Next
- EndIf
- nCntGnr := 0
- nCntIC := 0
- nCntST := 0
- cDesc := ""
- For nI := 1 to len(aGnre) // GNRE's geradas pela apuracao
- cTipoIP := Iif ( len(aGnre[nI])<6 .Or. Empty(aGnre[nI][6]),Iif(aGnre[nI][5] <> cMvEst,"ST","IC"),aGnre[nI][6])
- cDesc := STR0123
- cDesc += Iif(cTipoIP=="IC"," ICMS"," ICMS - ST")
- cDesc += Iif(AllTrim(aGnre[nI,7])=="RICDIF"," Complementar","")
- cDesc += Iif(AllTrim(aGnre[nI,7])=="RDBESP"," D閎itos Especiais","")
- cDesc += Iif(AllTrim(aGnre[nI,7])=="RDBESPST"," D閎itos Especiais ST","")
- cDesc += Iif(AllTrim(aGnre[nI,7])=="CONV139"," Conv阯io 139/06","")
- RecLock("CDH",.T.)
- If CDH->(FieldPos("CDH_GNREF3")) > 0 .And. Len(aGnre[nI])>6
- CDH_GNREF3 := aGnre[nI][7]
- EndIf
- CDH->CDH_FILIAL := xFilial("CDH")
- CDH->CDH_TIPOIP := cTipoIP
- CDH->CDH_TIPOPR := STR(nApuracao,1)
- CDH->CDH_PERIOD := STR(nPeriodo,1)
- CDH->CDH_LIVRO := cNrLivro
- CDH->CDH_SEQUEN := cSequen
- CDH->CDH_DTINI := dDtIni
- CDH->CDH_DTFIM := dDtFim
- CDH->CDH_CONSO := Iif(lConsUF,1,2)
- CDH->CDH_FILDE := cFilDe
- CDH->CDH_FILATE := cFilAte
- CDH->CDH_DESC := cDesc
- CDH->CDH_GNRE := aGnre[nI][1]
- CDH->CDH_VALOR := aGnre[nI][3]
- CDH->CDH_CLVENC := aGnre[nI][4]
- CDH->CDH_ESTGNR := aGnre[nI][5]
- CDH->CDH_LINHA := "GNR"
- If cTipoIP == "IC"
- nCntIC++
- nCntGnr := nCntIC
- Else
- nCntST++
- nCntGnr := nCntST
- EndIf
- CDH->CDH_SUBITE := "GNR."+STRZERO(nCntGnr,3)
- MsUnlock()
- CDH->(FKCommit())
- Next
- For nI:=1 to Len(aLancST)
- If aLancST[nI,Len(aLAncST[nI])] .Or. Empty(aLancST[nI,1]) .or. aLancST[nI,1] $ "IND/GNR/TIT/FOM" .Or. Substr(aLancST[nI,1],1,1) = "1"
- Loop
- EndIf
- RecLock("CDH",.T.)
- CDH->CDH_FILIAL := xFilial("CDH")
- CDH->CDH_TIPOIP := "ST"
- CDH->CDH_TIPOPR := STR(nApuracao,1)
- CDH->CDH_PERIOD := STR(nPeriodo,1)
- CDH->CDH_LIVRO := cNrLivro
- CDH->CDH_SEQUEN := cSequen
- CDH->CDH_DTINI := dDtIni
- CDH->CDH_DTFIM := dDtFim
- CDH->CDH_CONSO := Iif(lConsUF,1,2)
- CDH->CDH_FILDE := cFilDe
- CDH->CDH_FILATE := cFilAte
- CDH->CDH_LINHA := aLancST[nI][1]
- CDH->CDH_SUBITE := Alltrim(aLancST[nI][2])
- CDH->CDH_DESC := aLancST[nI][3]
- CDH->CDH_VALOR := Iif(Valtype(aLancST[nI][4]) == "N",aLancST[nI][4],0)
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //矴ravacao dos dados da GNRE caso tenha uma relacionada ao lancamento manual? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- aLancST[nI][5] := PadR(aLancST[nI][5],TamSx3("F6_NUMERO")[1])
- If !Empty(aLancST[nI][5]) .And. aScan(aGNRE,{|aX|aX[1]==aLancST[nI][5] .And. aX[5]==Left(aLancST[nI][7],2) .And. aX[6]=="ST"})>0
- CDH->CDH_ESTGNR := Left(aLancST[nI][7],2)
- CDH->CDH_GNRE := aLancST[nI][5]
- EndIf
- CDH->CDH_CLVENC := aLancST[nI][6]
- CDH->CDH_CODLAN := aLancST[nI][7]
- If Len(aLancST[nI]) > 8 // Maior que 8 significa que existe controle de lancto manual
- If CDH->(FieldPos("CDH_TPLANC")) > 0 .And. Len(aLancST[nI]) > 8 .And. aLancST[nI][1] <> "900" .And. aLancST[nI][1] <> "901" .And. aLancST[nI][8] == "M"
- CDH->CDH_TPLANC := aLancST[nI][8]
- EndIf
- EndIf
- MsUnlock()
- CDH->(FKCommit())
- Next
- If lContCr
- ContCred(aLancIC,dDtIni)
- ContCred(aLancST,dDtIni)
- Endif
- Return NIL
- /*苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪哪哪穆哪哪哪哪哪哪勘?
- 北砅rograma ? ContCred ?Autor 矻uccas Curcio ?22.08.2011 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪哪哪牧哪哪哪哪哪哪幢?
- 北矰escri噮o 砇otina autom醫ica para grava玢o do Controle de Cr閐ito 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砄bservacao矲un玢o respons醰el por enviar as informa珲es do C骴igo de 潮?
- 北? ?Lan鏰mento que ser?usado no Controle de Cr閐ito, a fim 潮?
- 北? ?de controlar os registros e utilizar no SPED Fiscal. 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砇etorno 砃il 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北砅arametros砤Lanc -> Array contendo as informa珲es do lan鏰mento na 潮?
- 北? ? apura玢o de icms. 潮?
- 北? 砫Data -> Vari醰el que cont閙 a data do processamento 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/
- Static Function ContCred(aLanc,dData)
- Local nX := 0
- Local aLancApur := {}
- For nX := 1 to Len(aLanc)
- aLancApur := {}
- If !Empty(aLanc[nX,7]) .And. !aLanc[nX,Len(aLanc[nX])]
- aLancApur := aClone(aLanc[nX])
- UFCodLan(aLancApur,dData)
- Endif
- End
- Return
- /*苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北矲un噮o 砤953CODLAN ?Autor ?Liber De Esteban ?Data ?17-12-07 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北矰escri噮o ?Valida Codigo de lancamento informado pelo usuario 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
- 北?Uso ?SIGAFIS 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/
- Function a953CODLAN(cCodTP)
- Local lRet := .T.
- Local nI := 1
- Local cReflex := aCols[n,1]
- Local cUf := GetMv("MV_ESTADO") //TODO buscar estado do acols qando cCodTp for igual a 2.
- //Ajuste para novos codigos de difal exclusivos para FECP
- IF mv_par02 >= 2017 .And. cCodTP == '2' .And. aCols[n,1] $ "014|015|018|019|021|024"
- cCodTP := '3'
- Endif
- //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
- //砆uando estiver vindo vazio, significa que estah vindo de debitos especiais e lah pode ser lancado tanto ICMS quanto ICMS ST.?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
- If Empty(cCodTP)
- If aCols[n,1]=="900"
- cCodTP := "0"
- cReflex := "5"
- ElseIf aCols[n,1]=="901"
- cCodTP := "1"
- cReflex := "5"
- EndIf
- Else
- IF cCodTP == '2'
- Do Case
- Case aCols[n,1] == "002";cReflex:="0"
- Case aCols[n,1] == "003";cReflex:="1"
- Case aCols[n,1] == "006" ;cReflex:="2"
- Case aCols[n,1] == "007" ;cReflex:="3"
- Case aCols[n,1] == "009" ;cReflex:="4"
- Case aCols[n,1] == "012" ;cReflex:="5"
- EndCase
- Elseif cCodTP == '3'
- Do Case
- Case aCols[n,1] == "014";cReflex:="0"
- Case aCols[n,1] == "015";cReflex:="1"
- Case aCols[n,1] == "018" ;cReflex:="2"
- Case aCols[n,1] == "019" ;cReflex:="3"
- Case aCols[n,1] == "021" ;cReflex:="4"
- Case aCols[n,1] == "024" ;cReflex:="5"
- EndCase
- Else
- Do Case
- Case aCols[n,1] == "002";cReflex:="0"
- Case aCols[n,1] == "003";cReflex:="1"
- Case (aCols[n,1] == "006" .And. cCodTP=="0");cReflex:="2"
- Case (aCols[n,1] == "007" .And. cCodTP=="0");cReflex:="3"
- Case (aCols[n,1] == "012" .And. cCodTP=="0");cReflex:="4"
- Case (aCols[n,1] == "007" .And. cCodTP=="1");cReflex:="2"
- Case (aCols[n,1] == "008" .And. cCodTP=="1");cReflex:="3"
- Case (aCols[n,1] == "014" .And. cCodTP=="1");cReflex:="4"
- EndCase
- EndIF
- EndIf
- If !aCols[n,Len(aCols[n])]
- If !aCols[nI,Len(aCols[nI])] .And. !Empty(cCodLan)
- CDO->(DbSetOrder(1))
- If CDO->(DbSeek(xFilial("CDO")+Alltrim(cCodLan)))
- If cCodTP <> CDO->CDO_TPAPUR .Or. !(CDO->CDO_UTILI$cReflex) .Or. ((cCodTP == "0" .And. cUf <> CDO->CDO_UF) .OR. (cCodTP $ '2/3' .AND. !'('+CDO->CDO_UF+')' $ aCols[2][3]))
- xMagHelpFis (STR0085,; //"Aten玢o"
- STR0124,; //"C骴igo de lan鏰mento inv醠ido!"
- STR0125) //"Verifique a UF, o reflexo e o tipo de apura玢o do lan鏰mento selecionado."
- lRet := .F.
- ElseIf CDO->(FieldPos("CDO_MSBLQL")) > 0
- If CDO->CDO_MSBLQL == "1"
- xMagHelpFis (STR0085,; //"Aten玢o"
- STR0274,; //"C骴igo de Lan鏰mento Bloqueado!"
- STR0275) //"Favor informar um c骴igo de lan鏰mento v醠ido."
- lRet := .F.
- EndIf
- ElseIf !Empty(CDO->CDO_DESCR) // Carrega descri玢o do lancamento
- aCols[n,3] := Substr(CDO->CDO_DESCR,1,TamSx3("CDH_DESC")[1])
- EndIf
- If len(Alltrim(cCodLan)) > 8
- lRet:= .F.
- EndIf
- Else
- lRet := .F.
- EndIf
- EndIf
- EndIf
- Return (lRet)
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北矲uncao 矼yEditCelF ?Autor ?Luciana Pires ?Data ?8.08.2008潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北矰escri噮o 矯ontrola a edicao dos campos da oGetDad8 - Fomentar 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Function MyEditCelF(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)
- Local bSave := oGloBrowse:Cargo
- If !(aCols[oGloBrowse:nAt,1]$"003#008#009#010#014#016#017#020#021#023#025#026#028#029#030#031#036#038#039#041#042#043#044#061#071#072#075#077#079#080#081#082#083#084")
- oGloBrowse:Cargo := ""
- lEditCol( nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB )
- EndIf
- oGloBrowse:Cargo := bSave
- Return
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北谀哪哪哪哪穆哪哪哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
- 北矲uncao 砎erificaGNRE ?Autor ?Murilo Alves ?Data ?7.12.2009潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
- 北矰escri噮o ?Efetua consistencia do aGNRE 潮?
- 北? | Se a mesma guia for selecionada varias vezes, 潮?
- 北? | para cada vez, e' incluido em aGnre 潮?
- 北? | Esta funcao trata o array permitindo apenas as guias 潮?
- 北? | aGnre que foram realmente selecionadas 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
- Static Function VerificaGNRE()
- Local nX := 0
- Local aGnre2 := {}
- Local aGnre3 := {}
- aGnre2 := aClone(aGnre)
- For nX := 1 to Len(aGnre2)
- aGnre2[nX][1] := Alltrim(aGnre[nX][1])
- Next
- aGnre3 := {}
- For nX := 1 to Len(aCols)
- If Ascan(aGnre2,{|x|x[1]==Alltrim(aCols[nX,5])}) > 0
- nPos = Ascan(aGnre2,{|x|x[1]==Alltrim(aCols[nX,5])}) //marca a posicao do aGNRE
- aAdd(aGnre3,aGnre[nPos])
- EndIf
- Next
- Return aGNRE3
- /*/
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北
- 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪目北
- 北矲uncao 砅rocRICMDF ?Autor Erick Gon鏰lves Dias ?Data ?1/10/2010 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪拇北
- 北矰esc. 矯alculo do estorno RICMS-DF 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪拇北
- 北砇etorno 矱storno no per韔do 潮?
- 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪拇北
- 北砅arametros?Data inicial do per韔do e data final do per韔do 潮?
- 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁北
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌
- /*/
- Static Function ProcRICMDF(dDataIni,dDataFim)
- Local aArea := GetArea()
- Local cFiltro := ""
- Local nValEst :=0 //Valor do estorno
- Local nX := 0
- Local cAliasSD2 := "SD2"
- Local lQuery := .F.
- Local cChaveSD2 := ''
- dbSelectArea("SD2")
- SD2->(dbsetorder(1))
- #IFDEF TOP
- If TcSrvType()<>"AS/400"
- lQuery := .T.
- cAliasSD2 := GetNextAlias()
- cQuery := "SELECT DISTINCT D2_DOC, D2_SERIE, D2_CLIENTE, D2_LOJA "
- cQuery += "FROM " + RetSqlName("SD2")+" SD2, " + RetSqlName("SD5")+ " SD5 "
- cQuery += "WHERE SD2.D2_FILIAL = '" + xFilial("SD2") + "' AND "
- cQuery += "SD2.D2_EMISSAO >= '" + Dtos(dDataIni) + "' AND "
- cQuery += "SD2.D2_EMISSAO <= '" + Dtos(dDataFim) + "' AND "
- cQuery += "SD2.D2_TIPO <> 'D' AND " //N鉶 ir?condirerar as notas de devolu珲es
- cQuery += "SD2.D_E_L_E_T_ = ' ' "
- cQuery += "AND SD2.D2_COD = SD5.D5_PRODUTO "
- cQuery += "AND SD2.D2_COD=SD5.D5_PRODUTO "
- cQuery += "AND SD2.D2_LOCAL=SD5.D5_LOCAL AND SD2.D2_LOTECTL=SD5.D5_LOTECTL "
- cQuery += "AND SD2.D2_NUMLOTE=SD5.D5_NUMLOTE "
- cQuery += "AND SD5.D5_FILIAL='" +xFilial("SD5")+"'"
- cQuery += "AND SD5.D5_ORIGLAN<'501' "
- cQuery += "AND SD5.D5_ESTORNO<>'S' "
- cQuery := ChangeQuery(cQuery)
- dbUseArea(.T.,"TOPCONN",TcGenQry(,,cQuery),cAliasSD2,.T.,.T.)
- Else
- #ENDIF
- cIndex := CriaTrab(NIL,.F.)
- cFiltro := "SD2->D2_FILIAL == '" + xFilial("SD2") + "' .And. DTOS(SD2->D2_EMISSAO) >= '" + Dtos(dDataIni) + "' .AND. DTOS(SD2->D2_EMISSAO) <= '" + Dtos(dDataFim) + "' .AND. D2_TIPO <> 'D' "
- IndRegua(cAliasSD2,cIndex,SD2->(IndexKey()),,cFiltro)
- dbSelectArea(cAliasSD2)
- dbGoTop()
- #IFDEF TOP
- Endif
- #ENDIF
- While !(cAliasSD2)->(Eof())
- If cChaveSD2 <> ( cAliasSD2 )->( D2_DOC + D2_SERIE + D2_CLIENTE + D2_LOJA )
- cChaveSD2 := ( cAliasSD2 )->( D2_DOC + D2_SERIE + D2_CLIENTE + D2_LOJA )
- //aLote ter?as notas de sa韉as com suas notas de entradas
- aLote:=RastroNFOr((cAliasSD2)->D2_DOC,(cAliasSD2)->D2_SERIE,(cAliasSD2)->D2_CLIENTE,(cAliasSD2)->D2_LOJA)
- If Len(aLote) > 0
- For nX := 1 to Len(aLote)
- dbSelectArea("SF4")
- SF4->(dbSetOrder(1))
- //Verifica se na TES existe redu玢o de base de ICMS e se o CFOP ?de sa韉a interna.
- If SF4->(dbSeek(xFilial("SD2")+aLote[nX][30])) .AND. Substr(aLote[nX][34],1,1) == "5"
- If SF4->F4_BASEICM >0
- //Calcula estorno de cr閐ito
- //((BASE DE ICMS DE ENTRADA / QUANTIDADE DE ENTRADA ) * AL蚎UOTA DE ICMS DE ENTRADA) * QUANTIDADE DA NOTA DE SA虳A / 100 * REDUCAO DE SA虳A
- nValEst+= round(((aLote[nX][12] /aLote[nX][6] ) * aLote[nX][14] /100) * aLote[nX][4] /100 * SF4->F4_BASEICM ,2)
- EndIf
- EndIf
- Next nY
- EndIf
- EndIf
- (cAliasSD2)->(dbSkip())
- EndDo
- #IFDEF TOP
- dbSelectArea(cAliasSD2)
- dbCloseArea()
- #ELSE
- dbSelectArea(cAliasSD2)
- RetIndex(cAliasSD2)
- Ferase(cIndex+OrdBagExt())
- #ENDIF
- RestArea(aArea)
- Return (nValEst)
- /*
- 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
- 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
- 北赏屯屯屯屯脱屯屯屯屯屯送屯屯屯淹屯屯屯屯屯屯屯屯屯退屯屯屯淹屯屯屯屯屯屯槐?
- 北篜rograma 矼953CRDM 篈utor 矯aio Oliveira ?Data ? 12/29/10 罕?
- 北掏屯屯屯屯拓屯屯屯屯屯释屯屯屯贤屯屯屯屯屯屯屯屯屯褪屯屯屯贤屯屯屯屯屯屯贡?
- 北篋esc. ? Funcao que verifica de todos parametros iniciados 罕?
- 北? ? por MV_CRDM na tabela SX6, Montando um Array contendo: 罕?
- 北? ? { NCM , TIPO DO CLIENTE, % CR蒁ITO, COD NA APURA敲O } 罕?
- 北掏屯屯屯屯拓屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯贡?
- 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?*/
- Function M953CRDM()
- Local nInd := 0
- Local cChave := ""
- Local lLoop := .F.
- Local cVar := ""
- Local cLetra := ""
- Local aRegra := {}
- Local nNcm := 0
- Local nTipo := 0
- Local nVal := 0
- Local cNcm := ""
- Local cTipo := ""
- Local cVal := ""
- Local nX := 1
- DbSelectArea ("SX6")
- SX6->(DbSetOrder (1))
- SX6->( DbGoTop() )
- If SX6->(DbSeek (FWGETCODFILIAL+"MV_CRDM001"))
- cChave := FWGETCODFILIAL //{||cChave1==SX6->X6_FIL .And. "MV_CRDM"$SX6->X6_VAR}
- lLoop := .T.
- ElseIf SX6->(DbSeek (Space(FWGETTAMFILIAL)+"MV_CRDM001"))
- cChave := Space(FWGETTAMFILIAL) // {||cChave2==SX6->X6_FIL .And. "MV_CRDM"$SX6->X6_VAR}
- lLoop := .T.
- ElseIf SX6->(DbSeek (Space(2)+"MV_CRDM001"))
- cChave := Space(2) //{||cChave3==SX6->X6_FIL .And. "MV_CRDM"$SX6->X6_VAR}
- lLoop := .T.
- EndIf
- If lLoop
- Do While !SX6->(Eof ()) .And. cChave==SX6->X6_FIL .And. ("MV_CRDM"+StrZero(nX,3))$SX6->X6_VAR
- nX++
- cVar := AllTrim (SX6->X6_CONTEUD)
- For nInd := 1 To Len (cVar)
- cLetra := SubStr (cVar, nInd, 1)
- If (";"$cLetra)
- If Len(cNcm)>0 .And. Len(cTipo)>0 .And. Len(cVal)>0
- aAdd (aRegra, {cNcm, cTipo, Val(cVal)} )
- EndIf
- cNcm := cTipo := cVal := ""
- nNcm := nTipo := nVal := 0
- ElseIf ("="$cLetra)
- Loop
- Else
- If nNcm<8
- cNcm += cLetra
- nNcm++
- ElseIf nTipo<1
- cTipo := cLetra
- nTipo++
- ElseIf nVal<5
- cVal += cLetra
- nVal++
- EndIf
- EndIf
- Next (nInd)
- If Len(cNcm)>0 .And. Len(cTipo)>0 .And. Len(cVal)>0
- aAdd (aRegra, {cNcm, cTipo, Val(cVal)} )
- cNcm := cTipo := cVal := ""
- nNcm := nTipo := nVal := 0
- EndIf
- SX6->(DbSkip ())
- EndDo
- EndIf
- Return aRegra
- //-------------------------------------------------------------------
- /*/{Protheus.doc} RetPictVal
- Retorna picture a ser utilizada nos campos de valores
- @param Nil
- @return cRet - Picture do campo
- @author Microsiga
- @since 30.10.2012
- @version 1.0
- /*/
- //-------------------------------------------------------------------
- Static Function RetPictVal()
- Local cRet := ""
- Local aAreaSx3 := SX3->(GetArea())
- SX3->(DbSetOrder(2))
- SX3->(DbSeek("CDH_VALOR"))
- cRet := Alltrim(SX3->X3_PICTURE)
- If Empty(cRet)
- cRet := "@E 999,999,999,999.99"
- Endif
- SX3->(DbSetOrder(1))
- RestArea(aAreaSX3)
- Return cRet
- //-----------------------------------------------------------------------
- /*/{Protheus.doc} UFxNameFcp
- Retorna mensagem de observacao referente ao FECP
- @param cUF - Estado a ser verificado
- @author Luccas Curcio
- @since 11/02/2014
- @version 1.00
- @Return cRet - Nomenclatura do FCP para a UF
- /*/
- //-----------------------------------------------------------------------
- Function UFxNameFcp( cUF )
- Local cRet := ""
- //FECP -> Rio de Janeiro; Bahia; Minas Gerais; Mato Grosso; Espirito Santo
- If cUF $ "RJ|BA|MG|MT|ES"
- cRet := "FECP"
- //FECOEP -> Alagoas
- Elseif cUF $ "AL"
- cRet := "FECOEP"
- //FUMACOP -> Maranhao
- Elseif cUF $ "MA"
- cRet := "FUMACOP"
- //FECOP -> Rio Grande do Norte; Ceara
- Elseif cUF $ "RN|CE"
- cRet := "FECOP"
- //FUNPOBREZA -> Sergipe
- ElseIF cUF $ "SE"
- cRet := "FUNPOBREZA"
- //FUNCEP -> Paraiba
- ElseIF cUF $ "PB"
- cRet := "FUNCEP"
- //FECEP -> Pernambuco
- ElseIF cUF $ "PE"
- cRet := "FECEP"
- Endif
- Return cRet
- //-----------------------------------------------------------------------
- /*/{Protheus.doc} FGerTit
- Funcao para realizar a chamada da GravaTit e retornar o numero da solicitacao
- que foi aberta no Fluig
- @Param
- ( Parametros da Funcao GravaTit )
- @Return
- nNumSolFlg - Numero da Solicitacao criada no Fluig
- @author Rodrigo Aguilar
- @since 29/04/2014
- @version 1.00
- /*/
- //-----------------------------------------------------------------------
- Static Function FGerTit( lTitulo,;
- nVlrTitulo,;
- cImposto,;
- cImp,;
- cLcPadTit,; //5
- dDtIni,;
- dDtFim,;
- dDtVenc,;
- nMoedTit,;
- lGuiaRec,; //10
- nMes,;
- nAno,;
- nTitICMS,;
- nTitST,;
- cOrigem,;//15
- lContab,;
- cNumero,;
- aGnre,;
- cClasse,;
- aGNREST,; //20
- cUF,;
- cCodRetIPI,;
- lFECP,;
- lDifAlq,;
- cNumGnre,;//25
- aRecTit,;
- lConfTit,;
- nTitFun,;
- aDadSf2,;
- lArt65,; //30
- cOriGNRE,;
- aApIncent,;
- cCodGnre,;
- nGuiaSN,;
- nConv139,;//35
- lGTitFluig,;
- cNrLivro,;
- nApuracao,;
- nPeriodo,;
- nNumSolFlg,;//40
- cForIss,;
- cLojISS,;
- lDifal,;
- lAntParcBA,;
- cNumConv,;
- lAutomato ,aRetAuto,cCodMunRec )
- //Carrego as variaveis configuradas por parametro, preciso delas para verificar se
- //ja existe pocesso em aberto no Fluig para o mesmo periodo
- Local cNrLivro := mv_par03
- Local nApuracao := mv_par04
- Local nPeriodo := mv_par05
- Local nNumSolFlg := 0
- Default lContab := .F.
- Default cClasse := Space( 06 )
- Default aGNREST := {}
- Default cUF := GetNewPar("MV_ESTADO")
- Default cCodRetIPI := ""
- Default lFECP := .F.
- Default lDifAlq := .F.
- Default cNumGnre := Space( TamSx3( "F6_NUMERO" ) [1] )
- Default aRecTit := {}
- Default lConfTit := .F.
- Default nTitFun := 0
- Default aDadSf2 := {}
- Default lArt65 := .F.
- Default cOriGNRE := "RECSALDO"
- Default aApIncent := {}
- Default cCodGnre := ""
- Default nGuiaSN := 0
- Default nConv139 := 0
- Default lGTitFluig := .F.
- Default cNrLivro := ""
- Default nApuracao := 0
- Default nPeriodo := 0
- Default nNumSolFlg := 0
- Default cForIss := ""
- Default cLojISS := ""
- Default lDifal := .F.
- Default lAutomato := .F.
- Default aRetAuto := {}
- Default cCodMunRec := ""
- //Chamada da Funcao GravaTit
- GravaTit( lTitulo,;
- nVlrTitulo,;
- cImposto,;
- cImp,;
- cLcPadTit,;
- dDtIni,;
- dDtFim,;
- dDtVenc,;
- nMoedTit,;
- lGuiaRec,;
- nMes,;
- nAno,;
- nTitICMS,;
- nTitST,;
- cOrigem,;
- lContab,;
- @cNumero,;
- @aGnre,;
- cClasse,;
- @aGNREST,;
- cUF,;
- cCodRetIPI,;
- lFECP,;
- lDifAlq,;
- cNumGnre,;
- @aRecTit,;
- @lConfTit,;
- nTitFun,;
- aDadSf2,;
- lArt65,;
- cOriGNRE,;
- aApIncent,;
- cCodGnre,;
- nGuiaSN,;
- nConv139,; //35
- lGTitFluig,;
- cNrLivro,;
- nApuracao,;
- nPeriodo,;
- @nNumSolFlg,;
- ,;
- ,;
- lDifal,,,lAutomato,aRetAuto, ) //48
- Return ( nNumSolFlg )
- //-------------------------------------------------------------------
- /*/{Protheus.doc} ModelDef
- Model utilizado para o WorkFLow de aprovacao de titulos gerados
- pela rotina de apuracao de ICMS ( Integracao Protheus x Fluig )
- @Return
- oModel - Modelo da solicitacao
- @author Rodrigo Aguilar
- @since 24/04/2014
- @version 1.0
- /*/
- //-------------------------------------------------------------------
- Static Function ModelDef()
- Local oStruCH3 := FWFormStruct( 1, 'CH3' )
- Local oStruCH4 := FWFormStruct( 1, 'CH4' )
- Local oModel := MpFormModel():New( 'MATA953',,,{ |oModel| SaveModel( oModel ) } )
- oModel:AddFields( 'MODEL_CH3', /*cOwner*/, oStruCH3 )
- oModel:AddFields( 'MODEL_CH4', 'MODEL_CH3', oStruCH4 )
- Return ( oModel )
- //-------------------------------------------------------------------
- /*/{Protheus.doc} ViewDef
- View utilizada para o WorkFLow de aprovacao de titulos gerados
- pela rotina de apuracao de ICMS ( Integracao Protheus x Fluig )
- @Return
- oView - View da solicitacao
- @author Rodrigo Aguilar
- @since 24/04/2014
- @version 1.0
- /*/
- //-------------------------------------------------------------------
- Static Function ViewDef()
- Local cGrupoCH3_1, cGrupoCH3_2, cGrupoCH4_1 := ""
- Local oModel := FWLoadModel( 'MATA953' )
- Local oView := FWFormView():New()
- Local oStruCH3_1, oStruCH3_2, oStruCH4_1
- //Grupo de Campos que serao apenas visuais no formulario do Fluig
- cGrupoCH3_1 := "CH3_FILSE2|CH3_PREFIX|CH3_NUM|CH3_VALOR|CH3_HISTOR|CH3_EMISSA|CH3_VENCTO|CH3_RESPON|"
- oStruCH3_1 := FwFormStruct( 2, "CH3", {|x| AllTrim( x ) + "|" $ cGrupoCH3_1 } )
- //Grupo de Campos que serao editaveis no formulario do Fluig
- cGrupoCH3_2 := "CH3_APRTIT|CH3_OBSERV|"
- oStruCH3_2 := FwFormStruct( 2, "CH3", {|x| AllTrim( x ) + "|" $ cGrupoCH3_2 } )
- //Grupo de Campos que serao ocultos no formulario, apenas incluo-os para salvar a
- //informacao da filial da tabela CH4
- cGrupoCH4_1 := "CH4_FILCDH|"
- oStruCH4_1 := FwFormStruct( 2, "CH4", {|x| AllTrim( x ) + "|" $ cGrupoCH4_1 } )
- oView:SetModel( oModel )
- oView:AddField( 'VIEW_CH3_1', oStruCH3_1, 'MODEL_CH3' )
- oView:AddField( 'VIEW_CH3_2', oStruCH3_2, 'MODEL_CH3' )
- oView:AddField( 'VIEW_CH4_1', oStruCH4_1, 'MODEL_CH4' )
- oView:EnableTitleView( 'VIEW_CH3_1', "Dados do T韙ulo:" )
- oView:EnableTitleView( 'VIEW_CH3_2', "Dados da Aprova玢o:" )
- oView:CreateHorizontalBox( 'FIELDSCH3_1', 60 )
- oView:SetOwnerView( 'VIEW_CH3_1', 'FIELDSCH3_1' )
- oView:CreateHorizontalBox( 'FIELDSCH3_2', 20 )
- oView:SetOwnerView( 'VIEW_CH3_2', 'FIELDSCH3_2' )
- oView:CreateHorizontalBox( 'FIELDSCH4_1', 20 )
- oView:SetOwnerView( 'VIEW_CH4_1', 'FIELDSCH4_1' )
- Return ( oView )
- //-------------------------------------------------------------------
- /*/{Protheus.doc} SaveModel
- Funcao para gravacao do retorno da aprovacao do titulo no Fluig
- @Return
- lRet - Indica se as tabelas foram gravadas corretamente
- @author Rodrigo Aguilar
- @since 24/04/2014
- @version 1.0
- /*/
- //-------------------------------------------------------------------
- Static Function SaveModel( oModel )
- Local cNumProces := ""
- Local cAprvTit := ""
- Local cObserv := ""
- Local cFilCH3, cFilCH4 := ""
- Local lRet := .T.
- Local cLcPadTit := Substr( SuperGetMv( "MV_LPADICM" ), 1, 3 )
- //Busco a informacao do numero da solicitacao para veificar se a mesma
- //existe na base de dados
- cNumProces := Alltrim( oModel:GetWKNumProces() )
- //Busca as filiais da tabela espelho
- cFilCH3 := oModel:GetValue( 'MODEL_CH3' , 'CH3_FILSE2' )
- cFilCH4 := oModel:GetValue( 'MODEL_CH4' , 'CH4_FILCDH' )
- //Busca as informacoes a serem gravadas na tabela CH3
- cAprvTit := oModel:GetValue( 'MODEL_CH3' , 'CH3_APRTIT' )
- cObserv := oModel:GetValue( 'MODEL_CH3' , 'CH3_OBSERV' )
- //Posiciono no Titulo da tabela CH3 para geracao na SE2
- DbSelectArea( "CH3" )
- CH3->( DbSetOrder(1) )
- If CH3->( MsSeek( cFilCH3 + cNumProces ) )
- Begin Transaction
- //Gravo os dados de retorno na tabela CH3
- RecLock( "CH3", .F. )
- CH3->CH3_APRTIT := cAprvTit
- CH3->CH3_OBSERV := cObserv
- CH3->( MsUnlock() )
- //Verifico se o usuario aprovou a geracao do titulo pelo Fluig
- If cAprvTit == "1" //Aprovado
- //Posiciono no processo da tabela CH3 para geracao na SE2
- RecLock( "SE2", .T. )
- SE2->E2_FILIAL := CH3->CH3_FILIAL
- SE2->E2_NUM := CH3->CH3_NUM
- SE2->E2_PREFIXO := CH3->CH3_PREFIX
- SE2->E2_TIPO := CH3->CH3_TIPO
- SE2->E2_NATUREZ := CH3->CH3_NATURE
- SE2->E2_FORNECE := CH3->CH3_FORNEC
- SE2->E2_LOJA := CH3->CH3_LOJA
- SE2->E2_NOMFOR := CH3->CH3_NOMFOR
- SE2->E2_MOEDA := CH3->CH3_MOEDA
- SE2->E2_VALOR := CH3->CH3_VALOR
- SE2->E2_SALDO := CH3->CH3_VALOR
- SE2->E2_VLCRUZ := CH3->CH3_VALOR
- SE2->E2_HIST := CH3->CH3_HISTOR
- SE2->E2_LA := CH3->CH3_IDLANC
- SE2->E2_EMISSAO := CH3->CH3_EMISSA
- SE2->E2_VENCTO := CH3->CH3_VENCTO
- SE2->E2_VENCREA := DataValida( CH3->CH3_VENCTO, .T. )
- SE2->E2_VENCORI := CH3->CH3_VENCTO
- SE2->E2_EMIS1 := CH3->CH3_EMISSA
- SE2->E2_ORIGEM := CH3->CH3_ORIGEM
- SE2->E2_FILORIG := CH3->CH3_FILORI
- SE2->E2_CODRET := CH3->CH3_CODRET
- SE2->( MsUnlock() )
- //Efetua Lancamento Contabil ( Na gravatit este item nao eh executado pois o
- //titulo nao foi gerado, sendo assim realizo a execucao neste ponto ).
- If CH3->CH3_LANCON == "1"
- LancCont( cLcPadTit, "MATA953", .T. )
- Endif
- //Verifico se existe informacao na tabela CH4 referente a complemento da CDH
- //com o numero do titulo, no mometo de geracao deste registro as informacoes abaixo
- //nao foram geradas devido a nao existencia do Titulo, neste momento realizo o complemento
- //da CDH com as informacoes
- If CH4->( MsSeek( cFilCH4 + Padr( cNumProces, TamSx3("CH4_PROCES")[1] ) + "1" ) )
- If CDH->( DbGoto( CH4->CH4_RECAPU ) )
- Reclock( "CDH", .F. )
- CDH->CDH_PRETIT := CH4->CH4_PREFIX
- CDH->CDH_NUMTIT := CH4->CH4_NUM
- CDH->CDH_PARTIT := ""
- CDH->CDH_TPTIT := CH4->CH4_TIPO
- CDH->CDH_VALOR := CH4->CH4_VALOR
- CDH->CDH_LINHA := CH4->CH4_LINHA
- CDH->CDH_SUBITE := CH4->CH4_SUBLIN
- CDH->( MsUnlock() )
- //Caso nao encontre o registro na tabela ( situacao que NUNCA devera acontecer )
- //Retorno .F. para o Fluig nao encerrar a solicitacao
- Else
- oModel:SetErrorMessage (,,,,,STR0268,STR0269) //"Ocorreu um erro ao gravar as informa珲es no Protheus."#"Contate o administrador do sistema."
- DisarmTransaction()
- lRet := .F.
- EndIf
- EndIf
- //Realizo a inclusao dos registros referentes ao titulo que nao foram
- //gerados na CDH
- If CH4->( MsSeek( cFilCH4 + Padr( cNumProces, TamSx3("CH4_PROCES")[1] ) ) )
- RecLock( "CDH", .T. )
- CDH->CDH_FILIAL := CH4->CH4_FILCDH
- CDH->CDH_TIPOIP := CH4->CH4_TIPOIP
- CDH->CDH_TIPOPR := CH4->CH4_TIPOPR
- CDH->CDH_PERIOD := CH4->CH4_PERIOD
- CDH->CDH_LIVRO := CH4->CH4_LIVRO
- CDH->CDH_SEQUEN := CH4->CH4_SEQUEN
- CDH->CDH_DTINI := CH4->CH4_DTINI
- CDH->CDH_DTFIM := CH4->CH4_DTFIN
- CDH->CDH_CONSO := CH4->CH4_CONSO
- CDH->CDH_FILDE := CH4->CH4_FILDE
- CDH->CDH_FILATE := CH4->CH4_FILATE
- CDH->CDH_DESC := CH4->CH4_DESC
- CDH->CDH_PRETIT := CH3->CH3_PREFIX
- CDH->CDH_NUMTIT := CH3->CH3_NUM
- CDH->CDH_PARTIT := ""
- CDH->CDH_TPTIT := CH3->CH3_TIPO
- CDH->CDH_FORTIT := CH3->CH3_FORNEC
- CDH->CDH_LOJTIT := CH3->CH3_LOJA
- CDH->CDH_LINHA := CH4->CH4_LINHA
- CDH->CDH_SUBITE := CH4->CH4_SUBLIN
- CDH->( MsUnlock() )
- //Caso nao encontre o registro na tabela ( situacao que NUNCA devera acontecer )
- //Retorno .F. para o Fluig nao encerrar a solicitacao
- Else
- oModel:SetErrorMessage (,,,,,STR0268,STR0269) //"Ocorreu um erro ao gravar as informa珲es no Protheus."#"Contate o administrador do sistema."
- DisarmTransaction()
- lRet := .F.
- EndIf
- EndIf
- End Transaction
- //Caso nao encontre o registro na tabela ( situacao que NUNCA devera acontecer )
- //Retorno .F. para o Fluig nao encerrar a solicitacao
- Else
- oModel:SetErrorMessage (,,,,,STR0268,STR0269) //"Ocorreu um erro ao gravar as informa珲es no Protheus."#"Contate o administrador do sistema."
- lRet := .F.
- EndIf
- Return ( lRet )
- function a953VldDif()
- Return .T.
- //-------------------------------------------------------------------
- /*/{Protheus.doc} DuploClick
- Fun玢o executada ao efetuar duplo clique nas linhas da apura玢o do DIFAL
- @author Erick G Dias
- @since 20/01/2016
- @version 1.0
- /*/
- //-------------------------------------------------------------------
- Static Function DuploClick(oGetDad12,oGetDad13,oDlg,aApurDifal,dDtIni)
- Local nPos := 0
- Local nPosDifal := 0
- lOCAL nApurDifal := 0
- Local aSubItem := {}
- Local nA := 0
- Local nValor := 0
- lGerDifal := !lGerDifal
- IF lGerDifal .AND. "VOLTAR" $aCols13[oGetDad13:oBrowse:nAt][3]
- If Year(dDtIni) < 2017
- aSubItem := {'010.00','011.00','016.00','017.00','012.00'}
- Else
- aSubItem := {'010.00','011.00','022.00','023.00','012.00'}
- Endif
- //Atualizar apura玢o consolidada no aCols12
- nPos := aScan(aApurDifal,{|x|x[1] == SubStr(aCols12[oGetDad12:oBrowse:nAt][2],1,2)} )
- nApurDifal := aScan(aCOLS12,{|x|SubStr(x[2],1,2) == SubStr(aCols12[oGetDad12:oBrowse:nAt][2],1,2)} )
- For nA:=1 to Len(aSubItem)
- nValor += aApurDifal[nPos][2][aScan(aApurDifal[nPos][2],{|x|x[2]==aSubItem[nA]})][4]
- Next
- If nApurDifal > 0 .AND. lProcDifal .AND. nValor >= 0
- For nA:=1 to Len(aSubItem)
- aCOLS12[nApurDifal,nA+2] := aApurDifal[nPos][2][aScan(aApurDifal[nPos][2],{|x|x[2]==aSubItem[nA]})][4]
- Next
- EndIF
- //Soma debito Especial FECP
- If Year(dDtIni) >= 2017
- aCOLS12[nApurDifal,07] += aApurDifal[nPos ][2][aScan(aApurDifal[nPos][2],{|x|x[2] == '024.00'} )][4]
- Endif
- oGetDad12:oBrowse:lDisablePaint := .F.
- oGetDad13:Hide()
- oGetDad12:Show()
- aCols := aCols12
- aHeader := aHeader12
- oGetDad13:Refresh(.T.)
- oGetDad13:oBrowse:Refresh(.T.)
- oGetDad12:Refresh(.T.)
- oGetDad12:oBrowse:Refresh(.T.)
- //Eval(oGetDad12:obrowse:bDrawSelect)
- oDlg:Refresh()
- //oGetDad12:oBrowse:lDisablePaint := .T.
- ElseIf !lGerDifal .AND. len(Alltrim(aCols12[oGetDad12:oBrowse:nAt][2])) > 0
- aCOLS13 := {}
- nPos := aScan(aApurDifal,{|x|x[1] == SubStr(aCols12[oGetDad12:oBrowse:nAt][2],1,2)} )
- aCOLS13 :=aApurDifal[nPos][2]
- oGetDad13:oBrowse:lDisablePaint := .F.
- oGetDad12:Hide()
- oGetDad13:Show()
- aCols := aCols13
- aHeader := aHeader13
- oGetDad12:Refresh(.T.)
- oGetDad12:oBrowse:Refresh(.T.)
- oGetDad13:Refresh(.T.)
- oGetDad13:oBrowse:Refresh(.T.)
- //oGetDad13:oBrowse:lDisablePaint := .T.
- oDlg:Refresh()
- Eval(oGetDad13:obrowse:bDrawSelect)
- Else
- lGerDifal := !lGerDifal
- EndIF
- Return
- Static Function AtuaDifal()
- Return
- //-------------------------------------------------------------------
- /*/{Protheus.doc} LoadDifal
- Fun玢o que adiciona a linha no array da apura玢o do DIFAL
- @author Erick G Dias
- @since 20/01/2016
- @version 1.0
- /*/
- //-------------------------------------------------------------------
- Static Function LoadDifal(aArray, cLinha, cSubLinha, cDescr, nValor)
- Local nPos := 0
- Default cLinha := ''
- Default cSubLinha := ''
- Default cDescr := ''
- Default nValor := 0
- AADD(aArray,Array(08))
- nPos := Len(aArray)
- aArray[nPos,01] := cLinha
- aArray[nPos,02] := cSubLinha
- aArray[nPos,03] := cDescr
- aArray[nPos,04] := nValor
- aArray[nPos,05] := ""
- aArray[nPos,06] := ""
- aArray[nPos,07] := ''
- aArray[nPos,08] := .F.
- Return
- //-------------------------------------------------------------------
- /*/{Protheus.doc} ApurDifal
- Fun玢o que monta as linhas da tela de apura玢o do Difal
- @author Erick G Dias
- @since 20/01/2016
- @version 1.0
- /*/
- //-------------------------------------------------------------------
- Static Function ApurDifal(cUf, cDescrUf, aDifal,aCdaDIFAL,cNrLivro,dDtIni,lAutomato,cTestCase)
- Local aDifTemp := {}
- Local nDebDif := 0
- Local nOutDeb := 0
- Local nEstCrd := 0
- Local nSldAntDif := 0
- Local nCrdDif := 0
- Local nOutCrd := 0
- Local nEstDeb := 0
- Local nSldDev := 0
- Local nDedDif := 0
- Local nVlRecDif := 0
- Local nSldCrdDif := 0
- Local nDebEsp := 0
- Local nDebFcp := 0
- Local nSldAntFcp := 0
- Local nCrdFcp := 0
- Local nVlRecFcp := 0
- Local nSldCrdFcp := 0
- Local nTotDebDif := 0
- Local nTotCrdDif := 0
- local nPosDifal := 0
- Local nX := 0
- Local nPos := 0
- Local nPosl := 0
- Local nPosPad := 0
- Local cMV_SubTr := IIf(FindFunction("GETSUBTRIB"), GetSubTrib("",.T.), SuperGetMv("MV_SUBTRIB"))
- //Apura玢o FECP
- Local nTotDebFCP := 0
- Local nDebDifF := 0
- Local nOutDebF := 0
- Local nEstCrdF := 0
- Local nTotCrdFCP := 0
- Local nOutCrdF := 0
- Local nEstDebF := 0
- Local nSldDevF := 0
- Local nDedDifF := 0
- Local nDebEspF := 0
- Local lAno2017 := Year(dDtIni) >= 2017
- Default aCdaDIFAL := {}
- Default lAutomato := .F.
- Default cTestCase := "MATA953TestSuite"
- If lAutomato
- If FindFunction("GetParAuto")
- aRetAuto := GetParAuto(cTestCase)
- EndIf
- EndIf
- nPosDifal := aScan(aDifal,{|x|x[1] == cUf} )
- if nPosDifal > 0
- nDebDif := aDifal[nPosDifal][2]
- nCrdDif := aDifal[nPosDifal][4]
- nDebFcp := aDifal[nPosDifal][3]
- nCrdFcp := aDifal[nPosDifal][5]
- EndIF
- //Busca saldo credor do Difal e do FECP de per韔do anterior
- IF lProcDifal .AND. F0I->(DbSeek (xFilial ("F0I")+dTos(firstday(firstday(dDtIni)-1))+cUf+cNrLivro))
- nSldAntDif := F0I->F0I_SPDIF
- nSldAntFcp := F0I->F0I_SPFCP
- EndIF
- LoadDifal(@aDifTemp, '', '', '', '')
- LoadDifal(@aDifTemp,'', '',' Apura玢o DO Difal DETALHADA - ' + cDescrUf + ' ('+ cUf + ')' ,'')
- LoadDifal(@aDifTemp, '', '', '', '')
- LoadDifal(@aDifTemp, '','',' VALORES DO DIFAL ', '')
- LoadDifal(@aDifTemp, '', '', '', '')
- LoadDifal(@aDifTemp, '001','001.00', 'D閎itos de DIFAL nas Sa韉as', nDebDif) //FISXAPUR
- LoadDifal(@aDifTemp, '002','002.00', 'TOTAL DE Outros d閎itos de DIFAL', nOutDeb) //CDA/MANUAL
- LoadDifal(@aDifTemp, '003','003.00', 'TOTAL D Estorno de cr閐itos de DIFAL', nEstCrd) //CDA/MANUAL
- LoadDifal(@aDifTemp, '', '', '', '')
- LoadDifal(@aDifTemp, '004','004.00', 'Saldo Credor do Per韔do Anterior de DIFAL', nSldAntDif) //TABELA per韔do anterior
- LoadDifal(@aDifTemp, '005','005.00', 'Cr閐itos do DIFAL', nCrdDif) //FISXAPUR
- LoadDifal(@aDifTemp, '006','006.00', 'TOTAL DE Outros Cr閐itos DIFAL', nOutCrd) //CDA/MANUAL
- LoadDifal(@aDifTemp, '007','007.00', 'TOTAL DE Estornos de D閎itos DIFAL', nEstDeb) //CDA/MANUAL
- LoadDifal(@aDifTemp, '', '', '', '')
- LoadDifal(@aDifTemp, '008','008.00', 'Saldo Devedor do DIFAL (d閎ito menos credito)', nSldDev) //CONTA
- LoadDifal(@aDifTemp, '009','009.00', 'TOTAL DE Dedu珲es do DIFAL', nDedDif) //CDA/MANUAL
- LoadDifal(@aDifTemp, '010','010.00', 'Valor a recolher - DIFAL', nVlRecDif) //CONTA
- LoadDifal(@aDifTemp, '', '', '', '')
- LoadDifal(@aDifTemp, '011','011.00', 'Saldo Credito do DIFAL (cr閐ito menos d閎ito)',nSldCrdDif) //CONTA
- LoadDifal(@aDifTemp, '012','012.00', 'TOTAL DE D閎itos especiais DIFAL', nDebEsp) //CDA/MANUAL
- LoadDifal(@aDifTemp, '', '', '', '')
- LoadDifal(@aDifTemp, '','', ' VALORES DO FECP ', '')
- LoadDifal(@aDifTemp, '', '', '', '')
- If Year(dDtIni) < 2017
- LoadDifal(@aDifTemp, '013','013.00', 'D閎itos de FECP nas sa韉as', nDebFcp) //FISXAPUR
- LoadDifal(@aDifTemp, '', '', '', '')
- LoadDifal(@aDifTemp, '014','014.00', 'Saldo Credor do Per韔do Anterior de FECP', nSldAntFcp) //TABELA PER蘋DO ANTERIOR
- LoadDifal(@aDifTemp, '015','015.00', 'Cr閐itos do FECP pelas Entradas', nCrdFcp) //FISXAPUR
- LoadDifal(@aDifTemp, '', '', '', '')
- LoadDifal(@aDifTemp, '016','016.00', 'Valor a recolher - FECP (d閎ito menos cr閐ito)', nVlRecFcp) //CONTA
- LoadDifal(@aDifTemp, '', '', '', '')
- LoadDifal(@aDifTemp, '017','017.00', 'Saldo Credor do FECP (cr閐ito menos d閎ito)', nSldCrdFcp) //CONTA
- Else
- LoadDifal(@aDifTemp, '013','013.00', 'D閎itos de FECP nas sa韉as', nDebFcp) //FISXAPUR
- LoadDifal(@aDifTemp, '014','014.00', 'Outros D閎itos FECP', nOutDebF) //CDA/MANUAL
- LoadDifal(@aDifTemp, '015','015.00', 'Estorno do Cr閐ito FECP', nEstCrdF) //CDA/MANUAL
- LoadDifal(@aDifTemp, '', '', '', '')
- LoadDifal(@aDifTemp, '016','016.00', 'Saldo Credor do Per韔do Anterior de FECP', nSldAntFcp) //TABELA PER蘋DO ANTERIOR
- LoadDifal(@aDifTemp, '017','017.00', 'Cr閐itos do FECP pelas Entradas', nCrdFcp) //FISXAPUR
- LoadDifal(@aDifTemp, '018','018.00', 'Outros Cr閐itos FECP', nOutCrdF) //CDA/MANUAL
- LoadDifal(@aDifTemp, '019','019.00', 'Estorno do D閎ito FECP', nEstDebF) //CDA/MANUAL
- LoadDifal(@aDifTemp, '', '', '', '')
- LoadDifal(@aDifTemp, '020','020.00', 'Saldo Devedor FECP', nSldDevF) //CONTA
- LoadDifal(@aDifTemp, '021','021.00', 'Dedu珲es do FECP', nDedDifF) //CDA/MANUAL
- LoadDifal(@aDifTemp, '', '', '', '')
- LoadDifal(@aDifTemp, '022','022.00', 'Valor a recolher - FECP (d閎ito menos cr閐ito)', nVlRecFcp) //CONTA
- LoadDifal(@aDifTemp, '', '', '', '')
- LoadDifal(@aDifTemp, '023','023.00', 'Saldo Credor do FECP (cr閐ito menos d閎ito)', nSldCrdFcp) //CONTA
- LoadDifal(@aDifTemp, '024','024.00', 'D閎itos Especiais FECP', nDebEspF) //CDA/MANUAL
- Endif
- LoadDifal(@aDifTemp, '', '', '', '')
- LoadDifal(@aDifTemp, '','' ,' <<<---VOLTAR', '')
- //
- nCdaDifal := aScan(aCdaDIFAL,{|x|x[6] == cUf} )
- nPosl := Len(aDifTemp[1])
- If nCdaDifal > 0 .and. cUf $ cMV_SubTr
- For nX := nCdaDifal to Len(aCdaDIFAL) //O array estar?ordenado por UF
- If aCdaDIFAL[nx][6] == cUf
- nPos := ascan(aDifTemp,{|x|x[1]==aCdaDIFAL[nX][1]}) //procura c骴igo da linha
- Aeval(aDifTemp,{|x| if(x[1]==aCdaDIFAL[nX][1] .and. x[nPosl]==.F.,nPos++,)})
- aDifTemp := Asize(aDifTemp,Len(aDifTemp)+1)
- aDifTemp := Ains(aDifTemp,nPos)
- aDifTemp[nPos] := {aCdaDIFAL[nX][1],aCdaDIFAL[nX][8],aCdaDIFAL[nX][2],aCdaDIFAL[nX][3],aCdaDIFAL[nX][4],'',aCdaDIFAL[nX][7] + Iif(aCdaDIFAL[nX][7]=='1','-AUTOMATICO','-MANUAL'),.F.}
- Do Case
- Case aCdaDIFAL[nx][1] == '002' ; nOutDeb += aCdaDIFAL[nx][3]
- Case aCdaDIFAL[nx][1] == '003' ; nEstCrd += aCdaDIFAL[nx][3]
- Case aCdaDIFAL[nx][1] == '006' ; nOutCrd += aCdaDIFAL[nx][3]
- Case aCdaDIFAL[nx][1] == '007' ; nEstDeb += aCdaDIFAL[nx][3]
- Case aCdaDIFAL[nx][1] == '009' ; nDedDif += aCdaDIFAL[nx][3]
- Case aCdaDIFAL[nx][1] == '012' ; nDebEsp += aCdaDIFAL[nx][3]
- Case aCdaDIFAL[nx][1] == '014' .And. lAno2017 ; nOutDebF += aCdaDIFAL[nx][3]
- Case aCdaDIFAL[nx][1] == '015' .And. lAno2017 ; nEstCrdF += aCdaDIFAL[nx][3]
- Case aCdaDIFAL[nx][1] == '018' .And. lAno2017 ; nOutCrdF += aCdaDIFAL[nx][3]
- Case aCdaDIFAL[nx][1] == '019' .And. lAno2017 ; nEstDebF += aCdaDIFAL[nx][3]
- Case aCdaDIFAL[nx][1] == '021' .And. lAno2017 ; nDedDifF += aCdaDIFAL[nx][3]
- Case aCdaDIFAL[nx][1] == '024' .And. lAno2017 ; nDebEspF += aCdaDIFAL[nx][3]
- EndCase
- Else
- Exit
- EndIF
- next
- EndIf
- If lAutomato
- If len(aRetAuto) > 0
- nCdaDifal := aScan(aRetAuto,{|x|x[6] == cUf} )
- nPosl := Len(aDifTemp[1])
- If nCdaDifal > 0 .AND. cUf $ cMV_SubTr
- For nX := nCdaDifal to Len(aRetAuto) //O array estar?ordenado por UF
- If Len(aCdaDIFAL) > 0
- nPosPad := aScan(aCdaDIFAL,{|x|x[8] == aRetAuto[nX][8] } )
- EndIf
- If nPosPad == 0
- If aRetAuto[nx][6] == cUf
- nPos := ascan(aDifTemp,{|x|x[1]==aRetAuto[nX][1]}) //procura c骴igo da linha
- Aeval(aDifTemp,{|x| if(x[1]==aRetAuto[nX][1] .and. x[nPosl]==.F.,nPos++,)})
- aDifTemp := Asize(aDifTemp,Len(aDifTemp)+1)
- aDifTemp := Ains(aDifTemp,nPos)
- aDifTemp[nPos] := {aRetAuto[nX][1],aRetAuto[nX][8],aRetAuto[nX][2],aRetAuto[nX][3],aRetAuto[nX][4],'',aRetAuto[nX][7] + Iif(aRetAuto[nX][7]=='1','-AUTOMATICO','-MANUAL'),.F.}
- Do Case
- Case aRetAuto[nx][1] == '002' ; nOutDeb += aRetAuto[nx][3]
- Case aRetAuto[nx][1] == '003' ; nEstCrd += aRetAuto[nx][3]
- Case aRetAuto[nx][1] == '006' ; nOutCrd += aRetAuto[nx][3]
- Case aRetAuto[nx][1] == '007' ; nEstDeb += aRetAuto[nx][3]
- Case aRetAuto[nx][1] == '009' ; nDedDif += aRetAuto[nx][3]
- Case aRetAuto[nx][1] == '012' ; nDebEsp += aRetAuto[nx][3]
- Case aRetAuto[nx][1] == '014' .And. lAno2017 ; nOutDebF += aRetAuto[nx][3]
- Case aRetAuto[nx][1] == '015' .And. lAno2017 ; nEstCrdF += aRetAuto[nx][3]
- Case aRetAuto[nx][1] == '018' .And. lAno2017 ; nOutCrdF += aRetAuto[nx][3]
- Case aRetAuto[nx][1] == '019' .And. lAno2017 ; nEstDebF += aRetAuto[nx][3]
- Case aRetAuto[nx][1] == '021' .And. lAno2017 ; nDedDifF += aRetAuto[nx][3]
- Case aRetAuto[nx][1] == '024' .And. lAno2017 ; nDebEspF += aRetAuto[nx][3]
- EndCase
- Else
- Exit
- EndIF
- EndIf
- next
- EndIf
- EndIf
- EndIf
- //Processa valores do DIFAL
- nTotDebDif := nDebDif + nOutDeb + nEstCrd
- nTotCrdDif := nSldAntDif + nCrdDif + nOutCrd + nEstDeb
- nSldDev := nTotDebDif - nTotCrdDif
- nVlRecDif := nSldDev - nDedDif
- If nSldDev < 0
- nSldCrdDif += nSldDev * -1
- nSldCrdDif+= nDedDif
- Elseif nVlRecDif < 0
- nSldCrdDif += nVlRecDif * -1
- EndIF
- nSldDev := Iif(nSldDev < 0,0, nSldDev)
- nVlRecDif := Iif(nVlRecDif < 0,0, nVlRecDif)
- nSldCrdDif := Iif(nSldCrdDif < 0,0, nSldCrdDif)
- If (nPos := ascan(aDifTemp,{|x|x[1]=='002'})) > 0
- aDifTemp[nPos][4] := nOutDeb
- EndiF
- If (nPos := ascan(aDifTemp,{|x|x[1]=='003'})) > 0
- aDifTemp[nPos][4] := nEstCrd
- EndiF
- If (nPos := ascan(aDifTemp,{|x|x[1]=='006'})) > 0
- aDifTemp[nPos][4] := nOutCrd
- EndiF
- If (nPos := ascan(aDifTemp,{|x|x[1]=='007'})) > 0
- aDifTemp[nPos][4] := nEstDeb
- EndiF
- If (nPos := ascan(aDifTemp,{|x|x[1]=='008'})) > 0
- aDifTemp[nPos][4] := nSldDev
- EndiF
- If (nPos := ascan(aDifTemp,{|x|x[1]=='009'})) > 0
- aDifTemp[nPos][4] := nDedDif
- EndiF
- If (nPos := ascan(aDifTemp,{|x|x[1]=='010'})) > 0
- aDifTemp[nPos][4] := nVlRecDif
- EndiF
- If (nPos := ascan(aDifTemp,{|x|x[1]=='011'})) > 0
- aDifTemp[nPos][4] := nSldCrdDif
- EndiF
- If (nPos := ascan(aDifTemp,{|x|x[1]=='012'})) > 0
- aDifTemp[nPos][4] := nDebEsp
- EndiF
- IF Year(dDtIni) >= 2017
- //Ajustes FECP
- //Processa valores do FECP
- nTotDebFCP := nDebFcp + nOutDebF + nEstCrdF
- nTotCrdFCP := nSldAntFcp + nCrdFcp + nOutCrdF + nEstDebF
- nSldDevF := nTotDebFCP - nTotCrdFCP
- nVlRecFcp := nSldDevF - nDedDifF
- //nVlRecFcp := nDebFcp - nCrdFcp
- //nSldCrdFcp := nCrdFcp - nDebFcp
- If nSldDevF < 0
- nSldCrdFcp += nSldDevF * -1
- nSldCrdFcp += nDedDifF
- Elseif nVlRecFcp < 0
- nSldCrdFcp += nVlRecFcp * -1
- EndIF
- nSldDevF := Iif(nSldDevF < 0,0, nSldDevF)
- nVlRecFcp := Iif(nVlRecFcp < 0,0, nVlRecFcp) // Sld Recolher FECP
- nSldCrdFcp := Iif(nSldCrdFcp < 0,0, nSldCrdFcp) // Sld Credor FECP
- Else
- //Processa valores do FECP
- nVlRecFcp := nDebFcp - nCrdFcp
- nSldCrdFcp := nCrdFcp - nDebFcp
- nVlRecFcp := Iif(nVlRecFcp < 0,0, nVlRecFcp)
- nSldCrdFcp := Iif(nSldCrdFcp < 0,0, nSldCrdFcp)
- Endif
- If (nPos := ascan(aDifTemp,{|x|x[1]==IIF(Year(dDtIni) < 2017,'016','022')})) > 0
- aDifTemp[nPos][4] := nVlRecFcp
- EndiF
- If (nPos := ascan(aDifTemp,{|x|x[1]==IIF(Year(dDtIni) < 2017,'017','023')})) > 0
- aDifTemp[nPos][4] := nSldCrdFcp
- EndiF
- IF Year(dDtIni) >= 2017
- If (nPos := ascan(aDifTemp,{|x|x[1]=='014'})) > 0
- aDifTemp[nPos][4] := nOutDebF
- EndiF
- If (nPos := ascan(aDifTemp,{|x|x[1]=='015'})) > 0
- aDifTemp[nPos][4] := nEstCrdF
- EndiF
- If (nPos := ascan(aDifTemp,{|x|x[1]=='018'})) > 0
- aDifTemp[nPos][4] := nOutCrdF
- EndiF
- If (nPos := ascan(aDifTemp,{|x|x[1]=='019'})) > 0
- aDifTemp[nPos][4] := nEstDebF
- EndiF
- If (nPos := ascan(aDifTemp,{|x|x[1]=='020'})) > 0
- aDifTemp[nPos][4] := nSldDevF
- EndiF
- If (nPos := ascan(aDifTemp,{|x|x[1]=='021'})) > 0
- aDifTemp[nPos][4] := nDedDifF
- EndiF
- If (nPos := ascan(aDifTemp,{|x|x[1]=='024'})) > 0
- aDifTemp[nPos][4] := nDebEspF
- EndiF
- EndiF
- Return aDifTemp
- //-------------------------------------------------------------------
- /*/{Protheus.doc} GrvApDifal
- Fun玢o para efetuar grava玢o apura玢o do DIFAL nas tabelas F0I, F0J e F0K.
- @author Erick G Dias
- @since 20/01/2016
- @version 1.0
- /*/
- //-------------------------------------------------------------------
- Static Function GrvApDifal(aDifal,dDtIni,cNrLivro, aTitDifal,aGnreDifal,aApurDifal,aCDADifal)
- Local nCont := 0
- Local cChave := xFilial('F0I')+ DTOS(dDtIni)+cNrLivro
- Local nPosDifal := 0
- Local nCdaDifal := 0
- Local nx := 0
- Local nA := 0
- Local aDifalGrv := {}
- Local aCPOF0I := {'F0I_OUTDBF','F0I_OUTCRF','F0I_DEVFCP','F0I_DEDFCP','F0I_DBESPF','F0I_ESTDBF','F0I_ESTCRF'}
- Local lCPOF0I := .T.
- Default aTitDifal := {}
- Default aGnreDifal := {}
- dbSelectArea("F0I")
- F0I->(DbSetOrder (1))
- For nA:=1 to Len(aCPOF0I)
- If F0I->(FieldPos(aCPOF0I[nA])) == 0
- lCPOF0I := .F.
- Loop
- Endif
- Next
- dbSelectArea("F0K")
- F0K->(DbSetOrder (1))
- For nCont := 1 to Len(aDifal)
- nPosDifal := aScan(aApurDifal,{|x|x[1] == aDifal[nCont][1]} )
- IF nPosDifal > 0
- aDifalGrv := aApurDifal[nPosDifal][2]
- IF F0I->(DbSeek (xFilial ("F0I")+dTos(dDtIni)+aDifal[nCOnt][1]+cNrLivro))
- RecLock("F0I",.F.)
- Else
- RecLock("F0I",.T.)
- F0I->F0I_FILIAL := xFilial("F0I")
- F0I->F0I_PER := dDtIni
- F0I->F0I_LIVRO := cNrLivro
- F0I->F0I_UF := aDifal[nCOnt][1]
- EndIF
- F0I->F0I_DEBDIF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '001.00'} )][4]
- F0I->F0I_OUTDEB := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '002.00'} )][4]
- F0I->F0I_ESTCRD := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '003.00'} )][4]
- F0I->F0I_SADIF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '004.00'} )][4]
- F0I->F0I_CRDDIF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '005.00'} )][4]
- F0I->F0I_OUTCRE := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '006.00'} )][4]
- F0I->F0I_ESTDEB := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '007.00'} )][4]
- F0I->F0I_DEVDIF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '008.00'} )][4]
- F0I->F0I_DEDDIF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '009.00'} )][4]
- F0I->F0I_DIFREC := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '010.00'} )][4]
- F0I->F0I_SPDIF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '011.00'} )][4]
- F0I->F0I_DEBESP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '012.00'} )][4]
- //Tratamento para manter a integridade de apura珲es antes da mudan鏰 de layout do spedfiscal
- If Year(dDtIni) < 2017
- F0I->F0I_DEBFCP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '013.00'} )][4]
- F0I->F0I_SAFCP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '014.00'} )][4]
- F0I->F0I_CRDFCP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '015.00'} )][4]
- F0I->F0I_FCPREC := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '016.00'} )][4]
- F0I->F0I_SPFCP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '017.00'} )][4]
- Else
- F0I->F0I_DEBFCP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '013.00'} )][4]
- If lCPOF0I
- F0I->F0I_OUTDBF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '014.00'} )][4]
- F0I->F0I_ESTCRF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '015.00'} )][4]
- Endif
- F0I->F0I_SAFCP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '016.00'} )][4]
- F0I->F0I_CRDFCP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '017.00'} )][4]
- If lCPOF0I
- F0I->F0I_OUTCRF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '018.00'} )][4]
- F0I->F0I_ESTDBF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '019.00'} )][4]
- F0I->F0I_DEVFCP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '020.00'} )][4]
- F0I->F0I_DEDFCP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '021.00'} )][4]
- Endif
- F0I->F0I_FCPREC := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '022.00'} )][4]
- F0I->F0I_SPFCP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '023.00'} )][4]
- If lCPOF0I
- F0I->F0I_DBESPF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '024.00'} )][4]
- Endif
- Endif
- MsUnlock()
- F0I->(FKCommit())
- GravaF0K('002','002.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
- GravaF0K('003','003.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
- GravaF0K('006','006.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
- GravaF0K('007','007.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
- GravaF0K('009','009.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
- GravaF0K('012','012.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
- //FECP
- GravaF0K('014','014.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
- GravaF0K('015','015.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
- GravaF0K('018','018.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
- GravaF0K('019','019.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
- GravaF0K('021','021.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
- GravaF0K('024','024.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
- EndIF
- Next nCont
- dbSelectArea("F0J")
- F0J->(DbSetOrder (2))
- For nCont := 1 to len(aGnreDifal)
- //Ir?gravar os t韙ulos e Guias Geradas da apura玢o do Difal
- //F0J_FILIAL+DTOS(F0J_PER)+F0J_LIVRO+F0J_UF+F0J_GNRE
- IF F0J->(DbSeek (xFilial ("F0J")+dTos(dDtIni)+cNrLivro+aGnreDifal[nCOnt][5]+aGnreDifal[nCOnt][1]))
- RecLock("F0J",.F.)
- Else
- RecLock("F0J",.T.)
- F0J->F0J_FILIAL := xFilial("F0J")
- F0J->F0J_PER := dDtIni
- F0J->F0J_LIVRO := cNrLivro
- F0J->F0J_UF := aGnreDifal[nCOnt][5]
- F0J->F0J_GNRE := aGnreDifal[nCOnt][1]
- EndIF
- F0J->F0J_DTVENC := aGnreDifal[nCOnt][2]
- F0J->F0J_VALOR := aGnreDifal[nCOnt][3]
- If 'DIFAL' $ aGnreDifal[nCOnt][7]
- F0J->F0J_TIPO := '1'
- ElseIF 'FECP' $ aGnreDifal[nCOnt][7]
- F0J->F0J_TIPO := '2'
- ElseIF 'DEBITO ESPECIAL' $ aGnreDifal[nCOnt][7]
- F0J->F0J_TIPO := '3'
- EndIF
- MsUnlock()
- F0J->(FKCommit())
- Next
- //Realiza a grava玢o dos t韙ulos gerados na tabela F0J.
- dbSelectArea("F0J")
- F0J->(DbSetOrder (1))
- For nCont := 1 to len(aTitDifal)
- //F0J_FILIAL+DTOS(F0J_PER)+F0J_LIVRO+F0J_UF+F0J_TPTIT+F0J_NUMTIT+F0J_PRFTIT
- IF F0J->(DbSeek (xFilial("F0J")+dTos(dDtIni)+cNrLivro+aTitDifal[nCOnt][8]+aTitDifal[nCOnt][4]+aTitDifal[nCOnt][2]+aTitDifal[nCOnt][1]))
- RecLock("F0J",.F.)
- Else
- RecLock("F0J",.T.)
- F0J->F0J_FILIAL := xFilial("F0J")
- F0J->F0J_PER := dDtIni
- F0J->F0J_LIVRO := cNrLivro
- F0J->F0J_UF := aTitDifal[nCOnt][8]
- F0J->F0J_PRFTIT := aTitDifal[nCOnt][1]
- F0J->F0J_NUMTIT := aTitDifal[nCOnt][2]
- F0J->F0J_PARC := aTitDifal[nCOnt][3]
- F0J->F0J_TPTIT := aTitDifal[nCOnt][4]
- F0J->F0J_FORN := aTitDifal[nCOnt][5]
- F0J->F0J_LOJA := aTitDifal[nCOnt][6]
- EndIF
- F0J->F0J_VALOR := aTitDifal[nCOnt][9]
- F0J->F0J_DTVENC := aTitDifal[nCOnt][10]
- IF 'DIFAL' $ aTitDifal[nCOnt][7]
- F0J->F0J_TIPO := '4'
- ElseIF 'FECP' $ aTitDifal[nCOnt][7]
- F0J->F0J_TIPO := '5'
- ElseIF 'DEBITO ESPECIAL' $ aTitDifal[nCOnt][7]
- F0J->F0J_TIPO := '6'
- EndIF
- MsUnlock()
- F0J->(FKCommit())
- Next
- Return
- //-------------------------------------------------------------------
- /*/{Protheus.doc} GravaF0K
- Fun玢o para efetuar grava玢o na tabela F0K
- @author Erick G Dias
- @since 20/01/2016
- @version 1.0
- /*/
- //-------------------------------------------------------------------
- Static Function GravaF0K(cLinha,cSubItem,aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,cUf)
- Local nX := 0
- //Rodar c骴igos de lan鏰mentos do pr髉rio aApuirDifal
- nX := aScan(aDifalGrv,{|x|x[2] == cSubItem} )
- For nX := nX+1 to len(aApurDifal[nPosDifal][2])
- //verificar se linha n鉶 est?deletada
- IF !aApurDifal[nPosDifal][2][nx][8]
- If aApurDifal[nPosDifal][2][nx][1] == cLinha
- //F0K_FILIAL+DTOS(F0K_PER)+F0K_LIVRO+F0K_UF+F0K_CODAPU+F0K_DESCR
- IF F0K->(DbSeek (xFilial ("F0K")+dTos(dDtIni)+cNrLivro+cUf+PADR(aApurDifal[nPosDifal][2][nx][5],TamSx3("F0K_CODAPU")[1]) + PADR(aApurDifal[nPosDifal][2][nx][7],TamSx3("F0K_TPLANC")[1]) + PADR(aApurDifal[nPosDifal][2][nx][3],TamSx3("F0K_DESCR")[1]) ))
- RecLock("F0K",.F.)
- Else
- RecLock("F0K",.T.)
- F0K->F0K_FILIAL := xFilial("F0K")
- F0K->F0K_PER := dDtIni
- F0K->F0K_LIVRO := cNrLivro
- F0K->F0K_UF := cUf
- F0K->F0K_CODAPU := aApurDifal[nPosDifal][2][nx][5]
- F0K->F0K_GNRE := aApurDifal[nPosDifal][2][nx][6]
- F0K->F0K_DESCR := aApurDifal[nPosDifal][2][nx][3]
- F0K->F0K_SUBITE := aApurDifal[nPosDifal][2][nx][2]
- F0K->F0K_TPLANC := aApurDifal[nPosDifal][2][nx][7]
- EndIF
- F0K->F0K_VALOR += aApurDifal[nPosDifal][2][nx][4]
- MsUnlock()
- F0K->(FKCommit())
- Else
- Exit
- EndIF
- EndIF
- Next nx
- Return
- Function A953Legenda()
- Local aLegenda := {}
- aAdd(aLegenda, {"br_amarelo", 'Estado de Origem'})
- aAdd(aLegenda, {"br_vermelho", 'Estado de Destino sem Inscri玢o Estadual'})
- aAdd(aLegenda, {"br_verde", 'Estado de Destino Com Inscri玢o Estadual'})
- BrwLegenda ('Apura玢o de ICMS', 'Legenda', aLegenda) //"Legenda"
- Return .T.
- //-------------------------------------------------------------------
- /*/{Protheus.doc} AtuAcols
- Atualiza as colunas com informa珲es passadas pelo caso de testes
- @author fabio.santana
- @since 20/01/2016
- @version 1.0
- /*/
- //-------------------------------------------------------------------
- Static Function AtuAcols(aColsPad,nPosPad,aColsAuto,nPosAuto)
- //aCols Padr鉶
- Default aColsPad := {}
- //Array passado pelo CT
- Default aColsAuto := {}
- //Registro posicionado no la鏾 do aColsAuto
- Default nPosAuto := 0
- //nPos da linha ja existente, para receber o update passado pelo aColsAuto
- Default nPosPad := 0
- //Se nao encontrou os dados no acols padr鉶, fa鏾 uma inclus鉶 manual
- If nPosPad == 0
- If aColsAuto[nPosAuto,10] == "M"
- AADD(aColsPad,{aColsAuto[nPosAuto][3],aColsAuto[nPosAuto][6],aColsAuto[nPosAuto][4],aColsAuto[nPosAuto][5],aColsAuto[nPosAuto][7],aColsAuto[nPosAuto][8],aColsAuto[nPosAuto][9],aColsAuto[nPosAuto][10],.F.}) //"Texto do usuario
- Else
- AADD(aColsPad,{aColsAuto[nPosAuto][3],aColsAuto[nPosAuto][6],aColsAuto[nPosAuto][4],aColsAuto[nPosAuto][5],aColsAuto[nPosAuto][7],aColsAuto[nPosAuto][8],aColsAuto[nPosAuto][9],.F.}) //"Texto do usuario
- EndIf
- Else
- //Somente atualizo os dados se forem diferentes dos ja gravados
- //Codigo
- If AllTrim(aColsPad[nPosPad,1]) <> AllTrim(aColsAuto[nPosAuto][3])
- aColsPad[nPosPad,1] := aColsAuto[nPosAuto][3]
- EndIF
- //Sub Item
- If AllTrim(aColsPad[nPosPad,2]) <> AllTrim(aColsAuto[nPosAuto][11])
- aColsPad[nPosPad,2] := aColsAuto[nPosAuto][11]
- EndIf
- //Descri玢o
- If AllTrim(aColsPad[nPosPad,3]) <> AllTrim(aColsAuto[nPosAuto][4])
- aColsPad[nPosPad,3] := aColsAuto[nPosAuto][4]
- EndIf
- //Valor
- If AllTrim(aColsPad[nPosPad,4]) <> AllTrim(aColsAuto[nPosAuto][5])
- aColsPad[nPosPad,4] := aColsAuto[nPosAuto][5]
- EndIf
- //GNRE
- If AllTrim(aColsPad[nPosPad,5]) <> AllTrim(aColsAuto[nPosAuto][7])
- aColsPad[nPosPad,5] := aColsAuto[nPosAuto][7]
- EndIf
- //Classe de vencimento
- If AllTrim(aColsPad[nPosPad,6]) <> AllTrim(aColsAuto[nPosAuto][8])
- aColsPad[nPosPad,6] := aColsAuto[nPosAuto][8]
- EndIf
- //Codigo de Lan鏰mento
- If AllTrim(aColsPad[nPosPad,7]) <> AllTrim(aColsAuto[nPosAuto][12])
- aColsPad[nPosPad,7] := aColsAuto[nPosAuto][12]
- EndIf
- //Em alguns aCols ser?necess醨io passar M na decima posi玢o no array
- If aColsAuto[nPosAuto,10] == "M"
- If AllTrim(aColsPad[nPosPad,8]) := AllTrim(aColsAuto[nPosAuto][10])
- aColsPad[nPosPad,8] := aColsAuto[nPosAuto][10]
- EndIf
- aColsPad[nPosPad,9] := .F.
- Else
- aColsPad[nPosPad,8] := .F.
- EndIf
- EndIF
- Return aColsPad
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement