#INDEX CP_CSTFX STR(CP_DIVISAO,3)+STR(fval,10) 

OUTROARQ SCCRCLI
#VARIAVEL LST_TP = 999 
VARIAVEL zvTotCli = {} 
VARIAVEL zvIcmTot = {} 
VARIAVEL zvIcmCrdPres = {} 
VARIAVEL zvIcmMultExc = {} 
VARIAVEL zTotGerfat = 0 
VARIAVEL zNcli    = 0 
VARIAVEL zCodCli  = 0 
VARIAVEL zMax     = 0 
VARIAVEL zMaxPer  = 0 
VARIAVEL ZsDifInt = 0 
VARIAVEL ZsDifExt = 0 

VARIAVEL zTicmTot = 0 
VARIAVEL zTicmEsp = 0 
VARIAVEL zTicmExc = 0 

VARIAVEL zTEntPB  = 0
VARIAVEL zTEntNE  = 0
VARIAVEL zTEntSE  = 0
VARIAVEL zTIcmEPB = 0
VARIAVEL zTIcmENE = 0
VARIAVEL zTIcmESE = 0

VARIAVEL zTSaiPB  = 0
VARIAVEL zTSaiNE  = 0
VARIAVEL zTSaiSE  = 0
VARIAVEL zTIcmSPB = 0
VARIAVEL zTIcmSNE = 0
VARIAVEL zTIcmSSE = 0
VARIAVEL zTsPBoPB = 0
VARIAVEL zTsNEoPB = 0
VARIAVEL zExcPB   = 0

VARIAVEL zsldcredor = 0

VARIAVEL Z_MES_PT_ANO = SubStr( Dtoc(S_DATUAL), 4)
VARIAVEL Z_DE = ctod( "01."+Substr(Dtoc(S_DATUAL),4) ) 
VARIAVEL Z_ATE = S_DATUAL 
 
T10,10,16,70,Parametros 
*-T2,2,Data Inicial:,8,z_de,99.99.99 
*-T3,2,Data Final..:,8,z_ate,99.99.99 
T3,2,Mes e Ano....:,7,z_mes_pt_ano,99.9999

COMANDO ANTES Mensagem("Verificando Faturamento do Periodo")
COMANDO ANTES Z_DE = ctod( "01."+z_mes_pt_ano ) 
COMANDO ANTES zultdiames = CTOD("01"+substr( DTOC( Z_DE + 35 ), 3) )-1
COMANDO ANTES Z_ATE = If( Z_MES_PT_ANO = SubStr( Dtoc(S_DATUAL), 4), s_datual, zultdiames)
*-
COMANDO ANTES zNcli = SccrCli->( Recc() ) + 1 
COMANDO ANTES zvTotCli = Array( zNcli ) 
COMANDO ANTES Z_NIL = AFILL( zvTotCli , 0 ) 
COMANDO ANTES Z_NIL = AFILL( zvIcmTot , 0 ) 
*-COMANDO ANTES Z_NIL = AFILL( zvIcmCrdPres , 0 ) 
*-COMANDO ANTES Z_NIL = AFILL( zvIcmMultExc , 0 ) 

FILTRO fdataemi>=z_de.and.fdataemi<=z_ate .and. ftoticms>0.and.substr(fcodop,2,2)<>".9"

COMANDO DURANTE zCodCli = fCli 
COMANDO DURANTE SccrCli->(DbGoto(zCodCli))
COMANDO DURANTE zCodCli = IF(zCodCli>0.and.zCodCli<zNcli, zCodCli, zNcli) 
COMANDO DURANTE zvTotCli[zCodCli] = zvTotCli[zCodCli] + fval 
COMANDO DURANTE zvIcmTot[zCodCli] = zvIcmTot[zCodCli] + ftoticms
COMANDO DURANTE zTsPBoPB = zTsPBoPB + if(sccrcli->cr_uf="PB", fval_opb, 0) 
COMANDO DURANTE zTsNEoPB = zTsNEoPB + if(sccrcli->cr_uf<>"PB", fval_opb, 0) 
COMANDO DURANTE zTotGerfat = zTotGerfat + fval 


ARQUIVO SF_FATF
OUTROARQ SCCPFOR
COMANDO ANTES Mensagem("Processando COMPRAS...")
FILTRO FLOJA=53.and.pfval>0.and.year(pfdatache)>=2006 
FILTRO PfdataCHE>=z_de.and.PfdataCHE<=z_ate .and. Pftoticms>0 .and.substr(pfcodop,2,2)<>".9"
COMANDO DURANTE Zforn = pffor 
COMANDO DURANTE sccpfor->(DbGoto(zforn)) 
 
