;******************************************************************************
;* Acerto da Ficha Financeira                                                 *
;* Desenvolvido: 29/03/2010 por Bruno Carvalho                                *
;* Modificado  :   /  /     por                                               *
;******************************************************************************
;Ultima Alteracao: 13/09/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes modo ordem da duplicata numero/letra

Autolib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"

;*******************************************************************************
;Rotina Corre‡Æo de Tabelas                                                    *
;*******************************************************************************
Proc Correcao_Tabelas()
Private CHV_NUMERO_ORDEM, CONT

If Not IsTable("Notac")
   Then Return
EndIf

getsys_modo_ordemdup()


CoEdit "\\Sistemas\\Ctarec\\Duplic", "\\Sistemas\\Ctarec\\Dupbaixa", "NotaV",
       "NotaC" 
Scan

 If [Tipo Movimento Estoque]<>"S" Or [Situacao]="C"
    Then Loop
 EndIf   

 If Search("VEND",[NotaC->Descricao da Destinacao])>0
    Then Loop
 EndIf

 Moveto "NotaV"  
 Moveto [Codigo da Empresa]
 Locate [NotaC->Codigo da Empresa],
        [NotaC->Numero do Documento],
        [NotaC->Serie do Documento]
 If Not RetVal
    Then Moveto "NotaC"
         Loop
 EndIf               

 NPARC=0
 While [Codigo da Empresa  ]=[NotaC->Codigo da Empresa  ] And
       [Numero do Documento]=[NotaC->Numero do Documento] And
       [Serie do Documento ]=[NotaC->Serie do Documento ]
   NPARC=NPARC+1
   Skip
   IF EOT() Then QuitLoop EndIf
 EndWhile

 DP_CONTDP=0
 Moveto [Codigo da Empresa]
 Locate [NotaC->Codigo da Empresa],
        [NotaC->Numero do Documento],
        [NotaC->Serie do Documento]
 While [Codigo da Empresa  ]=[NotaC->Codigo da Empresa  ] And
       [Numero do Documento]=[NotaC->Numero do Documento] And
       [Serie do Documento ]=[NotaC->Serie do Documento ]

  DP_CONTDP=DP_CONTDP+1

  CHV_EMPRESA=[NotaC->Codigo da Empresa  ]
  CHV_TPDOCTO=[NotaC->Codigo do Documento]

  switch
    case sys_modo_ordemdup="N":
       CHV_NUMERO_ORDEM=[NotaC->Numero do Documento]+"/"+strval(DP_CONTDP)
    
    otherwise                 :
      If NPARC=1
       Then CHV_NUMERO_ORDEM=[NotaC->Numero do Documento]
       Else CHV_NUMERO_ORDEM=[NotaC->Numero do Documento]+"/"+CHR(65+(DP_CONTDP-1))
      EndIf
  
  endswitch


  Moveto "\\Sistemas\\CtaRec\\Duplic"
  Moveto [Codigo da Empresa]
  Locate IndexOrder by "IndDup1" CHV_EMPRESA,CHV_TPDOCTO,CHV_NUMERO_ORDEM
  If Not RetVal
     Then QuitLoop
          Moveto "NotaC"     
  EndIf   

 If CHV_NUMERO_ORDEM=[NotaC->Numero do Documento]+"/"+CHR(65+(DP_CONTDP-1))                 
     Then If [Valor da Comissao]>0 and [Saldo da Comissao]>0
             Then Moveto "NotaV"                    
                  Skip                              
                  IF EOT() Then QuitLoop Else Loop EndIf
          EndIf
     Else If [Valor da Comissao]>0 and [Saldo da Comissao]>0              
             Then QuitLoop
             Moveto "NotaC"
          EndIf
 EndIf
 
  tx_comis=[NotaC->Comissao do Representante]     
  [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]

           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
  EndIf


  Moveto "NotaV"
  Skip
  IF EOT() Then QuitLoop EndIf
 EndWhile

 Moveto "NotaC"
EndScan     
Do_It!
ClearAll

EndProc

;-------------------------------------------------------------------------------
Aguarde("Corre‡Æo de ComissÆo")
;-------------------------------------------------------------------------------

;****************** Vendas/FECHAMES ********************
Diretorio="\\Sistemas\\Vendas\\"
Diretorios_Fechames_C(Diretorio)
Array_Diretorios[1]=""
For i From 1 to DynArraySize(Array_Diretorios)
  If i=1
     Then Diretorio="\\Sistemas\\Vendas"
     Else Diretorio="\\Sistemas\\Vendas\\Fechames\\"+Array_Diretorios[i]
  EndIf
  Aguarde("Atualizando Pasta: "+Diretorio)
  {Tools} {More} {Directory} TypeIn Diretorio Enter

  Correcao_Tabelas()
EndFor
;-------------------------------------------------------------------------------

;****************** CTAREC/FECHAMES ********************
Diretorio="\\Sistemas\\Ctarec\\"
Diretorios_Fechames_C(Diretorio)
Array_Diretorios[1]=""
For i From 1 to DynArraySize(Array_Diretorios)
  If i=1
     Then Diretorio="\\Sistemas\\Ctarec"
     Else Diretorio="\\Sistemas\\Ctarec\\Fechames\\"+Array_Diretorios[i]
  EndIf
  Aguarde("Atualizando Pasta: "+Diretorio)
  {Tools} {More} {Directory} TypeIn Diretorio Enter

  Correcao_Tabelas()
EndFor
;-------------------------------------------------------------------------------

;****************** VENDAS *******************
Diretorio="\\Sistemas\\Vendas\\"
Aguarde("Atualizando Pasta: "+Diretorio)
{Tools} {More} {Directory} TypeIn Diretorio Enter
Correcao_Tabelas()

;****************** CTAREC *******************
Diretorio="\\Sistemas\\Ctarec\\"
Aguarde("Atualizando Pasta: "+Diretorio)
{Tools} {More} {Directory} TypeIn Diretorio Enter
Correcao_Tabelas()


;-------------------------------------------------------------------------------

{Tools} {More} {Directory} {\\Sistemas\\Cadastro\\}
LimpAguarde()
Correcao_Tabelas()
Mensagem("Rotinas Ok !"+
         "// // Obrigado Vise Inform tica [SIM].")

