;*******************************************************************************
;* Desenvolvido: 03/09/2018 por Bruno Carvalho                                 *
;*******************************************************************************
Autolib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"

Mensagem("Pacote 2018.H ! (Agosto/2018)// //"+
         "Rotina Cadastro, Contas a Pagar, Estoque e Vendas//"+
         "//Tabelas do Sistema e Base ser„o atualizadas !!!//"+
         "// Este processo deve ser executado sem que outros Usuarios//"+
         "// estejam utilizando o Sistema, Ok !!!")

While True
  If Verifica_Usuario()
     Then QuitLoop
     Else ConfGeral("Comunicar os usuarios !// //Deseja Continuar com Atualizacao ?")
          If OK<>"S"
             Then Exit
          EndIf
  EndIf
EndWhile

;*******************************************************************************
;Rotina Corre‡Æo de Tabelas                                                    *
;*******************************************************************************
Proc Correcao_Tabelas_Cadastro()
Private ARQ_TEMP1,ARQ_TEMP2

;---- 20/08/2018 por Bruno Carvalho --------------------------------------------
ok=False
If Not IsTable("Emprnfse")
   Then ok=true
        Copy "\\Base\\Sistemas\\Cadastro\\Emprnfse" "Emprnfse"
EndIf

If ok And (SYS_CODIGO_CLIENTE="0092" Or SYS_CODIGO_CLIENTE="0121")
   Then View "Emprnfse" 
        Coedit "Empresas" 
        Scan 
          Moveto "Emprnfse"
          End Down
          [Codigo da Empresa        ] = [Empresas->Codigo da Empresa]            
          [IncentivadorCultural     ] = "2"    ;NÆo                                                             
          [RegimeEspecialTributacao ] = "6"    ;Microempresario e empresa de pequeno porte(ME EPP)              
          [NaturezaTributacao       ] = "1"    ;Simples Nacional                                                
          [IncentivoFiscal          ] = "2"    ;NÆo                                                             
          [CodigoTributacaoMunicipio] = "4445"                                                                  
          [ExigibilidadeISS         ] = "1"    ;Exigivel                                                        
          [Operacao                 ] = "A"    ;Sem Dedu‡Æo                                                     
          [IssRetido                ] = "2"    ;NÆo
          UnLockRecord
          
          Moveto "Empresas"
        EndScan  
        Do_it!
        ClearAll  
EndIf            

EndProc ;Correcao_Tabelas_Cadastro()

;*******************************************************************************
;Rotina Corre‡Æo de Tabelas                                                    *
;*******************************************************************************
Proc Correcao_Tabelas_Ctapag()
Private TABELA,ty