COMANDO DURANTE zTEntPB  = zTEntPB + if(sccpfor->cp_uf="PB", pfval, 0) 
COMANDO DURANTE zTEntNE  = zTEntNE + if(sccpfor->cp_uf$"/MA/CE/RN/PE/AL/SE/BA/PI/", pfval, 0) 
COMANDO DURANTE zTEntSE  = zTEntSE + if(.not.sccpfor->cp_uf$"/PB/MA/CE/RN/PE/AL/SE/BA/PI/", pfval, 0) 
COMANDO DURANTE zTIcmEPB = zTIcmEPB + if(sccpfor->cp_uf="PB", pftoticms, 0) 
COMANDO DURANTE zTIcmENE = zTIcmENE + if(sccpfor->cp_uf$"/MA/CE/RN/PE/AL/SE/BA/PI/", pftoticms, 0) 
COMANDO DURANTE zTIcmESE = zTIcmESE + if(.NOT.sccpfor->cp_uf$"/PB/MA/CE/RN/PE/AL/SE/BA/PI/", pftoticms, 0) 


ARQUIVO SCCRCLI
OUTROARQ EF_S8801 EF_S8801 anomes+tpreg88
COMANDO ANTES zMaxPer = zTotGerfat*0.10 

COMANDO DURANTEAF zCodCli = recno() 
COMANDO DURANTEAF zCodCli = IF(zTotGerfat>0.and.zCodCli>0.and.zCodCli<zNcli, zCodCli, zNcli) 
FILTRO  zTotGerfat>0 .and. zvTotCli[ zCodCli ] > 0 

COMANDO DURANTE zTotCli = zvTotCli[ zCodCli ]
COMANDO DURANTE zTotIcm = zvIcmTot[ zCodCli ]
*-
COMANDO DURANTE zTSaiPB  = zTSaiPB  + if(sccrcli->cr_uf="PB", zTotCli, 0)
COMANDO DURANTE zTSaiNE  = zTSaiNE  + if(sccrcli->cr_uf$"/MA/CE/RN/PE/AL/SE/BA/PI/", zTotCli, 0)
COMANDO DURANTE zTSaiSE  = zTSaiSE  + if(.not.sccrcli->cr_uf$"/PB/MA/CE/RN/PE/AL/SE/BA/PI/", zTotCli, 0)
COMANDO DURANTE zTIcmSPB = zTIcmSPB + if(sccrcli->cr_uf="PB", zTotIcm, 0) 
COMANDO DURANTE zTIcmSNE = zTIcmSNE + if(sccrcli->cr_uf$"/MA/CE/RN/PE/AL/SE/BA/PI/", zTotIcm, 0) 
COMANDO DURANTE zTIcmSSE = zTIcmSSE + if(.NOT.sccrcli->cr_uf$"/PB/MA/CE/RN/PE/AL/SE/BA/PI/", zTotIcm, 0) 

COMANDO DURANTE zfantasia = cr_fantasi 
COMANDO DURANTE zstr = "Faturamento: R$ "+ltrim(Transform(zTotGerFat,"@e 999,999,999.99"))+" - Analisando "+alltrim(cr_fantasi)+" com R$ "+ltrim(Transform(zTotCli,"@e 999,999,999.99"))
COMANDO DURANTE znil = mensagem( zstr )
COMANDO DURANTE zPerc   = 100 * zTotCli/zTotGerfat 
COMANDO DURANTE zdif    = if(cr_uf<>"PB",0, zTotCli - zMaxPer)
COMANDO DURANTE zStrDif = if(cr_uf<>"PB", "- sem limite -", transform(zdif,"@E 999,999,999.99") )
COMANDO DURANTE zSit    = if(cr_uf<>"PB", "       " ,if(zdif>0, "a Mais   ", "a Menos") )
COMANDO DURANTE zMax    = if(cr_uf="PB".and.zTotCli>zMax, zTotCli, zMax) 
COMANDO DURANTE zNecess = if(zMaxPer<zMax, zMax-zMaxPer, 0) 
COMANDO DURANTE zExcPB  = zExcPB+if(cr_uf="PB".and.zTotCli>zMaxPer,zTotCli-zMaxPer,0)

COMANDO DURANTE zStrIcm = Transform(zTotIcm, "@E 999,999.99")
*-+" "+Transform(zicmEsp, "@E 999,999.99")+" "+Transform(zicmExc, "@E 999,999.99") 
*-COMANDO DURANTE zStrIcm = zStrICm +" "+Transform(zicmTot-zicmEsp-zicmExc, "@E 999,999.99") 

