Advertisement
Guest User

MATA953

a guest
Oct 11th, 2019
1,279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 481.57 KB | None | 0 0
  1. #INCLUDE "mata953.ch"
  2. #include "FIVEWIN.CH"
  3. #include "FWCOMMAND.CH"
  4. /*/
  5. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘
  6. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北
  7. 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪目北
  8. 北矲uncao 矼ATA953 ?Autor 矨ndreia dos Santos ?Data ?6/08/2001 潮?
  9. 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪拇北
  10. 北矰esc. 矨puracao do ICMS Operacoes Proprias e Substituicao Tributaria潮?
  11. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪拇北
  12. 北砇etorno 砃enhum 潮?
  13. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪拇北
  14. 北砅arametros? 潮?
  15. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁北
  16. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北
  17. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌
  18. /*/
  19. Function MATA953(lAutomato,nOpcApu,cTestCase)
  20.  
  21. Local cCadastro := STR0001 //"Apuracao de ICMS"
  22. Local aSays := {}
  23. Local aButtons := {}
  24. LOCAL nOpca := 0
  25. LOCAL aCAP := {STR0002,STR0003,STR0004} //"Confirma"###"Abandona"###"Par僲etros"
  26. Local cPerg := "MTA951"
  27. LocaL cTitulo := STR0001 //"Apuracao de ICMS"
  28. Local cText1 := STR0010 //"Este programa faz a Apura噭o de ICMS, conforme par僲etros "
  29. Local cText2 := STR0011 //"informados pelo usu爎io."
  30.  
  31. Default lAutomato := .F.
  32. Default nOpcApu := 2
  33. Default cTestCase := "MATA953TestCase"
  34.  
  35. PRIVATE aRotina := { { OemToAnsi(STR0005) ,"AxPesqui" ,0,1},; //"Pesquisar"
  36. { OemToAnsi(STR0006) ,"AxAlter" ,0,2},; //"Visual"
  37. { OemToAnsi(STR0007) ,"AxInclui" ,0,3},; //"Incluir"
  38. { OemToAnsi(STR0008) ,"AxAlter" ,0,4},; //"Alterar"
  39. { OemToAnsi(STR0009) ,"AxAlter" ,0,5} } //"Exclusao"
  40.  
  41. Pergunte(cPerg,.F.)
  42. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  43. //?Janela Principal ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  44.  
  45. While .T.
  46. AADD(aSays,OemToAnsi( ctext1 ) )
  47. AADD(aSays,OemToAnsi( cText2 ) )
  48. AADD(aButtons, { 1,.T.,{|o| nOpca:= 1,o:oWnd:End()}} )
  49. AADD(aButtons, { 2,.T.,{|o| o:oWnd:End() }} )
  50. AADD(aButtons, { 5,.T.,{|| Pergunte(cPerg,.T. ) } } )
  51.  
  52. If !lAutomato
  53. FormBatch( cCadastro, aSays, aButtons )
  54. Else
  55. nOpca := 1
  56. EndIf
  57.  
  58. Do Case
  59. Case nOpca == 1
  60. Processa({||a953Processa(lAutomato,nOpcApu,cTestCase)})
  61. Case nOpca == 3
  62. Pergunte(cPerg,.t.)
  63. Loop
  64. EndCase
  65. Exit
  66. EndDo
  67.  
  68. RETURN
  69. /*/
  70. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘
  71. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北
  72. 北谀哪哪哪哪穆哪哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪目北
  73. 北篎uncao 矨953processa篈utor 矨ndreia dos Santos ?Data ?09/08/2001罕?
  74. 北媚哪哪哪哪呐哪哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪拇北
  75. 北篋esc. 矨puracao do ICMS Operacoes Proprias e Substituicao Tributaria 罕?
  76. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪拇北
  77. 北砇etorno 砃enhum 潮?
  78. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪拇北
  79. 北砅arametros? 潮?
  80. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁北
  81. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北
  82. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌
  83. /*/
  84. Function a953Processa(lAutomato,nOpcApu,cTestCase)
  85.  
  86. Local aArea := GetArea()
  87. Local aPosObj := {}
  88. Local aObjects := {}
  89. Local aSize := MsAdvSize()
  90. 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"
  91. Local aCFG := {}
  92. Local aOBS := {}
  93. Local nGd1 := 0
  94. Local nGd2 := 0
  95. Local nGd3 := 0
  96. Local nGd4 := 0
  97. Local oGetDad1
  98. Local oGetDad2
  99. Local oGetDad3
  100. Local oGetDad4
  101. Local oGetDad5
  102. Local oGetDad6
  103. Local oGetDad7
  104. Local oGetDad8
  105. Local oGetDad9
  106. Local oGetDad10
  107. Local oGetDad11
  108. Local oGetDad12
  109. Local oGetDad13
  110. Local oDlg
  111. Local cImp := "IC"
  112. Local cImposto := "ICMS"
  113. Local nPosRecPR := 0
  114. Local nPosRecST := 0
  115. Local nS := 0
  116. Local nY := 0
  117. Local nX := 0
  118. Local cLcPadTit := Substr(SuperGetMv("MV_LPADICM"),1,3)
  119. Local cLcPadExt := Substr(SuperGetMv("MV_LPADICM"),5,3)
  120. Local cProdec := SuperGetMv("MV_PRODEC",.F.,"4")
  121. Local cArqST := ""
  122. Local cProgram := "MATA953"
  123. Local aDadIC := {}
  124. Local aDadST := {}
  125. Local nProtege := 0
  126.  
  127. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  128. //?Variaveis utilizadas para parametros ?
  129. //?mv_par01 // Mes de Apuracao ?
  130. //?mv_par02 // Ano da Apuracao ?
  131. //?mv_par03 // Livro Selecionado ?
  132. //?mv_par04 // Apuracao(Decendial/Mensal/Quinzenal/Semestral/Anual ?
  133. //?mv_par05 // Periodo (1o./2o./3o.) ?
  134. //?mv_par06 // Arquivo do Perido Anterior ?
  135. //?mv_par07 // Moeda do Titulo ?
  136. //?mv_par08 // Gera Titulo ( Sim/Nao ) ?
  137. //?mv_par09 // Exibir Lancamento Contabil( Sim/Nao ) ?
  138. //?mv_par10 // Considera Filiais( Sim/Nao ) ?
  139. //?mv_par11 // Da Filial ?
  140. //?mv_par12 // Ate a Filial ?
  141. //?mv_par13 // Gera Guia de Rec.( Sim/Nao ) ?
  142. //?mv_par14 // Gera Cred. Estimulo ( Sim/Nao ) ?
  143. //?mv_par15 // Imprime Cred. ST. ( Sim/Nao ) ?
  144. //?mv_par16 // Consolida玢o na mesma UF ( Sim/Nao ) ?
  145. //?mv_par17 // Gera Tit. ICMS Compl. ( Sim/Nao ) ?
  146. //?mv_par18 // Imprime Mapa Resumo ( Sim/Nao ) ?
  147. //?mv_par19 // Seleiona Filiais ( Sim/Nao ) ?
  148. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  149. Local nMes := mv_par01
  150. Local nAno := mv_par02
  151. Local cNrLivro := mv_par03
  152. Local nApuracao := mv_par04
  153. Local nPeriodo := mv_par05
  154. Local nMoedTit := If(Trim(Str(mv_par07))$"12345",mv_par07,1)
  155. Local lTitulo := (mv_par08==1)
  156. Local lContab := (mv_par09==1)
  157. Local nConsFil := mv_par10
  158. Local cFilDe := mv_par11
  159. Local cFilAte := mv_par12
  160. Local lGuiaRec := If(mv_par13==1,.T.,.F.)
  161. Local lCrdEst := If(mv_par14==1,.T.,.F.)
  162. Local lImpCrdST := If(mv_par15==1,.T.,.F.)
  163. Local aDatas := DetDatas(nMes,nAno,nApuracao,nPeriodo)
  164. Local dDtIni := aDatas[1]
  165. Local dDtFim := aDatas[2]
  166. Local dDtVenc := DataValida(aDatas[2]+1,.t.)
  167. Local cArqApur := NmArqApur(cImp,nAno,nMes,nApuracao,nPeriodo,cNrLivro)
  168. Local cOrgArrec := Space(30)
  169. Local cObserv := ""
  170. Local cNumero := Space(TamSx3("F6_NUMERO")[1])
  171. Local cNumero2 := Space(TamSx3("F6_NUMERO")[1])
  172. Local nValSt := 0
  173. Local aGnreSt := {}
  174. Local aIcmPago := {}
  175. Local aUfEsp := {}
  176. Local nNum := 0
  177. Local dDtVenc2 := ""
  178. Local cClasse := ""
  179. Local aApuICM := {}
  180. Local nValGuiaSf6 := 0
  181. Local aEstimulo := {}
  182. Local aIncent := {{"INC",0,0,0,0}}
  183. Local aTitulo := {}
  184. Local lInfComp := .F. //Gera uma linha no arquivo texto da apuracao, com os dados das Informacoes Complementares
  185. Local cMVSIGNRE := SuperGetMv("MV_SIGNRE",.F.,"")
  186. Local cGNREDF := SuperGetMv("MV_GNREDF",.F.,"1")
  187. lOCAL nVlGnreDif := 0
  188. Local lConsUF := If(mv_par16==1,.T.,.F.)
  189. Local lIcmCompl := If(mv_par17==1,.T.,.F.)
  190. Local aRet := {}
  191. Local lApPadrao := .T.
  192. Local aGNRSTAnt := {}
  193. Local aRecTit := {}
  194. Local nRecTit := 0
  195. Local lConfTit := .F.
  196. Local cTitulo := ""
  197. Local cErro := ""
  198. Local cSolucao := ""
  199. Local cUfAjSt := ""
  200. Local nValAtuF := 0
  201. Local lMonta := .F.
  202. Local lUsaSped := SuperGetMv("MV_USASPED",,.T.) .And. AliasIndic("CDH") .And. AliasIndic("CDA") .And. AliasIndic("CC6") .And. AliasIndic("CDO")
  203. Local lLancCDA := .F.
  204. Local lP9Sped := SuperGetMv("MV_P9SPED",,.F.)
  205. Local aTitCDH := {}
  206. Local aColAnt := {}
  207. Local aLisFil := {}
  208. //Local lFiliais := If(mv_par19==1,.T.,.F.)
  209. Local lICMDes := SuperGetMv("MV_ICMS271",,.F.) .And. AliasIndic("CDM")// Indica se vai haver o controle do CREDITO.NAO DESTACADO ICMS
  210. Local lOldLan := (AliasIndic("CC6") .And. CC6->(FieldPos("CC6_TIPOAJ")) > 0)
  211. Local lGnrePrtge:= Iif(Valtype(MV_PAR26)=="N",Iif(MV_PAR26 == 1,.T.,.F.),.T.)
  212. Local nVlrFECP := 0
  213. Local nVlrFECPST:= 0
  214. Local nVFcRN5410:= 0
  215. Local nVFcRN5415:= 0
  216. Local nVFcRN5420:= 0
  217. Local nVFcMG := 0
  218. Local nVFcMGST := 0
  219. Local nVFcMT := 0
  220. Local nProtege := 0
  221. Local nIx := 0
  222. Local nIy := 0
  223. Local nXX := 0
  224. Local nVlrDeb := 0
  225. Local nVlrDebSt := 0
  226. Local aGNREX := {}
  227. Local nPosGNREX := 0
  228. Local nPsGNR5410:= 0
  229. Local nPsGNR5415:= 0
  230. Local nPsGNR5420:= 0
  231. Local nPsGNRMG := 0
  232. Local nPsGNRMGST:= 0
  233. Local nPosFECPMG:= 0
  234. Local nPosFESTMG:= 0
  235. Local nPosFCPMG := 0
  236. Local nPsGNRMT := 0
  237. Local aRetEsp := {}
  238. Local nLmFumacop:= 0
  239. Local nPosFumac := 0
  240. Local lMvDComPro := SuperGetMv("MV_DCOMPRO",,.F.)
  241. Local cPictVal := ""
  242. Local lExclGNR := mv_par21==1
  243. Local aApIncent := {}
  244. Local aMVINVEST := &(GetNewPar("MV_INVEST","{}") )
  245. Local aMVFISPRDC:= &(GetNewPar("MV_FISPRDC" , "{}") )
  246. Local nValGNREST:= 0
  247. Local cCDeFecpPe := "RJ70000005/RJ70000006" //C骴igos de Lan鏰mentos de D閎ito Especial de FECP que poder鉶 ser geradas Guias.
  248. Local nTitDebEsp:= 0
  249. Local nTitCnv139:= 0
  250. Local aVlrDebEsp := { 0 , 0 } //-> Valores de Debitos Especiais para geracao de GNRE (Posicao 1 - apenas FECP's ; Posicao 2 - Demais linhas)
  251. Local aPzRecSt := {}
  252. Local dDtVencDif := ""
  253. Local nSolicFlg := ""
  254. Local aDadUsrFlg := {}
  255. Local nDH0 := 0
  256. Local cGNREDF := SuperGetMv("MV_GNREDF",.F.,"1")
  257. lOCAL nVlGnreDif := 0
  258. Local aTitDifal := {}
  259. Local aDifal := {}
  260. Local aCDADifal := {}
  261. Local nTitDifal:= 0
  262. Local aDifEst := {}
  263. Local nPosDifal := 0
  264. Local aApurDifal := {}
  265. Local aAuto := {}
  266. Local nPosPad := 0
  267. Local aRetAuto := {}
  268. Local nPosAuto := 0
  269. Local lFECPsep := .F.
  270. Local nFeef := 0
  271. Local cMVUFICDED:= GetNewPar("MV_UFICDED","MG|AL|CE|DF|ES|MA|MS|PB|PE|PI|SE|RS|AM|PA")
  272.  
  273. Default lAutomato := .F.
  274. Default nOpcApu := 2
  275. Default cTestCase := "MATA953TestCase"
  276.  
  277. PRIVATE aExclApur := {} //Indica os subitem que dever鉶 constar na Apuracao de ICMS (Outros Creditos/Outros Debitos) mais
  278. // que nao devam ser considerados na compensacao de credito-debito. Esta implementacao se dah para o
  279. // estado de MG, segundo $1 do art. 7. da Parte 1 do Anexo XV do RICMS/MG.
  280. //Esta alteracao somente deverah mostrar o lancamento em Outros Creditos/Debitos para ICMS/ST sobre
  281. // prestacao de servico de transporte, a compensacao feita na Apuracao deverah ser efetuada somente
  282. // sobre o ICMS/ST Normal.
  283. //Para este tratamento ser considerado, a TES deverah estar com o campo F4_CREDST igual a 4 e com o P9
  284. // do estado atualizado.
  285. PRIVATE aHEADER1:= {}
  286. PRIVATE aCOLS1 := {}
  287. PRIVATE aAlter1 := {}
  288. PRIVATE aHEADER2:= {}
  289. PRIVATE aCOLS2 := {}
  290. PRIVATE aAlter2 := {}
  291. PRIVATE aHEADER3:= {}
  292. PRIVATE aCOLS3 := {}
  293. PRIVATE aAlter3 := {}
  294. PRIVATE aHEADER4:= {}
  295. PRIVATE aCOLS4 := {}
  296. PRIVATE aAlter4 := {}
  297. PRIVATE aHEADER5:= {}
  298. PRIVATE aCOLS5 := {}
  299. PRIVATE aAlter5 := {}
  300. PRIVATE aHEADER6:= {}
  301. PRIVATE aCOLS6 := {}
  302. PRIVATE aAlter6 := {}
  303. PRIVATE aHEADER7:= {}
  304. PRIVATE aCOLS7 := {}
  305. PRIVATE aAlter7 := {}
  306. PRIVATE aHEADER8:= {}
  307. PRIVATE aCOLS8 := {}
  308. PRIVATE aAlter8 := {}
  309. PRIVATE aHEADER9:= {}
  310. PRIVATE aCOLS9 := {}
  311. PRIVATE aAlter9 := {}
  312. PRIVATE aHEADER10:= {}
  313. PRIVATE aCOLS10 := {}
  314. PRIVATE aAlter10:= {}
  315. PRIVATE aCOLS11 := {}
  316. PRIVATE aAlter11:= {}
  317. PRIVATE aHEADER11:= {}
  318. PRIVATE aCOLS12 := {}
  319. PRIVATE aAlter12:= {}
  320. PRIVATE aHEADER12:= {}
  321. PRIVATE aCOLS13 := {}
  322. PRIVATE aAlter13:= {}
  323. PRIVATE aHEADER13:= {}
  324. PRIVATE oFolder
  325. PRIVATE nVlrTitulo:= 0
  326. PRIVATE nVlrTitST:= 0
  327. PRIVATE cCadastro := STR0001 //"Apuracao de ICMS"
  328. PRIVATE lFomentGO := (SuperGetMv("MV_ESTADO")=="GO".And. SuperGetMv("MV_FOMENGO",,.F.))
  329. PRIVATE lApurBA := (SuperGetMv("MV_ESTADO")=="BA" .And. SuperGetMv("MV_APURBA",,.F.))
  330. PRIVATE lAtuFomGO := .T.
  331. PRIVATE lArt488MG := .F.
  332. PRIVATE nVlrArt488MG:= 0
  333. PRIVATE lCon13906 := Iif(!Empty(SuperGetMv("MV_C13906",.F.,"")),If(mv_par23==1,.T.,.F.),.F.)
  334. PRIVATE lGnreC139 := Iif(!Empty(SuperGetMv("MV_C13906",.F.,"")),If(mv_par24==1,.T.,.F.),.F.)
  335. PRIVATE aFoment := {} // Guarda a informacao sobre se vai refazer a apuracao ou nao.
  336. PRIVATE aApurExp := {}
  337. PRIVATE aApurOut := {}
  338. Private aGnre := {}
  339. Private cObsArt488MG:= ""
  340. Private nAuxIncent := {}
  341. PRIVATE aRecStDif := {}
  342. Private lFiliais := If(mv_par19==1,.T.,.F.)
  343. Private lGTitFluig :=( mv_par25==1 .And. lUsaSped .And. lTitulo ) //Indica que o cliente solicitou iniciar uma solicitacao de aprovacao do titulo no Fluig
  344. Private aGnreDifal := {}
  345. Private lGerDifal := .T.
  346. Private lProcDifal := AliasIndic("F0I") .AND. AliasIndic("F0J") .AND. AliasIndic("F0K")
  347.  
  348. IF (GetNewPar("MV_PZRECST","1") <> "1")
  349. aPzRecSt := &(GetNewPar("MV_PZRECST",{"",""}))
  350. EndIf
  351.  
  352. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  353. //矨penas ira montar o folder do fomentar se for de Goias e se o cliente utilizar ?
  354. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?nTitDifal := Len(aTitles)
  355. If lFomentGO
  356. Aadd(aTitles,STR0135) // "Apura玢o-Fomentar"
  357. Elseif lApurBA
  358. Aadd(aTitles,STR0233)//"Cred.Acumulado-Exporta玢o"
  359. Aadd(aTitles,STR0234)//"Cred.Acumulado-Out.hipoteses"
  360. Endif
  361. Aadd(aTitles,"D閎itos Especiais")
  362. nTitDebEsp:= Len(aTitles)
  363. IF lCon13906
  364. Aadd(aTitles,STR0267) // "Conv阯io 139/06"
  365. nTitCnv139:= Len(aTitles)
  366. EndiF
  367. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  368. //砈omente sera permitido processar filial de/ate se o processamento for consolidado.?
  369. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  370. If (nConsFil == 1 .And. !(cFilDe <= cFilAnt .Or. cFilAnt >= cFilAte)) .Or.;
  371. (nConsFil == 1 .And. (cFilDe == "" .Or. cFilAte == ""))
  372. cTitulo := STR0106 //"Processamento Consolidado"
  373. cErro := STR0107 //"O processamento consolidado (filial de/at? somente poder?ser executado "
  374. cErro += STR0108 //"se a filial inicial (filial de) for a filial consolidadora, ou seja, ser "
  375. cErro += STR0109 //"a filial da empresa selecionada no momento do processamento da rotina. No momento, a "
  376. cErro += STR0110 + cFilAnt //"filial selecionada ?a "
  377. cErro += STR0111 + cFilDe + "." //", e a filial inicial informada a ser processada foi a "
  378. cSolucao := STR0112 //"Efetue o processamento consolidado da apura玢o do ICMS apenas na empresa "
  379. cSolucao += STR0113 + cFilDe //"consolidadora. Exemplo: caso queira efetuar a apura玢o da filial "
  380. cSolucao += STR0114 + cFilDe //"selecione a filial "
  381. cSolucao += STR0115 //" antes de efetuar o processamento da rotina."
  382. xMagHelpFis(cTitulo,cErro,cSolucao)
  383. Return
  384. Endif
  385. If lFiliais
  386. nConsFil:= 1
  387. If MV_PAR22==1
  388. aLisFil :=MatFilCalc(lFiliais,,,MV_PAR22==1,,2)
  389. Else
  390. aLisFil :=MatFilCalc(lFiliais)
  391. Endif
  392. Else
  393. aLisFil:={{.T.,cFilAnt}}
  394. nConsFil := 1
  395. EndIf
  396. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  397. //砎erifica se ja foi feita apuracao para este periodo ?
  398. //矼V_USASPED - Indica se usa SPED ?
  399. //硈e sim (.T.), deve buscar informacoes de apuracao da tabela CDH ?
  400. //硈e nao (.F.), busca dos arquivos de apuracao ?
  401. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  402. If lUsaSped
  403. lMonta := CkApurCDH(nApuracao,nPeriodo,cNrLivro,@aDadIC,cLcPadExt,dDtIni,cArqApur,@aDadST,cProgram,lTitulo,@aGNREX,dDtFim,@nOpcApu,@aFoment, lGuiaRec, lExclGNR,,@aCDADifal,lAutomato)
  404. nOpcApu := Iif( nOpcApu == 2 , 1 , Iif( nOpcApu == 3 , 2 , 1 ) )
  405. Else
  406. lMonta := CheckApur(cImp,nAno,nMes,nApuracao,nPeriodo,cNrLivro,cImposto,@aDadIC,nMoedTit,cLcPadExt,@cArqApur,@aDadSt,cProgram,,lTitulo,@aFoment,@aApurExp,@aApurOut,@nOpcApu,lAutomato)
  407. nOpcApu := Iif( nOpcApu == 2 , 1 , Iif( nOpcApu == 3 , 2 , 1 ) )
  408. EndIf
  409.  
  410. //Caso utilize a integracao com o Fluig devo verificar se o usuario logado
  411. //no sistema possui cadastro no Fluig
  412. If lGTitFluig
  413.  
  414. //Busco dados do Usuario no Fluig
  415. aDadUsrFlg := FWWFGetUser( cUserName )
  416.  
  417. //Se o array estiver vazio eh porque ocorreu algum problema
  418. //na comunicacao Protheus x Fluig
  419. If !Empty( aDadUsrFlg )
  420.  
  421. //Caso a posicao 2 do array seja Nil significa que
  422. //o usuario nao existe no Fluig
  423. If Valtype( aDadUsrFlg[1][2] ) == "U"
  424.  
  425. Help( "", 1, 'Usu醨io Inv醠ido',,"O usu醨io " + cUserName + " n鉶 est?cadastrado no Fluig, a apura玢o "+;
  426. "ser?gerada normalmente sem considerar a integra玢o. ", 1, 1 )
  427.  
  428. //Seto a apuracao para nao considerar a integracao
  429. lGTitFluig := .F.
  430. EndIf
  431. Else
  432. If FWWFIsError()
  433. Help( "", 1, 'Erro na Comunica玢o Fluig',,"Ocorreu o seguinte erro na integra玢o com o Fluig " + FWWFGetError()[2] +;
  434. ", a apura玢o ser?gerada normalmente sem considerar a integra玢o", 1, 1 )
  435.  
  436. //Seto a apuracao para nao considerar a integracao
  437. lGTitFluig := .F.
  438. EndIf
  439. EndIf
  440. EndIf
  441.  
  442. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  443. //砎erifico se preciso montar novamente as inf do Fomentar?
  444. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?lAtuFomGO := Iif(Len(aFoment) > 0,.F.,.T.)
  445.  
  446. //Verifico a picture dos campos de valores da apuracao
  447. cPictVal := Iif(lUsaSped,RetPictVal(),"@E 999,999,999.99")
  448.  
  449. If lMonta
  450.  
  451. If lAutomato
  452. If FindFunction("GetParAuto")
  453. aRetAuto := GetParAuto(cTestCase)
  454. EndIf
  455. EndIf
  456.  
  457. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  458. //矼ontagem do aCols (5) - Resumo da Apuracao - ICMS ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  459. AADD(aCOLS5,{" "," "," ","","","",.F.})
  460. AADD(aCOLS5,{" "," ",STR0019,"","","",.F.}) //" DEBITO DO IMPOSTO "
  461. AADD(aCOLS5,{" "," "," ","","","",.F.})
  462. AADD(aCOLS5,{"001"," ",STR0020,0,"","",.F.}) //"Por Saidas/Prestacoes com debito do Imposto "
  463. AADD(aCOLS5,{"002","002.00 ",STR0021,0,"","",.F.}) //"Outros Debitos "
  464. For nX:=1 to Len(aDadIC)
  465. IF aDadIC[nX][1]=="002"
  466. IF lUsaSped .And. len(aDadIC[nX]) == 8
  467. 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
  468. Else
  469. AADD(aCOLS5,{"002",aDadIC[nX][4],aDadIC[nX][2],aDadIC[nX][3],aDadIC[nX][5],aDadIC[nX][6],.F.}) //"Texto do usuario
  470. EndIf
  471. Endif
  472. Next nX
  473.  
  474. If lAutomato .And. lUsaSped
  475. For nPosAuto :=1 to Len(aRetAuto)
  476. IF aRetAuto[nPosAuto][2]=="05" .And. aRetAuto[nPosAuto][3]=="002"
  477.  
  478. If aRetAuto[nPosAuto][1] == "Man"
  479. nPosPad := aScan(aCOLS5,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  480. If nPosPad == 0
  481. AtuAcols(aCOLS5,nPosPad,aRetAuto,nPosAuto)
  482. EndIf
  483. Elseif aRetAuto[nPosAuto][1] == "Aut"
  484. nPosPad := aScan(aCOLS5,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  485. If nPosPad > 0
  486. AtuAcols(aCOLS5,nPosPad,aRetAuto,nPosAuto)
  487. EndIf
  488. EndIf
  489.  
  490. EndIf
  491. Next nX
  492. EndIf
  493.  
  494. AADD(aCOLS5,{"003","003.00 ",STR0022,0,"","",.F.}) //"Estorno de Creditos "
  495. For nX:=1 to Len(aDadIC)
  496. IF aDadIC[nX][1]=="003"
  497. IF lUsaSped .And. len(aDadIC[nX]) == 8
  498. 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
  499. Else
  500. AADD(aCOLS5,{"003",aDadIC[nX][4],aDadIC[nX][2],aDadIC[nX][3],aDadIC[nX][5],aDadIC[nX][6],.F.}) //"Texto do usuario
  501. EndIf
  502. Endif
  503. Next nX
  504.  
  505. If lAutomato .And. lUsaSped
  506. For nPosAuto :=1 to Len(aRetAuto)
  507. IF aRetAuto[nPosAuto][2]=="05" .And. aRetAuto[nPosAuto][3]=="003"
  508.  
  509. If aRetAuto[nPosAuto][1] == "Man"
  510. nPosPad := aScan(aCOLS5,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  511. If nPosPad == 0
  512. AtuAcols(aCOLS5,nPosPad,aRetAuto,nPosAuto)
  513. EndIf
  514. Elseif aRetAuto[nPosAuto][1] == "Aut"
  515. nPosPad := aScan(aCOLS5,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  516. If nPosPad > 0
  517. AtuAcols(aCOLS5,nPosPad,aRetAuto,nPosAuto)
  518. EndIf
  519. EndIf
  520.  
  521. EndIf
  522. Next nX
  523. EndIf
  524.  
  525. If FindFunction("GetSumDH0") .And. AliasIndic("DH0")
  526. nDH0:= GetSumDH0(DTos(dDtIni),DTos(dDtFim),"ICM")
  527. If nDH0 > 0
  528. AADD(aCOLS5,{"003","003.99 ","Estorno de Credito CIAP",nDH0,"","",.F.}) //"Estorno de Creditos "
  529. EndIf
  530. Endif
  531.  
  532. AADD(aCOLS5,{"004"," ",STR0023,0,"","",.F.}) //"Sub-Total "
  533. AADD(aCOLS5,{" "," "," ","","","",.F.})
  534. AADD(aCOLS5,{" "," ",STR0024,"","","",.F.}) //" CREDITO DO IMPOSTO "
  535. AADD(aCOLS5,{" "," "," ","","","",.F.})
  536. AADD(aCOLS5,{"005"," ",STR0025,0,"","",.F.}) //"Por Entradas/Aquisicoes com Credito do Imposto"
  537. AADD(aCOLS5,{"006","006.00 ",STR0026,0," ","",.F.}) //"Outros Creditos "
  538. For nX:=1 to Len(aDadIC)
  539. IF aDadIC[nX][1]=="006"
  540. IF lUsaSped .And. len(aDadIC[nX]) == 8
  541. 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
  542. Else
  543. AADD(aCOLS5,{"006",aDadIC[nX][4],aDadIC[nX][2],aDadIC[nX][3],aDadIC[nX][5],aDadIC[nX][6],.F.}) //"Texto do usuario
  544. EndIf
  545. Endif
  546. next nX
  547.  
  548. If lAutomato .And. lUsaSped
  549. For nPosAuto :=1 to Len(aRetAuto)
  550. IF aRetAuto[nPosAuto][2]=="05" .And. aRetAuto[nPosAuto][3]=="006"
  551.  
  552. If aRetAuto[nPosAuto][1] == "Man"
  553. nPosPad := aScan(aCOLS5,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  554. If nPosPad == 0
  555. AtuAcols(aCOLS5,nPosPad,aRetAuto,nPosAuto)
  556. EndIf
  557. Elseif aRetAuto[nPosAuto][1] == "Aut"
  558. nPosPad := aScan(aCOLS5,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  559. If nPosPad > 0
  560. AtuAcols(aCOLS5,nPosPad,aRetAuto,nPosAuto)
  561. EndIf
  562. EndIf
  563.  
  564. EndIf
  565. Next nX
  566. EndIf
  567.  
  568. AADD(aCOLS5,{"007","007.00 ",STR0027,0,"","",.F.}) //"Estorno de Debitos "
  569. For nX:=1 to Len(aDadIC)
  570. IF aDadIC[nX][1]=="007"
  571. IF lUsaSped .And. len(aDadIC[nX]) == 8
  572. 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
  573. Else
  574. AADD(aCOLS5,{"007",aDadIC[nX][4],aDadIC[nX][2],aDadIC[nX][3],aDadIC[nX][5],aDadIC[nX][6],.F.}) //"Texto do usuario
  575. EndIf
  576. Endif
  577. Next nX
  578.  
  579. If lAutomato .And. lUsaSped
  580. For nPosAuto :=1 to Len(aRetAuto)
  581. IF aRetAuto[nPosAuto][2]=="05" .And. aRetAuto[nPosAuto][3]=="007"
  582.  
  583. If aRetAuto[nPosAuto][1] == "Man"
  584. nPosPad := aScan(aCOLS5,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  585. If nPosPad == 0
  586. AtuAcols(aCOLS5,nPosPad,aRetAuto,nPosAuto)
  587. EndIf
  588. Elseif aRetAuto[nPosAuto][1] == "Aut"
  589. nPosPad := aScan(aCOLS5,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  590. If nPosPad > 0
  591. AtuAcols(aCOLS5,nPosPad,aRetAuto,nPosAuto)
  592. EndIf
  593. EndIf
  594.  
  595. EndIf
  596. Next nX
  597. EndIf
  598.  
  599. AADD(aCOLS5,{"008"," ",STR0023,0,"","",.F.}) //"Sub-Total "
  600. AADD(aCOLS5,{"009"," ",STR0028,0,"","",.F.}) //"Saldo Credor do Periodo Anterior "
  601. AADD(aCOLS5,{"010"," ",STR0029,0,"","",.F.}) //"Total "
  602. AADD(aCOLS5,{" "," "," ","","","",.F.})
  603. AADD(aCOLS5,{" "," ",STR0030,"","","",.F.}) //" APURACAO DO SALDO "
  604. AADD(aCOLS5,{" "," "," ","","","",.F.})
  605. AADD(aCOLS5,{"011"," ",STR0031,0,"","",.F.}) //"Saldo Devedor( Debito menos Credito) "
  606. AADD(aCOLS5,{"012","012.00 ",STR0032,0,"","",.F.}) //"Deducoes "
  607. For nX:=1 to Len(aDadIC)
  608. IF aDadIC[nX][1]=="012"
  609. IF lUsaSped .And. len(aDadIC[nX]) == 8
  610. 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
  611. Else
  612. AADD(aCOLS5,{"012",aDadIC[nX][4],aDadIC[nX][2],aDadIC[nX][3],aDadIC[nX][5],aDadIC[nX][6],.F.}) //"Texto do usuario
  613. EndIf
  614. Endif
  615. next nX
  616.  
  617. If lAutomato .And. lUsaSped
  618. For nPosAuto :=1 to Len(aRetAuto)
  619. IF aRetAuto[nPosAuto][2]=="05" .And. aRetAuto[nPosAuto][3]=="012"
  620.  
  621. If aRetAuto[nPosAuto][1] == "Man"
  622. nPosPad := aScan(aCOLS5,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  623. If nPosPad == 0
  624. AtuAcols(aCOLS5,nPosPad,aRetAuto,nPosAuto)
  625. EndIf
  626. Elseif aRetAuto[nPosAuto][1] == "Aut"
  627. nPosPad := aScan(aCOLS5,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  628. If nPosPad > 0
  629. AtuAcols(aCOLS5,nPosPad,aRetAuto,nPosAuto)
  630. EndIf
  631. EndIf
  632.  
  633. EndIf
  634. Next nX
  635. EndIf
  636.  
  637. AADD(aCOLS5,{"013"," ",STR0033,0,"","",.F.}) //"Imposto a Recolher "
  638. AADD(aCOLS5,{"014"," ",STR0034,0,"","",.F.}) //"Saldo Credor ( Credito menos Debito) "
  639.  
  640. cObserv := ""
  641. For nX := 1 To Len(aDadIC)
  642. If aDadIC[nX][1]=="OBS"
  643. cObserv += aDadIC[nX][2]+CHR(13)+CHR(10)
  644. Endif
  645. Next nX
  646.  
  647. //Adiciona um elemento para gravar o CODLAN
  648. If lUsaSped
  649. aColAnt := aClone(aCOLS5)
  650. aCOLS5 := {}
  651. For nX := 1 to Len(aColAnt)
  652. If len(aColAnt[nX]) == 7
  653. AADD(aCOLS5,Array(9))
  654. For nY := 1 to 6
  655. aCOLS5[nX][nY] := aColAnt[nX][nY]
  656. Next
  657. aCOLS5[nX][7] := ""
  658. aCOLS5[nX][8] := ""
  659. aCOLS5[nX][9] := .F.
  660. Else
  661. AADD(aCOLS5,aColAnt[nX])
  662. EndIf
  663. Next
  664. EndIf
  665.  
  666. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  667. //矼ontagem do aCols (6) Resumo da Apuracao - ST ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  668. AADD(aCOLS6,{" "," "," ","","","",.F.})
  669. AADD(aCOLS6,{" "," ",STR0035,"","","",.F.}) //" DEBITO DO IMPOSTO( ST ) "
  670. AADD(aCOLS6,{" "," "," ","","","",.F.})
  671. AADD(aCOLS6,{"001"," ",STR0020,0,"","",.F.}) //"Por Saidas/Prestacoes com debito do Imposto "
  672. AADD(aCOLS6,{"002","002.00 ",STR0021,0,"","",.F.}) //"Outros Debitos "
  673. For nX:=1 to Len(aDadST)
  674. IF aDadST[nX][1]=="002"
  675. IF lUsaSped .And. len(aDadST[nX]) == 8
  676. 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
  677. Else
  678. AADD(aCOLS6,{"002",aDadST[nX][4],aDadST[nX][2],aDadST[nX][3],aDadST[nX][5],"",.F.}) //"Texto do usuario
  679. EndIf
  680. Endif
  681. next nX
  682.  
  683. If lAutomato .And. lUsaSped
  684. For nPosAuto :=1 to Len(aRetAuto)
  685. IF aRetAuto[nPosAuto][2]=="06" .And. aRetAuto[nPosAuto][3]=="002"
  686.  
  687. If aRetAuto[nPosAuto][1] == "Man"
  688. nPosPad := aScan(aCOLS6,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  689. If nPosPad == 0
  690. AtuAcols(aCOLS6,nPosPad,aRetAuto,nPosAuto)
  691. EndIf
  692. Elseif aRetAuto[nPosAuto][1] == "Aut"
  693. nPosPad := aScan(aCOLS6,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  694. If nPosPad > 0
  695. AtuAcols(aCOLS6,nPosPad,aRetAuto,nPosAuto)
  696. EndIf
  697. EndIf
  698.  
  699. EndIf
  700. Next nX
  701. EndIf
  702.  
  703. AADD(aCOLS6,{"003","003.00 ",STR0022,0,"","",.F.}) //"Estorno de Creditos "
  704. For nX:=1 to Len(aDadST)
  705. IF aDadST[nX][1]=="003"
  706. IF lUsaSped .And. len(aDadST[nX]) == 8
  707. 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
  708. Else
  709. AADD(aCOLS6,{"003",aDadST[nX][4],aDadST[nX][2],aDadST[nX][3],aDadST[nX][5],"",.F.}) //"Texto do usuario
  710. EndIf
  711. Endif
  712. next nX
  713.  
  714. If lAutomato .And. lUsaSped
  715. For nPosAuto :=1 to Len(aRetAuto)
  716. IF aRetAuto[nPosAuto][2]=="06" .And. aRetAuto[nPosAuto][3]=="003"
  717.  
  718. If aRetAuto[nPosAuto][1] == "Man"
  719. nPosPad := aScan(aCOLS6,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  720. If nPosPad == 0
  721. AtuAcols(aCOLS6,nPosPad,aRetAuto,nPosAuto)
  722. EndIf
  723. Elseif aRetAuto[nPosAuto][1] == "Aut"
  724. nPosPad := aScan(aCOLS6,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  725. If nPosPad > 0
  726. AtuAcols(aCOLS6,nPosPad,aRetAuto,nPosAuto)
  727. EndIf
  728. EndIf
  729.  
  730. EndIf
  731. Next nX
  732. EndIf
  733.  
  734. AADD(aCOLS6,{"005"," ",STR0036,0,"","",.F.}) //"SUB-TOTAL ( 001+002+003 ) "
  735. AADD(aCOLS6,{" "," "," ","","","",.F.})
  736. AADD(aCOLS6,{" "," ",STR0037,"","","",.F.}) //" CREDITO DO IMPOSTO( ST ) "
  737. AADD(aCOLS6,{" "," "," ","","","",.F.})
  738. AADD(aCOLS6,{"006"," ",STR0025,0,"","",.F.}) //"Por Entradas/Aquisicoes com Credito do Imposto"
  739. AADD(aCOLS6,{"007","007.00 ",STR0026,0," ","",.F.}) //"Outros Creditos "
  740. For nX:=1 to Len(aDadST)
  741. IF aDadST[nX][1]=="007"
  742. IF lUsaSped .And. len(aDadST[nX]) == 8
  743. 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
  744. Else
  745. AADD(aCOLS6,{"007",aDadST[nX][4],aDadST[nX][2],aDadST[nX][3],aDadST[nX][5],aDadST[nX][6],.F.}) //"Texto do usuario
  746. EndIf
  747. Endif
  748. next nX
  749.  
  750. If lAutomato .And. lUsaSped
  751. For nPosAuto :=1 to Len(aRetAuto)
  752. IF aRetAuto[nPosAuto][2]=="06" .And. aRetAuto[nPosAuto][3]=="007"
  753.  
  754. If aRetAuto[nPosAuto][1] == "Man"
  755. nPosPad := aScan(aCOLS6,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  756. If nPosPad == 0
  757. AtuAcols(aCOLS6,nPosPad,aRetAuto,nPosAuto)
  758. EndIf
  759. Elseif aRetAuto[nPosAuto][1] == "Aut"
  760. nPosPad := aScan(aCOLS6,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  761. If nPosPad > 0
  762. AtuAcols(aCOLS6,nPosPad,aRetAuto,nPosAuto)
  763. EndIf
  764. EndIf
  765.  
  766. EndIf
  767. Next nX
  768. EndIf
  769.  
  770. AADD(aCOLS6,{"008","008.00 ",STR0027,0,"","",.F.}) //"Estorno de Debitos "
  771. For nX:=1 to Len(aDadST)
  772. IF aDadST[nX][1]=="008"
  773. IF lUsaSped .And. len(aDadST[nX]) == 8
  774. 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
  775. Else
  776. AADD(aCOLS6,{"008",aDadST[nX][4],aDadST[nX][2],aDadST[nX][3],aDadST[nX][5],"",.F.}) //"Texto do usuario
  777. EndIf
  778. Endif
  779. Next nX
  780.  
  781. If lAutomato .And. lUsaSped
  782. For nPosAuto :=1 to Len(aRetAuto)
  783. IF aRetAuto[nPosAuto][2]=="06" .And. aRetAuto[nPosAuto][3]=="008"
  784.  
  785. If aRetAuto[nPosAuto][1] == "Man"
  786. nPosPad := aScan(aCOLS6,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  787. If nPosPad == 0
  788. AtuAcols(aCOLS6,nPosPad,aRetAuto,nPosAuto)
  789. EndIf
  790. Elseif aRetAuto[nPosAuto][1] == "Aut"
  791. nPosPad := aScan(aCOLS6,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  792. If nPosPad > 0
  793. AtuAcols(aCOLS6,nPosPad,aRetAuto,nPosAuto)
  794. EndIf
  795. EndIf
  796.  
  797. EndIf
  798. Next nX
  799. EndIf
  800.  
  801. AADD(aCOLS6,{"010"," ",STR0038,0,"","",.F.}) //"SUB-TOTAL ( 006+007+008 ) "
  802. AADD(aCOLS6,{"011"," ",STR0028,0,"","",.F.}) //"Saldo Credor do Periodo Anterior "
  803. AADD(aCOLS6,{"012"," ",STR0039,0,"","",.F.}) //"TOTAL ( 010+011 ) "
  804. AADD(aCOLS6,{" "," "," ","","","",.F.})
  805. AADD(aCOLS6,{" "," ",STR0040,"","","",.F.}) //" APURACAO DO SALDO( ST ) "
  806. AADD(aCOLS6,{" "," "," ","","","",.F.})
  807. AADD(aCOLS6,{"013"," ",STR0041,0,"","",.F.}) //"Saldo Devedor( 005-012 ) "
  808. AADD(aCOLS6,{"014","014.00 ",STR0032,0,"","",.F.}) //"Deducoes "
  809. For nX:=1 to Len(aDadST)
  810. IF aDadST[nX][1]=="014"
  811. IF lUsaSped .And. len(aDadST[nX]) == 8
  812. 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
  813. Else
  814. AADD(aCOLS6,{"014",aDadST[nX][4],aDadST[nX][2],aDadST[nX][3],aDadST[nX][5],"",.F.}) //"Texto do usuario
  815. EndIf
  816. Endif
  817. Next nX
  818.  
  819. If lAutomato .And. lUsaSped
  820. For nPosAuto :=1 to Len(aRetAuto)
  821. IF aRetAuto[nPosAuto][2]=="06" .And. aRetAuto[nPosAuto][3]=="014"
  822.  
  823. If aRetAuto[nPosAuto][1] == "Man"
  824. nPosPad := aScan(aCOLS6,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  825. If nPosPad == 0
  826. AtuAcols(aCOLS6,nPosPad,aRetAuto,nPosAuto)
  827. EndIf
  828. Elseif aRetAuto[nPosAuto][1] == "Aut"
  829. nPosPad := aScan(aCOLS6,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  830. If nPosPad > 0
  831. AtuAcols(aCOLS6,nPosPad,aRetAuto,nPosAuto)
  832. EndIf
  833. EndIf
  834.  
  835. EndIf
  836. Next nX
  837. EndIf
  838.  
  839. AADD(aCOLS6,{"015"," ",STR0042,0,"","",.F.}) //"Imposto a Recolher( 013-014 ) "
  840. AADD(aCOLS6,{"016"," ",STR0043,0,"","",.F.}) //"Saldo Credor ( 012-005 ) "
  841.  
  842. //Adiciona um elemento para gravar o CODLAN
  843. If lUsaSped
  844. aColAnt := aClone(aCOLS6)
  845. aCOLS6 := {}
  846. For nX := 1 to Len(aColAnt)
  847. If len(aColAnt[nX]) == 7
  848. AADD(aCOLS6,Array(9))
  849. For nY := 1 to 6
  850. aCOLS6[nX][nY] := aColAnt[nX][nY]
  851. Next
  852. aCOLS6[nX][7] := ""
  853. aCOLS6[nX][8] := ""
  854. aCOLS6[nX][9] := .F.
  855. Else
  856. AADD(aCOLS6,aColAnt[nX])
  857. EndIf
  858. Next
  859. EndIf
  860.  
  861. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  862. //矼ontagem do aCOLS(7) Informacoes Complementares -Op.Proprias?
  863. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  864. AADD(aCols7,{"015",STR0044,0,.F.}) //1-"ICMS Retido (Saidas-Devolucoes)"
  865. AADD(aCols7,{"016",STR0045,0,.F.}) //2-"ICMS Complementar (Diferencial de Aliquotas)"
  866. AADD(aCols7,{"017",STR0046,0,.F.}) //3-"ICMS Retido (Devolucoes de Vendas)"
  867. AADD(aCols7,{"018",STR0067,0,.F.}) //4-"ICMS Diferido"
  868. AADD(aCols7,{"019",STR0070,0,.F.}) //5-"ICMS Complementar (Ativo Imobilizado)"
  869. AADD(aCols7,{"020",STR0071,0,.F.}) //6-"ICMS Complementar (Mat. Uso ou Consumo)"
  870. AADD(aCols7,{"021",STR0068,0,.F.}) //7-"Transf. de Credito"
  871. AADD(aCols7,{"022",STR0069,0,.F.}) //8-"Transf. de Debito"
  872. AADD(aCols7,{"023",STR0073,0,.F.}) //9-"Credito ICMS Solidario"
  873. AADD(aCols7,{"024",STR0076,0,.F.}) //10-"Credito Estimulo"
  874. AADD(aCols7,{"025",STR0077,0,.F.}) //11-"Credito Presumido"
  875. AADD(aCols7,{"026",STR0078,0,.F.}) //12-"Credito Presumido - Prest. Servicos de Transporte"
  876. AADD(aCols7,{"027",STR0079,0,.F.}) //13-"Credito Presumido - Zona Franca de Manaus"
  877. AADD(aCols7,{"028",STR0080,0,.F.}) //14-"Credito Presumido - Serv.Transp. t韙ulo ST"
  878. AADD(aCols7,{"029",STR0086,0,.F.}) //15-"Cred Pres - Inf./Elet./Tel.-Dec.4.316 (BA)"
  879. AADD(aCols7,{"030",STR0116,0,.F.}) //16-"Fundersul - Mato Grosso do Sul"
  880. AADD(aCols7,{"031",STR0117,0,.F.}) //17-"Estorno de Credito"
  881. AADD(aCols7,{"032",STR0126,0,.F.}) //18-"Estorno de Debito"
  882. AADD(aCols7,{"033",STR0128,0,.F.}) //19-"Fust"
  883. AADD(aCols7,{"034",STR0129,0,.F.}) //20-"Funttel"
  884. AADD(aCols7,{"035",STR0235,0,.F.}) //21-"Credito Acumulado - Exporta珲es"
  885. AADD(aCols7,{"036",STR0236,0,.F.}) //22-"Credito Acumulado - Outras hip髏eses"
  886. AADD(aCols7,{"037",STR0239,0,.F.}) //23
  887. AADD(aCols7,{"038",STR0240,0,.F.}) //24
  888. AADD(aCols7,{"039",STR0241,0,.F.}) //25
  889. AADD(aCols7,{"040",STR0242,0,.F.}) //26
  890. AADD(aCols7,{"041",STR0243,0,.F.}) //27-Cred. Presumido-art.631-A do RICMS/2008
  891. AADD(aCols7,{"042",STR0244,0,.F.}) //28-FECP COMPLEMENTAR
  892. AADD(aCols7,{"043",STR0245,0,.F.}) //29-Senar
  893. AADD(aCols7,{"045",STR0252,0,.F.}) //30-Credito Outorgado
  894. AADD(aCols7,{"046",STR0256,0,.F.}) //31-"ICMS/ST Recolhido no Momento da Entrada no Estado."
  895. AADD(aCols7,{"047",STR0254,0,.F.}) //32-FECOP-Opera玢o Direta
  896. AADD(aCols7,{"048",STR0255,0,.F.}) //33-FECOP-Opera玢o Interna ST
  897. AADD(aCols7,{"049",STR0257,0,.F.}) //34-FECOP-Opera玢o Interestadual ST
  898. AADD(aCols7,{"050",STR0258,0,.F.}) //35-FECP/MG-ICMS pr髉rio
  899. AADD(aCols7,{"051",STR0259,0,.F.}) //36-FECP/MG-ICMS ST
  900. AADD(aCols7,{"052",STR0260,0,.F.}) //37-FECP/MG-ANTECIPADO
  901. AADD(aCols7,{"053",STR0261,0,.F.}) //38-FECP/MT-ICMS pr髉rio
  902. AADD(aCols7,{"054","DNVP",0,.F.}) //39-DNVP
  903. AADD(aCols7,{"055","CNVP",0,.F.}) //40-CNVP
  904. AADD(aCols7,{"063","PROTEGE-GO",0,.F.}) //41-Fundo de Protecao Social do Estado de GO - PROTEGE
  905. AADD(aCols7,{"064","FEEF-RJ",0,.F.}) //42-Fundo Estadual de Equil韇rio Fiscal do Estado do Rio de Janeiro
  906.  
  907. If lFomentGO
  908. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  909. //矼ontagem do aCOLS(8) Demonstrativo Apura玢o Fomentar ?
  910. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  911. AADD(aCols8,{" "," ",STR0136,"","","",.F.})
  912. AADD(aCols8,{" "," "," ","","","",.F.})
  913. AADD(aCols8,{" "," ",STR0137,"","","",.F.})
  914. AADD(aCols8,{" "," "," ","","","",.F.})
  915. AADD(aCols8,{"001"," ",STR0139,0,"","",.F.})
  916. AADD(aCols8,{"002"," ",STR0140,0,"","",.F.})
  917. AADD(aCols8,{"003"," ",STR0141,0,"","",.F.})
  918. AADD(aCols8,{"004"," ",STR0142,0,"","",.F.})
  919. AADD(aCols8,{"005"," ",STR0143,0,"","",.F.})
  920. AADD(aCols8,{"006"," ",STR0144,0,"","",.F.})
  921. AADD(aCols8,{"007"," ",STR0145,0,"","",.F.})
  922. AADD(aCols8,{"008"," ",STR0146,0,"","",.F.})
  923. AADD(aCols8,{"009"," ",STR0147,0,"","",.F.})
  924. AADD(aCols8,{"010"," ",STR0148,0,"","",.F.})
  925. AADD(aCols8,{" "," "," ","","","",.F.})
  926. AADD(aCols8,{" "," ",STR0276,"","","",.F.})
  927. AADD(aCols8,{" "," "," ","","","",.F.})
  928. AADD(aCols8,{"101"," ",STR0277,0,"","",.F.})
  929. AADD(aCols8,{" "," "," ","","","",.F.})
  930. AADD(aCols8,{" "," ",STR0149,"","","",.F.})
  931. AADD(aCols8,{" "," "," ","","","",.F.})
  932. AADD(aCols8,{"011"," ",STR0150,0,"","",.F.})
  933. AADD(aCols8,{"012"," ",STR0151,0,"","",.F.})
  934. AADD(aCols8,{"013"," ",STR0152,0,"","",.F.})
  935. AADD(aCols8,{"014"," ",STR0153,0,"","",.F.})
  936. AADD(aCols8,{"015"," ",STR0154,0,"","",.F.})
  937. AADD(aCols8,{"016"," ",STR0155,0,"","",.F.})
  938. AADD(aCols8,{"017"," ",STR0156,0,"","",.F.})
  939. AADD(aCols8,{"018"," ",STR0157,0,"","",.F.})
  940. AADD(aCols8,{"019"," ",STR0158,0,"","",.F.})
  941. AADD(aCols8,{"020"," ",STR0159,0,"","",.F.})
  942. AADD(aCols8,{"021"," ",STR0160,0,"","",.F.})
  943. AADD(aCols8,{"022"," ",STR0161,0,"","",.F.})
  944. AADD(aCols8,{"023"," ",STR0162,0,"","",.F.})
  945. AADD(aCols8,{"024"," ",STR0163,0,"","",.F.})
  946. AADD(aCols8,{"025"," ",STR0164,0,"","",.F.})
  947. AADD(aCols8,{"026"," ",STR0165,0,"","",.F.})
  948. AADD(aCols8,{"027"," ",STR0166,0,"","",.F.})
  949. AADD(aCols8,{"028"," ",STR0167,0,"","",.F.})
  950. AADD(aCols8,{"029"," ",STR0168,0,"","",.F.})
  951. AADD(aCols8,{"030"," ",STR0169,0,"","",.F.})
  952. AADD(aCols8,{"031"," ",STR0170,0,"","",.F.})
  953. AADD(aCols8,{" "," "," ","","","",.F.})
  954. AADD(aCols8,{" "," ",STR0171,"","","",.F.})
  955. AADD(aCols8,{" "," "," ","","","",.F.})
  956. AADD(aCols8,{"032"," ",STR0172,0,"","",.F.})
  957. AADD(aCols8,{"033"," ",STR0173,0,"","",.F.})
  958. AADD(aCols8,{"034"," ",STR0174,0,"","",.F.})
  959. AADD(aCols8,{"035"," ",STR0175,0,"","",.F.})
  960. AADD(aCols8,{"036"," ",STR0176,0,"","",.F.})
  961. AADD(aCols8,{"037"," ",STR0177,0,"","",.F.})
  962. AADD(aCols8,{"038"," ",STR0178,0,"","",.F.})
  963. AADD(aCols8,{"039"," ",STR0179,0,"","",.F.})
  964. AADD(aCols8,{"040"," ",STR0180,0,"","",.F.})
  965. AADD(aCols8,{"041"," ",STR0181,0,"","",.F.})
  966. AADD(aCols8,{"042"," ",STR0182,0,"","",.F.})
  967. AADD(aCols8,{"043"," ",STR0183,0,"","",.F.})
  968. AADD(aCols8,{"044"," ",STR0184,0,"","",.F.})
  969. AADD(aCols8,{" "," "," ","","","",.F.})
  970. AADD(aCols8,{" "," ",STR0185,"",.F.})
  971. AADD(aCols8,{" "," "," ","","","",.F.})
  972. AADD(aCols8,{" "," ",STR0186,"",.F.})
  973. AADD(aCols8,{" "," "," ","","","",.F.})
  974. AADD(aCols8,{"045"," ",STR0187,0,"","",.F.})
  975. AADD(aCols8,{"046"," ",STR0188,0,"","",.F.})
  976. AADD(aCols8,{"047"," ",STR0189,0,"","",.F.})
  977. AADD(aCols8,{"048"," ",STR0190,0,"","",.F.})
  978. AADD(aCols8,{"049"," ",STR0191,0,"","",.F.})
  979. AADD(aCols8,{"050"," ",STR0192,0,"","",.F.})
  980. AADD(aCols8,{"051"," ",STR0193,0,"","",.F.})
  981. AADD(aCols8,{"052"," ",STR0194,0,"","",.F.})
  982. AADD(aCols8,{"053"," ",STR0195,0,"","",.F.})
  983. AADD(aCols8,{"054"," ",STR0196,0,"","",.F.})
  984. AADD(aCols8,{"055"," ",STR0197,0,"","",.F.})
  985. AADD(aCols8,{"056"," ",STR0198,0,"","",.F.})
  986. AADD(aCols8,{"057"," ",STR0199,0,"","",.F.})
  987. AADD(aCols8,{"058"," ",STR0200,0,"","",.F.})
  988. AADD(aCols8,{"059"," ",STR0201,0,"","",.F.})
  989. AADD(aCols8,{"060"," ",STR0202,0,"","",.F.})
  990. AADD(aCols8,{"061"," ",STR0203,0,"","",.F.})
  991. AADD(aCols8,{" "," "," ","","","",.F.})
  992. AADD(aCols8,{" "," ",STR0204,"","","",.F.})
  993. AADD(aCols8,{" "," "," ","","","",.F.})
  994. AADD(aCols8,{"062"," ",STR0205,0,"","",.F.})
  995. AADD(aCols8,{"063"," ",STR0206,0,"","",.F.})
  996. AADD(aCols8,{"064"," ",STR0207,0,"","",.F.})
  997. AADD(aCols8,{"065"," ",STR0208,0,"","",.F.})
  998. AADD(aCols8,{"066"," ",STR0209,0,"","",.F.})
  999. AADD(aCols8,{"067"," ",STR0210,0,"","",.F.})
  1000. AADD(aCols8,{"068"," ",STR0211,0,"","",.F.})
  1001. AADD(aCols8,{"069"," ",STR0212,0,"","",.F.})
  1002. AADD(aCols8,{"070"," ",STR0213,0,"","",.F.})
  1003. AADD(aCols8,{"071"," ",STR0214,0,"","",.F.})
  1004. AADD(aCols8,{"072"," ",STR0215,0,"","",.F.})
  1005. AADD(aCols8,{" "," "," ","","","",.F.})
  1006. AADD(aCols8,{" "," ",STR0216,"","","",.F.})
  1007. AADD(aCols8,{" "," "," ","","","",.F.})
  1008. AADD(aCols8,{"073"," ",STR0217,0,"","",.F.})
  1009. AADD(aCols8,{"074"," ",STR0218,0,"","",.F.})
  1010. AADD(aCols8,{"075"," ",STR0219,0,"","",.F.})
  1011. AADD(aCols8,{"076"," ",STR0220,0,"","",.F.})
  1012. AADD(aCols8,{"077"," ",STR0221,0,"","",.F.})
  1013. AADD(aCols8,{"078"," ",STR0222,0,"","",.F.})
  1014. AADD(aCols8,{"079"," ",STR0223,0,"","",.F.})
  1015. AADD(aCols8,{"080"," ",STR0224,0,"","",.F.})
  1016. AADD(aCols8,{"081"," ",STR0225,0,"","",.F.})
  1017. AADD(aCols8,{"082"," ",STR0226,0,"","",.F.})
  1018. AADD(aCols8,{"083"," ",STR0227,0,"","",.F.})
  1019. AADD(aCols8,{"084"," ",STR0228,0,"","",.F.})
  1020.  
  1021. //Tenho que carregar os valores j?definidos na apuracao caso ele esteja refazendo uma apuracao j?gravada anteriormente
  1022. For nX:=1 to Len(aFoment)
  1023. IF aFoment[nX][1]=="FOM" .And.;
  1024. (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.;
  1025. 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.;
  1026. 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")
  1027.  
  1028. nY := aScan(aCols8,{|x| x[1] == Substr(aFoment[nX][2],1,3)})
  1029. If nY <> 0
  1030. nValAtuF := Val(Alltrim(Substr(aFoment[nX][2],79,14)))
  1031. aCols8[nY][4] := nValAtuF
  1032. Endif
  1033. Endif
  1034. Next nX
  1035. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  1036. //?Tratamento para Credito Acumulado de ICMS - Bahia ?
  1037. //?Artigos 106 a 109 do RICMS/BA ?
  1038. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? Elseif lApurBA
  1039. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  1040. //矼ontagem do aCOLS(8) - Credito Acumulado BA - Exportacoes ?
  1041. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  1042. AADD(aCols8,{" "," "," ","","","",.F.})
  1043. AADD(aCols8,{" "," ",STR0019,"","","",.F.}) //" DEBITO DO IMPOSTO "
  1044. AADD(aCols8,{" "," "," ","","","",.F.})
  1045. AADD(aCols8,{"001"," ",STR0020,0,"","",.F.}) //"Por Saidas/Prestacoes com debito do Imposto "
  1046. AADD(aCols8,{"002","002.00 ",STR0021,0,"","",.F.}) //"Outros Debitos "
  1047. For nX:=1 to Len(aApurExp)
  1048. IF aApurExp[nX][1]=="002"
  1049. IF lUsaSped .And. len(aApurExp[nX]) == 7
  1050. 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
  1051. Else
  1052. AADD(aCols8,{"002",aApurExp[nX][4],aApurExp[nX][2],aApurExp[nX][3],aApurExp[nX][5],aApurExp[nX][6],.F.}) //"Texto do usuario
  1053. EndIf
  1054. Endif
  1055. Next nX
  1056.  
  1057. If lAutomato .And. lUsaSped
  1058. For nPosAuto :=1 to Len(aRetAuto)
  1059. IF aRetAuto[nPosAuto][2]=="08" .And. aRetAuto[nPosAuto][3]=="002"
  1060.  
  1061. If aRetAuto[nPosAuto][1] == "Man"
  1062. nPosPad := aScan(aCols8,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1063. If nPosPad == 0
  1064. AtuAcols(aCols8,nPosPad,aRetAuto,nPosAuto)
  1065. EndIf
  1066. Elseif aRetAuto[nPosAuto][1] == "Aut"
  1067. nPosPad := aScan(aCols8,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1068. If nPosPad > 0
  1069. AtuAcols(aCols8,nPosPad,aRetAuto,nPosAuto)
  1070. EndIf
  1071. EndIf
  1072.  
  1073. EndIf
  1074. Next nX
  1075. EndIf
  1076.  
  1077. AADD(aCols8,{"003","003.00 ",STR0022,0,"","",.F.}) //"Estorno de Creditos "
  1078. For nX:=1 to Len(aApurExp)
  1079. IF aApurExp[nX][1]=="003"
  1080. IF lUsaSped .And. len(aApurExp[nX]) == 7
  1081. 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
  1082. Else
  1083. AADD(aCols8,{"003",aApurExp[nX][4],aApurExp[nX][2],aApurExp[nX][3],aApurExp[nX][5],aApurExp[nX][6],.F.}) //"Texto do usuario
  1084. EndIf
  1085. Endif
  1086. Next nX
  1087.  
  1088. If lAutomato .And. lUsaSped
  1089. For nPosAuto :=1 to Len(aRetAuto)
  1090. IF aRetAuto[nPosAuto][2]=="08" .And. aRetAuto[nPosAuto][3]=="003"
  1091.  
  1092. If aRetAuto[nPosAuto][1] == "Man"
  1093. nPosPad := aScan(aCols8,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1094. If nPosPad == 0
  1095. AtuAcols(aCols8,nPosPad,aRetAuto,nPosAuto)
  1096. EndIf
  1097. Elseif aRetAuto[nPosAuto][1] == "Aut"
  1098. nPosPad := aScan(aCols8,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1099. If nPosPad > 0
  1100. AtuAcols(aCols8,nPosPad,aRetAuto,nPosAuto)
  1101. EndIf
  1102. EndIf
  1103.  
  1104. EndIf
  1105. Next nX
  1106. EndIf
  1107.  
  1108. AADD(aCols8,{"004"," ",STR0023,0,"","",.F.}) //"Sub-Total "
  1109. AADD(aCols8,{" "," "," ","","","",.F.})
  1110. AADD(aCols8,{" "," ",STR0024,"","","",.F.}) //" CREDITO DO IMPOSTO "
  1111. AADD(aCols8,{" "," "," ","","","",.F.})
  1112. AADD(aCols8,{"005"," ","Entradas/Aquisicoes com Credito do Imposto",0,"","",.F.}) //"Por Entradas/Aquisicoes com Credito do Imposto"
  1113. AADD(aCols8,{"006","006.00 ",STR0026,0," ","",.F.}) //"Outros Creditos "
  1114. For nX:=1 to Len(aApurExp)
  1115. IF aApurExp[nX][1]=="006"
  1116. IF lUsaSped .And. len(aApurExp[nX]) == 7
  1117. 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
  1118. Else
  1119. AADD(aCols8,{"006",aApurExp[nX][4],aApurExp[nX][2],aApurExp[nX][3],aApurExp[nX][5],aApurExp[nX][6],.F.}) //"Texto do usuario
  1120. EndIf
  1121. Endif
  1122. next nX
  1123.  
  1124. If lAutomato .And. lUsaSped
  1125. For nPosAuto :=1 to Len(aRetAuto)
  1126. IF aRetAuto[nPosAuto][2]=="08" .And. aRetAuto[nPosAuto][3]=="006"
  1127.  
  1128. If aRetAuto[nPosAuto][1] == "Man"
  1129. nPosPad := aScan(aCols8,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1130. If nPosPad == 0
  1131. AtuAcols(aCols8,nPosPad,aRetAuto,nPosAuto)
  1132. EndIf
  1133. Elseif aRetAuto[nPosAuto][1] == "Aut"
  1134. nPosPad := aScan(aCols8,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1135. If nPosPad > 0
  1136. AtuAcols(aCols8,nPosPad,aRetAuto,nPosAuto)
  1137. EndIf
  1138. EndIf
  1139.  
  1140. EndIf
  1141. Next nX
  1142. EndIf
  1143.  
  1144. AADD(aCols8,{"007","007.00 ",STR0027,0,"","",.F.}) //"Estorno de Debitos "
  1145. For nX:=1 to Len(aApurExp)
  1146. IF aApurExp[nX][1]=="007"
  1147. IF lUsaSped .And. len(aApurExp[nX]) == 7
  1148. 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
  1149. Else
  1150. AADD(aCols8,{"007",aApurExp[nX][4],aApurExp[nX][2],aApurExp[nX][3],aApurExp[nX][5],aApurExp[nX][6],.F.}) //"Texto do usuario
  1151. EndIf
  1152. Endif
  1153. Next nX
  1154.  
  1155. If lAutomato .And. lUsaSped
  1156. For nPosAuto :=1 to Len(aRetAuto)
  1157. IF aRetAuto[nPosAuto][2]=="08" .And. aRetAuto[nPosAuto][3]=="007"
  1158.  
  1159. If aRetAuto[nPosAuto][1] == "Man"
  1160. nPosPad := aScan(aCols8,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1161. If nPosPad == 0
  1162. AtuAcols(aCols8,nPosPad,aRetAuto,nPosAuto)
  1163. EndIf
  1164. Elseif aRetAuto[nPosAuto][1] == "Aut"
  1165. nPosPad := aScan(aCols8,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1166. If nPosPad > 0
  1167. AtuAcols(aCols8,nPosPad,aRetAuto,nPosAuto)
  1168. EndIf
  1169. EndIf
  1170.  
  1171. EndIf
  1172. Next nX
  1173. EndIf
  1174.  
  1175. AADD(aCols8,{"008"," ",STR0023,0,"","",.F.}) //"Sub-Total "
  1176. AADD(aCols8,{"009"," ",STR0028,0,"","",.F.}) //"Saldo Credor do Periodo Anterior "
  1177. AADD(aCols8,{"010"," ",STR0029,0,"","",.F.}) //"Total "
  1178. AADD(aCols8,{" "," "," ","","","",.F.})
  1179. AADD(aCols8,{" "," ",STR0030,"","","",.F.}) //" APURACAO DO SALDO "
  1180. AADD(aCols8,{" "," "," ","","","",.F.})
  1181. AADD(aCols8,{"011"," ",STR0031,0,"","",.F.}) //"Saldo Devedor( Debito menos Credito) "
  1182. AADD(aCols8,{"012","012.00 ",STR0032,0,"","",.F.}) //"Deducoes "
  1183. For nX:=1 to Len(aApurExp)
  1184. IF aApurExp[nX][1]=="012"
  1185. IF lUsaSped .And. len(aApurExp[nX]) == 7
  1186. 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
  1187. Else
  1188. AADD(aCols8,{"012",aApurExp[nX][4],aApurExp[nX][2],aApurExp[nX][3],aApurExp[nX][5],aApurExp[nX][6],.F.}) //"Texto do usuario
  1189. EndIf
  1190. Endif
  1191. next nX
  1192.  
  1193. If lAutomato .And. lUsaSped
  1194. For nPosAuto :=1 to Len(aRetAuto)
  1195. IF aRetAuto[nPosAuto][2]=="08" .And. aRetAuto[nPosAuto][3]=="012"
  1196.  
  1197. If aRetAuto[nPosAuto][1] == "Man"
  1198. nPosPad := aScan(aCols8,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1199. If nPosPad == 0
  1200. AtuAcols(aCols8,nPosPad,aRetAuto,nPosAuto)
  1201. EndIf
  1202. Elseif aRetAuto[nPosAuto][1] == "Aut"
  1203. nPosPad := aScan(aCols8,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1204. If nPosPad > 0
  1205. AtuAcols(aCols8,nPosPad,aRetAuto,nPosAuto)
  1206. EndIf
  1207. EndIf
  1208.  
  1209. EndIf
  1210. Next nX
  1211. EndIf
  1212.  
  1213. AADD(aCols8,{"013"," ",STR0033,0,"","",.F.}) //"Imposto a Recolher "
  1214. AADD(aCols8,{"014"," ",STR0034,0,"","",.F.}) //"Saldo Credor ( Credito menos Debito) "
  1215. cObserv := ""
  1216. For nX := 1 To Len(aApurExp)
  1217. If aApurExp[nX][1]=="OBS"
  1218. cObserv += aApurExp[nX][2]+CHR(13)+CHR(10)
  1219. Endif
  1220. Next nX
  1221. //Adiciona um elemento para gravar o CODLAN
  1222. If lUsaSped
  1223. aColAnt := aClone(aCols8)
  1224. aCOLS8 := {}
  1225. For nX := 1 to Len(aColAnt)
  1226. If len(aColAnt[nX]) == 7
  1227. AADD(aCols8,Array(8))
  1228. For nY := 1 to 6
  1229. aCols8[nX][nY] := aColAnt[nX][nY]
  1230. Next
  1231. aCols8[nX][7] := ""
  1232. aCols8[nX][8] := .F.
  1233. Else
  1234. AADD(aCols8,aColAnt[nX])
  1235. EndIf
  1236. Next
  1237. EndIf
  1238. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  1239. //矼ontagem do aCOLS(9) - Credito Acumulado BA - Outras hipoteses ?
  1240. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  1241. AADD(aCols9,{" "," "," ","","","",.F.})
  1242. AADD(aCols9,{" "," ",STR0019,"","","",.F.}) //" DEBITO DO IMPOSTO "
  1243. AADD(aCols9,{" "," "," ","","","",.F.})
  1244. AADD(aCols9,{"001"," ",STR0020,0,"","",.F.}) //"Por Saidas/Prestacoes com debito do Imposto "
  1245. AADD(aCols9,{"002","002.00 ",STR0021,0,"","",.F.}) //"Outros Debitos "
  1246. For nX:=1 to Len(aApurOut)
  1247. IF aApurOut[nX][1]=="002"
  1248. IF lUsaSped .And. len(aApurOut[nX]) == 7
  1249. 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
  1250. Else
  1251. AADD(aCols9,{"002",aApurOut[nX][4],aApurOut[nX][2],aApurOut[nX][3],aApurOut[nX][5],aApurOut[nX][6],.F.}) //"Texto do usuario
  1252. EndIf
  1253. Endif
  1254. Next nX
  1255.  
  1256. If lAutomato .And. lUsaSped
  1257. For nPosAuto :=1 to Len(aRetAuto)
  1258. IF aRetAuto[nPosAuto][2]=="09" .And. aRetAuto[nPosAuto][3]=="002"
  1259.  
  1260. If aRetAuto[nPosAuto][1] == "Man"
  1261. nPosPad := aScan(aCols9,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1262. If nPosPad == 0
  1263. AtuAcols(aCols9,nPosPad,aRetAuto,nPosAuto)
  1264. EndIf
  1265. Elseif aRetAuto[nPosAuto][1] == "Aut"
  1266. nPosPad := aScan(aCols9,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1267. If nPosPad > 0
  1268. AtuAcols(aCols9,nPosPad,aRetAuto,nPosAuto)
  1269. EndIf
  1270. EndIf
  1271.  
  1272. EndIf
  1273. Next nX
  1274. EndIf
  1275.  
  1276. AADD(aCols9,{"003","003.00 ",STR0022,0,"","",.F.}) //"Estorno de Creditos "
  1277. For nX:=1 to Len(aApurOut)
  1278. IF aApurOut[nX][1]=="003"
  1279. IF lUsaSped .And. len(aApurOut[nX]) == 7
  1280. 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
  1281. Else
  1282. AADD(aCols9,{"003",aApurOut[nX][4],aApurOut[nX][2],aApurOut[nX][3],aApurOut[nX][5],aApurOut[nX][6],.F.}) //"Texto do usuario
  1283. EndIf
  1284. Endif
  1285. Next nX
  1286.  
  1287. If lAutomato .And. lUsaSped
  1288. For nPosAuto :=1 to Len(aRetAuto)
  1289. IF aRetAuto[nPosAuto][2]=="09" .And. aRetAuto[nPosAuto][3]=="003"
  1290.  
  1291. If aRetAuto[nPosAuto][1] == "Man"
  1292. nPosPad := aScan(aCols9,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1293. If nPosPad == 0
  1294. AtuAcols(aCols9,nPosPad,aRetAuto,nPosAuto)
  1295. EndIf
  1296. Elseif aRetAuto[nPosAuto][1] == "Aut"
  1297. nPosPad := aScan(aCols9,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1298. If nPosPad > 0
  1299. AtuAcols(aCols9,nPosPad,aRetAuto,nPosAuto)
  1300. EndIf
  1301. EndIf
  1302.  
  1303. EndIf
  1304. Next nX
  1305. EndIf
  1306.  
  1307. AADD(aCols9,{"004"," ",STR0023,0,"","",.F.}) //"Sub-Total "
  1308. AADD(aCols9,{" "," "," ","","","",.F.})
  1309. AADD(aCols9,{" "," ",STR0024,"","","",.F.}) //" CREDITO DO IMPOSTO "
  1310. AADD(aCols9,{" "," "," ","","","",.F.})
  1311. AADD(aCols9,{"005"," ","Entradas/Aquisicoes com Credito do Imposto",0,"","",.F.}) //"Por Entradas/Aquisicoes com Credito do Imposto"
  1312. AADD(aCols9,{"006","006.00 ",STR0026,0," ","",.F.}) //"Outros Creditos "
  1313. For nX:=1 to Len(aApurOut)
  1314. IF aApurOut[nX][1]=="006"
  1315. IF lUsaSped .And. len(aApurOut[nX]) == 7
  1316. 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
  1317. Else
  1318. AADD(aCols9,{"006",aApurOut[nX][4],aApurOut[nX][2],aApurOut[nX][3],aApurOut[nX][5],aApurOut[nX][6],.F.}) //"Texto do usuario
  1319. EndIf
  1320. Endif
  1321. next nX
  1322.  
  1323. If lAutomato .And. lUsaSped
  1324. For nPosAuto :=1 to Len(aRetAuto)
  1325. IF aRetAuto[nPosAuto][2]=="09" .And. aRetAuto[nPosAuto][3]=="006"
  1326.  
  1327. If aRetAuto[nPosAuto][1] == "Man"
  1328. nPosPad := aScan(aCols9,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1329. If nPosPad == 0
  1330. AtuAcols(aCols9,nPosPad,aRetAuto,nPosAuto)
  1331. EndIf
  1332. Elseif aRetAuto[nPosAuto][1] == "Aut"
  1333. nPosPad := aScan(aCols9,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1334. If nPosPad > 0
  1335. AtuAcols(aCols9,nPosPad,aRetAuto,nPosAuto)
  1336. EndIf
  1337. EndIf
  1338.  
  1339. EndIf
  1340. Next nX
  1341. EndIf
  1342.  
  1343. AADD(aCols9,{"007","007.00 ",STR0027,0,"","",.F.}) //"Estorno de Debitos "
  1344. For nX:=1 to Len(aApurOut)
  1345. IF aApurOut[nX][1]=="007"
  1346. IF lUsaSped .And. len(aApurOut[nX]) == 7
  1347. 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
  1348. Else
  1349. AADD(aCols9,{"007",aApurOut[nX][4],aApurOut[nX][2],aApurOut[nX][3],aApurOut[nX][5],aApurOut[nX][6],.F.}) //"Texto do usuario
  1350. EndIf
  1351. Endif
  1352. Next nX
  1353.  
  1354. If lAutomato .And. lUsaSped
  1355. For nPosAuto :=1 to Len(aRetAuto)
  1356. IF aRetAuto[nPosAuto][2]=="09" .And. aRetAuto[nPosAuto][3]=="007"
  1357.  
  1358. If aRetAuto[nPosAuto][1] == "Man"
  1359. nPosPad := aScan(aCols9,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1360. If nPosPad == 0
  1361. AtuAcols(aCols9,nPosPad,aRetAuto,nPosAuto)
  1362. EndIf
  1363. Elseif aRetAuto[nPosAuto][1] == "Aut"
  1364. nPosPad := aScan(aCols9,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1365. If nPosPad > 0
  1366. AtuAcols(aCols9,nPosPad,aRetAuto,nPosAuto)
  1367. EndIf
  1368. EndIf
  1369.  
  1370. EndIf
  1371. Next nX
  1372. EndIf
  1373.  
  1374. AADD(aCols9,{"008"," ",STR0023,0,"","",.F.}) //"Sub-Total "
  1375. AADD(aCols9,{"009"," ",STR0028,0,"","",.F.}) //"Saldo Credor do Periodo Anterior "
  1376. AADD(aCols9,{"010"," ",STR0029,0,"","",.F.}) //"Total "
  1377. AADD(aCols9,{" "," "," ","","","",.F.})
  1378. AADD(aCols9,{" "," ",STR0030,"","","",.F.}) //" APURACAO DO SALDO "
  1379. AADD(aCols9,{" "," "," ","","","",.F.})
  1380. AADD(aCols9,{"011"," ",STR0031,0,"","",.F.}) //"Saldo Devedor( Debito menos Credito) "
  1381. AADD(aCols9,{"012","012.00 ",STR0032,0,"","",.F.}) //"Deducoes "
  1382. For nX:=1 to Len(aApurOut)
  1383. IF aApurOut[nX][1]=="012"
  1384. IF lUsaSped .And. len(aApurOut[nX]) == 7
  1385. 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
  1386. Else
  1387. AADD(aCols9,{"012",aApurOut[nX][4],aApurOut[nX][2],aApurOut[nX][3],aApurOut[nX][5],aApurOut[nX][6],.F.}) //"Texto do usuario
  1388. EndIf
  1389. Endif
  1390. next nX
  1391.  
  1392. If lAutomato .And. lUsaSped
  1393. For nPosAuto :=1 to Len(aRetAuto)
  1394. IF aRetAuto[nPosAuto][2]=="09" .And. aRetAuto[nPosAuto][3]=="012"
  1395.  
  1396. If aRetAuto[nPosAuto][1] == "Man"
  1397. nPosPad := aScan(aCols9,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1398. If nPosPad == 0
  1399. AtuAcols(aCols9,nPosPad,aRetAuto,nPosAuto)
  1400. EndIf
  1401. Elseif aRetAuto[nPosAuto][1] == "Aut"
  1402. nPosPad := aScan(aCols9,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1403. If nPosPad > 0
  1404. AtuAcols(aCols9,nPosPad,aRetAuto,nPosAuto)
  1405. EndIf
  1406. EndIf
  1407.  
  1408. EndIf
  1409. Next nX
  1410. EndIf
  1411.  
  1412. AADD(aCols9,{"013"," ",STR0033,0,"","",.F.}) //"Imposto a Recolher "
  1413. AADD(aCols9,{"014"," ",STR0034,0,"","",.F.}) //"Saldo Credor ( Credito menos Debito) "
  1414. cObserv := ""
  1415. For nX := 1 To Len(aApurOut)
  1416. If aApurOut[nX][1]=="OBS"
  1417. cObserv += aApurOut[nX][2]+CHR(13)+CHR(10)
  1418. Endif
  1419. Next nX
  1420. //Adiciona um elemento para gravar o CODLAN
  1421. If lUsaSped
  1422. aColAnt := aClone(aCols9)
  1423. aCOLS9 := {}
  1424. For nX := 1 to Len(aColAnt)
  1425. If len(aColAnt[nX]) == 7
  1426. AADD(aCols9,Array(8))
  1427. For nY := 1 to 6
  1428. aCols9[nX][nY] := aColAnt[nX][nY]
  1429. Next
  1430. aCols9[nX][7] := ""
  1431. aCols9[nX][8] := .F.
  1432. Else
  1433. AADD(aCols9,aColAnt[nX])
  1434. EndIf
  1435. Next
  1436. EndIf
  1437. Endif
  1438.  
  1439. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  1440. //矼ontagem do aCOLS(10) - D閎itos Especiais.?
  1441. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  1442.  
  1443. IF lUsaSped
  1444. AADD(aCOLS10,{" "," ",Space(30)+"DEBITOS ESPECIAIS - ICMS" ,"" ,"" ,"" ,"" ,.F.})
  1445. AADD(aCOLS10,{"900","900.00 ",STR0238 ,0 ,"" ,"" ,"" ,.F.})
  1446. Else
  1447. AADD(aCOLS10,{" "," ",Space(30)+"DEBITOS ESPECIAIS - ICMS" ,"" ,"" ,"" ,.F.})
  1448. AADD(aCOLS10,{"900","900.00 ",STR0238 ,0 ,"" ,"" ,.F.})
  1449. EndIf
  1450. For nX:=1 to Len(aDadIC)
  1451. IF aDadIC[nX][1]=="900"
  1452. IF lUsaSped .And. len(aDadIC[nX]) == 7
  1453. 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
  1454. Else
  1455. AADD(aCOLS10,{"900",Padr(aDadIC[nX][4],10),aDadIC[nX][2],aDadIC[nX][3],aDadIC[nX][5],aDadIC[nX][6],.F.}) //"Texto do usuario
  1456. EndIf
  1457. Endif
  1458. Next nX
  1459.  
  1460. If lAutomato .And. lUsaSped
  1461. For nPosAuto :=1 to Len(aRetAuto)
  1462. IF aRetAuto[nPosAuto][2]=="10" .And. aRetAuto[nPosAuto][3]=="900"
  1463.  
  1464. If aRetAuto[nPosAuto][1] == "Man"
  1465. nPosPad := aScan(aCOLS10,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1466. If nPosPad == 0
  1467. AtuAcols(aCols10,nPosPad,aRetAuto,nPosAuto)
  1468. EndIf
  1469. Elseif aRetAuto[nPosAuto][1] == "Aut"
  1470. nPosPad := aScan(aCOLS10,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1471. If nPosPad > 0
  1472. AtuAcols(aCols10,nPosPad,aRetAuto,nPosAuto)
  1473. EndIf
  1474. EndIf
  1475.  
  1476. EndIf
  1477. Next nX
  1478. EndIf
  1479.  
  1480. IF lUsaSped
  1481. AADD(aCOLS10,{" "," ","" ,"" ,"" ,"" ,"" ,.F.})
  1482.  
  1483. AADD(aCOLS10,{" "," ",Space(27)+"DEBITOS ESPECIAIS - ICMS/ST" ,"" ,"" ,"" ,"" ,.F.})
  1484. AADD(aCOLS10,{"901","901.00 ",STR0238 ,0 ,"" ,"" ,"" ,.F.})
  1485. Else
  1486. AADD(aCOLS10,{" "," ","" ,"" ,"" ,"" ,.F.})
  1487.  
  1488. AADD(aCOLS10,{" "," ",Space(27)+"DEBITOS ESPECIAIS - ICMS/ST" ,"" ,"" ,"" ,.F.})
  1489. AADD(aCOLS10,{"901","901.00 ",STR0238 ,0 ,"" ,"" ,.F.})
  1490. EndIf
  1491. For nX:=1 to Len(aDadST)
  1492. IF aDadST[nX][1]=="901"
  1493. IF lUsaSped .And. len(aDadST[nX]) == 7
  1494. AADD(aCOLS10,{"901",Padr(AllTrim(aDadST[nX][4]),10),aDadST[nX][2],aDadST[nX][3],aDadST[nX][5],"",aDadST[nX][7],.F.})
  1495. Else
  1496. AADD(aCOLS10,{"901",Padr(aDadST[nX][4],10),aDadST[nX][2],aDadST[nX][3],aDadST[nX][5],"",.F.})
  1497. EndIf
  1498. Endif
  1499. Next nX
  1500.  
  1501. If lAutomato .And. lUsaSped
  1502. For nPosAuto :=1 to Len(aRetAuto)
  1503. IF aRetAuto[nPosAuto][2]=="10" .And. aRetAuto[nPosAuto][3]=="901"
  1504.  
  1505. If aRetAuto[nPosAuto][1] == "Man"
  1506. nPosPad := aScan(aCOLS10,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1507. If nPosPad == 0
  1508. AtuAcols(aCols10,nPosPad,aRetAuto,nPosAuto)
  1509. EndIf
  1510. Elseif aRetAuto[nPosAuto][1] == "Aut"
  1511. nPosPad := aScan(aCOLS10,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  1512. If nPosPad > 0
  1513. AtuAcols(aCols10,nPosPad,aRetAuto,nPosAuto)
  1514. EndIf
  1515. EndIf
  1516.  
  1517. EndIf
  1518. Next nX
  1519. EndIf
  1520.  
  1521. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  1522. //矼ontagem do aHeader (1) Op.Propria - Entradas ?
  1523. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  1524. AADD(aHeader1,{STR0047 ,"F3_CFO" ,"@ 9.9999" ,05,0,".t." ,"? ,"C"," "," " }) //"CFOP"
  1525. AADD(aHeader1,{STR0048 ,"F3_VALCONT" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Valor Contabil"
  1526. AADD(aHeader1,{STR0049 ,"F3_BASEICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Base de Calculo"
  1527. AADD(aHeader1,{STR0050 ,"F3_VALICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Imposto Creditado"
  1528. AADD(aHeader1,{STR0051 ,"F3_ISENICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Isentas"
  1529. AADD(aHeader1,{STR0052 ,"F3_OUTRICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Outras"
  1530.  
  1531. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  1532. //矼ontagem do aHeader (2) - Op. Proprias - Saida ?
  1533. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  1534. AADD(aHeader2,{STR0047 ,"F3_CFO" ,"@ 9.9999" ,05,0,".t." ,"? ,"C"," "," " }) //"CFOP"
  1535. AADD(aHeader2,{STR0048 ,"F3_VALCONT" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Valor Contabil"
  1536. AADD(aHeader2,{STR0049 ,"F3_BASEICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Base de Calculo"
  1537. AADD(aHeader2,{STR0053 ,"F3_VALICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Imposto Debitado"
  1538. AADD(aHeader2,{STR0051 ,"F3_ISENICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Isentas"
  1539. AADD(aHeader2,{STR0052 ,"F3_OUTRICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Outras"
  1540.  
  1541. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  1542. //矼ontagem do aHeader (3) - Subs. Tributaria - Entrada ?
  1543. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  1544. AADD(aHeader3,{STR0054 ,"F3_ESTADO" ,"@!" ,04,0,".t." ,"? ,"C"," "," " }) //"UF "
  1545. AADD(aHeader3,{STR0049 ,"F3_BASEICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Base de Calculo"
  1546. AADD(aHeader3,{STR0050 ,"F3_VALICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Imposto Creditado"
  1547. AADD(aHeader3,{STR0053 ,"F3_VALICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Imposto Debitado"
  1548. AADD(aHeader3,{STR0028 ,"F3_VALICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Saldo Credor"
  1549. AADD(aHeader3,{STR0237 ,"F3_VALICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Imposto Creditado - Devolu珲es de vendas"
  1550. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  1551. //矼ontagem do aHeader (4) Subst. Tributaria - Saida ?
  1552. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  1553. AADD(aHeader4,{STR0054 ,"F3_ESTADO" ,"@!" ,04,0,".t." ,"? ,"C"," "," " }) //"UF "
  1554. AADD(aHeader4,{STR0049 ,"F3_BASEICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Base de Calculo"
  1555. AADD(aHeader4,{STR0053 ,"F3_VALICM" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Imposto Debitado"
  1556.  
  1557. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  1558. //矼ontagem do aHeader (5) Resumo da Apuracao - ICMS ?
  1559. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  1560. AADD(aHeader5,{STR0055 ,"cLinha" ,"@E 999" ,03,0,".t." ,"? ,"C"," "," " }) //"Linha"
  1561. AADD(aHeader5,{STR0056 ,"cCodigo" ,"@!" ,10,0,"a953Codigo()" ,"? ,"C"," "," " }) //"Codigo"
  1562. AADD(aHeader5,{STR0057 ,"cDescr" ,"@!" ,TamSx3("CDH_DESC")[1],0,".t." ,"? ,"C"," "," " }) //"Descricao"
  1563. AADD(aHeader5,{STR0058 ,"nValor" ,cPictVal ,15,2,"a953Saldo(.F.,.F.,.F.,.F.)" ,"? ,"N"," "," " }) //"Valor"
  1564. AADD(aHeader5,{STR0072 ,"cGNRE" ,"@!" ,14,0,"a953GNRE('0')" ,"? ,"C"," "," " }) //"GNRE"
  1565. AADD(aHeader5,{STR0074 ,"cClasse" ,"@!" ,06,0,".t." ,"? ,"C"," "," " }) //"Classe de Vencto."
  1566. If lUsaSped
  1567. AADD(aHeader5,{STR0118 ,"cCodLan" ,"@!" ,22,0,"a953CODLAN('0')" ,"? ,"C"," "," " }) //"Cod. Lan鏰mento"
  1568. AADD(aHeader5,{STR0262 ,"cTipLan" ,"@!" ,01,0,".f." ,"","C","","" }) //"Tipo Lan鏰mento"
  1569. EndIf
  1570. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  1571. //矼ontagem do aHeader (6) Resumo da Apuracao - ST ?
  1572. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  1573. AADD(aHeader6,{STR0055 ,"cLinha" ,"@E 999" ,03,0,".t." ,"? ,"C"," "," " }) //"Linha"
  1574. AADD(aHeader6,{STR0056 ,"cCodigo" ,"@!" ,10,0,".t." ,"a953Codigo()" ,"C"," "," " }) //"Codigo"
  1575. AADD(aHeader6,{STR0057 ,"cDescr" ,"@!" ,TamSx3("CDH_DESC")[1],0,".t." ,"? ,"C"," "," " }) //"Descricao"
  1576. AADD(aHeader6,{STR0058 ,"nValor" ,cPictVal ,15,2,"a953Saldo(.F.,.T.,.F.,.F.)" ,"? ,"N"," "," " }) //"Valor"
  1577. AADD(aHeader6,{STR0072 ,"cGNRE" ,"@!" ,14,0,"a953GNRE('1')" ,"? ,"C"," "," " }) //"GNRE"
  1578. AADD(aHeader6,{STR0074 ,"cClasse" ,"@!" ,06,0,".t." ,"? ,"C"," "," " }) //"Classe de Vencto."
  1579. If lUsaSped
  1580. AADD(aHeader6,{STR0118 ,"cCodLan" ,"@!" ,22,0,"a953CODLAN('1')" ,"? ,"C"," "," " }) //"Cod. Lan鏰mento"
  1581. AADD(aHeader6,{STR0262 ,"cTipLan" ,"@!" ,01,0,".f." ,"","C","","" }) //"Tipo Lan鏰mento"
  1582. EndIf
  1583. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  1584. //矼ontagem do aHeader (7) Informacoes Complementares ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  1585. AADD(aHeader7,{STR0055 ,"cLinha" ,"@E 999" ,03,0,".t." ,"? ,"C"," "," " }) //"Linha"
  1586. AADD(aHeader7,{STR0057 ,"cDescr" ,"@!" ,47,0,".t." ,"? ,"C"," "," " }) //"Descricao"
  1587. AADD(aHeader7,{STR0058 ,"nValor" ,cPictVal ,15,2,".t." ,"? ,"N"," "," " }) //"Valor"
  1588.  
  1589. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  1590. //矼ontagem do aHeader (8) Demonstrativo Apura玢o Fomentar?
  1591. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If lFomentGO
  1592. AADD(aHeader8,{STR0055 ,"cLinha" ,"@E 999" ,03,0,".t." ,"? ,"C"," "," " }) //"Linha"
  1593. AADD(aHeader8,{" " ,"cCodigo" ,"@!" ,1,0,".t." ,"? ,"C"," "," " }) //""
  1594. AADD(aHeader8,{STR0057 ,"cDescr" ,"@!" ,100,0,".t." ,"? ,"C"," "," " }) //"Descricao"
  1595. AADD(aHeader8,{STR0058 ,"nValor" ,cPictVal ,14,2,"a953Saldo(.F.,.F.,.T.,.F.)" ,"? ,"N"," "," " }) //"Valor"
  1596. Endif
  1597.  
  1598. If lApurBA
  1599. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  1600. //矼ontagem do aHeader (8) Credito Acumulado - Exportacoes ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  1601. AADD(aHeader8,{STR0055 ,"cLinha" ,"@E 999" ,03,0,".t." ,"? ,"C"," "," " }) //"Linha"
  1602. AADD(aHeader8,{STR0056 ,"cCodigo" ,"@!" ,10,0,"a953Codigo()" ,"? ,"C"," "," " }) //"Codigo"
  1603. AADD(aHeader8,{STR0057 ,"cDescr" ,"@!" ,47,0,".t." ,"? ,"C"," "," " }) //"Descricao"
  1604. AADD(aHeader8,{STR0058 ,"nValor" ,cPictVal ,15,2,"a953Saldo(.F.,.F.,.F.,.T.)" ,"? ,"N"," "," " }) //"Valor"
  1605. AADD(aHeader8,{STR0072 ,"cGNRE" ,"@!" ,14,0,"a953GNRE()" ,"? ,"C"," "," " }) //"GNRE"
  1606. AADD(aHeader8,{STR0074 ,"cClasse" ,"@!" ,06,0,".t." ,"? ,"C"," "," " }) //"Classe de Vencto."
  1607. If lUsaSped
  1608. AADD(aHeader8,{STR0118 ,"cCodLan" ,"@!" ,22,0,"a953CODLAN('0')" ,"? ,"C"," "," " }) //"Cod. Lan鏰mento"
  1609. EndIf
  1610.  
  1611. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  1612. //矼ontagem do aHeader (9) Credito Acumulado - Outras hipoteses ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  1613. AADD(aHeader9,{STR0055 ,"cLinha" ,"@E 999" ,03,0,".t." ,"? ,"C"," "," " }) //"Linha"
  1614. AADD(aHeader9,{STR0056 ,"cCodigo" ,"@!" ,10,0,"a953Codigo()" ,"? ,"C"," "," " }) //"Codigo"
  1615. AADD(aHeader9,{STR0057 ,"cDescr" ,"@!" ,47,0,".t." ,"? ,"C"," "," " }) //"Descricao"
  1616. AADD(aHeader9,{STR0058 ,"nValor" ,cPictVal ,15,2,"a953Saldo(.F.,.F.,.F.,.T.)" ,"? ,"N"," "," " }) //"Valor"
  1617. AADD(aHeader9,{STR0072 ,"cGNRE" ,"@!" ,14,0,"a953GNRE()" ,"? ,"C"," "," " }) //"GNRE"
  1618. AADD(aHeader9,{STR0074 ,"cClasse" ,"@!" ,06,0,".t." ,"? ,"C"," "," " }) //"Classe de Vencto."
  1619. If lUsaSped
  1620. AADD(aHeader9,{STR0118 ,"cCodLan" ,"@!" ,22,0,"a953CODLAN('0')" ,"? ,"C"," "," " }) //"Cod. Lan鏰mento"
  1621. EndIf
  1622.  
  1623. Endif
  1624.  
  1625. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  1626. //矼ontagem do aHeader (10) Debitos Especiais ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  1627. AADD(aHeader10,{STR0055 ,"cLinha" ,"@E 999" ,03,0,".t." ,"? ,"C"," "," " }) //"Linha"
  1628. AADD(aHeader10,{STR0056 ,"cCodigo" ,"@!" ,10,0,"a953Codigo()" ,"? ,"C"," "," " }) //"Codigo"
  1629. AADD(aHeader10,{STR0057 ,"cDescr" ,"@!" ,47,0,".t." ,"? ,"C"," "," " }) //"Descricao"
  1630. AADD(aHeader10,{STR0058 ,"nValor" ,cPictVal ,15,2,"a953Saldo(.F.,.F.,.F.,.F.,.T.)" ,"? ,"N"," "," " }) //"Valor"
  1631. AADD(aHeader10,{STR0072 ,"cGNRE" ,"@!" ,14,0,"a953GNRE('')" ,"? ,"C"," "," " }) //"GNRE"
  1632. AADD(aHeader10,{STR0074 ,"cClasse" ,"@!" ,06,0,".t." ,"? ,"C"," "," " }) //"Classe de Vencto."
  1633. If lUsaSped
  1634. AADD(aHeader10,{STR0118 ,"cCodLan" ,"@!" ,22,0,"a953CODLAN('')" ,"? ,"C"," "," " }) //"Cod. Lan鏰mento"
  1635. EndIf
  1636.  
  1637. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  1638. //矼ontagem do aHeader (9) Credito Acumulado - Outras hipoteses ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  1639. AADD(aHeader11,{STR0263 ,"cUF" ,"@!" ,15,0,"" ,"? ,"C"," "," " }) //"UF"
  1640. AADD(aHeader11,{STR0264,"nValServ" ,cPictVal ,15,2,"" ,"? ,"N"," "," " }) //"Valor Servi鏾"
  1641. AADD(aHeader11,{STR0265 ,"nBaseCalc" ,cPictVal ,15,2,"" ,"? ,"N"," "," " }) //"Base de calculo"
  1642. AADD(aHeader11,{STR0266 ,"nValor" ,cPictVal ,15,2,".F." ,"? ,"N"," "," " }) //"Valor"
  1643.  
  1644. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  1645. //矼ontagem do aHeader (12) Apura玢o DIFAL/FECP agrupada
  1646. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  1647. Aadd(aHeader12, {" " ,"cMostra", "@BMP", 2, 0, ".F." ,"" , "C", "", "V" ,"" , "","","V"})
  1648. AADD(aHeader12,{'Estado' ,"cUF" ,"@!" ,40,0,".T." ,"? ,"C"," "," " }) //"UF"
  1649. AADD(aHeader12,{'DIFAL a Recolher' ,"nValServ" ,cPictVal ,15,2,"" ,"? ,"N"," "," " }) //"Valor do Difal a Recolher"
  1650. AADD(aHeader12,{'Saldo Credor DIFAL' ,"nBaseCalc" ,cPictVal ,15,2,"" ,"? ,"N"," "," " }) //"Saldo Credor do Difal"
  1651. AADD(aHeader12,{'FECP a Recolher' ,"nValFecp" ,cPictVal ,15,2,"" ,"? ,"N"," "," " }) //"Fecp a Recolher"
  1652. AADD(aHeader12,{'Saldo Credor FECP' ,"nSaldoFecp" ,cPictVal ,15,2,"" ,"? ,"N"," "," " }) //"Saldo Credor do FECP"
  1653. AADD(aHeader12,{'D閎itos Especial' ,"nDep蓅p" ,cPictVal ,15,2,"" ,"? ,"N"," "," " }) //"Saldo Credor do FECP"
  1654.  
  1655. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  1656. //矼ontagem do aHeader (13) Apura玢o DIFAL/FECP Detalhada por UF
  1657. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  1658. AADD(aHeader13,{'Linha' ,"cLinha" ,"@E 999" ,3,0,".T." ,"? ,"C"," "," " }) //"C骴igo da Linha"
  1659. AADD(aHeader13,{'SubItem' ,"cCodigo" ,"@!" ,10,0,".T.","? ,"C"," "," " }) //"C骴igo do SubItem"
  1660. AADD(aHeader13,{'Descri玢o' ,"cDescr" ,'@!' ,60,0,"" ,"? ,"C"," "," " }) //"Descri玢o da linha"
  1661. AADD(aHeader13,{'Valor' ,"nValor" ,cPictVal ,15,2,"a953Saldo(.F.,.F.,.F.,.F.,.F.,.F.,.T.)" ,"? ,"N"," "," " }) //"Valor"
  1662. AADD(aHeader13,{'C骴igo Lan鏰mento' ,"cCodLan" ,"@!" ,8,2,"a953CODLAN('2')" ,"" ,"C"," "," " }) //"C骴igo de lan鏰mento de apura玢o"
  1663. AADD(aHeader13,{'GNRE' ,"cGNRE" ,"@!" ,14,0,"a953GNRE('2')" ,"" ,"C"," "," " }) //"GNRE"
  1664. AADD(aHeader13,{'Tipo Ajuste' ,"cTpAju" ,"@!" ,15,0,".T.","? ,"C"," "," " }) //"Tipo de ajuste"
  1665.  
  1666. 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)
  1667. If SuperGetMv("MV_ESTADO") == "MG" .And. nVlrArt488 <> 0
  1668. a953Saldo( .T.,.F.,.F.,.F.,.F.,.T.)
  1669. Else
  1670. a953Saldo( .T.,.F.,.F.,.F.) // Operacoes Proprias
  1671. EndIf
  1672.  
  1673. a953Saldo( .T.,.T.,.F.,.F.) // Substituicao Tributaria
  1674.  
  1675. If lFomentGO
  1676. a953Saldo( .T.,.F.,.T.,.F.) // Fomentar
  1677. Elseif lApurBA
  1678. a953Saldo( .T.,.F.,.T.,.T.) // Apuracao Credito Acumulado Bahia
  1679. Endif
  1680.  
  1681. a953Saldo( .T.,.F.,.F.,.F.,.T.) // Debitos Especiais
  1682.  
  1683.  
  1684. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  1685. //矯onforme a consultoria realizada no Jira, apagar a linha do?
  1686. //矲ECP ST de Dedu珲es e de Debitos Especiais quando ?
  1687. //硉em saldo credor e recalcula o saldo da Apura玢o. ?
  1688. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁d
  1689. lApagFecpST := .F.
  1690. If SuperGetMv("MV_ESTADO")$"RJ|BA"
  1691. If (nFecpST := aScan(aCols6,{|aX|aX[1]=="014" .And. "FECP"$Upper(aX[3])}))>0
  1692. If !aCols6[aScan(aCols6,{|aX|aX[1]=="015"}),4]>0
  1693. aDel(aCols6,nFecpST)
  1694. aSize(aCols6,Len(aCols6)-1)
  1695.  
  1696. a953Saldo( .T.,.F.,.F.,.F.) // Operacoes Proprias
  1697. a953Saldo( .T.,.T.,.F.,.F.) // Substituicao Tributaria
  1698.  
  1699. lApagFecpST := .T.
  1700. EndIf
  1701. EndIf
  1702.  
  1703. If lApagFecpST .And. (nFecpST := aScan(aCols10,{|aX|aX[1]$"901" .And. "FECP"$Upper(aX[3])}))>0
  1704. aDel(aCols10,nFecpST)
  1705. aSize(aCols10,Len(aCols10)-1)
  1706.  
  1707. a953Saldo( .T.,.F.,.F.,.F.,.T.) // Debitos Especiais
  1708. EndIf
  1709.  
  1710. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  1711. //矯onforme a consultoria realizada no Jira, apagar a linha do?
  1712. //矲ECP proprio de Dedu珲es e de Debitos Especiais quando ?
  1713. //硉em saldo credor e recalcula o saldo da Apuracao. ?
  1714. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? lApagFecp := .F.
  1715. If (nFecp :=aScan(aCols5,{|aX|aX[1]=="012" .And. "FECP"$Upper(aX[3])}))>0
  1716. If !aCols5[aScan(aCols5,{|aX|aX[1]=="013"}),4]>0
  1717. aDel(aCols5,nFecp)
  1718. aSize(aCols5,Len(aCols5)-1)
  1719.  
  1720. a953Saldo( .T.,.F.,.F.,.F.) // Operacoes Proprias
  1721. a953Saldo( .T.,.T.,.F.,.F.) // Substituicao Tributaria
  1722.  
  1723. lApagFecp := .T.
  1724. Endif
  1725. Endif
  1726.  
  1727. If lApagFecp .And. (nFecp := aScan(aCols10,{|aX|aX[1]$"900" .And. "FECP"$Upper(aX[3])}))>0
  1728. aDel(aCols10,nFecp)
  1729. aSize(aCols10,Len(aCols10)-1)
  1730.  
  1731. a953Saldo( .T.,.F.,.F.,.F.,.T.) // Debitos Especiais
  1732. EndIf
  1733. EndIf
  1734.  
  1735.  
  1736. aObjects := {}
  1737. AAdd( aObjects, { 60, 100, .t., .t. } )
  1738.  
  1739. aInfo := { aSize[ 1 ], aSize[ 2 ], aSize[ 3 ], aSize[ 4 ], 3, 3 }
  1740. aPosObj := MsObjSize( aInfo, aObjects )
  1741.  
  1742. If !lLancCDA .Or. lP9Sped
  1743. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  1744. //?Carrega os parametros de autopreenchimento ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  1745. PRIVATE aTotal
  1746. aCFG := FsLoadCFGAp("P9AUTOTEXT")
  1747. FsExecCFGAp(aCFG[4],aObs,aCols5)
  1748. EndIf
  1749.  
  1750. If lArt488MG
  1751. cObserv := cObsArt488MG
  1752. Else
  1753. For nX := 1 To Len(aObs)
  1754. cObserv += aObs[nX]+CHR(13)+CHR(10)
  1755. Next nX
  1756. EndIf
  1757.  
  1758. //verifica o linte do valor do FUMACOP
  1759. If SuperGetMv("MV_ESTADO")$"MA"
  1760. nPosFumac := aScan(aCols5,{|x|x[1]=="011"})
  1761. nLmFumacop := aCols5[nPosFumac,4]
  1762. nPosFumac := aScan(aCols6,{|x|x[1]=="005"})
  1763. nLmFumacop := nLmFumacop + aCols6[nPosFumac,4]
  1764. nPosFumac := aScan(aCols5,{|x|x[1]=="012"})
  1765. If aCols5[nPosFumac+1,4]>nLmFumacop
  1766. aCols5[nPosFumac+1,4] := nLmFumacop
  1767. a953Saldo( .T.,.F.,.F.,.F.) // Operacoes Proprias
  1768. a953Saldo( .T.,.T.,.F.,.F.) // Substituicao Tributaria
  1769. EndIf
  1770. EndIf
  1771.  
  1772. /* -----------------------------------
  1773.  
  1774. INCENTIVOS FISCAIS
  1775.  
  1776. ----------------------------------- */
  1777.  
  1778. /* -------------------
  1779. DESENVOLVE/BA
  1780. ------------------- */
  1781. If GetNewPar("MV_ESTADO") == "BA"
  1782.  
  1783. If !Empty (aApIncent := xApGetIncent( "DES" , , , {2,dDtIni,,,} ) )
  1784.  
  1785. aAdd(aApIncent,"")
  1786.  
  1787. a953Saldo( .T. , .F. , .F. , .F. ) // Operacoes Proprias
  1788.  
  1789. Endif
  1790.  
  1791. /* -------------------
  1792. INVEST/ES
  1793. ------------------- */
  1794. Elseif GetNewPar("MV_ESTADO") == "ES" .And. Len( aMVINVEST ) >= 3
  1795.  
  1796. // Credito Presumido
  1797. // -------------------
  1798. xApGetIncent( "INV" , , , {1,dDtIni,aMVINVEST} )
  1799. a953Saldo( .T. , .F. , .F. , .F. ) // Operacoes Proprias
  1800.  
  1801. // Estorno de Debito
  1802. // -------------------
  1803. xApGetIncent( "INV" , , , {2,dDtIni,aMVINVEST} )
  1804. a953Saldo( .T. , .F. , .F. , .F. ) // Operacoes Proprias
  1805.  
  1806. // Estorno de Credito
  1807. // -------------------
  1808. xApGetIncent( "INV" , , , {3,dDtIni} )
  1809. a953Saldo( .T. , .F. , .F. , .F. ) // Operacoes Proprias
  1810.  
  1811.  
  1812. /* -------------------
  1813. PRODEC(FAMDES)/SC
  1814. ------------------- */
  1815. Elseif GetNewPar("MV_ESTADO") == "SC" .And. Len( aMVFISPRDC ) >= 10
  1816.  
  1817. If !Empty (aApIncent := xApGetIncent( "PDC" , , , {2,dDtIni,,,aMVFISPRDC} ) )
  1818.  
  1819. aAdd(aApIncent,"")
  1820.  
  1821. a953Saldo( .T. , .F. , .F. , .F. ) // Operacoes Proprias
  1822.  
  1823. Endif
  1824.  
  1825. Endif
  1826.  
  1827. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  1828. //矼ontagem da Tela ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  1829. DEFINE MSDIALOG oDlg TITLE cCadastro From aSize[7],00 To aSize[6],aSize[5] OF oMainWnd PIXEL
  1830.  
  1831. If lFomentGO
  1832. 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])
  1833. Elseif lApurBA
  1834. 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])
  1835. Else
  1836. 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])
  1837. Endif
  1838.  
  1839. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  1840. //?Define as posicoes da Getdados a partir do folder ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  1841.  
  1842. nOpcx := 4
  1843. nOpca := 1
  1844. nGd1 := 2
  1845. nGd2 := 2
  1846. nGd3 := aPosObj[1,3]-aPosObj[1,1]-15
  1847. nGd4 := aPosObj[1,4]-aPosObj[1,2]-4
  1848.  
  1849. IF lCon13906
  1850. aHeader := aClone(aHeader11)
  1851. aCols := aClone(aCols11)
  1852. oGetDad11 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"a953lin5Ok","A953TdOk","",nOpcx!=2,aAlter11,3,,len(aCols11),,,,"a953Del5Col",oFolder:aDialogs[nTitCnv139])
  1853. oGetDad11:oBrowse:lDisablePaint := .T.
  1854. oGetDad11:oBrowse:bDrawSelect := {|| a953Cpo5Alt(oGetDad11:oBrowse)}
  1855. oGetDad11:oBrowse:Cargo:={|nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB| MyEditCel(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)}
  1856. EndIF
  1857. aHeader := aClone(aHeader10)
  1858. aCols := aClone(aCols10)
  1859. oGetDad10 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"a953lin5Ok","A953TdOk","",nOpcx!=2,aAlter10,3,,Len(aCols10),,,,"a953Del5Col(.T.)",oFolder:aDialogs[nTitDebEsp])
  1860. oGetDad10 :oBrowse:lDisablePaint := .T.
  1861. oGetDad10 :oBrowse:bDrawSelect := {|| a953Cpo5Alt(oGetDad10:oBrowse)}
  1862. oGetDad10 :oBrowse:Cargo := {|nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB| MyEditCel(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)}
  1863.  
  1864. //Cria novo folder com apura玢o consolidada do DIFAL/FECP
  1865.  
  1866. aHeader := aClone(aHeader13)
  1867. aCols := aClone(aCols13)
  1868. oGetDad13 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"a953Lin6Ok","a953VldDif()","",nOpcx!=2,aAlter13,3,,len(aCols13),,,,"a953Del5Col",oFolder:aDialogs[nTitDifal])
  1869. oGetDad13:oBrowse:lDisablePaint := .T.
  1870. oGetDad13:oBrowse:bDrawSelect := {|| a953CPODIF(oGetDad13:oBrowse)}
  1871. oGetDad13:oBrowse:Cargo:={|nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB| MyEditCel(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)}
  1872. oGetDad13:oBrowse:bLDblClick := {|| DuploClick(@oGetDad12,@oGetDad13,@oDlg,@aApurDifal,dDtIni)}
  1873.  
  1874. If lUsaSped
  1875. oGetDad13:aInfo[5][1] := "CDO" //na coluna de Cod Lancamento
  1876. oGetDad13:aInfo[6][1] := "SF6DIF" //na coluna de Cod Lancamento
  1877. EndIf
  1878.  
  1879. aHeader := aClone(aHeader12)
  1880. aCols := aClone(aCols12)
  1881. oGetDad12 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"A953Lin6Ok","a953VldDif()","",nOpcx!=2,aAlter12,3,,len(aCols12),,,,"a953Del5Col",oFolder:aDialogs[nTitDifal])
  1882. oGetDad12:oBrowse:lDisablePaint := .T.
  1883. oGetDad12:oBrowse:bDrawSelect := {|| .T.}
  1884. oGetDad12:oBrowse:Cargo:={|nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB| MyEditCel(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)}
  1885. oGetDad12:oBrowse:bLDblClick := {|| DuploClick(@oGetDad12,@oGetDad13,@oDlg,@aApurDifal,dDtIni)}
  1886.  
  1887. //Adiciona Consulta Padrao na coluna de Cod Lancamento
  1888. oGetDad10:aInfo[5][1] := "SF6AP" //na coluna de GNRE
  1889. If lUsaSped .And. len(aHeader10) == 7
  1890. oGetDad10:aInfo[7][1] := "CDO"
  1891. EndIf
  1892. If lFomentGO
  1893. aHeader := aClone(aHeader8)
  1894. aCols := aClone(aCols8)
  1895. oGetDad8 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"AlwaysTrue","AlwaysTrue","",nOpcx!=2,aAlter8,,,len(aCols8),,,,,oFolder:aDialogs[9])
  1896. oGetDad8:oBrowse:lDisablePaint := .T.
  1897. oGetDad8 :oBrowse:bDrawSelect := {|| a953Cpo8Alt(oGetDad8:oBrowse)}
  1898. oGetDad8:oBrowse:Cargo:={|nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB| MyEditCelF(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)}
  1899. Elseif lApurBA
  1900. //Exportacoes
  1901. aHeader := aClone(aHeader8)
  1902. aCols := aClone(aCols8)
  1903. oGetDad8 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"a953lin5Ok","A953TdOk","",nOpcx!=2,aAlter8,3,,len(aCols8),,,,"a953Del5Col",oFolder:aDialogs[9])
  1904. oGetDad8:oBrowse:lDisablePaint := .T.
  1905. oGetDad8:oBrowse:bDrawSelect := {|| a953Cpo5Alt(oGetDad8:oBrowse)}
  1906. oGetDad8:oBrowse:Cargo:={|nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB| MyEditCel(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)}
  1907.  
  1908. //Outras hipoteses
  1909. aHeader := aClone(aHeader9)
  1910. aCols := aClone(aCols9)
  1911. oGetDad9 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"a953lin5Ok","A953TdOk","",nOpcx!=2,aAlter9,3,,len(aCols9),,,,"a953Del5Col",oFolder:aDialogs[10])
  1912. oGetDad9:oBrowse:lDisablePaint := .T.
  1913. oGetDad9:oBrowse:bDrawSelect := {|| a953Cpo5Alt(oGetDad9:oBrowse)}
  1914. oGetDad9:oBrowse:Cargo:={|nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB| MyEditCel(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)}
  1915. Endif
  1916.  
  1917. aHeader := aClone(aHeader7)
  1918. aCols := aClone(aCols7)
  1919. oGetDad7 := MSGetDados():New(nGd1,nGd2,58,388,nOpcx,"AlwaysTrue","AlwaysTrue","",nOpcx!=2,aAlter7,,,len(aCols7),,,,,oFolder:aDialogs[7])
  1920.  
  1921. oFolder:aDialogs[7]:oFont := oDlg:oFont
  1922.  
  1923. @ 62 ,002 TO 170,386 LABEL '' OF oFolder:aDialogs[7] PIXEL
  1924.  
  1925. @ 072, 020 SAY OemToAnsi(STR0059) Of oFolder:aDialogs[7] PIXEL SIZE 80,08 //"Data de Vencimento do Imposto:"
  1926. @ 070, 101 MSGET dDtVenc VALID (dDtVenc>=dDtFim) OF oFolder:aDialogs[7] PIXEL WHEN (nVlrTitulo>0) SIZE 32,08
  1927. @ 089, 020 SAY OemToAnsi(STR0060)Of oFolder:aDialogs[7] PIXEL SIZE 60,08 //"Org刼 Arrecadador :"
  1928. @ 087, 101 MSGET cOrgArrec PICTURE "@!" OF oFolder:aDialogs[7] PIXEL WHEN (nVlrTitulo>0) SIZE 80 ,9
  1929. @ 112, 020 SAY OemToAnsi(STR0061) Of oFolder:aDialogs[7] PIXEL SIZE 80,08 //"Observacoes :"
  1930. @ 117, 070 GET cObserv MEMO OF oFolder:aDialogs[7] PIXEL SIZE 260,042
  1931.  
  1932. oGetDad7 :oBrowse:lDisablePaint := .T.
  1933.  
  1934.  
  1935. aHeader := aClone(aHeader6)
  1936. aCols := aClone(aCols6)
  1937. oGetDad6 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"a953Lin6Ok","AlwaysTrue","",nOpcx!=2,aAlter6,3,,23,,,,"a953Del6Col",oFolder:aDialogs[6])
  1938. oGetDad6 :oBrowse:lDisablePaint := .T.
  1939. oGetDad6 :oBrowse:bDrawSelect := {|| a953Cpo6Alt(oGetDad6:oBrowse)}
  1940. oGetDad6 :oBrowse:Cargo := {|nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB| MyEditCelST(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)}
  1941.  
  1942. //Adiciona Consulta Padrao na coluna de Cod Lancamento
  1943. If lUsaSped .And. len(aHeader6) == 8
  1944. oGetDad6:aInfo[7][1] := "CDO"
  1945. EndIf
  1946.  
  1947. aHeader := aClone(aHeader5)
  1948. aCols := aClone(aCols5)
  1949. oGetDad5 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"a953lin5Ok","A953TdOk","",nOpcx!=2,aAlter5,3,,len(aCols5),,,,"a953Del5Col",oFolder:aDialogs[5])
  1950. oGetDad5 :oBrowse:lDisablePaint := .T.
  1951. oGetDad5 :oBrowse:bDrawSelect := {|| a953Cpo5Alt(oGetDad5:oBrowse)}
  1952. oGetDad5 :oBrowse:Cargo := {|nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB| MyEditCel(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)}
  1953.  
  1954. //Adiciona Consulta Padrao
  1955. oGetDad5:aInfo[5][1] := "SF6AP" //na coluna de GNRE
  1956. If lUsaSped .And. len(aHeader5) == 8
  1957. oGetDad5:aInfo[7][1] := "CDO" //na coluna de Cod Lancamento
  1958. EndIf
  1959.  
  1960. aHeader := aClone(aHeader4)
  1961. aCols := aClone(aCols4)
  1962. oGetDad4 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"AlwaysTrue","AlwaysTrue","",nOpcx!=2,aAlter4,,,len(aCols4),,,,,oFolder:aDialogs[4])
  1963. oGetDad4 :oBrowse:lDisablePaint := .T.
  1964.  
  1965. aHeader := aClone(aHeader3)
  1966. aCols := aClone(aCols3)
  1967. oGetDad3 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"AlwaysTrue","AlwaysTrue","",nOpcx!=2,aAlter3,,,len(aCols3),,,,,oFolder:aDialogs[3])
  1968. oGetDad3 :oBrowse:lDisablePaint := .T.
  1969.  
  1970. aHeader := aClone(aHeader2)
  1971. aCols := aClone(aCols2)
  1972. oGetDad2 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"AlwaysTrue","AlwaysTrue","",nOpcx!=2,aAlter2,,,len(aCols2),,,,,oFolder:aDialogs[2])
  1973. oGetDad2 :oBrowse:lDisablePaint := .T.
  1974.  
  1975. aHeader := aClone(aHeader1)
  1976. aCols := aClone(aCols1)
  1977. oGetDad1 := MSGetDados():New(nGd1,nGd2,nGd3,nGd4,nOpcx,"AlwaysTrue","AlwaysTrue","",nOpcx!=2,aAlter1,,,len(aCols1),,,,,oFolder:aDialogs[1])
  1978. oGetDad1 :oBrowse:lDisablePaint := .T.
  1979.  
  1980. If lFomentGO
  1981. oFolder:bSetOption:={|nAtu| Ft953Fld(nAtu,oFolder:nOption,oFolder,{oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,{oGetDad12,oGetDad13},oGetDad8,oGetDad10,oGetDad11},aApurDifal,nAno)}
  1982. Elseif lApurBA
  1983. oFolder:bSetOption:={|nAtu| Ft953Fld(nAtu,oFolder:nOption,oFolder,{oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,{oGetDad12,oGetDad13},oGetDad8,oGetDad9,oGetDad10,oGetDad11},aApurDifal,nAno)}
  1984. //Adiciona Consulta Padrao na coluna de Cod Lancamento
  1985. If lUsaSped .And. len(aHeader8) == 7
  1986. oGetDad8:aInfo[7][1] := "CDO"
  1987. EndIf
  1988. //Adiciona Consulta Padrao na coluna de Cod Lancamento
  1989. If lUsaSped .And. len(aHeader9) == 7
  1990. oGetDad9:aInfo[7][1] := "CDO"
  1991. EndIf
  1992. Else
  1993. oFolder:bSetOption:={|nAtu| Ft953Fld(nAtu,oFolder:nOption,oFolder,{oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,{oGetDad12,oGetDad13},oGetDad10,oGetDad11},aApurDifal,nAno)}
  1994. Endif
  1995. If ( nOpcx!=2 )
  1996. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  1997. //?Ao confirmar, simula a mudanca de folder para atualizar os arrays necessarios ?
  1998. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If lFomentGO
  1999. If !lAutomato
  2000. ACTIVATE MSDIALOG oDlg ON INIT ( Ft953Refre( { oGetDad1, oGetDad2, oGetDad3, oGetDad4, oGetDad5, oGetDad6, oGetDad7, oGetDad8,oGetDad9,oGetDad10,oGetDad11,oGetDad12,oGetDad13 } ),;
  2001. 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.;
  2002. Ft953Ok({oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,oGetDad8,oGetDad10,oGetDad12,oGetDad13},;
  2003. 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},;
  2004. {"BMPVISUAL",{|| ProcLogView()},'Vizualiza玢o do LOG de processamento multi-thread',"Log MThread"},{"BMPVISUAL",{|| A953Legenda()} ,'Legenda','Legenda'}})) //"Inclui Linhas"
  2005. Else
  2006. nOpcA := If (Ft953Fld(oFolder:nOption,oFolder:nOption,oFolder,{oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,{oGetDad12,oGetDad13},oGetDad8,oGetDad10,oGetDad11},aApurDifal,nAno) .And. ;
  2007. Ft953Ok({oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,oGetDad8,oGetDad10,oGetDad12,oGetDad13},oFolder:nOption),1,0)
  2008. EndIf
  2009. Elseif lApurBa
  2010. If !lAutomato
  2011. ACTIVATE MSDIALOG oDlg ON INIT ( Ft953Refre( { oGetDad1, oGetDad2, oGetDad3, oGetDad4, oGetDad5, oGetDad6, oGetDad7, oGetDad8, oGetDad9,oGetDad10,oGetDad11,oGetDad12,oGetDad13 } ),;
  2012. 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.;
  2013. Ft953Ok({oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,oGetDad8,oGetDad9,oGetDad10,oGetDad12,oGetDad13},;
  2014. 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},;
  2015. {"BMPVISUAL",{|| ProcLogView()},'Vizualiza玢o do LOG de processamento multi-thread',"Log MThread"},{"BMPVISUAL",{|| A953Legenda()} ,'Legenda','Legenda'}})) //"Inclui Linhas"
  2016. Else
  2017. nOpcA := If (Ft953Fld(oFolder:nOption,oFolder:nOption,oFolder,{oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,{oGetDad12,oGetDad13},oGetDad8,oGetDad9,oGetDad10,oGetDad11},aApurDifal,nAno) .And. ;
  2018. Ft953Ok({oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,oGetDad8,oGetDad9,oGetDad10,oGetDad12,oGetDad13},oFolder:nOption),1,0)
  2019. EndIf
  2020. Else
  2021. If !lAutomato
  2022. ACTIVATE MSDIALOG oDlg ON INIT ( Ft953Refre( { oGetDad1, oGetDad2, oGetDad3, oGetDad4, oGetDad5, oGetDad6, oGetDad7,oGetDad8,oGetDad9,oGetDad10,oGetDad11,oGetDad12,oGetDad13} ),;
  2023. EnchoiceBar(oDlg,{||nopca:=If(Ft953Fld(oFolder:nOption,oFolder:nOption,oFolder,{oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,{oGetDad12,oGetDad13},oGetDad10,oGetDad11},aApurDifal,nAno).And.;
  2024. Ft953Ok({oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,oGetDad10,oGetDad12,oGetDad13},;
  2025. 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},;
  2026. {"BMPVISUAL",{|| ProcLogView()},'Vizualiza玢o do LOG de processamento multi-thread',"Log MThread"}, {"BMPVISUAL",{|| A953Legenda()} ,'Legenda','Legenda'} })) //"Inclui Linhas"
  2027. Else
  2028. nOpcA := If (Ft953Fld(oFolder:nOption,oFolder:nOption,oFolder,{oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,{oGetDad12,oGetDad13},oGetDad10,oGetDad11},aApurDifal,nAno) .And. ;
  2029. Ft953Ok({oGetDad1,oGetDad2,oGetDad3,oGetDad4,oGetDad5,oGetDad6,oGetDad7,oGetDad10,oGetDad12,oGetDad13},oFolder:nOption),1,0)
  2030. EndIf
  2031. Endif
  2032.  
  2033. If ( nOpcA == 1 )
  2034. If Existblock("A953CONT")
  2035. aApuICM:= FisApur(cImp,nAno,nMes,nApuracao,nPeriodo,cNrLivro,.F.,aApuICM,nMoedTit,.F.,"")
  2036. Execblock("A953CONT",.F.,.F.,aApuICM)
  2037. EndIf
  2038. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  2039. //?Apaga arquivo de apuracao ?
  2040. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  2041. IiF(File(cArqApur),Ferase(cArqApur),.F.)
  2042. cArqST := substr(cArqApur,1,Len(cArqApur)-3)+"ST"+substr(cArqApur,Len(cArqApur),1)
  2043. IiF(File(cArqST),Ferase(cArqST),.F.)
  2044.  
  2045. //Adiciono no array de Apuracao do ICMS os valores de debitos especiais. Codigo 900/901 e subitem 900.??/901.??
  2046. For nXX := 1 To Len(aCOLS10)
  2047. If aCOLS10[nXX,1]=="900"
  2048. aAdd(aCOLS5,aCOLS10[nXX])
  2049. ElseIf aCOLS10[nXX,1]=="901"
  2050. aAdd(aCOLS6,aCOLS10[nXX])
  2051. EndIf
  2052. Next nXX
  2053.  
  2054. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2055. //矴era as guias de recolhimento do ICMS ST, da seguinte forma: ?
  2056. //砅ara o estado do contribuinte: Saidas - Entradas (apurado) ?
  2057. //砅ara outros estados: Apenas saidas (Ler Explicacao Abaixo) ?
  2058. //?conforme consulta IOB em 01/11/2006) ?
  2059. //? ?
  2060. //矰e acordo com informacao acima nao deveria ser realizada geracao de GNRE de ICMS ST com valor ?
  2061. //砤purado (Saidas - Entradas) nos casos de operacoes interestaduais, deveria apenas considerar o ?
  2062. //硋alor da saida, porem na data de 20/10/2011 foi realizada nova analise e constatado que a GNRE deve ser?
  2063. //砱erada com o valor apurado(Saidas - Entradas). ?
  2064. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2065. // Entradas com ST
  2066. For nX := 1 To Len(aCols3)
  2067. 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")*/
  2068. nY := aScan(aGNRESt,{|x| x[1] == aCols3[nX][1]})
  2069. If nY == 0
  2070. aadd(aGNRESt,{aCols3[nX][1],0,.F., .F.,0})
  2071. nY := Len(aGNRESt)
  2072. EndIf
  2073. aGNRESt[nY,2] -= aCols3[nX][3]+aCols3[nX][5]
  2074. EndIf
  2075. //Tratamento para nota de entrada com debito de ICMS-ST. Tratamento para todos os estados, como na saida.
  2076. If !Empty(aCols3[nX][1]) .And. aCols3[nX][4] > 0
  2077. If (SuperGetMv("MV_ESTADO") $"PE|MG" .OR. SuperGetMv("MV_DESTENT",,.F.)) .And. aCols3[nX][1] == SuperGetMv("MV_ESTADO")
  2078. Loop
  2079. Endif
  2080.  
  2081. nY := aScan(aGNRESt,{|x| x[1] == aCols3[nX][1]})
  2082. If nY == 0
  2083. aadd(aGNRESt,{aCols3[nX][1],0,.F., .F.,0})
  2084. nY := Len(aGNRESt)
  2085. EndIf
  2086. aGNRESt[nY,2] += aCols3[nX][4]
  2087. EndIf
  2088. //Devolucoes de vendas - credita no saldo ST
  2089. If !Empty(aCols3[nX][1]) .And. Valtype(aCOLS3[nX,6]) == "N" .And. aCols3[nX][6] > 0
  2090. nY := aScan(aGNRESt,{|x| x[1] == aCols3[nX][1]})
  2091. If nY == 0
  2092. aadd(aGNRESt,{aCols3[nX][1],0,.F.,.F.,0})
  2093. nY := Len(aGNRESt)
  2094. EndIf
  2095. aGNRESt[nY,2] -= aCols3[nX][6]+aCols3[nX][5]
  2096. EndIf
  2097. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪??
  2098. //矱ste tratamento eh utilizado para subtrair o valor de debito de ST dos documentos de ?
  2099. //? entrada que tiveram a configuacao para gerar um imposto debitado(CREDST=3). ?
  2100. //? Alem disso, tambem tiveram um lancamento de debito especial configurado, gerando ?
  2101. //? entao na apuracao de ICMS/ST um valor a pagar em ST-Entrada e outro tambem ?
  2102. //? em Debitos Especiais. ?
  2103. //? ?
  2104. //砈em este tratamento, seria gerado 2 GNREs, uma para o debito de ST-Entrada e outro ?
  2105. //? para o Debito Especial. Este tratamento visa contemplar somente o valor referente ao?
  2106. //? lancamento de debitos especiais. ?
  2107. //? ?
  2108. //|SubStr(aX[3],4,1)=="1" --> A quarta opcao igual a "1" Indica que se refere a um |
  2109. //| lancamento de debito especial de ST |
  2110. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?? aEval(aRetEsp,{|aX| aGNRESt[nY,2] -= Iif(aX[3]==aCols3[nX][1] .And. SubStr(aX[3],4,1)=="1",aX[2],0)})
  2111. Next nX
  2112. // Saidas com ST para todos os estados
  2113. For nX := 1 To Len(aCols4)
  2114. If !Empty(aCols4[nX][1]) .And. aCols4[nX][3] > 0
  2115. nY := aScan(aGNRESt,{|x| x[1] == aCols4[nX][1]})
  2116. If nY == 0
  2117. aadd(aGNRESt,{aCols4[nX][1],0,.F., .F.,0})
  2118. nY := Len(aGNRESt)
  2119. EndIf
  2120. nPos := aScan(aRecStDif,{|y| y[2] == aGNREST[nY][01]}) //Verifica se ?o mesmo estado
  2121. If (nPos <> 0) .And. aRecStDif[nPos][3]>0
  2122. aGNRESt[nY,2] += (aCols4[nX][3] - aRecStDif[nPos][3])
  2123. aadd(aGNRESt,{aCols4[nX][1],aRecStDif[nPos][3],.F., .T.,0})
  2124. Else
  2125. aGNRESt[nY,2] += aCols4[nX][3]
  2126. aGNRESt[nY,5] += aCols4[nX][04]
  2127. EndIf
  2128. EndIf
  2129. Next nX
  2130. // Contabilizando outros creditos e outros debitos.
  2131. // A verificacao sera feita da seguinte forma:
  2132. // Sera verificado os dois primeiros digitos do sub-codigo de outros creditos e outros debitos.
  2133. // Se no array aGNRESt eu ja tiver o estado informado irei considerar os outros deb/cred para o titulo
  2134. // mas se nao tiver o estado informado irei considerar para o titulo do MV_ESTADO do contribuinte.
  2135. For nX := 1 To Len(aCols6)
  2136. If aCols6[nX][1] == "002" .And. aCols6[nX][2] <> "002.00" //Outros debitos
  2137. cUfAjSt := IIF(lUsaSped,Substr(aCols6[nX][7],1,2),Substr(aCols6[nX][3],1,2))
  2138. nY := aScan(aGNRESt,{|x| x[1] == cUfAjSt})
  2139. nY := Iif(nY == 0,aScan(aCols6,{|x| x[1] == SuperGetMv("MV_ESTADO")}),nY)
  2140. If nY <> 0 .And. aCols6[nX,4] > 0
  2141. aGNRESt[nY,2] += aCols6[nX,4]
  2142. ElseIf aCols6[nX,4] > 0
  2143. nZ := aScan(aGNRESt,{|x| x[1] == cUfAjSt })
  2144. If !( cUfAjSt $ SuperGetMv("MV_ESTICM"))
  2145. nZ := Iif(nZ == 0,aScan(aGNRESt,{|x| x[1] == SuperGetMv("MV_ESTADO")}),nZ)
  2146. Endif
  2147. If nZ <> 0
  2148. aGNRESt[nZ,2] += aCols6[nX,4]
  2149. Else
  2150. nK := Len(aGNRESt) + 1
  2151. aadd(aGNRESt,{Iif( cUfAjSt $ SuperGetMv("MV_ESTICM") , cUfAjSt ,SuperGetMv("MV_ESTADO")),0,.F., .F.,0})
  2152. aGNRESt[nK,2] += aCols6[nX,4]
  2153. EndIf
  2154. Endif
  2155. ElseIf aCols6[nX][1] == "007" .And. aCols6[nX][2] <> "007.00" //Outros creditos
  2156. cUfAjSt := IIF(lUsaSped,Substr(aCols6[nX][7],1,2),Substr(aCols6[nX][3],1,2))
  2157. nY := aScan(aGNRESt,{|x| x[1] == cUfAjSt})
  2158. nY := Iif(nY == 0,aScan(aGNRESt,{|x| x[1] == SuperGetMv("MV_ESTADO")}),nY)
  2159. If nY <> 0 .And. aCols6[nX,4] > 0
  2160. aGNRESt[nY,2] -= aCols6[nX,4]
  2161. Endif
  2162. ElseIf aCols6[nX][1] == "003" .And. aCols6[nX][2] <> "003.00" //Estorno de creditos
  2163. cUfAjSt := IIF(lUsaSped,Substr(aCols6[nX][7],1,2),Substr(aCols6[nX][3],1,2))
  2164. nY := aScan(aGNRESt,{|x| x[1] == cUfAjSt})
  2165. nY := Iif(nY == 0,aScan(aGNRESt,{|x| x[1] == SuperGetMv("MV_ESTADO")}),nY)
  2166. If nY <> 0 .And. aCols6[nX,4] > 0
  2167. aGNRESt[nY,2] += aCols6[nX,4]
  2168. Endif
  2169. ElseIf aCols6[nX][1] == "008" .And. aCols6[nX][2] <> "008.00" //Estorno de debitos
  2170. cUfAjSt := IIF(lUsaSped,Substr(aCols6[nX][7],1,2),Substr(aCols6[nX][3],1,2))
  2171. nY := aScan(aGNRESt,{|x| x[1] == cUfAjSt})
  2172. nY := Iif(nY == 0,aScan(aGNRESt,{|x| x[1] == SuperGetMv("MV_ESTADO")}),nY)
  2173. If nY <> 0 .And. aCols6[nX,4] > 0
  2174. aGNRESt[nY,2] -= aCols6[nX,4]
  2175. Endif
  2176. ElseIf aCols6[nX][1] == "014" .And. aCols6[nX][2] <> "014.00" //Deducoes
  2177. cUfAjSt := IIF(lUsaSped,Substr(aCols6[nX][7],1,2),Substr(aCols6[nX][3],1,2))
  2178. nY := aScan(aGNRESt,{|x| x[1] == cUfAjSt})
  2179. nY := Iif(nY == 0,aScan(aGNRESt,{|x| x[1] == SuperGetMv("MV_ESTADO")}),nY)
  2180. If nY <> 0 .And. aCols6[nX,4] > 0 .And. !('FECP'$aCols6[nX,3])
  2181. aGNRESt[nY,2] -= aCols6[nX,4]
  2182. Endif
  2183. EndIf
  2184. If !Empty(aCOLS6[nX,5]) .And. AllTrim(aCols6[nX,1])<>"007" .And. AllTrim(aCols6[nX,1])<>"008" .And. AllTrim(aCols6[nX,1])<>"014"
  2185. cUfAjSt := IIF(lUsaSped,Substr(aCols6[nX][7],1,2),Substr(aCols6[nX][3],1,2))
  2186. nY := aScan(aGNRESt,{|x| x[1] == cUfAjSt})
  2187. nY := Iif(nY == 0,aScan(aGNRESt,{|x| x[1] == SuperGetMv("MV_ESTADO")}),nY)
  2188. If nY <> 0 .And. aCols6[nX,4] > 0
  2189. aGNRESt[nY,2] -= aCols6[nX,4]
  2190. EndIf
  2191. EndIf
  2192. If aCols6[nX][1] == "011" .And. aCols6[nX][2] <> "011.00" //Creditos Periodo Anterior
  2193. cUfAjSt := IIF(lUsaSped,Substr(aCols6[nX][7],1,2),Substr(aCols6[nX][3],1,2))
  2194. nY := aScan(aGNRESt,{|x| x[1] == cUfAjSt})
  2195. nY := Iif(nY == 0,aScan(aGNRESt,{|x| x[1] == SuperGetMv("MV_ESTADO")}),nY)
  2196. If nY <> 0 .And. aCols6[nX,4] > 0 .And. aCols3[Len(aCols3),5] > 0
  2197. aGNRESt[nY,2] -= aCols6[nX,4]
  2198. EndIf
  2199. EndIf
  2200. Next nX
  2201.  
  2202. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2203. //?Abate do valor a recolher o valor das guias ja pagas (amarracao CDC)|
  2204. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? For nX := 1 to len(aIcmPago)
  2205. If (nY := aScan(aGNRESt,{|x| x[1] == aIcmPago[nX][1]})) > 0
  2206. aGNRESt[nY,2] -= aIcmPago[nX][2]
  2207. EndIf
  2208. Next
  2209. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2210. //?Inicializa a gera鏰o de lancamentos do SIGAPCO ?
  2211. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? PcoIniLan('000250')
  2212. Begin Transaction
  2213. nPosRecPR := Ascan(aCols5,{|x|x[1]=="013"}) //imposto a recolher
  2214. nPosFECP := Ascan(aCols5,{|x|x[1]=="012"}) //FECP a recolher
  2215. nPosRecST := Ascan(aCols6,{|x|x[1]=="015"}) //imposto a recolher Substituicao Tributaria
  2216. nPosFECPST := Ascan(aCols6,{|x|x[1]=="014"}) //FECP a recolher Substituicao Tributaria
  2217. If SuperGetMv("MV_ESTADO") == "MG"
  2218. nPosFECPMG:= Ascan(aCols5,{|x|x[1]=="012"}) //FECP a recolher
  2219. nPosFESTMG:= Ascan(aCols6,{|x|x[1]=="014"}) //FECP a recolher Substituicao Tributaria
  2220. nPosFCPMG:= Ascan(aCols5,{|x|x[1]=="007"}) //FECP a recolher, referente ao FEM
  2221. EndIf
  2222. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  2223. //砎isando Atender a FNC:27052/2011 foi incluido tratamento para que o valor ?
  2224. //砫o ICMS COMPLEMENTAR seja deduzido do valor apurado de ICMS PROPRIO ?
  2225. //硁a geracao da GNRE quando o parametro MV_DCOMPRO = .T. ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  2226. If lMvDComPro
  2227. nPosDifAliq := Ascan(aCols7,{|x|x[1]=="016"})//ICMS COMPLEMENTAR - Diferencial de Aliquota
  2228. nVlrTitulo := (aCols5[nPosRecPR,4] - aCols7[nPosDifAliq][3])
  2229. Else
  2230. nVlrTitulo := aCols5[nPosRecPR,4]
  2231. nVlrTitST := aCols6[nPosRecST,4]
  2232. EndIf
  2233.  
  2234. nPosDeb := Ascan(aCols5,{|x|x[1]=="900"}) // Debitos Especiais ICMS proprio
  2235. nPosDebSt := Ascan(aCols6,{|x|x[1]=="901"}) // Debitos Especiais ST
  2236. For nNum :=1 to Len(aCOLS5)
  2237. //Somente considero os registros que tem o nr da GNRE preenchido e que nao estejam em OUTROS CREDITOS, ESTORNO DE DEBITO e DEBITOS ESPECIAIS
  2238. 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"
  2239. nVlrTitulo -=aCols5[nNum,4]
  2240. //aCols5[nPosRecPR,4] -=aCols5[nNum,4]
  2241. EndIf
  2242. Next
  2243.  
  2244. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  2245. //?Efetua Lancamento Contabil LP 712 Apuracao ICMS Saldo Credor ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  2246. If lContab
  2247. VALOR := aCols5[ Ascan(aCols5,{|x|x[1]=="004"}) ,04]
  2248. VALOR2 := aCols5[ Ascan(aCols5,{|x|x[1]=="010"}) ,04]
  2249. LancCont("712","MATA953",lContab)
  2250. Endif
  2251.  
  2252. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  2253. //?Armazena vencimento e orgao arrecadador do imposto ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  2254. nValGuiaSf6 := nVlrTitulo
  2255.  
  2256. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  2257. //?Efetua consistencia de Guias selecionadas ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  2258. aGNRE := VerificaGNRE()
  2259.  
  2260. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2261. //砅E caso haja necessidade de se parametrizar a grava玢o dos titulos (SE2) e GNREs gerados atraves da Apuracao de ICMS.?
  2262. //? O PE deve substituir a gravacao padrao. ?
  2263. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? lApPadrao := .T.
  2264. If ExistBlock ("MT953TIT") .And. !lGTitFluig
  2265. aGNRSTAnt := aGNREST
  2266. aRet := ExecBlock ("MT953TIT", .F., .F., {lTitulo, cImposto, cImp, cLcPadTit, dDtIni, dDtFim, dDtVenc, nMoedTit, lGuiaRec, nMes, nAno, lContab, aGNRESt, cMVSIGNRE, cProdec, cOrgArrec, nValGuiaSf6})
  2267. If ValType (aRet)=="A" .And. Len (aRet)>=6 .And.;
  2268. ValType (aRet[1])=="C" .And.;
  2269. ValType (aRet[2])=="A" .And.;
  2270. ValType (aRet[3])=="A" .And.;
  2271. ValType (aRet[4])=="A" .And.;
  2272. ValType (aRet[5])=="L" .And.;
  2273. ValType (aRet[6])=="C"
  2274. cNumero := aRet[1]
  2275. aGNRE := aRet[2]
  2276. aGNREST := aRet[3]
  2277. aTitulo := aRet[4]
  2278. lInfComp := aRet[5]
  2279. cNumero2 := aRet[6]
  2280. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  2281. //矨rray com os dados dos titulos gerados, para grava玢o no CDH ?
  2282. //砫eve estar no seguinte formato: {E2_PREFIXO,E2_NUM,E2_PARCELA,E2_TIPO,E2_FORNECE,E2_LOJA,"IC" ou "ST","Descr"}?
  2283. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  2284. If Len (aRet)==7 .And. ValType (aRet[7])=="A"
  2285. aTitCDH := aRet[7]
  2286. EndIf
  2287. lApPadrao := .F.
  2288. Else //Se o PE NAO retornar as informacoes necessarias, processo pelo PADRAO
  2289. cNumero := Space(TamSx3("F6_NUMERO")[1])
  2290. aGNRE := {}
  2291. aGNREST := aGNRSTAnt
  2292. aTitulo := {}
  2293. lInfComp := .F.
  2294. cNumero2 := Space(TamSx3("F6_NUMERO")[1])
  2295. lApPadrao := .T.
  2296. EndIf
  2297. EndIf //Fim do tratamento para o PE MT953TIT
  2298. If lApPadrao
  2299. nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "ICMS"$aX[8] .And. !"COMPLEMENTAR"$Upper(aX[8])})
  2300. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2301. //矴rava o titulo do ICMS Normal?
  2302. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪? nRecTit := Len(aRecTit)
  2303. lConfTit:= .F.
  2304.  
  2305. nSolicFlg := FGerTit(lTitulo,nVlrTitulo,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
  2306. dDtVenc,nMoedTit,lGuiaRec,nMes,nAno, nValGuiaSf6,;
  2307. 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,,,;
  2308. Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),@aRecTit,@lConfTit,,,,,,,,,,,,,,,,,,,lAutomato,aRetAuto,)
  2309.  
  2310. If nRecTit <> Len(aRecTit)
  2311. aRecTit[Len(aRecTit)][02] := STR0100 //"Apura玢o do ICMS - ICMS Normal"
  2312. If lUsaSped
  2313. dbSelectArea("SE2")
  2314. MsGoto(aRecTit[Len(aRecTit)][01])
  2315. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0100})
  2316. EndIf
  2317. Else
  2318. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  2319. If lGTitFluig
  2320. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0100, nSolicFlg } )
  2321. EndIf
  2322. Endif
  2323.  
  2324. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2325. //?Gera os lancamentos do SIGAPCO ?
  2326. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? PcoDetLan('000250','01','MATA953')
  2327.  
  2328. //Altera data de vencimento conforme guia de recolhimento apenas se gerar a mesma
  2329. If mv_par13 = 1
  2330. if SF6->F6_DTVENC <> dDtVenc
  2331. dDtVenc := SF6->F6_DTVENC
  2332. EndIF
  2333. EndIf
  2334.  
  2335. If lTitulo .And. nVlrTitulo>0 .And. lConfTit
  2336. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nVlrTitulo})
  2337. Endif
  2338. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  2339. //矴rava o titulo de Adicional relativo ao FECP ?
  2340. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  2341. nVlrFECP := 0
  2342. If SuperGetMv("MV_ESTADO")$"RJ|BA" .And. aCols5[nPosFECP,4]>0
  2343. For nIx := nPosFECP To Len(aCols5)
  2344. //Gero neste momento somente quando o numero da GNRE nao for informado, caso seja, serah gerado mais abaixo.
  2345. //Desconsidera as linhas de debitos especiais "900" - P9AUTOTEXT.RJ - para que o valor do FECP nao seja somado 2x.
  2346. If "FECP"$aCols5[nIx,3] .And. Empty(aCols5[nIx,5]) .And. !"900"$aCols5[nIx,1]
  2347. nVlrFECP += aCols5[nIx,4]
  2348. EndIf
  2349. Next nIx
  2350. EndIf
  2351.  
  2352. If SuperGetMv("MV_ESTADO")$"RJ|BA" .And. nVlrFECP>0
  2353. nRecTit := Len(aRecTit)
  2354. lConfTit:= .F.
  2355. nSolicFlg := FGerTit(lTitulo,nVlrFECP,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
  2356. dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,nVlrFECP,;
  2357. 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,.T.,,,@aRecTit,@lConfTit,,,,"RFECP",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
  2358.  
  2359. If nRecTit <> Len(aRecTit)
  2360. aRecTit[Len(aRecTit)][02] := STR0101 //"Apura玢o do ICMS - Adicional FECP"
  2361. If lUsaSped
  2362. dbSelectArea("SE2")
  2363. MsGoto(aRecTit[Len(aRecTit)][01])
  2364. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0101})
  2365. EndIf
  2366. Else
  2367. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  2368. If lGTitFluig
  2369. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0101, nSolicFlg } )
  2370. EndIf
  2371. Endif
  2372. If lTitulo .And. nVlrFECP>0 .And. lConfTit
  2373. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nVlrFECP})
  2374. Endif
  2375. Endif
  2376.  
  2377. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  2378. //矴rava o titulo de Adicional relativo ao FECOP-RN ?
  2379. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  2380. If SuperGetMv("MV_ESTADO")=="RN"
  2381. nVFcRN5410 := 0
  2382. nVFcRN5415 := 0
  2383. nVFcRN5420 := 0
  2384. If aCols7[32,3]>0//FECOP opera玢o direta consumo
  2385. nVFcRN5410 += aCols7[32,3]
  2386. nRecTit := Len(aRecTit)
  2387. lConfTit:= .F.
  2388. nPsGNR5410 := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "ICMS"$aX[8] .And. "RFECP"$Upper(aX[7])})
  2389.  
  2390. nSolicFlg := FGerTit(lTitulo,nVFcRN5410,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
  2391. dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,nVFcRN5410,;
  2392. 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,.T.,,Iif(nPsGNR5410>0,aGNREX[nPsGNR5410,1],Nil),@aRecTit,@lConfTit,,,,"RFECP",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
  2393.  
  2394. If nRecTit <> Len(aRecTit)
  2395. aRecTit[Len(aRecTit)][02] := STR0254 //"FECOP-Opera玢o Direta
  2396. If lUsaSped
  2397. dbSelectArea("SE2")
  2398. MsGoto(aRecTit[Len(aRecTit)][01])
  2399. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0254})
  2400. EndIf
  2401. Else
  2402. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  2403. If lGTitFluig
  2404. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0254, nSolicFlg } )
  2405. EndIf
  2406. Endif
  2407. If lTitulo .And. nVFcRN5410>0 .And. lConfTit
  2408. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nVFcRN5410})
  2409. Endif
  2410. EndIf
  2411. If aCols7[33,3]>0//FECOP opera玢o interna ST
  2412. nVFcRN5415 += aCols7[33,3]
  2413. nRecTit := Len(aRecTit)
  2414. lConfTit:= .F.
  2415. nPsGNR5415 := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "ICMS"$aX[8] .And. nVFcRN5415==aX[3] .And. "RFECPST"$Upper(aX[7])})
  2416.  
  2417. nSolicFlg := FGerTit(lTitulo,nVFcRN5415,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
  2418. dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,0,;
  2419. nVFcRN5415,"MATA953",lContab,@cNumero,@aGNRE,,,,,.T.,,Iif(nPsGNR5415>0,aGNREX[nPsGNR5415,1],Nil),@aRecTit,@lConfTit,,,,"RFECPST",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
  2420. If nRecTit <> Len(aRecTit)
  2421. aRecTit[Len(aRecTit)][02] := STR0255 //"FECOP-Opera玢o Interna ST
  2422. If lUsaSped
  2423. dbSelectArea("SE2")
  2424. MsGoto(aRecTit[Len(aRecTit)][01])
  2425. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"ST",STR0255})
  2426. EndIf
  2427. Else
  2428. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  2429. If lGTitFluig
  2430. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "ST", STR0255, nSolicFlg } )
  2431. EndIf
  2432. Endif
  2433. If lTitulo .And. nVFcRN5415>0 .And. lConfTit
  2434. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nVFcRN5415})
  2435. Endif
  2436. EndIf
  2437. If aCols7[34,3]>0//FECOP opera玢o interestadual ST
  2438. nVFcRN5420 += aCols7[34,3]
  2439. nRecTit := Len(aRecTit)
  2440. lConfTit:= .F.
  2441. nPsGNR5420 := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "ICMS"$aX[8] .And. nVFcRN5420==aX[3] .And. "RFECPST"$Upper(aX[7])})
  2442. nSolicFlg := FGerTit(lTitulo,nVFcRN5420,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
  2443. dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,0,;
  2444. nVFcRN5420,"MATA953",lContab,@cNumero,@aGNRE,,,,,.T.,,Iif(nPsGNR5420>0,aGNREX[nPsGNR5420,1],Nil),@aRecTit,@lConfTit,,,,"RFECPST",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
  2445. If nRecTit <> Len(aRecTit)
  2446. aRecTit[Len(aRecTit)][02] := STR0257 //"FECOP-Opera玢o Interestadual ST
  2447. If lUsaSped
  2448. dbSelectArea("SE2")
  2449. MsGoto(aRecTit[Len(aRecTit)][01])
  2450. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"ST",STR0257})
  2451. EndIf
  2452. Else
  2453. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  2454. If lGTitFluig
  2455. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "ST", STR0257, nSolicFlg } )
  2456. EndIf
  2457. Endif
  2458. If lTitulo .And. nVFcRN5420>0 .And. lConfTit
  2459. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nVFcRN5420})
  2460. Endif
  2461. EndIf
  2462. Endif
  2463.  
  2464. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2465. //矴rava o titulo de Adicional relativo ao FECP-MG?
  2466. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If SuperGetMv("MV_ESTADO")=="MG"
  2467. nVFcMG := 0
  2468. nVFcMGST := 0
  2469. If aCols5[nPosFECPMG,4]>0
  2470. For nIx := nPosFECPMG To Len(aCols5)
  2471. 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.
  2472. nVFcMG += aCols5[nIx,4]
  2473. EndIf
  2474. Next nIx
  2475. EndIf
  2476. If aCols5[nPosFCPMG,4]>0
  2477. For nIx := nPosFCPMG To Len(aCols5)
  2478. 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.
  2479. nVFcMG += aCols5[nIx,4]
  2480. EndIf
  2481. Next nIx
  2482. EndIf
  2483. If aCols7[35,3]>0 .And. nVFcMG > 0 //FECP ICMS pr髉rio
  2484. nRecTit := Len(aRecTit)
  2485. lConfTit:= .F.
  2486. nPsGNRMG := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "ICMS"$aX[8] .And. "RFECP"$Upper(aX[7])})
  2487.  
  2488. nSolicFlg := FGerTit(lTitulo,nVFcMG,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
  2489. dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,nVFcMG,;
  2490. 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,.T.,,Iif(nPsGNRMG>0,aGNREX[nPsGNRMG,1],Nil),@aRecTit,@lConfTit,,,,"RFECP",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
  2491. If nRecTit <> Len(aRecTit)
  2492. aRecTit[Len(aRecTit)][02] := STR0258 //"FECP/MG-ICMS pr髉rio
  2493. If lUsaSped
  2494. dbSelectArea("SE2")
  2495. MsGoto(aRecTit[Len(aRecTit)][01])
  2496. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0258})
  2497. EndIf
  2498. Else
  2499. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  2500. If lGTitFluig
  2501. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0258, nSolicFlg } )
  2502. EndIf
  2503. Endif
  2504. If lTitulo .And. nVFcMG > 0 .And. lConfTit
  2505. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nVFcMG})
  2506. Endif
  2507. EndIf
  2508. Endif
  2509. //谀哪哪哪哪哪哪哪哪哪哪哪哪目
  2510. //矴rava o titulo do FECP-MT?
  2511. //滥哪哪哪哪哪哪哪哪哪哪哪哪? If SuperGetMv("MV_ESTADO")=="MT"
  2512. nVFcMT := 0
  2513. If aCols7[38,3]>0
  2514. nVFcMT += aCols7[38,3]
  2515. nRecTit := Len(aRecTit)
  2516. lConfTit:= .F.
  2517. nPsGNRMT := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "ICMS"$aX[8] .And. "RFECP"$Upper(aX[7])})
  2518.  
  2519. nSolicFlg := FGerTit(lTitulo,nVFcMT,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
  2520. dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,nVFcMT,;
  2521. 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,.T.,,Iif(nPsGNRMT>0,aGNREX[nPsGNRMT,1],Nil),@aRecTit,@lConfTit,,,,"RFECP",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
  2522. If nRecTit <> Len(aRecTit)
  2523. aRecTit[Len(aRecTit)][02] := STR0261
  2524. If lUsaSped
  2525. dbSelectArea("SE2")
  2526. MsGoto(aRecTit[Len(aRecTit)][01])
  2527. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0258})
  2528. EndIf
  2529.  
  2530. Else
  2531. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  2532. If lGTitFluig
  2533. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0258, nSolicFlg } )
  2534. EndIf
  2535. Endif
  2536. If lTitulo .And. nVFcMT > 0 .And. lConfTit
  2537. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nVFcMT})
  2538. Endif
  2539. EndIf
  2540. Endif
  2541.  
  2542. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  2543. //矴rava o titulo do PROTEGE - GO?
  2544. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  2545. If SuperGetMv("MV_ESTADO")=="GO" .And. lGnrePrtge
  2546. nProtege := 0
  2547. If aCols7[41,3]>0
  2548. nProtege += aCols7[41,3]
  2549. nRecTit := Len(aRecTit)
  2550. lConfTit:= .F.
  2551.  
  2552. nSolicFlg := FGerTit(lGnrePrtge,nProtege,cImposto,"PR",cLcPadTit,dDtIni,dDtFim,;
  2553. dDtVenc,nMoedTit,.F.,nMes,nAno,nProtege,;
  2554. 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,.F.,,,@aRecTit,@lConfTit,,,,"",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
  2555.  
  2556. If nRecTit <> Len(aRecTit)
  2557. aRecTit[Len(aRecTit)][02] := STR0270
  2558. If lUsaSped
  2559. dbSelectArea("SE2")
  2560. MsGoto(aRecTit[Len(aRecTit)][01])
  2561. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0270})
  2562. EndIf
  2563. Else
  2564. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  2565. If lGTitFluig
  2566. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0102, nSolicFlg } )
  2567. EndIf
  2568. Endif
  2569. If lGnrePrtge .And. nProtege > 0 .And. lConfTit
  2570. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nProtege})
  2571. Endif
  2572. EndIf
  2573. Endif
  2574.  
  2575. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  2576. //矴rava o titulo do FEEF-RJ ?
  2577. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  2578. If SuperGetMv("MV_ESTADO")=="RJ"
  2579. nFeef := 0
  2580. If aCols7[42,3]>0
  2581. nFeef += aCols7[42,3]
  2582. nRecTit := Len(aRecTit)
  2583. lConfTit:= .F.
  2584.  
  2585. nSolicFlg := FGerTit(lTitulo,nFeef,cImposto,"FEEF",cLcPadTit,dDtIni,dDtFim,;
  2586. dDtVenc,nMoedTit,.F.,nMes,nAno,nFeef,;
  2587. 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,.F.,,,@aRecTit,@lConfTit,,,,"",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
  2588.  
  2589. If nRecTit <> Len(aRecTit)
  2590. aRecTit[Len(aRecTit)][02] := STR0270
  2591. If lUsaSped
  2592. dbSelectArea("SE2")
  2593. MsGoto(aRecTit[Len(aRecTit)][01])
  2594. 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'})
  2595. EndIf
  2596. Else
  2597. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  2598. If lGTitFluig
  2599. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0102, nSolicFlg } )
  2600. EndIf
  2601. Endif
  2602. If nFeef > 0 .And. lConfTit
  2603. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nFeef})
  2604. Endif
  2605. EndIf
  2606. Endif
  2607.  
  2608.  
  2609. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  2610. //矴rava o titulo de Diferencial de Aliquotas (RJ/MG/DF) ?
  2611. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  2612. // Para o DF Art. 74 do RICMS DF
  2613. If lIcmCompl .And. aCols7[2,3] > 0
  2614. nRecTit := Len(aRecTit)
  2615. lConfTit:= .F.
  2616.  
  2617. nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "COMPLEMENTAR"$Upper(aX[8])})
  2618.  
  2619. nSolicFlg := FGerTit(lTitulo,aCols7[2,3],cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
  2620. dDtVenc,nMoedTit,lGuiaRec,nMes,nAno, aCols7[2,3],;
  2621. 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,,.T.,Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),@aRecTit,@lConfTit,,,,"RICDIF",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
  2622.  
  2623.  
  2624.  
  2625. If nRecTit <> Len(aRecTit)
  2626. aRecTit[Len(aRecTit)][02] := STR0102 //"Apura玢o do ICMS - ICMS Complementar"
  2627. If lUsaSped
  2628. dbSelectArea("SE2")
  2629. MsGoto(aRecTit[Len(aRecTit)][01])
  2630. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0102})
  2631. EndIf
  2632. Else
  2633. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  2634. If lGTitFluig
  2635. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0102, nSolicFlg } )
  2636. EndIf
  2637. Endif
  2638. If lTitulo .And. aCols7[2,3]>0 .And. lConfTit
  2639. lInfComp := .T.
  2640. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,aCols7[2,3]})
  2641. Endif
  2642. Endif
  2643. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2644. //矴era o titulo a pagar referente ao ICMS Complementar ?
  2645. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If lIcmCompl .And. SuperGetMv("MV_ESTADO")$"RJ|BA" .And. aCols7[28,3] > 0
  2646. nRecTit := Len(aRecTit)
  2647. lConfTit:= .F.
  2648. nSolicFlg := FGerTit(lTitulo,aCols7[28,3],cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
  2649. dDtVenc,nMoedTit,lGuiaRec,nMes,nAno, aCols7[28,3],;
  2650. 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,,.T.,,@aRecTit,@lConfTit,,,,"RICDIFRJ",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
  2651. If nRecTit <> Len(aRecTit)
  2652. aRecTit[Len(aRecTit)][02] := STR0244 //"FECP Complementar(Cod Receita 750-1)"
  2653. If lUsaSped
  2654. dbSelectArea("SE2")
  2655. MsGoto(aRecTit[Len(aRecTit)][01])
  2656. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0102})
  2657. EndIf
  2658. Else
  2659. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  2660. If lGTitFluig
  2661. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0102, nSolicFlg } )
  2662. EndIf
  2663. Endif
  2664. If lTitulo .And. aCols7[28,3]>0 .And. lConfTit
  2665. lInfComp := .T.
  2666. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,aCols7[28,3]})
  2667. Endif
  2668. Endif
  2669.  
  2670. IF lCon13906 .AND. lGnreC139
  2671. For nNum := 1 to Len (aCols11)
  2672. nRecTit := Len(aRecTit)
  2673. IF Len(Alltrim(aCols11[nNum,1])) == 2
  2674. nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. 'CONV蔔IO 139/06'$Upper(aX[8])})
  2675. nSolicFlg := FGerTit(lGnreC139,aCols11[nNum,4],cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
  2676. dDtVenc,nMoedTit, Iif(Alltrim(aCols11[nNum,1]) $ SuperGetMv("MV_139GNUF",,""),.F.,.T.),nMes,nAno,0,;
  2677. 0,"MATA953",lContab,@cNumero,@aGNRE,,@aGNREST,;
  2678. aCols11[nNum,1],,,,Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),@aRecTit,@lConfTit,,,,'CONV139',,,,aCols11[nNum,4],,,,,,,,,,,lAutomato,aRetAuto,)
  2679. EndIF
  2680. If nRecTit <> Len(aRecTit)
  2681. aRecTit[Len(aRecTit)][02] := 'CONVENIO 139/06' //"FECP Complementar(Cod Receita 750-1)"
  2682. If lUsaSped
  2683. dbSelectArea("SE2")
  2684. MsGoto(aRecTit[Len(aRecTit)][01])
  2685. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0102})
  2686. EndIf
  2687. EndIF
  2688.  
  2689. Next nNum
  2690. EndIF
  2691. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2692. //矴rava os titulos de Substituicao Tributaria para os estados com valor de imposto retido na operacao?
  2693. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? For nNum := 1 to Len(aGNREST)
  2694. nRecTit := Len(aRecTit)
  2695. lConfTit:= .F.
  2696. lFECPsep:= aGNRESt[nNum][05] > 0
  2697.  
  2698. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2699. //砈e existir Deb. Especial e Debitar Substituicao Tributaria, nao gera GNRE?
  2700. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? nVlrDebSt := 0
  2701. //Nao eh necessario realizar esta deducao pois ja foram feitas anteriormente
  2702. If !SuperGetMv("MV_ESTADO") $ cMVUFICDED
  2703. If aCols6[nPosDebSt,4]>0
  2704. For nIx := nPosDebSt TO Len(aCols6)
  2705. 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]
  2706. nVlrDebSt := aCols6[nIx,4]
  2707. Endif
  2708. Next nIx
  2709. aGNREST[nNum,2] -= nVlrDebSt
  2710. EndIf
  2711. Endif
  2712. If SuperGetMv("MV_ESTADO")=="RN"
  2713. 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]})
  2714. Else
  2715. nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "- ST"$aX[8] .And. aGNREST[nNum,1]==aX[5] .And. aGNREST[nNum,2]==aX[3]})
  2716. EndIf
  2717.  
  2718. nValGNREST := aGNREST[nNum][02]
  2719. nValFECSEP := aGNRESt[nNum][05]
  2720.  
  2721. IF aGNREST[nNum][04] .And. !(cNrLivro $ Alltrim(SuperGetMV("MV_APUSEP",,""))) //// Valida para n鉶 gerar titulo e GNRE para ST de subapura玢o
  2722. 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)))
  2723. dDtVencDif:= DaySum(FirstDate(MonthSum(aDatas[01],aPzRecSt[01][01])),(aPzRecSt[01][02])-1) //Gera com o dia que foi definido no Par鈓etro
  2724. ElseIf Len(aPzRecSt) > 0 .And. Len(aDatas)>0 //Se pular para o proximo M阺 pega o ultimo dia do mes
  2725. dDtVencDif := LastDate(FirstDate(MonthSum(aDatas[01],aPzRecSt[01][01])))
  2726. EndIf
  2727.  
  2728. nSolicFlg := FGerTit(lTitulo,nValGNREST,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
  2729. DataValida(dDtVencDif,.F.),nMoedTit,lGuiaRec,nMes,nAno,0,;
  2730. nValGNREST,"MATA953",lContab,@cNumero,@aGNRE,,@aGNREST,;
  2731. aGNREST[nNum][01],,,,Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),@aRecTit,@lConfTit,,,,,,,,,,,,,,,,,,,lAutomato,aRetAuto,)
  2732. ElseIf !(cNrLivro $ Alltrim(SuperGetMV("MV_APUSEP",,""))) // Valida para n鉶 gerar titulo e GNRE para ST de subapura玢o
  2733. nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "- ST"$aX[8] .And. aGNREST[nNum,1]==aX[5] .And. aGNREST[nNum,2]==aX[3]+nValFECSEP})
  2734. nSolicFlg := FGerTit(lTitulo,Iif(lFECPsep,nValGNREST - nValFECSEP,nValGNREST),cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
  2735. dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,0,;
  2736. Iif(lFECPsep,nValGNREST - nValFECSEP,nValGNREST),"MATA953",lContab,@cNumero,@aGNRE,,@aGNREST,;
  2737. aGNREST[nNum][01],,,,Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),@aRecTit,@lConfTit,,,,,,,,,,,,,,,,,,,lAutomato,aRetAuto,)
  2738.  
  2739. If nRecTit <> Len(aRecTit)
  2740. aRecTit[Len(aRecTit)][02] := STR0104 //"Apura玢o do ICMS - Substitui玢o Tribut醨ia"
  2741. If lUsaSped
  2742. dbSelectArea("SE2")
  2743. MsGoto(aRecTit[Len(aRecTit)][01])
  2744. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"ST",STR0104})
  2745. EndIf
  2746. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  2747. If lGTitFluig
  2748. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "ST", STR0104, nSolicFlg } )
  2749. EndIf
  2750. Endif
  2751.  
  2752. If lFECPsep
  2753. nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. "- ST"$aX[8] .And. aGNREST[nNum,1]==aX[5] .And. nValFECSEP == aX[3]})
  2754. nSolicFlg := FGerTit(lTitulo,nValFECSEP,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
  2755. dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,0,;
  2756. nValFECSEP,"MATA953",lContab,@cNumero,@aGNRE,,,aGNREST[nNum][01],,.T.,,Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),@aRecTit,@lConfTit,,,,,,,,,,,,,,,,,,,lAutomato,aRetAuto,)
  2757.  
  2758. If nRecTit <> Len(aRecTit)
  2759. aRecTit[Len(aRecTit)][02] := STR0104 //"Apura玢o do ICMS - Substitui玢o Tribut醨ia"
  2760. If lUsaSped
  2761. dbSelectArea("SE2")
  2762. MsGoto(aRecTit[Len(aRecTit)][01])
  2763. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"ST",STR0104})
  2764. EndIf
  2765. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  2766. If lGTitFluig
  2767. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "ST", STR0104, nSolicFlg } )
  2768. EndIf
  2769. Endif
  2770. EndIf
  2771. EndIf
  2772.  
  2773. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2774. //?Gera os lancamentos do SIGAPCO ?
  2775. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? PcoDetLan('000250','03','MATA953')
  2776. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  2777. //矴rava a informacao do titulo na apuracao se o mesmo foi gerado?
  2778. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  2779. If lTitulo .And. aGNREST[nNum][02]>0 .And. lConfTit
  2780. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,aGNREST[nNum][02]})
  2781. Endif
  2782. Next
  2783.  
  2784. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2785. //矴ero as GNREs de ICMS/ST que tiveram o numero informado manualmente na apuracao?
  2786. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? For nNum :=1 to Len(aCOLS6)
  2787. //Somente considero os registros que tem o nr da GNRE preenchido
  2788. If !Empty(aCOLS6[nNum,5]) .And. !"901"$aCols6[nNum,2]
  2789. nRecTit := Len(aRecTit)
  2790. lConfTit:= .F.
  2791.  
  2792. nSolicFlg := FGerTit(lTitulo,aCols6[nNum,4],cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
  2793. dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,0,;
  2794. 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,)
  2795. If nRecTit <> Len(aRecTit)
  2796. aRecTit[Len(aRecTit)][02] := STR0104 //"Apura玢o do ICMS - Substitui玢o Tribut醨ia"
  2797. If lUsaSped
  2798. dbSelectArea("SE2")
  2799. MsGoto(aRecTit[Len(aRecTit)][01])
  2800. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"ST",STR0104})
  2801. EndIf
  2802. Else
  2803. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  2804. If lGTitFluig
  2805. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "ST", STR0104, nSolicFlg } )
  2806. EndIf
  2807. Endif
  2808. EndIf
  2809. Next
  2810. /*
  2811. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  2812. //砎erifica se para Debitos Especiais ICMS tem numero de GNRE?
  2813. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  2814.  
  2815. For nNum :=1 to Len(aCOLS5)
  2816. //Somente considero os registros que tem o nr da GNRE preenchido
  2817. If !Empty(aCOLS5[nNum,5])
  2818. nRecTit := Len(aRecTit)
  2819. lConfTit:= .F.
  2820. GravaTit(lTitulo,aCols5[nNum,4],cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
  2821. dDtVenc,nMoedTit,lGuiaRec,nMes,nAno, aCols5[nNum,4],;
  2822. 0,"MATA953",lContab,@cNumero2,@aGNRE,aCOLS5[nNum,6],,,,,,aCOLS5[nNum,5],@aRecTit,@lConfTit,,,,aCOLS5[nNum,2])
  2823.  
  2824. If nRecTit <> Len(aRecTit)
  2825. aRecTit[Len(aRecTit)][02] := STR0248 //"Debitos Especiais ICMS Normal"
  2826. If lUsaSped
  2827. dbSelectArea("SE2")
  2828. MsGoto(aRecTit[Len(aRecTit)][01])
  2829. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0248})
  2830. EndIf
  2831. Endif
  2832. EndIf
  2833. Next
  2834. */
  2835. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2836. //矴ero todas as GNREs amarradas na apucacao de ICMS Proprio manualmente preenchendo o numero da guia.?
  2837. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? For nNum :=1 to Len(aCOLS5)
  2838. //Somente considero os registros que tem o nr da GNRE preenchido
  2839. If !Empty(aCOLS5[nNum,5]) // .And. !"900"$aCols5[nNum,2]
  2840. If !(AllTrim (aCOLS5[nNum, 2])$cMVSIGNRE)
  2841. dDtVenc2 :=STOD(StrZero(Year(ddtvenc)+Val(cProdec),4)+StrZero(Month(ddtvenc),2)+StrZero(Day(ddtvenc),2))
  2842. Else
  2843. dDtVenc2 := dDtVenc
  2844. EndIf
  2845. //
  2846. nRecTit := Len(aRecTit)
  2847. lConfTit:= .F.
  2848. nSolicFlg := FGerTit(lTitulo,aCols5[nNum,4],cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
  2849. dDtVenc2,nMoedTit,lGuiaRec,nMes,nAno,aCols5[nNum,4],;
  2850. 0,"MATA953",lContab,@cNumero2,@aGNRE,aCOLS5[nNum,6],,,,,,aCOLS5[nNum,5],@aRecTit,@lConfTit,,,,aCOLS5[nNum,2],,,,,,,,,,,,,,,lAutomato,aRetAuto,)
  2851. If nRecTit <> Len(aRecTit)
  2852. aRecTit[Len(aRecTit)][02] := STR0105 //"Apura玢o do ICMS - PRODEC"
  2853. If lUsaSped
  2854. dbSelectArea("SE2")
  2855. MsGoto(aRecTit[Len(aRecTit)][01])
  2856. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0105})
  2857. EndIf
  2858. Else
  2859. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  2860. If lGTitFluig
  2861. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0105, nSolicFlg } )
  2862. EndIf
  2863. Endif
  2864. /* //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2865. //砈UPONHAMOS QUE POSSU蚆OS UM D葿ITO DE 100, INSERIMOS UM SUBITEM ?
  2866. //? DE MAIS 150 GERANDO UMA GNRE INDEPENDENTE NUMERO "000001". AO ?
  2867. //? CONFIRMAR A APURACAO DE ICMS, APARECERA O PRIMEIRO DEBITO DE 100 ?
  2868. //? ONDE INFORMAMOS O NUMERO DA GNRE "000001" (MESMO NUMERO DA GNRE ?
  2869. //? INDEPENDENTE A SER GERADA), ESTA GNRE SERA GRAVADA, EM SEGUIDA, SERA ?
  2870. //? APRESENTADA NOVAMENTE A TELA DE GRAVACAO DA GNRE INDEPENDENTE NO ?
  2871. //? VALOR DE 150 COM O MESMO NUMERO, SE REDIGITARMOS O NUMERO SERA ?
  2872. //? APRESENTADO O HELP "JAGRAVADO", MAS SE NAO REDIGITARMOS E GRAVARMOS ?
  2873. //? SE ALTERAR O CAMPO DE NUMERO, SERA CRIADO DUAS GNREs COM O MESMO ?
  2874. //? NUMERO PARA O MESMO ESTADO. ?
  2875. //矲OI IMPLEMENTADO UM TRATAMENTO NA GRAVATIT PARA QUANDO OCORRER ESTA ?
  2876. //? SITUACAO, O CAMPO SERA ZERADO OBRIGANDO A DIGITACAO, NESTE PONTO O QUE?
  2877. //? FOI DIGITADO DEVERA TAMBEM ALTERAR TAMBEM A GRAVACAO DO ARQUITO TEXTO ?
  2878. //? DA APURACAO. ?
  2879. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If (Len (aGNRE)>0)
  2880. aCOLS5[nNum,5] := aGNRE[Len (aGNRE)][1]
  2881. EndIf
  2882. */ //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2883. //?Gera os lancamentos do SIGAPCO ?
  2884. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? PcoDetLan('000250','04','MATA953')
  2885. EndIf
  2886. Next
  2887.  
  2888. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2889. //矴era a Guia de Recolhimento para os Debitos Especiais de ICMS Proprio?
  2890. //|Serah gerado abaixo, somente as GNREs que nao tiveram um numero |
  2891. //| amarrado atraves da Apuracao. |
  2892. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2893. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2894. //砊ratamento para os estado que utilizam o FECP Generico (F3_VALFECP/F3_VFECPST) e que nao possuem tratamento ?
  2895. //砮specifico para geracao das GNRE's. ?
  2896. //? ?
  2897. //砄s estados que possuem esses tratamentos especificos (MT;RN;MG;MA;RJ;BA) nao terao as guias de FECP ?
  2898. //砱eradas neste momento, pois ja foram feitas anteriormente. ?
  2899. //? ?
  2900. //砃este processamento (para Debitos Especiais), vou separar as linhas de lancadas especificamente para o FECP das ?
  2901. //砫emais linhas, para assim gerar a Guia de forma separada. ?
  2902. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If !( GetNewPar( "MV_ESTADO" ) $ "MT|RN|MG|MA|RJ|BA" )
  2903. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2904. //砎erifico se a aba de Debitos Especiais (ICMS Proprio) possui recolhimento de imposto ?
  2905. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If aCols5[ nPosDeb , 4 ] > 0
  2906. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2907. //矨baixo passo por todas as linhas incluidas em Debitos Especiais, segregando os valores que serao ?
  2908. //硆ecolhidos exclusivamente para o FECP - para outros estados outras nomenclaturas, por esse motivo ?
  2909. //砤 utilizacao da funcao UFxNameFcp() - dos valores recolhidos normalmente como ICMS Proprio. ?
  2910. //? ?
  2911. //砅reciso fazer a segregacao pois as GNRE's geradas para o FECP possuem Codigo de Receita especificos ?
  2912. //? ?
  2913. //矱sse mecanismo funciona apenas para os estados que possuem codigos de ajuste especificos para o FECP ?
  2914. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? For nIx := nPosDeb To Len( aCols5 )
  2915. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2916. //?aVlrDebEsp[ 1 ] -> Valores exclusivos do FECP ?
  2917. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? //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])
  2918. 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 ]
  2919. aVlrDebEsp[ 1 ] += aCols5[ nIx , 4 ]
  2920. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2921. //?aVlrDebEsp[ 2 ] -> Valores para ICMS Proprio ?
  2922. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2923. Elseif aCols5[ nIx , 4 ] > 0 .And. IIf(lUsaSped == .T.,!Empty(aCols5[ nIx , 7 ]),aCols5[nIx,2] <> aCols5[nPosDeb,2]) .And. Empty( aCols5[ nIx , 5 ] )
  2924. aVlrDebEsp[ 2 ] += aCols5[ nIx , 4 ]
  2925. Endif
  2926. Next nIx
  2927. Endif
  2928.  
  2929. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  2930. //矴eracao das GNRE's e Titulos conforme validacoes acima ?
  2931. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? For nNum := 1 To Len( aVlrDebEsp )
  2932.  
  2933. If aVlrDebEsp[ nNum ] > 0
  2934.  
  2935. nRecTit := Len(aRecTit)
  2936. lConfTit:= .F.
  2937.  
  2938. nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. AllTrim(aX[7])=="RDBESP"})
  2939.  
  2940. nSolicFlg := FGerTit( lTitulo,;
  2941. aVlrDebEsp[ nNum ],;
  2942. cImposto,;
  2943. cImp,;
  2944. cLcPadTit,;
  2945. dDtIni,;
  2946. dDtFim,;
  2947. dDtVenc,;
  2948. nMoedTit,;
  2949. lGuiaRec,;
  2950. nMes,;
  2951. nAno,;
  2952. aVlrDebEsp[ nNum ],;
  2953. 0,;
  2954. "MATA953",;
  2955. lContab,;
  2956. @cNumero,;
  2957. @aGNRE,,,,,,,;
  2958. Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),;
  2959. @aRecTit,;
  2960. @lConfTit,;
  2961. ,,,;
  2962. "RDBESP",;
  2963. ,;
  2964. ,;
  2965. ,;
  2966. ,;
  2967. ,;
  2968. ,;
  2969. ,;
  2970. ,;
  2971. ,;
  2972. ,,,,,lAutomato,aRetAuto,)
  2973.  
  2974. If nRecTit <> Len(aRecTit)
  2975. aRecTit[Len(aRecTit)][02] := STR0248 //"Apura玢o do ICMS - Debitos Especiais"
  2976. If lUsaSped
  2977. dbSelectArea("SE2")
  2978. MsGoto(aRecTit[Len(aRecTit)][01])
  2979. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0248})
  2980. EndIf
  2981. Else
  2982. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  2983. If lGTitFluig
  2984. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0248, nSolicFlg } )
  2985. EndIf
  2986. Endif
  2987. If lTitulo .And.aCols5[nPosDeb,4]>0 .And. lConfTit
  2988. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,aVlrDebEsp[ nNum ]})
  2989. Endif
  2990. Endif
  2991.  
  2992. Next nNum
  2993.  
  2994. Else
  2995. nVlrDeb := 0
  2996. If aCols5[nPosDeb,4]>0
  2997. For nIx := nPosDeb TO Len(aCols5)
  2998. 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"
  2999. nVlrDeb += aCols5[nIx,4]
  3000. Endif
  3001. Next nIx
  3002. Endif
  3003. //verifica se j?foi lan鏰do no complementar se j?foi n鉶 lan鏰 de novo s?se a aba especial
  3004. //for maior do que o que foi lan鏰do no complementar ai lan鏰 a diferen鏰
  3005. if lIcmCompl .and. ((aCols7[28,3] + aCols7[2,3]) - nVlrDeb)>=0
  3006. nVlrDeb := 0
  3007. elseif lIcmCompl
  3008. nVlrDeb := nVlrDeb - (aCols7[28,3] + aCols7[2,3])
  3009. endif
  3010. If nVlrDeb >0
  3011. nRecTit := Len(aRecTit)
  3012. lConfTit:= .F.
  3013.  
  3014. nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. AllTrim(aX[7])=="RDBESP"})
  3015.  
  3016. nSolicFlg := FGerTit(lTitulo,nVlrDeb,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
  3017. dDtVenc,nMoedTit,lGuiaRec,nMes,nAno, nVlrDeb,;
  3018. 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,,,Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),@aRecTit,@lConfTit,,,,"RDBESP",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
  3019. If nRecTit <> Len(aRecTit)
  3020. aRecTit[Len(aRecTit)][02] := STR0248 //"Apura玢o do ICMS - Debitos Especiais"
  3021. If lUsaSped
  3022. dbSelectArea("SE2")
  3023. MsGoto(aRecTit[Len(aRecTit)][01])
  3024. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0248})
  3025. EndIf
  3026. Else
  3027. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  3028. If lGTitFluig
  3029. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0248, nSolicFlg } )
  3030. EndIf
  3031. Endif
  3032. If lTitulo .And.aCols5[nPosDeb,4]>0 .And. lConfTit
  3033. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nVlrDeb})
  3034. Endif
  3035. Endif
  3036.  
  3037. Endif
  3038.  
  3039. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  3040. //矴era a Guia de Recolhimento para os Debitos Especiais de ICMS ST ?
  3041. //|Serah gerado abaixo, somente as GNREs que nao tiveram um numero |
  3042. //| amarrado atraves da Apuracao. |
  3043. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  3044. nVlrDebSt := 0
  3045. If aCols6[nPosDebSt,4]>0
  3046. For nIx := nPosDebSt TO Len(aCols6)
  3047. 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]
  3048. For nIy := nPosDebSt TO Len(aCols6)
  3049. 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]
  3050. If (aScan(aUfEsp,{|x| x[1] == substr(aCOLS6[nIy,7],1,2)})) == 0
  3051. If substr(aCOLS6[nIy,7],1,2) == substr(aCOLS6[nIx,7],1,2)
  3052. nVlrDebSt += aCols6[nIy,4]
  3053. EndIf
  3054. EndIF
  3055. EndIf
  3056. Next nIy
  3057.  
  3058. AADD(aUfEsp,{substr(aCOLS6[nIx,7],1,2)})
  3059.  
  3060. If nVlrDebSt > 0
  3061. nRecTit := Len(aRecTit)
  3062. lConfTit:= .F.
  3063.  
  3064. nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. AllTrim(aX[7])=="RDBESPST"})
  3065.  
  3066. nSolicFlg := FGerTit(lTitulo,nVlrDebSt,cImposto,cImp,cLcPadTit,dDtIni,dDtFim,;
  3067. dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,0,nVlrDebSt,;
  3068. "MATA953",lContab,@cNumero,@aGNRE,,,substr(aCOLS6[nIx,7],1,2),,,,Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),@aRecTit,@lConfTit,,,,"RDBESPST",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
  3069. If nRecTit <> Len(aRecTit)
  3070. aRecTit[Len(aRecTit)][02] := STR0249 //"Apura玢o do ICMS ST - Debitos Especiais"
  3071. If lUsaSped
  3072. dbSelectArea("SE2")
  3073. MsGoto(aRecTit[Len(aRecTit)][01])
  3074. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"ST",STR0249})
  3075. EndIf
  3076. Else
  3077. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  3078. If lGTitFluig
  3079. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "ST", STR0249, nSolicFlg } )
  3080. EndIf
  3081. Endif
  3082. If lTitulo .And.aCols6[nPosDebSt,4]>0 .And. lConfTit
  3083. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,nVlrDebSt})
  3084. Endif
  3085. Endif
  3086. nVlrDebSt := 0
  3087. Endif
  3088. Next nIx
  3089. Endif
  3090.  
  3091. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  3092. //矴era o titulo a pagar referente ao Fundersul - Mato Grosso do Sul?
  3093. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If GetMV("MV_ESTADO") $ "MS" .And. aCols7[16,3] > 0
  3094. nRecTit := Len(aRecTit)
  3095. lConfTit:= .F.
  3096. nSolicFlg := FGerTit(lTitulo,aCols7[16,3],"FDS","FD",cLcPadTit,dDtIni,dDtFim,;
  3097. dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,0,;
  3098. 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,,.T.,,@aRecTit,@lConfTit,aCols7[16,3],,,"RFUNDSUL",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
  3099. If nRecTit <> Len(aRecTit)
  3100. aRecTit[Len(aRecTit)][02] := STR0116 //"Fundersul - Mato Grosso do Sul"
  3101. If lUsaSped
  3102. dbSelectArea("SE2")
  3103. MsGoto(aRecTit[Len(aRecTit)][01])
  3104. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0116})
  3105. EndIf
  3106. Else
  3107. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  3108. If lGTitFluig
  3109. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0116, nSolicFlg } )
  3110. EndIf
  3111. Endif
  3112. If lTitulo .And. aCols7[16,3]>0 .And. lConfTit
  3113. lInfComp := .T.
  3114. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,aCols7[16,3]})
  3115. Endif
  3116. Endif
  3117.  
  3118. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  3119. //矴era o titulo a pagar referente ao Senar ?
  3120. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If aCols7[29,3] > 0
  3121. nRecTit := Len(aRecTit)
  3122. lConfTit:= .F.
  3123. nSolicFlg := FGerTit(lTitulo,aCols7[29,3],"SENAR","SE",cLcPadTit,dDtIni,dDtFim,;
  3124. dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,0,;
  3125. 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,,.T.,,@aRecTit,@lConfTit,aCols7[29,3],,,"RSENAR",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
  3126. If nRecTit <> Len(aRecTit)
  3127. aRecTit[Len(aRecTit)][02] := STR0245 //"Senar"
  3128. If lUsaSped
  3129. dbSelectArea("SE2")
  3130. MsGoto(aRecTit[Len(aRecTit)][01])
  3131. AADD(aTitCDH,{SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC",STR0245})
  3132. EndIf
  3133. Else
  3134. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  3135. If lGTitFluig
  3136. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", STR0245, nSolicFlg } )
  3137. EndIf
  3138. Endif
  3139. If lTitulo .And. aCols7[29,3]>0 .And. lConfTit
  3140. lInfComp := .T.
  3141. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,aCols7[29,3]})
  3142. Endif
  3143. Endif
  3144.  
  3145. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  3146. //矴era o titulo a pagar referente ao Fumacop ?
  3147. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If SuperGetMv("MV_ESTADO")=="MA"
  3148. nPosFumac:= Ascan(aCols5,{|x|x[2]=="012.01"})
  3149. If nPosFumac > 0 .And. aCols5[nPosFumac,4] > 0
  3150. nRecTit := Len(aRecTit)
  3151. lConfTit:= .F.
  3152. nSolicFlg := FGerTit(.F.,aCols5[nPosFumac,4],"FUMA","FU",cLcPadTit,dDtIni,dDtFim,;
  3153. dDtVenc,nMoedTit,lGuiaRec,nMes,nAno,0,;
  3154. 0,"MATA953",lContab,@cNumero,@aGNRE,,,,,,.T.,,@aRecTit,@lConfTit,aCols5[nPosFumac,4],,,"RFUMAC",,,,,,,,,,,,,,,lAutomato,aRetAuto,)
  3155. Endif
  3156. Endif
  3157.  
  3158.  
  3159. //-------------------------------------------------------------------------------------------------------------
  3160. // GERACAO DA GUIA NACIONAL DE RECOLHIMENTO
  3161. //-------------------------------------------------------------------------------------------------------------
  3162. //
  3163. // INCENTIVOS FISCAIS
  3164. //
  3165. //-------------------------------------------------------------------------------------------------------------
  3166. // Abaixo sao geradas as guias de recolhimento dos incentivos fiscais
  3167. //-------------------------------------------------------------------------------------------------------------
  3168. If !Empty(aApIncent)
  3169.  
  3170. //-------------------------------------------------------------------------------------
  3171. // DESENVOLVE - BA
  3172. //-------------------------------------------------------------------------------------
  3173. // Programa de Desenvolvimento Industrial e de Integracao Economica do Estado da Bahia
  3174. // Embasamento legal:
  3175. // Resolucao No 123/2009 (regime especial) , Lei no 7.980/2001 e Decreto no 8.205/2002
  3176. //-------------------------------------------------------------------------------------
  3177. If GetNewPar("MV_ESTADO") == "BA"
  3178.  
  3179. // ------------------------------
  3180. //DESENVOLVE PARCELA DE INCENTIVO
  3181. // ------------------------------
  3182. If aApIncent[3] > 0
  3183.  
  3184. // Descricao para GNRE
  3185. aApIncent[Len(aApIncent)] := "Desenvolve"
  3186.  
  3187. nRecTit := Len(aRecTit)
  3188. lConfTit:= .F.
  3189.  
  3190. nSolicFlg := FGerTit( lTitulo,; //-> Gera Titulo
  3191. aApIncent[3],; //-> Valor do Titulo
  3192. cImposto,cImp,;
  3193. cLcPadTit,;
  3194. dDtIni, dDtFim,;
  3195. aApIncent[4],; //-> Vencimento da GNRE
  3196. nMoedTit,lGuiaRec,;
  3197. nMes,nAno,;
  3198. 0,0,;
  3199. "MATA953",;
  3200. lContab,;
  3201. @cNumero,;
  3202. @aGNRE,;
  3203. ,,,,,;
  3204. .T.,;
  3205. ,;
  3206. @aRecTit,;
  3207. @lConfTit,;
  3208. aApIncent[3],;
  3209. ,;
  3210. ,;
  3211. "RDESENV",;
  3212. aApIncent,;
  3213. ,;
  3214. ,;
  3215. ,;
  3216. ,;
  3217. ,;
  3218. ,;
  3219. ,;
  3220. ,;
  3221. ,,,,,lAutomato,aRetAuto,)
  3222.  
  3223. If nRecTit <> Len(aRecTit)
  3224. aRecTit[Len(aRecTit)][02] := "Desenvolve"
  3225. If lUsaSped
  3226. dbSelectArea("SE2")
  3227. MsGoto(aRecTit[Len(aRecTit)][01])
  3228.  
  3229. AADD ( aTitCDH, { SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,;
  3230. SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC","Desenvolve"})
  3231.  
  3232. EndIf
  3233. Else
  3234. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  3235. If lGTitFluig
  3236. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", "Desenvolve", nSolicFlg } )
  3237. EndIf
  3238. Endif
  3239.  
  3240. If lTitulo .And. lConfTit
  3241. lInfComp := .T.
  3242. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,aApIncent[2]})
  3243. Endif
  3244. Endif
  3245.  
  3246. // ------------------------------
  3247. //DESENVOLVE PARCELA ANTECIPADA
  3248. // ------------------------------
  3249. If aApIncent[2] > 0
  3250.  
  3251. // Descricao para GNRE
  3252. aApIncent[Len(aApIncent)] := "Desenvolve Ant."
  3253.  
  3254. nRecTit := Len(aRecTit)
  3255. lConfTit:= .F.
  3256.  
  3257. nSolicFlg := FGerTit( lTitulo,; //-> Gera Titulo
  3258. aApIncent[2],; //-> Valor do Titulo
  3259. cImposto,cImp,;
  3260. cLcPadTit,;
  3261. dDtIni, dDtFim,;
  3262. aApIncent[5],; //-> Vencimento da GNRE
  3263. nMoedTit,lGuiaRec,;
  3264. nMes,nAno,;
  3265. 0,0,;
  3266. "MATA953",;
  3267. lContab,;
  3268. @cNumero,;
  3269. @aGNRE,;
  3270. ,,,,,;
  3271. .T.,;
  3272. ,;
  3273. @aRecTit,;
  3274. @lConfTit,;
  3275. aApIncent[2],;
  3276. ,;
  3277. ,;
  3278. "RDSVANT",;
  3279. aApIncent,;
  3280. ,;
  3281. ,;
  3282. ,;
  3283. ,;
  3284. ,;
  3285. ,;
  3286. ,;
  3287. ,;
  3288. ,,,,,lAutomato,aRetAuto,)
  3289.  
  3290. If nRecTit <> Len(aRecTit)
  3291. aRecTit[Len(aRecTit)][02] := "Desenvolve Ant."
  3292. If lUsaSped
  3293. dbSelectArea("SE2")
  3294. MsGoto(aRecTit[Len(aRecTit)][01])
  3295.  
  3296. AADD ( aTitCDH, { SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,;
  3297. SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC","Desenvolve Ant."})
  3298.  
  3299. EndIf
  3300. Else
  3301. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  3302. If lGTitFluig
  3303. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", "Desenvolve Ant.", nSolicFlg } )
  3304. EndIf
  3305. Endif
  3306.  
  3307. If lTitulo .And. lConfTit
  3308. lInfComp := .T.
  3309. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,aApIncent[3]})
  3310. Endif
  3311.  
  3312. Endif
  3313.  
  3314. //-------------------------------------------------------------------------------------
  3315. // PRODEC - SC
  3316. //-------------------------------------------------------------------------------------
  3317. // Programa de Desenvolvimento Industrial e de Integracao Economica do Estado da Bahia
  3318. // Embasamento legal:
  3319. // Resolucao No 123/2009 (regime especial) , Lei no 7.980/2001 e Decreto no 8.205/2002
  3320. //-------------------------------------------------------------------------------------
  3321. ElseIf GetNewPar("MV_ESTADO") == "SC"
  3322.  
  3323. // ------------------------------
  3324. // Prodec / SC
  3325. // ------------------------------
  3326. If aApIncent[2] > 0
  3327.  
  3328. // Descricao para GNRE
  3329. aApIncent[Len(aApIncent)] := "Prodec"
  3330.  
  3331. nRecTit := Len(aRecTit)
  3332. lConfTit:= .F.
  3333.  
  3334. nSolicFlg := FGerTit( lTitulo,; //-> Gera Titulo
  3335. aApIncent[2],; //-> Valor do Titulo
  3336. cImposto,cImp,;
  3337. cLcPadTit,;
  3338. dDtIni, dDtFim,;
  3339. aApIncent[4],; //-> Vencimento da GNRE
  3340. nMoedTit,lGuiaRec,;
  3341. nMes,nAno,;
  3342. 0,0,;
  3343. "MATA953",;
  3344. lContab,;
  3345. @cNumero,;
  3346. @aGNRE,;
  3347. ,,,,,;
  3348. .T.,;
  3349. ,;
  3350. @aRecTit,;
  3351. @lConfTit,;
  3352. aApIncent[2],;
  3353. ,;
  3354. ,;
  3355. "RPRODEC",;
  3356. aApIncent,;
  3357. ,;
  3358. ,;
  3359. ,;
  3360. ,;
  3361. ,;
  3362. ,;
  3363. ,;
  3364. ,;
  3365. ,,,,,lAutomato,aRetAuto,)
  3366.  
  3367.  
  3368. If nRecTit <> Len(aRecTit)
  3369. aRecTit[Len(aRecTit)][02] := "Prodec"
  3370. If lUsaSped
  3371. dbSelectArea("SE2")
  3372. MsGoto(aRecTit[Len(aRecTit)][01])
  3373.  
  3374. AADD ( aTitCDH, { SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,;
  3375. SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC","Prodec"})
  3376.  
  3377. EndIf
  3378. Else
  3379. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  3380. If lGTitFluig
  3381. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", "Prodec", nSolicFlg } )
  3382. EndIf
  3383. Endif
  3384.  
  3385. If lTitulo .And. lConfTit
  3386. lInfComp := .T.
  3387. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,aApIncent[2]})
  3388. Endif
  3389. Endif
  3390.  
  3391. // ------------------------------
  3392. // Famdes / SC
  3393. // ------------------------------
  3394. If aApIncent[3] > 0
  3395.  
  3396. // Descricao para GNRE
  3397. aApIncent[Len(aApIncent)] := "Famdes"
  3398.  
  3399. // Atribuo os dados financeiros do incentivo auxiliar na posicao do incentivo proncipal
  3400. // para correta geracao na GravaTit()
  3401. If aApIncent[8] <> Nil
  3402. aApIncent[6] := aApIncent[8]
  3403. Endif
  3404. If aApIncent[9] <> Nil
  3405. aApIncent[7] := aApIncent[9]
  3406. Endif
  3407.  
  3408. nRecTit := Len(aRecTit)
  3409. lConfTit:= .F.
  3410.  
  3411. nSolicFlg := FGerTit( lTitulo,; //-> Gera Titulo
  3412. aApIncent[3],; //-> Valor do Titulo
  3413. cImposto,cImp,;
  3414. cLcPadTit,;
  3415. dDtIni, dDtFim,;
  3416. aApIncent[5],; //-> Vencimento da GNRE
  3417. nMoedTit,lGuiaRec,;
  3418. nMes,nAno,;
  3419. 0,0,;
  3420. "MATA953",;
  3421. lContab,;
  3422. @cNumero,;
  3423. @aGNRE,;
  3424. ,,,,,;
  3425. .T.,;
  3426. ,;
  3427. @aRecTit,;
  3428. @lConfTit,;
  3429. aApIncent[3],;
  3430. ,;
  3431. ,;
  3432. "RFAMDES",;
  3433. aApIncent,;
  3434. ,;
  3435. ,;
  3436. ,;
  3437. ,;
  3438. ,;
  3439. ,;
  3440. ,;
  3441. ,;
  3442. ,,,,,lAutomato,aRetAuto,)
  3443.  
  3444. If nRecTit <> Len(aRecTit)
  3445. aRecTit[Len(aRecTit)][02] := "Famdes"
  3446. If lUsaSped
  3447. dbSelectArea("SE2")
  3448. MsGoto(aRecTit[Len(aRecTit)][01])
  3449.  
  3450. AADD ( aTitCDH, { SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,;
  3451. SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"IC","Famdes"})
  3452.  
  3453. EndIf
  3454. Else
  3455. //Caso seja utilizada a integracao com o FLuig eu realizo a gravacao dos dados gerados na tabela CH3
  3456. If lGTitFluig
  3457. AADD( aTitCDH,{ CH3->CH3_PREFIX, CH3->CH3_NUM, "", CH3->CH3_TIPO, CH3->CH3_FORNEC, CH3->CH3_LOJA, "IC", "Famdes", nSolicFlg } )
  3458. EndIf
  3459. Endif
  3460.  
  3461. If lTitulo .And. lConfTit
  3462. lInfComp := .T.
  3463. AADD(aTitulo,{"TIT",cNumero+" "+Dtoc(dDtVenc)+" "+cOrgArrec,aApIncent[3]})
  3464. Endif
  3465.  
  3466. Endif
  3467.  
  3468. Endif
  3469. Endif
  3470.  
  3471. EndIf
  3472.  
  3473. If lProcDifal
  3474. For nX := 1 to Len(aDifal)
  3475.  
  3476. nPosDifal := aScan(aApurDifal,{|x|x[1] == aDifal[nX][1]} )
  3477.  
  3478. aDifEst :=aApurDifal[nPosDifal][2]
  3479.  
  3480. nVlGnreDif := aDifEst[aScan(aDifEst,{|x|x[2] == '010.00'} )][4]
  3481. If cGNREDF == '2'
  3482. nVlGnreDif += aDifEst[aScan(aDifEst,{|x|x[2] == IIF(Year(dDtIni) < 2017,'016.00','022.00')} )][4]
  3483. EndIF
  3484.  
  3485. If Len(aDifEst) > 0 .AND. nVlGnreDif > 0
  3486. //Gera guia do Difal
  3487. lConfTit := .F.
  3488. nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. aX[5]== aDifal[nX][1] .and. AllTrim(aX[8])=="1"})
  3489. nRecTit := Len(aRecTit)
  3490. FGerTit( lTitulo,; //-> Gera Titulo
  3491. nVlGnreDif ,; //-> Valor do Titulo
  3492. cImposto,;
  3493. cImp,;
  3494. cLcPadTit,;
  3495. dDtIni,;
  3496. dDtFim,;
  3497. dDtVenc,; //-> Vencimento da GNRE
  3498. nMoedTit,;
  3499. lGuiaRec,; //10
  3500. nMes,;
  3501. nAno,;
  3502. 0,;
  3503. nVlGnreDif,;
  3504. "MATA953",;
  3505. lContab,;
  3506. @cNumero,;
  3507. @aGnreDifal,;
  3508. ,;
  3509. ,;//20
  3510. aDifal[nX][1],;
  3511. ,;
  3512. ,;
  3513. .T.,;
  3514. Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),;
  3515. @aRecTit,;
  3516. @lConfTit,;
  3517. ,; //28
  3518. ,;
  3519. ,;//30
  3520. "DIFAL",;
  3521. ,;
  3522. ,;
  3523. ,;
  3524. ,;
  3525. ,;
  3526. ,;
  3527. ,;
  3528. .T.,,,,,,,lAutomato,aRetAuto,)//48
  3529.  
  3530. If nRecTit <> Len(aRecTit)
  3531. //Adiciona o t韙ulo no array para grava玢o do F0J
  3532. aRecTit[Len(aRecTit)][02] := "EC 87/15 - DIFAL"
  3533. dbSelectArea("SE2")
  3534. MsGoto(aRecTit[Len(aRecTit)][01])
  3535. AADD ( aTitDifal, { SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,;
  3536. SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"EC 87/15 - DIFAL",aDifal[nX][1],SE2->E2_VALOR,SE2->E2_VENCTO})
  3537. Endif
  3538.  
  3539. EndIF
  3540.  
  3541. //Gera unica Guia DIFAL+FECP debito especial
  3542. nVlGnreDif := aDifEst[aScan(aDifEst,{|x|x[2] == '012.00'} )][4]
  3543. If cGNREDF == '2' .And. Year(dDtIni) >= 2017
  3544. nVlGnreDif += aDifEst[aScan(aDifEst,{|x|x[2] =='024.00'} )][4]
  3545. EndIF
  3546.  
  3547. //D閎ito especial do Difal
  3548. If Len(aDifEst) > 0 .AND. aDifEst[aScan(aDifEst,{|x|x[2] == '012.00'} )][4] > 0
  3549. //Gera guia do D閎ito especial
  3550. lConfTit := .F.
  3551. nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. aX[5]== aDifal[nX][1] .and. AllTrim(aX[8])=="3"})
  3552. nRecTit := Len(aRecTit)
  3553. FGerTit( lTitulo,; //-> Gera Titulo
  3554. nVlGnreDif,; //-> Valor do Titulo
  3555. cImposto,;
  3556. cImp,;
  3557. cLcPadTit,;
  3558. dDtIni,;
  3559. dDtFim,;
  3560. dDtVenc,; //-> Vencimento da GNRE
  3561. nMoedTit,;
  3562. lGuiaRec,; //10
  3563. nMes,;
  3564. nAno,;
  3565. 0,;
  3566. nVlGnreDif,;
  3567. "MATA953",;
  3568. lContab,;
  3569. @cNumero,;
  3570. @aGnreDifal,;
  3571. ,;
  3572. ,;//20
  3573. aDifal[nX][1],;
  3574. ,;
  3575. ,;
  3576. .T.,;
  3577. Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),;
  3578. @aRecTit,;
  3579. @lConfTit,;
  3580. ,; //28
  3581. ,;
  3582. ,;//30
  3583. "DEBITO ESPECIAL",;
  3584. ,;
  3585. ,;
  3586. ,;
  3587. ,;
  3588. ,;
  3589. ,;
  3590. ,;
  3591. .T.,,,,,,,lAutomato,aRetAuto,)//48
  3592.  
  3593. If nRecTit <> Len(aRecTit)
  3594. //Adiciona o t韙ulo no array para grava玢o do F0J
  3595. aRecTit[Len(aRecTit)][02] := "EC 87/15 - DEBITO ESPECIAL"
  3596. dbSelectArea("SE2")
  3597. MsGoto(aRecTit[Len(aRecTit)][01])
  3598. AADD ( aTitDifal, { SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,;
  3599. SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"EC 87/15 - DEBITO ESPECIAL",aDifal[nX][1],SE2->E2_VALOR,SE2->E2_VENCTO})
  3600. Endif
  3601.  
  3602. EndIF
  3603.  
  3604. 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'
  3605. //Gera guia do FECP
  3606. lConfTit := .F.
  3607. nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. aX[5]== aDifal[nX][1] .and. AllTrim(aX[8])=="2"})
  3608. nRecTit := Len(aRecTit)
  3609. FGerTit( lTitulo,; //-> Gera Titulo
  3610. aDifEst[aScan(aDifEst,{|x|x[2] == IIF(Year(dDtIni) < 2017,'016.00','022.00')} )][4],; //-> Valor do Titulo
  3611. cImposto,;
  3612. cImp,;
  3613. cLcPadTit,;
  3614. dDtIni,;
  3615. dDtFim,;
  3616. dDtVenc,; //-> Vencimento da GNRE
  3617. nMoedTit,;
  3618. lGuiaRec,; //10
  3619. nMes,;
  3620. nAno,;
  3621. 0,;
  3622. aDifEst[aScan(aDifEst,{|x|x[2] == IIF(Year(dDtIni) < 2017,'016.00','022.00')} )][4],;
  3623. "MATA953",;
  3624. lContab,;
  3625. @cNumero,;
  3626. @aGnreDifal,;
  3627. ,;
  3628. ,;//20
  3629. aDifal[nX][1],;
  3630. ,;
  3631. .T.,;
  3632. ,;
  3633. Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),;
  3634. @aRecTit,;
  3635. @lConfTit,;
  3636. ,; //28
  3637. ,;
  3638. ,;//30
  3639. "FECP",;
  3640. ,;
  3641. ,;
  3642. ,;
  3643. ,;
  3644. ,;
  3645. ,;
  3646. ,;
  3647. .T.,,,,,,,lAutomato,aRetAuto,)//48
  3648. If nRecTit <> Len(aRecTit)
  3649. //Adiciona o t韙ulo no array para grava玢o do F0J
  3650. aRecTit[Len(aRecTit)][02] := "EC 87/15 - FECP"
  3651. dbSelectArea("SE2")
  3652. MsGoto(aRecTit[Len(aRecTit)][01])
  3653. AADD ( aTitDifal, { SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,;
  3654. SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"EC 87/15 - FECP",aDifal[nX][1],SE2->E2_VALOR,SE2->E2_VENCTO})
  3655. Endif
  3656. EndIF
  3657.  
  3658. //D閎ito especial do FECP
  3659. If Year(dDtIni) >= 2017 .And. Len(aDifEst) > 0 .AND. aDifEst[aScan(aDifEst,{|x|x[2] == '024.00'} )][4] > 0 .And. cGNREDF == '1'
  3660. //Gera guia do D閎ito especial de FECP
  3661. lConfTit := .F.
  3662. nPosGNREX := aScan(aGNREX,{|aX| Len(aX)>=8 .And. aX[5]== aDifal[nX][1] .and. AllTrim(aX[8])=="4"})
  3663. nRecTit := Len(aRecTit)
  3664. GravaTit( lTitulo,; //-> Gera Titulo
  3665. aDifEst[aScan(aDifEst,{|x|x[2] == '024.00'} )][4],; //-> Valor do Titulo
  3666. cImposto,;
  3667. cImp,;
  3668. cLcPadTit,;
  3669. dDtIni,;
  3670. dDtFim,;
  3671. dDtVenc,; //-> Vencimento da GNRE
  3672. nMoedTit,;
  3673. lGuiaRec,; //10
  3674. nMes,;
  3675. nAno,;
  3676. 0,;
  3677. aDifEst[aScan(aDifEst,{|x|x[2] == '024.00'} )][4],;
  3678. "MATA953",;
  3679. lContab,;
  3680. @cNumero,;
  3681. @aGnreDifal,;
  3682. ,;
  3683. ,;//20
  3684. aDifal[nX][1],;
  3685. ,;
  3686. ,;
  3687. .T.,;
  3688. Iif(nPosGNREX>0,aGNREX[nPosGNREX,1],Nil),;
  3689. @aRecTit,;
  3690. @lConfTit,;
  3691. ,; //28
  3692. ,;
  3693. ,;//30
  3694. "DEBITO ESPECIAL FECP",;
  3695. ,;
  3696. ,;
  3697. ,;
  3698. ,;
  3699. ,;
  3700. ,;
  3701. ,;
  3702. ,;
  3703. ,;
  3704. ,;
  3705. ,;
  3706. .T.,,,lAutomato,aRetAuto,)
  3707.  
  3708. If nRecTit <> Len(aRecTit)
  3709. //Adiciona o t韙ulo no array para grava玢o do F0J
  3710. aRecTit[Len(aRecTit)][02] := "EC 87/15 - DEBITO ESPECIAL FECP"
  3711. dbSelectArea("SE2")
  3712. MsGoto(aRecTit[Len(aRecTit)][01])
  3713. AADD ( aTitDifal, { SE2->E2_PREFIXO,SE2->E2_NUM,SE2->E2_PARCELA,;
  3714. SE2->E2_TIPO,SE2->E2_FORNECE,SE2->E2_LOJA,"EC 87/15 - DEBITO ESPECIAL FECP",aDifal[nX][1],SE2->E2_VALOR,SE2->E2_VENCTO})
  3715. Endif
  3716. EndIF
  3717.  
  3718. Next nX
  3719. EndIF
  3720.  
  3721. For nS:= 1 to Len(aCOLS7)
  3722. AADD(aCOLS5,{aCOLS7[nS,1],"",aCOLS7[nS,2],aCOLS7[nS,3],"","","",aCOLS7[nS,4]})
  3723. Next nS
  3724. AADD(aCOLS5,{"IND","",Transform(xMoeda(1,nMoedTit,1,dDataBase),"9.999"),0,"","","",.F.})
  3725.  
  3726. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  3727. //?Armazena linhas do Fomentar para gravar na apuracao ?
  3728. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  3729. If lFomentGO
  3730. For nS :=1 to Len(aCols8)
  3731. AADD(aCOLS5,{"FOM","",aCOLS8[nS,1]+" "+aCOLS8[nS,3],aCOLS8[nS,4],"","","",.F.})
  3732. Next nS
  3733. Elseif lApurBA
  3734. //Exportacoes
  3735. For nS :=1 to Len(aCols8)
  3736. AADD(aCOLS5,{"EXP",aCOLS8[nS,2],aCOLS8[nS,1]+" "+aCOLS8[nS,3],aCOLS8[nS,4],"","",aCOLS8[nS,7],.F.})
  3737. Next nS
  3738. //Outras hipoteses
  3739. For nS :=1 to Len(aCols9)
  3740. AADD(aCOLS5,{"OUT",aCOLS9[nS,2],aCOLS9[nS,1]+" "+aCOLS9[nS,3],aCOLS9[nS,4],"","",aCOLS9[nS,7],.F.})
  3741. Next nS
  3742. Endif
  3743.  
  3744. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  3745. //?Armazena linhas de observacao ?
  3746. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  3747. For nY :=1 to MLCount(cObserv,Tamsx3("CDH_DESC")[1]-1)
  3748. If Len(Alltrim(MemoTran(MemoLine(cObserv,Tamsx3("CDH_DESC")[1]-1,nY),"")))>0
  3749. AADD(aCOLS5,{"OBS","",MemoTran(MemoLine(cObserv,Tamsx3("CDH_DESC")[1]-1,nY)),0,"","","",.F.})
  3750. Endif
  3751. Next
  3752.  
  3753. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  3754. //?Exibe os titulos gerados dos impostos a pagar pela apuracao ?
  3755. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If SuperGetMv("MV_TITAPUR",.F.,.F.)
  3756. For nX := 1 To Len(aRecTit)
  3757. If aRecTit[nX][01] <> 0
  3758. dbSelectArea("SE2")
  3759. MsGoto(aRecTit[nX][01])
  3760. cCadastro := aRecTit[nX][02]
  3761. // Titulo contabilizado - apos consulta com lider da CONTROLADORIA/FINANCEIRO,
  3762. // foi estipulado retirar a verificacao e manter a chamada do FINA050
  3763. ALTERA := .T.
  3764. INCLUI := .F.
  3765. EXCLUI := .F.
  3766. lRefresh:= .f.
  3767. nMoeda := 1
  3768. pergunte("FIN050",.F.)
  3769.  
  3770. If lAutomato
  3771. aAuto := {}
  3772. AADD(aAuto,{"E2_FILIAL" ,xFilial("SE2") , NIL } )
  3773. AADD(aAuto,{"E2_PREFIXO" ,SE2->E2_PREFIXO, NIL } )
  3774. AADD(aAuto,{"E2_NUM" ,SE2->E2_NUM, NIL } )
  3775. AADD(aAuto,{"E2_PARCELA" ,SE2->E2_PARCELA, NIL } )
  3776. AADD(aAuto,{"E2_TIPO" ,SE2->E2_TIPO, NIL } )
  3777. AADD(aAuto,{"E2_NATUREZ" ,SE2->E2_NATUREZ, NIL } )
  3778. AADD(aAuto,{"E2_FORNECE" ,SE2->E2_FORNECE, NIL } )
  3779. AADD(aAuto,{"E2_LOJA" ,SE2->E2_LOJA, NIL } )
  3780. AADD(aAuto,{"E2_EMISSAO" ,SE2->E2_EMISSAO, NIL } )
  3781. AADD(aAuto,{"E2_VENCTO" ,SE2->E2_VENCTO, NIL } )
  3782. AADD(aAuto,{"E2_VALOR" ,SE2->E2_VALOR, NIL } )
  3783. EndIf
  3784.  
  3785. FINA050(If(lAutomato,aAuto,Nil),,4,'FA050Alter("SE2",SE2->(RECNO()),2)')
  3786.  
  3787. If lAutomato
  3788. pergunte("MTA951",.F.)
  3789. EndIf
  3790.  
  3791. EndIf
  3792. If Len(aTitulo)>0 .And. Len(aTitulo)>=nx
  3793. If aTitulo[nX][1]=="TIT"
  3794. aTitulo[nX][2]:= SE2->E2_NUM+" "+DTOC(SE2->E2_VENCREA)+" "+cOrgArrec
  3795. Endif
  3796. Endif
  3797. Next nX
  3798. Endif
  3799.  
  3800. If lTitulo .And. ( nVlrTitulo>0 .Or. lInfComp .Or. Len(aTitulo) > 0 ) .And. !lGTitFluig
  3801. For nNum := 1 to Len(aTitulo)
  3802. AADD(aCOLS5,{aTitulo[nNum][01],"",aTitulo[nNum][02],aTitulo[nNum][03],"","","",.F.})
  3803. Next
  3804. For nNum :=1 to Len(aCOLS5)
  3805. If !Empty(aCOLS5[nNum,6])
  3806. dDtVenc2 :=STOD(StrZero(Year(ddtvenc)+Val(cProdec),4)+StrZero(Month(ddtvenc),2)+StrZero(Day(ddtvenc),2))
  3807. AADD(aCOLS5,{"TIT","",cNumero2+" "+Dtoc(dDtVenc2)+" "+cOrgArrec,aCols5[nNum,4],"","","",.F.})
  3808. Endif
  3809. Next
  3810. EndIf
  3811.  
  3812.  
  3813. If lGuiaRec
  3814. For nX:=1 To Len(aGnre)
  3815. AADD(aCOLS5,{"GNR","",aGnre[nX,1]+" "+DtoC(aGnre[nX,2])+" "+cOrgArrec,aGnre[nX,3],aGnre[nX,4],"","",.F.})
  3816. Next
  3817. EndIf
  3818.  
  3819. FisApur(cImp,nAno,nMes,nApuracao,nPeriodo,cNrLivro,.t.,aCOLS5,nMoedTit,.F.,"",aHeader5[3,4])
  3820.  
  3821. nValSt := 0
  3822. aEval(aCOLS6, {|z| nValSt += Iif(ValType(z[4])=="N",z[4],0)})
  3823. For nX:=1 To Len(aGnreSt)
  3824. AADD(aCOLS6,{"1"+aGnreST[nX,1],"","ICMSST:"+aGnreST[nX,1],aGnreST[nX,2],"","","",.F.})
  3825. Next nX
  3826. FisApur("ST",nAno,nMes,nApuracao,nPeriodo,cNrLivro,.t.,aCOLS6,nMoedTit,.F.,"",aHeader5[3,4])
  3827.  
  3828. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  3829. //矼V_USASPED - Indica se usa SPED ?
  3830. //硈e sim (.T.), Grava apuracao na tabela CDH ?
  3831. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  3832. If lUsaSped
  3833. FisApurCDH(nApuracao,nPeriodo,cNrLivro,dDtIni,dDtFim,lConsUF,cFilDe,cFilAte,aCOLS5,aCOLS6,aTitCDH,aGNRE,lApurBA )
  3834. EndIf
  3835.  
  3836. //Se tabelas e campos do difal existirem, ent鉶 dever?chamar func玢o para gravar
  3837. If lProcDifal
  3838. GrvApDifal(aDifal,dDtIni,cNrLivro,aTitDifal,aGnreDifal,aApurDifal,aCDADifal)
  3839. EndIF
  3840.  
  3841. End Transaction
  3842. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  3843. //?Finaliza os lancamentos do SIGAPCO. ?
  3844. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? PcoFinLan("000250")
  3845. EndIf
  3846. EndIf
  3847. EndIf
  3848. Return
  3849. /*/
  3850. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘
  3851. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北
  3852. 北谀哪哪哪哪穆哪哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪目北
  3853. 北篎uncao 矲t953Refre 篈utor 矼icrosiga ?Data ?08/07/2001罕?
  3854. 北媚哪哪哪哪呐哪哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪拇北
  3855. 北篋esc. ?Atualiza os folders 罕?
  3856. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪拇北
  3857. 北砇etorno 砃enhum 潮?
  3858. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪拇北
  3859. 北砅arametros矱xpA1: Array com as getdados 潮?
  3860. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁北
  3861. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北
  3862. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌
  3863. /*/
  3864. Static Function Ft953Refre(aGetDad)
  3865.  
  3866. Local nLoop := 0
  3867.  
  3868. For nLoop := 1 To Len(aGetDad)
  3869. If len(aGetDad) > 1 // Se esta processando todos as getdados carrego o aHeader correspondente
  3870. IF aGetDad[nLoop] <> nil
  3871. If nLoop >= 10
  3872. aHeader := aClone(&("aHeader"+STR(nLoop,2)))
  3873. aCols := aClone(&("aCols"+STR(nLoop,2)))
  3874. Else
  3875. aHeader := aClone(&("aHeader"+STR(nLoop,1)))
  3876. aCols := aClone(&("aCols"+STR(nLoop,1)))
  3877. Endif
  3878. aGetDad[nLoop]:oBrowse:lDisablePaint := .F.
  3879. aGetDad[nLoop]:oBrowse:Refresh(.T.)
  3880. EndIf
  3881. EndIf
  3882. Next nLoop
  3883.  
  3884. If len(aGetDad) > 1
  3885. aHeader := aClone(aHeader1)
  3886. aCols := aClone(aCols1)
  3887. EndIf
  3888.  
  3889. Return( .T. )
  3890.  
  3891.  
  3892. /*/
  3893. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  3894. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  3895. 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  3896. 北矲uncao 矲t953Fld ?Autor 矨ndreia dos Santos ?Data ?8.08.2001潮?
  3897. 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  3898. 北矰escri噮o 矲uncao de Tratamento dos Folders 潮?
  3899. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  3900. 北砇etorno 砃enhum 潮?
  3901. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  3902. 北砅arametros矱xpN1: Folder de Destino 潮?
  3903. 北? 矱xpN2: Folder Atual 潮?
  3904. 北? 矱xpO3: Objeto do Folder 潮?
  3905. 北? 矱xpA4: Array com as getdados. 潮?
  3906. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  3907. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  3908. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?
  3909. /*/
  3910. Static Function Ft953Fld(nFldDst,nFldAtu,oFolder,aGetDad,aApurDifal,nAno)
  3911.  
  3912. Local lRetorno:= .F.
  3913. Local nApurDifal := 0
  3914. Local nPos := 0
  3915. Local lTudoOk := .F.
  3916.  
  3917. DEfault aApurDifal := {}
  3918. Default nAno := 2016
  3919.  
  3920. If nFldAtu <> 8
  3921. lTudoOk := aGetDad[nFldAtu]:TudoOk()
  3922. Else
  3923. lTudoOk := aGetDad[nFldAtu][1]:TudoOk()
  3924. EndIF
  3925.  
  3926.  
  3927. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  3928. //矱fetua a Validacao da GetDados ?
  3929. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  3930. If lTudoOk
  3931. lRetorno := .T.
  3932. If nFldAtu <> 8
  3933. aGetDad[nFldAtu]:oBrowse:lDisablePaint := .T.
  3934. Else
  3935. aGetDad[nFldAtu][1]:oBrowse:lDisablePaint := .T.
  3936. EndIF
  3937. Do Case
  3938. Case ( nFldAtu == 1 )
  3939. aCols1 := aClone(aCols)
  3940. aHeader1:= aClone(aHeader)
  3941. Case ( nFldAtu == 2 )
  3942. aCols2 := aClone(aCols)
  3943. aHeader2:= aClone(aHeader)
  3944. Case ( nFldAtu == 3 )
  3945. aCols3 := aClone(aCols)
  3946. aHeader3:= aClone(aHeader)
  3947. Case ( nFldAtu == 4 )
  3948. aCols4 := aClone(aCols)
  3949. aHeader4:= aClone(aHeader)
  3950. Case ( nFldAtu == 5 )
  3951. aCols5 := aClone(aCols)
  3952. aHeader5:= aClone(aHeader)
  3953. Case ( nFldAtu == 6 )
  3954. aCols6 := aClone(aCols)
  3955. aHeader6:= aClone(aHeader)
  3956. Case ( nFldAtu == 7 )
  3957. aCols7 := aClone(aCols)
  3958. aHeader7:= aClone(aHeader)
  3959.  
  3960. Case ( nFldAtu == 8 )
  3961. //est?saindo da tela da apura玢o do difal
  3962. If lGerDifal
  3963. aCols12 := aClone(aCols)
  3964. aHeader12:= aClone(aHeader)
  3965. Else
  3966. aCols13 := aClone(aCols)
  3967. aHeader13:= aClone(aHeader)
  3968. EndIF
  3969. lGerDifal := .T.
  3970.  
  3971. nPos := aScan(aApurDifal,{|x|x[1] == SubStr(aCols12[aGetDad[nFldAtu][1]:oBrowse:nAt][2],1,2)} )
  3972. nApurDifal := aScan(aCOLS12,{|x|SubStr(x[2],1,2) == SubStr(aCols12[aGetDad[nFldAtu][1]:oBrowse:nAt][2],1,2)} )
  3973.  
  3974. If lProcDifal .AND. nApurDifal > 0 .AND. nPos >0
  3975. aCOLS12[nApurDifal,03] := aApurDifal[nPos ][2][aScan(aApurDifal[nPos][2],{|x|x[2] == '010.00'} )][4]
  3976. aCOLS12[nApurDifal,04] := aApurDifal[nPos ][2][aScan(aApurDifal[nPos][2],{|x|x[2] == '011.00'} )][4]
  3977. aCOLS12[nApurDifal,07] := aApurDifal[nPos ][2][aScan(aApurDifal[nPos][2],{|x|x[2] == '012.00'} )][4]
  3978. If nAno < 2017
  3979. aCOLS12[nApurDifal,05] := aApurDifal[nPos ][2][aScan(aApurDifal[nPos][2],{|x|x[2] == '016.00'} )][4]
  3980. aCOLS12[nApurDifal,06] := aApurDifal[nPos ][2][aScan(aApurDifal[nPos][2],{|x|x[2] == '017.00'} )][4]
  3981. Else
  3982. aCOLS12[nApurDifal,05] := aApurDifal[nPos ][2][aScan(aApurDifal[nPos][2],{|x|x[2] == '022.00'} )][4]
  3983. aCOLS12[nApurDifal,06] := aApurDifal[nPos ][2][aScan(aApurDifal[nPos][2],{|x|x[2] == '023.00'} )][4]
  3984. aCOLS12[nApurDifal,07] += aApurDifal[nPos ][2][aScan(aApurDifal[nPos][2],{|x|x[2] == '024.00'} )][4]
  3985. EndIF
  3986. EndIF
  3987.  
  3988. Case ( lFomentGO .And. nFldAtu == 9 )
  3989. aCols8 := aClone(aCols)
  3990. aHeader8:= aClone(aHeader)
  3991. Case ( lApurBA .And. nFldAtu == 9 ) //Exportacoes
  3992. aCols8 := aClone(aCols)
  3993. aHeader8:= aClone(aHeader)
  3994. Case ( lApurBA .And. nFldAtu == 10 ) //Outras hipoteses
  3995. aCols9 := aClone(aCols)
  3996. aHeader9:= aClone(aHeader)
  3997. Case (lFomentGO .And. nFldAtu == 10) .Or. (lApurBA .And. nFldAtu == 11) .Or. (!lFomentGO .And. !lApurBA .And. nFldAtu == 9)
  3998. aCols10 := aClone(aCols)
  3999. aHeader10:= aClone(aHeader)
  4000. Case ( lCon13906 .AND. nFldAtu == 10 )
  4001. aCols11 := aClone(aCols)
  4002. aHeader11:= aClone(aHeader)
  4003.  
  4004. EndCase
  4005. If nFldDst <> 8
  4006. N := Max(aGetDad[nFldDst]:oBrowse:nAt,1)
  4007. Else
  4008. N := Max(aGetDad[nFldDst][1]:oBrowse:nAt,1)
  4009. EndIF
  4010.  
  4011. Do Case
  4012. Case ( nFldDst == 1 )
  4013. aCols := aClone(aCols1)
  4014. aHeader := aClone(aHeader1)
  4015. Case ( nFldDst == 2 )
  4016. aCols := aClone(aCols2)
  4017. aHeader := aClone(aHeader2)
  4018. Case ( nFldDst == 3 )
  4019. aCols := aClone(aCols3)
  4020. aHeader := aClone(aHeader3)
  4021. Case ( nFldDst == 4 )
  4022. aCols := aClone(aCols4)
  4023. aHeader := aClone(aHeader4)
  4024. Case ( nFldDst == 5 )
  4025. aCols := aClone(aCols5)
  4026. aHeader := aClone(aHeader5)
  4027. Case ( nFldDst == 6 )
  4028. aCols := aClone(aCols6)
  4029. aHeader := aClone(aHeader6)
  4030. Case ( nFldDst == 7 )
  4031. aCols := aClone(aCols7)
  4032. aHeader := aClone(aHeader7)
  4033. Case ( nFldDst == 8 )
  4034. //Est?entrando na aba
  4035. If lGerDifal
  4036. aCols := aClone(aCols12)
  4037. aHeader := aClone(aHeader12)
  4038. aGetDad[nFldDst][2]:Hide()
  4039. aGetDad[nFldDst][1]:Show()
  4040. aGetDad[nFldDst][1]:oBrowse:Refresh(.T.)
  4041. EndIF
  4042. Case ( lFomentGO .And. nFldDst == 9 )
  4043. aCols := aClone(aCols8)
  4044. aHeader := aClone(aHeader8)
  4045. Case ( lApurBA .And. nFldDst == 9 )
  4046. aCols := aClone(aCols8)
  4047. aHeader := aClone(aHeader8)
  4048. Case ( lApurBA .And. nFldDst == 10 )
  4049. aCols := aClone(aCols9)
  4050. aHeader := aClone(aHeader9)
  4051. Case (lFomentGO .And. nFldDst == 10) .Or. (lApurBA .And. nFldDst == 11) .Or. (!lFomentGO .And. !lApurBA .And. nFldDst == 9)
  4052. aCols := aClone(aCols10)
  4053. aHeader:= aClone(aHeader10)
  4054. Case ( lCon13906 .AND. nFldDst == 10 )
  4055. aCols := aClone(aCols11)
  4056. aHeader := aClone(aHeader11)
  4057.  
  4058. EndCase
  4059. If nFldDst <> 8
  4060. aGetDad[nFldDst]:oBrowse:lDisablePaint := .F.
  4061. aGetDad[nFldDst]:oBrowse:Refresh(.T.)
  4062. Else
  4063. aGetDad[nFldDst][1]:oBrowse:lDisablePaint := .F.
  4064. aGetDad[nFldDst][1]:oBrowse:Refresh(.T.)
  4065. EndIF
  4066. EndIf
  4067. Return(lRetorno)
  4068. /*/
  4069. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  4070. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  4071. 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  4072. 北矲uncao 矲t953Ok ?Autor 矱duardo Riera ?Data ?3.01.2000潮?
  4073. 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  4074. 北矰escri噮o 矲uncao de validacao da Getdados 潮?
  4075. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  4076. 北砇etorno 砃enhum 潮?
  4077. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  4078. 北砅arametros矱xpA1: Array com as getdados 潮?
  4079. 北? 矱xpN2: Folder atual. 潮?
  4080. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  4081. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  4082. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  4083. Function Ft953Ok(aGetDad,nAtu)
  4084.  
  4085. Local lRetorno := .F.
  4086. Local aSavHead := aClone(aHeader)
  4087. Local aSavCols := aClone(aCols)
  4088. Local nSavN := N
  4089.  
  4090. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  4091. //?Valida todas as getdados ?
  4092. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  4093.  
  4094. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  4095. //?aCols e aHeader 1 e 2 nao coincidem com folder 1 e 2 devido ?
  4096. //?a um erro na classe folder ( nao alterar ) ?
  4097. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  4098. If ( nAtu == 2 )
  4099. aHeader := aClone(aSavHead)
  4100. aCols := aClone(aSavCols)
  4101. N := nSavN
  4102. Else
  4103. aHeader := aClone(aHeader1)
  4104. aCols := aClone(aCols1)
  4105. N := Max(aGetDad[1]:oBrowse:nAT,1)
  4106. EndIf
  4107. If ( aGetDad[1]:TudoOk() )
  4108. If ( nAtu == 1 )
  4109. aHeader := aClone(aSavHead)
  4110. aCols := aClone(aSavCols)
  4111. N := nSavN
  4112. Else
  4113. aHeader := aClone(aHeader2)
  4114. aCols := aClone(aCols2)
  4115. N := Max(aGetDad[2]:oBrowse:nAT,1)
  4116. EndIf
  4117. If ( aGetDad[2]:TudoOk() )
  4118. If ( nAtu == 3 )
  4119. aHeader := aClone(aSavHead)
  4120. aCols := aClone(aSavCols)
  4121. N := nSavN
  4122. Else
  4123. aHeader := aClone(aHeader3)
  4124. aCols := aClone(aCols3)
  4125. N := Max(aGetDad[3]:oBrowse:nAT,1)
  4126. EndIf
  4127. If ( aGetDad[3]:TudoOk() )
  4128. If ( nAtu == 4 )
  4129. aHeader := aClone(aSavHead)
  4130. aCols := aClone(aSavCols)
  4131. N := nSavN
  4132. Else
  4133. aHeader := aClone(aHeader4)
  4134. aCols := aClone(aCols4)
  4135. N := Max(aGetDad[4]:oBrowse:nAT,1)
  4136. EndIf
  4137. If ( aGetDad[4]:TudoOk() )
  4138. If ( nAtu == 5 )
  4139. aHeader := aClone(aSavHead)
  4140. aCols := aClone(aSavCols)
  4141. N := nSavN
  4142. Else
  4143. aHeader := aClone(aHeader5)
  4144. aCols := aClone(aCols5)
  4145. N := Max(aGetDad[5]:oBrowse:nAT,1)
  4146. EndIf
  4147. If ( aGetDad[5]:TudoOk() )
  4148. lRetorno := .T.
  4149. Endif
  4150. EndIf
  4151. EndIf
  4152. EndIf
  4153. EndIf
  4154.  
  4155. aHeader := aClone(aSavHead)
  4156. aCols := aClone(aSavCols)
  4157. N := nSavN
  4158.  
  4159. Return(lRetorno)
  4160.  
  4161. /*/
  4162. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  4163. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  4164. 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  4165. 北篎uncao 砤953Saldo 篈utor 矨ndreia dos Santos ?Data ?13/08/01 罕?
  4166. 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  4167. 北篋esc. ?Apura o saldo do ICMS operacoes proprias, substituicao 罕?
  4168. 北? ?Tributaria e Fomentar GO 罕?
  4169. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  4170. 北砇etorno 砃enhum 潮?
  4171. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  4172. 北砅arametros矱xpN1: Primeira vez que apura o saldo quando monta o aCols 潮?
  4173. 北? 矱xpN2: Operacoes com Substituicao Tributaria 潮?
  4174. 北? 矱xpN3: Funcao chamada a partir da delecao da linha 潮?
  4175. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  4176. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  4177. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  4178. Function a953Saldo(lFirst,lST,lFomentar,lApurBA,lDebEsp, lArt488MG,lDifal)
  4179.  
  4180. Local n001 := 0
  4181. Local n002 := 0
  4182. Local n003 := 0
  4183. Local n004 := 0
  4184. Local n005 := 0
  4185. Local n006 := 0
  4186. Local n007 := 0
  4187. Local n008 := 0
  4188. Local n009 := 0
  4189. Local n010 := 0
  4190. Local n011 := 0
  4191. Local n012 := 0
  4192. Local n013 := 0
  4193. Local n014 := 0
  4194. Local n015 := 0
  4195. Local n016 := 0
  4196. Local n017 := 0
  4197. Local n018 := 0
  4198. Local n019 := 0
  4199. Local n020 := 0
  4200. Local n021 := 0
  4201. Local n022 := 0
  4202. Local n023 := 0
  4203. Local n024 := 0
  4204. Local n025 := 0
  4205. Local n026 := 0
  4206. Local n027 := 0
  4207. Local n028 := 0
  4208. Local n029 := 0
  4209. Local n030 := 0
  4210. Local n031 := 0
  4211. Local n032 := 0
  4212. Local n033 := 0
  4213. Local n034 := 0
  4214. Local n035 := 0
  4215. Local n036 := 0
  4216. Local n037 := 0
  4217. Local n038 := 0
  4218. Local n039 := 0
  4219. Local n040 := 0
  4220. Local n041 := 0
  4221. Local n042 := 0
  4222. Local n043 := 0
  4223. Local n044 := 0
  4224. Local n045 := 0
  4225. Local n046 := 0
  4226. Local n047 := 0
  4227. Local n048 := 0
  4228. Local n049 := 0
  4229. Local n050 := 0
  4230. Local n051 := 0
  4231. Local n052 := 0
  4232. Local n053 := 0
  4233. Local n054 := 0
  4234. Local n055 := 0
  4235. Local n056 := 0
  4236. Local n057 := 0
  4237. Local n058 := 0
  4238. Local n059 := 0
  4239. Local n060 := 0
  4240. Local n061 := 0
  4241. Local n062 := 0
  4242. Local n063 := 0
  4243. Local n064 := 0
  4244. Local n065 := 0
  4245. Local n066 := 0
  4246. Local n067 := 0
  4247. Local n068 := 0
  4248. Local n069 := 0
  4249. Local n070 := 0
  4250. Local n071 := 0
  4251. Local n072 := 0
  4252. Local n073 := 0
  4253. Local n074 := 0
  4254. Local n075 := 0
  4255. Local n076 := 0
  4256. Local n077 := 0
  4257. Local n078 := 0
  4258. Local n079 := 0
  4259. Local n080 := 0
  4260. Local n081 := 0
  4261. Local n082 := 0
  4262. Local n083 := 0
  4263. Local n084 := 0
  4264. Local n900 := 0
  4265. Local n901 := 0
  4266. Local n0101 := 0
  4267. Local nX := 0
  4268. Local nY := 0
  4269.  
  4270. Local n01202 := 0
  4271. Local nValAtu := 0
  4272. Local n003_05 := 0
  4273. Local n004_05 := 0
  4274. Local n005_05 := 0
  4275. Local n006_05 := 0
  4276. Local n007_05 := 0
  4277. Local n009_05 := 0
  4278. Local n010_05 := 0
  4279. Local n021_05 := 0
  4280.  
  4281. Local nLin001 := 0
  4282. Local nLin005 := 0
  4283. Local nLin004 := 0
  4284. Local nLin033 := 0
  4285. Local nLin048 := 0
  4286. Local nLin055 := 0
  4287. Local nLin063 := 0
  4288. Local nLin070 := 0
  4289. Local nLin002 := 0
  4290. Local nLin003 := 0
  4291. Local nLin015 := 0
  4292. Local nLin016 := 0
  4293. Local nLin017 := 0
  4294. Local nLin037 := 0
  4295. Local nLin043_2 := 0
  4296. Local nLin019 := 0
  4297. Local nLin006 := 0
  4298. Local nLin007 := 0
  4299. Local nLin009 := 0
  4300. Local nLin011 := 0
  4301. Local nLin012 := 0
  4302. Local nLin014 := 0
  4303. Local nLin013 := 0
  4304. Local nLin018 := 0
  4305. Local nLin020 := 0
  4306. Local nLin021 := 0
  4307. Local nLin022 := 0
  4308. Local nLin023 := 0
  4309. Local nLin024 := 0
  4310. Local nLin030 := 0
  4311. Local nLin032 := 0
  4312. Local nLin034 := 0
  4313. Local nLin035 := 0
  4314. Local nLin043 := 0
  4315. Local nLin045 := 0
  4316. Local nLin046 := 0
  4317. Local nLin047 := 0
  4318. Local nLin049 := 0
  4319. Local nLin050 := 0
  4320. Local nLin051 := 0
  4321. Local nLin052 := 0
  4322. Local nLin053 := 0
  4323. Local nLin054 := 0
  4324. Local nLin056 := 0
  4325. Local nLin057 := 0
  4326. Local nLin058 := 0
  4327. Local nLin059 := 0
  4328. Local nLin060 := 0
  4329. Local nLin062 := 0
  4330. Local nLin064 := 0
  4331. Local nLin065 := 0
  4332. Local nLin066 := 0
  4333. Local nLin067 := 0
  4334. Local nLin068 := 0
  4335. Local nLin069 := 0
  4336. Local nLin073 := 0
  4337. Local nLin074 := 0
  4338. Local nLin076 := 0
  4339. Local nLin078 := 0
  4340. Local nLin027 := 0
  4341. Local nLin040 := 0
  4342. Local nLin0101 := 0
  4343.  
  4344. Local nPosRecPR := 0
  4345. Local nPosRecST := 0
  4346. Local n002Cons := 0
  4347. Local n007Cons := 0
  4348. Local n006Cons := 0
  4349. Local nI := 0
  4350.  
  4351. Local nMes := mv_par01
  4352. Local nAno := mv_par02
  4353. Local cNrLivro := mv_par03
  4354. Local nApuracao := mv_par04
  4355. Local nPeriodo := mv_par05
  4356. Local aDatas := DetDatas(nMes,nAno,nApuracao,nPeriodo)
  4357. Local dDtIni := aDatas[1]
  4358. Local dDtFim := aDatas[2]
  4359.  
  4360. Local aMvDes := &( GetNewPar( 'MV_DESENV' , '{}' ) )
  4361. Local aMvPrdc := &( GetNewPar( 'MV_FISPRDC' , '{}' ) )
  4362.  
  4363. Default lFomentar := .F.
  4364. Default lApurBA := .F.
  4365. Default lDebEsp := .F.
  4366. Default lArt488MG := .F.
  4367. Default lDifal := .F.
  4368.  
  4369. If !lDebEsp
  4370. If lFirst .And. !lFomentar
  4371. For nI := 1 To Len(aExclApur)
  4372. If SubStr(aExclApur[nI][2],1,3)=="002" .And. !aExclApur[nI][4] .And.;
  4373. ((lST .And. aExclApur[nI][5]=="ST") .Or.;
  4374. (!lST .And. aExclApur[nI][5]=="IC"))
  4375. n002Cons += aExclApur[nI][3]
  4376.  
  4377. ElseIf lST .And. SubStr(aExclApur[nI][2],1,3)=="007" .And. !aExclApur[nI][4] .And. aExclApur[nI][5]=="ST"
  4378. n007Cons += aExclApur[nI][3]
  4379.  
  4380. ElseIf !lST .And. SubStr(aExclApur[nI][2],1,3)=="006" .And. !aExclApur[nI][4] .And. aExclApur[nI][5]=="IC"
  4381. n006Cons += aExclApur[nI][3]
  4382.  
  4383. EndIf
  4384. Next nI
  4385. ElseIf !lFomentar
  4386. For nI := 1 To Len(aExclApur)
  4387. If SubStr(aExclApur[nI][2],1,3)=="002" .And. !aExclApur[nI][4] .And.;
  4388. ((lST .And. aExclApur[nI][5]=="ST") .Or.;
  4389. (!lST .And. aExclApur[nI][5]=="IC"))
  4390. If AllTrim (aCols[n,2])==aExclApur[nI,2] .And. aExclApur[nI][3]<>0 .And. (ReadVar()=="M->NVALOR")
  4391. aExclApur[nI][3] := M->NVALOR
  4392. EndIf
  4393. n002Cons += aExclApur[nI][3]
  4394.  
  4395. ElseIf lST .And. SubStr(aExclApur[nI][2],1,3)=="007" .And. !aExclApur[nI][4] .And. aExclApur[nI][5]=="ST"
  4396. If AllTrim (aCols[n,2])==aExclApur[nI,2] .And. aExclApur[nI][3]<>0 .And. (ReadVar()=="M->NVALOR")
  4397. aExclApur[nI][3] := M->NVALOR
  4398. EndIf
  4399. n007Cons += aExclApur[nI][3]
  4400.  
  4401. ElseIf !lST .And. SubStr(aExclApur[nI][2],1,3)=="006" .And. !aExclApur[nI][4] .And. aExclApur[nI][5]=="IC"
  4402. If AllTrim (aCols[n,2])==aExclApur[nI,2] .And. aExclApur[nI][3]<>0 .And. (ReadVar()=="M->NVALOR")
  4403. aExclApur[nI][3] := M->NVALOR
  4404. EndIf
  4405. n006Cons += aExclApur[nI][3]
  4406.  
  4407. EndIf
  4408. Next nI
  4409. EndIf
  4410. EndIf
  4411.  
  4412. If lST // SUBSTITUICAO TRIBUTARIA
  4413. n001 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="001"}) //por saidas com debito do imposto
  4414. n002 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="002"}) //outros debitos
  4415. n003 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="003"}) //estorno de creditos
  4416. n005 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="005"}) //Total das saidas
  4417. n006 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="006"}) //entradas com credito do imposto
  4418. n007 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="007"}) //outros creditos
  4419. n008 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="008"}) //estorno de debitos
  4420. n010 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="010"}) //Sub-total das entradas
  4421. n011 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="011"}) //Saldo credor do periodo anterior
  4422. n012 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="012"}) //Total das entradas
  4423. n013 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="013"}) //Saldo devedor
  4424. n014 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="014"}) //deducoes
  4425. n015 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="015"}) //imposto a recolher
  4426. n016 := Ascan(if(lFirst,aCols6,aCols),{|x|x[1]=="016"}) //Saldo Credor
  4427.  
  4428. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  4429. //砊otalizacao das linhas expandidas?
  4430. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? a953TotLin(n002,"002",lFirst,aCols6)
  4431. a953TotLin(n003,"003",lFirst,aCols6)
  4432. a953TotLin(n007,"007",lFirst,aCols6)
  4433. a953TotLin(n008,"008",lFirst,aCols6)
  4434. a953TotLin(n014,"014",lFirst,aCols6)
  4435.  
  4436. if !lFirst
  4437. if ReadVar() =="M->NVALOR"
  4438. nLin001 := if(aCols[n,1]==aCols[n001,1],M->NVALOR,aCols[n001,4])
  4439. nLin006 := if(aCols[n,1]==aCols[n006,1],M->NVALOR,aCols[n006,4])
  4440. nLin011 := if(aCols[n,1]==aCols[n011,1],M->NVALOR,aCols[n011,4])
  4441. Elseif empty(ReadVar())
  4442. nLin001 := aCols[n001,4]
  4443. nLin006 := aCols[n006,4]
  4444. nLin011 := aCols[n011,4]
  4445. Endif
  4446. nLin002 := aCols[n002,4] //outros debitos
  4447. nLin003 := aCols[n003,4] //estorno de creditos
  4448. nLin007 := aCols[n007,4] //outros creditos
  4449. nLin008 := aCols[n008,4] //estorno de debitos
  4450. nLin014 := aCols[n014,4] //deducoes
  4451.  
  4452.  
  4453. aCols[n005,04] := nLin001+nLin002+nLin003 //total saidas
  4454. aCols[n010,04] := nLin006+nLin007+nLin008 //sub-total entradas
  4455. aCols[n012,04] := aCols[n010,4]+nLin011 //total entradas
  4456. 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 )
  4457. aCols[n015,04] := if(aCols[n013,4]-nLin014>=0,aCols[n013,4]-nLin014,0) //Imposto a recolher( 013-014 )
  4458. 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 )
  4459.  
  4460.  
  4461. nPosRecPR := Ascan(aCols5,{|x|x[1]=="013"}) //imposto a recolher Operacoes Proprias
  4462. nVlrTitulo := aCols5[nPosRecPR,4]+aCols[n015,4]
  4463. Else
  4464. aCols6[n005,04]:= aCols6[n001,4]+aCols6[n002,4]+aCols6[n003,4] //total saidas
  4465. aCols6[n010,04]:= aCols6[n006,4]+aCols6[n007,4]+aCols6[n008,4] //sub-total entradas
  4466. aCols6[n012,04]:= aCols6[n010,4]+aCols6[n011,4] //total entradas
  4467. 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 )
  4468. aCols6[n015,04]:= if(aCols6[n013,4]-aCols6[n014,4]>=0,aCols6[n013,4]-aCols6[n014,4],0) //Imposto a recolher( 013-014 )
  4469. 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 )
  4470.  
  4471. nPosRecPR := Ascan(aCols5,{|x|x[1]=="013"}) //imposto a recolher Substituicao Tributaria
  4472. nVlrTitulo := aCols5[nPosRecPR,4]+aCols6[n015,4]
  4473. Endif
  4474. ElseIf lFomentar .And. !lApurBA
  4475. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  4476. //砎erifico os valores array aCols8 ?
  4477. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  4478. n001 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="001"})
  4479. n002 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="002"})
  4480. n003 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="003"})
  4481. n004 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="004"})
  4482. n005 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="005"})
  4483. n006 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="006"})
  4484. n007 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="007"})
  4485. n008 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="008"})
  4486. n009 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="009"})
  4487. n010 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="010"})
  4488. n0101 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="101"})
  4489. n011 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="011"})
  4490. n012 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="012"})
  4491. n013 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="013"})
  4492. n014 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="014"})
  4493. n015 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="015"})
  4494. n016 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="016"})
  4495. n017 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="017"})
  4496. n018 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="018"})
  4497. n019 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="019"})
  4498. n020 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="020"})
  4499. n021 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="021"})
  4500. n022 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="022"})
  4501. n023 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="023"})
  4502. n024 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="024"})
  4503. n025 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="025"})
  4504. n026 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="026"})
  4505. n027 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="027"})
  4506. n028 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="028"})
  4507. n029 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="029"})
  4508. n030 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="030"})
  4509. n031 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="031"})
  4510. n032 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="032"})
  4511. n033 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="033"})
  4512. n034 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="034"})
  4513. n035 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="035"})
  4514. n036 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="036"})
  4515. n037 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="037"})
  4516. n038 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="038"})
  4517. n039 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="039"})
  4518. n040 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="040"})
  4519. n041 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="041"})
  4520. n042 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="042"})
  4521. n043 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="043"})
  4522. n044 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="044"})
  4523. n045 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="045"})
  4524. n046 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="046"})
  4525. n047 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="047"})
  4526. n048 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="048"})
  4527. n049 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="049"})
  4528. n050 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="050"})
  4529. n051 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="051"})
  4530. n052 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="052"})
  4531. n053 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="053"})
  4532. n054 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="054"})
  4533. n055 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="055"})
  4534. n056 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="056"})
  4535. n057 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="057"})
  4536. n058 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="058"})
  4537. n059 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="059"})
  4538. n060 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="060"})
  4539. n061 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="061"})
  4540. n062 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="062"})
  4541. n063 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="063"})
  4542. n064 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="064"})
  4543. n065 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="065"})
  4544. n066 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="066"})
  4545. n067 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="067"})
  4546. n068 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="068"})
  4547. n069 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="069"})
  4548. n070 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="070"})
  4549. n071 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="071"})
  4550. n072 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="072"})
  4551. n073 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="073"})
  4552. n074 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="074"})
  4553. n075 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="075"})
  4554. n076 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="076"})
  4555. n077 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="077"})
  4556. n078 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="078"})
  4557. n079 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="079"})
  4558. n080 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="080"})
  4559. n081 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="081"})
  4560. n082 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="082"})
  4561. n083 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="083"})
  4562. n084 := Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="084"})
  4563.  
  4564. If !lFirst
  4565. If ReadVar() =="M->NVALOR"
  4566. nLin001 := If(aCols[n,1]==aCols[n001,1],M->NVALOR,aCols[n001,4])
  4567. nLin002 := If(aCols[n,1]==aCols[n002,1],M->NVALOR,aCols[n002,4])
  4568. nLin004 := If(aCols[n,1]==aCols[n004,1],M->NVALOR,aCols[n004,4])
  4569. nLin005 := If(aCols[n,1]==aCols[n005,1],M->NVALOR,aCols[n005,4])
  4570. nLin006 := If(aCols[n,1]==aCols[n006,1],M->NVALOR,aCols[n006,4])
  4571. nLin007 := If(aCols[n,1]==aCols[n007,1],M->NVALOR,aCols[n007,4])
  4572. nLin0101 := If(aCols[n,1]==aCols[n0101,1],M->NVALOR,aCols[n0101,4])
  4573. nLin011 := If(aCols[n,1]==aCols[n011,1],M->NVALOR,aCols[n011,4])
  4574. nLin012 := If(aCols[n,1]==aCols[n012,1],M->NVALOR,aCols[n012,4])
  4575. nLin013 := If(aCols[n,1]==aCols[n013,1],M->NVALOR,aCols[n013,4])
  4576. nLin015 := If(aCols[n,1]==aCols[n015,1],M->NVALOR,aCols[n015,4])
  4577. nLin018 := If(aCols[n,1]==aCols[n018,1],M->NVALOR,aCols[n018,4])
  4578. nLin019 := If(aCols[n,1]==aCols[n019,1],M->NVALOR,aCols[n019,4])
  4579. nLin022 := If(aCols[n,1]==aCols[n022,1],M->NVALOR,aCols[n022,4])
  4580. nLin024 := If(aCols[n,1]==aCols[n024,1],M->NVALOR,aCols[n024,4])
  4581. nLin027 := If(aCols[n,1]==aCols[n027,1],M->NVALOR,aCols[n027,4])
  4582. nLin032 := If(aCols[n,1]==aCols[n032,1],M->NVALOR,aCols[n032,4])
  4583. nLin033 := If(aCols[n,1]==aCols[n033,1],M->NVALOR,aCols[n033,4])
  4584. nLin034 := If(aCols[n,1]==aCols[n034,1],M->NVALOR,aCols[n034,4])
  4585. nLin035 := If(aCols[n,1]==aCols[n035,1],M->NVALOR,aCols[n035,4])
  4586. nLin037 := If(aCols[n,1]==aCols[n037,1],M->NVALOR,aCols[n037,4])
  4587. nLin040 := If(aCols[n,1]==aCols[n040,1],M->NVALOR,aCols[n040,4])
  4588. nLin045 := If(aCols[n,1]==aCols[n045,1],M->NVALOR,aCols[n045,4])
  4589. nLin046 := If(aCols[n,1]==aCols[n046,1],M->NVALOR,aCols[n046,4])
  4590. nLin047 := If(aCols[n,1]==aCols[n047,1],M->NVALOR,aCols[n047,4])
  4591. nLin048 := If(aCols[n,1]==aCols[n048,1],M->NVALOR,aCols[n048,4])
  4592. nLin049 := If(aCols[n,1]==aCols[n049,1],M->NVALOR,aCols[n049,4])
  4593. nLin050 := If(aCols[n,1]==aCols[n050,1],M->NVALOR,aCols[n050,4])
  4594. nLin051 := If(aCols[n,1]==aCols[n051,1],M->NVALOR,aCols[n051,4])
  4595. nLin052 := If(aCols[n,1]==aCols[n052,1],M->NVALOR,aCols[n052,4])
  4596. nLin053 := If(aCols[n,1]==aCols[n053,1],M->NVALOR,aCols[n053,4])
  4597. nLin054 := If(aCols[n,1]==aCols[n054,1],M->NVALOR,aCols[n054,4])
  4598. nLin055 := If(aCols[n,1]==aCols[n055,1],M->NVALOR,aCols[n055,4])
  4599. nLin056 := If(aCols[n,1]==aCols[n056,1],M->NVALOR,aCols[n056,4])
  4600. nLin057 := If(aCols[n,1]==aCols[n057,1],M->NVALOR,aCols[n057,4])
  4601. nLin058 := If(aCols[n,1]==aCols[n058,1],M->NVALOR,aCols[n058,4])
  4602. nLin059 := If(aCols[n,1]==aCols[n059,1],M->NVALOR,aCols[n059,4])
  4603. nLin060 := If(aCols[n,1]==aCols[n060,1],M->NVALOR,aCols[n060,4])
  4604. nLin062 := If(aCols[n,1]==aCols[n062,1],M->NVALOR,aCols[n062,4])
  4605. nLin063 := If(aCols[n,1]==aCols[n063,1],M->NVALOR,aCols[n063,4])
  4606. nLin064 := If(aCols[n,1]==aCols[n064,1],M->NVALOR,aCols[n064,4])
  4607. nLin065 := If(aCols[n,1]==aCols[n065,1],M->NVALOR,aCols[n065,4])
  4608. nLin066 := If(aCols[n,1]==aCols[n066,1],M->NVALOR,aCols[n066,4])
  4609. nLin067 := If(aCols[n,1]==aCols[n067,1],M->NVALOR,aCols[n067,4])
  4610. nLin068 := If(aCols[n,1]==aCols[n068,1],M->NVALOR,aCols[n068,4])
  4611. nLin069 := If(aCols[n,1]==aCols[n069,1],M->NVALOR,aCols[n069,4])
  4612. nLin070 := If(aCols[n,1]==aCols[n070,1],M->NVALOR,aCols[n070,4])
  4613. nLin073 := If(aCols[n,1]==aCols[n073,1],M->NVALOR,aCols[n073,4])
  4614. nLin074 := If(aCols[n,1]==aCols[n074,1],M->NVALOR,aCols[n074,4])
  4615. nLin076 := If(aCols[n,1]==aCols[n076,1],M->NVALOR,aCols[n076,4])
  4616. nLin078 := If(aCols[n,1]==aCols[n078,1],M->NVALOR,aCols[n078,4])
  4617. ElseIf Empty(ReadVar())
  4618. nLin001 := aCols[n001,4]
  4619. nLin002 := aCols[n002,4]
  4620. nLin004 := aCols[n004,4]
  4621. nLin005 := aCols[n005,4]
  4622. nLin006 := aCols[n006,4]
  4623. nLin007 := aCols[n007,4]
  4624. nLin0101 := aCols[n0101,4]
  4625. nLin011 := aCols[n011,4]
  4626. nLin012 := aCols[n012,4]
  4627. nLin013 := aCols[n013,4]
  4628. nLin015 := aCols[n015,4]
  4629. nLin018 := aCols[n018,4]
  4630. nLin019 := aCols[n019,4]
  4631. nLin022 := aCols[n022,4]
  4632. nLin024 := aCols[n024,4]
  4633. nLin027 := aCols[n027,4]
  4634. nLin032 := aCols[n032,4]
  4635. nLin033 := aCols[n033,4]
  4636. nLin034 := aCols[n034,4]
  4637. nLin035 := aCols[n035,4]
  4638. nLin037 := aCols[n037,4]
  4639. nLin040 := aCols[n040,4]
  4640. nLin045 := aCols[n045,4]
  4641. nLin046 := aCols[n046,4]
  4642. nLin047 := aCols[n047,4]
  4643. nLin048 := aCols[n048,4]
  4644. nLin049 := aCols[n049,4]
  4645. nLin050 := aCols[n050,4]
  4646. nLin051 := aCols[n051,4]
  4647. nLin052 := aCols[n052,4]
  4648. nLin053 := aCols[n053,4]
  4649. nLin054 := aCols[n054,4]
  4650. nLin055 := aCols[n055,4]
  4651. nLin056 := aCols[n056,4]
  4652. nLin057 := aCols[n057,4]
  4653. nLin058 := aCols[n058,4]
  4654. nLin059 := aCols[n059,4]
  4655. nLin060 := aCols[n060,4]
  4656. nLin062 := aCols[n062,4]
  4657. nLin063 := aCols[n063,4]
  4658. nLin064 := aCols[n064,4]
  4659. nLin065 := aCols[n065,4]
  4660. nLin066 := aCols[n066,4]
  4661. nLin067 := aCols[n067,4]
  4662. nLin068 := aCols[n068,4]
  4663. nLin069 := aCols[n069,4]
  4664. nLin070 := aCols[n070,4]
  4665. nLin073 := aCols[n073,4]
  4666. nLin074 := aCols[n074,4]
  4667. nLin076 := aCols[n076,4]
  4668. nLin078 := aCols[n078,4]
  4669. Endif
  4670.  
  4671. If !(SuperGetMV("MV_RNDFOM",,.F.)) //Nao arredonda os valores
  4672. //Quadro A - Proporcao dos creditos apropriados
  4673. aCols[n001,04]:= nLin001 //saidas de oper. incentivadas
  4674. aCols[n002,04]:= nLin002 //todal das saidas
  4675. aCols[n003,04]:= Iif(aCols[n002,04]>0,((aCols[n001,04]/aCols[n002,04])*100),0) //percentual
  4676. aCols[n004,04]:= nLin004 //creditos por entrada
  4677. aCols[n005,04]:= nLin005 //outros creditos
  4678. aCols[n006,04]:= nLin006 //estorno de debitos
  4679. aCols[n007,04]:= nLin007 //saldo credor do periodo anterior
  4680. aCols[n008,04]:= aCols[n004,04]+aCols[n005,04]+aCols[n006,04]+aCols[n007,04] //total dos creditos do periodo
  4681. aCols[n009,04]:= Iif(aCols[n003,04]>0,((aCols[n003,04]*aCols[n008,04])/100),0) //credito para operacoes incentivadas
  4682. aCols[n010,04]:= aCols[n008,04]-aCols[n009,04] //credito para operacoes nao incentivadas
  4683. aCols[n0101,04]:= nLin0101 //Outros Creditos Correspondente Primeira Parcela de ICMS
  4684. //Quadro B - Apuracao dos saldos das operacoes incentivadas
  4685. aCols[n011,04]:= nLin011 //debito do IMCS das operacoes incentivadas
  4686. aCols[n012,04]:= nLin012 //outros debitos das operacoes incentivadas
  4687. aCols[n013,04]:= nLin013 //estorno de debito das operacoes incentivadas
  4688. aCols[n014,04]:= aCols[n009,04]+aCols[n0101,04] //creditos das operacoes incentivadas
  4689. aCols[n015,04]:= nLin015 //deducoes das operacoes incentivadas
  4690. aCols[n016,04]:= aCols[n043,04] //credito ref. saldo credor do period. operacoes nao incentivadas
  4691. aCols[n017,04]:= Iif((aCols[n011,04]+aCols[n012,04]+aCols[n013,04])-;
  4692. (aCols[n014,04]+aCols[n015,04])>0,(aCols[n011,04]+aCols[n012,04]+aCols[n013,04])-;
  4693. (aCols[n014,04]+aCols[n015,04]+aCols[n016,04]),0) //saldo devedor do ICMS das operacoes incentivadas
  4694. aCols[n018,04]:= nLin018 //ICMS por media
  4695. aCols[n019,04]:= nLin019 //deducoes/compensacoes
  4696. aCols[n020,04]:= aCols[n018,04]-aCols[n019,04] //saldo do ICMS a pagar por media
  4697. aCols[n021,04]:= Iif(aCols[n017,04]>aCols[n018,04],aCols[n017,04]-aCols[n018,04],0)//ICMS base para Fomentar/produzir
  4698. aCols[n022,04]:= nLin022 //percentagem do financiamento
  4699. aCols[n023,04]:= ((aCols[n021,04]*aCols[n022,04])/100) //ICMS sujeito a financiamento
  4700. aCols[n024,04]:= nLin024 //ICMS excedente nao sujeito ao incentivo
  4701. aCols[n025,04]:= Iif((aCols[n023,04]-aCols[n024,04])>0,aCols[n023,04]-aCols[n024,04],0)//ICMS Financiado
  4702. aCols[n026,04]:= Iif(aCols[n021,04]>aCols[n023,04],aCols[n021,04]-aCols[n023,04],0) //saldo do ICMS da parcela nao financiada
  4703. aCols[n027,04]:= nLin027 //deducoes/compensacoes
  4704. aCols[n028,04]:= aCols[n026,04]-aCols[n027,04] //saldo do ICMS a pagar da parcela nao financiada
  4705. aCols[n029,04]:= Iif((aCols[n014,04]+aCols[n015,04])>;
  4706. (aCols[n011,04]+aCols[n012,04]+aCols[n013,04]),(aCols[n014,04]+aCols[n015,04])-;
  4707. (aCols[n011,04]+aCols[n012,04]+aCols[n013,04]),0) //saldo credor do periodo
  4708. nLin030 := (aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04]-aCols[n036,04]-aCols[n037,04])
  4709. 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
  4710. aCols[n031,04]:= aCols[n029,04]-aCols[n030,04] //saldo credor a transportar para o periodo seguinte
  4711. //Quadro C - Apuracao dos saldos das operacoes nao incentivadas
  4712. aCols[n032,04]:= nLin032 //debito do ICMS das operacoes nao incentivadas
  4713. aCols[n033,04]:= nLin033 //outros debitos das opercaoes nao incentivadas
  4714. aCols[n034,04]:= nLin034 //estorno de creditos das operacoes nao incentivadas
  4715. aCols[n035,04]:= nLin035 //ICMS excedente nao sujeito ao incentivo
  4716. aCols[n036,04]:= aCols[n010,04] //credito para operacoes nao incentivadas
  4717. aCols[n037,04]:= nLin037 //deducoes das operacoes nao incentivadas
  4718. aCols[n038,04]:= aCols[n030,04] //credito referente a saldo credor do periodo das operacoes incentivadas
  4719. aCols[n039,04]:= Iif((aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04])>;
  4720. (aCols[n036,04]+aCols[n037,04]+aCols[n038,04]),(aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04])-;
  4721. (aCols[n036,04]+aCols[n037,04]+aCols[n038,04]),0) //saldo devedor do ICMS das operacoes nao incentivadas
  4722. aCols[n040,04]:= nLin040 //deducoes/compensacoes
  4723. aCols[n041,04]:= aCols[n039,04]-aCols[n040,04] //saldo do ICMS a pagar das operacoes nao incentivadas
  4724. aCols[n042,04]:= Iif((aCols[n036,04]+aCols[n037,04])>;
  4725. (aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04]),(aCols[n036,04]+aCols[n037,04])-;
  4726. (aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04]),0) //saldo credor do periodo
  4727. nLin043 := ((aCols[n036,04]+aCols[n037,04])-(aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04]))
  4728. nLin043_2:= (aCols[n011,04]+aCols[n012,04]+aCols[n013,04]-aCols[n014,04]-aCols[n015,04])
  4729. 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
  4730. aCols[n044,04]:= aCols[n042,04]-aCols[n043,04] //saldo credor a transp. para o periodo seguinte
  4731. //Quadro D - Demontrativo e utilizacao dos creditos escriturados na linha observacoes do LRA
  4732. //Demonstrativo dos creditos
  4733. aCols[n045,04]:= nLin045 //saldo credor da linha observacoes do periodo anterior
  4734. aCols[n046,04]:= nLin046 //cheque moradia
  4735. aCols[n047,04]:= nLin047 //protege Goias
  4736. aCols[n048,04]:= nLin048 //proesporte
  4737. aCols[n049,04]:= nLin049 //goyazes
  4738. aCols[n050,04]:= nLin050 //pagamento antecipado
  4739. aCols[n051,04]:= nLin051 //ICMS recebido em transferencia
  4740. aCols[n052,04]:= nLin052 //credito do fabricante de papel e embalagem reciclado
  4741. aCols[n053,04]:= nLin053 //credito relativo ao adicional de 2% na aliquota do ICMS
  4742. aCols[n054,04]:= nLin054 //ajuste do valor pago por forca de legislacao
  4743. aCols[n055,04]:= nLin055 //credito especial para investimento
  4744. aCols[n056,04]:= nLin056 //credito industrial na producao interna do biodiesel
  4745. aCols[n057,04]:= nLin057 //credito na producao de alcool anidro
  4746. aCols[n058,04]:= nLin058 //credito do ICMS pago em DARE
  4747. aCols[n059,04]:= nLin059 //credito outorgado para industrial de veiculo automotor
  4748. aCols[n060,04]:= nLin060 //outros creditos autorizados pela legislacao tributaria
  4749. aCols[n061,04]:= aCols[n045,04]+aCols[n046,04]+aCols[n047,04]+aCols[n048,04]+aCols[n049,04]+;
  4750. aCols[n050,04]+aCols[n051,04]+aCols[n052,04]+aCols[n053,04]+aCols[n054,04]+;
  4751. aCols[n055,04]+aCols[n056,04]+aCols[n057,04]+aCols[n058,04]+aCols[n059,04]+aCols[n060,04] //total dos creditos
  4752. //Utilizacao dos creditos
  4753. aCols[n062,04]:= nLin062 //ICMS Retido via DARE ou de ST
  4754. aCols[n063,04]:= nLin063 //ICMS sobre operacoes nao incentivadas
  4755. aCols[n064,04]:= nLin064 //ICMS por media
  4756. aCols[n065,04]:= nLin065 //ICMS da percela nao financiada
  4757. aCols[n066,04]:= nLin066 //transferencia para terceiros e/ou filiais
  4758. aCols[n067,04]:= nLin067 //restituicao de credito (em moeda)
  4759. aCols[n068,04]:= nLin068 //quitacao de auto de infracao
  4760. aCols[n069,04]:= nLin069 //estorno de credito apropriado indevidamente
  4761. aCols[n070,04]:= nLin070 //outras deducoes/compensacoes
  4762. aCols[n071,04]:= aCols[n062,04]+aCols[n063,04]+aCols[n064,04]+aCols[n065,04]+aCols[n066,04]+;
  4763. aCols[n067,04]+aCols[n068,04]+aCols[n069,04]+aCols[n070,04] //total das deducoes/compensacoes
  4764. aCols[n072,04]:= aCols[n061,04]-aCols[n071,04] //saldo credor do ICMS da linha obs a transportar para periodo seguinte
  4765. //Quadro E - Demonstrativo de debitos referentes a mercadoria importada para comercializacao
  4766. aCols[n073,04]:= nLin073 //total das mercadorias importadas
  4767. aCols[n074,04]:= nLin074 //outros acrescimos sobre importacao
  4768. aCols[n075,04]:= aCols[n073,04]+aCols[n074,04] //total das operacoes de importacao
  4769. aCols[n076,04]:= nLin076 //total das entradas no periodo
  4770. aCols[n077,04]:= Iif(aCols[n076,04]>0,((aCols[n075,04]/aCols[n076,04])*100),0) //percentual das operacoes de importacao
  4771. aCols[n078,04]:= nLin078 //ICMS sobre importacao
  4772. aCols[n079,04]:= Iif(aCols[n077,04]<30,0,((aCols[n076,04]*(aCols[n077,04]-30))/100)) //mercadorias importadas excedentes
  4773. aCols[n080,04]:= Iif(aCols[n075,04]<=0,0,(aCols[n078,04]*(aCols[n079,04]/aCols[n075,04]))) //ICMS sobre importacao excedente
  4774. aCols[n081,04]:= ((aCols[n080,04]*aCols[n022,04])/100) //ICMS sobre importacao excedente nao sujeito a incentivo
  4775. aCols[n082,04]:= aCols[n078,04]-aCols[n080,04] //ICMS sobre importacao sujeito a incentivo
  4776. aCols[n083,04]:= ((aCols[n078,04]*(100-aCols[n022,04]))/100) //ICMS sobre importacao da parcela nao financiada
  4777. aCols[n084,04]:= aCols[n081,04]+aCols[n083,04] //saldo do ICMS sobre importacao a pagar
  4778. Else
  4779. //Quadro A - Proporcao dos creditos apropriados
  4780. aCols[n001,04]:= Round(nLin001,2) //saidas de oper. incentivadas
  4781. aCols[n002,04]:= Round(nLin002,2) //todal das saidas
  4782. aCols[n003,04]:= Iif(aCols[n002,04]>0,Round(((aCols[n001,04]/aCols[n002,04])*100),2),0) //percentual
  4783. aCols[n004,04]:= Round(nLin004,2) //creditos por entrada
  4784. aCols[n005,04]:= Round(nLin005,2) //outros creditos
  4785. aCols[n006,04]:= Round(nLin006,2) //estorno de debitos
  4786. aCols[n007,04]:= Round(nLin007,2) //saldo credor do periodo anterior
  4787. aCols[n008,04]:= Round(aCols[n004,04]+aCols[n005,04]+aCols[n006,04]+aCols[n007,04],2) //total dos creditos do periodo
  4788. aCols[n009,04]:= Iif(aCols[n003,04]>0,Round(((aCols[n003,04]*aCols[n008,04])/100),2),0) //credito para operacoes incentivadas
  4789. aCols[n010,04]:= Round(aCols[n008,04]-aCols[n009,04],2) //credito para operacoes nao incentivadas
  4790. aCols[n0101,04]:= Round(nLin0101,2) //Outros Creditos Correspondente Primeira Parcela de ICMS
  4791. //Quadro B - Apuracao dos saldos das operacoes incentivadas
  4792. aCols[n011,04]:= Round(nLin011,2) //debito do IMCS das operacoes incentivadas
  4793. aCols[n012,04]:= Round(nLin012,2) //outros debitos das operacoes incentivadas
  4794. aCols[n013,04]:= Round(nLin013,2) //estorno de debito das operacoes incentivadas
  4795. aCols[n014,04]:= Round(aCols[n009,04]+aCols[n0101,04],2) //creditos das operacoes incentivadas
  4796. aCols[n015,04]:= Round(nLin015,2) //deducoes das operacoes incentivadas
  4797. aCols[n016,04]:= Round(aCols[n043,04],2) //credito ref. saldo credor do period. operacoes nao incentivadas
  4798. aCols[n017,04]:= Iif((aCols[n011,04]+aCols[n012,04]+aCols[n013,04])-;
  4799. (aCols[n014,04]+aCols[n015,04])>0,Round((aCols[n011,04]+aCols[n012,04]+aCols[n013,04]),2)-;
  4800. Round((aCols[n014,04]+aCols[n015,04]+aCols[n016,04]),2),0) //saldo devedor do ICMS das operacoes incentivadas
  4801. aCols[n018,04]:= Round(nLin018,2) //ICMS por media
  4802. aCols[n019,04]:= Round(nLin019,2) //deducoes/compensacoes
  4803. aCols[n020,04]:= Round(aCols[n018,04]-aCols[n019,04],2) //saldo do ICMS a pagar por media
  4804. aCols[n021,04]:= Iif(aCols[n017,04]>aCols[n018,04],Round(aCols[n017,04]-aCols[n018,04],2),0)//ICMS base para Fomentar/produzir
  4805. aCols[n022,04]:= Round(nLin022,2) //percentagem do financiamento
  4806. aCols[n023,04]:= Round(((aCols[n021,04]*aCols[n022,04])/100),2) //ICMS sujeito a financiamento
  4807. aCols[n024,04]:= Round(nLin024,2) //ICMS excedente nao sujeito ao incentivo
  4808. aCols[n025,04]:= Iif((aCols[n023,04]-aCols[n024,04])>0,Round(aCols[n023,04]-aCols[n024,04],2),0)//ICMS Financiado
  4809. 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
  4810. aCols[n027,04]:= Round(nLin027,2) //deducoes/compensacoes
  4811. aCols[n028,04]:= Round(aCols[n026,04]-aCols[n027,04],2) //saldo do ICMS a pagar da parcela nao financiada
  4812. aCols[n029,04]:= Iif((aCols[n014,04]+aCols[n015,04])>;
  4813. (aCols[n011,04]+aCols[n012,04]+aCols[n013,04]),Round((aCols[n014,04]+aCols[n015,04]),2)-;
  4814. Round((aCols[n011,04]+aCols[n012,04]+aCols[n013,04]),2),0) //saldo credor do periodo
  4815. nLin030 := Round((aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04]-aCols[n036,04]-aCols[n037,04]),2)
  4816. 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
  4817. aCols[n031,04]:= Round(aCols[n029,04]-aCols[n030,04],2) //saldo credor a transportar para o periodo seguinte
  4818. //Quadro C - Apuracao dos saldos das operacoes nao incentivadas
  4819. aCols[n032,04]:= Round(nLin032,2) //debito do ICMS das operacoes nao incentivadas
  4820. aCols[n033,04]:= Round(nLin033,2) //outros debitos das opercaoes nao incentivadas
  4821. aCols[n034,04]:= Round(nLin034,2) //estorno de creditos das operacoes nao incentivadas
  4822. aCols[n035,04]:= Round(nLin035,2) //ICMS excedente nao sujeito ao incentivo
  4823. aCols[n036,04]:= Round(aCols[n010,04],2) //credito para operacoes nao incentivadas
  4824. aCols[n037,04]:= Round(nLin037,2) //deducoes das operacoes nao incentivadas
  4825. aCols[n038,04]:= Round(aCols[n030,04],2) //credito referente a saldo credor do periodo das operacoes incentivadas
  4826. aCols[n039,04]:= Iif((aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04])>;
  4827. (aCols[n036,04]+aCols[n037,04]+aCols[n038,04]),Round((aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04]),2)-;
  4828. Round((aCols[n036,04]+aCols[n037,04]+aCols[n038,04]),2),0) //saldo devedor do ICMS das operacoes nao incentivadas
  4829. aCols[n040,04]:= Round(nLin040,2) //deducoes/compensacoes
  4830. aCols[n041,04]:= Round(aCols[n039,04]-aCols[n040,04],2) //saldo do ICMS a pagar das operacoes nao incentivadas
  4831. aCols[n042,04]:= Iif((aCols[n036,04]+aCols[n037,04])>;
  4832. (aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04]),Round((aCols[n036,04]+aCols[n037,04]),2)-;
  4833. Round((aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04]),2),0) //saldo credor do periodo
  4834. nLin043 := Round(((aCols[n036,04]+aCols[n037,04])-(aCols[n032,04]+aCols[n033,04]+aCols[n034,04]+aCols[n035,04])),2)
  4835. nLin043_2:= Round((aCols[n011,04]+aCols[n012,04]+aCols[n013,04]-aCols[n014,04]-aCols[n015,04]),2)
  4836. 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
  4837. aCols[n044,04]:= Round(aCols[n042,04]-aCols[n043,04],2) //saldo credor a transp. para o periodo seguinte
  4838. //Quadro D - Demontrativo e utilizacao dos creditos escriturados na linha observacoes do LRA
  4839. //Demonstrativo dos creditos
  4840. aCols[n045,04]:= Round(nLin045,2) //saldo credor da linha observacoes do periodo anterior
  4841. aCols[n046,04]:= Round(nLin046,2) //cheque moradia
  4842. aCols[n047,04]:= Round(nLin047,2) //protege Goias
  4843. aCols[n048,04]:= Round(nLin048,2) //proesporte
  4844. aCols[n049,04]:= Round(nLin049,2) //goyazes
  4845. aCols[n050,04]:= Round(nLin050,2) //pagamento antecipado
  4846. aCols[n051,04]:= Round(nLin051,2) //ICMS recebido em transferencia
  4847. aCols[n052,04]:= Round(nLin052,2) //credito do fabricante de papel e embalagem reciclado
  4848. aCols[n053,04]:= Round(nLin053,2) //credito relativo ao adicional de 2% na aliquota do ICMS
  4849. aCols[n054,04]:= Round(nLin054,2) //ajuste do valor pago por forca de legislacao
  4850. aCols[n055,04]:= Round(nLin055,2) //credito especial para investimento
  4851. aCols[n056,04]:= Round(nLin056,2) //credito industrial na producao interna do biodiesel
  4852. aCols[n057,04]:= Round(nLin057,2) //credito na producao de alcool anidro
  4853. aCols[n058,04]:= Round(nLin058,2) //credito do ICMS pago em DARE
  4854. aCols[n059,04]:= Round(nLin059,2) //credito outorgado para industrial de veiculo automotor
  4855. aCols[n060,04]:= Round(nLin060,2) //outros creditos autorizados pela legislacao tributaria
  4856. aCols[n061,04]:= Round(aCols[n045,04]+aCols[n046,04]+aCols[n047,04]+aCols[n048,04]+aCols[n049,04]+;
  4857. aCols[n050,04]+aCols[n051,04]+aCols[n052,04]+aCols[n053,04]+aCols[n054,04]+;
  4858. aCols[n055,04]+aCols[n056,04]+aCols[n057,04]+aCols[n058,04]+aCols[n059,04]+aCols[n060,04],2) //total dos creditos
  4859. //Utilizacao dos creditos
  4860. aCols[n062,04]:= Round(nLin062,2) //ICMS Retido via DARE ou de ST
  4861. aCols[n063,04]:= Round(nLin063,2) //ICMS sobre operacoes nao incentivadas
  4862. aCols[n064,04]:= Round(nLin064,2) //ICMS por media
  4863. aCols[n065,04]:= Round(nLin065,2) //ICMS da percela nao financiada
  4864. aCols[n066,04]:= Round(nLin066,2) //transferencia para terceiros e/ou filiais
  4865. aCols[n067,04]:= Round(nLin067,2) //restituicao de credito (em moeda)
  4866. aCols[n068,04]:= Round(nLin068,2) //quitacao de auto de infracao
  4867. aCols[n069,04]:= Round(nLin069,2) //estorno de credito apropriado indevidamente
  4868. aCols[n070,04]:= Round(nLin070,2) //outras deducoes/compensacoes
  4869. aCols[n071,04]:= Round(aCols[n062,04]+aCols[n063,04]+aCols[n064,04]+aCols[n065,04]+aCols[n066,04]+;
  4870. aCols[n067,04]+aCols[n068,04]+aCols[n069,04]+aCols[n070,04],2) //total das deducoes/compensacoes
  4871. aCols[n072,04]:= Round(aCols[n061,04]-aCols[n071,04],2) //saldo credor do ICMS da linha obs a transportar para periodo seguinte
  4872. //Quadro E - Demonstrativo de debitos referentes a mercadoria importada para comercializacao
  4873. aCols[n073,04]:= Round(nLin073,2) //total das mercadorias importadas
  4874. aCols[n074,04]:= Round(nLin074,2) //outros acrescimos sobre importacao
  4875. aCols[n075,04]:= Round(aCols[n073,04]+aCols[n074,04],2) //total das operacoes de importacao
  4876. aCols[n076,04]:= Round(nLin076,2) //total das entradas no periodo
  4877. aCols[n077,04]:= Iif(aCols[n076,04]>0,Round(((aCols[n075,04]/aCols[n076,04])*100),2),0) //percentual das operacoes de importacao
  4878. aCols[n078,04]:= Round(nLin078,2) //ICMS sobre importacao
  4879. aCols[n079,04]:= Iif(aCols[n077,04]<30,0,Round(((aCols[n076,04]*(aCols[n077,04]-30))/100),2)) //mercadorias importadas excedentes
  4880. aCols[n080,04]:= Iif(aCols[n075,04]<=0,0,Round((aCols[n078,04]*(aCols[n079,04]/aCols[n075,04])),2)) //ICMS sobre importacao excedente
  4881. aCols[n081,04]:= Round(((aCols[n080,04]*aCols[n022,04])/100),2) //ICMS sobre importacao excedente nao sujeito a incentivo
  4882. aCols[n082,04]:= Round(aCols[n078,04]-aCols[n080,04],2) //ICMS sobre importacao sujeito a incentivo
  4883. aCols[n083,04]:= Round(((aCols[n078,04]*(100-aCols[n022,04]))/100),2) //ICMS sobre importacao da parcela nao financiada
  4884. aCols[n084,04]:= Round(aCols[n081,04]+aCols[n083,04],2) //saldo do ICMS sobre importacao a pagar
  4885. Endif
  4886. 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
  4887.  
  4888. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  4889. //砎erifico os valores array aCols5 ?
  4890. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  4891. n003_05 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="003"}) //estorno de credito
  4892. n004_05 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="004"}) //total das saidas
  4893. n005_05 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="005"}) //entradas com credito do imposto
  4894. n006_05 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="006"}) //outros creditos
  4895. n007_05 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="007"}) //estorno de debitos
  4896. n009_05 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="009"}) //saldo credor do periodo anterior
  4897. n010_05 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="010"}) //total das entradas
  4898. n021_05 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="021"}) //transferencia de credito
  4899.  
  4900. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  4901. //砊otalizacao das linhas expandidas?
  4902. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? a953TotLin(n003_05,"003",lFirst,aCols5)
  4903. a953TotLin(n006_05,"006",lFirst,aCols5)
  4904. a953TotLin(n007_05,"007",lFirst,aCols5)
  4905.  
  4906. If !(SuperGetMV("MV_RNDFOM",,.F.)) //Nao arredonda os valores
  4907.  
  4908. //Quadro A - Proporcao dos creditos apropriados
  4909. aCols8[n001,04]:= aCols8[n001,04] //saidas de oper. incentivadas
  4910. aCols8[n002,04]:= aCols5[n004_05,04] //todal das saidas (com excecao das oper. incentivadas)
  4911. aCols8[n003,04]:= Iif(aCols8[n002,04]>0,((aCols8[n001,04]/aCols8[n002,04])*100),0)//percentual
  4912. aCols8[n004,04]:= aCols5[n005_05,04] //creditos por entrada
  4913. aCols8[n005,04]:= aCols5[n006_05,04] //outros creditos
  4914. aCols8[n006,04]:= aCols5[n007_05,04] //estorno de debitos
  4915. aCols8[n007,04]:= aCols5[n009_05,04] //saldo credor do periodo anterior
  4916. aCols8[n008,04]:= aCols8[n004,04]+aCols8[n005,04]+aCols8[n006,04]+aCols8[n007,04] //total dos creditos do periodo
  4917. aCols8[n009,04]:= Iif(aCols8[n003,04]>0,((aCols8[n003,04]*aCols8[n008,04])/100),0) //credito para operacoes incentivadas
  4918. aCols8[n010,04]:= aCols8[n008,04]-aCols8[n009,04] //credito para operacoes nao incentivadas
  4919.  
  4920. //Quadro B - Apuracao dos saldos das operacoes incentivadas
  4921. aCols8[n011,04]:= aCols8[n011,04] //debito do IMCS das operacoes incentivadas
  4922. aCols8[n012,04]:= aCols8[n012,04] //outros debitos das operacoes incentivadas
  4923. aCols8[n013,04]:= aCols8[n013,04] //estorno de debito das operacoes incentivadas
  4924. aCols8[n014,04]:= aCols8[n009,04] //creditos das operacoes incentivadas
  4925. aCols8[n015,04]:= aCols8[n015,04] //deducoes das operacoes incentivadas
  4926. aCols8[n016,04]:= aCols8[n043,04] //credito ref. saldo credor do period. operacoes nao incentivadas
  4927. aCols8[n017,04]:= Iif((aCols8[n011,04]+aCols8[n012,04]+aCols8[n013,04])-;
  4928. (aCols8[n014,04]+aCols8[n015,04])>0,(aCols8[n011,04]+aCols8[n012,04]+aCols8[n013,04])-;
  4929. (aCols8[n014,04]+aCols8[n015,04]+aCols8[n016,04]),0) //saldo devedor do ICMS das operacoes incentivadas
  4930. aCols8[n018,04]:= aCols8[n018,04] //ICMS por media
  4931. aCols8[n019,04]:= aCols8[n019,04] //deducoes/compensacoes
  4932. aCols8[n020,04]:= aCols8[n018,04]-aCols8[n019,04] //saldo do ICMS a pagar por media
  4933. aCols8[n021,04]:= Iif(aCols8[n017,04]>aCols8[n018,04],aCols8[n017,04]-aCols8[n018,04],0) //ICMS base para Fomentar/produzir
  4934. aCols8[n022,04]:= aCols8[n022,04] //percentagem do financiamento
  4935. aCols8[n023,04]:= ((aCols8[n021,04]*aCols8[n022,04])/100) //ICMS sujeito a financiamento
  4936. aCols8[n024,04]:= aCols8[n024,04] //ICMS excedente nao sujeito ao incentivo
  4937. aCols8[n025,04]:= Iif((aCols8[n023,04]-aCols8[n024,04])>0,aCols8[n023,04]-aCols8[n024,04],0) //ICMS Financiado
  4938. aCols8[n026,04]:= Iif(aCols8[n021,04]>aCols8[n023,04],aCols8[n021,04]-aCols8[n023,04],0) //saldo do ICMS da parcela nao financiada
  4939. aCols8[n027,04]:= aCols8[n027,04] //deducoes/compensacoes
  4940. aCols8[n028,04]:= aCols8[n026,04]-aCols8[n027,04] //saldo do ICMS a pagar da parcela nao financiada
  4941. aCols8[n029,04]:= Iif((aCols8[n014,04]+aCols8[n015,04])>;
  4942. (aCols8[n011,04]+aCols8[n012,04]+aCols8[n013,04]),(aCols8[n014,04]+aCols8[n015,04])-;
  4943. (aCols8[n011,04]+aCols8[n012,04]+aCols8[n013,04]),0) //saldo credor do periodo
  4944. nLin030 := (aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04]-aCols8[n036,04]-aCols8[n037,04])
  4945. 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
  4946. aCols8[n031,04]:= aCols8[n029,04]-aCols8[n030,04] //saldo credor a transportar para o periodo seguinte
  4947.  
  4948. //Quadro C - Apuracao dos saldos das operacoes nao incentivadas
  4949. aCols8[n032,04]:= aCols8[n032,04] //debito do ICMS das operacoes nao incentivadas
  4950. aCols8[n033,04]:= aCols8[n033,04] //outros debitos das opercaoes nao incentivadas
  4951. aCols8[n034,04]:= aCols8[n034,04] //estorno de creditos das operacoes nao incentivadas
  4952. aCols8[n035,04]:= aCols8[n035,04] //ICMS excedente nao sujeito ao incentivo
  4953. aCols8[n036,04]:= aCols8[n010,04] //credito para operacoes nao incentivadas
  4954. aCols8[n037,04]:= aCols8[n037,04] //deducoes das operacoes nao incentivadas
  4955. aCols8[n038,04]:= aCols8[n030,04] //credito referente a saldo credor do periodo das operacoes incentivadas
  4956. aCols8[n039,04]:= Iif((aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04])>;
  4957. (aCols8[n036,04]+aCols8[n037,04]+aCols8[n038,04]),(aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04])-;
  4958. (aCols8[n036,04]+aCols8[n037,04]+aCols8[n038,04]),0) //saldo devedor do ICMS das operacoes nao incentivadas
  4959. aCols8[n040,04]:= aCols8[n040,04] //deducoes/compensacoes
  4960. aCols8[n041,04]:= aCols8[n039,04]-aCols8[n040,04] //saldo do ICMS a pagar das operacoes nao incentivadas
  4961. aCols8[n042,04]:= Iif((aCols8[n036,04]+aCols8[n037,04])>;
  4962. (aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04]),(aCols8[n036,04]+aCols8[n037,04])-;
  4963. (aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04]),0) //saldo credor do periodo
  4964. nLin043 := ((aCols8[n036,04]+aCols8[n037,04])-(aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04]))
  4965. nLin043_2:= (aCols8[n011,04]+aCols8[n012,04]+aCols8[n013,04]-aCols8[n014,04]-aCols8[n015,04])
  4966. 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
  4967. aCols8[n044,04]:= aCols8[n042,04]-aCols8[n043,04] //saldo credor a transp. para o periodo seguinte
  4968.  
  4969. //Quadro D - Demontrativo e utilizacao dos creditos escriturados na linha observacoes do LRA
  4970. //Demonstrativo dos creditos
  4971. aCols8[n045,04]:= aCols8[n045,04] //saldo credor da linha observacoes do periodo anterior
  4972. aCols8[n046,04]:= aCols8[n046,04] //cheque moradia
  4973. aCols8[n047,04]:= aCols8[n047,04] //protege Goias
  4974. aCols8[n048,04]:= aCols8[n048,04] //proesporte
  4975. aCols8[n049,04]:= aCols8[n049,04] //goyazes
  4976. aCols8[n050,04]:= aCols8[n050,04] //pagamento antecipado
  4977. aCols8[n051,04]:= aCols8[n051,04] //ICMS recebido em transferencia
  4978. aCols8[n052,04]:= aCols8[n052,04] //credito do fabricante de papel e embalagem reciclado
  4979. aCols8[n053,04]:= aCols8[n053,04] //credito relativo ao adicional de 2% na aliquota do ICMS
  4980. aCols8[n054,04]:= aCols8[n054,04] //ajuste do valor pago por forca de legislacao
  4981. aCols8[n055,04]:= aCols8[n055,04] //credito especial para investimento
  4982. aCols8[n056,04]:= aCols8[n056,04] //credito industrial na producao interna do biodiesel
  4983. aCols8[n057,04]:= aCols8[n057,04] //credito na producao de alcool anidro
  4984. aCols8[n058,04]:= aCols8[n058,04] //credito do ICMS pago em DARE
  4985. aCols8[n059,04]:= aCols8[n059,04] //credito outorgado para industrial de veiculo automotor
  4986. aCols8[n060,04]:= aCols8[n060,04] //outros creditos autorizados pela legislacao tributaria
  4987. aCols8[n061,04]:= aCols8[n045,04]+aCols8[n046,04]+aCols8[n047,04]+aCols8[n048,04]+aCols8[n049,04]+;
  4988. aCols8[n050,04]+aCols8[n051,04]+aCols8[n052,04]+aCols8[n053,04]+aCols8[n054,04]+;
  4989. aCols8[n055,04]+aCols8[n056,04]+aCols8[n057,04]+aCols8[n058,04]+aCols8[n059,04]+aCols8[n060,04] //total dos creditos
  4990.  
  4991. //Utilizacao dos creditos
  4992. aCols8[n062,04]:= aCols8[n062,04] //ICMS Retido via DARE ou de ST
  4993. aCols8[n063,04]:= aCols8[n063,04] //ICMS sobre operacoes nao incentivadas
  4994. aCols8[n064,04]:= aCols8[n064,04] //ICMS por media
  4995. aCols8[n065,04]:= aCols8[n065,04] //ICMS da percela nao financiada
  4996. aCols8[n066,04]:= Iif(n021_05>0,aCols5[n021_05,04],aCols8[n066,04]) //transferencia para terceiros e/ou filiais
  4997. aCols8[n067,04]:= aCols8[n067,04] //restituicao de credito (em moeda)
  4998. aCols8[n068,04]:= aCols8[n068,04] //quitacao de auto de infracao
  4999. aCols8[n069,04]:= aCols5[n003_05,04] //estorno de credito apropriado indevidamente
  5000. aCols8[n070,04]:= aCols8[n070,04] //outras deducoes/compensacoes
  5001. aCols8[n071,04]:= aCols8[n062,04]+aCols8[n063,04]+aCols8[n064,04]+aCols8[n065,04]+aCols8[n066,04]+;
  5002. aCols8[n067,04]+aCols8[n068,04]+aCols8[n069,04]+aCols8[n070,04] //total das deducoes/compensacoes
  5003. aCols8[n072,04]:= aCols8[n061,04]-aCols8[n071,04] //saldo credor do ICMS da linha obs a transportar para periodo seguinte
  5004.  
  5005. //Quadro E - Demonstrativo de debitos referentes a mercadoria importada para comercializacao
  5006. aCols8[n073,04]:= aCols8[n073,04] //total das mercadorias importadas
  5007. aCols8[n074,04]:= aCols8[n074,04] //outros acrescimos sobre importacao
  5008. aCols8[n075,04]:= aCols8[n073,04]+aCols8[n074,04] //total das operacoes de importacao
  5009. aCols8[n076,04]:= aCols5[n010_05,04] //total das entradas no periodo
  5010. aCols8[n077,04]:= Iif(aCols8[n076,04]>0,((aCols8[n075,04]/aCols8[n076,04])*100),0) //percentual das operacoes de importacao
  5011. aCols8[n078,04]:= aCols8[n078,04] //ICMS sobre importacao
  5012. aCols8[n079,04]:= Iif(aCols8[n077,04]<30,0,((aCols8[n076,04]*(aCols8[n077,04]-30))/100)) //mercadorias importadas excedentes
  5013. aCols8[n080,04]:= Iif(aCols8[n075,04]<=0,0,(aCols8[n078,04]*(aCols8[n079,04]/aCols8[n075,04])))//ICMS sobre importacao excedente
  5014. aCols8[n081,04]:= ((aCols8[n080,04]*aCols8[n022,04])/100) //ICMS sobre importacao excedente nao sujeito a incentivo
  5015. aCols8[n082,04]:= aCols8[n078,04]-aCols8[n080,04] //ICMS sobre importacao sujeito a incentivo
  5016. aCols8[n083,04]:= ((aCols8[n078,04]*(100-aCols8[022,04]))/100) //ICMS sobre importacao da parcela nao financiada
  5017. aCols8[n084,04]:= aCols8[n081,04]+aCols8[n083,04] //saldo do ICMS sobre importacao a pagar
  5018. Else
  5019. //Quadro A - Proporcao dos creditos apropriados
  5020. aCols8[n001,04]:= Round(aCols8[n001,04],2) //saidas de oper. incentivadas
  5021. aCols8[n002,04]:= Round(aCols5[n004_05,04],2) //todal das saidas (com excecao das oper. incentivadas)
  5022. aCols8[n003,04]:= Iif(aCols8[n002,04]>0,Round(((aCols8[n001,04]/aCols8[n002,04])*100),2),0)//percentual
  5023. aCols8[n004,04]:= Round(aCols5[n005_05,04],2) //creditos por entrada
  5024. aCols8[n005,04]:= Round(aCols5[n006_05,04],2) //outros creditos
  5025. aCols8[n006,04]:= Round(aCols5[n007_05,04],2) //estorno de debitos
  5026. aCols8[n007,04]:= Round(aCols5[n009_05,04],2) //saldo credor do periodo anterior
  5027. aCols8[n008,04]:= Round(aCols8[n004,04]+aCols8[n005,04]+aCols8[n006,04]+aCols8[n007,04],2) //total dos creditos do periodo
  5028. aCols8[n009,04]:= Iif(aCols8[n003,04]>0,Round(((aCols8[n003,04]*aCols8[n008,04])/100),2),0) //credito para operacoes incentivadas
  5029. aCols8[n010,04]:= Round(aCols8[n008,04]-aCols8[n009,04],2) //credito para operacoes nao incentivadas
  5030.  
  5031. //Quadro B - Apuracao dos saldos das operacoes incentivadas
  5032. aCols8[n011,04]:= Round(aCols8[n011,04],2) //debito do IMCS das operacoes incentivadas
  5033. aCols8[n012,04]:= Round(aCols8[n012,04],2) //outros debitos das operacoes incentivadas
  5034. aCols8[n013,04]:= Round(aCols8[n013,04],2) //estorno de debito das operacoes incentivadas
  5035. aCols8[n014,04]:= Round(aCols8[n009,04],2) //creditos das operacoes incentivadas
  5036. aCols8[n015,04]:= Round(aCols8[n015,04],2) //deducoes das operacoes incentivadas
  5037. aCols8[n016,04]:= Round(aCols8[n043,04],2) //credito ref. saldo credor do period. operacoes nao incentivadas
  5038. aCols8[n017,04]:= Iif((aCols8[n011,04]+aCols8[n012,04]+aCols8[n013,04])-;
  5039. (aCols8[n014,04]+aCols8[n015,04])>0,Round((aCols8[n011,04]+aCols8[n012,04]+aCols8[n013,04]),2)-;
  5040. Round((aCols8[n014,04]+aCols8[n015,04]+aCols8[n016,04]),2),0) //saldo devedor do ICMS das operacoes incentivadas
  5041. aCols8[n018,04]:= Round(aCols8[n018,04],2) //ICMS por media
  5042. aCols8[n019,04]:= Round(aCols8[n019,04],2) //deducoes/compensacoes
  5043. aCols8[n020,04]:= Round(aCols8[n018,04]-aCols8[n019,04],2) //saldo do ICMS a pagar por media
  5044. aCols8[n021,04]:= Iif(aCols8[n017,04]>aCols8[n018,04],Round(aCols8[n017,04]-aCols8[n018,04],2),0) //ICMS base para Fomentar/produzir
  5045. aCols8[n022,04]:= Round(aCols8[n022,04],2) //percentagem do financiamento
  5046. aCols8[n023,04]:= Round(((aCols8[n021,04]*aCols8[n022,04])/100),2) //ICMS sujeito a financiamento
  5047. aCols8[n024,04]:= Round(aCols8[n024,04],2) //ICMS excedente nao sujeito ao incentivo
  5048. aCols8[n025,04]:= Iif((aCols8[n023,04]-aCols8[n024,04])>0,Round(aCols8[n023,04]-aCols8[n024,04],2),0) //ICMS Financiado
  5049. 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
  5050. aCols8[n027,04]:= Round(aCols8[n027,04],2) //deducoes/compensacoes
  5051. aCols8[n028,04]:= Round(aCols8[n026,04]-aCols8[n027,04],2) //saldo do ICMS a pagar da parcela nao financiada
  5052. aCols8[n029,04]:= Iif((aCols8[n014,04]+aCols8[n015,04])>;
  5053. (aCols8[n011,04]+aCols8[n012,04]+aCols8[n013,04]),Round((aCols8[n014,04]+aCols8[n015,04]),2)-;
  5054. Round((aCols8[n011,04]+aCols8[n012,04]+aCols8[n013,04]),2),0) //saldo credor do periodo
  5055. nLin030 := Round((aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04]-aCols8[n036,04]-aCols8[n037,04]),2)
  5056. 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
  5057. aCols8[n031,04]:= Round(aCols8[n029,04]-aCols8[n030,04],2) //saldo credor a transportar para o periodo seguinte
  5058.  
  5059. //Quadro C - Apuracao dos saldos das operacoes nao incentivadas
  5060. aCols8[n032,04]:= Round(aCols8[n032,04],2) //debito do ICMS das operacoes nao incentivadas
  5061. aCols8[n033,04]:= Round(aCols8[n033,04],2) //outros debitos das opercaoes nao incentivadas
  5062. aCols8[n034,04]:= Round(aCols8[n034,04],2) //estorno de creditos das operacoes nao incentivadas
  5063. aCols8[n035,04]:= Round(aCols8[n035,04],2) //ICMS excedente nao sujeito ao incentivo
  5064. aCols8[n036,04]:= Round(aCols8[n010,04],2) //credito para operacoes nao incentivadas
  5065. aCols8[n037,04]:= Round(aCols8[n037,04],2) //deducoes das operacoes nao incentivadas
  5066. aCols8[n038,04]:= Round(aCols8[n030,04],2) //credito referente a saldo credor do periodo das operacoes incentivadas
  5067. aCols8[n039,04]:= Iif((aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04])>;
  5068. (aCols8[n036,04]+aCols8[n037,04]+aCols8[n038,04]),Round((aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04]),2)-;
  5069. Round((aCols8[n036,04]+aCols8[n037,04]+aCols8[n038,04]),2),0) //saldo devedor do ICMS das operacoes nao incentivadas
  5070. aCols8[n040,04]:= Round(aCols8[n040,04],2) //deducoes/compensacoes
  5071. aCols8[n041,04]:= Round(aCols8[n039,04]-aCols8[n040,04],2) //saldo do ICMS a pagar das operacoes nao incentivadas
  5072. aCols8[n042,04]:= Iif((aCols8[n036,04]+aCols8[n037,04])>;
  5073. (aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04]),Round((aCols8[n036,04]+aCols8[n037,04]),2)-;
  5074. Round((aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04]),2),0) //saldo credor do periodo
  5075. nLin043 := Round(((aCols8[n036,04]+aCols8[n037,04])-(aCols8[n032,04]+aCols8[n033,04]+aCols8[n034,04]+aCols8[n035,04])),2)
  5076. nLin043_2:= Round((aCols8[n011,04]+aCols8[n012,04]+aCols8[n013,04]-aCols8[n014,04]-aCols8[n015,04]),2)
  5077. 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
  5078. aCols8[n044,04]:= Round(aCols8[n042,04]-aCols8[n043,04],2) //saldo credor a transp. para o periodo seguinte
  5079.  
  5080. //Quadro D - Demontrativo e utilizacao dos creditos escriturados na linha observacoes do LRA
  5081. //Demonstrativo dos creditos
  5082. aCols8[n045,04]:= Round(aCols8[n045,04],2) //saldo credor da linha observacoes do periodo anterior
  5083. aCols8[n046,04]:= Round(aCols8[n046,04],2) //cheque moradia
  5084. aCols8[n047,04]:= Round(aCols8[n047,04],2) //protege Goias
  5085. aCols8[n048,04]:= Round(aCols8[n048,04],2) //proesporte
  5086. aCols8[n049,04]:= Round(aCols8[n049,04],2) //goyazes
  5087. aCols8[n050,04]:= Round(aCols8[n050,04],2) //pagamento antecipado
  5088. aCols8[n051,04]:= Round(aCols8[n051,04],2) //ICMS recebido em transferencia
  5089. aCols8[n052,04]:= Round(aCols8[n052,04],2) //credito do fabricante de papel e embalagem reciclado
  5090. aCols8[n053,04]:= Round(aCols8[n053,04],2) //credito relativo ao adicional de 2% na aliquota do ICMS
  5091. aCols8[n054,04]:= Round(aCols8[n054,04],2) //ajuste do valor pago por forca de legislacao
  5092. aCols8[n055,04]:= Round(aCols8[n055,04],2) //credito especial para investimento
  5093. aCols8[n056,04]:= Round(aCols8[n056,04],2) //credito industrial na producao interna do biodiesel
  5094. aCols8[n057,04]:= Round(aCols8[n057,04],2) //credito na producao de alcool anidro
  5095. aCols8[n058,04]:= Round(aCols8[n058,04],2) //credito do ICMS pago em DARE
  5096. aCols8[n059,04]:= Round(aCols8[n059,04],2) //credito outorgado para industrial de veiculo automotor
  5097. aCols8[n060,04]:= Round(aCols8[n060,04],2) //outros creditos autorizados pela legislacao tributaria
  5098. aCols8[n061,04]:= Round(aCols8[n045,04]+aCols8[n046,04]+aCols8[n047,04]+aCols8[n048,04]+aCols8[n049,04]+;
  5099. aCols8[n050,04]+aCols8[n051,04]+aCols8[n052,04]+aCols8[n053,04]+aCols8[n054,04]+;
  5100. aCols8[n055,04]+aCols8[n056,04]+aCols8[n057,04]+aCols8[n058,04]+aCols8[n059,04]+aCols8[n060,04],2) //total dos creditos
  5101.  
  5102. //Utilizacao dos creditos
  5103. aCols8[n062,04]:= Round(aCols8[n062,04],2) //ICMS Retido via DARE ou de ST
  5104. aCols8[n063,04]:= Round(aCols8[n063,04],2) //ICMS sobre operacoes nao incentivadas
  5105. aCols8[n064,04]:= Round(aCols8[n064,04],2) //ICMS por media
  5106. aCols8[n065,04]:= Round(aCols8[n065,04],2) //ICMS da percela nao financiada
  5107. aCols8[n066,04]:= Iif(n021_05>0,Round(aCols5[n021_05,04],2),Round(aCols8[n066,04],2)) //transferencia para terceiros e/ou filiais
  5108. aCols8[n067,04]:= Round(aCols8[n067,04],2) //restituicao de credito (em moeda)
  5109. aCols8[n068,04]:= Round(aCols8[n068,04],2) //quitacao de auto de infracao
  5110. aCols8[n069,04]:= Round(aCols5[n003_05,04],2) //estorno de credito apropriado indevidamente
  5111. aCols8[n070,04]:= Round(aCols8[n070,04],2) //outras deducoes/compensacoes
  5112. aCols8[n071,04]:= Round(aCols8[n062,04]+aCols8[n063,04]+aCols8[n064,04]+aCols8[n065,04]+aCols8[n066,04]+;
  5113. aCols8[n067,04]+aCols8[n068,04]+aCols8[n069,04]+aCols8[n070,04],2) //total das deducoes/compensacoes
  5114. aCols8[n072,04]:= Round(aCols8[n061,04]-aCols8[n071,04],2) //saldo credor do ICMS da linha obs a transportar para periodo seguinte
  5115.  
  5116. //Quadro E - Demonstrativo de debitos referentes a mercadoria importada para comercializacao
  5117. aCols8[n073,04]:= Round(aCols8[n073,04],2) //total das mercadorias importadas
  5118. aCols8[n074,04]:= Round(aCols8[n074,04],2) //outros acrescimos sobre importacao
  5119. aCols8[n075,04]:= Round(aCols8[n073,04]+aCols8[n074,04],2) //total das operacoes de importacao
  5120. aCols8[n076,04]:= Round(aCols5[n010_05,04],2) //total das entradas no periodo
  5121. aCols8[n077,04]:= Iif(aCols8[n076,04]>0,Round(((aCols8[n075,04]/aCols8[n076,04])*100),2),0) //percentual das operacoes de importacao
  5122. aCols8[n078,04]:= Round(aCols8[n078,04],2) //ICMS sobre importacao
  5123. aCols8[n079,04]:= Iif(aCols8[n077,04]<30,0,Round(((aCols8[n076,04]*(aCols8[n077,04]-30))/100),2)) //mercadorias importadas excedentes
  5124. aCols8[n080,04]:= Iif(aCols8[n075,04]<=0,0,Round((aCols8[n078,04]*(aCols8[n079,04]/aCols8[n075,04])),2))//ICMS sobre importacao excedente
  5125. aCols8[n081,04]:= Round(((aCols8[n080,04]*aCols8[n022,04])/100),2) //ICMS sobre importacao excedente nao sujeito a incentivo
  5126. aCols8[n082,04]:= Round(aCols8[n078,04]-aCols8[n080,04],2) //ICMS sobre importacao sujeito a incentivo
  5127. aCols8[n083,04]:= Round(((aCols8[n078,04]*(100-aCols8[022,04]))/100),2) //ICMS sobre importacao da parcela nao financiada
  5128. aCols8[n084,04]:= Round(aCols8[n081,04]+aCols8[n083,04],2) //saldo do ICMS sobre importacao a pagar
  5129. Endif
  5130. Endif
  5131. Elseif lApurBA
  5132. //谀哪哪哪哪哪哪哪哪哪哪哪目
  5133. //矱xportacoes ?
  5134. //滥哪哪哪哪哪哪哪哪哪哪哪馁
  5135. n001:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="001"}) //por saidas com debito do imposto
  5136. n002:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="002"}) //outros debitos
  5137. n003:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="003"}) //estorno de creditos
  5138. n004:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="004"}) //Total das saidas
  5139. n005:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="005"}) //entradas com credito do imposto
  5140. n006:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="006"}) //outros creditos
  5141. n007:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="007"}) //estorno de debitos
  5142. n008:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="008"}) //Sub-total das entradas
  5143. n009:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="009"}) //Saldo credor do periodo anterior
  5144. n010:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="010"}) //Total das entradas
  5145. n011:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="011"}) //Saldo devedor
  5146. n012:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="012"}) //deducoes
  5147. n013:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="013"}) //imposto a recolher
  5148. n014:= Ascan(if(lFirst,aCols8,aCols),{|x|x[1]=="014"}) //Saldo Credor
  5149.  
  5150. //Totalizacao das linhas expandidas
  5151. a953TotLin(n002,"002",lFirst,aCols8)
  5152. a953TotLin(n003,"003",lFirst,aCols8)
  5153. a953TotLin(n006,"006",lFirst,aCols8)
  5154. a953TotLin(n007,"007",lFirst,aCols8)
  5155. a953TotLin(n012,"012",lFirst,aCols8)
  5156.  
  5157. If !lFirst
  5158. If ReadVar() =="M->NVALOR"
  5159. nLin001 := if(aCols[n,1]==aCols[n001,1],M->NVALOR,aCols[n001,4])
  5160. nLin005 := if(aCols[n,1]==aCols[n005,1],M->NVALOR,aCols[n005,4])
  5161. nLin009 := if(aCols[n,1]==aCols[n009,1],M->NVALOR,aCols[n009,4])
  5162. Elseif empty(ReadVar())
  5163. nLin001 := aCols[n001,4]
  5164. nLin005 := aCols[n005,4]
  5165. nLin009 := aCols[n009,4]
  5166. Endif
  5167. nLin002 := aCols[n002,4]
  5168. nLin003 := aCols[n003,4]
  5169. nLin006 := aCols[n006,4]
  5170. nLin007 := aCols[n007,4]
  5171. nLin012 := aCols[n012,4]
  5172.  
  5173. aCols[n004,04] := nLin001+nLin002+nLin003 //total saidas
  5174. aCols[n008,04] := nLin005+nLin006+nLin007 //sub-total entradas
  5175. aCols[n010,04] := aCols[n008,4]+nLin009 //total entradas
  5176. 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 )
  5177. aCols[n013,04] := if(aCols[n011,4]-nLin012>=0,aCols[n011,4]-nLin012,0) //Imposto a recolher( 011-012 )
  5178. 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 )
  5179. Else
  5180. aCols8[n004,04]:= aCols8[n001,4]+aCols8[n002,4]+aCols8[n003,4] //total saidas
  5181. aCols8[n008,04]:= aCols8[n005,4]+aCols8[n006,4]+aCols8[n007,4] //sub-total entradas
  5182. aCols8[n010,04]:= aCols8[n008,4]+aCols8[n009,4] //total entradas
  5183. aCols8[n011,04]:= if((aCols8[n004,4]-n002Cons)-aCols8[n010,4]>=0,(aCols8[n004,4]-n002Cons)-aCols8[n010,4],0) //Saldo Devedor( 004-010 )
  5184. aCols8[n013,04]:= if(aCols8[n011,4]-aCols8[n012,4]>=0,aCols8[n011,4]-aCols8[n012,4],0) //Imposto a recolher( 011-012 )
  5185. 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 )
  5186. Endif
  5187. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪目
  5188. //砄utras hipoteses ?
  5189. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  5190. n001 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="001"}) //por saidas com debito do imposto
  5191. n002 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="002"}) //outros debitos
  5192. n003 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="003"}) //estorno de creditos
  5193. n004 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="004"}) //Total das saidas
  5194. n005 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="005"}) //entradas com credito do imposto
  5195. n006 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="006"}) //outros creditos
  5196. n007 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="007"}) //estorno de debitos
  5197. n008 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="008"}) //Sub-total das entradas
  5198. n009 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="009"}) //Saldo credor do periodo anterior
  5199. n010 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="010"}) //Total das entradas
  5200. n011 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="011"}) //Saldo devedor
  5201. n012 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="012"}) //deducoes
  5202. n013 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="013"}) //imposto a recolher
  5203. n014 := Ascan(if(lFirst,aCols9,aCols),{|x|x[1]=="014"}) //Saldo Credor
  5204.  
  5205. //Totalizacao das linhas expandidas
  5206. a953TotLin(n002,"002",lFirst,aCols9)
  5207. a953TotLin(n003,"003",lFirst,aCols9)
  5208. a953TotLin(n006,"006",lFirst,aCols9)
  5209. a953TotLin(n007,"007",lFirst,aCols9)
  5210. a953TotLin(n012,"012",lFirst,aCols9)
  5211.  
  5212. If !lFirst
  5213. if ReadVar() =="M->NVALOR"
  5214. nLin001 := if(aCols[n,1]==aCols[n001,1],M->NVALOR,aCols[n001,4])
  5215. nLin005 := if(aCols[n,1]==aCols[n005,1],M->NVALOR,aCols[n005,4])
  5216. nLin009 := if(aCols[n,1]==aCols[n009,1],M->NVALOR,aCols[n009,4])
  5217. Elseif empty(ReadVar())
  5218. nLin001 := aCols[n001,4]
  5219. nLin005 := aCols[n005,4]
  5220. nLin009 := aCols[n009,4]
  5221. Endif
  5222. nLin002 := aCols[n002,4]
  5223. nLin003 := aCols[n003,4]
  5224. nLin006 := aCols[n006,4]
  5225. nLin007 := aCols[n007,4]
  5226. nLin012 := aCols[n012,4]
  5227.  
  5228. aCols[n004,04] := nLin001+nLin002+nLin003 //total saidas
  5229. aCols[n008,04] := nLin005+nLin006+nLin007 //sub-total entradas
  5230. aCols[n010,04] := aCols[n008,4]+nLin009 //total entradas
  5231. 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 )
  5232. aCols[n013,04] := if(aCols[n011,4]-nLin012>=0,aCols[n011,4]-nLin012,0) //Imposto a recolher( 011-012 )
  5233. 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 )
  5234. Else
  5235. aCols9[n004,04]:= aCols9[n001,4]+aCols9[n002,4]+aCols9[n003,4] //total saidas
  5236. aCols9[n008,04]:= aCols9[n005,4]+aCols9[n006,4]+aCols9[n007,4] //sub-total entradas
  5237. aCols9[n010,04]:= aCols9[n008,4]+aCols9[n009,4] //total entradas
  5238. aCols9[n011,04]:= if((aCols9[n004,4]-n002Cons)-aCols9[n010,4]>=0,(aCols9[n004,4]-n002Cons)-aCols9[n010,4],0) //Saldo Devedor( 004-010 )
  5239. aCols9[n013,04]:= if(aCols9[n011,4]-aCols9[n012,4]>=0,aCols9[n011,4]-aCols9[n012,4],0) //Imposto a recolher( 011-012 )
  5240. 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 )
  5241. Endif
  5242. ElseIf lDebEsp
  5243.  
  5244. n900:= Ascan(if(lFirst,aCols10,aCols),{|x|x[1]=="900"}) //Saldo Credor
  5245. n901:= Ascan(if(lFirst,aCols10,aCols),{|x|x[1]=="901"}) //Saldo Credor
  5246.  
  5247. //Totalizacao das linhas expandidas
  5248. a953TotLin(n900,"900",lFirst,aCols10)
  5249. a953TotLin(n901,"901",lFirst,aCols10)
  5250.  
  5251. ElseIf lDifal
  5252.  
  5253. n001 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="001"}) //por saidas com debito do imposto
  5254. n002 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="002"}) //por saidas com debito do imposto
  5255. n003 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="003"}) //por saidas com debito do imposto
  5256. n004 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="004"}) //por saidas com debito do imposto
  5257. n005 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="005"}) //por saidas com debito do imposto
  5258. n006 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="006"}) //por saidas com debito do imposto
  5259. n007 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="007"}) //por saidas com debito do imposto
  5260. n008 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="008"}) //por saidas com debito do imposto
  5261. n009 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="009"}) //por saidas com debito do imposto
  5262. n010 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="010"}) //por saidas com debito do imposto
  5263. n011 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="011"}) //por saidas com debito do imposto
  5264. n012 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="012"}) //por saidas com debito do imposto
  5265. n013 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="013"}) //por saidas com debito do imposto
  5266. n014 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="014"}) //por saidas com debito do imposto
  5267. n015 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="015"}) //por saidas com debito do imposto
  5268. n016 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="016"}) //por saidas com debito do imposto
  5269. n017 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="017"}) //por saidas com debito do imposto
  5270.  
  5271. If Year(dDtIni) >= 2017
  5272. n018 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="018"}) //por saidas com debito do imposto
  5273. n019 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="019"}) //por saidas com debito do imposto
  5274. n020 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="020"}) //por saidas com debito do imposto
  5275. n021 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="021"}) //por saidas com debito do imposto
  5276. n022 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="022"}) //por saidas com debito do imposto
  5277. n023 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="023"}) //por saidas com debito do imposto
  5278. n024 := Ascan(if(lFirst,aCols13,aCols),{|x|x[1]=="024"}) //por saidas com debito do imposto
  5279. Endif
  5280.  
  5281. a953TotLin(n002,"002",lFirst,aCols13)
  5282. a953TotLin(n003,"003",lFirst,aCols13)
  5283. a953TotLin(n006,"006",lFirst,aCols13)
  5284. a953TotLin(n007,"007",lFirst,aCols13)
  5285. a953TotLin(n009,"009",lFirst,aCols13)
  5286. a953TotLin(n012,"012",lFirst,aCols13)
  5287.  
  5288. If Year(dDtIni) >= 2017
  5289. a953TotLin(n014,"014",lFirst,aCols13)
  5290. a953TotLin(n015,"015",lFirst,aCols13)
  5291. a953TotLin(n017,"017",lFirst,aCols13)
  5292. a953TotLin(n018,"018",lFirst,aCols13)
  5293. a953TotLin(n019,"019",lFirst,aCols13)
  5294. a953TotLin(n021,"021",lFirst,aCols13)
  5295. a953TotLin(n024,"024",lFirst,aCols13)
  5296. Endif
  5297. if ReadVar() =="M->NVALOR"
  5298. nLin001 := if(aCols[n,1]==aCols[n001,1],M->NVALOR,aCols[n001,4])
  5299. nLin002 := if(aCols[n,1]==aCols[n002,1],M->NVALOR,aCols[n002,4])
  5300. nLin003 := if(aCols[n,1]==aCols[n003,1],M->NVALOR,aCols[n003,4])
  5301. nLin004 := if(aCols[n,1]==aCols[n004,1],M->NVALOR,aCols[n004,4])
  5302. nLin005 := if(aCols[n,1]==aCols[n005,1],M->NVALOR,aCols[n005,4])
  5303. nLin006 := if(aCols[n,1]==aCols[n006,1],M->NVALOR,aCols[n006,4])
  5304. nLin007 := if(aCols[n,1]==aCols[n007,1],M->NVALOR,aCols[n007,4])
  5305. nLin008 := if(aCols[n,1]==aCols[n008,1],M->NVALOR,aCols[n008,4])
  5306. nLin009 := if(aCols[n,1]==aCols[n009,1],M->NVALOR,aCols[n009,4])
  5307. nLin010 := if(aCols[n,1]==aCols[n010,1],M->NVALOR,aCols[n010,4])
  5308. nLin011 := 0
  5309. nLin012 := if(aCols[n,1]==aCols[n012,1],M->NVALOR,aCols[n012,4])
  5310. nLin013 := if(aCols[n,1]==aCols[n013,1],M->NVALOR,aCols[n013,4])
  5311. nLin014 := if(aCols[n,1]==aCols[n014,1],M->NVALOR,aCols[n014,4])
  5312. nLin015 := if(aCols[n,1]==aCols[n015,1],M->NVALOR,aCols[n015,4])
  5313. nLin016 := if(aCols[n,1]==aCols[n016,1],M->NVALOR,aCols[n016,4])
  5314. nLin017 := 0
  5315. If Year(dDtIni) >= 2017
  5316. nLin017 := if(aCols[n,1]==aCols[n017,1],M->NVALOR,aCols[n017,4])
  5317. nLin018 := if(aCols[n,1]==aCols[n018,1],M->NVALOR,aCols[n018,4])
  5318. nLin019 := if(aCols[n,1]==aCols[n019,1],M->NVALOR,aCols[n019,4])
  5319. nLin020 := if(aCols[n,1]==aCols[n020,1],M->NVALOR,aCols[n020,4])
  5320. nLin021 := if(aCols[n,1]==aCols[n021,1],M->NVALOR,aCols[n021,4])
  5321. nLin022 := if(aCols[n,1]==aCols[n022,1],M->NVALOR,aCols[n022,4])
  5322. nLin023 := 0
  5323. nLin024 := if(aCols[n,1]==aCols[n024,1],M->NVALOR,aCols[n024,4])
  5324. Endif
  5325. Elseif empty(ReadVar())
  5326. nLin001 := aCols[n001,4]
  5327. nLin002 := aCols[n002,4]
  5328. nLin003 := aCols[n003,4]
  5329. nLin004 := aCols[n004,4]
  5330. nLin005 := aCols[n005,4]
  5331. nLin006 := aCols[n006,4]
  5332. nLin007 := aCols[n007,4]
  5333. nLin008 := aCols[n008,4]
  5334. nLin009 := aCols[n009,4]
  5335. nLin010 := aCols[n010,4]
  5336. nLin011 := 0
  5337. nLin012 := aCols[n012,4]
  5338. nLin013 := aCols[n013,4]
  5339. nLin014 := aCols[n014,4]
  5340. nLin015 := aCols[n015,4]
  5341. nLin016 := aCols[n016,4]
  5342. nLin017 := 0
  5343.  
  5344. If Year(dDtIni) >= 2017
  5345. nLin017 := if(aCols[n,1]==aCols[n017,1],M->NVALOR,aCols[n017,4])
  5346. nLin018 := if(aCols[n,1]==aCols[n018,1],M->NVALOR,aCols[n018,4])
  5347. nLin019 := if(aCols[n,1]==aCols[n019,1],M->NVALOR,aCols[n019,4])
  5348. nLin020 := if(aCols[n,1]==aCols[n020,1],M->NVALOR,aCols[n020,4])
  5349. nLin021 := if(aCols[n,1]==aCols[n021,1],M->NVALOR,aCols[n021,4])
  5350. nLin022 := if(aCols[n,1]==aCols[n022,1],M->NVALOR,aCols[n022,4])
  5351. nLin023 := 0
  5352. nLin024 := if(aCols[n,1]==aCols[n024,1],M->NVALOR,aCols[n024,4])
  5353. Endif
  5354. Endif
  5355. nLin008 := (nLin001+nLin002+nLin003) - (nLin004+nLin005+nLin006+nLin007) // Saldo Devedor de DIFAL
  5356. nLin010 := nLin008 - nLin009 //VAlor a recolher do Difal
  5357.  
  5358. If Year(dDtIni) < 2017
  5359. nLin016 := nLin013 - (nLin014+nLin015)
  5360. Else
  5361. nLin020 := (nLin013+nLin014+nLin015) - (nLin016+nLin017+nLin018+nLin019) // Saldo Devedor de FCP
  5362. nLin022 := nLin020 - nLin021 //VAlor a recolher do FCP
  5363. Endif
  5364.  
  5365. If nLin008 < 0
  5366. nLin011 += nLin008 * -1
  5367. nLin008 := 0
  5368. nLin011 += nLin009
  5369. nLin010 := 0
  5370. ElseIF nLin010 < 0
  5371. nLin011 += nLin010 * -1
  5372. nLin010 := 0
  5373. EndIF
  5374.  
  5375. aCols[n008,04] := nLin008//saldo devedor difal //20
  5376. aCols[n010,04] := nLin010 //valor recolher difal //22
  5377. aCols[n011,04] := nLin011 //saldo credor difal //23
  5378.  
  5379. If Year(dDtIni) < 2017
  5380. IF nLin016 < 0
  5381. nLin017 += nLin016
  5382. nLin016 := 0
  5383. EndIF
  5384. aCols[n016,04] := nLin016//Valor a recolher FECP
  5385. aCols[n017,04] := nLin017 //Saldo credor Fecp
  5386. Else
  5387. If nLin020 < 0
  5388. nLin023 += nLin020 * -1
  5389. nLin020 := 0
  5390. nLin023 += nLin021
  5391. nLin022 := 0
  5392. ElseIF nLin022 < 0
  5393. nLin023 += nLin022 * -1
  5394. nLin022 := 0
  5395. EndIF
  5396. aCols[n020,04] := nLin020 //saldo devedor FCP
  5397. aCols[n022,04] := nLin022 //Valor a recolher FECP
  5398. aCols[n023,04] := nLin023 //Saldo credor Fecp
  5399. Endif
  5400.  
  5401. Else
  5402. n001 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="001"}) //por saidas com debito do imposto
  5403. n002 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="002"}) //outros debitos
  5404. n003 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="003"}) //estorno de creditos
  5405. n004 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="004"}) //Total das saidas
  5406. n005 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="005"}) //entradas com credito do imposto
  5407. n006 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="006"}) //outros creditos
  5408. n007 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="007"}) //estorno de debitos
  5409. n008 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="008"}) //Sub-total das entradas
  5410. n009 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="009"}) //Saldo credor do periodo anterior
  5411. n010 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="010"}) //Total das entradas
  5412. n011 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="011"}) //Saldo devedor
  5413. n012 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="012"}) //deducoes
  5414. n013 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="013"}) //imposto a recolher
  5415. n014 := Ascan(if(lFirst,aCols5,aCols),{|x|x[1]=="014"}) //Saldo Credor
  5416.  
  5417. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  5418. //砊otalizacao das linhas expandidas?
  5419. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? a953TotLin(n002,"002",lFirst,aCols5)
  5420. a953TotLin(n003,"003",lFirst,aCols5)
  5421. a953TotLin(n006,"006",lFirst,aCols5)
  5422. a953TotLin(n007,"007",lFirst,aCols5)
  5423. a953TotLin(n012,"012",lFirst,aCols5)
  5424. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  5425. //矱storno RICMS-DF Inciso V art. 60 Decreto 18.955?
  5426. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  5427. If GetMv("MV_ESTADO") == "DF"
  5428. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  5429. //矯riado parametro MV_GESTCRE que permite ao usuario que o estorno de credito nao?
  5430. //硈eja realizado automaticamente pelo sistema. ?
  5431. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If GetNewPar("MV_GESTCRE",.T.)
  5432. aCols5[6][4]+=ProcRICMDF(dDtIni,dDtFim)
  5433. EndIf
  5434. EndIf
  5435.  
  5436. if !lFirst
  5437. if ReadVar() =="M->NVALOR"
  5438. nLin001 := if(aCols[n,1]==aCols[n001,1],M->NVALOR,aCols[n001,4])
  5439. nLin005 := if(aCols[n,1]==aCols[n005,1],M->NVALOR,aCols[n005,4])
  5440. nLin009 := if(aCols[n,1]==aCols[n009,1],M->NVALOR,aCols[n009,4])
  5441. Elseif empty(ReadVar())
  5442. nLin001 := aCols[n001,4]
  5443. nLin005 := aCols[n005,4]
  5444. nLin009 := aCols[n009,4]
  5445. Endif
  5446. nLin002 := aCols[n002,4]
  5447. nLin003 := aCols[n003,4]
  5448. nLin006 := aCols[n006,4]
  5449. nLin007 := aCols[n007,4]
  5450. nLin012 := aCols[n012,4]
  5451.  
  5452. aCols[n004,04] := nLin001+nLin002+nLin003 //total saidas
  5453. aCols[n008,04] := nLin005+nLin006+nLin007 //sub-total entradas
  5454. aCols[n010,04] := aCols[n008,4]+nLin009 //total entradas
  5455. 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 )
  5456. aCols[n013,04] := if(aCols[n011,4]-nLin012>=0,aCols[n011,4]-nLin012,0) //Imposto a recolher( 011-012 )
  5457. 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 )
  5458.  
  5459. nPosRecST := Ascan(aCols6,{|x|x[1]=="015"}) //imposto a recolher Substituicao Tributaria
  5460. nVlrTitulo := aCols[n013,4]+aCols6[nPosRecST,4]
  5461.  
  5462. Else
  5463. aCols5[n004,04]:= aCols5[n001,4]+aCols5[n002,4]+aCols5[n003,4] //total saidas
  5464. aCols5[n008,04]:= aCols5[n005,4]+aCols5[n006,4]+aCols5[n007,4] //sub-total entradas
  5465. aCols5[n010,04]:= aCols5[n008,4]+aCols5[n009,4] //total entradas
  5466. aCols5[n011,04]:= if((aCols5[n004,4]-n002Cons)-aCols5[n010,4]>=0,(aCols5[n004,4]-n002Cons)-aCols5[n010,4],0) //Saldo Devedor( 004-010 )
  5467.  
  5468. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  5469. //矨tualizacao do valor das deducoes|
  5470. //硆eferente a lei 4533 - RJ |
  5471. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If SuperGetMv("MV_ESTADO") == "RJ" .And. GetNewPar("MV_REGESP",0) > 0
  5472. nValAtu := If(aCols5[n011,4]-aCols5[n012,4]>=0,aCols5[n011,4]-aCols5[n012,4],0)
  5473. aCols5[n012,4] := nValAtu
  5474. Endif
  5475.  
  5476. aCols5[n013,04]:= if(aCols5[n011,4]-aCols5[n012,4]>=0,aCols5[n011,4]-aCols5[n012,4],0) //Imposto a recolher( 011-012 )
  5477. If lArt488MG
  5478. aCols5[n013,04] := aCols5[n013,04] - nVlrArt488MG
  5479. Endif
  5480. 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 )
  5481.  
  5482. nPosRecST := Ascan(aCols6,{|x|x[1]=="015"}) //imposto a recolher Substituicao Tributaria
  5483. nVlrTitulo := aCols5[n013,4]+aCols6[nPosRecST,4]
  5484.  
  5485. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  5486. //矨tualizacao do valor das deducoes|
  5487. //?referente a lei 4533 - RJ |
  5488. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If SuperGetMv("MV_ESTADO") == "RJ" .And. GetNewPar("MV_REGESP",0) > 0
  5489. For n01202 := 1 to Len(aCols5)
  5490. If Alltrim(aCols5[n01202][2])=="012.02" //Deducoes - Conforme Lei 4533 de 04/04/05
  5491. aCols5[n01202][4] := nValAtu
  5492. Exit
  5493. Endif
  5494. Next
  5495. Endif
  5496. Endif
  5497.  
  5498. // Incentivos Fiscais
  5499. If !lFirst .And. !lST .And. !lFomentar .And. !lApurBA .And. !lDebEsp .And. !lArt488MG
  5500. // -- DESENVOLVE BA --
  5501. If !Empty( aMvDes ) .And. GetNewPar( 'MV_ESTADO' ) == 'BA'
  5502. If aScan( aCols , { |x| Alltrim(x[2]) == aMvDes[8] } ) > 0
  5503. aCols[ aScan( aCols , { |x| Alltrim(x[2]) == aMvDes[ 8 ] } ) , 4 ] := ( ( nAuxIncent + aCols[ n011 , 4 ] ) * aMvDes[ 2 ] ) / 100
  5504. a953TotLin( n012 , "012" , lFirst , aCols )
  5505. nLin012 := aCols[ n012 , 4 ]
  5506. aCols[ n013 , 04 ] := if( aCols[ n011 , 4 ] - nLin012 >= 0 , aCols[ n011 , 4 ] - nLin012 , 0 ) //Imposto a recolher( 011-012 )
  5507. Endif
  5508. // -- PRODEC SC --
  5509. Elseif !Empty( aMvPrdc ) .And. GetNewPar( 'MV_ESTADO' ) == 'SC'
  5510. If aScan( aCols, { |x| Alltrim(x[2]) == aMvPrdc[8] } ) > 0
  5511. aCols[ aScan( aCols, { |x| Alltrim(x[2]) == aMvPrdc[ 8 ] } ) , 4 ] := ( aCols[n011,4] * aMvPrdc[ 2 ] ) / 100
  5512. a953TotLin( n012 , "012" , lFirst , aCols )
  5513. nLin012 := aCols[ n012 , 4 ]
  5514. aCols[ n013 , 04 ] := if( aCols[ n011 , 4 ] - nLin012 >= 0 , aCols[ n011 , 4 ] - nLin012 , 0 ) //Imposto a recolher( 011-012 )
  5515. Endif
  5516. Endif
  5517. Endif
  5518.  
  5519. Endif
  5520. Return(.t. )
  5521. /*/
  5522. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  5523. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  5524. 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  5525. 北篎unction 矨ddCols 篈utor 矨ndreia dos Santos ?Data ? 13/08/01罕?
  5526. 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  5527. 北篋esc. ?Adiciona linha no acols para "outros Debitos","outros credi罕?
  5528. 北? 硉os","Estorno de debitos","Estorno de debitos","Deducoes" e 罕?
  5529. 北? ?Debitos Especiais" 罕?
  5530. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  5531. 北砇etorno 砃enhum 潮?
  5532. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  5533. 北砅arametros矱xpN1: GetDados 潮?
  5534. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  5535. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  5536. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  5537. Static Function AddAcols(oGetDad)
  5538. Local i, nPos
  5539. Local cTipo
  5540. Local nPosl := len(aCols[1])
  5541. Local cLinha := ''
  5542.  
  5543. If oGetDad <> NIL
  5544. If !LGERDIFAL //Apura玢o detalhada do DIFAL est?acionada
  5545. If lProcDifal
  5546. Do case
  5547. Case aCols[n][1] == "002" .and. alltrim(aCols[n][2]) =="002.00" ; cLinha := aCols[n][1]
  5548. Case aCols[n][1] == "003" .and. alltrim(aCols[n][2]) =="003.00" ; cLinha := aCols[n][1]
  5549. Case aCols[n][1] == "006" .and. alltrim(aCols[n][2]) =="006.00" ; cLinha := aCols[n][1]
  5550. Case aCols[n][1] == "007" .and. alltrim(aCols[n][2]) =="007.00" ; cLinha := aCols[n][1]
  5551. Case aCols[n][1] == "009" .and. alltrim(aCols[n][2]) =="009.00" ; cLinha := aCols[n][1]
  5552. Case aCols[n][1] == "012" .and. alltrim(aCols[n][2]) =="012.00" ; cLinha := aCols[n][1]
  5553.  
  5554. //FECP
  5555. Case aCols[n][1] == "014" .and. alltrim(aCols[n][2]) =="014.00" ; cLinha := aCols[n][1]
  5556. Case aCols[n][1] == "015" .and. alltrim(aCols[n][2]) =="015.00" ; cLinha := aCols[n][1]
  5557. Case aCols[n][1] == "018" .and. alltrim(aCols[n][2]) =="018.00" ; cLinha := aCols[n][1]
  5558. Case aCols[n][1] == "019" .and. alltrim(aCols[n][2]) =="019.00" ; cLinha := aCols[n][1]
  5559. Case aCols[n][1] == "021" .and. alltrim(aCols[n][2]) =="021.00" ; cLinha := aCols[n][1]
  5560. Case aCols[n][1] == "024" .and. alltrim(aCols[n][2]) =="024.00" ; cLinha := aCols[n][1]
  5561. EndCase
  5562.  
  5563. IF !Empty(cLinha)
  5564. nPos := n-1
  5565. Aeval(aCols,{|x| if(x[1]==cLinha .and. x[nPosl]==.F.,nPos++,)})
  5566. nPos++
  5567. aCols := Asize(aCols,Len(aCols)+1)
  5568. aCols := Ains(aCols,nPos)
  5569. aCols[nPos] := Array(Len(aHeader)+1)
  5570.  
  5571. For i := 1 To Len(aHeader)
  5572. cTipo := aHeader[i][8]
  5573. If cTipo $ "CM"
  5574. aCols[nPos][i] := Space(aHeader[i][4])
  5575. ElseIf cTipo == "N"
  5576. aCols[nPos][i] := 0
  5577. ElseIf cTipo == "L"
  5578. aCols[nPos][i] := .F.
  5579. ElseIf cTipo == "D"
  5580. aCols[nPos][i] := Ctod("")
  5581. EndIf
  5582. Next
  5583. aCols[nPos][1] := cLinha
  5584. aCols[nPos][7] := '2'+'-MANUAL'
  5585. aCols[nPos][Len(aHeader)+1] := .F.
  5586. oGetDad:GOTO(nPos)
  5587. Eval(oGetDad:obrowse:bDrawSelect)
  5588. EndIF
  5589. EndIf
  5590.  
  5591. ElseIf aCols[n][1] == "002" .and. alltrim(aCols[n][2]) =="002.00"
  5592. nPos := n-1
  5593. Aeval(aCols,{|x| if(x[1]=="002" .and. x[nPosl]==.F.,nPos++,)})
  5594. nPos++
  5595. aCols := Asize(aCols,Len(aCols)+1)
  5596. aCols := Ains(aCols,nPos)
  5597. aCols[nPos] := Array(Len(aHeader)+1)
  5598.  
  5599. For i := 1 To Len(aHeader)
  5600. cTipo := aHeader[i][8]
  5601. If cTipo $ "CM"
  5602. aCols[nPos][i] := Space(aHeader[i][4])
  5603. ElseIf cTipo == "N"
  5604. aCols[nPos][i] := 0
  5605. ElseIf cTipo == "L"
  5606. aCols[nPos][i] := .F.
  5607. ElseIf cTipo == "D"
  5608. aCols[nPos][i] := Ctod("")
  5609. EndIf
  5610. Next
  5611. aCols[nPos][1] := "002"
  5612. If SuperGetMv("MV_USASPED",,.T.)
  5613. aCols[nPos][8] := "M"
  5614. aCols[nPos][Len(aHeader)+1] := .F.
  5615. Else
  5616. aCols[nPos][Len(aHeader)+1] := .F.
  5617. EndIf
  5618. oGetDad:GOTO(nPos)
  5619. Eval(oGetDad:obrowse:bDrawSelect)
  5620. elseIf aCols[n][1] == "003" .and. alltrim(aCols[n][2]) =="003.00"
  5621. nPos := n-1
  5622. Aeval(aCols,{|x| if(x[1]=="003" .and. x[nPosl]==.F.,nPos++,)})
  5623. nPos++
  5624. aCols := Asize(aCols,Len(aCols)+1)
  5625. aCols := Ains(aCols,nPos)
  5626. aCols[nPos] := Array(Len(aHeader)+1)
  5627.  
  5628. For i := 1 To Len(aHeader)
  5629. cTipo := aHeader[i][8]
  5630. If cTipo $ "CM"
  5631. aCols[nPos][i] := Space(aHeader[i][4])
  5632. ElseIf cTipo == "N"
  5633. aCols[nPos][i] := 0
  5634. ElseIf cTipo == "L"
  5635. aCols[nPos][i] := .F.
  5636. ElseIf cTipo == "D"
  5637. aCols[nPos][i] := Ctod("")
  5638. EndIf
  5639. Next
  5640. aCols[nPos][1] := "003"
  5641. aCols[nPos][Len(aHeader)+1] := .F.
  5642. oGetDad:GOTO(nPos)
  5643. Eval(oGetDad:obrowse:bDrawSelect)
  5644. ElseIf aCols[n][1] == "006" .and. alltrim(aCols[n][2]) =="006.00"
  5645. nPos := n-1
  5646. Aeval(aCols,{|x| if(x[1]=="006" .and. x[nPosl]==.F.,nPos++,)})
  5647. nPos++
  5648. aCols := Asize(aCols,Len(aCols)+1)
  5649. aCols := Ains(aCols,nPos)
  5650. aCols[nPos] := Array(Len(aHeader)+1)
  5651.  
  5652. For i := 1 To Len(aHeader)
  5653. cTipo := aHeader[i][8]
  5654. If cTipo $ "CM"
  5655. aCols[nPos][i] := Space(aHeader[i][4])
  5656. ElseIf cTipo == "N"
  5657. aCols[nPos][i] := 0
  5658. ElseIf cTipo == "L"
  5659. aCols[nPos][i] := .F.
  5660. ElseIf cTipo == "D"
  5661. aCols[nPos][i] := Ctod("")
  5662. EndIf
  5663. Next
  5664. aCols[nPos][1] := "006"
  5665. //Conforme FNC 11560/2012
  5666. //Tratado somente para Outros Creditos para RegE111 e RegE113 do SpedFiscal
  5667. If SuperGetMv("MV_USASPED",,.T.)
  5668. aCols[nPos][8] := "M"
  5669. aCols[nPos][Len(aHeader)+1] := .F.
  5670. Else
  5671. aCols[nPos][7] := .F.
  5672. EndIf
  5673. oGetDad:GOTO(nPos)
  5674. Eval(oGetDad:obrowse:bDrawSelect)
  5675. ElseIf aCols[n][1] == "007" .and. alltrim(aCols[n][2]) =="007.00"
  5676. nPos := n-1
  5677. Aeval(aCols,{|x| if(x[1]=="007" .and. x[nPosl]==.F.,nPos++,)})
  5678. nPos++
  5679. aCols := Asize(aCols,Len(aCols)+1)
  5680. aCols := Ains(aCols,nPos)
  5681. aCols[nPos] := Array(Len(aHeader)+1)
  5682.  
  5683. For i := 1 To Len(aHeader)
  5684. cTipo := aHeader[i][8]
  5685. If cTipo $ "CM"
  5686. aCols[nPos][i] := Space(aHeader[i][4])
  5687. ElseIf cTipo == "N"
  5688. aCols[nPos][i] := 0
  5689. ElseIf cTipo == "L"
  5690. aCols[nPos][i] := .F.
  5691. ElseIf cTipo == "D"
  5692. aCols[nPos][i] := Ctod("")
  5693. EndIf
  5694. Next
  5695. aCols[nPos][1] := "007"
  5696. //Conforme FNC 11560/2012
  5697. //Tratado somente para Outros Creditos para RegE111 e RegE113 do SpedFiscal
  5698. If SuperGetMv("MV_USASPED",,.T.)
  5699. aCols[nPos][8] := "M"
  5700. aCols[nPos][Len(aHeader)+1] := .F.
  5701. Else
  5702. aCols[nPos][Len(aHeader)+1] := .F.
  5703. EndIf
  5704. oGetDad:GOTO(nPos)
  5705. Eval(oGetDad:obrowse:bDrawSelect)
  5706. ElseIf aCols[n][1] == "008" .and. alltrim(aCols[n][2]) =="008.00"
  5707. nPos := n-1
  5708. Aeval(aCols,{|x| if(x[1]=="008" .and. x[nPosl]==.F.,nPos++,)})
  5709. nPos++
  5710. aCols := Asize(aCols,Len(aCols)+1)
  5711. aCols := Ains(aCols,nPos)
  5712. aCols[nPos] := Array(Len(aHeader)+1)
  5713.  
  5714. For i := 1 To Len(aHeader)
  5715. cTipo := aHeader[i][8]
  5716. If cTipo $ "CM"
  5717. aCols[nPos][i] := Space(aHeader[i][4])
  5718. ElseIf cTipo == "N"
  5719. aCols[nPos][i] := 0
  5720. ElseIf cTipo == "L"
  5721. aCols[nPos][i] := .F.
  5722. ElseIf cTipo == "D"
  5723. aCols[nPos][i] := Ctod("")
  5724. EndIf
  5725. Next
  5726. aCols[nPos][1] := "008"
  5727. If SuperGetMv("MV_USASPED",,.T.)
  5728. aCols[nPos][8] := "M"
  5729. aCols[nPos][Len(aHeader)+1] := .F.
  5730. Else
  5731. aCols[nPos][Len(aHeader)+1] := .F.
  5732. EndIf
  5733. oGetDad:GOTO(nPos)
  5734. Eval(oGetDad:obrowse:bDrawSelect)
  5735. elseIf aCols[n][1] == "012" .and. alltrim(aCols[n][2]) =="012.00"
  5736. nPos := n-1
  5737. Aeval(aCols,{|x| if(x[1]=="012" .and. x[nPosl]==.F.,nPos++,)})
  5738. nPos++
  5739. aCols := Asize(aCols,Len(aCols)+1)
  5740. aCols := Ains(aCols,nPos)
  5741. aCols[nPos] := Array(Len(aHeader)+1)
  5742.  
  5743. For i := 1 To Len(aHeader)
  5744. cTipo := aHeader[i][8]
  5745. If cTipo $ "CM"
  5746. aCols[nPos][i] := Space(aHeader[i][4])
  5747. ElseIf cTipo == "N"
  5748. aCols[nPos][i] := 0
  5749. ElseIf cTipo == "L"
  5750. aCols[nPos][i] := .F.
  5751. ElseIf cTipo == "D"
  5752. aCols[nPos][i] := Ctod("")
  5753. EndIf
  5754. Next
  5755. aCols[nPos][1] := "012"
  5756. If SuperGetMv("MV_USASPED",,.T.)
  5757. aCols[nPos][8] := "M"
  5758. aCols[nPos][Len(aHeader)+1] := .F.
  5759. Else
  5760. aCols[nPos][Len(aHeader)+1] := .F.
  5761. EndIf
  5762. oGetDad:GOTO(nPos)
  5763. Eval(oGetDad:obrowse:bDrawSelect)
  5764. ElseIf aCols[n][1] == "014" .and. alltrim(aCols[n][2]) =="014.00"
  5765. nPos := n-1
  5766. Aeval(aCols,{|x| if(x[1]=="014" .and. x[nPosl]==.F.,nPos++,)})
  5767. nPos++
  5768. aCols := Asize(aCols,Len(aCols)+1)
  5769. aCols := Ains(aCols,nPos)
  5770. aCols[nPos] := Array(Len(aHeader)+1)
  5771.  
  5772. For i := 1 To Len(aHeader)
  5773. cTipo := aHeader[i][8]
  5774. If cTipo $ "CM"
  5775. aCols[nPos][i] := Space(aHeader[i][4])
  5776. ElseIf cTipo == "N"
  5777. aCols[nPos][i] := 0
  5778. ElseIf cTipo == "L"
  5779. aCols[nPos][i] := .F.
  5780. ElseIf cTipo == "D"
  5781. aCols[nPos][i] := Ctod("")
  5782. EndIf
  5783. Next
  5784. aCols[nPos][1] := "014"
  5785. If SuperGetMv("MV_USASPED",,.T.)
  5786. aCols[nPos][8] := "M"
  5787. aCols[nPos][Len(aHeader)+1] := .F.
  5788. Else
  5789. aCols[nPos][Len(aHeader)+1] := .F.
  5790. EndIf
  5791. oGetDad:GOTO(nPos)
  5792. Eval(oGetDad:obrowse:bDrawSelect)
  5793. elseIf aCols[n][1] == "900" .and. alltrim(aCols[n][2]) =="900.00"
  5794. nPos := n-1
  5795. Aeval(aCols,{|x| if(x[1]=="900" .and. x[nPosl]==.F.,nPos++,)})
  5796. nPos++
  5797. aCols := Asize(aCols,Len(aCols)+1)
  5798. aCols := Ains(aCols,nPos)
  5799. aCols[nPos] := Array(Len(aHeader)+1)
  5800.  
  5801. For i := 1 To Len(aHeader)
  5802. cTipo := aHeader[i][8]
  5803. If cTipo $ "CM"
  5804. aCols[nPos][i] := Space(aHeader[i][4])
  5805. ElseIf cTipo == "N"
  5806. aCols[nPos][i] := 0
  5807. ElseIf cTipo == "L"
  5808. aCols[nPos][i] := .F.
  5809. ElseIf cTipo == "D"
  5810. aCols[nPos][i] := Ctod("")
  5811. EndIf
  5812. Next
  5813. aCols[nPos][1] := "900"
  5814. aCols[nPos][Len(aHeader)+1] := .F.
  5815. oGetDad:GOTO(nPos)
  5816. Eval(oGetDad:obrowse:bDrawSelect)
  5817.  
  5818. elseIf aCols[n][1] == "901" .and. alltrim(aCols[n][2]) =="901.00"
  5819. nPos := n-1
  5820. Aeval(aCols,{|x| if(x[1]=="901" .and. x[nPosl]==.F.,nPos++,)})
  5821. nPos++
  5822. aCols := Asize(aCols,Len(aCols)+1)
  5823. aCols := Ains(aCols,nPos)
  5824. aCols[nPos] := Array(Len(aHeader)+1)
  5825.  
  5826. For i := 1 To Len(aHeader)
  5827. cTipo := aHeader[i][8]
  5828. If cTipo $ "CM"
  5829. aCols[nPos][i] := Space(aHeader[i][4])
  5830. ElseIf cTipo == "N"
  5831. aCols[nPos][i] := 0
  5832. ElseIf cTipo == "L"
  5833. aCols[nPos][i] := .F.
  5834. ElseIf cTipo == "D"
  5835. aCols[nPos][i] := Ctod("")
  5836. EndIf
  5837. Next
  5838. aCols[nPos][1] := "901"
  5839. aCols[nPos][Len(aHeader)+1] := .F.
  5840. oGetDad:GOTO(nPos)
  5841. Eval(oGetDad:obrowse:bDrawSelect)
  5842. EndIf
  5843. Ft953Refre({oGetDad})
  5844. EndIf
  5845.  
  5846. Return
  5847.  
  5848. /*/
  5849. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  5850. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  5851. 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  5852. 北篎uncao 砤953CPO5ALT矨utor 矨ndreia dos Santos ?Data ?3/08/2001潮?
  5853. 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  5854. 北篋esc. 矨tualiza os campos que podem ser alterados a cada troca de 潮?
  5855. 北? 砯older( para a apuracao das operacoes proprias) 潮?
  5856. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  5857. 北砇etorno 砃enhum 潮?
  5858. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  5859. 北砅arametros矱xpN1: GetDados 潮?
  5860. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  5861. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  5862. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  5863. function a953CPO5ALT(oGetDad)
  5864.  
  5865. If empty(aCols[oGetDad:nAt][1]).or. aCols[oGetDad:nAt][1]$"004#008#010#011#013#014"
  5866. oGetDad:aAlter := {}
  5867. oGetDad:oMother:aAlter := {}
  5868. ElseIf aCols[oGetDad:nAt][1]$"002#003#006#007#012#900#901"
  5869. 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"
  5870. oGetDad:aAlter := {}
  5871. oGetDad:oMother:aAlter := {}
  5872. else
  5873. oGetDad:aAlter :={"cCodigo","cDescr","nValor","cGNRE","cClasse","cCodLan"}
  5874. oGetDad:oMother:aAlter :={"cCodigo","cDescr","nValor","cGNRE","cClasse","cCodLan"}
  5875.  
  5876. EndIf
  5877. Else
  5878. oGetDad:aAlter := {"nValor"}
  5879. oGetDad:oMother:aAlter := {"nValor"}
  5880. EndIf
  5881. return .T.
  5882.  
  5883. Function a953CPODIF(oGetDad)
  5884.  
  5885. If !LGERDIFAL //Apura玢o detalhada do difal acionada
  5886. oGetDad:aAlter :={"cCodigo","cDescr","nValor","cCodLan","cGNRE"}
  5887. oGetDad:oMother:aAlter :={"cCodigo","cDescr","nValor","cCodLan","cGNRE"}
  5888. EndIF
  5889.  
  5890. Return .T.
  5891.  
  5892. /*/
  5893. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  5894. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  5895. 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  5896. 北篎uncao 砤953CPO6ALT矨utor 矨ndreia dos Santos ?Data ?3/08/2001潮?
  5897. 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  5898. 北篋esc. 矨tualiza os campos que podem ser alterados a cada troca de 潮?
  5899. 北? 砯older( para a apuracao de substituicao tributaria) 潮?
  5900. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  5901. 北砇etorno 砃enhum 潮?
  5902. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  5903. 北砅arametros矱xpN1: GetDados 潮?
  5904. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  5905. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  5906. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  5907. function a953CPO6ALT(oGetDad)
  5908.  
  5909. If empty(aCols[oGetDad:nAt][1]).or. aCols[oGetDad:nAt][1]$"005#010#012#013#015#016"
  5910. oGetDad:aAlter := {}
  5911. oGetDad:oMother:aAlter := {}
  5912. ElseIf aCols[oGetDad:nAt][1]$"002#003#007#008#014"
  5913. 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"
  5914. oGetDad:aAlter := {}
  5915. oGetDad:oMother:aAlter := {}
  5916. else
  5917. oGetDad:aAlter :={"cCodigo","cDescr","nValor","cGNRE","cClasse","cCodLan"}
  5918. oGetDad:oMother:aAlter :={"cCodigo","cDescr","nValor","cGNRE","cClasse","cCodLan"}
  5919. EndIf
  5920. Else
  5921. oGetDad:aAlter := {"nValor"}
  5922. oGetDad:oMother:aAlter := {"nValor"}
  5923. EndIf
  5924. return .T.
  5925. /*/
  5926. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  5927. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  5928. 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  5929. 北篎uncao 砤953CPO8ALT矨utor 矻uciana Pires ?Data ?21/08/08 潮?
  5930. 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  5931. 北篋esc. 矨tualiza os campos que podem ser alterados a cada troca de 潮?
  5932. 北? 砯older( para a apuracao do fomentar) 潮?
  5933. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  5934. 北砇etorno 砃enhum 潮?
  5935. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  5936. 北砅arametros矱xpN1: GetDados 潮?
  5937. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  5938. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  5939. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  5940. Function a953CPO8ALT(oGetDad)
  5941.  
  5942. If Empty(aCols[oGetDad:nAt][1])
  5943. oGetDad:aAlter := {}
  5944. oGetDad:oMother:aAlter := {}
  5945. 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"
  5946. oGetDad:aAlter :={"cCodigo","cDescr","nValor"}
  5947. oGetDad:oMother:aAlter :={"cCodigo","cDescr","nValor"}
  5948. Else
  5949. oGetDad:aAlter := {"nValor"}
  5950. oGetDad:oMother:aAlter := {"nValor"}
  5951. EndIf
  5952. Return .T.
  5953. /*/
  5954. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  5955. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  5956. 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  5957. 北篎uncao 砤953TotLin 矨utor 矨ndreia dos Santos ?Data ?15/08/01 潮?
  5958. 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  5959. 北篋esc. 砊otaliza as linhas que podem ser expandidas 潮?
  5960. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  5961. 北砇etorno 砃enhum 潮?
  5962. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  5963. 北砅arametros矱xpN1: Posicao da linha totalizadora 潮?
  5964. 北? 矱xpN2: Numero da linha que sera totalizada 潮?
  5965. 北? 矱xpN3: primeira vez que apura o saldo na montagem do aCols 潮?
  5966. 北? 矱xpN4: aCols 潮?
  5967. 北? 矱xpN5: indica se a funcao foi chamada a partir da delecao da潮?
  5968. 北? ? linha 潮?
  5969. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  5970. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  5971. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  5972. Function a953TotLin(nPos,cLin,lFirst,aColun)
  5973. if !lFirst
  5974. aCols[nPos,4] := 0
  5975. //Aeval(aCols,{|x,y| if(x[1]==cLin .and. x[len(aCols[nPos])]==.F. .and. y<>n ,aCols[nPos,4]+=x[4],)})
  5976. Aeval(aCols,{|x,y| if(x[1]==cLin .and. x[len(aCols[y])]==.F. .and. y<>n ,aCols[nPos,4]+=x[4],)})
  5977. if !empty(ReadVar()) .And. ReadVar() == "M->NVALOR"
  5978. //aCols[nPos,4] += if(aCols[n,1]==aCols[nPos,1].and. aCols[n,len(aCols[nPos])]==.F.,M->NVALOR,0)
  5979. aCols[nPos,4] += if(aCols[n,1]==aCols[nPos,1].and. aCols[n,len(aCols[n])]==.F.,M->NVALOR,0)
  5980. EndIF
  5981. Else
  5982. aColun[nPos,4] := 0
  5983. Aeval(aColun,{|x| if(x[1]==cLin .and. x[len(aColun[nPos])]==.F.,aColun[nPos,4]+=x[4],)})
  5984. if !empty(ReadVar()) .And. ReadVar() == "M->NVALOR"
  5985. aColun[nPos,4] += if(aColun[n,1]==aColun[nPos,1].and. aColun[n,len(aColun[nPos])]==.F.,M->NVALOR,0)
  5986. EndIF
  5987. Endif
  5988. Return
  5989. /*/
  5990. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  5991. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  5992. 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  5993. 北矲uncao 砤953Del5Col矨utor 矨ndreia dos Santos ?Data ?16/08/01 潮?
  5994. 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  5995. 北矰esc. 砎erifica se a linha pode ser deletada( aCols 5) 潮?
  5996. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  5997. 北砇etorno 砃enhum 潮?
  5998. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  5999. 北砅arametros? 潮?
  6000. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  6001. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  6002. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  6003. Function a953Del5Col(lDebEsp)
  6004. Local lRet := .F.
  6005. Local lST := .F.
  6006. Local nAno := mv_par02
  6007. Local cDif2017 := Iif(mv_par02 >= 2017,"/014/015/018/019/021/024","")
  6008.  
  6009. Default lDebEsp := .F.
  6010.  
  6011. IF !lGerDifal
  6012. If aCols[n,1]$"002/003/006/007/009/012"+cDif2017 .AND. Substr(alltrim(aCols[n,2]),4,3)<> ".00"
  6013. lRet := .T.
  6014. aCols[n,3] :=space(60)
  6015. aCols[n,4] :=0
  6016. aCols[n,5] :=space(8)
  6017. aCols[n,6] :=space(14)
  6018. EndIF
  6019.  
  6020. 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")
  6021. lRet := .T.
  6022. aCols[n,4] :=0
  6023. aCols[n,5] :=Space (14)
  6024. aCols[n,6] :=Space (06)
  6025. EndIf
  6026.  
  6027. If lRet
  6028. If !lGerDifal
  6029. a953Saldo(.F.,.F.,.F.,.F.,.F.,.F.,.T.)
  6030. ElseIf !lDebEsp
  6031. a953Saldo(.F.,lST,.F.,.F.)
  6032. Else
  6033. a953Saldo(.F.,.F.,.F.,.F.,.T.)
  6034. EndIf
  6035. EndIf
  6036.  
  6037. Return( lRet )
  6038. /*/
  6039. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  6040. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  6041. 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  6042. 北矲uncao 砤953Del6Col矨utor 矨ndreia dos Santos ?Data ? 16/08/01潮?
  6043. 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  6044. 北矰esc. 砎erifica se a linha pode ser deletada ( aCols 6 ) 潮?
  6045. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  6046. 北砇etorno 砃enhum 潮?
  6047. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  6048. 北砅arametros? 潮?
  6049. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  6050. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  6051. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  6052.  
  6053. Function a953Del6Col()
  6054. Local lRet := .F.
  6055. Local lST := .T.
  6056. Local nPosCons := aScan(aExclApur, {|aX| AllTrim(aCols[n,2])==aX[2]})
  6057. Local nPosl := len(aCols[1])
  6058.  
  6059. 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")
  6060. lRet := .T.
  6061. aCols[n,4] :=0
  6062. If nPosCons<>0
  6063. aExclApur[nPosCons][4] := Iif(aExclApur[nPosCons][4] .And. !aCols[n,nPosl], .F., .T.)
  6064. EndIf
  6065. EndIf
  6066.  
  6067. If lRet
  6068. a953Saldo(.F.,lST,.F.,.F.)
  6069. EndIf
  6070.  
  6071. Return( lRet )
  6072. /*/
  6073. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  6074. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  6075. 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  6076. 北矲uncao 矨953Lin5Ok 矨utor 矨ndreia dos Santos ?Data ?17/08/01 潮?
  6077. 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  6078. 北矰esc. 砎erifica se os campos obrigatorios da Apuracao de ICMS pro- 潮?
  6079. 北? 硃rio estao preenchidos 潮?
  6080. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  6081. 北砇etorno 砃enhum 潮?
  6082. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  6083. 北砅arametros? 潮?
  6084. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  6085. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  6086. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  6087.  
  6088. Function A953Lin5Ok()
  6089. Local lRet := .T.
  6090. //Local nPosl := len(aCols[1])
  6091. Local nX := 0
  6092. Local lUsaSped := SuperGetMv("MV_USASPED",,.T.) .And. AliasIndic("CDH") .And. AliasIndic("CDA")
  6093. Local cCodLanc := ""
  6094. Local cSubItem := ""
  6095. local lTdOk := SuperGetMv("MV_AICVALT",,.F.) // informa se ir?validar apenas ao confirmar
  6096.  
  6097. If aCols[n,1] $"002#003#006#007#012#900#901" .and. ;
  6098. !(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.
  6099.  
  6100.  
  6101. If aCols[n,1]$"900#901" .And. Empty(aCols[n,2])
  6102. MsgAlert(STR0250) //"O preenchimento do Codigo de Subitem ?obrigatorio"
  6103. lRet := .F.
  6104. Endif
  6105. If aCols[n,1]$"900#901" .And. "FECP"$aCols[n,3] .And. lApagFecpST
  6106. MsgAlert(STR0251) //"Nao ?possivel a inclusao de debito um especial para FECP quando h?saldo credor"
  6107. lRet := .F.
  6108. Endif
  6109. If empty(aCols[n,3])
  6110. MsgAlert(STR0230) //"O preenchimento da Descri玢o ?Obrigat髍ia"
  6111. lRet := .F.
  6112. EndIf
  6113. If aCols[n,4]==0
  6114. MsgAlert(STR0231) //"O preenchimento do Valor ?obrigat髍io"
  6115. lRet := .F.
  6116. EndIf
  6117. If lUsaSped
  6118. If empty(aCols[n,7])
  6119. MsgAlert(STR0229) //"O preenchimento do C骴igo do Lan鏰mento ?obrigat髍io"
  6120. lRet := .F.
  6121. ElseIf !lTdOk
  6122. cCodLanc := aCols[n,7]
  6123. cSubItem := aCols[n,2]
  6124. aCols[n,7]:=""
  6125. aCols[n,2]:=""
  6126. For nX := 1 to len(aCols)
  6127. //Verifica se tem lancamento duplicado
  6128. If !aCols[nX][Len(aCols[nX])] .And. aCols[nX,7] == cCodLanc //Len(aCols[nX] sempre .F. ou .T.
  6129. //Se existir duplicidade de lancamento o SUBITEM deve estar informado
  6130. If Empty(cSubItem) .Or. Empty(aCols[nX,2]) .Or. Alltrim(cSubItem) == Alltrim(aCols[nX,2])
  6131. MsgAlert("Para utilizar o mesmo c骴igo de lan鏰mento ?necess醨io utilizar c骴igos de Subitem diferentes")
  6132. lRet := .F.
  6133. EndIf
  6134. EndIf
  6135. Next
  6136. aCols[n,7]:=cCodLanc
  6137. aCols[n,2]:=cSubItem
  6138. EndIf
  6139. EndIf
  6140. Endif
  6141. Return( lRet )
  6142.  
  6143. /*/
  6144. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  6145. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  6146. 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  6147. 北矲uncao 矨953Lin6Ok 矨utor 矨ndreia dos Santos ?Data ?17/08/01 潮?
  6148. 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  6149. 北矰esc. 砎erifica se os campos obrigatorios da Apuracao de ICMS Subs-潮?
  6150. 北? 硉ituicao Tributaria estao preenchidos 潮?
  6151. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  6152. 北砇etorno 砃enhum 潮?
  6153. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  6154. 北砅arametros? 潮?
  6155. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  6156. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  6157. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  6158. Function A953Lin6Ok()
  6159. Local lRet := .T.
  6160. //Local nPosl := len(aCols[1])
  6161. Local nX := 0
  6162. Local lUsaSped := SuperGetMv("MV_USASPED",,.T.) .And. AliasIndic("CDH") .And. AliasIndic("CDA")
  6163. Local cCodLanc := ""
  6164. Local cSubItem := ""
  6165. Local nAno := mv_par02
  6166. Local cDif2017 := Iif(mv_par02 >= 2017,"/014/015/018/019/021/024","")
  6167.  
  6168. IF !lGerDifal
  6169. //Aqui significa que apura玢o detalhada do difal est?acionada
  6170. 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.
  6171. If Empty(aCols[n,2])
  6172. MsgAlert(STR0250) //"O preenchimento do Codigo de Subitem ?obrigatorio"
  6173. lRet := .F.
  6174. ElseIf Empty(aCols[n,3])
  6175. MsgAlert(STR0230) //"O preenchimento da Descri玢o ?Obrigat髍ia"
  6176. lRet := .F.
  6177. ElseIf aCols[n,4]==0
  6178. MsgAlert(STR0231) //"O preenchimento do Valor ?obrigat髍io"
  6179. lRet := .F.
  6180. ElseIF lUsaSped .AND. empty(aCols[n,5])
  6181. MsgAlert(STR0229) //"O preenchimento do C骴igo do Lan鏰mento ?obrigat髍io"
  6182. lRet := .F.
  6183. EndIF
  6184. EndIf
  6185.  
  6186. 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.;
  6187. aCols[n,Len(aCols[n])] == .F.
  6188. if empty(aCols[n,3]) .or. aCols[n,4]==0 .Or. (lUsaSped .And. empty(aCols[n,7]))
  6189. lRet := .F.
  6190. EndIf
  6191.  
  6192. If aCols[n,1]$"900#901" .And. Empty(aCols[n,2])
  6193. MsgAlert(STR0250) //"O preenchimento do Codigo de Subitem ?obrigatorio"
  6194. lRet := .F.
  6195. Endif
  6196. If aCols[n,1]$"900#901" .And. "FECP"$aCols[n,3] .And. lApagFecpST
  6197. MsgAlert(STR0251) //"Nao ?possivel a inclusao de um debito especial para FECP quando h?saldo credor"
  6198. lRet := .F.
  6199. Endif
  6200. If empty(aCols[n,3])
  6201. MsgAlert(STR0230) //"O preenchimento da Descri玢o ?Obrigat髍ia"
  6202. lRet := .F.
  6203. EndIf
  6204. If aCols[n,4]==0
  6205. MsgAlert(STR0231) //"O preenchimento do Valor ?obrigat髍io"
  6206. lRet := .F.
  6207. EndIf
  6208. If lUsaSped
  6209. If empty(aCols[n,7])
  6210. MsgAlert(STR0229) //"O preenchimento do C骴igo do Lan鏰mento ?obrigat髍io"
  6211. lRet := .F.
  6212. Else
  6213. cCodLanc := aCols[n,7]
  6214. cSubItem := aCols[n,2]
  6215. aCols[n,7]:=""
  6216. aCols[n,2]:=""
  6217. For nX := 1 to len(aCols)
  6218. //Verifica se tem lancamento duplicado
  6219. If !aCols[nX][Len(aCols[nX])] .And. aCols[nX,7] == cCodLanc
  6220. //Se existir duplicidade de lancamento o SUBITEM deve estar informado
  6221. If Empty(cSubItem) .Or. Empty(aCols[nX,2]) .Or. Alltrim(cSubItem) == Alltrim(aCols[nX,2])
  6222. MsgAlert("Para utilizar o mesmo c骴igo de lan鏰mento ?necess醨io utilizar c骴igos de Subitem diferentes")
  6223. lRet := .F.
  6224. EndIf
  6225. EndIf
  6226. Next
  6227. aCols[n,7]:=cCodLanc
  6228. aCols[n,2]:=cSubItem
  6229. EndIf
  6230. EndIf
  6231. Endif
  6232.  
  6233. Return( lRet )
  6234. /*/
  6235. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  6236. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  6237. 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  6238. 北矲uncao 矨953Codigo 矨utor 矨ndreia dos Santos ?Data ?06/09/01 潮?
  6239. 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  6240. 北矰esc. ?Valida codigo digitado. 潮?
  6241. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  6242. 北砇etorno 砃enhum 潮?
  6243. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  6244. 北砅arametros? 潮?
  6245. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  6246. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  6247. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  6248. Function a953Codigo()
  6249. Local lRet := .T.
  6250. Local nPosl := len(aCols[1])
  6251. Local nI := 0
  6252. Local lUsaSped := SuperGetMv("MV_USASPED",,.T.) .And. AliasIndic("CDH") .And. AliasIndic("CDA")
  6253.  
  6254. 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.;
  6255. 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.
  6256.  
  6257. lRet := .F.
  6258. Endif
  6259.  
  6260.  
  6261. If lUsaSped
  6262. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  6263. //砎ERIFICACAO SE O CODIGO DIGITADO NA COLUNA JA FOI DIGITADO ANTERIORMENTE EM OUTRA LINHA ?
  6264. //矱SSA VALIDACAO SO E NECESSARIA PARA A APURACAO NO MODELO DO SPESFISCAL ?
  6265. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? For nI := 1 To Len (aCols)
  6266. If !aCols[nI,Len(aCols[nI])] .And. (AllTrim (M->CCODIGO)$aCols[nI,2])
  6267. HELP (" ", 1, "JAGRAVADO")
  6268. lRet := .F.
  6269. Exit
  6270. EndIf
  6271. Next (nI)
  6272. EndIf
  6273.  
  6274. Return( lRet )
  6275.  
  6276. /*/
  6277. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  6278. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  6279. 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  6280. 北矲uncao 砤953GNRE 矨utor 矴ustavo G. Rueda ?Data ?1/04/2006潮?
  6281. 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  6282. 北矰esc. 砎alidacao do codigo da GNRE, o estado eh o MV_ESTADO. 潮?
  6283. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  6284. 北砇etorno 砃enhum 潮?
  6285. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  6286. 北砅arametros? 潮?
  6287. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  6288. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  6289. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  6290. Function a953GNRE(cCodTP) //0-ICMS PROPRIO| 1-ICMS ST
  6291. Local lRet := .T.
  6292. Local nI := 1
  6293. Local nX := 1
  6294. Local nY := 0
  6295. Local nPos := 0
  6296. Local nPosl := len(aCols[1])
  6297. Local lAchou := .F.
  6298. Local cBloco := ""
  6299. Local nPosRecST := 0
  6300. Local aGnre2 := {}
  6301.  
  6302. //Ajuste para novos codigos de difal exclusivos para FECP
  6303. IF mv_par02 >= 2017 .And. cCodTP == '2' .And. aCols[n,1] $ "014|015|018|019|021|024"
  6304. cCodTP := '3'
  6305. Endif
  6306.  
  6307. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  6308. //砆uando estiver vindo vazio, significa que estah vindo de debitos especiais e lah pode ser lancado tanto ICMS quanto ICMS ST.?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  6309. If Empty(cCodTP)
  6310. If aCols[n,1]=="900"
  6311. cCodTP := "0"
  6312. ElseIf aCols[n,1]=="901"
  6313. cCodTP := "1"
  6314. EndIf
  6315. EndIf
  6316. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  6317. //砎ERIFICACAO SE A GNRE JAH EXISTE GRAVADA NA TABELA SF6 PARA O MESMO ESTADO?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  6318. If !aCols[n,Len(aCols[n])]
  6319. If !aCols[nI,Len(aCols[nI])] .And. !Empty (cGnre)
  6320. SF6->(DbSetOrder (1))
  6321. If cCodTP =='0' .And. SF6->(DbSeek (xFilial ("SF6")+SuperGetMV("MV_ESTADO")+cGnre))
  6322. aCols[n,4] := SF6->F6_VALOR
  6323. aCols[n,6] := SF6->F6_CLAVENC
  6324.  
  6325. cBloco := Alltrim(aCols[n,1])
  6326. cValor := 0
  6327. nPos := 0
  6328. For nX := 1 to Len(aCols)
  6329. If Alltrim(aCols[nX][1]) == cBloco
  6330. If Alltrim(aCols[nX,2]) == Alltrim(cBloco+".00")
  6331. nPos := nX //Pega a posicao da Linha Pai
  6332. Else
  6333. cValor += aCols[nX,4] //acumula todos os Filhos
  6334. EndIf
  6335. EndIf
  6336. Next
  6337. If nPos > 0 .And. !"900"$cBloco
  6338. aCols[nPos,4] := cValor //atualiza valor acumulado na linha Pai (para 002/003/006/007/012)
  6339.  
  6340. n001 := Ascan(aCols,{|x|x[1]=="001"})
  6341. n002 := Ascan(aCols,{|x|x[1]=="002"})
  6342. n003 := Ascan(aCols,{|x|x[1]=="003"})
  6343. n004 := Ascan(aCols,{|x|x[1]=="004"})
  6344. n005 := Ascan(aCols,{|x|x[1]=="005"})
  6345. n006 := Ascan(aCols,{|x|x[1]=="006"})
  6346. n007 := Ascan(aCols,{|x|x[1]=="007"})
  6347. n008 := Ascan(aCols,{|x|x[1]=="008"})
  6348. n009 := Ascan(aCols,{|x|x[1]=="009"})
  6349. n010 := Ascan(aCols,{|x|x[1]=="010"})
  6350. n011 := Ascan(aCols,{|x|x[1]=="011"})
  6351. n012 := Ascan(aCols,{|x|x[1]=="012"})
  6352. n013 := Ascan(aCols,{|x|x[1]=="013"})
  6353. n014 := Ascan(aCols,{|x|x[1]=="014"})
  6354.  
  6355. If cBloco $ ("002/003")
  6356. //ATUALIZA SAIDAS
  6357.  
  6358. //atualiza valor do sub-total
  6359. //v004 := v001 + v002 + v003
  6360. aCols[n004][4] := aCols[n001][4] + aCols[n002][4] + aCols[n003][4]
  6361.  
  6362. Else
  6363. //ATUALIZA ENTRADAS
  6364.  
  6365. //atualiza valor do sub-total
  6366. //v008 := v005 + v006 + v007
  6367. aCols[n008][4] := aCols[n005][4] + aCols[n006][4] + aCols[n007][4]
  6368.  
  6369. //atualiza valor total
  6370. //v010 := v008 - v009
  6371. aCols[n010][4] := aCols[n008][4] - aCols[n009][4]
  6372.  
  6373. EndIf
  6374.  
  6375. //atualiza valor do saldo devedor/credor
  6376. //v011 := v004 - v010
  6377. If (aCols[n004][4] - aCols[n010][4]) > 0
  6378. aCols[n011][4] := aCols[n004][4] - aCols[n010][4]
  6379. aCols[n014][4] := 0
  6380. Else
  6381. aCols[n011][4] := 0
  6382. aCols[n014][4] := aCols[n010][4] - aCols[n004][4]
  6383. EndIf
  6384.  
  6385. //corrige valor do saldo credor
  6386. //v014 := v014 + v012
  6387. If aCols[n014][4] + aCols[n012][4] - aCols[n011][4] > 0
  6388. aCols[n014][4] := aCols[n014][4] + aCols[n012][4] - aCols[n011][4]
  6389. EndIf
  6390.  
  6391. //atualiza valor do imposto a recolher
  6392. //v013 := v011 - v012
  6393. If aCols[n011][4] - aCols[n012][4] > 0
  6394. aCols[n013][4] := aCols[n011][4] - aCols[n012][4]
  6395. Else
  6396. aCols[n013][4] := 0
  6397. EndIf
  6398.  
  6399. nPosRecST := Ascan(aCols6,{|x|x[1]=="015"}) //imposto a recolher Substituicao Tributaria
  6400. nVlrTitulo := aCols[n013,4]+aCols6[nPosRecST,4]
  6401. EndIf
  6402.  
  6403. //ACRESCENTA OU ATUALIZA ARRAY QUANDO GNRE FOI SELECIONADA
  6404. lAchou := .F.
  6405. For nX := 1 To Len (aGnre)
  6406. If SF6->F6_NUMERO == aGnre[nX,1] .And. SF6->F6_EST == aGnre[nX,5] .And. aGnre[nX,6] == "IC"
  6407. aGnre[nX][1] := SF6->F6_NUMERO
  6408. aGnre[nX][2] := SF6->F6_DTVENC
  6409. aGnre[nX][3] := SF6->F6_VALOR
  6410. aGnre[nX][4] := SF6->F6_CLAVENC
  6411. aGnre[nX][5] := SF6->F6_EST
  6412.  
  6413. lAchou := .T.
  6414. Exit
  6415. EndIf
  6416. Next
  6417. If !lAchou
  6418. 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
  6419. EndIf
  6420.  
  6421. lRet := .T.
  6422.  
  6423. ElseIf cCodTP =='1' .And. SF6->(DbSeek (xFilial ("SF6")+SuperGetMV("MV_ESTADO")+cGnre))
  6424. aCols[n,4] := SF6->F6_VALOR
  6425. aCols[n,6] := SF6->F6_CLAVENC
  6426.  
  6427. cBloco := Alltrim(aCols[n,1])
  6428. cValor := 0
  6429. nPos := 0
  6430. For nX := 1 to Len(aCols)
  6431. If Alltrim(aCols[nX][1]) == cBloco
  6432. If Alltrim(aCols[nX,2]) == Alltrim(cBloco+".00")
  6433. nPos := nX //Pega a posicao da Linha Pai
  6434. Else
  6435. cValor += aCols[nX,4] //acumula todos os Filhos
  6436. EndIf
  6437. EndIf
  6438. Next
  6439. If nPos > 0 .And. !"901"$cBloco
  6440. aCols[nPos,4] := cValor //atualiza valor acumulado na linha Pai (para 002/003/006/007/012)
  6441.  
  6442. n001 := Ascan(aCols,{|x|x[1]=="001"})
  6443. n002 := Ascan(aCols,{|x|x[1]=="002"})
  6444. n003 := Ascan(aCols,{|x|x[1]=="003"})
  6445. n004 := Ascan(aCols,{|x|x[1]=="005"})
  6446. n005 := Ascan(aCols,{|x|x[1]=="006"})
  6447. n006 := Ascan(aCols,{|x|x[1]=="007"})
  6448. n007 := Ascan(aCols,{|x|x[1]=="008"})
  6449. n008 := Ascan(aCols,{|x|x[1]=="010"})
  6450. n009 := Ascan(aCols,{|x|x[1]=="011"})
  6451. n010 := Ascan(aCols,{|x|x[1]=="012"})
  6452. n011 := Ascan(aCols,{|x|x[1]=="013"})
  6453. n012 := Ascan(aCols,{|x|x[1]=="014"})
  6454. n013 := Ascan(aCols,{|x|x[1]=="015"})
  6455. n014 := Ascan(aCols,{|x|x[1]=="016"})
  6456.  
  6457. If cBloco $ ("002/003")
  6458. //ATUALIZA SAIDAS
  6459.  
  6460. //atualiza valor do sub-total
  6461. //v004 := v001 + v002 + v003
  6462. aCols[n004][4] := aCols[n001][4] + aCols[n002][4] + aCols[n003][4]
  6463.  
  6464. Else
  6465. //ATUALIZA ENTRADAS
  6466.  
  6467. //atualiza valor do sub-total
  6468. //v008 := v005 + v006 + v007
  6469. aCols[n008][4] := aCols[n005][4] + aCols[n006][4] + aCols[n007][4]
  6470.  
  6471. //atualiza valor total
  6472. //v010 := v008 - v009
  6473. aCols[n010][4] := aCols[n008][4] - aCols[n009][4]
  6474.  
  6475. EndIf
  6476.  
  6477. //atualiza valor do saldo devedor/credor
  6478. //v011 := v004 - v010
  6479. If (aCols[n004][4] - aCols[n010][4]) > 0
  6480. aCols[n011][4] := aCols[n004][4] - aCols[n010][4]
  6481. aCols[n014][4] := 0
  6482. Else
  6483. aCols[n011][4] := 0
  6484. aCols[n014][4] := aCols[n010][4] - aCols[n004][4]
  6485. EndIf
  6486.  
  6487. //corrige valor do saldo credor
  6488. //v014 := v014 + v012
  6489. If aCols[n014][4] + aCols[n012][4] - aCols[n011][4] > 0
  6490. aCols[n014][4] := aCols[n014][4] + aCols[n012][4] - aCols[n011][4]
  6491. EndIf
  6492.  
  6493. //atualiza valor do imposto a recolher
  6494. //v013 := v011 - v012
  6495. If aCols[n011][4] - aCols[n012][4] > 0
  6496. aCols[n013][4] := aCols[n011][4] - aCols[n012][4]
  6497. Else
  6498. aCols[n013][4] := 0
  6499. EndIf
  6500.  
  6501. nPosRecST := Ascan(aCols6,{|x|x[1]=="015"}) //imposto a recolher Substituicao Tributaria
  6502. nVlrTitulo := aCols[n013,4]+aCols6[nPosRecST,4]
  6503. EndIf
  6504.  
  6505. //ACRESCENTA OU ATUALIZA ARRAY QUANDO GNRE FOI SELECIONADA
  6506. lAchou := .F.
  6507. For nX := 1 To Len (aGnre)
  6508. If SF6->F6_NUMERO == aGnre[nX,1] .And. SF6->F6_EST == aGnre[nX,5] .And. aGnre[nX,6] == "IC"
  6509. aGnre[nX][1] := SF6->F6_NUMERO
  6510. aGnre[nX][2] := SF6->F6_DTVENC
  6511. aGnre[nX][3] := SF6->F6_VALOR
  6512. aGnre[nX][4] := SF6->F6_CLAVENC
  6513. aGnre[nX][5] := SF6->F6_EST
  6514.  
  6515. lAchou := .T.
  6516. Exit
  6517. EndIf
  6518. Next
  6519. If !lAchou
  6520. 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
  6521. EndIf
  6522.  
  6523. lRet := .T.
  6524.  
  6525. ElseIf cCodTP =='2'
  6526. IF SF6->(DbSeek (xFilial ("SF6")+SubStr(aCols[2][3],At("(",aCols[2][3]) + 1,2)+cGnre))
  6527. aCols[n,4] := SF6->F6_VALOR
  6528.  
  6529. cBloco := Alltrim(aCols[n,1])
  6530. cValor := 0
  6531. nPos := 0
  6532.  
  6533. For nX := 1 to Len(aCols)
  6534. If Alltrim(aCols[nX][1]) == cBloco
  6535. If Alltrim(aCols[nX,2]) == Alltrim(cBloco+".00")
  6536. nPos := nX //Pega a posicao da Linha Pai
  6537. Else
  6538. cValor += aCols[nX,4] //acumula todos os Filhos
  6539. EndIf
  6540. EndIf
  6541. Next
  6542.  
  6543. aCols[nPos,4] := cValor //atualiza valor acumulado na linha Pai (para 002/003/006/007/012)
  6544.  
  6545. n001 := Ascan(aCols,{|x|x[1]=="001"})
  6546. n002 := Ascan(aCols,{|x|x[1]=="002"})
  6547. n003 := Ascan(aCols,{|x|x[1]=="003"})
  6548. n004 := Ascan(aCols,{|x|x[1]=="004"})
  6549. n005 := Ascan(aCols,{|x|x[1]=="005"})
  6550. n006 := Ascan(aCols,{|x|x[1]=="006"})
  6551. n007 := Ascan(aCols,{|x|x[1]=="007"})
  6552. n008 := Ascan(aCols,{|x|x[1]=="008"})
  6553. n009 := Ascan(aCols,{|x|x[1]=="009"})
  6554. n010 := Ascan(aCols,{|x|x[1]=="010"})
  6555. n011 := Ascan(aCols,{|x|x[1]=="011"})
  6556. n012 := Ascan(aCols,{|x|x[1]=="012"})
  6557.  
  6558. aCols[n011][4] := 0 //zera saldo credor
  6559.  
  6560. aCols[n008][4] := (aCols[n001][4] + aCols[n002][4] + aCols[n003][4]) - ;
  6561. (aCols[n004][4] + aCols[n005][4] + aCols[n006][4] + aCols[n007][4]) //saldo devedor
  6562. aCols[n010][4] := aCols[n008][4] - aCols[n009][4] //Valor a recolhe
  6563.  
  6564. if aCols[n008][4] < 0 //se saldo devedor for negativo joga em saldo credor
  6565. aCols[n011][4] += (aCols[n008][4] * -1)
  6566. aCols[n008][4] := 0
  6567. aCols[n011][4] += aCols[n009][4]
  6568. aCols[n010][4] := 0
  6569.  
  6570. ElseIF aCols[n010][4] < 0 //Se valor a recolher for negativo ent鉶 acumula saldo credot
  6571. aCols[n011][4] += (aCols[n010][4] *-1)
  6572. aCols[n010][4] := 0
  6573. EndIF
  6574.  
  6575. lRet := .T.
  6576.  
  6577. Else
  6578. lRet := .F.
  6579. MsgAlert("Guia de recolhimento informada nao existe ou n鉶 pertence a este Estado")
  6580. EndIF
  6581. ElseIf cCodTP =='3' //Fecp Difal
  6582. IF SF6->(DbSeek (xFilial ("SF6")+SubStr(aCols[2][3],At("(",aCols[2][3]) + 1,2)+cGnre))
  6583. aCols[n,4] := SF6->F6_VALOR
  6584.  
  6585. cBloco := Alltrim(aCols[n,1])
  6586. cValor := 0
  6587. nPos := 0
  6588.  
  6589. For nX := 1 to Len(aCols)
  6590. If Alltrim(aCols[nX][1]) == cBloco
  6591. If Alltrim(aCols[nX,2]) == Alltrim(cBloco+".00")
  6592. nPos := nX //Pega a posicao da Linha Pai
  6593. Else
  6594. cValor += aCols[nX,4] //acumula todos os Filhos
  6595. EndIf
  6596. EndIf
  6597. Next
  6598.  
  6599. aCols[nPos,4] := cValor //atualiza valor acumulado na linha Pai (para 014/015/018/019/021/024)
  6600.  
  6601. n013 := Ascan(aCols,{|x|x[1]=="013"})
  6602. n014 := Ascan(aCols,{|x|x[1]=="014"})
  6603. n015 := Ascan(aCols,{|x|x[1]=="015"})
  6604. n016 := Ascan(aCols,{|x|x[1]=="016"})
  6605. n017 := Ascan(aCols,{|x|x[1]=="017"})
  6606. n018 := Ascan(aCols,{|x|x[1]=="018"})
  6607. n019 := Ascan(aCols,{|x|x[1]=="019"})
  6608. n020 := Ascan(aCols,{|x|x[1]=="020"})
  6609. n021 := Ascan(aCols,{|x|x[1]=="021"})
  6610. n022 := Ascan(aCols,{|x|x[1]=="022"})
  6611. n023 := Ascan(aCols,{|x|x[1]=="023"})
  6612. n024 := Ascan(aCols,{|x|x[1]=="024"})
  6613.  
  6614. aCols[n023][4] := 0 //zera saldo credor
  6615.  
  6616. aCols[n020][4] := (aCols[n013][4] + aCols[n014][4] + aCols[n015][4]) - ;
  6617. (aCols[n016][4] + aCols[n017][4] + aCols[n018][4] + aCols[n019][4]) //saldo devedor
  6618. aCols[n022][4] := aCols[n020][4] - aCols[n021][4] //Valor a recolhe
  6619.  
  6620. if aCols[n020][4] < 0 //se saldo devedor for negativo joga em saldo credor
  6621. aCols[n023][4] += (aCols[n020][4] * -1)
  6622. aCols[n020][4] := 0
  6623. aCols[n023][4] += aCols[n021][4]
  6624. aCols[n022][4] := 0
  6625.  
  6626. ElseIF aCols[n022][4] < 0 //Se valor a recolher for negativo ent鉶 acumula saldo credot
  6627. aCols[n023][4] += (aCols[n022][4] *-1)
  6628. aCols[n022][4] := 0
  6629. EndIF
  6630.  
  6631. lRet := .T.
  6632.  
  6633. Else
  6634. lRet := .F.
  6635. MsgAlert("Guia de recolhimento informada nao existe ou n鉶 pertence a este Estado")
  6636. EndIF
  6637. else
  6638. MsgAlert("Guia de recolhimento informada nao existe, sera criada uma guia de recolhimento manual!")
  6639. EndIf
  6640.  
  6641. Else
  6642. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  6643. //砎ERIFICACAO SE A GNRE DIGITADA NA COLUNA GNRE JAH FOI DIGITADA ANTERIORMENTE EM OUTRA LINHA?
  6644. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? For nI := 1 To Len (aCols)
  6645. If !aCols[nI,Len(aCols[nI])] .And. (AllTrim (cGnre)$aCols[nI,5])
  6646. HELP (" ", 1, "JAGRAVADO")
  6647. lRet := .F.
  6648. Exit
  6649. EndIf
  6650. Next (nI)
  6651. EndIf
  6652. EndIf
  6653.  
  6654. Return (lRet)
  6655. /*/
  6656. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  6657. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  6658. 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  6659. 北矲uncao 砤953TdOk 矨utor 矴ustavo G. Rueda ?Data ?1/04/2006潮?
  6660. 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  6661. 北矰esc. 砎alidacao do codigo da GNRE, o estado padrao eh o MV_ESTADO.潮?
  6662. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  6663. 北砇etorno 砃enhum 潮?
  6664. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  6665. 北砅arametros? 潮?
  6666. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  6667. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  6668. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  6669. Function a953TdOk()
  6670. Local lRet := .T.
  6671. Local nI := 1
  6672. local nX := 1
  6673. Local nPosl := len(aCols[1])
  6674. Local cCodLanc := ""
  6675. Local cSubItem := ""
  6676. Local lUsaSped := SuperGetMv("MV_USASPED",,.T.) .And. AliasIndic("CDH") .And. AliasIndic("CDA")
  6677. local lTdOk := SuperGetMv("MV_AICVALT",,.F.) // informa se ir?validar apenas ao confirmar
  6678.  
  6679. For nI := 1 To Len (aCols)
  6680. If !aCols[nI,nPosl] .And. !Empty (aCols[nI,5])
  6681. SF6->(DbSetOrder (1))
  6682. If SF6->(DbSeek (xFilial ("SF6")+SuperGetMV("MV_ESTADO")+aCols[nI,5]))
  6683. //validar se a guia gerada e' exatamente igual a guia salva
  6684. // se houver alguma diferenca, retorna msg de erro
  6685. If !(SF6->F6_VALOR == aCols[nI,4])
  6686. xMagHelpFis (STR0085,; //"Aten玢o"
  6687. "O valor informado deve ser igual ao cadastrado na GNRE",;
  6688. "Favor alterar o valor ou inserir um novo n鷐ero de GNRE")
  6689. lRet := .F.
  6690. Exit
  6691. EndIf
  6692. If !(AllTrim(SF6->F6_CLAVENC) == AllTrim(aCols[nI,6]))
  6693. xMagHelpFis (STR0085,; //"Aten玢o"
  6694. "A Classe de Vencimento informada deve ser igual a cadastrada na GNRE",;
  6695. "Favor alterar a Classe de Vencimento ou inserir uma novo n鷐ero de GNRE")
  6696. lRet := .F.
  6697. Exit
  6698. EndIf
  6699. EndIf
  6700. EndIf
  6701.  
  6702.  
  6703. If lTdOk .And. lUsaSped .And. !Empty(aCols[nI,7])
  6704.  
  6705. cCodLanc := aCols[nI,7]
  6706. cSubItem := aCols[nI,2]
  6707. aCols[nI,7]:=""
  6708. aCols[nI,2]:=""
  6709. For nX := 1 to len(aCols)
  6710. //Verifica se tem lancamento duplicado
  6711. If !aCols[nX][Len(aCols[nX])] .And. aCols[nX,7] == cCodLanc
  6712. //Se existir duplicidade de lancamento o SUBITEM deve estar informado
  6713. If Empty(cSubItem) .Or. Empty(aCols[nX,2]) .Or. Alltrim(cSubItem) == Alltrim(aCols[nX,2])
  6714. MsgAlert("Para utilizar o mesmo c骴igo de lan鏰mento ?necess醨io preecher todos os Subitens com c骴igos diferentes")
  6715. lRet := .F.
  6716. Exit
  6717. EndIf
  6718. EndIf
  6719. Next
  6720. aCols[nI,7]:=cCodLanc
  6721. aCols[nI,2]:=cSubItem
  6722. If !lRet
  6723. Exit
  6724. EndIf
  6725. ElseIf lUsaSped .And. Empty(aCols[nI,7]) .And. !Empty(aCols[nI,4]) .And. aCols[nI,1] $"002#003#006#007#012#900#901" .and. ;
  6726. !(alltrim(aCols[nI,2])=="002.00" .Or. alltrim(aCols[nI,2])=="003.00" .Or. alltrim(aCols[nI,2])=="006.00" .Or. ;
  6727. alltrim(aCols[nI,2])=="007.00" .Or. alltrim(aCols[nI,2])=="012.00" .Or. alltrim(aCols[nI,2])=="900.00" .Or. ;
  6728. alltrim(aCols[nI,2])=="901.00") .and. aCols[nI, Len(aCols[nI])] == .F.
  6729. MsgAlert(STR0229) //"O preenchimento do C骴igo do Lan鏰mento ?obrigat髍io"
  6730. lRet := .F.
  6731. EndIf
  6732.  
  6733. Next (nI)
  6734. Return( lRet )
  6735.  
  6736. /*/
  6737. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  6738. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  6739. 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  6740. 北矲uncao 矨953Apura 矨utor 矨ndreia dos Santos ?Data ?20/08/01 潮?
  6741. 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  6742. 北矰esc. ?Apura os valores do ICMS do periodo e distribui nos folders潮?
  6743. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  6744. 北砇etorno 砃enhum 潮?
  6745. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  6746. 北砅arametros? 潮?
  6747. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  6748. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  6749. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  6750. 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)
  6751.  
  6752. Local aApuracao := {}
  6753. Local aEntrada := {}
  6754. Local aSaida := {}
  6755. Local aCFG := {}
  6756. Local aSaidaTmp := {}
  6757. Local cArqAnt := Alltrim(mv_par06)
  6758. Local nPos := 0
  6759. Local nPos5 := 0
  6760.  
  6761. Local nPos6 := 0
  6762. Local nPos8 := 0
  6763. Local nPos9 := 0
  6764. Local nPosZ := 0
  6765. Local nX := 0
  6766. Local nEstCiap := 0
  6767. Local nCredCiap := 0
  6768. LOCAL cMV_Estado := SuperGetMv("MV_ESTADO") // Def. estado empresa
  6769. LOCAL nImposto := 0
  6770. Local lGiaSc01 :=.T.
  6771. Local nValor := 0
  6772. Local lSimplSC := SuperGetMv("MV_SIMPLSC",.F.,.T.)
  6773. Local lArqAnt := SuperGetMv("MV_APURANT")
  6774.  
  6775. Local lUsaSped := SuperGetMv("MV_USASPED",,.T.) .And. AliasIndic("CDH") .And. AliasIndic("CDA")
  6776. Local nPosl := len(aCols5[1]) // Define Posi玢o da flag logica
  6777. Local nPos2 := len(aCols10[1]) // Define Posi玢o da flag logica
  6778. Local nPosIni := 0
  6779. Local nPosSub := 1
  6780. Local nSubIt := 1
  6781. Local nCnt := 0
  6782. Local nVlFumacop := 0
  6783.  
  6784. Local cSubIt := ""
  6785. Local cLinhas := ""
  6786. Local cNotLinhas := ""
  6787. Local aAuxCol := {}
  6788. Local aCDAIC := {}
  6789. Local aCDAST := {}
  6790. Local aApurCDA := {}
  6791. Local aApurF3 := {}
  6792. Local lP9Sped := SuperGetMv("MV_P9SPED",,.F.)
  6793. Local aCDADE := {}
  6794. Local aConv139 := {}
  6795. Local aCVTot := {0,0,0}
  6796. Local lSTInterna := SuperGetMv("MV_STINTER",,.F.)
  6797. Local cDsvInd := GetNewPar( "MV_DSVIND" , "''" )
  6798.  
  6799. Local aDadosTMP:={}
  6800. Local aDadosAgl:={}
  6801. Local nWx,nXFil,nY
  6802. Local aFilsAgl:={}
  6803. Local cFilBack := cFilAnt
  6804. Local aEstado := {}
  6805. Local nEst := 0
  6806. Local aDifEst := {}
  6807. Local cMvEst := ''
  6808.  
  6809. Local nPosPad := 0
  6810. Local nPosAuto := 0
  6811.  
  6812. Default aRetEsp := {}
  6813. Default lImpCrdSt := .F.
  6814. Default lICMDes := .F.
  6815. Default aLisFil := {}
  6816. Default nOpcApu := Nil
  6817. Default lAutomato := .F.
  6818. Default cTestCase := "MATA953TestCase"
  6819.  
  6820. //aRetAuto
  6821. If lAutomato
  6822. If FindFunction("GetParAuto")
  6823. aRetAuto := GetParAuto(cTestCase)
  6824. EndIf
  6825. EndIf
  6826.  
  6827. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  6828. //?Processamento dos Creditos de Estimulo - Manaus ?
  6829. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?If lCrdEst
  6830. ProcEst(dDtIni,dDtFim,@aEstimulo,cNrLivro,@aIncent)
  6831. Endif
  6832.  
  6833. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  6834. //?Carrega apuracao do SF3 ?
  6835. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  6836. If lFiliais//MV_PAR10==1 .and. MV_PAR22==1
  6837. nConsFil:= 2
  6838. For nXFil:=1 to Len(aLisFil)
  6839. aFilsAgl:={}
  6840. If aLisFil[nXFil][1]
  6841. cFilAnt:=aLisFil[nXFil][2]
  6842. aAdd(aFilsAgl,aLisFil[nXFil])
  6843. If SuperGetMv("MV_ESTADO") == "RJ" .And. File("P9AUTOTEXT"+"."+SuperGetMv('MV_ESTADO'))
  6844. 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)})
  6845.  
  6846. Else
  6847. 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)})
  6848. Endif
  6849. If nXFil==1
  6850. aDadosAgl:=ACLONE(aDadosTmp)
  6851. aSaidaTmp:=ACLONE(aSaida)
  6852. Else
  6853. For nWX:=1 to Len(aDadosTmp)
  6854. nPosAgl:=AScan( aDadosAgl,{ |x| x[1]==aDadosTmp[nWX,1] })
  6855. If nPosAgl>0
  6856. For nY:=1 to Len(aDadosTmp[nWX])
  6857. If Len(aDadosAgl[nPosAgl])==Len(aDadosTmp[nWX])
  6858. If ValType(aDadosTmp[nWX][nY])=='N'
  6859. aDadosAgl[nPosAgl,nY]+=aDadosTmp[nWX,nY]
  6860. Endif
  6861. Endif
  6862. Next
  6863. Else
  6864. Aadd(aDadosAgl,aDadosTmp[nWX])
  6865. Endif
  6866. Next
  6867. For nWX:=1 to Len(aSaida)
  6868. nPosAgl:=AScan( aSaidaTmp,{ |x| x[1]==aSaida[nWX,1] })
  6869. If nPosAgl>0
  6870. For nY:=1 to Len(aSaida[nWX])
  6871. If aSaidaTmp[nWX][1] == aSaida[nWX][1]
  6872. aSaidaTmp[nWX,nY]+=aSaida[nWX,nY]
  6873. Endif
  6874. Next
  6875. Else
  6876. Aadd(aSaidaTmp,aSaida[nWX])
  6877. Endif
  6878. Next
  6879. Endif
  6880. Endif
  6881. Next
  6882. aApuracao:=AClone(aDadosAgl)
  6883. cFilant:=cFilBack
  6884. aSaida :=AClone(aSaidaTmp)
  6885. Else
  6886. If SuperGetMv("MV_ESTADO") == "RJ" .And. File("P9AUTOTEXT"+"."+SuperGetMv('MV_ESTADO'))
  6887. 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)})
  6888. Else
  6889. 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)})
  6890. Endif
  6891. Endif
  6892. lLancCDA := lUsaSped
  6893.  
  6894. If !lLancCDA .Or. lP9Sped
  6895. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  6896. //?Carrega os parametros de autopreenchimento ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  6897. PRIVATE aTotal
  6898. aCFG := FsLoadCFGAp("P9AUTOTEXT")
  6899. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  6900. //?Executa a pre-configuracao de autopreenchimento ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  6901. FsExecCFGAp(aCFG[1],aCols5)
  6902. EndIf
  6903.  
  6904. cObsArt488MG := "Nota(s) de transfer阯cia de cr閐ito: "
  6905. nVlrArt488MG := 0
  6906. For nX := 1 to len(aApuracao)
  6907. If !lLancCDA .Or. lP9Sped
  6908. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  6909. //?Executa a configuracao de autopreenchimento do ICMS ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  6910. FsExecCFGAp(aCFG[2],aCols5,aApuracao[nX],aCDAIC)
  6911. EndIf
  6912. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  6913. //?Executa ponto de entrada ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  6914. If lGiaSc01
  6915. If Existblock("GIASCDEB")
  6916. nPos := ascan(aCols5,{|x|x[1]=="002"})
  6917. Aeval(aCols5,{|x| if(x[1]=="002" .and. x[nPosl]==.F.,nPos++,)})
  6918. aCols5 := Asize(aCols5,Len(aCols5)+1)
  6919. aCols5 := Ains(aCols5,nPos)
  6920. aCols5[nPos] :=Execblock("GIASCDEB",.F.,.F.)
  6921. If lUsaSPED .And. len(aCols5[nPos]) < 8
  6922. //Adiciona elemento para COD_LANCAMENTO
  6923. aCols5[nPos][7] := ""
  6924. AADD(aCols5[nPos],.F.)
  6925. EndIf
  6926. EndIf
  6927. lGiaSc01 :=.F.
  6928. EndIf
  6929.  
  6930. If substr(aApuracao[nX,1],1,1) < "5"
  6931. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  6932. //矼ontagem do aCols (1) - Op. Proprias Entradas ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  6933. nPos := Ascan(aCOLS1,{|x|x[1]==aApuracao[nX,1]})
  6934. If nPos==0
  6935. AADD(aCOLS1,Array(07))
  6936. nPos := Len(aCOLS1)
  6937. aCOLS1[nPos,01] := aApuracao[nX,1]
  6938. aCOLS1[nPos,7] := .F.
  6939. Aeval(aCOLS1[nPos],{|x,nX|aCOLS1[nPos,nX]:=0},2,5)
  6940. Endif
  6941.  
  6942. aCOLS1[nPos,2] += aApuracao[nX,11] //Valor Contabil
  6943. aCOLS1[nPos,3] += aApuracao[nX,03] //Base do ICMS
  6944. aCOLS1[nPos,4] += aApuracao[nX,04] //Valor do ICMS
  6945. aCOLS1[nPos,5] += aApuracao[nX,05] //Isentas
  6946. aCOLS1[nPos,6] += aApuracao[nX,06] //Outras
  6947.  
  6948. nPos5 := ascan(aCols5,{|x|x[1]=="005"})
  6949. aCols5[nPos5,04] += aApuracao[nX,04] //Por Entradas/prestacoes com debito do imposto
  6950.  
  6951. //If !lUsaSped .Or. !lLancCDA
  6952. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  6953. //?ICMS Complementar Diferencial de Aliq.?
  6954. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[2,3] += aApuracao[nX,10] + IIf(GetNewPar("MV_PARICMS",.F.),aApuracao[nX,18]+aApuracao[nPos,17],0)
  6955. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  6956. //?ICMS Retido Vendas (Devolucoes) ?
  6957. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[3,3] += aApuracao[nX,12]
  6958. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  6959. //?ICMS Diferido ?
  6960. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[4,3] += aApuracao[nX,14]
  6961. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  6962. //?ICMS Complementar Ativo Imobilizado ?
  6963. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[5,3] += aApuracao[nX,18]
  6964. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  6965. //?ICMS Complementar Mat. Uso ou Consumo ?
  6966. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[6,3] += aApuracao[nX,17]
  6967. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  6968. //砊ransferencia de Credito ?
  6969. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If aApuracao[nX,1] <> "1605"
  6970. aCols7[7,3] += aApuracao[nX,15]
  6971. Else
  6972. aCols7[8,3] += aApuracao[nX,16] // Transferencia de D閎ito na Entrada
  6973. Endif
  6974. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  6975. //?Apuracao ICMS Retido( Entradas ) - Credito ?
  6976. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? nPos6 := ascan(aCols6,{|x|x[1]=="006"})
  6977. If mv_par15 == 3
  6978. //Imprime somente os creditos - ST por devolucao de vendas
  6979. If !lSTInterna .Or. (lSTInterna .And. SubStr(aApuracao[nX,01],1,1)$"1/5" )
  6980. aCols6[nPos6,4] += aApuracao[nX,12]
  6981. Endif
  6982. Else
  6983. // Somando valores de devolu珲es (posi玢o 12) pois as posi珲es 21 e 08 n鉶 devem conter estes valores.
  6984. aCols6[nPos6,4] += IIf(lImpCrdSt,aApuracao[nX,21],aApuracao[nX,08]) + aApuracao[nX,12]
  6985. EndIf
  6986. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  6987. //矯redito de ICMS Solidario ?
  6988. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[9,3] += aApuracao[nX,21]
  6989. //谀哪哪哪哪哪哪哪哪哪哪哪哪目
  6990. //矯redito Estimulo - Manaus ? //滥哪哪哪哪哪哪哪哪哪哪哪哪馁
  6991. aCols7[10,3] += aApuracao[nX,30]
  6992.  
  6993. //谀哪哪哪哪哪哪哪哪哪哪哪哪目
  6994. //矲ECOP - Ceara ? //滥哪哪哪哪哪哪哪哪哪哪哪哪馁
  6995. aCols7[23,3] += aApuracao[nX,68]
  6996. aCols7[24,3] += aApuracao[nX,69]
  6997. aCols7[25,3] += aApuracao[nX,70]
  6998. aCols7[26,3] += aApuracao[nX,71]
  6999. //谀哪哪哪哪哪哪哪哪哪哪哪哪目
  7000. //矲ECP ? //滥哪哪哪哪哪哪哪哪哪哪哪哪馁
  7001. aCols7[28,3] += aApuracao[nX,73]
  7002. //谀哪哪哪哪哪哪哪哪哪哪哪哪目
  7003. //砈ENAR ? //滥哪哪哪哪哪哪哪哪哪哪哪哪馁
  7004. aCols7[29,3] += iif(!aApuracao[nX][133],0,aApuracao[nX,85])
  7005. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7006. //矯redito Presumido - RJ/PR/RO? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7007. aCols7[11,3] += aApuracao[nX,34]+ aApuracao[nX,55]+ aApuracao[nX,64]
  7008. If SF3->(FieldPos("F3_CRDPCTR"))>0 // Na entrada apenas pode se tratar de devolu玢o, portanto ser?estornado
  7009. aCols7[11,3] -= aApuracao[nX,111]
  7010. Endif
  7011. If SF3->(FieldPos("F3_CREDPRE"))>0 // Na entrada apenas pode se tratar de devolu玢o, portanto ser?estornado
  7012. aCols7[11,3] += aApuracao[nX,112]
  7013. Endif
  7014.  
  7015. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7016. //矯redito Presumido - Entradas Interestaduais Zona Franca de Manaus ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7017. aCols7[13,3] += aApuracao[nX,38]
  7018. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7019. //?Apuracao ICMS Retido( Entradas ) - Debito ?
  7020. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If !lSTInterna .Or. (lSTInterna .And. SubStr(aApuracao[nX,01],1,1)$"1/5" )
  7021. If aApuracao[nX,33]<>0
  7022. nPos6 := aScan(aCols6,{|x|x[1]=="002".And.AllTrim(x[3])==STR0130}) // "Outros Debitos - ICMS nao retido na entrada"
  7023. If nPos6 == 0
  7024. aCols6 := Asize(aCols6,Len(aCols6)+1)
  7025. nPos6 := aScan(aCols6,{|x|x[1]=="002"})
  7026. While Len(aCols6)>nPos6 .And. aCols6[nPos6][1]=="002"
  7027. nPos6++
  7028. EndDo
  7029. aCols6 := Ains(aCols6,nPos6)
  7030. aCols6[nPos6] := {"002",Soma1(aCols6[nPos6-1][2]),STR0130,aApuracao[nX,33],"","",""} //"Outros Debitos - ICMS nao retido na entrada"
  7031. If lUsaSPED
  7032. //Adiciona elemento para COD_LANCAMENTO
  7033. AADD(aCols6[nPos6],"")
  7034. EndIf
  7035. AADD(aCols6[nPos6],.F.)
  7036. Else
  7037. aCols6[nPos6,4] += aApuracao[nX,33]
  7038. EndIf
  7039. EndIf
  7040. EndIf
  7041. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪??
  7042. //矯redito Presumido(20%) sobre prestacao servico de transporte com ICMS/ST devido ao alienante/remetente|
  7043. //| da operacao - Decreto 44.147/2005 (MG) ?
  7044. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?? aCols7[14,3] += aApuracao[nX,39]
  7045. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7046. //矲undersul - Mato Grosso do Sul? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7047. aCols7[16,3] += aApuracao[nX,44]
  7048. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7049. //矱storno de Credito ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7050. aCols7[17,3] += aApuracao[nX,47]
  7051. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7052. //矯redito Outorgado SP - Decreto 56.018 de 16.07.2010, |
  7053. //|o Decreto 56.855, de 18.03.2011 e o |
  7054. //|Decreto 56.874, de 23.03.2011 ?
  7055. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[30,3] += aApuracao[nX,86]
  7056. aCols7[30,3] += aApuracao[nX,97]
  7057. aCols7[30,3] += aApuracao[nX,98]
  7058. aCols7[30,3] += aApuracao[nX,99]
  7059. If SuperGetMv("MV_ESTADO") == "MG"
  7060. aCols7[31,3] += aApuracao[nX,50]
  7061. EndIf
  7062. //谀哪哪哪哪哪?
  7063. //矲ECOP - RN ?
  7064. //滥哪哪哪哪哪? aCols7[34,3] += aApuracao[nX,106]
  7065.  
  7066. //desenvolve
  7067. aCols7[39,3] += aApuracao[nX,121]
  7068. aCols7[40,3] += iif( allTrim( aApuracao[nX,1] ) $ cDsvInd , aApuracao[nX,121] , aApuracao[nX,120] )
  7069.  
  7070. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7071. //矲EEF - RJ / DECRETO N.?45.810 DE 03 DE NOVEMBRO DE 2016 ?
  7072. //矲undo Estadual de Equil韇rio Fiscal do Estado do Rio de Janeiro?
  7073. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[42,3] += aApuracao[nX,139]
  7074.  
  7075. Else
  7076. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7077. //矼ontagem do aCols (2) - Op. Proprias Saida ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7078. nPos := Ascan(aCOLS2,{|x|x[1]==aApuracao[nX,1]})
  7079. If nPos==0
  7080. AADD(aCOLS2,Array(07))
  7081. nPos := Len(aCOLS2)
  7082. aCOLS2[nPos,01] := aApuracao[nX,1]
  7083. aCOLS2[nPos,7] := .F.
  7084. Aeval(aCOLS2[nPos],{|x,nX|aCOLS2[nPos,nX]:=0},2,5)
  7085. Endif
  7086. aCOLS2[nPos,2] += aApuracao[nX,11] //Valor Contabil
  7087. aCOLS2[nPos,3] += aApuracao[nX,03] //Base do ICMS
  7088. aCOLS2[nPos,4] += aApuracao[nX,04] //Valor do ICMS
  7089. aCOLS2[nPos,5] += aApuracao[nX,05] //Isentas
  7090. aCOLS2[nPos,6] += aApuracao[nX,06] //Outras
  7091.  
  7092. nPos5 := ascan(aCols5,{|x|x[1]=="001"})
  7093. If cMV_Estado=="SC" .And. lSimplSC
  7094. aCols5[nPos5,04] += aApuracao[nX,04] - aApuracao[nX,36] //Por saidas/prestacoes com debito do imposto - Simples/SC
  7095. Else
  7096. aCols5[nPos5,04] += aApuracao[nX,04] //Por saidas/prestacoes com debito do imposto
  7097. Endif
  7098.  
  7099. //If !lUsaSped .Or. !lLancCDA // Se usa SPED, montagem dos folder 5, 5 e 7 sera feita a parir de outro array
  7100. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7101. //?ICMS Retido Vendas ?
  7102. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7103. aCols7[1,3] += aApuracao[nX,13]
  7104. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7105. //?ICMS Diferencial de Aliquota ?
  7106. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7107. aCols7[2,3] -= aApuracao[nX,10]
  7108. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7109. //?ICMS Diferido ?
  7110. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7111. aCols7[4,3] += aApuracao[nX,14]
  7112. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7113. //?ICMS Complementar Ativo Imobilizado ?
  7114. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7115. aCols7[5,3] -= aApuracao[nX,18]
  7116. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7117. //?ICMS Complementar Mat.Uso ou Consumo?
  7118. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7119. aCols7[6,3] -= aApuracao[nX,17]
  7120. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7121. //砊ransferencia de Debito ?
  7122. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If aApuracao[nX,1] <> "5605"
  7123. aCols7[7,3] += aApuracao[nX,15] // Transferencia de Credito na Sa韉a
  7124. Else
  7125. aCols7[8,3] += aApuracao[nX,16]
  7126. Endif
  7127. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7128. //?ICMS Retido - Apuracao ST ?
  7129. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If !lSTInterna .Or. (lSTInterna .And. SubStr(aApuracao[nX,01],1,1)$"1/5" )
  7130. nPos6 := ascan(aCols6,{|x|x[1]=="001"})
  7131. aCols6[nPos6,4] += aApuracao[nX,08]
  7132. EndIf
  7133. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7134. //矰ebito de ICMS Solidario ?
  7135. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[9,3] -= aApuracao[nX,21]
  7136. //谀哪哪哪哪哪哪哪哪哪哪哪哪目
  7137. //矯redito Estimulo - Manaus ? //滥哪哪哪哪哪哪哪哪哪哪哪哪馁
  7138. aCols7[10,3] += aApuracao[nX,30]
  7139. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7140. //矯redito Presumido - RJ/PR/RO? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7141. aCols7[11,3] += aApuracao[nX,34]+ aApuracao[nX,55]+ aApuracao[nX,64]
  7142.  
  7143. If SF3->(FieldPos("F3_CRDPCTR"))>0
  7144. aCols7[11,3] += aApuracao[nX,111]
  7145. EndIf
  7146. If SF3->(FieldPos("F3_CREDPRE"))>0
  7147. aCols7[11,3] += aApuracao[nX,112]
  7148. EndIf
  7149.  
  7150. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7151. //矯redito Presumido - RJ - Prestacoes de Servicos de Transporte ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7152. aCols7[12,3] += aApuracao[nX,37]
  7153. //
  7154. //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.
  7155. aCols7[15,3] += aApuracao[nX,41]
  7156. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7157. //矲undersul - Mato Grosso do Sul? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7158. aCols7[16,3] += aApuracao[nX,44]
  7159. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7160. //砈ENAR ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7161. aCols7[29,3] += iif(!aApuracao[nX][133],0,aApuracao[nX,85])
  7162. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7163. //矱storno de Credito ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7164. aCols7[17,3] -= aApuracao[nX,47]
  7165. //谀哪哪哪哪哪哪哪哪哪哪哪哪目
  7166. //矲ECOP - Ceara ? //滥哪哪哪哪哪哪哪哪哪哪哪哪馁
  7167. aCols7[23,3] += aApuracao[nX,68]
  7168. aCols7[24,3] += aApuracao[nX,69]
  7169. aCols7[25,3] += aApuracao[nX,70]
  7170. aCols7[26,3] += aApuracao[nX,71]
  7171.  
  7172. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7173. //矯red. Presumido-art.631-A do RICMS/2008 ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7174.  
  7175. aCols7[27,3] += aApuracao[nX,72]
  7176. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7177. //矯redito Outorgado SP - Decreto 56.018 de 16.07.2010, |
  7178. //|o Decreto 56.855, de 18 .03.2011 e o |
  7179. //|Decreto 56.874, de 23.03.2011 ?
  7180. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[30,3] += aApuracao[nX,86]
  7181. aCols7[30,3] += aApuracao[nX,97]
  7182. aCols7[30,3] += aApuracao[nX,98]
  7183. aCols7[30,3] += aApuracao[nX,99]
  7184. If SuperGetMv("MV_ESTADO") == "MG"
  7185. aCols7[31,3] += aApuracao[nX,50]
  7186. EndIf
  7187. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7188. //矯redito Outorgado - GO Inc.III, Art 11 Anexo IX - RCTE-GO/97 ?
  7189. //e Fundo de Protecao Social do Estado de GO - PROTEGE ?
  7190. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? If SuperGetMv("MV_ESTADO") == "GO"
  7191. aCols7[30,3] += aApuracao[nX,110]
  7192. Endif
  7193. aCols7[41,3] += aApuracao[nX,51]
  7194. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7195. //矲EEF - RJ / DECRETO N.?45.810 DE 03 DE NOVEMBRO DE 2016 ?
  7196. //矲undo Estadual de Equil韇rio Fiscal do Estado do Rio de Janeiro?
  7197. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? aCols7[42,3] += aApuracao[nX,139]
  7198.  
  7199. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7200. //矱storno de Debito ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7201. aCols7[18,3] += aApuracao[nX,49]
  7202.  
  7203. //谀哪哪哪哪哪?
  7204. //矲ECOP - RN ?
  7205. //滥哪哪哪哪哪?
  7206. aCols7[32,3] += aApuracao[nX,104]
  7207. aCols7[33,3] += aApuracao[nX,105]
  7208.  
  7209. //谀哪哪哪哪哪?
  7210. //矲ECP - MG ?
  7211. //滥哪哪哪哪哪?
  7212. If cMV_Estado=="MG"
  7213. aCols7[35,3] += aApuracao[nX,113]
  7214. aCols7[36,3] += aApuracao[nX,114]
  7215. aCols7[37,3] += aApuracao[nX,115]
  7216. aCols7[37,3] += aApuracao[nX,116]
  7217. eNDiF
  7218. //谀哪哪哪哪哪?
  7219. //矲ECP - MT ?
  7220. //滥哪哪哪哪哪? If cMV_Estado=="MT"
  7221. aCols7[38,3] += aApuracao[nX,118]
  7222. Endif
  7223.  
  7224. //desenvolve
  7225. aCols7[39,3] += aApuracao[nX,121]
  7226. aCols7[40,3] += iif( allTrim( aApuracao[nX,1] ) $ cDsvInd , aApuracao[nX,121] , aApuracao[nX,120] )
  7227.  
  7228. //Endif
  7229. EndIf
  7230.  
  7231. // If !lUsaSped .Or. !lLancCDA
  7232.  
  7233. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7234. //矲ust ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7235. aCols7[19,3] := aApuracao[nX,53]
  7236. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7237. //矲unttel ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7238. aCols7[20,3] := aApuracao[nX,54]
  7239.  
  7240. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7241. //矯redito Acumulado de ICMS - Exportacoes ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7242. aCols7[21,3] := aApuracao[nX,62]
  7243. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7244. //矯redito Acumulado de ICMS - Outras hipoteses ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7245. aCols7[22,3] := aApuracao[nX,63]
  7246. // Endif
  7247.  
  7248. If cMV_Estado=="MG"
  7249. //quando existe valor de transferencia de credito conforme art.488 RICMS-MG, deve ser descontado esse
  7250. //valor do total de imposto a recolher
  7251. If aApuracao[nX,87]<> 0
  7252. nVlrArt488MG := nVlrArt488MG + aApuracao[nX,87]
  7253. cObsArt488MG := cObsArt488MG + aApuracao[nX,89]
  7254. lArt488MG := .T.
  7255. EndIf
  7256. If aApuracao[nX,88]<>0
  7257. nVlrArt488MG := nVlrArt488MG - aApuracao[nX,88]
  7258. cObsArt488MG := cObsArt488MG + aApuracao[nX,89]
  7259. lArt488MG := .T.
  7260. Endif
  7261. EndIf
  7262.  
  7263. If cMV_Estado=="MA"
  7264. nVlFumacop := nVlFumacop + aApuracao[nX,83]
  7265. EndIf
  7266.  
  7267. Next nX
  7268.  
  7269. If cMV_Estado=="MG"
  7270. If aCols7[35,3] < 0
  7271. aCols7[35,3] := 0
  7272. EndIf
  7273. If aCols7[36,3] < 0
  7274. aCols7[36,3] := 0
  7275. EndIf
  7276. If aCols7[37,3] < 0
  7277. aCols7[37,3] := 0
  7278. EndIf
  7279. EndIf
  7280.  
  7281. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7282. //?Insere no aCOLS7 os valores de ICMS-ST ja pagos em GNRE's emitidas junto com os documentos ?
  7283. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?For nX := 1 to len(aIcmPago)
  7284. If (nY := aScan(aCols7,{|x| Substr(x[2],1,2) == aIcmPago[nX][1] })) == 0
  7285. AADD(aCols7,{SOMA1(aCols7[len(aCols7)][1]),aIcmPago[nX][1] + " - ICMS ST pago via GNRE na emiss鉶 do Documento",0,.F.})
  7286. nY := len(aCols7)
  7287. EndIf
  7288. aCols7[nY][3] += aIcmPago[nX][2]
  7289. Next
  7290. If lUsaSped .And. lLancCDA
  7291. aApurCDA := Asort(aApurCDA,,,{|x,y|x[1]<y[1]})
  7292. For nX := 1 to len(aApurCDA)
  7293. If ("1"$aApurCDA[nX][8]) // ICMS-ST
  7294. nPos := ascan(aCols6,{|x|x[1]==aApurCDA[nX][1]})
  7295. If nPos > 0
  7296. aCols6[nPos,04] += aApurCDA[nX,04]
  7297. EndIf
  7298. Else // ICMS
  7299. nPos := ascan(aCols5,{|x|x[1]==aApurCDA[nX][1]})
  7300. If nPos > 0
  7301. aCols5[nPos,04] += aApurCDA[nX,04]
  7302. EndIf
  7303. EndIf
  7304. Next
  7305. EndIf
  7306.  
  7307. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7308. //?Insere no aCOLS5 os ajustes de ICMS levantados do CDA ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7309. For nX := 1 to len(aCDAIC)
  7310. If (nPosZ := ascan(aCols5,{|x|x[1]==aCDAIC[nX][1] .And. AllTrim(x[7])==AllTrim(aCDAIC[nX][7])}))==0
  7311. nPos := ascan(aCols5,{|x|x[1]==aCDAIC[nX][1]})
  7312. Aeval(aCols5,{|x| if(x[1]==aCDAIC[nX][1] .and. x[nPosl]==.F.,nPos++,)})
  7313. aCols5 := Asize(aCols5,Len(aCols5)+1)
  7314. aCols5 := Ains(aCols5,nPos)
  7315. aCols5[nPos] := aCDAIC[nX]
  7316. aCols5[nPos][2] := Space(10)
  7317. Else
  7318. aCols5[nPosZ][4] := aCDAIC[nX][4]
  7319. Endif
  7320. Next nX
  7321.  
  7322. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7323. //?Insere no aCOLS6 os lancamentos de ICMS-ST levantados do CDA ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7324. For nX := 1 to len(aCDAST)
  7325. If (nPosZ := ascan(aCols6,{|x|Alltrim(x[7])==Alltrim(aCDAST[nX][7])}))==0
  7326. nPos := ascan(aCols6,{|x|x[1]==aCDAST[nX][1]})
  7327. Aeval(aCols6,{|x| if(x[1]==aCDAST[nX][1] .and. x[nPosl]==.F.,nPos++,)})
  7328. aCols6 := Asize(aCols6,Len(aCols6)+1)
  7329. aCols6 := Ains(aCols6,nPos)
  7330. aCols6[nPos] := aCDAST[nX]
  7331. aCols6[nPos][2] := Space(10)
  7332. Else
  7333. aCols6[nPosZ][4] := aCDAST[nX][4]
  7334. Endif
  7335. Next
  7336.  
  7337. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7338. //?Insere no aCOLS10 - Debitos especiais os ajustes de ICMS levantados do CDA ?
  7339. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?For nX := 1 to len(aCDADE)
  7340. If ascan(aCols10,{|x|x[1]==aCDADE[nX][1] .And. AllTrim(x[7])==AllTrim(aCDADE[nX][7])})==0
  7341. nPos := ascan(aCols10,{|x|x[1]==aCDADE[nX][1]})
  7342. Aeval(aCols10,{|x| if(x[1]==aCDADE[nX][1] .and. x[nPos2]==.F.,nPos++,)})
  7343. aCols10 := Asize(aCols10,Len(aCols10)+1)
  7344. aCols10 := Ains(aCols10,nPos)
  7345. aCols10[nPos] := aCDADE[nX]
  7346. aCols10[nPos][2] := Space(10)
  7347. EndIf
  7348. Next nX
  7349.  
  7350. If lAutomato .And. lUsaSped
  7351. For nPosAuto :=1 to Len(aRetAuto)
  7352. IF aRetAuto[nPosAuto][2]=="10" .And. aRetAuto[nPosAuto][3]=="900"
  7353. If aRetAuto[nPosAuto][1] == "Aut"
  7354. nPosPad := aScan(aCOLS10,{|x|AllTrim(x[1]) == aRetAuto[nPosAuto][3] .and. AllTrim(x[2]) == aRetAuto[nPosAuto][6] .and. AllTrim(x[7]) == aRetAuto[nPosAuto][9]} )
  7355. If nPosPad > 0
  7356. AtuAcols(aCols10,nPosPad,aRetAuto,nPosAuto)
  7357. EndIf
  7358. EndIf
  7359. EndIf
  7360. Next nX
  7361. EndIf
  7362.  
  7363. IF lCon13906
  7364. For nX :=1 to Len(aConv139)
  7365. IF !aConv139[nX,01] $ SuperGetMv("MV_ESTADO")
  7366. AADD(aCOLS11,Array(07))
  7367. nPos := Len(aCOLS11)
  7368. aCOLS11[nPos,01] := aConv139[nX,01]
  7369. aCOLS11[nPos,02] := aConv139[nX,02]
  7370. aCOLS11[nPos,03] := aConv139[nX,03]
  7371. aCOLS11[nPos,04] := aConv139[nX,04]
  7372. aCOLS11[nPos,05] :=' ""
  7373. aCOLS11[nPos,06] := ""
  7374. aCOLS11[nPos,07] := .F.
  7375. aCVTot[1] += aConv139[nX,02]
  7376. aCVTot[2] += aConv139[nX,03]
  7377. aCVTot[3] += aConv139[nX,04]
  7378. EndIF
  7379. Next nX
  7380.  
  7381. //Ordena array pela UF em ordem crescente
  7382. aCOLS11 := ASort(aCOLS11,,,{|x,y| x[1] < y[1] })
  7383.  
  7384. AADD(aCOLS11,Array(07))
  7385. nPos := Len(aCOLS11)
  7386. aCOLS11[nPos,01] := STR0264 //SUB TOTAL
  7387. aCOLS11[nPos,02] := aCVTot[1]
  7388. aCOLS11[nPos,03] := aCVTot[2]
  7389. aCOLS11[nPos,04] := aCVTot[3]
  7390. aCOLS11[nPos,05] := ""
  7391. aCOLS11[nPos,06] := ""
  7392. aCOLS11[nPos,07] := .F.
  7393.  
  7394. AADD(aCOLS11,Array(07))
  7395. nPos := Len(aCOLS11)
  7396. aCOLS11[nPos,01] := SuperGetMv("MV_ESTADO")
  7397. nX:= ascan(aConv139,{|x|x[1]==aCOLS11[nPos,01]})
  7398. aCOLS11[nPos,02] := Iif(nX>0,aConv139[nX,02],0)
  7399. aCOLS11[nPos,03] := Iif(nX>0,aConv139[nX,03],0)
  7400. aCOLS11[nPos,04] := Iif(nX>0,aConv139[nX,04],0)
  7401. aCOLS11[nPos,05] := ""
  7402. aCOLS11[nPos,06] := ""
  7403. aCOLS11[nPos,07] := .F.
  7404. aCVTot[1] += aCOLS11[nPos,02]
  7405. aCVTot[2] += aCOLS11[nPos,03]
  7406. aCVTot[3] += aCOLS11[nPos,04]
  7407.  
  7408. AADD(aCOLS11,Array(07))
  7409. nPos := Len(aCOLS11)
  7410. aCOLS11[nPos,01] := STR0265//"Total Geral"
  7411. aCOLS11[nPos,02] := aCVTot[1]
  7412. aCOLS11[nPos,03] := aCVTot[2]
  7413. aCOLS11[nPos,04] := aCVTot[3]
  7414. aCOLS11[nPos,05] := ""
  7415. aCOLS11[nPos,06] := ""
  7416. aCOLS11[nPos,07] := .F.
  7417. EndIF
  7418.  
  7419. Aadd(aEstado,{'Acre ' ,'AC'})
  7420. Aadd(aEstado,{'Alagoas ','AL'})
  7421. Aadd(aEstado,{'Amap?','AP'})
  7422. Aadd(aEstado,{'Amazonas ','AM'})
  7423. Aadd(aEstado,{'Bahia ','BA'})
  7424. Aadd(aEstado,{'Cear?','CE'})
  7425. Aadd(aEstado,{'Distrito Federal ','DF'})
  7426. Aadd(aEstado,{'Esp韗ito Santo ','ES'})
  7427. Aadd(aEstado,{'Goi醩 ','GO'})
  7428. Aadd(aEstado,{'Maranh鉶 ','MA'})
  7429. Aadd(aEstado,{'Mato Grosso ','MT'})
  7430. Aadd(aEstado,{'Mato Grosso do Sul ','MS'})
  7431. Aadd(aEstado,{'Minas Gerais ','MG'})
  7432. Aadd(aEstado,{'Par?','PA'})
  7433. Aadd(aEstado,{'Para韇a ','PB'})
  7434. Aadd(aEstado,{'Paran?','PR'})
  7435. Aadd(aEstado,{'Pernambuco ','PE'})
  7436. Aadd(aEstado,{'Piau?','PI'})
  7437. Aadd(aEstado,{'Rio de Janeiro ','RJ'})
  7438. Aadd(aEstado,{'Rio Grande do Norte ','RN'})
  7439. Aadd(aEstado,{'Rio Grande do Sul ','RS'})
  7440. Aadd(aEstado,{'Rond鬾ia ','RO'})
  7441. Aadd(aEstado,{'Roraima ','RR'})
  7442. Aadd(aEstado,{'Santa Catarina ','SC'})
  7443. Aadd(aEstado,{'S鉶 Paulo ','SP'})
  7444. Aadd(aEstado,{'Sergipe ','SE'})
  7445. Aadd(aEstado,{'Tocantins ','TO'})
  7446.  
  7447. AADD(aCOLS12,Array(08))
  7448. nPos := Len(aCOLS12)
  7449. aCOLS12[nPos,01] := ''
  7450. aCOLS12[nPos,02] := ''
  7451. aCOLS12[nPos,08] := .F.
  7452.  
  7453. aApurDifal := {}
  7454. cMvEst := SuperGetMv("MV_ESTADO")
  7455.  
  7456. If lProcDifal
  7457. dbSelectArea("F0I")
  7458. F0I->(DbSetOrder (1))
  7459. EndIF
  7460.  
  7461. For nEst := 1 to Len(aEstado)
  7462. aDifEst := ApurDifal(aEstado[nEst][2] ,aEstado[nEst][1], aDifal, aCdaDifal,cNrLivro,dDtIni,lAutomato,cTestCase)
  7463.  
  7464. AADD(aCOLS12,Array(08))
  7465. nPos := Len(aCOLS12)
  7466.  
  7467. If aEstado[nEst][2] == cMvEst
  7468. aCOLS12[nPos,01] :='br_amarelo'
  7469. Else
  7470. aCOLS12[nPos,01] := Iif (Empty(IESubTrib(aEstado[nEst][2],.T.)) ,'br_vermelho' ,'br_verde' )
  7471. EndIF
  7472.  
  7473. aCOLS12[nPos,02] := aEstado[nEst][2] + ' - ' + aEstado[nEst][1]
  7474.  
  7475. if lProcDifal .AND. ascan(aDifal,{|x|x[1]==aEstado[nEst][2]}) > 0
  7476.  
  7477. aCOLS12[nPos,03] := aDifEst[aScan(aDifEst,{|x|x[2] == '010.00'} )][4]
  7478. aCOLS12[nPos,04] := aDifEst[aScan(aDifEst,{|x|x[2] == '011.00'} )][4]
  7479. aCOLS12[nPos,07] := aDifEst[aScan(aDifEst,{|x|x[2] == '012.00'} )][4]
  7480. If Year(dDtIni) < 2017
  7481. aCOLS12[nPos,05] := aDifEst[aScan(aDifEst,{|x|x[2] == '016.00'} )][4]
  7482. aCOLS12[nPos,06] := aDifEst[aScan(aDifEst,{|x|x[2] == '017.00'} )][4]
  7483. Else
  7484. aCOLS12[nPos,05] := aDifEst[aScan(aDifEst,{|x|x[2] == '022.00'} )][4]
  7485. aCOLS12[nPos,06] := aDifEst[aScan(aDifEst,{|x|x[2] == '023.00'} )][4]
  7486. aCOLS12[nPos,07] += aDifEst[aScan(aDifEst,{|x|x[2] == '024.00'} )][4]
  7487. Endif
  7488. EndIF
  7489.  
  7490. aCOLS12[nPos,08] := .F.
  7491. //Armazena array do estado no array com todos os estados
  7492. AADD(aApurDifal,{aEstado[nEst][2],aDifEst})
  7493.  
  7494. next nEst
  7495.  
  7496. AADD(aCOLS12,Array(08))
  7497. nPos := Len(aCOLS12)
  7498. aCOLS12[nPos,01] := ''
  7499. aCOLS12[nPos,02] := ''
  7500. aCOLS12[nPos,08] := .F.
  7501.  
  7502. AADD(aCOLS13,Array(08))
  7503. nPos := Len(aCOLS13)
  7504. aCOLS13[nPos,01] := ''
  7505. aCOLS13[nPos,06] := ""
  7506. aCOLS13[nPos,08] := .F.
  7507.  
  7508. If !lLancCDA .Or. lP9Sped
  7509. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7510. //?Executa a configuracao de autopreenchimento do ICMS ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7511. FsExecCFGAp(aCFG[3],aCols5)
  7512. EndIf
  7513. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7514. //矼ontagem do aCols (3) - ST Entradas ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7515. For nX := 1 to len(aEntrada)
  7516. nPos := Ascan(aCOLS3,{|x|x[1]==aEntrada[nX,01]})
  7517. If nPos==0 .and. aEntrada[nX,04]+aEntrada[nX,06]+IIF(len(aEntrada[nX])>=7,aEntrada[nX,07],0) >0
  7518. AADD(aCOLS3,Array(07))
  7519. nPos := Len(aCOLS3)
  7520. aCOLS3[nPos,01] := aEntrada[nX,01]
  7521. Aeval(aCOLS3[nPos],{|x,nX|aCOLS3[nPos,nX]:=0},2)
  7522. aCOLS3[nPos,len(aCOLS3[nPos])] := .F.
  7523. EndIf
  7524. If nPos <> 0
  7525. aCOLS3[nPos,02]+= aEntrada[nX,03] //Base ST
  7526. // mv_par15 = 3: Imprime somente os creditos - ST por devolucao de vendas.
  7527. // Mesmo tratamento aplicado na montagem do aCols6: Apura玢o - ST.
  7528. If mv_par15 <> 3
  7529. aCOLS3[nPos,03]+= IIF(lImpCrdSt,aEntrada[nX,05],aEntrada[nX,04]) //Valor Retido
  7530. EndIf
  7531. aCOLS3[nPos,04]+= aEntrada[nX,06] //Imposto debitado na Entrada
  7532. If len(aEntrada[nX]) >= 7 .And. Valtype(aCOLS3[nPos,6]) == "N"
  7533. aCOLS3[nPos,06]+= aEntrada[nX,07] //Imposto creditado na Entrada por devolucoes de vendas
  7534. EndIf
  7535. EndIf
  7536.  
  7537. Next nX
  7538.  
  7539. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  7540. //矯aso o parametro indique, o nome do arquivo do periodo anterior?
  7541. //硈era montado automaticamente pela rotina. ?
  7542. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?If Empty(cArqAnt)
  7543. If lArqAnt
  7544. If nMes == 1
  7545. nAno := nAno - 1
  7546. nMes := 12
  7547. Else
  7548. nMes := nMes - 1
  7549. Endif
  7550. cArqAnt := NmArqApur(cImp,nAno,nMes,nApuracao,nPeriodo,cNrLivro)
  7551. Endif
  7552. Endif
  7553.  
  7554. If !Empty(cArqAnt)
  7555. dbSelectArea("SX5")
  7556. dbSetOrder(1)
  7557. MsSeek(xFilial("SX5")+"12")
  7558. While !Eof() .And. SX5->X5_FILIAL == xFilial("SX5") .And. SX5->X5_TABELA == "12"
  7559. nValor := LoadAnt(substr(cArqAnt,1,Len(cArqAnt)-3)+"ST"+substr(cArqAnt,Len(cArqAnt),1),"1"+SubStr(SX5->X5_CHAVE,1,2))
  7560. nPos := Ascan(aCOLS3,{|x|x[1]==SubStr(SX5->X5_CHAVE,1,2)})
  7561. //Atualiza saldo do periodo anterior - ST
  7562. If nValor < 0
  7563. If nPos==0
  7564. AADD(aCOLS3,Array(07))
  7565. nPos := Len(aCOLS3)
  7566. aCOLS3[nPos,01] := SubStr(SX5->X5_CHAVE,1,2)
  7567. Aeval(aCOLS3[nPos],{|x,nX|aCOLS3[nPos,nX]:=0},2)
  7568. aCOLS3[nPos,len(aCOLS3[nPos])] := .F.
  7569. EndIf
  7570. aCOLS3[nPos,05]+= Abs(nValor)
  7571. EndIf
  7572.  
  7573. dbSelectArea("SX5")
  7574. dbSkip()
  7575. EndDo
  7576. EndIf
  7577. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7578. //矼ontagem do aCols (4) - ST Saidas ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7579. For nX := 1 to len(aSaida)
  7580. nPos := Ascan(aCOLS4,{|x|x[1]==aSaida[nX,01]})
  7581. If nPos==0 .and. aSaida[nX,04] >0
  7582. AADD(aCOLs4,Array(05))
  7583. nPos := Len(aCOLS4)
  7584. aCOLS4[nPos,01] := aSaida[nX,01]
  7585. aCOLS4[nPos,05] := .F.
  7586. Aeval(aCOLS4[nPos],{|x,nX|aCOLS4[nPos,nX]:=0},2,3)
  7587. Endif
  7588. if nPos <> 0
  7589. aCOLS4[nPos,02] += aSaida[nX,03] //Base ST
  7590. aCOLS4[nPos,03] += aSaida[nX,04] //Valor Retido
  7591. aCOLS4[nPos,04] += aSaida[nX,05] // fecp st
  7592. EndIf
  7593. Next nX
  7594.  
  7595. nPos5 := ascan(aCols5,{|x|x[1]=="009"})
  7596. aCols5[nPos5,4] := LoadAnt(cArqAnt,"014")
  7597.  
  7598. nPos6 := ascan(aCols6,{|x|x[1]=="011"})
  7599. aCols6[nPos6,4] := LoadAnt(substr(cArqAnt,1,Len(cArqAnt)-3)+"ST"+substr(cArqAnt,Len(cArqAnt),1),"016")
  7600.  
  7601. If lApurBa
  7602. //Exportacoes
  7603. nPos8 := ascan(aCols8,{|x|x[1]=="009"})
  7604. aCols8[nPos8,4] := LoadAnt(cArqAnt,"014","EXP")
  7605. //Outras hipoteses
  7606. nPos9 := ascan(aCols9,{|x|x[1]=="009"})
  7607. aCols9[nPos9,4] := LoadAnt(cArqAnt,"014","OUT")
  7608. Endif
  7609.  
  7610. If cMV_Estado=="MA"
  7611. nPos5 := ascan(aCols5,{|x|x[1]=="012"})
  7612. aCols5[nPos5+1,04] := nVlFumacop //Adcional FUMACOP
  7613. Endif
  7614.  
  7615. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7616. //矯aso os aCOLS estejam vazios, preenche uma linha zerada ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7617. If len(aCOLS1) == 0
  7618. AADD(aCOLS1,Array(07))
  7619. aCOLS1[1,1] := space(05)
  7620. aCOLS1[1,7] := .F.
  7621. Aeval(aCOLS1[1],{|x,nX|aCOLS1[1,nX]:=0} ,2,5)
  7622. endif
  7623. If len(aCOLS2) == 0
  7624. AADD(aCOLS2,Array(07))
  7625. aCOLS2[1,1] := space(05)
  7626. aCOLS2[1,7] := .F.
  7627. Aeval(aCOLS2[1],{|x,nX|aCOLS2[1,nX]:=0},2,5)
  7628. EndIf
  7629. If len(aCOLS3) == 0
  7630. AADD(aCOLS3,Array(07))
  7631. aCOLS3[1,1] := space(02)
  7632. Aeval(aCOLS3[1],{|x,nX|aCOLS3[1,nX]:=0},2)
  7633. aCOLS3[1,len(aCOLS3[1])] := .F.
  7634. EndIf
  7635. If len(aCOLS4) == 0
  7636. AADD(aCOLS4,Array(05))
  7637. aCOLS4[1,1] := space(02)
  7638. aCOLS4[1,5] := .F.
  7639. Aeval(aCOLS4[1],{|x,nX|aCOLS4[1,nX]:=0},2,3)
  7640. EndIf
  7641.  
  7642. Return
  7643.  
  7644. /*/
  7645. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  7646. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  7647. 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  7648. 北矲uncao 矲sLoadCFGA?Autor 矱duardo Riera ?Data ?1.06.2003潮?
  7649. 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  7650. 北矰escri噮o 矻eitura da configuracao de AutoTexto 潮?
  7651. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  7652. 北砇etorno 矱xpA1: Array com a seguinte estrutura: 潮?
  7653. 北? ? [1] Array com a Pre-configuracao a ser executada 潮?
  7654. 北? ? [2] Array com os valores a serem executados 潮?
  7655. 北? ? [3] Array com a Pos-configuracao a ser executada 潮?
  7656. 北? ? [4] Array com a Observacao a ser executada 潮?
  7657. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  7658. 北砅arametros矱xpC1: Arquivo de configuracao 潮?
  7659. 北? ? 潮?
  7660. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  7661. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  7662. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  7663. Static Function FsLoadCFGAp(cArquivo)
  7664.  
  7665. Local aArea := GetArea()
  7666. Local aCFG := {{},{},{},{}}
  7667. Local cArqCFG := AllTrim(cArquivo)
  7668. Local cLinha := ""
  7669. Local nLinha := 0
  7670. Local aPre := {}
  7671. Local aPos := {}
  7672. Local aVlr := {}
  7673.  
  7674. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7675. //?Procura o arquivo de configuracao do Estado ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7676. If File(cArqCFG+"."+SuperGetMv('MV_ESTADO'))
  7677. cArqCFG := cArqCFG+"."+SuperGetMv('MV_ESTADO')
  7678. Else
  7679. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7680. //?Utiliza o arquivo de configuracao Generico ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7681. cArqCFG := cArqCFG+".CFG"
  7682. EndIf
  7683.  
  7684. If File(cArqCFG)
  7685. FT_FUSE(cArqCFG)
  7686. FT_FGotop()
  7687. While ( !FT_FEof() )
  7688. cLinha := AllTrim(FT_FREADLN())
  7689. Do Case
  7690. Case SubStr(cLinha,1,1)=="["
  7691. If nLinha <> 0
  7692. aadd(aCFG[nLinha],aPre)
  7693. aadd(aCFG[nLinha],aVlr)
  7694. aadd(aCFG[nLinha],aPos)
  7695. EndIf
  7696. nLinha++
  7697. aPre := {}
  7698. aPos := {}
  7699. aVlr := {}
  7700. Case SubStr(cLinha,1,4)=="(PRE"
  7701. aadd(aPre,SubStr(cLinha,6))
  7702. Case SubStr(cLinha,1,4)=="(POS"
  7703. aadd(aPos,SubStr(cLinha,6))
  7704. OtherWise
  7705. aadd(aVlr,cLinha)
  7706. EndCase
  7707. FT_FSKIP()
  7708. EndDo
  7709. If nLinha <= Len(aCFG)
  7710. aadd(aCFG[nLinha],aPre)
  7711. aadd(aCFG[nLinha],aVlr)
  7712. aadd(aCFG[nLinha],aPos)
  7713. EndIf
  7714. FT_FUse()
  7715. Else
  7716. aCFG := {{{},{},{}},{{},{},{}},{{},{},{}},{{},{},{}}}
  7717. EndIf
  7718. RestArea(aArea)
  7719. Return(aCFG)
  7720.  
  7721. /*/
  7722. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  7723. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  7724. 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  7725. 北矲uncao 矲sExecCFGA?Autor 矱duardo Riera ?Data ?1.06.2003潮?
  7726. 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  7727. 北矰escri噮o 矱xecucao do AutoText da apuracao de ICMS 潮?
  7728. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  7729. 北砇etorno 砃enhum 潮?
  7730. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  7731. 北砅arametros矱xpA1: Array de configuracao a ser executado 潮?
  7732. 北? 矱xpA2: Acols da Apuracao que deve ser atualizado 潮?
  7733. 北? 矱xpA3: Valor a ser passado, qdo a avaliacao for um codeblock潮?
  7734. 北? ? (OPCIONAL) 潮?
  7735. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  7736. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  7737. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  7738. Static Function FsExecCFGAp(aCFG,aCols,aCB,aAuxCDAIC)
  7739.  
  7740. Local aArea := GetArea()
  7741. Local nX := 0
  7742. Local nY := 0
  7743. Local nP := 0
  7744. Local nPosA := 0
  7745. Local nTamCDA:= 0
  7746. Local lGrvCDA:= .F.
  7747. Local cLinha := ""
  7748. Local cCodigo:= ""
  7749. Local cCodInt:= ""
  7750. Local cCodST:= ""
  7751. Local cTexto := ""
  7752. Local cValor := ""
  7753. Local nValor := 0
  7754. Local cCodGia:= ""
  7755. Local cClasse:= ""
  7756. Local cExec := ""
  7757. Local cResult:= ""
  7758. Local lUsaSped := SuperGetMv("MV_USASPED",,.T.) .And. AliasIndic("CDH") .And. AliasIndic("CDA") .And. AliasIndic("CC6") .And. AliasIndic("CDO")
  7759. Local lP9Sped := SuperGetMv("MV_P9SPED",,.F.)
  7760. Default aAuxCDAIC := {}
  7761.  
  7762. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7763. //?Executa o Pre-Processamento ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7764. For nX := 1 To Len(aCFG[1])
  7765. cLinha := aCFG[1,nX]
  7766. If !Empty(cLinha)
  7767. cLinha := &cLinha
  7768. If ValType(cLinha)=="B"
  7769. Eval(cLinha,aCB)
  7770. EndIf
  7771. EndIf
  7772. Next nX
  7773. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7774. //?Executa o Processamento ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7775. For nX := 1 To Len(aCFG[2])
  7776. cLinha := aCFG[2,nX]
  7777. cCodigo:= SubStr(cLinha,1,3)
  7778. If cCodigo$"ST /DE "
  7779. nY := At("=",cLinha)
  7780. cCodST := SubStr(cLinha,nY-3,3)
  7781. Endif
  7782. nY := At("=",cLinha)
  7783. cLinha := SubStr(cLinha,nY+1)
  7784.  
  7785. Do Case
  7786. Case cCodigo == "OBS"
  7787. nY := At(";",cLinha)
  7788. nY := IIf(nY==0,Len(cLinha)+1,nY)
  7789. cResult := SubStr(cLinha,1,nY-1)
  7790. cValor := &cResult
  7791. If ValType(cValor)<>"C"
  7792. cValor := Eval(&(cResult),aCB)
  7793. EndIf
  7794. aadd(aCols,cValor)
  7795. OtherWise
  7796. nY := At(";",cLinha)
  7797. cCodInt := SubStr(cLinha,1,nY-1)
  7798. cLinha := SubStr(cLinha,nY+1)
  7799.  
  7800. nY := At(";",cLinha)
  7801. cTexto := SubStr(cLinha,1,nY-1)
  7802. cLinha := SubStr(cLinha,nY+1)
  7803.  
  7804. nY := At(";",cLinha)
  7805. cValor := SubStr(cLinha,1,nY-1)
  7806. nValor := &cValor
  7807. If ValType(nValor)<>"N"
  7808. nValor := Eval(&(cValor),aCB)
  7809. EndIf
  7810. cLinha := SubStr(cLinha,nY+1)
  7811.  
  7812. nY := At(";",cLinha)
  7813. If nY==0
  7814. nY := IIf(nY==0,Len(cLinha)+1,nY)
  7815. cCodGia := SubStr(cLinha,1,nY-1)
  7816. cLinha := SubStr(cLinha,nY+1)
  7817. Else
  7818. cCodGia := SubStr(cLinha,1,nY-1)
  7819. cLinha := SubStr(cLinha,nY+1)
  7820.  
  7821. nY := At(";",cLinha)
  7822. nY := IIf(nY==0,Len(cLinha)+1,nY)
  7823. cExec := SubStr(cLinha,1, nY-1)
  7824. If !Empty(cExec) .And. ValType(&(cExec))=="L"
  7825. If &(cExec)
  7826. If cCodigo=="DE "
  7827. aAdd (aExclApur, {&(cExec), cCodInt, nValor, .F., "DE"})
  7828. ElseIf cCodigo <> "ST "
  7829. aAdd (aExclApur, {&(cExec), cCodInt, nValor, .F., "IC"})
  7830. Else
  7831. aAdd (aExclApur, {&(cExec), cCodInt, nValor, .F., "ST"})
  7832. EndIf
  7833. EndIf
  7834. EndIf
  7835. cLinha := SubStr(cLinha,nY+1)
  7836. EndIf
  7837. nY := At(";",cLinha)
  7838. If nY>0
  7839. cClasse := SubStr(cLinha,1,nY-1)
  7840. Endif
  7841.  
  7842. If cCodigo=="DE "
  7843. If nValor <> 0
  7844. If ((nY := aScan(aCols10,{|x| AllTrim(x[2])==cCodInt .And. Iif(lP9Sped,AllTrim(x[2])==AllTrim(cCodInt),AllTrim(x[3])==AllTrim(cTexto))}))==0)
  7845. nY := aScan(aCols10,{|x| x[1]==Left(cCodST,3) })
  7846. aEval(aCols10,{|x| nY += IIf(x[1]==Left(cCodST,3) .And. x[len(aCols10[nY])]==.F.,1,0)})
  7847. aCols10 := aSize(aCols10,Len(aCols10)+1)
  7848. aCols10 := aIns(aCols10,nY)
  7849. If !lUsaSped
  7850. aCols10[nY] := {Left(cCodST,3),PadR(cCodInt,10),cTexto,nValor,cCodGia,cClasse,.F.}
  7851. Else
  7852. aCols10[nY] := {Left(cCodST,3),PadR(cCodInt,10),cTexto,nValor,cCodGia,cClasse,Space(10),.F.}
  7853. EndIf
  7854. Else
  7855. aCols10[nY, 4] := nValor
  7856.  
  7857. Endif
  7858. EndIf
  7859. ElseIf cCodigo <> "ST "
  7860. If nValor <> 0
  7861. If ((nY := aScan(aCols,{|x| x[1]==cCodigo .And. Iif(lP9Sped,AllTrim(x[2])==AllTrim(cCodInt),AllTrim(x[3])==AllTrim(cTexto))}))==0)
  7862. nY := aScan(aCols,{|x| x[1]==cCodigo })
  7863. aEval(aCols,{|x| nY += IIf(x[1]==cCodigo .And. x[len(aCols[nY])]==.F.,1,0)})
  7864. aCols := aSize(aCols,Len(aCols)+1)
  7865. aCols := aIns(aCols,nY)
  7866. If !lUsaSped
  7867. aCols[nY] := {cCodigo,PadR(cCodInt,10),cTexto,nValor,cCodGia,cClasse,.F.}
  7868. Else
  7869. nTamCDA := Len(aAuxCDAIC)
  7870. lGrvCDA := .F.
  7871. If !(SuperGetMv("MV_ESTADO") == "SC" .And. ((cCodInt = "25020" .And. Alltrim(aCb[1]) $ "2406|2551|2552|2553|2554|2555|2604") .Or.;
  7872. (cCodInt = "25030" .And. Alltrim(aCb[1]) $ "2407|2556|2557")) .And. nTamCDA > 0)
  7873.  
  7874. aCols[nY] := {cCodigo,PadR(cCodInt,10),cTexto,nValor,cCodGia,cClasse,space(10),"",.F.}
  7875. lGrvCDA := .T.
  7876. Else
  7877.  
  7878. For nP := 1 to nTamCDA
  7879.  
  7880. If aAuxCDAIC[nP][1] == cCodigo .And. ((cCodInt == "25030" .And. aAuxCDAIC[nP][7] == "SC40000003") .Or.;
  7881. (cCodInt == "25020" .And. aAuxCDAIC[nP][7] == "SC40000002"))
  7882.  
  7883. aCols[nY] := {cCodigo,PadR(cCodInt,10),cTexto,nValor,cCodGia,cClasse,aAuxCDAIC[nP][7],"",.F.}
  7884. nP := nTamCDA
  7885. lGrvCDA := .T.
  7886. EndIf
  7887. Next nP
  7888. EndIf
  7889. IIf(!lGrvCDA,aCols[nY] := {cCodigo,PadR(cCodInt,10),cTexto,nValor,cCodGia,cClasse,space(10),"",.F.}, Nil)
  7890.  
  7891. EndIf
  7892. Else
  7893. aCols[nY,4] := nValor
  7894. Endif
  7895.  
  7896. EndIf
  7897. Else
  7898. If nValor <> 0
  7899. If ((nY := aScan(aCols6,{|x| AllTrim(x[2])==AllTrim(cCodInt) .And. Iif(lP9Sped,AllTrim(x[2])==AllTrim(cCodInt),AllTrim(x[3])==AllTrim(cTexto))}))==0)
  7900. nY := aScan(aCols6,{|x| x[1]==Left(cCodST,3) })
  7901. aEval(aCols6,{|x| nY += IIf(x[1]==Left(cCodST,3) .And. x[len(aCols6[nY])]==.F.,1,0)})
  7902. aCols6 := aSize(aCols6,Len(aCols6)+1)
  7903. aCols6 := aIns(aCols6,nY)
  7904. If !lUsaSped
  7905. aCols6[nY] := {Left(cCodST,3),PadR(cCodInt,10),cTexto,nValor,cCodGia,cClasse,.F.}
  7906. Else
  7907. aCols6[nY] := {Left(cCodST,3),PadR(cCodInt,10),cTexto,nValor,cCodGia,cClasse,Space(10),"",.F.}
  7908. EndIf
  7909. Else
  7910. aCols6[nY, 4] := nValor
  7911. EndIf
  7912.  
  7913. EndIf
  7914. Endif
  7915. EndCase
  7916. Next nX
  7917. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  7918. //?Executa o Pos-Processamento ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  7919. For nX := 1 To Len(aCFG[3])
  7920. cLinha := aCFG[3,nX]
  7921. If !Empty(cLinha)
  7922. cLinha := &cLinha
  7923. If ValType(cLinha)=="B"
  7924. Eval(cLinha,aCB)
  7925. EndIf
  7926. EndIf
  7927. Next nX
  7928. RestArea(aArea)
  7929. Return(.T.)
  7930.  
  7931. /*/
  7932. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  7933. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  7934. 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  7935. 北矲uncao 矲sApCiap ?Autor 矱duardo Riera ?Data ?1.06.2003潮?
  7936. 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  7937. 北矰escri噮o 矯alculo da Apuracao de ICMS com os estornos do CIAP 潮?
  7938. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  7939. 北砇etorno 矱xpA: 潮?
  7940. 北? 砙1] Valor do Estorno CIAP para o periodo informado 潮?
  7941. 北? 砙2] Valor do Credito CIAP para o periodo informado 潮?
  7942. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  7943. 北砅arametros矱xpD1: Data Inicial 潮?
  7944. 北? 矱xpD2: Data Final 潮?
  7945. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  7946. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  7947. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  7948. Function FsApCiap(dDtIni,dDtFim)
  7949. Local aArea := GetArea()
  7950. Local cAliasSFA := "SFA"
  7951. Local dLei102 := SuperGetMv("MV_DATCIAP")
  7952. Local lQuery := .F.
  7953. Local lCredito := .T.
  7954. Local nEstCiap := 0
  7955. Local nCredCiap := 0
  7956. Local nDebCiap := 0
  7957. Local cCampos := "SFA.FA_FILIAL,SFA.FA_DATA,SFA.FA_CODIGO,SFA.FA_TIPO,SFA.FA_CREDIT,SFA.FA_VALOR"
  7958.  
  7959. If SFA->(FieldPos("FA_VALICCO")) > 0
  7960. cCampos += ",SFA.FA_VALICCO"
  7961. Endif
  7962.  
  7963. If SFA->(FieldPos("FA_VLDBATV")) > 0
  7964. cCampos += ",SFA.FA_VLDBATV"
  7965. Endif
  7966.  
  7967. cCampos := "%" + cCampos + "%"
  7968.  
  7969. dbSelectARea("SFA")
  7970. dbSetOrder(2)
  7971.  
  7972. #IFDEF TOP
  7973.  
  7974. If TcSrvType()<>"AS/400"
  7975.  
  7976. lQuery := .T.
  7977. cAliasSFA := GetNextAlias()
  7978.  
  7979. BeginSql Alias cAliasSFA
  7980. COLUMN FA_DATA AS DATE
  7981.  
  7982. SELECT %Exp:cCampos%
  7983.  
  7984. FROM %table:SFA% SFA
  7985.  
  7986. WHERE SFA.FA_FILIAL = %xFilial:SFA% AND
  7987. SFA.FA_DATA >= %Exp:dDtIni% AND
  7988. SFA.FA_DATA <= %Exp:dDtFim% AND
  7989. SFA.%NotDel%
  7990.  
  7991. ORDER BY %Order:SFA%
  7992. EndSql
  7993.  
  7994. dbSelectArea(cAliasSFA)
  7995.  
  7996. Else
  7997.  
  7998. #ENDIF
  7999.  
  8000. MsSeek(xFilial("SFA")+Dtos(dDtIni),.T.)
  8001.  
  8002. #IFDEF TOP
  8003. Endif
  8004. #ENDIF
  8005.  
  8006. While ( (cAliasSFA)->(!Eof()).And. xFilial("SFA")==(cAliasSFA)->FA_FILIAL .And.(cAliasSFA)->FA_DATA<=dDtFim )
  8007.  
  8008. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  8009. //矯onforme Regulamento do ICMS do Estado de Santa Catarina, ativos permanentes ?
  8010. //硄ue tiverem ingressado no estabelecimento at?31/12/2000 devem ter lan鏰dos os ?
  8011. //硋alores de estornos na apura玢o do ICMS (Art. 37). J?para ativos permanentes que ?
  8012. //硉iverem ingressado no estabelecimento a partir de 01/01/2001, deve ser emitida Nota ?
  8013. //矲iscal, modelo 1 ou 1-A, para fins de entrada, indicando o valor do cr閐ito a ser ?
  8014. //砤propriado, bem como ser registrado o valor do cr閐ito referido no inciso I na coluna ?
  8015. //矯r閐ito do Imposto do livro Registro de Entradas. ?
  8016. //|A partir de 27/11/08, foi revogada a obrigatoriedade de nota fiscal de entrada para |
  8017. //|lan鏰mento do cr閐ito do ativo permanente mensalmente, dada pela altera玢o 1.817 |
  8018. //|do RICMS, artigo 37, ?2? ? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  8019. If SuperGetMv("MV_ESTADO") == "SC"
  8020. If DTOS(SFA->FA_DATA) < "20081101"
  8021. SF9->(dbSetOrder(1))
  8022. SF9->(dbSeek(xFilial("SF9")+(cAliasSFA)->FA_CODIGO))
  8023. If SF9->F9_DTENTNE < dLei102
  8024. lCredito := .T.
  8025. IF ((cAliasSFA)->FA_TIPO == "1" ) .And. ((cAliasSFA)->FA_CREDIT=="2")
  8026. nCredCiap += (cAliasSFA)->FA_VALOR
  8027. EndIf
  8028. If ( (cAliasSFA)->FA_TIPO=="2" ) .And. (cAliasSFA)->FA_CREDIT<>"1"
  8029. nEstCiap += (cAliasSFA)->FA_VALOR
  8030. EndIf
  8031. Else
  8032. lCredito := .F.
  8033. Endif
  8034. Endif
  8035. Endif
  8036.  
  8037. If ( (cAliasSFA)->FA_TIPO=="2" ) .And. (cAliasSFA)->FA_CREDIT<>"1"
  8038. nEstCiap += (cAliasSFA)->FA_VALOR
  8039. EndIf
  8040.  
  8041. IF ((cAliasSFA)->FA_TIPO == "1" ) .And. ((cAliasSFA)->FA_CREDIT=="1")
  8042. If lCredito
  8043. nCredCiap += (cAliasSFA)->FA_VALOR
  8044. Endif
  8045. EndIf
  8046.  
  8047. If (cAliasSFA)->(FieldPos("FA_VLDBATV")) > 0 .AND. GetNewPar("MV_PARICMS",.F.)
  8048. If ((cAliasSFA)->FA_TIPO=="2") .And. (cAliasSFA)->FA_CREDIT<>"1"
  8049. nDebCiap -= (cAliasSFA)->FA_VLDBATV
  8050. EndIf
  8051. IF ((cAliasSFA)->FA_TIPO=="1") .And. ((cAliasSFA)->FA_CREDIT=="1")
  8052. nDebCiap += (cAliasSFA)->FA_VLDBATV
  8053. EndIf
  8054. Endif
  8055.  
  8056. dbSelectArea(cAliasSFA)
  8057. DbSkip()
  8058. EndDo
  8059. If lQuery
  8060. dbSelectArea(cAliasSFA)
  8061. dbCloseArea()
  8062. dbSelectArea("SFA")
  8063. EndIf
  8064. RestArea(aArea)
  8065. Return({nEstCiap,nCredCiap,nDebCiap})
  8066.  
  8067. /*/
  8068. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  8069. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  8070. 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  8071. 北矲uncao 砅rocEst ?Autor 矱dstron E. Correia ?Data ?1.01.2005潮?
  8072. 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  8073. 北矰escri噮o 矯alcula Credito de Estimulo para Apuracao de ICMS - Manaus 潮?
  8074. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  8075. 北砅arametros矱xpD1: Data Inicial 潮?
  8076. 北? 矱xpD2: Data Final 潮?
  8077. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  8078. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  8079. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  8080. Function ProcEst(dDataIni,dDataFim,aEstimulo,cNrLivro,aIncent)
  8081.  
  8082. Local aArea := GetArea()
  8083. Local aStruSD1 := {}
  8084. Local aStruSD2 := {}
  8085. Local aStruSF3 := {}
  8086.  
  8087. Local cAliasSD1 := "SD1"
  8088. Local cIndSd1 := ""
  8089. Local cAliasSD2 := "SD2"
  8090. Local cIndSd2 := ""
  8091. Local cAliasSF3 := "SF3"
  8092. Local cIndSF3 := ""
  8093. Local cChave := ""
  8094. Local cFiltro := ""
  8095. Local cCFOS := SuperGetMv("MV_INCENTS",.F.,"5101/5949/6102/6949")
  8096. Local cCFOE := SuperGetMv("MV_INCENTE",.F.,"1102/2102/2907")
  8097.  
  8098. Local lQuery := .F.
  8099.  
  8100. Local nX := 0
  8101. Local nEstEntr := 0
  8102. Local nBaseEntr := 0
  8103. Local nValEntr := 0
  8104. Local nValContE := 0
  8105. Local nEstSaid := 0
  8106. Local nBaseSaid := 0
  8107. Local nValSaid := 0
  8108. Local nValContS := 0
  8109. Local nItem := 0
  8110. Local nRetInd := 0
  8111. Local nNum := 0
  8112. Local nRec := 0
  8113. Local nFTIN := 0
  8114. Local nFTIF := 0
  8115. Local nBaseIncE := 0
  8116. Local nBaseIncS := 0
  8117. Local nValIcmE := 0
  8118. Local nValIcmS := 0
  8119. Local nPercCred := 0
  8120. Local nBaseInc := 0
  8121. Local nValIcm := 0
  8122. Local nI := 0
  8123. Local nFtiFrete := 0
  8124. Local cCampo := ""
  8125. Local cCampo2 := ""
  8126. Local cCfoExt := ""
  8127. Local aRegra := M953CRDM()
  8128. Local dDtCrdEs := SuperGetMv("MV_DTCRDES",.T.,cToD("//"))
  8129.  
  8130. #IFDEF TOP
  8131. Local cDtCanc := ""
  8132. Local cQuery := ""
  8133. #ENDIF
  8134.  
  8135. Default cNrLivro := "*"
  8136. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  8137. //砄 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. ?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  8138. If dDataIni <= dDtCrdEs .Or. dDtCrdEs == cToD("//")
  8139.  
  8140. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  8141. //砅rocessa item a item, entradas e saidas?
  8142. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? dbSelectArea("SD1")
  8143. SD1->(dbsetorder(1))
  8144.  
  8145. #IFDEF TOP
  8146. If TcSrvType()<>"AS/400"
  8147.  
  8148. lQuery := .T.
  8149. cAliasSD1 := GetNextAlias()
  8150.  
  8151. BeginSql Alias cAliasSD1
  8152. COLUMN D1_DTDIGIT AS DATE
  8153. 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
  8154.  
  8155. FROM %table:SD1% SD1
  8156.  
  8157. WHERE SD1.D1_FILIAL = %xFilial:SD1% AND
  8158. SD1.D1_DTDIGIT >= %Exp:dDataIni% AND
  8159. SD1.D1_DTDIGIT <= %Exp:dDataFim% AND
  8160. SD1.%NotDel%
  8161.  
  8162. ORDER BY %Order:SD1%
  8163. EndSql
  8164.  
  8165. dbSelectArea(cAliasSD1)
  8166. Else
  8167. #ENDIF
  8168. cIndSd1 := CriaTrab (NIL, .F.)
  8169. cChave := IndexKey()
  8170. cFiltro := "D1_FILIAL=='"+xFilial("SD1")+"'"
  8171. cFiltro += " .And. DTOS(SD1->D1_DTDIGIT)>='"+DTOS(dDataIni)+"' .AND. DTOS(SD1->D1_DTDIGIT)<='"+DTOS(dDataFim)+"' "
  8172. IndRegua (cAliasSd1, cIndSd1, cChave,, cFiltro)
  8173. nRetInd := RetIndex (cAliasSd1)
  8174. DbSetIndex (cIndSd1+OrdBagExt ())
  8175. DbSetOrder (nRetInd+1)
  8176. nRec := LastRec()
  8177. ProcRegua(nRec)
  8178. DbGoTop ()
  8179. #IFDEF TOP
  8180. Endif
  8181. #ENDIF
  8182.  
  8183. nBaseIncE := 0.00
  8184. nValIcmE := 0.00
  8185.  
  8186. While !(cAliasSd1)->(Eof())
  8187. IncProc(STR0119) //"Processamento Credito Estimulo - Entradas"
  8188. If SB1->(DbSeek(xFilial("SB1")+(cAliasSD1)->D1_COD))
  8189. SB5->(DbSeek(xFilial("SB5")+(cAliasSD1)->D1_COD))
  8190. 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)
  8191. nItem := 1
  8192. SF1->(DbSetOrder (1))
  8193. SF1->(DbSeek (xFilial ("SF1")+(cAliasSD1)->D1_DOC+(cAliasSD1)->D1_SERIE+(cAliasSD1)->D1_FORNECE+(cAliasSD1)->D1_LOJA))
  8194. MaFisEnd ()
  8195. MaFisIniNf (1, 0,, "SF1", .F.)
  8196. SB1->(DbSeek(xFilial("SB1")+(cAliasSD1)->D1_COD))
  8197. Else
  8198. If nItem=0
  8199. SF1->(DbSetOrder (1))
  8200. SF1->(DbSeek (xFilial ("SF1")+(cAliasSD1)->D1_DOC+(cAliasSD1)->D1_SERIE+(cAliasSD1)->D1_FORNECE+(cAliasSD1)->D1_LOJA))
  8201. MaFisEnd ()
  8202. MaFisIniNf (1, 0,, "SF1", .F.)
  8203. SB1->(DbSeek(xFilial("SB1")+(cAliasSD1)->D1_COD))
  8204. Endif
  8205. nItem++
  8206. EndIf
  8207. nBaseEntr := MaFisRet (nItem, "LF_BASEICM")
  8208. nValContE := MaFisRet (nItem, "LF_VALCONT")
  8209. cCfoExt := MaFisRet (nItem, "LF_CFOEXT")
  8210. nFTIN := IIF(AllTrim((cAliasSD1)->D1_CF)=="2101",(nValContE*(SB5->B5_FTIN/100)),0)
  8211. If !Empty(SB1->B1_CRDEST) .Or. !Empty(SB5->B5_PROPOR1)
  8212. If !Empty(SB5->B5_PROPOR1)
  8213. For nI :=1 TO 2
  8214. cCampo :="B5_PROPOR"+AllTrim(Str(nI))
  8215. cCampo2 :="B5_CRDEST"+AllTrim(Str(nI))
  8216. nValEntr := MaFisRet (nItem, "LF_VALICM") * &("SB5->"+cCampo)/100
  8217. nEstEntr := nValEntr * &("SB5->"+cCampo2)/100
  8218. nNum :=Ascan(aEstimulo,{|x|x[1]==&("SB5->"+cCampo2)})
  8219. If nNum==0
  8220. AADD(aEstimulo,{&("SB5->"+cCampo2),nEstEntr,0,nBaseEntr,nValEntr,0,0,nFTIN,0})
  8221. Else
  8222. aEstimulo[nNum,02] +=nEstEntr
  8223. aEstimulo[nNum,04] +=nBaseEntr
  8224. aEstimulo[nNum,05] +=nValEntr
  8225. aEstimulo[nNum,08] +=nFTIN
  8226. Endif
  8227. Next
  8228. Else
  8229. nValEntr := MaFisRet (nItem, "LF_VALICM")
  8230. nEstEntr := MaFisRet (nItem, "LF_VALICM") * SB1->B1_CRDEST / 100
  8231. nNum :=Ascan(aEstimulo,{|x|x[1]==SB1->B1_CRDEST})
  8232. If nNum==0
  8233. AADD(aEstimulo,{SB1->B1_CRDEST,nEstEntr,0,nBaseEntr,nValEntr,0,0,nFTIN,0,nBaseIncE,nValIcmE,0,0})
  8234. Else
  8235. aEstimulo[nNum,02] +=nEstEntr
  8236. aEstimulo[nNum,04] +=nBaseEntr
  8237. aEstimulo[nNum,05] +=nValEntr
  8238. aEstimulo[nNum,08] +=nFTIN
  8239. Endif
  8240. Endif
  8241. Else
  8242. If !Empty(cCfoExt)
  8243. nNum :=Ascan(aIncent,{|x|x[1]=="INC"})
  8244. If nNum==0
  8245. AADD(aIncent,{"INC",MaFisRet(nItem,"LF_BASEICM"),MaFisRet(nItem,"LF_VALICM"),0,0})
  8246. Else
  8247. aIncent[nNum,02] +=MaFisRet(nItem,"LF_BASEICM")
  8248. aIncent[nNum,03] +=MaFisRet(nItem,"LF_VALICM")
  8249. Endif
  8250. Endif
  8251. Endif
  8252. Endif
  8253. (cAliasSD1)->(dbskip())
  8254. Enddo
  8255. #IFDEF TOP
  8256. dbSelectArea(cAliasSD1)
  8257. dbCloseArea()
  8258. #ELSE
  8259. dbSelectArea(cAliasSD1)
  8260. RetIndex (cAliasSd1)
  8261. FErase (cIndSd1+OrdBagExt ())
  8262. #ENDIF
  8263.  
  8264. dbSelectArea("SD2")
  8265. SD2->(DbSetOrder(3))
  8266.  
  8267. #IFDEF TOP
  8268. If TcSrvType()<>"AS/400"
  8269.  
  8270. lQuery := .T.
  8271. cAliasSD2 := GetNextAlias()
  8272.  
  8273. BeginSql Alias cAliasSD2
  8274. COLUMN D2_EMISSAO AS DATE
  8275. 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
  8276.  
  8277. FROM %table:SD2% SD2
  8278.  
  8279. WHERE SD2.D2_FILIAL = %xFilial:SD2% AND
  8280. SD2.D2_EMISSAO >= %Exp:dDataIni% AND
  8281. SD2.D2_EMISSAO <= %Exp:dDataFim% AND
  8282. SD2.%NotDel%
  8283.  
  8284. ORDER BY %Order:SD2%
  8285. EndSql
  8286.  
  8287. dbSelectArea(cAliasSD2)
  8288.  
  8289. Else
  8290. #ENDIF
  8291. cIndSd2 := CriaTrab (NIL, .F.)
  8292. cChave := IndexKey()
  8293. cFiltro := "D2_FILIAL=='"+xFilial("SD2")+"'"
  8294. cFiltro += " .And. DTOS(SD2->D2_EMISSAO)>='"+DTOS(dDataIni)+"' .AND. DTOS(SD2->D2_EMISSAO)<='"+DTOS(dDataFim)+"' "
  8295. IndRegua (cAliasSd2, cIndSd2, cChave,, cFiltro)
  8296. nRetInd := RetIndex (cAliasSd2)
  8297. DbSetIndex (cIndSd2+OrdBagExt ())
  8298. DbSetOrder (nRetInd+1)
  8299. nRec := LastRec()
  8300. ProcRegua(nRec)
  8301. DbGoTop ()
  8302. #IFDEF TOP
  8303. Endif
  8304. #ENDIF
  8305.  
  8306. nItem := 0
  8307. nBaseIncS := 0.00
  8308. nValIcmS := 0.00
  8309. While !(cAliasSD2)->(Eof ())
  8310. IncProc(STR0120) //"Processamento Credito Estimulo - Saidas"
  8311. If SB1->(DbSeek(xFilial("SB1")+(cAliasSD2)->D2_COD))
  8312. SB5->(DbSeek(xFilial("SB5")+(cAliasSD2)->D2_COD))
  8313. 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)
  8314. nItem := 1
  8315. SF2->(DbSetOrder (1))
  8316. SF2->(DbSeek (xFilial ("SF2")+(cAliasSD2)->D2_DOC+(cAliasSD2)->D2_SERIE+(cAliasSD2)->D2_CLIENTE+(cAliasSD2)->D2_LOJA))
  8317. MaFisEnd ()
  8318. MaFisIniNf (2, 0,, "SF2", .F.)
  8319. SB1->(DbSeek(xFilial("SB1")+(cAliasSD2)->D2_COD))
  8320. Else
  8321. If nItem=0
  8322. SF2->(DbSetOrder (1))
  8323. SF2->(DbSeek (xFilial ("SF2")+(cAliasSD2)->D2_DOC+(cAliasSD2)->D2_SERIE+(cAliasSD2)->D2_CLIENTE+(cAliasSD2)->D2_LOJA))
  8324. MaFisEnd ()
  8325. MaFisIniNf (2, 0,, "SF2", .F.)
  8326. SB1->(DbSeek(xFilial("SB1")+(cAliasSD2)->D2_COD))
  8327. Endif
  8328. nItem++
  8329. EndIf
  8330. nBaseSaid := MaFisRet (nItem, "LF_BASEICM")
  8331. nValContS := MaFisRet (nItem, "LF_VALCONT")
  8332. cCfoExt := MaFisRet (nItem, "LF_CFOEXT")
  8333. nFTIF := IIF(SUBS(ALLTRIM((cAliasSD2)->D2_CF),1,1)>="5",(nValContS*(SB5->B5_FTIF/100)),0)
  8334. If ( !Empty(SB1->B1_CRDEST) .Or. !Empty(SB5->B5_PROPOR1) ) .And. Iif(SF4->(FieldPos("F4_CRDEST"))>0,SF4->F4_CRDEST != "4",.T.)
  8335. If !Empty(SB5->B5_PROPOR1)
  8336. For nI :=1 TO 2
  8337. cCampo :="B5_PROPOR"+AllTrim(Str(nI))
  8338. cCampo2 :="B5_CRDEST"+AllTrim(Str(nI))
  8339. nValSaid := MaFisRet (nItem, "LF_VALICM") * &("SB5->"+cCampo)/100
  8340. nEstSaid := nValSaid * &("SB5->"+cCampo2)/100
  8341. nNum :=Ascan(aEstimulo,{|x|x[1]==&("SB5->"+cCampo2)})
  8342. If nNum==0
  8343. AADD(aEstimulo,{&("SB5->"+cCampo2),0,nEstSaid,0,0,nBaseSaid,nValSaid,0,nFTIF,0,0,nBaseIncS,nValICMS})
  8344. Else
  8345. aEstimulo[nNum,03] +=nEstSaid
  8346. aEstimulo[nNum,06] +=nBaseSaid
  8347. aEstimulo[nNum,07] +=nValSaid
  8348. aEstimulo[nNum,09] +=nFTIF
  8349. Endif
  8350. Next
  8351. Else
  8352. nValSaid := MaFisRet (nItem, "LF_VALICM")
  8353. nEstSaid := MaFisRet (nItem, "LF_VALICM") * SB1->B1_CRDEST/100
  8354. nNum :=Ascan(aEstimulo,{|x|x[1]==SB1->B1_CRDEST})
  8355. If nNum==0
  8356. AADD(aEstimulo,{SB1->B1_CRDEST,0,nEstSaid,0,0,nBaseSaid,nValSaid,0,nFTIF,0,0,nBaseIncS,nValICMS})
  8357. Else
  8358. aEstimulo[nNum,03] +=nEstSaid
  8359. aEstimulo[nNum,06] +=nBaseSaid
  8360. aEstimulo[nNum,07] +=nValSaid
  8361. aEstimulo[nNum,09] +=nFTIF
  8362. Endif
  8363. Endif
  8364. Else
  8365. //Caio
  8366. dbSelectArea("SA1")
  8367. SA1->( DbSetOrder(1) )
  8368. SA1->( DbSeek( xFilial("SA1")+(cAliasSD2)->D2_CLIENTE+(cAliasSD2)->D2_LOJA ) )
  8369.  
  8370. dbSelectArea("SF4")
  8371. SF4->( DbSetOrder(1) )
  8372. SF4->( DbSeek( xFilial("SF4")+(cAliasSD2)->D2_TES) )
  8373.  
  8374.  
  8375. If SF4->(FieldPos("F4_CRDEST"))>0 .And. SA1->(FieldPos("A1_CRDMA"))>0 .And. SF4->F4_CRDEST == "4" .And. Len(aRegra)>0 .And. ;
  8376. ( (nX := AScanX(aRegra, {|x| x[1]== Alltrim(SB1->B1_POSIPI) .And. x[2]== SA1->A1_CRDMA } )) > 0 .Or. ;
  8377. (nX := AScanx(aRegra, {|x| x[1]== Alltrim(SB1->B1_POSIPI) .And. x[2]=="4" } )) > 0 )
  8378.  
  8379. nValSaid := MaFisRet (nItem, "LF_VALICM")
  8380. nEstSaid := MaFisRet (nItem, "LF_VALICM") * aRegra[nX,3]/100
  8381. nNum := Ascan(aEstimulo,{|x|x[1]==aRegra[nX,3]})
  8382.  
  8383. If nNum==0
  8384. AADD(aEstimulo,{aRegra[nX,3],0,nEstSaid,0,0,nBaseSaid,nValSaid,0,nFTIF,0,0,nBaseIncS,nValICMS})
  8385. Else
  8386. aEstimulo[nNum,03] +=nEstSaid
  8387. aEstimulo[nNum,06] +=nBaseSaid
  8388. aEstimulo[nNum,07] +=nValSaid
  8389. aEstimulo[nNum,09] +=nFTIF
  8390. Endif
  8391. Else
  8392. If !Empty(cCfoExt)
  8393. nNum :=Ascan(aIncent,{|x|x[1]=="INC"})
  8394. If nNum==0
  8395. AADD(aIncent,{"INC",0,0,MaFisRet(nItem,"LF_BASEICM"),MaFisRet(nItem,"LF_VALICM")})
  8396. Else
  8397. aIncent[nNum,04] +=MaFisRet(nItem,"LF_BASEICM")
  8398. aIncent[nNum,05] +=MaFisRet(nItem,"LF_VALICM")
  8399. Endif
  8400. Endif
  8401. EndIf
  8402. Endif
  8403. Endif
  8404. (cAliasSD2)->(dbskip())
  8405. Enddo
  8406.  
  8407. #IFDEF TOP
  8408. dbSelectArea(cAliasSD2)
  8409. dbCloseArea()
  8410. #ELSE
  8411. dbSelectArea(cAliasSD2)
  8412. RetIndex (cAliasSd2)
  8413. Ferase (cIndSd2+OrdBagExt ())
  8414. #ENDIF
  8415. Else
  8416. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪?
  8417. //砎erifica o valor gravado diretamente no SF3 ?
  8418. //|Apenas se existir o campo especifico (F3_CRDEST) |
  8419. //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪? dbSelectArea("SF3")
  8420. SF3->(dbsetorder(1))
  8421.  
  8422. #IFDEF TOP
  8423. If TcSrvType()<>"AS/400"
  8424.  
  8425. lQuery := .T.
  8426. cAliasSF3 := GetNextAlias()
  8427.  
  8428. If cNrLivro <> "*"
  8429. cQuery := "% F3_NRLIVRO = " + cNrLivro + " AND %"
  8430. Else
  8431. cQuery := "% %"
  8432. Endif
  8433.  
  8434. cDtCanc := Space(TamSx3("F3_DTCANC")[01])
  8435.  
  8436. BeginSql Alias cAliasSF3
  8437. COLUMN F3_ENTRADA AS DATE
  8438. SELECT SF3.F3_VALCONT,SF3.F3_BASEICM,SF3.F3_VALICM,SF3.F3_CRDEST,SF3.F3_CFO
  8439.  
  8440. FROM %table:SF3% SF3
  8441.  
  8442. WHERE SF3.F3_FILIAL = %xFilial:SF3% AND
  8443. SF3.F3_ENTRADA >= %Exp:dDataIni% AND
  8444. SF3.F3_ENTRADA <= %Exp:dDataFim% AND
  8445. SF3.F3_DTCANC = %Exp:cDtCanc% AND
  8446. %Exp:cQuery%
  8447. SF3.%NotDel%
  8448.  
  8449. ORDER BY %Order:SF3%
  8450. EndSql
  8451.  
  8452. dbSelectArea(cAliasSF3)
  8453.  
  8454. Else
  8455. #ENDIF
  8456. cIndSF3 := CriaTrab(NIL,.F.)
  8457. cChave := IndexKey()
  8458. cFiltro := "SF3->F3_FILIAL == '" + xFilial("SF3") + "' .And. DTOS(SF3->F3_ENTRADA) >= '" + Dtos(dDataIni) + "' .AND. DTOS(SF3->F3_ENTRADA) <= '" + Dtos(dDataFim) + "'"
  8459. cFiltro += " .And. DTOS(SF3->F3_DTCANC) == '" + Dtos(Ctod("")) + "'"
  8460. If cNrLivro <> "*"
  8461. cFiltro += " .And. SF3->F3_NRLIVRO == '" + cNrLivro + "'"
  8462. endif
  8463. IndRegua(cAliasSF3,cIndSF3,cChave,,cFiltro)
  8464. (cAliasSF3)->(DbgoTop())
  8465. #IFDEF TOP
  8466. Endif
  8467. #ENDIF
  8468.  
  8469. While !(cAliasSF3)->(Eof())
  8470.  
  8471. IncProc(STR0121) //"Processamento Credito Estimulo - Entradas e Saidas"
  8472.  
  8473.  
  8474. nBaseInc := 0
  8475. nValIcm := 0
  8476.  
  8477. nPercCred := (cAliasSF3)->F3_CRDEST * 100 / (cAliasSF3)->F3_VALICM
  8478. nNum := Ascan(aEstimulo,{|x|x[1]==nPercCred})
  8479.  
  8480. If SubStr((cAliasSF3)->F3_CFO,1,1) $ "567"
  8481. If nNum == 0
  8482. AADD(aEstimulo,{nPercCred,0,(cAliasSF3)->F3_CRDEST,0,0,(cAliasSF3)->F3_BASEICM,(cAliasSF3)->F3_VALICM,0,0,0,0,nBaseInc,nValICM})
  8483. Else
  8484. aEstimulo[nNum,03] += (cAliasSF3)->F3_CRDEST
  8485. aEstimulo[nNum,06] += (cAliasSF3)->F3_BASEICM
  8486. aEstimulo[nNum,07] += (cAliasSF3)->F3_VALICM
  8487. aEstimulo[nNum,09] += 0
  8488. aEstimulo[nNum,12] += nBaseInc
  8489. aEstimulo[nNum,13] += nValIcm
  8490. Endif
  8491. Else
  8492. If nNum == 0
  8493. AADD(aEstimulo,{nPercCred,(cAliasSF3)->F3_CRDEST,0,(cAliasSF3)->F3_BASEICM,(cAliasSF3)->F3_VALICM,0,0,0,0,nBaseInc,nValICM,0,0})
  8494. Else
  8495. aEstimulo[nNum,02] += (cAliasSF3)->F3_CRDEST
  8496. aEstimulo[nNum,04] += (cAliasSF3)->F3_BASEICM
  8497. aEstimulo[nNum,05] += (cAliasSF3)->F3_VALICM
  8498. aEstimulo[nNum,08] += 0
  8499. aEstimulo[nNum,10] += nBaseInc
  8500. aEstimulo[nNum,11] += nValIcm
  8501. Endif
  8502. Endif
  8503. (cAliasSF3)->(dbSkip())
  8504. Enddo
  8505.  
  8506. #IFDEF TOP
  8507. dbSelectArea(cAliasSF3)
  8508. dbCloseArea()
  8509. #ELSE
  8510. dbSelectArea(cAliasSF3)
  8511. RetIndex(cAliasSF3)
  8512. FErase(cIndSF3+OrdBagExt())
  8513. #ENDIF
  8514.  
  8515. Endif
  8516.  
  8517. Return(.t.)
  8518.  
  8519. /*/
  8520. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  8521. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  8522. 北谀哪哪哪哪穆哪哪哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  8523. 北矲uncao 矼yEditCelST ?Autor ? Microsiga ?Data ?2.11.2007潮?
  8524. 北媚哪哪哪哪呐哪哪哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  8525. 北矰escri噮o 矯ontrola a edicao dos campos da oGetDad5 潮?
  8526. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  8527. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  8528. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  8529.  
  8530. Function MyEditCel(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)
  8531. Local bSave := oGloBrowse:Cargo
  8532.  
  8533. 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"))
  8534. oGloBrowse:Cargo := ""
  8535. lEditCol( nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB )
  8536. EndIf
  8537.  
  8538. oGloBrowse:Cargo := bSave
  8539. Return
  8540.  
  8541. /*/
  8542. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  8543. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  8544. 北谀哪哪哪哪穆哪哪哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  8545. 北矲uncao 矼yEditCelST ?Autor ? Microsiga ?Data ?2.11.2007潮?
  8546. 北媚哪哪哪哪呐哪哪哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  8547. 北矰escri噮o 矯ontrola a edicao dos campos da oGetDad6 潮?
  8548. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  8549. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  8550. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  8551.  
  8552. Function MyEditCelST(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)
  8553. Local bSave := oGloBrowse:Cargo
  8554.  
  8555. 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"))
  8556. oGloBrowse:Cargo := ""
  8557. lEditCol( nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB )
  8558. EndIf
  8559.  
  8560. oGloBrowse:Cargo := bSave
  8561. Return
  8562.  
  8563. /*苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  8564. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  8565. 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  8566. 北矲un噮o 矲isApurCDH ?Autor ?Liber De Esteban ?Data ?18-12-07 潮?
  8567. 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  8568. 北矰escri噮o ?Grava apuracao no CDH 潮?
  8569. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  8570. 北?Uso ?SIGAFIS 潮?
  8571. 北媚哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  8572. 北?ATUALIZACOES SOFRIDAS DESDE A CONSTRUCAO INICIAL. 潮?
  8573. 北媚哪哪哪哪哪哪穆哪哪哪哪履哪哪穆哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  8574. 北?PROGRAMADOR ?DATA ?BOPS ? MOTIVO DA ALTERACAO 潮?
  8575. 北媚哪哪哪哪哪哪呐哪哪哪哪拍哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  8576. 北?Murilo Alves ?1/07/08?49814?Correcao na insercao das observacoes no 潮?
  8577. 北? ? ? ?CDH quando usar o parametro MV_USASPED. 潮?
  8578. 北滥哪哪哪哪哪哪牧哪哪哪哪聊哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  8579. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  8580. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/
  8581. Static Function FisApurCDH(nApuracao,nPeriodo,cNrLivro,dDtIni,dDtFim,lConsUF,cFilDe,cFilAte,aLancIC,aLancST,aTitCDH,aGNRE,lApurBA)
  8582. Local cChave := STR(nApuracao,1)+STR(nPeriodo,1)+DTOS(dDtIni)+cNrLivro
  8583. Local cSequen := "001"
  8584. Local cMvEst := SuperGetMv('MV_ESTADO')
  8585. Local nI := 0
  8586. Local nCntTit := 1
  8587. Local nCntObs := 1
  8588. Local nCntIC := 0
  8589. Local nCntST := 0
  8590. Local nCntGnr := 0
  8591. Local cTipo := "TX"+Space(TamSx3("E2_TIPO")[1]-2)
  8592. Local cPrefixo := SuperGetMV("MV_PFAPUIC",,"ICM")
  8593. Local cTipoIP := ""
  8594. Local nPGNR := 0
  8595. Local cDesc := ""
  8596. Local lContCr := AliasIndic("CE5") .And. AliasIndic("CE6") .And. AliasIndic("CE7")
  8597.  
  8598. Local aInfoFluig := {}
  8599. Local lCompTit := .F.
  8600.  
  8601. dbSelectArea("CDH")
  8602. dbSetOrder(01)
  8603. If dbSeek(xFilial("CDH")+"IC"+cChave)
  8604. //dbSeek(xFilial("CDH")+"IC"+cChave+"999",.T.) // Posiciona na ultima sequencia
  8605. //cSequen := Soma1(CDH->CDH_SEQUEN)
  8606. 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
  8607. cSequen := CDH->CDH_SEQUEN
  8608. dbSkip()
  8609. EndDo
  8610. cSequen := Soma1(cSequen)
  8611. EndIf
  8612.  
  8613. For nI:=1 to Len(aLancIC)
  8614.  
  8615. 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.;
  8616. (lApurBA .And. aLancIC[nI,1]=="EXP" .Or. aLancIC[nI,1]=="OUT")
  8617. Loop
  8618. EndIf
  8619.  
  8620. //Indica se existiu complemento do titulo na CDH
  8621. lCompTit := .F.
  8622. RecLock("CDH",.T.)
  8623. CDH->CDH_FILIAL := xFilial("CDH")
  8624. CDH->CDH_TIPOIP := "IC"
  8625. CDH->CDH_TIPOPR := STR(nApuracao,1)
  8626. CDH->CDH_PERIOD := STR(nPeriodo,1)
  8627. CDH->CDH_LIVRO := cNrLivro
  8628. CDH->CDH_SEQUEN := cSequen
  8629. CDH->CDH_DTINI := dDtIni
  8630. CDH->CDH_DTFIM := dDtFim
  8631. CDH->CDH_CONSO := Iif(lConsUF,1,2)
  8632. CDH->CDH_FILDE := cFilDe
  8633. CDH->CDH_FILATE := cFilAte
  8634. If aLancIC[nI,1]=="TIT" // Titulos
  8635. //Quando o cliente nao utiliza a integracao gravo os dados do titulo
  8636. If !lGTitFluig
  8637. CDH->CDH_PRETIT := cPrefixo
  8638. CDH->CDH_NUMTIT := aTitCDH[nI][2]
  8639. CDH->CDH_PARTIT := ""
  8640. CDH->CDH_TPTIT := cTipo
  8641. CDH->CDH_VALOR := Iif(Valtype(aLancIC[nI][4]) == "N",aLancIC[nI][4],0)
  8642. CDH->CDH_LINHA := "TIT"
  8643. CDH->CDH_SUBITE := "TIT."+STRZERO(nCntTit,3)
  8644. nCntTit++
  8645.  
  8646. //Quando o cliente nao utiliza a integracao alimento a tabela espelho para
  8647. //posterior geracao da CDH
  8648. Else
  8649.  
  8650. //Caso tenha ocorrido erro ao iniciar a tarefa
  8651. //o retorno sera 0 e o array abaixo nao devera ser alimentado
  8652. If aTitCDH[nI][9] > 0
  8653. aInfoFluig := {}
  8654. Aadd( aInfoFluig,{ 0,;
  8655. cPrefixo,;
  8656. aTitCDH[nI][2],;
  8657. cTipo,;
  8658. Iif(Valtype(aLancIC[nI][4]) == "N",aLancIC[nI][4],0),;
  8659. "TIT",;
  8660. "TIT."+STRZERO(nCntTit,3) } )
  8661.  
  8662. lCompTit := .T.
  8663. nCntTit++
  8664. EndIf
  8665.  
  8666. EndIf
  8667. ElseIf aLancIC[nI,1]=="OBS" // Observacoes
  8668. CDH->CDH_LINHA := "OBS"
  8669. CDH->CDH_SUBITE := "OBS."+strZero(nCntObs,3)
  8670. CDH->CDH_DESC := aLancIC[nI][3]
  8671. nCntObs++
  8672. ElseIf aLancIC[nI,1]=="IND"
  8673. CDH->CDH_LINHA := "IND"
  8674. CDH->CDH_SUBITE := "IND"
  8675. CDH->CDH_DESC := STR0122 //"Indice de Convers鉶"
  8676. CDH->CDH_VALOR := Val(aLancIC[nI][3])
  8677. Else // Lancamentos Apuracao ICMS
  8678. CDH->CDH_LINHA := aLancIC[nI][1]
  8679. CDH->CDH_SUBITE := Alltrim(aLancIC[nI][2])
  8680. CDH->CDH_DESC := aLancIC[nI][3]
  8681. CDH->CDH_VALOR := Iif(Valtype(aLancIC[nI][4]) == "N",aLancIC[nI][4],0)
  8682. CDH->CDH_GNRE := aLancIC[nI][5]
  8683. CDH->CDH_CLVENC := aLancIC[nI][6]
  8684. CDH->CDH_CODLAN := aLancIC[nI][7]
  8685. If Len(aLancIC[nI]) > 8 // Maior que 8 significa que existe controle de lancto manual
  8686. 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"
  8687. CDH->CDH_TPLANC := aLancIC[nI][8]
  8688. EndIf
  8689. EndIf
  8690. If (nPGNR:=aScan(aGnre,{|aX| AllTrim(aX[1])==AllTrim(aLancIC[nI][5]) .And. AllTrim(aX[4])==AllTrim(aLancIC[nI][6])}))>0
  8691. CDH->CDH_ESTGNR := aGnre[nPGNR][5]
  8692. ElseIf !Empty(aLancIC[nI][6]) .And. !Empty(aLancIC[nI][7]) .And.;
  8693. Substr(aLancIC[nI][7],1,2) == SuperGetMv("MV_ESTADO")
  8694. CDH->CDH_ESTGNR := SuperGetMv("MV_ESTADO")
  8695. Else
  8696. If !Empty(aLancIC[nI][5]) .And. !Empty(aLancIC[nI][7]) .And.;
  8697. Substr(aLancIC[nI][7],1,2) == SuperGetMv("MV_ESTADO")
  8698. CDH->CDH_ESTGNR := SuperGetMv("MV_ESTADO")
  8699. EndIf
  8700. EndIf
  8701. EndIf
  8702.  
  8703. MsUnlock()
  8704. CDH->(FKCommit())
  8705.  
  8706. //Caso tenha sido gerado o complemento do titulo na tabela CDH eu incluo o
  8707. //Recno da CDH gerada na posicao 1 do Array
  8708. If lCompTit
  8709.  
  8710. aInfoFluig[1][1] := CDH->( Recno() )
  8711.  
  8712. //Funcao para geracao da tabela espelho da CDH ( CH4 )
  8713. FGvFluigWF( "APUR", "1", aTitCDH[nI][9], aInfoFluig )
  8714. EndIf
  8715. Next
  8716.  
  8717. If Len(aTitCDH) > 0
  8718. For nI := 1 to len(aTitCDH) // Titulos gerados pela apuracao
  8719.  
  8720. //Caso o cliente utilize a integracao com o Fluig nao
  8721. //gero a CDH neste momento, apenas apos a aprovacao da
  8722. //solicitacao no Fluig
  8723. If !lGTitFluig
  8724. RecLock("CDH",.T.)
  8725. CDH->CDH_FILIAL := xFilial("CDH")
  8726. CDH->CDH_TIPOIP := aTitCDH[nI][7]
  8727. CDH->CDH_TIPOPR := STR(nApuracao,1)
  8728. CDH->CDH_PERIOD := STR(nPeriodo,1)
  8729. CDH->CDH_LIVRO := cNrLivro
  8730. CDH->CDH_SEQUEN := cSequen
  8731. CDH->CDH_DTINI := dDtIni
  8732. CDH->CDH_DTFIM := dDtFim
  8733. CDH->CDH_CONSO := Iif(lConsUF,1,2)
  8734. CDH->CDH_FILDE := cFilDe
  8735. CDH->CDH_FILATE := cFilAte
  8736. CDH->CDH_DESC := aTitCDH[nI][8]
  8737. CDH->CDH_PRETIT := aTitCDH[nI][1]
  8738. CDH->CDH_NUMTIT := aTitCDH[nI][2]
  8739. CDH->CDH_PARTIT := aTitCDH[nI][3]
  8740. CDH->CDH_TPTIT := aTitCDH[nI][4]
  8741. CDH->CDH_FORTIT := aTitCDH[nI][5]
  8742. CDH->CDH_LOJTIT := aTitCDH[nI][6]
  8743. CDH->CDH_LINHA := "TIT"
  8744. CDH->CDH_SUBITE := "TIT."+STRZERO(nCntTit,3)
  8745. nCntTit++
  8746. MsUnlock()
  8747. CDH->(FKCommit())
  8748.  
  8749. Else
  8750.  
  8751. //Caso tenha ocorrido erro ao iniciar a tarefa
  8752. //o retorno sera 0 e o array abaixo nao devera ser alimentado
  8753. If aTitCDH[nI][9] > 0
  8754. aInfoFluig := {}
  8755. Aadd( aInfoFluig,{ aTitCDH[nI][7],;
  8756. STR(nApuracao,1),;
  8757. STR(nPeriodo,1),;
  8758. cNrLivro,;
  8759. cSequen,;
  8760. dDtIni,;
  8761. dDtFim,;
  8762. Iif(lConsUF,1,2),;
  8763. cFilDe,;
  8764. cFilAte,;
  8765. "TIT",;
  8766. "TIT."+STRZERO(nCntTit,3),;
  8767. aTitCDH[nI][8] } )
  8768. nCntTit++
  8769.  
  8770. //Funcao para geracao da tabela espelho da CDH ( CH4 )
  8771. FGvFluigWF( "APUR", "2", aTitCDH[nI][9], aInfoFluig )
  8772. EndIf
  8773. EndIf
  8774. Next
  8775.  
  8776. EndIf
  8777.  
  8778. nCntGnr := 0
  8779. nCntIC := 0
  8780. nCntST := 0
  8781. cDesc := ""
  8782.  
  8783. For nI := 1 to len(aGnre) // GNRE's geradas pela apuracao
  8784. cTipoIP := Iif ( len(aGnre[nI])<6 .Or. Empty(aGnre[nI][6]),Iif(aGnre[nI][5] <> cMvEst,"ST","IC"),aGnre[nI][6])
  8785.  
  8786. cDesc := STR0123
  8787. cDesc += Iif(cTipoIP=="IC"," ICMS"," ICMS - ST")
  8788. cDesc += Iif(AllTrim(aGnre[nI,7])=="RICDIF"," Complementar","")
  8789. cDesc += Iif(AllTrim(aGnre[nI,7])=="RDBESP"," D閎itos Especiais","")
  8790. cDesc += Iif(AllTrim(aGnre[nI,7])=="RDBESPST"," D閎itos Especiais ST","")
  8791. cDesc += Iif(AllTrim(aGnre[nI,7])=="CONV139"," Conv阯io 139/06","")
  8792.  
  8793. RecLock("CDH",.T.)
  8794. If CDH->(FieldPos("CDH_GNREF3")) > 0 .And. Len(aGnre[nI])>6
  8795. CDH_GNREF3 := aGnre[nI][7]
  8796. EndIf
  8797. CDH->CDH_FILIAL := xFilial("CDH")
  8798. CDH->CDH_TIPOIP := cTipoIP
  8799. CDH->CDH_TIPOPR := STR(nApuracao,1)
  8800. CDH->CDH_PERIOD := STR(nPeriodo,1)
  8801. CDH->CDH_LIVRO := cNrLivro
  8802. CDH->CDH_SEQUEN := cSequen
  8803. CDH->CDH_DTINI := dDtIni
  8804. CDH->CDH_DTFIM := dDtFim
  8805. CDH->CDH_CONSO := Iif(lConsUF,1,2)
  8806. CDH->CDH_FILDE := cFilDe
  8807. CDH->CDH_FILATE := cFilAte
  8808. CDH->CDH_DESC := cDesc
  8809. CDH->CDH_GNRE := aGnre[nI][1]
  8810. CDH->CDH_VALOR := aGnre[nI][3]
  8811. CDH->CDH_CLVENC := aGnre[nI][4]
  8812. CDH->CDH_ESTGNR := aGnre[nI][5]
  8813. CDH->CDH_LINHA := "GNR"
  8814. If cTipoIP == "IC"
  8815. nCntIC++
  8816. nCntGnr := nCntIC
  8817. Else
  8818. nCntST++
  8819. nCntGnr := nCntST
  8820. EndIf
  8821. CDH->CDH_SUBITE := "GNR."+STRZERO(nCntGnr,3)
  8822.  
  8823. MsUnlock()
  8824. CDH->(FKCommit())
  8825. Next
  8826.  
  8827. For nI:=1 to Len(aLancST)
  8828.  
  8829. 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"
  8830. Loop
  8831. EndIf
  8832.  
  8833. RecLock("CDH",.T.)
  8834. CDH->CDH_FILIAL := xFilial("CDH")
  8835. CDH->CDH_TIPOIP := "ST"
  8836. CDH->CDH_TIPOPR := STR(nApuracao,1)
  8837. CDH->CDH_PERIOD := STR(nPeriodo,1)
  8838. CDH->CDH_LIVRO := cNrLivro
  8839. CDH->CDH_SEQUEN := cSequen
  8840. CDH->CDH_DTINI := dDtIni
  8841. CDH->CDH_DTFIM := dDtFim
  8842. CDH->CDH_CONSO := Iif(lConsUF,1,2)
  8843. CDH->CDH_FILDE := cFilDe
  8844. CDH->CDH_FILATE := cFilAte
  8845. CDH->CDH_LINHA := aLancST[nI][1]
  8846. CDH->CDH_SUBITE := Alltrim(aLancST[nI][2])
  8847. CDH->CDH_DESC := aLancST[nI][3]
  8848. CDH->CDH_VALOR := Iif(Valtype(aLancST[nI][4]) == "N",aLancST[nI][4],0)
  8849.  
  8850. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  8851. //矴ravacao dos dados da GNRE caso tenha uma relacionada ao lancamento manual? //滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  8852. aLancST[nI][5] := PadR(aLancST[nI][5],TamSx3("F6_NUMERO")[1])
  8853. 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
  8854. CDH->CDH_ESTGNR := Left(aLancST[nI][7],2)
  8855. CDH->CDH_GNRE := aLancST[nI][5]
  8856. EndIf
  8857.  
  8858. CDH->CDH_CLVENC := aLancST[nI][6]
  8859. CDH->CDH_CODLAN := aLancST[nI][7]
  8860. If Len(aLancST[nI]) > 8 // Maior que 8 significa que existe controle de lancto manual
  8861. 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"
  8862. CDH->CDH_TPLANC := aLancST[nI][8]
  8863. EndIf
  8864. EndIf
  8865. MsUnlock()
  8866. CDH->(FKCommit())
  8867.  
  8868. Next
  8869. If lContCr
  8870. ContCred(aLancIC,dDtIni)
  8871. ContCred(aLancST,dDtIni)
  8872. Endif
  8873.  
  8874. Return NIL
  8875.  
  8876. /*苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  8877. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  8878. 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪哪哪穆哪哪哪哪哪哪勘?
  8879. 北砅rograma ? ContCred ?Autor 矻uccas Curcio ?22.08.2011 潮?
  8880. 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪哪哪牧哪哪哪哪哪哪幢?
  8881. 北矰escri噮o 砇otina autom醫ica para grava玢o do Controle de Cr閐ito 潮?
  8882. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  8883. 北砄bservacao矲un玢o respons醰el por enviar as informa珲es do C骴igo de 潮?
  8884. 北? ?Lan鏰mento que ser?usado no Controle de Cr閐ito, a fim 潮?
  8885. 北? ?de controlar os registros e utilizar no SPED Fiscal. 潮?
  8886. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  8887. 北砇etorno 砃il 潮?
  8888. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  8889. 北砅arametros砤Lanc -> Array contendo as informa珲es do lan鏰mento na 潮?
  8890. 北? ? apura玢o de icms. 潮?
  8891. 北? 砫Data -> Vari醰el que cont閙 a data do processamento 潮?
  8892. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  8893. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  8894. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/
  8895. Static Function ContCred(aLanc,dData)
  8896.  
  8897. Local nX := 0
  8898. Local aLancApur := {}
  8899.  
  8900. For nX := 1 to Len(aLanc)
  8901. aLancApur := {}
  8902. If !Empty(aLanc[nX,7]) .And. !aLanc[nX,Len(aLanc[nX])]
  8903. aLancApur := aClone(aLanc[nX])
  8904. UFCodLan(aLancApur,dData)
  8905. Endif
  8906. End
  8907.  
  8908. Return
  8909.  
  8910. /*苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  8911. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  8912. 北谀哪哪哪哪穆哪哪哪哪哪穆哪哪哪穆哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  8913. 北矲un噮o 砤953CODLAN ?Autor ?Liber De Esteban ?Data ?17-12-07 潮?
  8914. 北媚哪哪哪哪呐哪哪哪哪哪牧哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  8915. 北矰escri噮o ?Valida Codigo de lancamento informado pelo usuario 潮?
  8916. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪幢?
  8917. 北?Uso ?SIGAFIS 潮?
  8918. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  8919. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  8920. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/
  8921. Function a953CODLAN(cCodTP)
  8922.  
  8923. Local lRet := .T.
  8924. Local nI := 1
  8925. Local cReflex := aCols[n,1]
  8926. Local cUf := GetMv("MV_ESTADO") //TODO buscar estado do acols qando cCodTp for igual a 2.
  8927.  
  8928. //Ajuste para novos codigos de difal exclusivos para FECP
  8929. IF mv_par02 >= 2017 .And. cCodTP == '2' .And. aCols[n,1] $ "014|015|018|019|021|024"
  8930. cCodTP := '3'
  8931. Endif
  8932.  
  8933. //谀哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪目
  8934. //砆uando estiver vindo vazio, significa que estah vindo de debitos especiais e lah pode ser lancado tanto ICMS quanto ICMS ST.?//滥哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁
  8935. If Empty(cCodTP)
  8936. If aCols[n,1]=="900"
  8937. cCodTP := "0"
  8938. cReflex := "5"
  8939. ElseIf aCols[n,1]=="901"
  8940. cCodTP := "1"
  8941. cReflex := "5"
  8942. EndIf
  8943. Else
  8944. IF cCodTP == '2'
  8945. Do Case
  8946. Case aCols[n,1] == "002";cReflex:="0"
  8947. Case aCols[n,1] == "003";cReflex:="1"
  8948. Case aCols[n,1] == "006" ;cReflex:="2"
  8949. Case aCols[n,1] == "007" ;cReflex:="3"
  8950. Case aCols[n,1] == "009" ;cReflex:="4"
  8951. Case aCols[n,1] == "012" ;cReflex:="5"
  8952. EndCase
  8953. Elseif cCodTP == '3'
  8954. Do Case
  8955. Case aCols[n,1] == "014";cReflex:="0"
  8956. Case aCols[n,1] == "015";cReflex:="1"
  8957. Case aCols[n,1] == "018" ;cReflex:="2"
  8958. Case aCols[n,1] == "019" ;cReflex:="3"
  8959. Case aCols[n,1] == "021" ;cReflex:="4"
  8960. Case aCols[n,1] == "024" ;cReflex:="5"
  8961. EndCase
  8962. Else
  8963.  
  8964. Do Case
  8965. Case aCols[n,1] == "002";cReflex:="0"
  8966. Case aCols[n,1] == "003";cReflex:="1"
  8967. Case (aCols[n,1] == "006" .And. cCodTP=="0");cReflex:="2"
  8968. Case (aCols[n,1] == "007" .And. cCodTP=="0");cReflex:="3"
  8969. Case (aCols[n,1] == "012" .And. cCodTP=="0");cReflex:="4"
  8970. Case (aCols[n,1] == "007" .And. cCodTP=="1");cReflex:="2"
  8971. Case (aCols[n,1] == "008" .And. cCodTP=="1");cReflex:="3"
  8972. Case (aCols[n,1] == "014" .And. cCodTP=="1");cReflex:="4"
  8973. EndCase
  8974. EndIF
  8975. EndIf
  8976.  
  8977. If !aCols[n,Len(aCols[n])]
  8978. If !aCols[nI,Len(aCols[nI])] .And. !Empty(cCodLan)
  8979. CDO->(DbSetOrder(1))
  8980. If CDO->(DbSeek(xFilial("CDO")+Alltrim(cCodLan)))
  8981. 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]))
  8982. xMagHelpFis (STR0085,; //"Aten玢o"
  8983. STR0124,; //"C骴igo de lan鏰mento inv醠ido!"
  8984. STR0125) //"Verifique a UF, o reflexo e o tipo de apura玢o do lan鏰mento selecionado."
  8985. lRet := .F.
  8986. ElseIf CDO->(FieldPos("CDO_MSBLQL")) > 0
  8987. If CDO->CDO_MSBLQL == "1"
  8988. xMagHelpFis (STR0085,; //"Aten玢o"
  8989. STR0274,; //"C骴igo de Lan鏰mento Bloqueado!"
  8990. STR0275) //"Favor informar um c骴igo de lan鏰mento v醠ido."
  8991. lRet := .F.
  8992. EndIf
  8993. ElseIf !Empty(CDO->CDO_DESCR) // Carrega descri玢o do lancamento
  8994. aCols[n,3] := Substr(CDO->CDO_DESCR,1,TamSx3("CDH_DESC")[1])
  8995. EndIf
  8996. If len(Alltrim(cCodLan)) > 8
  8997. lRet:= .F.
  8998. EndIf
  8999. Else
  9000. lRet := .F.
  9001. EndIf
  9002. EndIf
  9003. EndIf
  9004.  
  9005. Return (lRet)
  9006.  
  9007.  
  9008. /*/
  9009. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  9010. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  9011. 北谀哪哪哪哪穆哪哪哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  9012. 北矲uncao 矼yEditCelF ?Autor ?Luciana Pires ?Data ?8.08.2008潮?
  9013. 北媚哪哪哪哪呐哪哪哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  9014. 北矰escri噮o 矯ontrola a edicao dos campos da oGetDad8 - Fomentar 潮?
  9015. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  9016. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  9017. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  9018.  
  9019. Function MyEditCelF(nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB)
  9020. Local bSave := oGloBrowse:Cargo
  9021.  
  9022. 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")
  9023. oGloBrowse:Cargo := ""
  9024. lEditCol( nCol, cChar, nFlags, oGloBrowse, oGloGetDB, lGetDB )
  9025. EndIf
  9026.  
  9027. oGloBrowse:Cargo := bSave
  9028. Return
  9029.  
  9030. /*/
  9031. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  9032. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  9033. 北谀哪哪哪哪穆哪哪哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪勘?
  9034. 北矲uncao 砎erificaGNRE ?Autor ?Murilo Alves ?Data ?7.12.2009潮?
  9035. 北媚哪哪哪哪呐哪哪哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪幢?
  9036. 北矰escri噮o ?Efetua consistencia do aGNRE 潮?
  9037. 北? | Se a mesma guia for selecionada varias vezes, 潮?
  9038. 北? | para cada vez, e' incluido em aGnre 潮?
  9039. 北? | Esta funcao trata o array permitindo apenas as guias 潮?
  9040. 北? | aGnre que foram realmente selecionadas 潮?
  9041. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪俦?
  9042. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  9043. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?/*/
  9044.  
  9045. Static Function VerificaGNRE()
  9046.  
  9047. Local nX := 0
  9048. Local aGnre2 := {}
  9049. Local aGnre3 := {}
  9050.  
  9051. aGnre2 := aClone(aGnre)
  9052. For nX := 1 to Len(aGnre2)
  9053. aGnre2[nX][1] := Alltrim(aGnre[nX][1])
  9054. Next
  9055. aGnre3 := {}
  9056.  
  9057. For nX := 1 to Len(aCols)
  9058. If Ascan(aGnre2,{|x|x[1]==Alltrim(aCols[nX,5])}) > 0
  9059. nPos = Ascan(aGnre2,{|x|x[1]==Alltrim(aCols[nX,5])}) //marca a posicao do aGNRE
  9060. aAdd(aGnre3,aGnre[nPos])
  9061. EndIf
  9062. Next
  9063. Return aGNRE3
  9064.  
  9065. /*/
  9066. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘
  9067. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北
  9068. 北谀哪哪哪哪穆哪哪哪哪哪履哪哪哪履哪哪哪哪哪哪哪哪哪哪哪履哪哪穆哪哪哪哪哪目北
  9069. 北矲uncao 砅rocRICMDF ?Autor Erick Gon鏰lves Dias ?Data ?1/10/2010 潮?
  9070. 北媚哪哪哪哪呐哪哪哪哪哪聊哪哪哪聊哪哪哪哪哪哪哪哪哪哪哪聊哪哪牧哪哪哪哪哪拇北
  9071. 北矰esc. 矯alculo do estorno RICMS-DF 潮?
  9072. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪拇北
  9073. 北砇etorno 矱storno no per韔do 潮?
  9074. 北媚哪哪哪哪呐哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪拇北
  9075. 北砅arametros?Data inicial do per韔do e data final do per韔do 潮?
  9076. 北滥哪哪哪哪牧哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪哪馁北
  9077. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北
  9078. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌
  9079. /*/
  9080. Static Function ProcRICMDF(dDataIni,dDataFim)
  9081.  
  9082. Local aArea := GetArea()
  9083. Local cFiltro := ""
  9084. Local nValEst :=0 //Valor do estorno
  9085. Local nX := 0
  9086. Local cAliasSD2 := "SD2"
  9087. Local lQuery := .F.
  9088. Local cChaveSD2 := ''
  9089.  
  9090.  
  9091. dbSelectArea("SD2")
  9092. SD2->(dbsetorder(1))
  9093.  
  9094. #IFDEF TOP
  9095. If TcSrvType()<>"AS/400"
  9096. lQuery := .T.
  9097. cAliasSD2 := GetNextAlias()
  9098. cQuery := "SELECT DISTINCT D2_DOC, D2_SERIE, D2_CLIENTE, D2_LOJA "
  9099. cQuery += "FROM " + RetSqlName("SD2")+" SD2, " + RetSqlName("SD5")+ " SD5 "
  9100. cQuery += "WHERE SD2.D2_FILIAL = '" + xFilial("SD2") + "' AND "
  9101. cQuery += "SD2.D2_EMISSAO >= '" + Dtos(dDataIni) + "' AND "
  9102. cQuery += "SD2.D2_EMISSAO <= '" + Dtos(dDataFim) + "' AND "
  9103. cQuery += "SD2.D2_TIPO <> 'D' AND " //N鉶 ir?condirerar as notas de devolu珲es
  9104. cQuery += "SD2.D_E_L_E_T_ = ' ' "
  9105. cQuery += "AND SD2.D2_COD = SD5.D5_PRODUTO "
  9106. cQuery += "AND SD2.D2_COD=SD5.D5_PRODUTO "
  9107. cQuery += "AND SD2.D2_LOCAL=SD5.D5_LOCAL AND SD2.D2_LOTECTL=SD5.D5_LOTECTL "
  9108. cQuery += "AND SD2.D2_NUMLOTE=SD5.D5_NUMLOTE "
  9109. cQuery += "AND SD5.D5_FILIAL='" +xFilial("SD5")+"'"
  9110. cQuery += "AND SD5.D5_ORIGLAN<'501' "
  9111. cQuery += "AND SD5.D5_ESTORNO<>'S' "
  9112.  
  9113. cQuery := ChangeQuery(cQuery)
  9114. dbUseArea(.T.,"TOPCONN",TcGenQry(,,cQuery),cAliasSD2,.T.,.T.)
  9115. Else
  9116. #ENDIF
  9117. cIndex := CriaTrab(NIL,.F.)
  9118. cFiltro := "SD2->D2_FILIAL == '" + xFilial("SD2") + "' .And. DTOS(SD2->D2_EMISSAO) >= '" + Dtos(dDataIni) + "' .AND. DTOS(SD2->D2_EMISSAO) <= '" + Dtos(dDataFim) + "' .AND. D2_TIPO <> 'D' "
  9119. IndRegua(cAliasSD2,cIndex,SD2->(IndexKey()),,cFiltro)
  9120. dbSelectArea(cAliasSD2)
  9121. dbGoTop()
  9122. #IFDEF TOP
  9123. Endif
  9124. #ENDIF
  9125.  
  9126. While !(cAliasSD2)->(Eof())
  9127.  
  9128. If cChaveSD2 <> ( cAliasSD2 )->( D2_DOC + D2_SERIE + D2_CLIENTE + D2_LOJA )
  9129. cChaveSD2 := ( cAliasSD2 )->( D2_DOC + D2_SERIE + D2_CLIENTE + D2_LOJA )
  9130.  
  9131. //aLote ter?as notas de sa韉as com suas notas de entradas
  9132. aLote:=RastroNFOr((cAliasSD2)->D2_DOC,(cAliasSD2)->D2_SERIE,(cAliasSD2)->D2_CLIENTE,(cAliasSD2)->D2_LOJA)
  9133. If Len(aLote) > 0
  9134. For nX := 1 to Len(aLote)
  9135. dbSelectArea("SF4")
  9136. SF4->(dbSetOrder(1))
  9137. //Verifica se na TES existe redu玢o de base de ICMS e se o CFOP ?de sa韉a interna.
  9138. If SF4->(dbSeek(xFilial("SD2")+aLote[nX][30])) .AND. Substr(aLote[nX][34],1,1) == "5"
  9139. If SF4->F4_BASEICM >0
  9140. //Calcula estorno de cr閐ito
  9141. //((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
  9142. nValEst+= round(((aLote[nX][12] /aLote[nX][6] ) * aLote[nX][14] /100) * aLote[nX][4] /100 * SF4->F4_BASEICM ,2)
  9143. EndIf
  9144. EndIf
  9145. Next nY
  9146. EndIf
  9147. EndIf
  9148.  
  9149. (cAliasSD2)->(dbSkip())
  9150. EndDo
  9151.  
  9152. #IFDEF TOP
  9153. dbSelectArea(cAliasSD2)
  9154. dbCloseArea()
  9155. #ELSE
  9156. dbSelectArea(cAliasSD2)
  9157. RetIndex(cAliasSD2)
  9158. Ferase(cIndex+OrdBagExt())
  9159. #ENDIF
  9160. RestArea(aArea)
  9161. Return (nValEst)
  9162.  
  9163.  
  9164. /*
  9165. 苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘苘?
  9166. 北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北?
  9167. 北赏屯屯屯屯脱屯屯屯屯屯送屯屯屯淹屯屯屯屯屯屯屯屯屯退屯屯屯淹屯屯屯屯屯屯槐?
  9168. 北篜rograma 矼953CRDM 篈utor 矯aio Oliveira ?Data ? 12/29/10 罕?
  9169. 北掏屯屯屯屯拓屯屯屯屯屯释屯屯屯贤屯屯屯屯屯屯屯屯屯褪屯屯屯贤屯屯屯屯屯屯贡?
  9170. 北篋esc. ? Funcao que verifica de todos parametros iniciados 罕?
  9171. 北? ? por MV_CRDM na tabela SX6, Montando um Array contendo: 罕?
  9172. 北? ? { NCM , TIPO DO CLIENTE, % CR蒁ITO, COD NA APURA敲O } 罕?
  9173. 北掏屯屯屯屯拓屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯屯贡?
  9174. 哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌哌?*/
  9175. Function M953CRDM()
  9176.  
  9177. Local nInd := 0
  9178. Local cChave := ""
  9179. Local lLoop := .F.
  9180. Local cVar := ""
  9181. Local cLetra := ""
  9182. Local aRegra := {}
  9183. Local nNcm := 0
  9184. Local nTipo := 0
  9185. Local nVal := 0
  9186. Local cNcm := ""
  9187. Local cTipo := ""
  9188. Local cVal := ""
  9189. Local nX := 1
  9190.  
  9191. DbSelectArea ("SX6")
  9192. SX6->(DbSetOrder (1))
  9193. SX6->( DbGoTop() )
  9194.  
  9195. If SX6->(DbSeek (FWGETCODFILIAL+"MV_CRDM001"))
  9196. cChave := FWGETCODFILIAL //{||cChave1==SX6->X6_FIL .And. "MV_CRDM"$SX6->X6_VAR}
  9197. lLoop := .T.
  9198. ElseIf SX6->(DbSeek (Space(FWGETTAMFILIAL)+"MV_CRDM001"))
  9199. cChave := Space(FWGETTAMFILIAL) // {||cChave2==SX6->X6_FIL .And. "MV_CRDM"$SX6->X6_VAR}
  9200. lLoop := .T.
  9201. ElseIf SX6->(DbSeek (Space(2)+"MV_CRDM001"))
  9202. cChave := Space(2) //{||cChave3==SX6->X6_FIL .And. "MV_CRDM"$SX6->X6_VAR}
  9203. lLoop := .T.
  9204. EndIf
  9205. If lLoop
  9206. Do While !SX6->(Eof ()) .And. cChave==SX6->X6_FIL .And. ("MV_CRDM"+StrZero(nX,3))$SX6->X6_VAR
  9207. nX++
  9208. cVar := AllTrim (SX6->X6_CONTEUD)
  9209.  
  9210. For nInd := 1 To Len (cVar)
  9211. cLetra := SubStr (cVar, nInd, 1)
  9212.  
  9213. If (";"$cLetra)
  9214. If Len(cNcm)>0 .And. Len(cTipo)>0 .And. Len(cVal)>0
  9215. aAdd (aRegra, {cNcm, cTipo, Val(cVal)} )
  9216. EndIf
  9217. cNcm := cTipo := cVal := ""
  9218. nNcm := nTipo := nVal := 0
  9219. ElseIf ("="$cLetra)
  9220. Loop
  9221. Else
  9222. If nNcm<8
  9223. cNcm += cLetra
  9224. nNcm++
  9225. ElseIf nTipo<1
  9226. cTipo := cLetra
  9227. nTipo++
  9228. ElseIf nVal<5
  9229. cVal += cLetra
  9230. nVal++
  9231. EndIf
  9232. EndIf
  9233. Next (nInd)
  9234.  
  9235. If Len(cNcm)>0 .And. Len(cTipo)>0 .And. Len(cVal)>0
  9236. aAdd (aRegra, {cNcm, cTipo, Val(cVal)} )
  9237. cNcm := cTipo := cVal := ""
  9238. nNcm := nTipo := nVal := 0
  9239. EndIf
  9240.  
  9241. SX6->(DbSkip ())
  9242. EndDo
  9243. EndIf
  9244.  
  9245. Return aRegra
  9246.  
  9247. //-------------------------------------------------------------------
  9248. /*/{Protheus.doc} RetPictVal
  9249. Retorna picture a ser utilizada nos campos de valores
  9250.  
  9251. @param Nil
  9252.  
  9253. @return cRet - Picture do campo
  9254.  
  9255. @author Microsiga
  9256. @since 30.10.2012
  9257. @version 1.0
  9258. /*/
  9259. //-------------------------------------------------------------------
  9260. Static Function RetPictVal()
  9261. Local cRet := ""
  9262. Local aAreaSx3 := SX3->(GetArea())
  9263.  
  9264. SX3->(DbSetOrder(2))
  9265. SX3->(DbSeek("CDH_VALOR"))
  9266.  
  9267. cRet := Alltrim(SX3->X3_PICTURE)
  9268. If Empty(cRet)
  9269. cRet := "@E 999,999,999,999.99"
  9270. Endif
  9271.  
  9272. SX3->(DbSetOrder(1))
  9273. RestArea(aAreaSX3)
  9274. Return cRet
  9275.  
  9276. //-----------------------------------------------------------------------
  9277. /*/{Protheus.doc} UFxNameFcp
  9278. Retorna mensagem de observacao referente ao FECP
  9279.  
  9280. @param cUF - Estado a ser verificado
  9281.  
  9282. @author Luccas Curcio
  9283. @since 11/02/2014
  9284. @version 1.00
  9285.  
  9286. @Return cRet - Nomenclatura do FCP para a UF
  9287.  
  9288. /*/
  9289. //-----------------------------------------------------------------------
  9290. Function UFxNameFcp( cUF )
  9291. Local cRet := ""
  9292.  
  9293. //FECP -> Rio de Janeiro; Bahia; Minas Gerais; Mato Grosso; Espirito Santo
  9294. If cUF $ "RJ|BA|MG|MT|ES"
  9295. cRet := "FECP"
  9296.  
  9297. //FECOEP -> Alagoas
  9298. Elseif cUF $ "AL"
  9299. cRet := "FECOEP"
  9300.  
  9301. //FUMACOP -> Maranhao
  9302. Elseif cUF $ "MA"
  9303. cRet := "FUMACOP"
  9304.  
  9305. //FECOP -> Rio Grande do Norte; Ceara
  9306. Elseif cUF $ "RN|CE"
  9307. cRet := "FECOP"
  9308.  
  9309. //FUNPOBREZA -> Sergipe
  9310. ElseIF cUF $ "SE"
  9311. cRet := "FUNPOBREZA"
  9312.  
  9313. //FUNCEP -> Paraiba
  9314. ElseIF cUF $ "PB"
  9315. cRet := "FUNCEP"
  9316.  
  9317. //FECEP -> Pernambuco
  9318. ElseIF cUF $ "PE"
  9319. cRet := "FECEP"
  9320.  
  9321. Endif
  9322.  
  9323. Return cRet
  9324.  
  9325. //-----------------------------------------------------------------------
  9326. /*/{Protheus.doc} FGerTit
  9327. Funcao para realizar a chamada da GravaTit e retornar o numero da solicitacao
  9328. que foi aberta no Fluig
  9329.  
  9330. @Param
  9331. ( Parametros da Funcao GravaTit )
  9332.  
  9333. @Return
  9334. nNumSolFlg - Numero da Solicitacao criada no Fluig
  9335.  
  9336. @author Rodrigo Aguilar
  9337. @since 29/04/2014
  9338. @version 1.00
  9339.  
  9340. /*/
  9341. //-----------------------------------------------------------------------
  9342. Static Function FGerTit( lTitulo,;
  9343. nVlrTitulo,;
  9344. cImposto,;
  9345. cImp,;
  9346. cLcPadTit,; //5
  9347. dDtIni,;
  9348. dDtFim,;
  9349. dDtVenc,;
  9350. nMoedTit,;
  9351. lGuiaRec,; //10
  9352. nMes,;
  9353. nAno,;
  9354. nTitICMS,;
  9355. nTitST,;
  9356. cOrigem,;//15
  9357. lContab,;
  9358. cNumero,;
  9359. aGnre,;
  9360. cClasse,;
  9361. aGNREST,; //20
  9362. cUF,;
  9363. cCodRetIPI,;
  9364. lFECP,;
  9365. lDifAlq,;
  9366. cNumGnre,;//25
  9367. aRecTit,;
  9368. lConfTit,;
  9369. nTitFun,;
  9370. aDadSf2,;
  9371. lArt65,; //30
  9372. cOriGNRE,;
  9373. aApIncent,;
  9374. cCodGnre,;
  9375. nGuiaSN,;
  9376. nConv139,;//35
  9377. lGTitFluig,;
  9378. cNrLivro,;
  9379. nApuracao,;
  9380. nPeriodo,;
  9381. nNumSolFlg,;//40
  9382. cForIss,;
  9383. cLojISS,;
  9384. lDifal,;
  9385. lAntParcBA,;
  9386. cNumConv,;
  9387. lAutomato ,aRetAuto,cCodMunRec )
  9388.  
  9389. //Carrego as variaveis configuradas por parametro, preciso delas para verificar se
  9390. //ja existe pocesso em aberto no Fluig para o mesmo periodo
  9391. Local cNrLivro := mv_par03
  9392. Local nApuracao := mv_par04
  9393. Local nPeriodo := mv_par05
  9394.  
  9395. Local nNumSolFlg := 0
  9396.  
  9397. Default lContab := .F.
  9398. Default cClasse := Space( 06 )
  9399. Default aGNREST := {}
  9400. Default cUF := GetNewPar("MV_ESTADO")
  9401. Default cCodRetIPI := ""
  9402. Default lFECP := .F.
  9403. Default lDifAlq := .F.
  9404. Default cNumGnre := Space( TamSx3( "F6_NUMERO" ) [1] )
  9405. Default aRecTit := {}
  9406. Default lConfTit := .F.
  9407. Default nTitFun := 0
  9408. Default aDadSf2 := {}
  9409. Default lArt65 := .F.
  9410. Default cOriGNRE := "RECSALDO"
  9411. Default aApIncent := {}
  9412. Default cCodGnre := ""
  9413. Default nGuiaSN := 0
  9414. Default nConv139 := 0
  9415. Default lGTitFluig := .F.
  9416. Default cNrLivro := ""
  9417. Default nApuracao := 0
  9418. Default nPeriodo := 0
  9419. Default nNumSolFlg := 0
  9420. Default cForIss := ""
  9421. Default cLojISS := ""
  9422. Default lDifal := .F.
  9423. Default lAutomato := .F.
  9424. Default aRetAuto := {}
  9425. Default cCodMunRec := ""
  9426.  
  9427. //Chamada da Funcao GravaTit
  9428. GravaTit( lTitulo,;
  9429. nVlrTitulo,;
  9430. cImposto,;
  9431. cImp,;
  9432. cLcPadTit,;
  9433. dDtIni,;
  9434. dDtFim,;
  9435. dDtVenc,;
  9436. nMoedTit,;
  9437. lGuiaRec,;
  9438. nMes,;
  9439. nAno,;
  9440. nTitICMS,;
  9441. nTitST,;
  9442. cOrigem,;
  9443. lContab,;
  9444. @cNumero,;
  9445. @aGnre,;
  9446. cClasse,;
  9447. @aGNREST,;
  9448. cUF,;
  9449. cCodRetIPI,;
  9450. lFECP,;
  9451. lDifAlq,;
  9452. cNumGnre,;
  9453. @aRecTit,;
  9454. @lConfTit,;
  9455. nTitFun,;
  9456. aDadSf2,;
  9457. lArt65,;
  9458. cOriGNRE,;
  9459. aApIncent,;
  9460. cCodGnre,;
  9461. nGuiaSN,;
  9462. nConv139,; //35
  9463. lGTitFluig,;
  9464. cNrLivro,;
  9465. nApuracao,;
  9466. nPeriodo,;
  9467. @nNumSolFlg,;
  9468. ,;
  9469. ,;
  9470. lDifal,,,lAutomato,aRetAuto, ) //48
  9471.  
  9472. Return ( nNumSolFlg )
  9473.  
  9474. //-------------------------------------------------------------------
  9475. /*/{Protheus.doc} ModelDef
  9476. Model utilizado para o WorkFLow de aprovacao de titulos gerados
  9477. pela rotina de apuracao de ICMS ( Integracao Protheus x Fluig )
  9478.  
  9479. @Return
  9480. oModel - Modelo da solicitacao
  9481.  
  9482. @author Rodrigo Aguilar
  9483. @since 24/04/2014
  9484. @version 1.0
  9485. /*/
  9486. //-------------------------------------------------------------------
  9487. Static Function ModelDef()
  9488.  
  9489. Local oStruCH3 := FWFormStruct( 1, 'CH3' )
  9490. Local oStruCH4 := FWFormStruct( 1, 'CH4' )
  9491. Local oModel := MpFormModel():New( 'MATA953',,,{ |oModel| SaveModel( oModel ) } )
  9492.  
  9493. oModel:AddFields( 'MODEL_CH3', /*cOwner*/, oStruCH3 )
  9494. oModel:AddFields( 'MODEL_CH4', 'MODEL_CH3', oStruCH4 )
  9495.  
  9496. Return ( oModel )
  9497.  
  9498. //-------------------------------------------------------------------
  9499. /*/{Protheus.doc} ViewDef
  9500. View utilizada para o WorkFLow de aprovacao de titulos gerados
  9501. pela rotina de apuracao de ICMS ( Integracao Protheus x Fluig )
  9502.  
  9503. @Return
  9504. oView - View da solicitacao
  9505.  
  9506. @author Rodrigo Aguilar
  9507. @since 24/04/2014
  9508. @version 1.0
  9509. /*/
  9510. //-------------------------------------------------------------------
  9511. Static Function ViewDef()
  9512.  
  9513. Local cGrupoCH3_1, cGrupoCH3_2, cGrupoCH4_1 := ""
  9514.  
  9515. Local oModel := FWLoadModel( 'MATA953' )
  9516. Local oView := FWFormView():New()
  9517.  
  9518. Local oStruCH3_1, oStruCH3_2, oStruCH4_1
  9519.  
  9520. //Grupo de Campos que serao apenas visuais no formulario do Fluig
  9521. cGrupoCH3_1 := "CH3_FILSE2|CH3_PREFIX|CH3_NUM|CH3_VALOR|CH3_HISTOR|CH3_EMISSA|CH3_VENCTO|CH3_RESPON|"
  9522. oStruCH3_1 := FwFormStruct( 2, "CH3", {|x| AllTrim( x ) + "|" $ cGrupoCH3_1 } )
  9523.  
  9524. //Grupo de Campos que serao editaveis no formulario do Fluig
  9525. cGrupoCH3_2 := "CH3_APRTIT|CH3_OBSERV|"
  9526. oStruCH3_2 := FwFormStruct( 2, "CH3", {|x| AllTrim( x ) + "|" $ cGrupoCH3_2 } )
  9527.  
  9528. //Grupo de Campos que serao ocultos no formulario, apenas incluo-os para salvar a
  9529. //informacao da filial da tabela CH4
  9530. cGrupoCH4_1 := "CH4_FILCDH|"
  9531. oStruCH4_1 := FwFormStruct( 2, "CH4", {|x| AllTrim( x ) + "|" $ cGrupoCH4_1 } )
  9532.  
  9533. oView:SetModel( oModel )
  9534. oView:AddField( 'VIEW_CH3_1', oStruCH3_1, 'MODEL_CH3' )
  9535. oView:AddField( 'VIEW_CH3_2', oStruCH3_2, 'MODEL_CH3' )
  9536. oView:AddField( 'VIEW_CH4_1', oStruCH4_1, 'MODEL_CH4' )
  9537.  
  9538. oView:EnableTitleView( 'VIEW_CH3_1', "Dados do T韙ulo:" )
  9539. oView:EnableTitleView( 'VIEW_CH3_2', "Dados da Aprova玢o:" )
  9540.  
  9541. oView:CreateHorizontalBox( 'FIELDSCH3_1', 60 )
  9542. oView:SetOwnerView( 'VIEW_CH3_1', 'FIELDSCH3_1' )
  9543.  
  9544. oView:CreateHorizontalBox( 'FIELDSCH3_2', 20 )
  9545. oView:SetOwnerView( 'VIEW_CH3_2', 'FIELDSCH3_2' )
  9546.  
  9547. oView:CreateHorizontalBox( 'FIELDSCH4_1', 20 )
  9548. oView:SetOwnerView( 'VIEW_CH4_1', 'FIELDSCH4_1' )
  9549.  
  9550. Return ( oView )
  9551.  
  9552. //-------------------------------------------------------------------
  9553. /*/{Protheus.doc} SaveModel
  9554. Funcao para gravacao do retorno da aprovacao do titulo no Fluig
  9555.  
  9556. @Return
  9557. lRet - Indica se as tabelas foram gravadas corretamente
  9558.  
  9559. @author Rodrigo Aguilar
  9560. @since 24/04/2014
  9561. @version 1.0
  9562. /*/
  9563. //-------------------------------------------------------------------
  9564. Static Function SaveModel( oModel )
  9565.  
  9566. Local cNumProces := ""
  9567. Local cAprvTit := ""
  9568. Local cObserv := ""
  9569. Local cFilCH3, cFilCH4 := ""
  9570. Local lRet := .T.
  9571.  
  9572. Local cLcPadTit := Substr( SuperGetMv( "MV_LPADICM" ), 1, 3 )
  9573.  
  9574. //Busco a informacao do numero da solicitacao para veificar se a mesma
  9575. //existe na base de dados
  9576. cNumProces := Alltrim( oModel:GetWKNumProces() )
  9577.  
  9578. //Busca as filiais da tabela espelho
  9579. cFilCH3 := oModel:GetValue( 'MODEL_CH3' , 'CH3_FILSE2' )
  9580. cFilCH4 := oModel:GetValue( 'MODEL_CH4' , 'CH4_FILCDH' )
  9581.  
  9582. //Busca as informacoes a serem gravadas na tabela CH3
  9583. cAprvTit := oModel:GetValue( 'MODEL_CH3' , 'CH3_APRTIT' )
  9584. cObserv := oModel:GetValue( 'MODEL_CH3' , 'CH3_OBSERV' )
  9585.  
  9586. //Posiciono no Titulo da tabela CH3 para geracao na SE2
  9587. DbSelectArea( "CH3" )
  9588. CH3->( DbSetOrder(1) )
  9589. If CH3->( MsSeek( cFilCH3 + cNumProces ) )
  9590.  
  9591. Begin Transaction
  9592.  
  9593. //Gravo os dados de retorno na tabela CH3
  9594. RecLock( "CH3", .F. )
  9595. CH3->CH3_APRTIT := cAprvTit
  9596. CH3->CH3_OBSERV := cObserv
  9597. CH3->( MsUnlock() )
  9598.  
  9599. //Verifico se o usuario aprovou a geracao do titulo pelo Fluig
  9600. If cAprvTit == "1" //Aprovado
  9601.  
  9602. //Posiciono no processo da tabela CH3 para geracao na SE2
  9603. RecLock( "SE2", .T. )
  9604. SE2->E2_FILIAL := CH3->CH3_FILIAL
  9605. SE2->E2_NUM := CH3->CH3_NUM
  9606. SE2->E2_PREFIXO := CH3->CH3_PREFIX
  9607. SE2->E2_TIPO := CH3->CH3_TIPO
  9608. SE2->E2_NATUREZ := CH3->CH3_NATURE
  9609. SE2->E2_FORNECE := CH3->CH3_FORNEC
  9610. SE2->E2_LOJA := CH3->CH3_LOJA
  9611. SE2->E2_NOMFOR := CH3->CH3_NOMFOR
  9612. SE2->E2_MOEDA := CH3->CH3_MOEDA
  9613. SE2->E2_VALOR := CH3->CH3_VALOR
  9614. SE2->E2_SALDO := CH3->CH3_VALOR
  9615. SE2->E2_VLCRUZ := CH3->CH3_VALOR
  9616. SE2->E2_HIST := CH3->CH3_HISTOR
  9617. SE2->E2_LA := CH3->CH3_IDLANC
  9618. SE2->E2_EMISSAO := CH3->CH3_EMISSA
  9619. SE2->E2_VENCTO := CH3->CH3_VENCTO
  9620. SE2->E2_VENCREA := DataValida( CH3->CH3_VENCTO, .T. )
  9621. SE2->E2_VENCORI := CH3->CH3_VENCTO
  9622. SE2->E2_EMIS1 := CH3->CH3_EMISSA
  9623. SE2->E2_ORIGEM := CH3->CH3_ORIGEM
  9624. SE2->E2_FILORIG := CH3->CH3_FILORI
  9625. SE2->E2_CODRET := CH3->CH3_CODRET
  9626. SE2->( MsUnlock() )
  9627.  
  9628. //Efetua Lancamento Contabil ( Na gravatit este item nao eh executado pois o
  9629. //titulo nao foi gerado, sendo assim realizo a execucao neste ponto ).
  9630. If CH3->CH3_LANCON == "1"
  9631. LancCont( cLcPadTit, "MATA953", .T. )
  9632. Endif
  9633.  
  9634. //Verifico se existe informacao na tabela CH4 referente a complemento da CDH
  9635. //com o numero do titulo, no mometo de geracao deste registro as informacoes abaixo
  9636. //nao foram geradas devido a nao existencia do Titulo, neste momento realizo o complemento
  9637. //da CDH com as informacoes
  9638. If CH4->( MsSeek( cFilCH4 + Padr( cNumProces, TamSx3("CH4_PROCES")[1] ) + "1" ) )
  9639. If CDH->( DbGoto( CH4->CH4_RECAPU ) )
  9640. Reclock( "CDH", .F. )
  9641. CDH->CDH_PRETIT := CH4->CH4_PREFIX
  9642. CDH->CDH_NUMTIT := CH4->CH4_NUM
  9643. CDH->CDH_PARTIT := ""
  9644. CDH->CDH_TPTIT := CH4->CH4_TIPO
  9645. CDH->CDH_VALOR := CH4->CH4_VALOR
  9646. CDH->CDH_LINHA := CH4->CH4_LINHA
  9647. CDH->CDH_SUBITE := CH4->CH4_SUBLIN
  9648. CDH->( MsUnlock() )
  9649.  
  9650. //Caso nao encontre o registro na tabela ( situacao que NUNCA devera acontecer )
  9651. //Retorno .F. para o Fluig nao encerrar a solicitacao
  9652. Else
  9653. oModel:SetErrorMessage (,,,,,STR0268,STR0269) //"Ocorreu um erro ao gravar as informa珲es no Protheus."#"Contate o administrador do sistema."
  9654. DisarmTransaction()
  9655. lRet := .F.
  9656. EndIf
  9657. EndIf
  9658.  
  9659. //Realizo a inclusao dos registros referentes ao titulo que nao foram
  9660. //gerados na CDH
  9661. If CH4->( MsSeek( cFilCH4 + Padr( cNumProces, TamSx3("CH4_PROCES")[1] ) ) )
  9662. RecLock( "CDH", .T. )
  9663. CDH->CDH_FILIAL := CH4->CH4_FILCDH
  9664. CDH->CDH_TIPOIP := CH4->CH4_TIPOIP
  9665. CDH->CDH_TIPOPR := CH4->CH4_TIPOPR
  9666. CDH->CDH_PERIOD := CH4->CH4_PERIOD
  9667. CDH->CDH_LIVRO := CH4->CH4_LIVRO
  9668. CDH->CDH_SEQUEN := CH4->CH4_SEQUEN
  9669. CDH->CDH_DTINI := CH4->CH4_DTINI
  9670. CDH->CDH_DTFIM := CH4->CH4_DTFIN
  9671. CDH->CDH_CONSO := CH4->CH4_CONSO
  9672. CDH->CDH_FILDE := CH4->CH4_FILDE
  9673. CDH->CDH_FILATE := CH4->CH4_FILATE
  9674. CDH->CDH_DESC := CH4->CH4_DESC
  9675. CDH->CDH_PRETIT := CH3->CH3_PREFIX
  9676. CDH->CDH_NUMTIT := CH3->CH3_NUM
  9677. CDH->CDH_PARTIT := ""
  9678. CDH->CDH_TPTIT := CH3->CH3_TIPO
  9679. CDH->CDH_FORTIT := CH3->CH3_FORNEC
  9680. CDH->CDH_LOJTIT := CH3->CH3_LOJA
  9681. CDH->CDH_LINHA := CH4->CH4_LINHA
  9682. CDH->CDH_SUBITE := CH4->CH4_SUBLIN
  9683. CDH->( MsUnlock() )
  9684.  
  9685. //Caso nao encontre o registro na tabela ( situacao que NUNCA devera acontecer )
  9686. //Retorno .F. para o Fluig nao encerrar a solicitacao
  9687. Else
  9688. oModel:SetErrorMessage (,,,,,STR0268,STR0269) //"Ocorreu um erro ao gravar as informa珲es no Protheus."#"Contate o administrador do sistema."
  9689. DisarmTransaction()
  9690. lRet := .F.
  9691. EndIf
  9692. EndIf
  9693.  
  9694. End Transaction
  9695.  
  9696. //Caso nao encontre o registro na tabela ( situacao que NUNCA devera acontecer )
  9697. //Retorno .F. para o Fluig nao encerrar a solicitacao
  9698. Else
  9699. oModel:SetErrorMessage (,,,,,STR0268,STR0269) //"Ocorreu um erro ao gravar as informa珲es no Protheus."#"Contate o administrador do sistema."
  9700. lRet := .F.
  9701. EndIf
  9702.  
  9703. Return ( lRet )
  9704.  
  9705. function a953VldDif()
  9706.  
  9707. Return .T.
  9708.  
  9709.  
  9710. //-------------------------------------------------------------------
  9711. /*/{Protheus.doc} DuploClick
  9712. Fun玢o executada ao efetuar duplo clique nas linhas da apura玢o do DIFAL
  9713.  
  9714. @author Erick G Dias
  9715. @since 20/01/2016
  9716. @version 1.0
  9717. /*/
  9718. //-------------------------------------------------------------------
  9719. Static Function DuploClick(oGetDad12,oGetDad13,oDlg,aApurDifal,dDtIni)
  9720.  
  9721. Local nPos := 0
  9722. Local nPosDifal := 0
  9723. lOCAL nApurDifal := 0
  9724.  
  9725. Local aSubItem := {}
  9726. Local nA := 0
  9727. Local nValor := 0
  9728.  
  9729. lGerDifal := !lGerDifal
  9730.  
  9731. IF lGerDifal .AND. "VOLTAR" $aCols13[oGetDad13:oBrowse:nAt][3]
  9732. If Year(dDtIni) < 2017
  9733. aSubItem := {'010.00','011.00','016.00','017.00','012.00'}
  9734. Else
  9735. aSubItem := {'010.00','011.00','022.00','023.00','012.00'}
  9736. Endif
  9737.  
  9738. //Atualizar apura玢o consolidada no aCols12
  9739. nPos := aScan(aApurDifal,{|x|x[1] == SubStr(aCols12[oGetDad12:oBrowse:nAt][2],1,2)} )
  9740. nApurDifal := aScan(aCOLS12,{|x|SubStr(x[2],1,2) == SubStr(aCols12[oGetDad12:oBrowse:nAt][2],1,2)} )
  9741.  
  9742. For nA:=1 to Len(aSubItem)
  9743. nValor += aApurDifal[nPos][2][aScan(aApurDifal[nPos][2],{|x|x[2]==aSubItem[nA]})][4]
  9744. Next
  9745.  
  9746. If nApurDifal > 0 .AND. lProcDifal .AND. nValor >= 0
  9747. For nA:=1 to Len(aSubItem)
  9748. aCOLS12[nApurDifal,nA+2] := aApurDifal[nPos][2][aScan(aApurDifal[nPos][2],{|x|x[2]==aSubItem[nA]})][4]
  9749. Next
  9750. EndIF
  9751. //Soma debito Especial FECP
  9752. If Year(dDtIni) >= 2017
  9753. aCOLS12[nApurDifal,07] += aApurDifal[nPos ][2][aScan(aApurDifal[nPos][2],{|x|x[2] == '024.00'} )][4]
  9754. Endif
  9755.  
  9756. oGetDad12:oBrowse:lDisablePaint := .F.
  9757.  
  9758. oGetDad13:Hide()
  9759. oGetDad12:Show()
  9760.  
  9761. aCols := aCols12
  9762. aHeader := aHeader12
  9763.  
  9764. oGetDad13:Refresh(.T.)
  9765. oGetDad13:oBrowse:Refresh(.T.)
  9766. oGetDad12:Refresh(.T.)
  9767. oGetDad12:oBrowse:Refresh(.T.)
  9768.  
  9769. //Eval(oGetDad12:obrowse:bDrawSelect)
  9770. oDlg:Refresh()
  9771. //oGetDad12:oBrowse:lDisablePaint := .T.
  9772.  
  9773.  
  9774. ElseIf !lGerDifal .AND. len(Alltrim(aCols12[oGetDad12:oBrowse:nAt][2])) > 0
  9775.  
  9776. aCOLS13 := {}
  9777. nPos := aScan(aApurDifal,{|x|x[1] == SubStr(aCols12[oGetDad12:oBrowse:nAt][2],1,2)} )
  9778. aCOLS13 :=aApurDifal[nPos][2]
  9779.  
  9780. oGetDad13:oBrowse:lDisablePaint := .F.
  9781.  
  9782. oGetDad12:Hide()
  9783. oGetDad13:Show()
  9784.  
  9785. aCols := aCols13
  9786. aHeader := aHeader13
  9787.  
  9788. oGetDad12:Refresh(.T.)
  9789. oGetDad12:oBrowse:Refresh(.T.)
  9790.  
  9791.  
  9792. oGetDad13:Refresh(.T.)
  9793. oGetDad13:oBrowse:Refresh(.T.)
  9794. //oGetDad13:oBrowse:lDisablePaint := .T.
  9795. oDlg:Refresh()
  9796. Eval(oGetDad13:obrowse:bDrawSelect)
  9797.  
  9798.  
  9799. Else
  9800. lGerDifal := !lGerDifal
  9801. EndIF
  9802.  
  9803. Return
  9804.  
  9805.  
  9806. Static Function AtuaDifal()
  9807.  
  9808.  
  9809. Return
  9810.  
  9811. //-------------------------------------------------------------------
  9812. /*/{Protheus.doc} LoadDifal
  9813. Fun玢o que adiciona a linha no array da apura玢o do DIFAL
  9814.  
  9815. @author Erick G Dias
  9816. @since 20/01/2016
  9817. @version 1.0
  9818. /*/
  9819. //-------------------------------------------------------------------
  9820. Static Function LoadDifal(aArray, cLinha, cSubLinha, cDescr, nValor)
  9821.  
  9822. Local nPos := 0
  9823.  
  9824. Default cLinha := ''
  9825. Default cSubLinha := ''
  9826. Default cDescr := ''
  9827. Default nValor := 0
  9828.  
  9829. AADD(aArray,Array(08))
  9830. nPos := Len(aArray)
  9831. aArray[nPos,01] := cLinha
  9832. aArray[nPos,02] := cSubLinha
  9833. aArray[nPos,03] := cDescr
  9834. aArray[nPos,04] := nValor
  9835. aArray[nPos,05] := ""
  9836. aArray[nPos,06] := ""
  9837. aArray[nPos,07] := ''
  9838. aArray[nPos,08] := .F.
  9839.  
  9840.  
  9841. Return
  9842.  
  9843. //-------------------------------------------------------------------
  9844. /*/{Protheus.doc} ApurDifal
  9845. Fun玢o que monta as linhas da tela de apura玢o do Difal
  9846.  
  9847. @author Erick G Dias
  9848. @since 20/01/2016
  9849. @version 1.0
  9850. /*/
  9851. //-------------------------------------------------------------------
  9852. Static Function ApurDifal(cUf, cDescrUf, aDifal,aCdaDIFAL,cNrLivro,dDtIni,lAutomato,cTestCase)
  9853.  
  9854. Local aDifTemp := {}
  9855.  
  9856. Local nDebDif := 0
  9857. Local nOutDeb := 0
  9858. Local nEstCrd := 0
  9859. Local nSldAntDif := 0
  9860. Local nCrdDif := 0
  9861. Local nOutCrd := 0
  9862. Local nEstDeb := 0
  9863. Local nSldDev := 0
  9864. Local nDedDif := 0
  9865. Local nVlRecDif := 0
  9866. Local nSldCrdDif := 0
  9867. Local nDebEsp := 0
  9868. Local nDebFcp := 0
  9869. Local nSldAntFcp := 0
  9870. Local nCrdFcp := 0
  9871. Local nVlRecFcp := 0
  9872. Local nSldCrdFcp := 0
  9873. Local nTotDebDif := 0
  9874. Local nTotCrdDif := 0
  9875. local nPosDifal := 0
  9876. Local nX := 0
  9877. Local nPos := 0
  9878. Local nPosl := 0
  9879. Local nPosPad := 0
  9880. Local cMV_SubTr := IIf(FindFunction("GETSUBTRIB"), GetSubTrib("",.T.), SuperGetMv("MV_SUBTRIB"))
  9881.  
  9882. //Apura玢o FECP
  9883. Local nTotDebFCP := 0
  9884. Local nDebDifF := 0
  9885. Local nOutDebF := 0
  9886. Local nEstCrdF := 0
  9887. Local nTotCrdFCP := 0
  9888. Local nOutCrdF := 0
  9889. Local nEstDebF := 0
  9890. Local nSldDevF := 0
  9891. Local nDedDifF := 0
  9892. Local nDebEspF := 0
  9893. Local lAno2017 := Year(dDtIni) >= 2017
  9894.  
  9895. Default aCdaDIFAL := {}
  9896. Default lAutomato := .F.
  9897. Default cTestCase := "MATA953TestSuite"
  9898.  
  9899. If lAutomato
  9900. If FindFunction("GetParAuto")
  9901. aRetAuto := GetParAuto(cTestCase)
  9902. EndIf
  9903. EndIf
  9904.  
  9905. nPosDifal := aScan(aDifal,{|x|x[1] == cUf} )
  9906.  
  9907. if nPosDifal > 0
  9908. nDebDif := aDifal[nPosDifal][2]
  9909. nCrdDif := aDifal[nPosDifal][4]
  9910. nDebFcp := aDifal[nPosDifal][3]
  9911. nCrdFcp := aDifal[nPosDifal][5]
  9912. EndIF
  9913.  
  9914. //Busca saldo credor do Difal e do FECP de per韔do anterior
  9915.  
  9916. IF lProcDifal .AND. F0I->(DbSeek (xFilial ("F0I")+dTos(firstday(firstday(dDtIni)-1))+cUf+cNrLivro))
  9917. nSldAntDif := F0I->F0I_SPDIF
  9918. nSldAntFcp := F0I->F0I_SPFCP
  9919. EndIF
  9920.  
  9921. LoadDifal(@aDifTemp, '', '', '', '')
  9922. LoadDifal(@aDifTemp,'', '',' Apura玢o DO Difal DETALHADA - ' + cDescrUf + ' ('+ cUf + ')' ,'')
  9923. LoadDifal(@aDifTemp, '', '', '', '')
  9924. LoadDifal(@aDifTemp, '','',' VALORES DO DIFAL ', '')
  9925. LoadDifal(@aDifTemp, '', '', '', '')
  9926. LoadDifal(@aDifTemp, '001','001.00', 'D閎itos de DIFAL nas Sa韉as', nDebDif) //FISXAPUR
  9927. LoadDifal(@aDifTemp, '002','002.00', 'TOTAL DE Outros d閎itos de DIFAL', nOutDeb) //CDA/MANUAL
  9928. LoadDifal(@aDifTemp, '003','003.00', 'TOTAL D Estorno de cr閐itos de DIFAL', nEstCrd) //CDA/MANUAL
  9929. LoadDifal(@aDifTemp, '', '', '', '')
  9930. LoadDifal(@aDifTemp, '004','004.00', 'Saldo Credor do Per韔do Anterior de DIFAL', nSldAntDif) //TABELA per韔do anterior
  9931. LoadDifal(@aDifTemp, '005','005.00', 'Cr閐itos do DIFAL', nCrdDif) //FISXAPUR
  9932. LoadDifal(@aDifTemp, '006','006.00', 'TOTAL DE Outros Cr閐itos DIFAL', nOutCrd) //CDA/MANUAL
  9933. LoadDifal(@aDifTemp, '007','007.00', 'TOTAL DE Estornos de D閎itos DIFAL', nEstDeb) //CDA/MANUAL
  9934. LoadDifal(@aDifTemp, '', '', '', '')
  9935. LoadDifal(@aDifTemp, '008','008.00', 'Saldo Devedor do DIFAL (d閎ito menos credito)', nSldDev) //CONTA
  9936. LoadDifal(@aDifTemp, '009','009.00', 'TOTAL DE Dedu珲es do DIFAL', nDedDif) //CDA/MANUAL
  9937. LoadDifal(@aDifTemp, '010','010.00', 'Valor a recolher - DIFAL', nVlRecDif) //CONTA
  9938. LoadDifal(@aDifTemp, '', '', '', '')
  9939. LoadDifal(@aDifTemp, '011','011.00', 'Saldo Credito do DIFAL (cr閐ito menos d閎ito)',nSldCrdDif) //CONTA
  9940. LoadDifal(@aDifTemp, '012','012.00', 'TOTAL DE D閎itos especiais DIFAL', nDebEsp) //CDA/MANUAL
  9941. LoadDifal(@aDifTemp, '', '', '', '')
  9942.  
  9943. LoadDifal(@aDifTemp, '','', ' VALORES DO FECP ', '')
  9944. LoadDifal(@aDifTemp, '', '', '', '')
  9945. If Year(dDtIni) < 2017
  9946. LoadDifal(@aDifTemp, '013','013.00', 'D閎itos de FECP nas sa韉as', nDebFcp) //FISXAPUR
  9947. LoadDifal(@aDifTemp, '', '', '', '')
  9948. LoadDifal(@aDifTemp, '014','014.00', 'Saldo Credor do Per韔do Anterior de FECP', nSldAntFcp) //TABELA PER蘋DO ANTERIOR
  9949. LoadDifal(@aDifTemp, '015','015.00', 'Cr閐itos do FECP pelas Entradas', nCrdFcp) //FISXAPUR
  9950. LoadDifal(@aDifTemp, '', '', '', '')
  9951. LoadDifal(@aDifTemp, '016','016.00', 'Valor a recolher - FECP (d閎ito menos cr閐ito)', nVlRecFcp) //CONTA
  9952. LoadDifal(@aDifTemp, '', '', '', '')
  9953. LoadDifal(@aDifTemp, '017','017.00', 'Saldo Credor do FECP (cr閐ito menos d閎ito)', nSldCrdFcp) //CONTA
  9954. Else
  9955. LoadDifal(@aDifTemp, '013','013.00', 'D閎itos de FECP nas sa韉as', nDebFcp) //FISXAPUR
  9956. LoadDifal(@aDifTemp, '014','014.00', 'Outros D閎itos FECP', nOutDebF) //CDA/MANUAL
  9957. LoadDifal(@aDifTemp, '015','015.00', 'Estorno do Cr閐ito FECP', nEstCrdF) //CDA/MANUAL
  9958. LoadDifal(@aDifTemp, '', '', '', '')
  9959. LoadDifal(@aDifTemp, '016','016.00', 'Saldo Credor do Per韔do Anterior de FECP', nSldAntFcp) //TABELA PER蘋DO ANTERIOR
  9960. LoadDifal(@aDifTemp, '017','017.00', 'Cr閐itos do FECP pelas Entradas', nCrdFcp) //FISXAPUR
  9961. LoadDifal(@aDifTemp, '018','018.00', 'Outros Cr閐itos FECP', nOutCrdF) //CDA/MANUAL
  9962. LoadDifal(@aDifTemp, '019','019.00', 'Estorno do D閎ito FECP', nEstDebF) //CDA/MANUAL
  9963. LoadDifal(@aDifTemp, '', '', '', '')
  9964. LoadDifal(@aDifTemp, '020','020.00', 'Saldo Devedor FECP', nSldDevF) //CONTA
  9965. LoadDifal(@aDifTemp, '021','021.00', 'Dedu珲es do FECP', nDedDifF) //CDA/MANUAL
  9966. LoadDifal(@aDifTemp, '', '', '', '')
  9967. LoadDifal(@aDifTemp, '022','022.00', 'Valor a recolher - FECP (d閎ito menos cr閐ito)', nVlRecFcp) //CONTA
  9968. LoadDifal(@aDifTemp, '', '', '', '')
  9969. LoadDifal(@aDifTemp, '023','023.00', 'Saldo Credor do FECP (cr閐ito menos d閎ito)', nSldCrdFcp) //CONTA
  9970. LoadDifal(@aDifTemp, '024','024.00', 'D閎itos Especiais FECP', nDebEspF) //CDA/MANUAL
  9971. Endif
  9972. LoadDifal(@aDifTemp, '', '', '', '')
  9973. LoadDifal(@aDifTemp, '','' ,' <<<---VOLTAR', '')
  9974. //
  9975.  
  9976. nCdaDifal := aScan(aCdaDIFAL,{|x|x[6] == cUf} )
  9977. nPosl := Len(aDifTemp[1])
  9978. If nCdaDifal > 0 .and. cUf $ cMV_SubTr
  9979. For nX := nCdaDifal to Len(aCdaDIFAL) //O array estar?ordenado por UF
  9980. If aCdaDIFAL[nx][6] == cUf
  9981.  
  9982. nPos := ascan(aDifTemp,{|x|x[1]==aCdaDIFAL[nX][1]}) //procura c骴igo da linha
  9983. Aeval(aDifTemp,{|x| if(x[1]==aCdaDIFAL[nX][1] .and. x[nPosl]==.F.,nPos++,)})
  9984. aDifTemp := Asize(aDifTemp,Len(aDifTemp)+1)
  9985. aDifTemp := Ains(aDifTemp,nPos)
  9986. 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.}
  9987.  
  9988. Do Case
  9989.  
  9990. Case aCdaDIFAL[nx][1] == '002' ; nOutDeb += aCdaDIFAL[nx][3]
  9991. Case aCdaDIFAL[nx][1] == '003' ; nEstCrd += aCdaDIFAL[nx][3]
  9992. Case aCdaDIFAL[nx][1] == '006' ; nOutCrd += aCdaDIFAL[nx][3]
  9993. Case aCdaDIFAL[nx][1] == '007' ; nEstDeb += aCdaDIFAL[nx][3]
  9994. Case aCdaDIFAL[nx][1] == '009' ; nDedDif += aCdaDIFAL[nx][3]
  9995. Case aCdaDIFAL[nx][1] == '012' ; nDebEsp += aCdaDIFAL[nx][3]
  9996.  
  9997. Case aCdaDIFAL[nx][1] == '014' .And. lAno2017 ; nOutDebF += aCdaDIFAL[nx][3]
  9998. Case aCdaDIFAL[nx][1] == '015' .And. lAno2017 ; nEstCrdF += aCdaDIFAL[nx][3]
  9999. Case aCdaDIFAL[nx][1] == '018' .And. lAno2017 ; nOutCrdF += aCdaDIFAL[nx][3]
  10000. Case aCdaDIFAL[nx][1] == '019' .And. lAno2017 ; nEstDebF += aCdaDIFAL[nx][3]
  10001. Case aCdaDIFAL[nx][1] == '021' .And. lAno2017 ; nDedDifF += aCdaDIFAL[nx][3]
  10002. Case aCdaDIFAL[nx][1] == '024' .And. lAno2017 ; nDebEspF += aCdaDIFAL[nx][3]
  10003.  
  10004. EndCase
  10005.  
  10006. Else
  10007. Exit
  10008. EndIF
  10009. next
  10010. EndIf
  10011.  
  10012. If lAutomato
  10013.  
  10014. If len(aRetAuto) > 0
  10015. nCdaDifal := aScan(aRetAuto,{|x|x[6] == cUf} )
  10016. nPosl := Len(aDifTemp[1])
  10017.  
  10018. If nCdaDifal > 0 .AND. cUf $ cMV_SubTr
  10019. For nX := nCdaDifal to Len(aRetAuto) //O array estar?ordenado por UF
  10020.  
  10021. If Len(aCdaDIFAL) > 0
  10022. nPosPad := aScan(aCdaDIFAL,{|x|x[8] == aRetAuto[nX][8] } )
  10023. EndIf
  10024.  
  10025. If nPosPad == 0
  10026.  
  10027. If aRetAuto[nx][6] == cUf
  10028.  
  10029. nPos := ascan(aDifTemp,{|x|x[1]==aRetAuto[nX][1]}) //procura c骴igo da linha
  10030. Aeval(aDifTemp,{|x| if(x[1]==aRetAuto[nX][1] .and. x[nPosl]==.F.,nPos++,)})
  10031. aDifTemp := Asize(aDifTemp,Len(aDifTemp)+1)
  10032. aDifTemp := Ains(aDifTemp,nPos)
  10033. 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.}
  10034.  
  10035. Do Case
  10036.  
  10037. Case aRetAuto[nx][1] == '002' ; nOutDeb += aRetAuto[nx][3]
  10038. Case aRetAuto[nx][1] == '003' ; nEstCrd += aRetAuto[nx][3]
  10039. Case aRetAuto[nx][1] == '006' ; nOutCrd += aRetAuto[nx][3]
  10040. Case aRetAuto[nx][1] == '007' ; nEstDeb += aRetAuto[nx][3]
  10041. Case aRetAuto[nx][1] == '009' ; nDedDif += aRetAuto[nx][3]
  10042. Case aRetAuto[nx][1] == '012' ; nDebEsp += aRetAuto[nx][3]
  10043.  
  10044. Case aRetAuto[nx][1] == '014' .And. lAno2017 ; nOutDebF += aRetAuto[nx][3]
  10045. Case aRetAuto[nx][1] == '015' .And. lAno2017 ; nEstCrdF += aRetAuto[nx][3]
  10046. Case aRetAuto[nx][1] == '018' .And. lAno2017 ; nOutCrdF += aRetAuto[nx][3]
  10047. Case aRetAuto[nx][1] == '019' .And. lAno2017 ; nEstDebF += aRetAuto[nx][3]
  10048. Case aRetAuto[nx][1] == '021' .And. lAno2017 ; nDedDifF += aRetAuto[nx][3]
  10049. Case aRetAuto[nx][1] == '024' .And. lAno2017 ; nDebEspF += aRetAuto[nx][3]
  10050. EndCase
  10051.  
  10052. Else
  10053. Exit
  10054. EndIF
  10055. EndIf
  10056. next
  10057. EndIf
  10058. EndIf
  10059.  
  10060. EndIf
  10061.  
  10062. //Processa valores do DIFAL
  10063. nTotDebDif := nDebDif + nOutDeb + nEstCrd
  10064. nTotCrdDif := nSldAntDif + nCrdDif + nOutCrd + nEstDeb
  10065.  
  10066. nSldDev := nTotDebDif - nTotCrdDif
  10067. nVlRecDif := nSldDev - nDedDif
  10068.  
  10069. If nSldDev < 0
  10070. nSldCrdDif += nSldDev * -1
  10071. nSldCrdDif+= nDedDif
  10072. Elseif nVlRecDif < 0
  10073. nSldCrdDif += nVlRecDif * -1
  10074. EndIF
  10075.  
  10076. nSldDev := Iif(nSldDev < 0,0, nSldDev)
  10077. nVlRecDif := Iif(nVlRecDif < 0,0, nVlRecDif)
  10078. nSldCrdDif := Iif(nSldCrdDif < 0,0, nSldCrdDif)
  10079.  
  10080. If (nPos := ascan(aDifTemp,{|x|x[1]=='002'})) > 0
  10081.  
  10082.  
  10083.  
  10084.  
  10085.  
  10086.  
  10087.  
  10088.  
  10089. aDifTemp[nPos][4] := nOutDeb
  10090. EndiF
  10091.  
  10092. If (nPos := ascan(aDifTemp,{|x|x[1]=='003'})) > 0
  10093.  
  10094. aDifTemp[nPos][4] := nEstCrd
  10095. EndiF
  10096.  
  10097. If (nPos := ascan(aDifTemp,{|x|x[1]=='006'})) > 0
  10098.  
  10099. aDifTemp[nPos][4] := nOutCrd
  10100. EndiF
  10101.  
  10102. If (nPos := ascan(aDifTemp,{|x|x[1]=='007'})) > 0
  10103.  
  10104. aDifTemp[nPos][4] := nEstDeb
  10105. EndiF
  10106.  
  10107. If (nPos := ascan(aDifTemp,{|x|x[1]=='008'})) > 0
  10108.  
  10109. aDifTemp[nPos][4] := nSldDev
  10110. EndiF
  10111.  
  10112. If (nPos := ascan(aDifTemp,{|x|x[1]=='009'})) > 0
  10113.  
  10114. aDifTemp[nPos][4] := nDedDif
  10115. EndiF
  10116.  
  10117. If (nPos := ascan(aDifTemp,{|x|x[1]=='010'})) > 0
  10118.  
  10119. aDifTemp[nPos][4] := nVlRecDif
  10120. EndiF
  10121.  
  10122. If (nPos := ascan(aDifTemp,{|x|x[1]=='011'})) > 0
  10123.  
  10124. aDifTemp[nPos][4] := nSldCrdDif
  10125. EndiF
  10126.  
  10127. If (nPos := ascan(aDifTemp,{|x|x[1]=='012'})) > 0
  10128.  
  10129. aDifTemp[nPos][4] := nDebEsp
  10130. EndiF
  10131.  
  10132. IF Year(dDtIni) >= 2017
  10133. //Ajustes FECP
  10134. //Processa valores do FECP
  10135. nTotDebFCP := nDebFcp + nOutDebF + nEstCrdF
  10136. nTotCrdFCP := nSldAntFcp + nCrdFcp + nOutCrdF + nEstDebF
  10137.  
  10138. nSldDevF := nTotDebFCP - nTotCrdFCP
  10139. nVlRecFcp := nSldDevF - nDedDifF
  10140.  
  10141. //nVlRecFcp := nDebFcp - nCrdFcp
  10142. //nSldCrdFcp := nCrdFcp - nDebFcp
  10143.  
  10144. If nSldDevF < 0
  10145. nSldCrdFcp += nSldDevF * -1
  10146. nSldCrdFcp += nDedDifF
  10147. Elseif nVlRecFcp < 0
  10148. nSldCrdFcp += nVlRecFcp * -1
  10149. EndIF
  10150.  
  10151. nSldDevF := Iif(nSldDevF < 0,0, nSldDevF)
  10152. nVlRecFcp := Iif(nVlRecFcp < 0,0, nVlRecFcp) // Sld Recolher FECP
  10153. nSldCrdFcp := Iif(nSldCrdFcp < 0,0, nSldCrdFcp) // Sld Credor FECP
  10154. Else
  10155. //Processa valores do FECP
  10156. nVlRecFcp := nDebFcp - nCrdFcp
  10157. nSldCrdFcp := nCrdFcp - nDebFcp
  10158. nVlRecFcp := Iif(nVlRecFcp < 0,0, nVlRecFcp)
  10159. nSldCrdFcp := Iif(nSldCrdFcp < 0,0, nSldCrdFcp)
  10160. Endif
  10161.  
  10162.  
  10163. If (nPos := ascan(aDifTemp,{|x|x[1]==IIF(Year(dDtIni) < 2017,'016','022')})) > 0
  10164. aDifTemp[nPos][4] := nVlRecFcp
  10165. EndiF
  10166.  
  10167. If (nPos := ascan(aDifTemp,{|x|x[1]==IIF(Year(dDtIni) < 2017,'017','023')})) > 0
  10168.  
  10169. aDifTemp[nPos][4] := nSldCrdFcp
  10170. EndiF
  10171.  
  10172. IF Year(dDtIni) >= 2017
  10173. If (nPos := ascan(aDifTemp,{|x|x[1]=='014'})) > 0
  10174. aDifTemp[nPos][4] := nOutDebF
  10175. EndiF
  10176.  
  10177. If (nPos := ascan(aDifTemp,{|x|x[1]=='015'})) > 0
  10178. aDifTemp[nPos][4] := nEstCrdF
  10179. EndiF
  10180.  
  10181. If (nPos := ascan(aDifTemp,{|x|x[1]=='018'})) > 0
  10182. aDifTemp[nPos][4] := nOutCrdF
  10183. EndiF
  10184.  
  10185. If (nPos := ascan(aDifTemp,{|x|x[1]=='019'})) > 0
  10186. aDifTemp[nPos][4] := nEstDebF
  10187. EndiF
  10188.  
  10189. If (nPos := ascan(aDifTemp,{|x|x[1]=='020'})) > 0
  10190. aDifTemp[nPos][4] := nSldDevF
  10191. EndiF
  10192.  
  10193. If (nPos := ascan(aDifTemp,{|x|x[1]=='021'})) > 0
  10194. aDifTemp[nPos][4] := nDedDifF
  10195. EndiF
  10196.  
  10197. If (nPos := ascan(aDifTemp,{|x|x[1]=='024'})) > 0
  10198. aDifTemp[nPos][4] := nDebEspF
  10199. EndiF
  10200. EndiF
  10201.  
  10202. Return aDifTemp
  10203.  
  10204. //-------------------------------------------------------------------
  10205. /*/{Protheus.doc} GrvApDifal
  10206. Fun玢o para efetuar grava玢o apura玢o do DIFAL nas tabelas F0I, F0J e F0K.
  10207.  
  10208. @author Erick G Dias
  10209. @since 20/01/2016
  10210. @version 1.0
  10211. /*/
  10212. //-------------------------------------------------------------------
  10213. Static Function GrvApDifal(aDifal,dDtIni,cNrLivro, aTitDifal,aGnreDifal,aApurDifal,aCDADifal)
  10214.  
  10215. Local nCont := 0
  10216. Local cChave := xFilial('F0I')+ DTOS(dDtIni)+cNrLivro
  10217. Local nPosDifal := 0
  10218. Local nCdaDifal := 0
  10219. Local nx := 0
  10220. Local nA := 0
  10221. Local aDifalGrv := {}
  10222. Local aCPOF0I := {'F0I_OUTDBF','F0I_OUTCRF','F0I_DEVFCP','F0I_DEDFCP','F0I_DBESPF','F0I_ESTDBF','F0I_ESTCRF'}
  10223. Local lCPOF0I := .T.
  10224.  
  10225. Default aTitDifal := {}
  10226. Default aGnreDifal := {}
  10227.  
  10228. dbSelectArea("F0I")
  10229. F0I->(DbSetOrder (1))
  10230.  
  10231. For nA:=1 to Len(aCPOF0I)
  10232. If F0I->(FieldPos(aCPOF0I[nA])) == 0
  10233. lCPOF0I := .F.
  10234. Loop
  10235. Endif
  10236. Next
  10237.  
  10238. dbSelectArea("F0K")
  10239. F0K->(DbSetOrder (1))
  10240.  
  10241. For nCont := 1 to Len(aDifal)
  10242.  
  10243. nPosDifal := aScan(aApurDifal,{|x|x[1] == aDifal[nCont][1]} )
  10244. IF nPosDifal > 0
  10245. aDifalGrv := aApurDifal[nPosDifal][2]
  10246.  
  10247. IF F0I->(DbSeek (xFilial ("F0I")+dTos(dDtIni)+aDifal[nCOnt][1]+cNrLivro))
  10248. RecLock("F0I",.F.)
  10249. Else
  10250. RecLock("F0I",.T.)
  10251. F0I->F0I_FILIAL := xFilial("F0I")
  10252. F0I->F0I_PER := dDtIni
  10253. F0I->F0I_LIVRO := cNrLivro
  10254. F0I->F0I_UF := aDifal[nCOnt][1]
  10255. EndIF
  10256.  
  10257. F0I->F0I_DEBDIF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '001.00'} )][4]
  10258. F0I->F0I_OUTDEB := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '002.00'} )][4]
  10259. F0I->F0I_ESTCRD := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '003.00'} )][4]
  10260. F0I->F0I_SADIF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '004.00'} )][4]
  10261. F0I->F0I_CRDDIF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '005.00'} )][4]
  10262. F0I->F0I_OUTCRE := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '006.00'} )][4]
  10263. F0I->F0I_ESTDEB := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '007.00'} )][4]
  10264. F0I->F0I_DEVDIF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '008.00'} )][4]
  10265. F0I->F0I_DEDDIF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '009.00'} )][4]
  10266. F0I->F0I_DIFREC := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '010.00'} )][4]
  10267. F0I->F0I_SPDIF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '011.00'} )][4]
  10268. F0I->F0I_DEBESP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '012.00'} )][4]
  10269.  
  10270. //Tratamento para manter a integridade de apura珲es antes da mudan鏰 de layout do spedfiscal
  10271. If Year(dDtIni) < 2017
  10272. F0I->F0I_DEBFCP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '013.00'} )][4]
  10273. F0I->F0I_SAFCP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '014.00'} )][4]
  10274. F0I->F0I_CRDFCP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '015.00'} )][4]
  10275. F0I->F0I_FCPREC := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '016.00'} )][4]
  10276. F0I->F0I_SPFCP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '017.00'} )][4]
  10277. Else
  10278. F0I->F0I_DEBFCP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '013.00'} )][4]
  10279. If lCPOF0I
  10280. F0I->F0I_OUTDBF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '014.00'} )][4]
  10281. F0I->F0I_ESTCRF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '015.00'} )][4]
  10282. Endif
  10283. F0I->F0I_SAFCP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '016.00'} )][4]
  10284. F0I->F0I_CRDFCP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '017.00'} )][4]
  10285. If lCPOF0I
  10286. F0I->F0I_OUTCRF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '018.00'} )][4]
  10287. F0I->F0I_ESTDBF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '019.00'} )][4]
  10288. F0I->F0I_DEVFCP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '020.00'} )][4]
  10289. F0I->F0I_DEDFCP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '021.00'} )][4]
  10290. Endif
  10291. F0I->F0I_FCPREC := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '022.00'} )][4]
  10292. F0I->F0I_SPFCP := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '023.00'} )][4]
  10293. If lCPOF0I
  10294. F0I->F0I_DBESPF := aDifalGrv[aScan(aDifalGrv,{|x|x[2] == '024.00'} )][4]
  10295. Endif
  10296. Endif
  10297.  
  10298. MsUnlock()
  10299. F0I->(FKCommit())
  10300.  
  10301. GravaF0K('002','002.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
  10302. GravaF0K('003','003.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
  10303. GravaF0K('006','006.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
  10304. GravaF0K('007','007.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
  10305. GravaF0K('009','009.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
  10306. GravaF0K('012','012.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
  10307.  
  10308. //FECP
  10309. GravaF0K('014','014.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
  10310. GravaF0K('015','015.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
  10311. GravaF0K('018','018.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
  10312. GravaF0K('019','019.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
  10313. GravaF0K('021','021.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
  10314. GravaF0K('024','024.00',aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,aDifal[nCOnt][1])
  10315.  
  10316. EndIF
  10317.  
  10318. Next nCont
  10319.  
  10320. dbSelectArea("F0J")
  10321. F0J->(DbSetOrder (2))
  10322.  
  10323. For nCont := 1 to len(aGnreDifal)
  10324.  
  10325. //Ir?gravar os t韙ulos e Guias Geradas da apura玢o do Difal
  10326. //F0J_FILIAL+DTOS(F0J_PER)+F0J_LIVRO+F0J_UF+F0J_GNRE
  10327. IF F0J->(DbSeek (xFilial ("F0J")+dTos(dDtIni)+cNrLivro+aGnreDifal[nCOnt][5]+aGnreDifal[nCOnt][1]))
  10328. RecLock("F0J",.F.)
  10329. Else
  10330. RecLock("F0J",.T.)
  10331. F0J->F0J_FILIAL := xFilial("F0J")
  10332. F0J->F0J_PER := dDtIni
  10333. F0J->F0J_LIVRO := cNrLivro
  10334. F0J->F0J_UF := aGnreDifal[nCOnt][5]
  10335. F0J->F0J_GNRE := aGnreDifal[nCOnt][1]
  10336. EndIF
  10337. F0J->F0J_DTVENC := aGnreDifal[nCOnt][2]
  10338. F0J->F0J_VALOR := aGnreDifal[nCOnt][3]
  10339.  
  10340. If 'DIFAL' $ aGnreDifal[nCOnt][7]
  10341. F0J->F0J_TIPO := '1'
  10342. ElseIF 'FECP' $ aGnreDifal[nCOnt][7]
  10343. F0J->F0J_TIPO := '2'
  10344. ElseIF 'DEBITO ESPECIAL' $ aGnreDifal[nCOnt][7]
  10345. F0J->F0J_TIPO := '3'
  10346. EndIF
  10347.  
  10348. MsUnlock()
  10349. F0J->(FKCommit())
  10350.  
  10351. Next
  10352.  
  10353. //Realiza a grava玢o dos t韙ulos gerados na tabela F0J.
  10354. dbSelectArea("F0J")
  10355. F0J->(DbSetOrder (1))
  10356. For nCont := 1 to len(aTitDifal)
  10357.  
  10358. //F0J_FILIAL+DTOS(F0J_PER)+F0J_LIVRO+F0J_UF+F0J_TPTIT+F0J_NUMTIT+F0J_PRFTIT
  10359. IF F0J->(DbSeek (xFilial("F0J")+dTos(dDtIni)+cNrLivro+aTitDifal[nCOnt][8]+aTitDifal[nCOnt][4]+aTitDifal[nCOnt][2]+aTitDifal[nCOnt][1]))
  10360. RecLock("F0J",.F.)
  10361. Else
  10362. RecLock("F0J",.T.)
  10363. F0J->F0J_FILIAL := xFilial("F0J")
  10364. F0J->F0J_PER := dDtIni
  10365. F0J->F0J_LIVRO := cNrLivro
  10366. F0J->F0J_UF := aTitDifal[nCOnt][8]
  10367. F0J->F0J_PRFTIT := aTitDifal[nCOnt][1]
  10368. F0J->F0J_NUMTIT := aTitDifal[nCOnt][2]
  10369. F0J->F0J_PARC := aTitDifal[nCOnt][3]
  10370. F0J->F0J_TPTIT := aTitDifal[nCOnt][4]
  10371. F0J->F0J_FORN := aTitDifal[nCOnt][5]
  10372. F0J->F0J_LOJA := aTitDifal[nCOnt][6]
  10373. EndIF
  10374.  
  10375. F0J->F0J_VALOR := aTitDifal[nCOnt][9]
  10376. F0J->F0J_DTVENC := aTitDifal[nCOnt][10]
  10377.  
  10378. IF 'DIFAL' $ aTitDifal[nCOnt][7]
  10379. F0J->F0J_TIPO := '4'
  10380. ElseIF 'FECP' $ aTitDifal[nCOnt][7]
  10381. F0J->F0J_TIPO := '5'
  10382. ElseIF 'DEBITO ESPECIAL' $ aTitDifal[nCOnt][7]
  10383. F0J->F0J_TIPO := '6'
  10384. EndIF
  10385.  
  10386. MsUnlock()
  10387. F0J->(FKCommit())
  10388.  
  10389. Next
  10390.  
  10391. Return
  10392.  
  10393. //-------------------------------------------------------------------
  10394. /*/{Protheus.doc} GravaF0K
  10395. Fun玢o para efetuar grava玢o na tabela F0K
  10396.  
  10397. @author Erick G Dias
  10398. @since 20/01/2016
  10399. @version 1.0
  10400. /*/
  10401. //-------------------------------------------------------------------
  10402. Static Function GravaF0K(cLinha,cSubItem,aDifalGrv,aApurDifal,nPosDifal,dDtIni,cNrLivro,cUf)
  10403.  
  10404. Local nX := 0
  10405. //Rodar c骴igos de lan鏰mentos do pr髉rio aApuirDifal
  10406. nX := aScan(aDifalGrv,{|x|x[2] == cSubItem} )
  10407. For nX := nX+1 to len(aApurDifal[nPosDifal][2])
  10408. //verificar se linha n鉶 est?deletada
  10409. IF !aApurDifal[nPosDifal][2][nx][8]
  10410. If aApurDifal[nPosDifal][2][nx][1] == cLinha
  10411. //F0K_FILIAL+DTOS(F0K_PER)+F0K_LIVRO+F0K_UF+F0K_CODAPU+F0K_DESCR
  10412. 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]) ))
  10413. RecLock("F0K",.F.)
  10414. Else
  10415. RecLock("F0K",.T.)
  10416. F0K->F0K_FILIAL := xFilial("F0K")
  10417. F0K->F0K_PER := dDtIni
  10418. F0K->F0K_LIVRO := cNrLivro
  10419. F0K->F0K_UF := cUf
  10420. F0K->F0K_CODAPU := aApurDifal[nPosDifal][2][nx][5]
  10421. F0K->F0K_GNRE := aApurDifal[nPosDifal][2][nx][6]
  10422. F0K->F0K_DESCR := aApurDifal[nPosDifal][2][nx][3]
  10423. F0K->F0K_SUBITE := aApurDifal[nPosDifal][2][nx][2]
  10424. F0K->F0K_TPLANC := aApurDifal[nPosDifal][2][nx][7]
  10425. EndIF
  10426.  
  10427. F0K->F0K_VALOR += aApurDifal[nPosDifal][2][nx][4]
  10428.  
  10429. MsUnlock()
  10430. F0K->(FKCommit())
  10431.  
  10432. Else
  10433. Exit
  10434. EndIF
  10435. EndIF
  10436. Next nx
  10437.  
  10438. Return
  10439.  
  10440. Function A953Legenda()
  10441. Local aLegenda := {}
  10442.  
  10443. aAdd(aLegenda, {"br_amarelo", 'Estado de Origem'})
  10444. aAdd(aLegenda, {"br_vermelho", 'Estado de Destino sem Inscri玢o Estadual'})
  10445. aAdd(aLegenda, {"br_verde", 'Estado de Destino Com Inscri玢o Estadual'})
  10446. BrwLegenda ('Apura玢o de ICMS', 'Legenda', aLegenda) //"Legenda"
  10447.  
  10448. Return .T.
  10449.  
  10450. //-------------------------------------------------------------------
  10451. /*/{Protheus.doc} AtuAcols
  10452. Atualiza as colunas com informa珲es passadas pelo caso de testes
  10453.  
  10454. @author fabio.santana
  10455. @since 20/01/2016
  10456. @version 1.0
  10457. /*/
  10458. //-------------------------------------------------------------------
  10459. Static Function AtuAcols(aColsPad,nPosPad,aColsAuto,nPosAuto)
  10460.  
  10461. //aCols Padr鉶
  10462. Default aColsPad := {}
  10463. //Array passado pelo CT
  10464. Default aColsAuto := {}
  10465.  
  10466. //Registro posicionado no la鏾 do aColsAuto
  10467. Default nPosAuto := 0
  10468. //nPos da linha ja existente, para receber o update passado pelo aColsAuto
  10469. Default nPosPad := 0
  10470.  
  10471. //Se nao encontrou os dados no acols padr鉶, fa鏾 uma inclus鉶 manual
  10472. If nPosPad == 0
  10473.  
  10474. If aColsAuto[nPosAuto,10] == "M"
  10475. 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
  10476. Else
  10477. 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
  10478. EndIf
  10479.  
  10480. Else
  10481.  
  10482. //Somente atualizo os dados se forem diferentes dos ja gravados
  10483. //Codigo
  10484. If AllTrim(aColsPad[nPosPad,1]) <> AllTrim(aColsAuto[nPosAuto][3])
  10485. aColsPad[nPosPad,1] := aColsAuto[nPosAuto][3]
  10486. EndIF
  10487.  
  10488. //Sub Item
  10489. If AllTrim(aColsPad[nPosPad,2]) <> AllTrim(aColsAuto[nPosAuto][11])
  10490. aColsPad[nPosPad,2] := aColsAuto[nPosAuto][11]
  10491. EndIf
  10492.  
  10493. //Descri玢o
  10494. If AllTrim(aColsPad[nPosPad,3]) <> AllTrim(aColsAuto[nPosAuto][4])
  10495. aColsPad[nPosPad,3] := aColsAuto[nPosAuto][4]
  10496. EndIf
  10497.  
  10498. //Valor
  10499. If AllTrim(aColsPad[nPosPad,4]) <> AllTrim(aColsAuto[nPosAuto][5])
  10500. aColsPad[nPosPad,4] := aColsAuto[nPosAuto][5]
  10501. EndIf
  10502.  
  10503. //GNRE
  10504. If AllTrim(aColsPad[nPosPad,5]) <> AllTrim(aColsAuto[nPosAuto][7])
  10505. aColsPad[nPosPad,5] := aColsAuto[nPosAuto][7]
  10506. EndIf
  10507.  
  10508. //Classe de vencimento
  10509. If AllTrim(aColsPad[nPosPad,6]) <> AllTrim(aColsAuto[nPosAuto][8])
  10510. aColsPad[nPosPad,6] := aColsAuto[nPosAuto][8]
  10511. EndIf
  10512.  
  10513. //Codigo de Lan鏰mento
  10514. If AllTrim(aColsPad[nPosPad,7]) <> AllTrim(aColsAuto[nPosAuto][12])
  10515. aColsPad[nPosPad,7] := aColsAuto[nPosAuto][12]
  10516. EndIf
  10517.  
  10518. //Em alguns aCols ser?necess醨io passar M na decima posi玢o no array
  10519. If aColsAuto[nPosAuto,10] == "M"
  10520.  
  10521. If AllTrim(aColsPad[nPosPad,8]) := AllTrim(aColsAuto[nPosAuto][10])
  10522. aColsPad[nPosPad,8] := aColsAuto[nPosAuto][10]
  10523. EndIf
  10524. aColsPad[nPosPad,9] := .F.
  10525.  
  10526. Else
  10527. aColsPad[nPosPad,8] := .F.
  10528. EndIf
  10529.  
  10530. EndIF
  10531.  
  10532. Return aColsPad
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement