;******************************************************************************
;* Acerto Comissao                                                            *
;* Desenvolvido: 20/09/2019 por Anivel Augusto Rodrigues                      *
;******************************************************************************
;Ultima Alteracao:   /  /     por 
;Motivo Alteracao: 

;*******************************************************************************
;Rotina Corre‡Æo de Tabelas                                                    *
;*******************************************************************************
Proc Processar()
private NR, wc

NR=NRecords("NotaC")
wc=0
View "\\Sistemas\\Cadastro\\Represen"
View "\\Sistemas\\Ctarec\\Duplic"
View "\\Sistemas\\Ctarec\\Dupbaixa"
CoEdit "NotaC"
Scan

  Barra(NR, RecNo())
  Aguarde("Aguarde, processando "+BARRA_STRING)

  If [Data de Emissao]<DateVal("01.04.2019")        
     Then Loop
  EndIf
  If [Codigo da Empresa     ]<>"0003"
     Then Loop
  EndIf
  If Search("NFE",[Codigo do Documento])=0
     Then Loop
  EndIf
  If [Tipo Movimento Estoque]<>"S" Or [Situacao]="C"
     Then Loop
  EndIf   
  If Search("VEND",[NotaC->Descricao da Destinacao])=0
     Then Loop
  EndIf
  if [Comissao do Representante]<=0 
     Then Loop
  EndIf

  getrecord "\\Sistemas\\Cadastro\\Represen" [Codigo do Representante] to regresen
  if not retval
     then loop
  EndIf
  if regresen["Codigo da Gerencia"]<>"0005" 
     Then Loop
  EndIf

  CHV_EMPRESA =[NotaC->Codigo da Empresa  ]
  CHV_TPDOCTO =[NotaC->Codigo do Documento]
  CHV_NUMERO  =[NotaC->Numero do Documento]
  tx_comis    =[NotaC->Comissao do Representante]     

  Moveto "\\Sistemas\\Ctarec\\Duplic"
  Moveto [Codigo da Empresa]
  Locate IndexOrder by "Inddup30" CHV_EMPRESA,CHV_TPDOCTO,CHV_NUMERO
  If RetVal
     Then While [Codigo da Empresa   ]=CHV_EMPRESA and
                [Tipo Docto Gerador  ]=CHV_TPDOCTO and
                [Numero Docto Gerador]=CHV_NUMERO          

            If [Valor da Comissao]<=0
               then
                    wc=wc+1 
                    while islockrecord() endwhile
                    [Valor da Comissao]=Round(([Valor do Documento]*tx_Comis)/100,2)
                    [Saldo da Comissao]=[Valor da Comissao]   
                  
                    Moveto "\\Sistemas\\CtaRec\\DupBaixa"
                    Moveto [Numero do Lancamento]
                    Locate [\Sistemas\Ctarec\Duplic->Numero do Lancamento]
                    If RetVal 
                       Then While [Numero do Lancamento]=[\Sistemas\Ctarec\Duplic->Numero do Lancamento]
                  
                             while islockrecord() endwhile
                             Vr=([Valor do Recebimento]+[Valor do Desconto])-[Valor do Juros]  
                             Vr=Round((Vr*tx_Comis)/100,2)
                  
                             [Valor da Comissao]=Vr
                             UnLockRecord
                    
                             Moveto "\\Sistemas\\CtaRec\\Duplic"
                             [Saldo da Comissao]=[Saldo da Comissao]-Vr
                             UnLockRecord
                  
                             Moveto "\\Sistemas\\CtaRec\\DupBaixa"
                             Skip
                             IF EOT() Then QuitLoop EndIf
                            EndWhile

                       else 
                            UnLockRecord
                    EndIf
            endif  

            Moveto "\\Sistemas\\CtaRec\\Duplic"
            Skip
            If EOT() Then QuitLoop EndIf
            Locate Next IndexOrder by "Inddup30" CHV_EMPRESA,CHV_TPDOCTO,CHV_NUMERO
 
          EndWhile
  EndIf

 Moveto "NotaC"
EndScan     
Do_It!
ClearAll

Mensagem("Fim do processo !// Conferir novos Dados !//"+Format("W6,EIC",wc)+" registros corrigidos")
EndProc



;*******************************************************************************
;* Rotina Principal Emissao Nota Fiscal ou Romaneio                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,"+
        "\\Sistemas\\Cadastro\\Bib_Show"

sys_valor()

if sys_Codigo_Cliente="0227"
   then

        if ConfGeral("Corre‡Æo comissao contas receber/baixas//"+
                     "Deseja Continuar?")
           then
                Processar()
        endif
endif   

LimpAguarde()

Release Vars All
Release Procs All
