VARIAVEL Z_AAMM = right( str(year(date()),4), 2) + strzero( month(date()) ,2) 
VARIAVEL z_pfnum = 0 
VARIAVEL z_pfnumped = 0 
VARIAVEL z_pffor = 0 
VARIAVEL z_forn = 0 
VARIAVEL Z_DE = CTOD( "01."+SUBSTR(DTOC(S_DATUAL),4) )
VARIAVEL Z_ATE = S_DATUAL
* 
VARIAVEL Z_BsIcmNORMAL = 0
*
VARIAVEL Z_MOVE = "" 
VARIAVEL Z_FATF = ""
T10,10,17,60,Parametros 
T2,4,Ano e Mes (AaMm) :,4,z_aamm,9999 
T3,4,Fornecedor ......:,4,z_forn,9999
T4,4,Data Inicial ....:,10,Z_DE,99.99.9999
T5,4,Data Final ......:,10,Z_ATE,99.99.9999
 
COMANDO ANTES DbGoBottom() 
COMANDO DEPOIS Z_MOVE = "MOVE"+Z_AAMM 
COMANDO DEPOIS Z_FATF = "FATF"+Z_AAMM 
 
ARQUIVO (Z_FATF) ("temp0001") dtos(pfdatache)+str(pffor,4) 
OUTROARQ (z_MOVE) z_MOVE+".f" mfnum 
OUTROARQ SCCPFOR 
OUTROARQ SE_PROD SEIP_C PCOD 
VARIAVEL Z_NUMNOTAS = 0 
VARIAVEL Z_PRODS = 0 
VARIAVEL Z_UNIDS = 0 
 
*- FILTRO PFNUM>0 .and. pficmBnorm+pficmBfont+pficmisent <> pfbaseicms 
FILTRO PFNUM>0 
FILTRO (z_forn=0 .OR. z_forn=PFFOR) .AND. (PFDATACHE>=Z_DE .AND. PFDATACHE<=Z_ATE)

C[SISTEMA]                                       pag [Z_NUMNOTAS 999] 
CConsistencia nas Bases de ICMs                           em [s_datual] as [time()] 
C[repl("-",132)] 
CFornecedor      Ok? Prd     NF  Chegada CFOP    Valor  BASEICMS  %ICMs  TotICMs bsNORMAL bsFONTE ISENTAs  ICMnormal ICMfonte difCRED 
C[Repl("=",132)] 
 
COMANDO DURANTE z_pfnum  = pfnum 
COMANDO DURANTE z_pffor  = PFFOR 
COMANDO DURANTE sccpfor->(DBgoto(Z_pffor)) 
COMANDO DURANTE z_pfnumped = PFNUMPED 
 
COMANDO DURANTE Z_PFDATACHE = PFDATACHE 
COMANDO DURANTE Z_PFVAL     = PFVAL 
COMANDO DURANTE Z_PFTOTICMS = PFTOTICMS 
COMANDO DURANTE Z_PFVALRET  = PFVALRET 
COMANDO DURANTE Z_PRCUSTO   = PFVAL - PFVALRET 
 
COMANDO DURANTE Z_NUMNOTAS   = Z_NUMNOTAS + 1 
COMANDO DURANTE Z_PRODS      = 0 
COMANDO DURANTE Z_UNIDS      = 0 
COMANDO DURANTE Z_BsIcmNORMAL = 0 
 
SUBLIST Z_MOVE 
COMANDO ANTES DbSeek(z_pfnum) 
REPITA ENQUANTO MFNUM = z_pfnum 
FILTRO MFGES="E".and.mquant>0.and.mfnum=z_pfnum.and.mcodforc=z_pffor.and.fnumped=z_pfnumped 
COMANDO DURANTE Z_PCOD = PCOD 
COMANDO DURANTE SE_PROD->(DBSEEK(Z_PCOD)) 
COMANDO DURANTE Z_PRODS = Z_PRODS + 1 
COMANDO DURANTE Z_UNIDS = Z_UNIDS + MQUANT 

COMANDO DURANTE Z_BsIcmNORMAL = Z_BsIcmNORMAL + if(.not."F"$se_prod->pcategoria.and..not."I"$se_prod->pcategoria,mvalor,0)

COMANDO DEPOIS z_fg_icm_atua = .f. .and. (z_prods>0)
COMANDO DEPOIS if(z_fg_icm_atua,z_fatf->(reglock()),)
COMANDO DEPOIS if(z_fg_icm_atua,z_fatf->(Put_Var("pfIcmBNorm",Z_BsIcmNORMAL)),)
COMANDO DEPOIS if(z_fg_icm_atua,z_fatf->(Put_Var("pfIcmBFont",pfbaseicms-pfIcmBNorm-pficmisent)),)
COMANDO DEPOIS if(z_fg_icm_atua,z_fatf->(Put_Var("pfIcmFonte",pfIcmBFont*pftaxaicms/100)),)
COMANDO DEPOIS if(z_fg_icm_atua,z_fatf->(Put_Var("pfIcmNorma",pftoticms-pfIcmFonte)),)

