;** DapI ***********************************************************************
;*  Gera Informa‡oes para Emissao do Demonstrativo de Apuracao do ICMS         *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 14/09/1999 por Douglas Rodrigues
;Ultima Alteracao: 19/12/2002 por Karen Lauar Nery
;Motivo Alteracao: Ajustes CFO
;Ultima Alteracao: 08/03/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Docto Cancelado/Inutilizado
;Ultima Alteracao: 15/10/2014 por Kamila Gomes
;Motivo Alteracao: Ajustes Docto Cancelado/Inutilizado/Denegado
;Ultima Alteracao: 13/04/2020 por Anivel Augusto Rodrigues   
;Motivo Alteracao: Ajustes nota cancelada extemporanea=X

;*******************************************************************************
;* Rotina para Processar Informacoes para Emissao do DapI                      *
;*******************************************************************************
ClearAll
If Not IsAssigned(Campo)
   Then Mensagem("Variavel Array Campo[x] n„o Declarada")
        Return
EndIf

If IsTable("Entrada")
   Then Delete "Entrada"
EndIf
If IsTable("Saida")
   Then Delete "Saida"
EndIf

Contador=6
While Contador<46
   Campo[Contador]=0
   Contador=Contador+1
EndWhile

{Ask} {\\Sistemas\\Estoque\\RegEntra}
Moveto [CFO               ] Check
Moveto [Valor Contabil    ] TypeIn "Calc Sum as Valor Contabil"
Moveto [Base Calculo ICMS ] TypeIn "Calc Sum as Base Calculo ICMS"
Moveto [ICMS Isento       ] TypeIn "Calc Sum as ICMS Isento"
Moveto [Substituicao ICMS ] TypeIn "Calc Sum as Substituicao ICMS"
Moveto [ICMS Debitado     ] TypeIn "Calc Sum as ICMS Debitado"
Moveto [ICMS Outros       ] TypeIn "Calc Sum as ICMS Outros"
Moveto [Cancelada         ] TypeIn "Not S, Not 4, Not X"
Do_It!
ClearAll
Rename "Answer" "Entrada"

View "Entrada"
Scan
  CFO = SubStr([CFO],1,1)
  Campo[06]=Campo[06]+[Valor Contabil]
  Switch
    Case CFO="1":
         Campo[07]=Campo[07]+[Base Calculo ICMS]
    Case CFO="2":
         Campo[08]=Campo[08]+[Base Calculo ICMS]
    Case CFO="3":
         Campo[09]=Campo[09]+[Base Calculo ICMS]
  EndSwitch
  Campo[11]=Campo[11]+[ICMS Isento]
  Campo[12]=Campo[12]+[Substituicao ICMS]+[ICMS Outros]
  Campo[38]=Campo[38]+[Substituicao ICMS]

  Campo[25]=Campo[25]+[ICMS Debitado]
EndScan
ClearAll
Campo[10]=Campo[07]+Campo[08]+Campo[09]
Campo[13]=Campo[11]+Campo[12]
Campo[14]=Campo[06]-Campo[13]

{Ask} {\\sistemas\\Vendas\\RegSaida}
Moveto [CFO              ] Check
Moveto [Valor Contabil   ] TypeIn "Calc Sum as Valor Contabil"
Moveto [Base Calculo ICMS] TypeIn "Calc Sum as Base Calculo ICMS"
Moveto [ICMS Isento      ] TypeIn "Calc Sum as ICMS Isento"
Moveto [Substituicao ICMS] TypeIn "Calc Sum as Substituicao ICMS"
Moveto [ICMS Debitado    ] TypeIn "Calc Sum as ICMS Debitado"
Moveto [ICMS Outros      ] TypeIn "Calc Sum as ICMS Outros"
Moveto [Cancelada        ] TypeIn "Not S, Not 4, Not 2"
Do_It!
ClearAll
Rename "Answer" "Saida"

View "Saida"
Scan
  CFO = SubStr([CFO],1,1)
  Campo[15]=Campo[15]+[Valor Contabil]
  Switch
    Case CFO="5":
         Campo[16]=Campo[16]+[Base Calculo ICMS]
    Case CFO="6":
         Campo[17]=Campo[17]+[Base Calculo ICMS]
    Case CFO="7":
         Campo[18]=Campo[18]+[Base Calculo ICMS]
    Case [CFO]="5352" Or [CFO]="562" Or [CFO]="6352" Or [CFO]="662" Or
         [CFO]="666" Or [CFO]="6353" Or [CFO]="667":
         Campo[40]=Campo[40]+[ICMS Debitado]
  EndSwitch

  Campo[20]=Campo[20]+[ICMS Isento]
  Campo[21]=Campo[21]+[Substituicao ICMS]+[ICMS Outros]
  Campo[39]=Campo[39]+[Substituicao ICMS]
  Campo[30]=Campo[30]+[ICMS Debitado]

EndScan
ClearAll
Campo[19]=Campo[16]+Campo[17]+Campo[18]
Campo[22]=Campo[20]+Campo[21]
Campo[23]=Campo[15]-Campo[22]


View "\\Sistemas\\ICMS_IPI\\ImpostoI"
Moveto [Codigo da Empresa]
Locate VSDGEMPRESA,"ICMS",StrVal(Year(VSDGDTINI)),AlinhM(StrVal(Month(VSDGDTINI)),2),1
If RetVal
   Then Campo[24]=[Saldo Inicial]
   Else Mensagem("N„o foi Informado o Credito Anterior p/ ICMS no Mes !")
EndIf
OD1_Vr=0
OD2_Vr=0

EC1_Vr=0
EC2_Vr=0

OC1_Vr=0
OC2_Vr=0

ED1_Vr=0

View "\\Sistemas\\ICMS_IPI\\ImpostoO"
Scan For [Codigo da Empresa]=VSDGEMPRESA And
         [Codigo do Imposto]="ICMS" And
         [Ano Referencia   ]=StrVal(Year(VSDGDTINI)) And
         [Mes Referencia   ]=AlinhM(StrVal(Month(VSDGDTINI)),2) And
         [Dia Referencia   ]=1

  If [Tipo]=" 2OD1" Then OD1_Descr=[Descricao] OD1_Vr=[Valor] EndIf
  If [Tipo]=" 2OD2" Then OD2_Descr=[Descricao] OD2_Vr=[Valor] EndIf

  If [Tipo]=" 3EC1" Then EC1_Descr=[Descricao] EC1_Vr=[Valor] EndIf
  If [Tipo]=" 3EC2" Then EC2_Descr=[Descricao] EC2_Vr=[Valor] EndIf

  If [Tipo]=" 6OC1" Then OC1_Descr=[Descricao] OC1_Vr=[Valor] EndIf
  If [Tipo]=" 6OC2" Then OC2_Descr=[Descricao] OC2_Vr=[Valor] EndIf

  If [Tipo]=" 7ED1" Then ED1_Descr=[Descricao] ED1_Vr=[Valor] EndIf

EndScan
ClearAll

Campo[26]=OC1_Vr+OC2_Vr
Campo[27]=ED1_Vr
Campo[28]=Campo[24]+Campo[25]+Campo[26]+Campo[27]

Campo[31]=OD1_Vr+OD2_Vr
Campo[32]=EC1_Vr+EC2_Vr
Campo[33]=Campo[30]+Campo[31]+Campo[32]

If Campo[33]>Campo[28]
   Then Campo[34]=Campo[33]-Campo[28]
EndIf

Campo[36]=Campo[34]

Campo[41]=Campo[36]+Campo[37]+Campo[38]+Campo[39]+Campo[40]


