;** AC_CUP *********************************************************************
;* Acerto para Composi‡Æo de Dias de CUPOM FISCAL                              *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 22/07/2014 por Bruno Carvalho
;Ultima Alteracao: 05/08/2014 por Bruno Carvalho
;Motivo Alteracao: Ajustes COM_DIAS

;*******************************************************************************
;* Rotina p/ Selecionar Registros                                              *
;*******************************************************************************
Proc Seleciona()
Private CONT,AUX_COM_DIAS,Pos

Moveto "NotaV"
Locate VSDGEMPRESA,CUPOM,SRDOCTO
If RetVal
   Then CONT     = 0
        COM_DIAS = ""
        NUM_PARC = 0
        While [Codigo da Empresa  ] = VSDGEMPRESA And
              [Numero do Documento] = CUPOM       And
              [Serie do Documento ] = SRDOCTO
              
              CONT = CONT + 1
              If ([Data]-[NotaC->Data de Emissao]) < 0
                 Then AUX_COM_DIAS = "000000"
                 Else AUX_COM_DIAS = AlinhM(StrVal([Data]-[NotaC->Data de Emissao]),6)
              EndIf

              If Search(AUX_COM_DIAS,COM_DIAS) = 0
                 Then NUM_PARC = NUM_PARC + 1
                      If Int(NumVal(AUX_COM_DIAS)) = 0 
                         Then If CONT > 1
                                 Then COM_DIAS = AUX_COM_DIAS + "/" + COM_DIAS
                                 Else COM_DIAS = AUX_COM_DIAS                         
                               EndIf
                         Else If CONT > 1
                                 Then COM_DIAS = COM_DIAS + "/" + AUX_COM_DIAS
                                 Else COM_DIAS = COM_DIAS + AUX_COM_DIAS
                              EndIf
                      EndIf            
              EndIf   
              
              Skip
              If Eot() Then QuitLoop EndIf
        EndWhile

        CONT         = 0
        AUX_COM_DIAS = COM_DIAS
        Pos = Search("/",AUX_COM_DIAS)
        
        If Pos = 0
           Then COM_DIAS = StrVal(Int(NumVal(AUX_COM_DIAS)))
           Else COM_DIAS = ""
        EndIf   
        
        While Pos > 0
          INT_DIAS = Int(NumVal(SubStr(AUX_COM_DIAS,1,Pos-1)))
          If Pos <> 100000
             Then AUX_COM_DIAS = SubStr(AUX_COM_DIAS,Pos+1,Len(AUX_COM_DIAS))
          EndIf
          CONT = CONT + 1
          
          If CONT > 1
             Then COM_DIAS = COM_DIAS + "/" + StrVal(INT_DIAS)  
             Else COM_DIAS = COM_DIAS + StrVal(INT_DIAS)
          EndIf  
          If Pos = 100000
             Then QuitLoop 
          EndIf   
          
          Pos = Search("/",AUX_COM_DIAS)
          If Pos = 0
             Then Pos = 100000
          EndIf 
        EndWhile
        
        If COM_DIAS="" Or COM_DIAS=BlankNum()
           Then COM_DIAS = "0"
                NUM_PARC = 1
        EndIf
        Moveto "NotaC"     
   Else If Not IsAssigned(COM_DIAS) Then COM_DIAS = "" EndIf
        If COM_DIAS="" Or COM_DIAS=BlankNum()
           Then COM_DIAS = "0"
                NUM_PARC = 1
        EndIf
        Moveto "NotaC"     
EndIf          

EndProc ;Seleciona() 

;*******************************************************************************
;* Rotina p/ Processa Registros                                                *
;*******************************************************************************
Proc Processa(PARAM)

NR=NRecords("NotaC")

If PARAM = ""
   Then View "NotaV"
        Coedit "NotaC"
        
        Scan for [Tipo do Documento]="CUP"  
          Barra(NR, RecNo())
          Aguarde("Aguarde, Ajustando Composicao de Dias "+BARRA_STRING)
               
          VSDGEMPRESA = [NotaC->Codigo da Empresa]
          CUPOM       = [NotaC->Numero do Documento]
          SRDOCTO     = [NotaC->Serie do Documento]
          
          Seleciona() 

          [Composicao de Dias] = COM_DIAS
          [Numero de Parcelas] = NUM_PARC
          UnLockRecord                
        EndScan
        Do_It!
        ClearAll
   Else Moveto "NotaC"
        Locate VSDGEMPRESA,CUPOM,SRDOCTO
        If Not RetVal
           Then COM_DIAS = ""
                NUM_PARC = BlankNum() 
                Return
        EndIf
        Seleciona() 
EndIf

EndProc ;Processa()

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
If Not IsAssigned(GEROU_COMPDIAS) Then GEROU_COMPDIAS = False EndIf
If Not IsAssigned(COMPDIAS_DATAM) Then COMPDIAS_DATAM = False EndIf

Switch    
  Case Not GEROU_COMPDIAS  :
       ;--- Processo para rodar tanto no DATAM quanto se der PLAY no script ----
       FAZ_ROTINA = True     
       If Not COMPDIAS_DATAM
          Then Autolib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show"
               ConfGeral("Deseja atualizar a composi‡„o de dias das Notas do CUPOM FISCAL ?")
               If Ok<>"S"
                  Then FAZ_ROTINA = False   
               EndIf
       EndIf  
       If FAZ_ROTINA
          Then SetDir "\\Sistemas\\Vendas"
               Processa("")
               SetDir "\\Sistemas\\Cadastro"
       EndIf
       Release Vars FAZ_ROTINA        
  Case GEROU_COMPDIAS     : 
       ;--- Processo utilizado no IMP_OPAF -------------------------------------
       Processa("IMP_OPAF")
EndSwitch