C 
CDistribuidora x Regime Especial: De [z_de] a [z_ate] 
C---------------------------------------------------------------------------------------------------
CCliente        Vendas   %Total    Excesso/Falta  Sit   Icm_Normal Icm_Regime Icm_Excesso  Icm_Abat
C===================================================================================================

D[zCodCli 999]-[zfantasia @s5] [zTotCli @E 9,999,999.99] [zperc @e 999.99]%   [zStrDif] [zSit] [zStrIcm] 

*- COMANDO DEPOIS zTsPBoPB = ja_calculado_acima
COMANDO DEPOIS zTsPBoNE = (zTSaiPB-zTsPBoPB) * zTEntNE/(zTEntNE+zTEntSE)
COMANDO DEPOIS zTsPBoSE = (zTSaiPB-zTsPBoPB) * zTEntSE/(zTEntNE+zTEntSE)

*- COMANDO DEPOIS zTsNEoPB = ja_calculado_acima
COMANDO DEPOIS zTsNEoNE = (zTSaiNE+zTSaiSE-zTsNEoPB) * zTEntNE/(zTEntNE+zTEntSE)
COMANDO DEPOIS zTsNEoSE = (zTSaiNE+zTSaiSE-zTsNEoPB) * zTEntSE/(zTEntNE+zTEntSE)
COMANDO DEPOIS zExPBoPB = zExcPB * zTEntPB/(zTEntPB+zTEntNE+zTEntSE)
COMANDO DEPOIS zExPBoNE = zExcPB * zTEntNE/(zTEntPB+zTEntNE+zTEntSE)
COMANDO DEPOIS zExPBoSE = zExcPB * zTEntSE/(zTEntPB+zTEntNE+zTEntSE)

COMANDO DEPOIS zCrPBoPB = (zTsPBoPB-zExPBoPB) * (0.17-0.01)
COMANDO DEPOIS zCrPBoNE = (zTsPBoNE-zExPBoNE) * (0.17-0.14)
COMANDO DEPOIS zCrPBoSE = (zTsPBoSE-zExPBoSE) * (0.17-0.10)
COMANDO DEPOIS zCrNEoPB = zTsNEoPB*(0.12-0.01)
COMANDO DEPOIS zCrNEoNE = zTsNEoNE*(0.12-0.12)
COMANDO DEPOIS zCrNEoSE = zTsNEoSE*(0.12-0.09)
COMANDO DEPOIS zCrdPres = zCrPBoPB+zCrPBoNE+zCrPBoSE+zCrNEoPB+zCrNEoNE+zCrNEoSE

COMANDO DEPOIS Z_AAAAMM = substr( dtos(Z_de),1,6)
COMANDO DEPOIS ZFg88Found = EF_S8801->( DbSeek (Z_AaaaMm+"01") )
*- COMANDO ANTES credito_presumido_do_regime 
COMANDO DEPOIS zsldcredor = if( ZFg88Found, EF_S8801->c8, 0)

COMANDO DEPOIS ZdifICMs = zTIcmSPB+zTIcmSNE+zTIcmSSE - (zTIcmEPB+zTIcmENE+zTIcmESE) - zCrdPres - zsldcredor

COMANDO DEPOIS ZStrDifARecolher = Transform(abs(ZdifICMs),"@E 999,999,999.99") + " "+if( ZdifICMs<0, "SALDO CREDOR. NADA A PAGAR","DIFERENCA A PAGAR")
COMANDO DEPOIS znil = if(ZFg88Found.AND.zCrdPres>0, EF_S8801->(reglock()), "")
COMANDO DEPOIS znil = if(ZFg88Found.AND.zCrdPres>0, EF_S8801->(put_var("c6",abs(zCrdPres))), "")
COMANDO DEPOIS znil = if(ZFg88Found.AND.zCrdPres>0, EF_S8801->(DbCommit()), "")
COMANDO DEPOIS znil = if(ZFg88Found.AND.zCrdPres>0, EF_S8801->(DbUnlock()), "")

COMANDO DEPOIS ZPxAaaaMm = SubStr( Dtos(  Ctod( "01"+SubStr(Dtoc(Z_de),3) )+35 ) ,1,6)
COMANDO DEPOIS ZFg88Found = EF_S8801->( DbSeek (ZPxAaaaMm+"01") )
COMANDO DEPOIS znil = if(.not.ZFg88Found, EF_S8801->(AppendBlank()), "")
COMANDO DEPOIS ZFg88Found = EF_S8801->(RegLock())
COMANDO DEPOIS znil = if(ZFg88Found.and.ZdifICMs<0, EF_S8801->(put_var("c8",abs(ZdifICMs))), "")
COMANDO DEPOIS znil = if(ZFg88Found.and.ZdifICMs<0, EF_S8801->(DbCommit()), "")
COMANDO DEPOIS znil = if(ZFg88Found.and.ZdifICMs<0, EF_S8801->(DbUnlock()), "")

