;*******************************************************************************
;* Acerto da Ficha Financeira - Vendas                                         *
;* Desenvolvido: 22/09/2006 por Anivel Augusto Rodrigues                       *
;* Modificado  : 21/01/2014 por Bruno/Gustavo                                  *
;* Motivo      : Ajustes na Proc Correcao_Tabelas()                            *
;* Modificado  : 07/07/2017 por Anivel Augusto Rodrigues                       *
;* Motivo      : Ajustes detalhes                                              *
;*******************************************************************************

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

;*******************************************************************************
;Rotina p/ Limpar Registros antes de executar o processo de atualiza‡Æo        *
;*******************************************************************************
Proc Limpar_Registros()

NR=NRecords("\\Sistemas\\Cadastro\\FichaCli")

CoEdit "\\Sistemas\\Cadastro\\FichaCli"
Scan
  Barra(NR, RecNo())
  Aguarde("Aguarde, limpando registros anteriores da Ficha "+BARRA_STRING)
  
  [Data da Primeira Compra ]=BlankDate()
  [Valor da Primeira Compra]=BlankNum()     
  [Maior Fatura            ]=BlankNum()
  [Data da Maior Fatura    ]=BlankDate()
  [Data da Ultima Compra   ]=BlankDate()
  [Valor da Ultima Compra  ]=BlankNum()
EndScan
Do_It!
ClearAll

EndProc ;Limpar_Registros()

;*******************************************************************************
;Rotina Corre‡Æo de Tabelas                                                    *
;*******************************************************************************
Proc Correcao_Tabelas()

If Not IsTable("Notac")
   Then Return
EndIf

NR=NRecords("NotaC")

CoEdit "\\Sistemas\\Cadastro\\FichaCli", "NotaC"
Scan
  ;---- Atualiza Ficha Financeira do Cliente -----------------------------------
  Barra(NR, RecNo())
  Aguarde("Aguarde, atualizando a Ficha Financeira "+BARRA_STRING)
  
  If [NotaC->Tipo]="C" And
     [NotaC->Tipo Movimento Estoque]="S" And
     ((Search("VEND",[NotaC->Descricao da Destinacao])>0) Or
      (Search("SERV",[NotaC->Descricao da Destinacao])>0))
     Then
     
        destinok=true

        if sys_Codigo_cliente="0112"                            And
           Search("VEND",[NotaC->Descricao da Destinacao])>0  And 
           Search("TROC",[NotaC->Descricao da Destinacao])>0  
           then destinok=false
        endif
        
        if destinok
           then   
                Moveto "\\Sistemas\\Cadastro\\FichaCli"
                Moveto [Codigo]
                Locate [NotaC->Codigo]
                If Not RetVal
                   Then End Down
                        [Codigo                  ]=[NotaC->Codigo]
                        [Data da Primeira Compra ]=[NotaC->Data de Emissao]
                        [Valor da Primeira Compra]=[NotaC->Valor Nota Fiscal]
                EndIf
                If [NotaC->Data de Emissao]<[Data da Primeira Compra ] Or IsBlank([Data da Primeira Compra ])
                   Then [Data da Primeira Compra ]=[NotaC->Data de Emissao  ]
                        [Valor da Primeira Compra]=[NotaC->Valor Nota Fiscal]
                EndIf
                If [NotaC->Valor Nota Fiscal]>=[Maior Fatura]
                   Then [Maior Fatura        ]=[NotaC->Valor Nota Fiscal]
                        [Data da Maior Fatura]=[NotaC->Data de Emissao  ]
                EndIf
                If [Data da Ultima Compra ]<=[NotaC->Data de Emissao  ]
                   Then [Data da Ultima Compra ]=[NotaC->Data de Emissao  ]
                        [Valor da Ultima Compra]=[NotaC->Valor Nota Fiscal]
                EndIf
                UnLockRecord
          endif
  
          Moveto "NotaC"
  EndIf
EndScan
Do_It!
ClearAll

EndProc

;------------------------------------------------------------------------------
Aguarde("Ficha Financeira")

ConfGeral("Deseja excutar a ficha financeira/Vendas?")
If OK<>"S"
   Then Return
EndIf   

sys_valor()

Limpar_Registros()

;****************** Vendas/FECHANO ********************
DiretorioFechAno  ="\\FechAno"
Modulo            ="\\Vendas"
Diretorios_FechAno(DiretorioFechAno)
For i From 1 to DynArraySize(Array_Diretorios)
  DiretorioFA=DiretorioFechAno+"\\"+Array_Diretorios[i]+Modulo
  If DirExists(DiretorioFA)=0 Then Loop EndIf

  Lista_Diretorio(DiretorioFA)
  For j From 1 to DynArraySize(Array_Lista_Diretorios)
    Diretorio=DiretorioFA+"\\"+Array_Lista_Diretorios[j]+"\\"
    Aguarde("Atualizando Pasta: "+Diretorio)
    {Tools} {More} {Directory} TypeIn Diretorio Enter

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

;****************** 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
;------------------------------------------------------------------------------

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

