;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"

SetDir "\\Sistemas\\Vendas"

MSG = "Deseja executar a rotina para ajustar o Valor e BC do PIS e COFINS ?"
ConfGeral(MSG)
If Ok="S"
   Then MSG = "Deseja realizar o BACKUP do NOTAC e NOTAI ?"
        ConfGeral(MSG)
        If Ok="S"
           Then Aguarde("Copiando a tabela NOTAC para BK_NOTC !")
                Copy "NotaC" "Bk_NotC"
                Aguarde("Copiando a tabela NOTAI para BK_NOTI !")
                Copy "NotaI" "Bk_NotI" 
        EndIf   
   Else Return
EndIf
   
REG = 0

NR = NRecords("NotaC")

Coedit "NotaI","NotaC"
Scan
  Barra(NR, RecNo())
  
  If REG > 0
     Then Aguarde("Aguarde, Atualizando PIS/COFINS -> "+StrVal(REG)+" registros"+BARRA_STRING)
     Else Aguarde("Aguarde, Atualizando PIS/COFINS "+BARRA_STRING)
  EndIf   
  
  If IsBlank([Data de Emissao]) Then Loop EndIf
  
  If AlinhM(StrVal(Month([Data de Emissao])),2)<>"11" Or
     StrVal(Year([Data de Emissao]))<>"2015"          Or 
     Upper(SubStr([Serie do Documento],1,1))<>"X"     Or
     Upper([Situacao])="C"
     Then Loop
  EndIf   
  
  VRPIS    = 0
  VRCOFINS = 0
  
  VSDGEMPRESA = [Codigo da Empresa  ]
  CUPOM       = [Numero do Documento]
  SRDOCTO     = [Serie do Documento ]
  
  Moveto "NotaI"
  Moveto [Codigo da Empresa]
  Locate VSDGEMPRESA,CUPOM,SRDOCTO
  If RetVal
     Then While VSDGEMPRESA = [Codigo da Empresa  ] And
                CUPOM       = [Numero do Documento] And
                SRDOCTO     = [Serie do Documento ]
             
                If Upper([Situacao_Item])<>"C"
                   Then VBC = ([Preco Total]-[Valor Desconto Total])+[Valor OutDesp Total]    
                        If IsBlank([PIS_CST]) Or IsBlank([COFINS_CST])    
                           Then GetRecord "\\Sistemas\\Estoque\\Itens" [Codigo do Item] To REG_ITEM
                                If RetVal
                                   Then REG = REG + 1
                                        
                                        [PIS_CST   ] = REG_ITEM["PIS_CST"]
                                        [COFINS_CST] = REG_ITEM["COFINS_CST"]
                                        
                                        If REG_ITEM["PIS_Aliquota"]>0
                                           Then [PIS_Aliquota] = REG_ITEM["PIS_Aliquota"]
                                                [PIS_Valor   ] = NDecimal((VBC*[PIS_Aliquota])/100,2)
                                                [PIS_BC      ] = VBC 
                                        EndIf 
                                        
                                        If REG_ITEM["COFINS_Aliquota"]>0
                                           Then [COFINS_Aliquota] = REG_ITEM["COFINS_Aliquota"]
                                                [COFINS_Valor   ] = NDecimal((VBC*[COFINS_Aliquota])/100,2)
                                                [COFINS_BC      ] = VBC 
                                        EndIf
                                        
                                        VRPIS    = VRPIS    + [PIS_Valor   ]
                                        VRCOFINS = VRCOFINS + [COFINS_Valor]
                                        
                                   Else Mensagem("Item "+[Codigo do Item]+" n„o localizado no cadastro de itens!")
                                EndIf
                        EndIf 
                EndIf     
                Skip
                If Eot() Then QuitLoop EndIf    
          EndWhile           
  EndIf    
  Moveto "NotaC"
  [Valor PIS   ]=VRPIS
  [Valor COFINS]=VRCOFINS
EndScan
Do_it!
ClearAll

Mensagem("Processo Finalizado!")  

Release Vars All
Release Procs All