COMANDO DEPOIS zPercTARE = if(zTSaiPB+zTSaiNE+zTSaiSE>0, 100*zCrdPres/(zTSaiPB+zTSaiNE+zTSaiSE), 0)

ULTPAG===================================================================================================
ULTPAGVenda Total do Periodo.................:   [zTotGerfat @E 999,999,999.99] 
ULTPAGMaximo Faturamento Individual Permitido:   [zMaxPer @E 999,999,999.99] 
ULTPAGMaximo Faturamento Individual Realizado:   [zMax @E 999,999,999.99] 
ULTPAGFaturamento Adicional Necessario.......:   [zNecess @E 999,999,999.99] 
ULTPAG 
COMANDO DEPOIS zTsPBoPB = (zTsPBoPB-zExPBoPB)
COMANDO DEPOIS zTsPBoNE = (zTsPBoNE-zExPBoNE)
COMANDO DEPOIS zTsPBoSE = (zTsPBoSE-zExPBoSE)
ULTPAG
ULTPAG Calculo do Credito Presumido do TARE:
ULTPAG 
ULTPAG   Creditos/Abatimentos Sobre a Venda Interna (PB):
ULTPAG      de produtos que foram Adquiridos na PB: [zCrPBoPB @e 999,999,999.99]   (16% sobre [zTSaiPB @e 999,999,999.99])
ULTPAG      de produtos que foram Adquiridos no NE: [zCrPBoNE @e 999,999,999.99]   ( 3% sobre [zTSaiPB @e 999,999,999.99])
ULTPAG      de produtos que foram Adquiridos no SE: [zCrPBoSE @e 999,999,999.99]   ( 7% sobre [zTSaiPB @e 999,999,999.99])
ULTPAG 
ULTPAG   Creditos/Abatimentos Sobre a Venda Externa:
ULTPAG      de produtos que foram Adquiridos na PB: [zCrNEoPB @e 999,999,999.99]   (11% sobre [zTsNEoPB @e 999,999,999.99])
ULTPAG      de produtos que foram Adquiridos no NE: [zCrNEoNE @e 999,999,999.99]   ( 0% sobre [zTsNEoNE @e 999,999,999.99])
ULTPAG      de produtos que foram Adquiridos no SE: [zCrNEoSE @e 999,999,999.99]   ( 3% sobre [zTsNEoSE @e 999,999,999.99])
ULTPAG 
ULTPAG   Venda com Credito Perdido: [zExcesso @e 999,999,999.99]
ULTPAG===================================================================================================
ULTPAG 
ULTPAG Apuracao do ICMS:
ULTPAG 
ULTPAG Saldo Credor Mes Anterior: [zsldcredor @e 999,999,999.99]+
ULTPAG 
ULTPAG Debitos das Vendas PB    : [zTIcmSPB @e 999,999,999.99]-  (Venda PB: [zTSaiPB @e 999,999,999.99])
ULTPAG Debitos das Vendas NE    : [zTIcmSNE @e 999,999,999.99]-  (Venda NE: [zTSaiNE @e 999,999,999.99])
ULTPAG Debitos das Vendas SL/SE : [zTIcmSSE @e 999,999,999.99]-  (Venda SE: [zTSaiSE @e 999,999,999.99])
ULTPAG 
ULTPAG Creditos das Compras PB  : [zTIcmEPB @e 999,999,999.99]+  (Compra PB: [zTEntPB @e 999,999,999.99])
ULTPAG Creditos das Compras NE  : [zTIcmENE @e 999,999,999.99]+  (Compra NE: [zTEntNE @e 999,999,999.99])
ULTPAG Creditos das Compras SE  : [zTIcmESE @e 999,999,999.99]+  (Compra SE: [zTEntSE @e 999,999,999.99])
ULTPAG 
ULTPAG Credito Presumido TARE   : [zCrdPres @e 999,999,999.99]-  (%Abatiment [zPercTARE @e 999.99]%)
variavel zGarantido = 0
variavel zPgAMaior  = 0
ULTPAG Credito de ICM Garantido : [zGarantido @e 999,999,999.99]-  (Ref. a Cobrancas Antecipadas do ICMs)
ULTPAG Creditos Recolhim a Maior: [zPgAMaior  @e 999,999,999.99]-  (Ref. a Cobrancas Antecipadas do ICMs)
ULTPAG 
ULTPAG Valor do ICMs a Pagar....: [ZdifICMs @e 999,999,999.99]T  ([ZStrDifARecolher])
ULGPAG
ULTPAG===================================================================================================
ULTPAG 