COMANDO DEPOIS zstring = z_fatf->( str(pfnum,6)+" "+dtoc(pfdatache)+" "+PFCODOP+" "+str(PFVAL,8,2) ) 
COMANDO DEPOIS zstring = zstring+" "+z_fatf->( str(PFBASEICMS,8,2)+" "+str(pftaxaicms,5,2)+"% "+str(PFTOTICMS,8,2)+" "+str(pfIcmBNorm,8,2)+" "+str(pfIcmBfont,8,2)) 
COMANDO DEPOIS zstring = zstring+" "+z_fatf->( str(pfIcmIsenta,8,2)+" "+str(pfIcmNorma,8,2)+" "+str(pfIcmfonte,8,2) ) 
COMANDO DEPOIS ZDIF1    = z_fatf->( PFBASEICMS - pfIcmBNorm - pfIcmBfont ) 
COMANDO DEPOIS ZDIF2    = z_fatf->( PFTOTICMS  - pfIcmNormA - pfIcmfontE ) 
*- COMANDO DEPOIS zstring = zstring+" "+str(zdif1,8,2)+" "+str(zdif2,8,2) 
COMANDO DEPOIS zstring = zstring+str(zdif2,8,2) 
COMANDO DEPOIS z_outras = z_fatf->( pfvalret+pfoutros+pftotipi ) 
*- COMANDO DEPOIS z_fgok = z_fatf->( if( pfval<>PFBASEICMS+pfIcmIsenta+z_outras,"*n"," s") ) 
COMANDO DEPOIS z_fgok = z_fatf->( if( abs(zdif2)>0.02 , "*n", " s") ) 
ULTPAG [z_pffor 9999]-[sccpfor->cp_fantasi @s10] [z_fgok] [z_prods 999] [zstring] 
FIM SUBLIST 
 
 
variavel zt_pfval      = 0 
variavel zt_pfbaseicms = 0 
variavel zt_pftoticms  = 0 
variavel Zt_pficmisent = 0 
variavel Zt_pfvalret   = 0 
variavel zt_pfIcmBNorm = 0 
variavel zt_pfIcmNormA = 0 
variavel Zt_pftotipi   = 0 
variavel Zt_pfoutros   = 0 
 
comando durante zt_pfval      = zt_pfval + pfval 
comando durante zt_pfbaseicms = zt_pfbaseicms + pfbaseicms 
comando durante zt_pftoticms  = zt_pftoticms  + pftoticms 
comando durante Zt_pficmisent = Zt_pficmisent + pficmisent 
comando durante Zt_pfvalret   = Zt_pfvalret   + pfvalret 
comando durante Zt_pftotipi   = Zt_pftotipi   + pftotipi 
comando durante zt_pfIcmBNorm = zt_pfIcmBNorm + pfIcmBNorm 
comando durante zt_pfIcmNormA = zt_pfIcmNormA + pfIcmNormA 
comando durante Zt_pfoutros   = Zt_pfoutros   + pfoutros 
 
COMANDO DEPOIS Z_FGERRO = zt_pfval<>zt_pfbaseicms+Zt_pficmisent+Zt_pfvalret 
COMANDO DEPOIS z_critica = if(Z_FGERRO,"Diferenca de OUTRAS DO ICMS: "+transform(zt_pfval-(zt_pfbaseicms+Zt_pficmisent+Zt_pfvalret),"@E 9999,999.99"),"") 
COMANDO DEPOIS z_critica = if(Z_FGERRO,z_critica+" (Diferenca entre TOTAIS DAS NOTAS e BASES de Calculo)","BASES DE CALCULO versus TOTAIS da nota Ok") 
ULTPAG[Repl("=",132)] 
ULTPAG 
ULTPAG *** Notas Listadas.............: [Z_NUMNOTAS 9999] 
ULTPAG 
ULTPAG *** Valor Total das Entradas...: [Zt_pfval @E 9999,999.99] 
ULTPAG *** Base do ICMs destacado.....: [Zt_pfbaseicms @E 9999,999.99] 
ULTPAG *** Total do ICMs destacado....: [Zt_pftoticms @E 9999,999.99] 
ULTPAG *** Total de Isentas do ICMs...: [Zt_pficmisent @E 9999,999.99] 
ULTPAG *** Total de ICMs pago na Fonte: [Zt_pfvalret @E 9999,999.99] 
ULTPAG *** Total de IPI pago na Fonte.: [Zt_pftotipi @E 9999,999.99] 
ULTPAG *** Total de Outros Encargos...: [Zt_pfoutros @E 9999,999.99] 
ULTPAG 
ULTPAG ==> [z_critica] 
ULTPAG 
ULTPAG *** Base do Credito de ICMS da Tributacao Normal: [zt_pfIcmBNorm @E 9999,999.99] 
ULTPAG *** Credito de ICMs sobre Produtos de Trb Normal: [zt_pfIcmNormA @E 9999,999.99] 
 