;---- 24/08/2018 por Bruno Carvalho --------------------------------------------
If IsTable("FatD") 
   Then {Modify} {Restructure} {FatD}
        Moveto [Field Name]
        Locate "CNPJ"
        If Not RetVal
           Then End Down
                "CNPJ"   Enter "A18" Enter
        EndIf
        Do_it!
        ClearAll   
        
        {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Ctapag\\FatD" Enter TypeIn "FatD" Enter {Replace}
EndIf        

EndProc ;Correcao_Tabelas_Ctapag()

;*******************************************************************************
;Rotina Corre‡Æo de Tabelas                                                    *
;*******************************************************************************
Proc Correcao_Tabelas_Estoque()
Private ARRAY_TABELA,ok,ii

;---- 14/08/2018 por Bruno Carvalho --------------------------------------------
If IsTable("Rqtrf") 
   Then If Not IsEmpty("Rqtrf")
           Then CoEdit "Rqtrf"  
                Scan for [Tipo de Movimento]="PROC"
                  [Tipo de Movimento       ]="RUP"
                  [Descricao Tipo Movimento]="RUPTURA"
                  [Status                  ]="RUPTURA"
                EndScan
                Do_it!
                ClearAll  
        EndIf
EndIf

EndProc ;Correcao_Tabelas_Estoque()

;*******************************************************************************
;Rotina Corre‡Æo de Tabelas                                                    *
;*******************************************************************************
Proc Correcao_Tabelas_Vendas()
Private TABELA,ty

;---- 16/08/2018 por Bruno Carvalho --------------------------------------------
If IsTable("Dupnf") 
   Then {Modify} {Restructure} TypeIn "Dupnf" Enter
        Ok=False
        Moveto [Field Name]
        Locate "Codigo do Documento"
        If Not RetVal
           Then Locate "Sequencia"
                If RetVal
                   Then Ok=True
                        End Down
                        "Codigo do Documento"  Enter "A4" Enter 
                        "Tipo do Documento"    Enter "A4" Enter
                EndIf
        EndIf
        Do_it!
        ClearAll   
        
        If Ok 
           Then {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Vendas\\Dupnf" Enter TypeIn "Dupnf" Enter {Replace}  
                Adiciona_Indice_Secundario("DupNF","Idupnf10","Numero da Nota,Serie da Nota,Codigo da Empresa,Codigo do Documento")
                
                If Diretorio="\\Sistemas\\Vendas\\"
                   Then View "NotaC"
                        CoEdit "DupNF"
                        Scan
                          Barra(NRecords("DupNF"), RecNo())
                          Aguarde("Aguarde, ajustando a DUPNF "+BARRA_STRING)
                          GetRecord "NotaC" [Codigo da Empresa],[Numero da Nota],[Serie da Nota] To REG_NOTA
                          If RetVal
                             Then [Codigo do Documento]=REG_NOTA["Codigo do Documento"]
                                  [Tipo do Documento  ]=REG_NOTA["Tipo do Documento"  ]
                          EndIf
                        EndScan
                        Do_it!
                        ClearAll
                EndIf
        EndIf
EndIf

;---- 16/08/2018 por Bruno Carvalho --------------------------------------------
If IsTable("Dupc") 
   Then {Modify} {Restructure} TypeIn "Dupc" Enter
        Moveto [Field Name]
        Locate "Sistema Gerador"
        If Not RetVal
           Then End Down
                "Sistema Gerador"      Enter "A2" Enter
                "Tipo Docto Gerador"   Enter "A4" Enter
                "Numero Docto Gerador" Enter "A6" Enter
        EndIf
        Do_it!
        ClearAll   
        
        {Tools} {Copy} {JustFamily} TypeIn "\\Base\\Sistemas\\Vendas\\Dupc" Enter TypeIn "Dupc" Enter {Replace}
EndIf        

;---- 17/08/2018 por Bruno Carvalho --------------------------------------------
UNIDADE = SubStr(Directory(),1,2)       
TABELA  = Cria_Temp(PrivDir())

For ii From 1 To 10  
  Run NoRefresh "Del \\Sistemas\\Vendas\\NF_"+StrVal(ii-1)+"*.SC"
  Run NoRefresh "Del \\Sistemas\\Vendas\\NF_"+StrVal(ii-1)+"*.SC2"
EndFor

EndProc ;Correcao_Tabelas_Vendas()

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

Aguarde("Atualizando Sistema")
Password("t01avivcl")
Password("FechaSys")

View "SysTable"
SYS_CODIGO_CLIENTE = [Codigo do Cliente   ]
ClearAll

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


;************************* CADASTRO ************************** 
Diretorio="\\Sistemas\\Cadastro"
Aguardes("Atualizando Pasta: "+Diretorio)
{Tools} {More} {Directory} TypeIn Diretorio Enter
Correcao_Tabelas_Cadastro() 
LimpAguardes()

;************************* CTAPAG ************************** 
Diretorio="\\Sistemas\\Ctapag"
Aguardes("Atualizando Pasta: "+Diretorio)
{Tools} {More} {Directory} TypeIn Diretorio Enter
Correcao_Tabelas_Ctapag() 
LimpAguardes()

;****************** ESTOQUE/FECHAMES ******************
Diretorio="\\Sistemas\\Estoque\\"
Diretorios_Fechames_C(Diretorio)
Array_Diretorios[1]=""
For i From 1 to DynArraySize(Array_Diretorios)
  If i=1  
     Then Diretorio="\\Sistemas\\Estoque"
     Else Diretorio="\\Sistemas\\Estoque\\Fechames\\"+Array_Diretorios[i]
  EndIf   
  Aguardes("Atualizando Pasta: "+Diretorio)
  {Tools} {More} {Directory} TypeIn Diretorio Enter
          
  Correcao_Tabelas_Estoque() 
  LimpAguarde()
EndFor    
LimpAguardes()
          
;****************** ESTOQUE/FECHANO ********************
DiretorioFechAno  ="\\FechAno"
Modulo            ="\\Estoque"
Diretorios_FechAno(DiretorioFechAno)
For i From 1 to DynArraySize(Array_Diretorios)
  LimpAguardes()
  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]+"\\"
    Aguardes("Atualizando Pasta: "+Diretorio)
    {Tools} {More} {Directory} TypeIn Diretorio Enter
          
   Correcao_Tabelas_Estoque()
   LimpAguarde()
  EndFor  
EndFor    
LimpAguardes()


;****************** 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   
  Aguardes("Atualizando Pasta: "+Diretorio)
  {Tools} {More} {Directory} TypeIn Diretorio Enter
          
  Correcao_Tabelas_Vendas() 
  LimpAguarde()
EndFor    
LimpAguardes()
          
;****************** VENDAS/FECHANO ********************
DiretorioFechAno  ="\\FechAno"
Modulo            ="\\Vendas"
Diretorios_FechAno(DiretorioFechAno)
For i From 1 to DynArraySize(Array_Diretorios)
  LimpAguardes()
  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]+"\\"
    Aguardes("Atualizando Pasta: "+Diretorio)
    {Tools} {More} {Directory} TypeIn Diretorio Enter
          
   Correcao_Tabelas_Vendas()
   LimpAguarde()
  EndFor  
EndFor    
LimpAguardes()

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

{Tools} {More} {Directory} {\\Sistemas\\Cadastro\\}
UnPassword("t01avivcl")
UnPassword("FechaSys")
LimpAguarde()
FastMsg("Fim da atualiza‡Æo !")

Release Vars Diretorio
Release Procs Correcao_Tabelas_Cadastro,Correcao_Tabelas_Ctapag,Correcao_Tabelas_Estoque,Correcao_Tabelas_Vendas
