;** Rm_1501D *******************************************************************
;* Resumo de Saida Consignado II                                               *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 25/02/2019 por Anivel Augusto Rodrigues
;Ultima Alteracao: 27/02/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes deduzir descontos nos calculos e no faturaI/pedidoI enova estrutura
;Ultima Alteracao: 31/10/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes descontos retornos outros
;Ultima Alteracao: 01/11/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes vendas projetadas           
;Ultima Alteracao: 26/11/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes novo play PC_????

;*******************************************************************************
;* Data de Acerto                                                              *
;*******************************************************************************
Proc Rm_1501D_Data_Acerto()
Private NUMDOCACERTO, SERIEDOCACERTO, CODEMPACERTO

Do_It!
ClearAll

View "NotaC"
Coedit Tabela

Scan
  CODEMPACERTO  =[Codigo da Empresa  ]
  NUMDOCACERTO  =[Numero do Documento]
  SERIEDOCACERTO=[Serie do Documento ]
  
  Moveto "NotaC" 
  Moveto [Codigo da Empresa]
  Locate CODEMPACERTO, NUMDOCACERTO, SERIEDOCACERTO 
  If RetVal
     Then while islockrecord() endwhile
          [Data de Acerto]=VSDGDTREFERENTE
          unlockrecord
  EndIf
  
  Moveto Tabela  
EndScan
Do_It!
ClearAll

EndProc ;Data_Acerto()

;*******************************************************************************
;* Rotina p/ Impressao                                                         *
;*******************************************************************************
Proc Rm_1501D_Gera_Valores(PARAM)

AGUARDE("Aguarde, processando dados")
if not Gera_Dados()
   Then 
        DeletaTabelas() 
   
        Return
EndIf

Sort Tabela2 On "Codigo da Empresa", "Codigo", "Descricao do Item" To "Answer"
ClearAll

TOT_SAIDA       = 0    
TOT_SAIDA_DESC  = 0

TOT_RETOR       = 0 
TOT_RETOR_DESC  = 0 

TOT_RETOU       = 0
TOT_RETOU_DESC  = 0

TOT_VENDA       = 0 
TOT_VENDA_DESC  = 0
TOT_VENDA_COMIS = 0 

View "\\Sistemas\\Cadastro\\Represen"
View Tabela1
View "Answer"

Scan

  TOT_SAIDA       = TOT_SAIDA      +[Saida_VrTotal          ]    
  TOT_SAIDA_DESC  = TOT_SAIDA_DESC +[Saida_DescTotal        ] 
  
  TOT_RETOR       = TOT_RETOR      +[Retorno_VrTotal        ]    

  TOT_RETOU       = TOT_RETOU      +[RetornoOutros_VrTotal  ]     
  TOT_RETOU       = TOT_RETOU      -[RetornoOutros_DescTotal] 

  TOT_VENDA       = TOT_VENDA      +[Venda_VrTotal          ]    
  TOT_VENDA_DESC  = TOT_VENDA_DESC +[Venda_DescTotal        ]
  TOT_VENDA_COMIS = TOT_VENDA_COMIS+[Venda_Comissao         ] 

  Moveto "Answer"
EndScan

;---- Apura dados financeiros -------------------------------------------------- 
VR_DEBITO  = 0
VR_CREDITO = 0

If Not IsEmpty(Tabela3)
   Then For CONT From 1 To 2
            Switch 
              Case CONT=1 : TIPO = "D"
              Case CONT=2 : TIPO = "C"  
            EndSwitch
            
            VR_DEBCRED    = 0
            SALDO_DEBCRED = 0
            
            View Tabela3
            Scan For [Tipo]=TIPO                                         
              Switch
                Case [Tipo]="D" : DEB_CRED = "DEBITO   " 
                Case [Tipo]="C" : DEB_CRED = "CREDITO  "
              EndSwitch  
              VR_DEBCRED    = VR_DEBCRED    + [Saldo do Documento] ;[Valor do Documento]    
              SALDO_DEBCRED = SALDO_DEBCRED + [Saldo do Documento] 
            EndScan  
            Switch 
              Case CONT=1 : VR_DEBITO  = VR_DEBCRED
              Case CONT=2 : VR_CREDITO = VR_DEBCRED
            EndSwitch
        EndFor   
        IMPRIME_APURACAO = False 
EndIf
ClearAll

TXDESCTO    = (TOT_VENDA_DESC/TOT_VENDA)*100
TX_COMISDOC = (TOT_VENDA_COMIS/(TOT_VENDA-TOT_VENDA_DESC))*100
COMISSAORET = (TOT_RETOU*TX_COMISDOC)/100
COMISSAOLIQ = TOT_VENDA_COMIS-COMISSAORET  
                         
If PARAM = "Comissao"
   Then If COMISSAOLIQ>0 Or TOT_RETOU>0
            Then 
                 If COMISSAOLIQ>0 
                    then 
                         PC_0001_AquivoDeParametrosGeraComissao ="PC_1501"  ; informar o Rm_XXXX como PC_XXXX nÆo esquecer 
                         PC_0001_PARAM= "CONSIG/COMISSAO"
                         Play "PC_0001"
                 endif

                 If TOT_RETOU>0
                    then 
                         PC_0001R_AquivoDeParametrosGeraComissao="PC_1501R" ; informar o Rm_XXXX como PC_XXXX nÆo esquecer 
                         PC_0001R_PARAM="CONSIG/OUTRET"
                         Play "PC_0001R"
                 endif
        EndIf
EndIf

DeletaTabelas() 

EndProc ;Gera_Valores()          
         
;*******************************************************************************
;* Processo p/ gerar a comiss„o liquida no contas a pagar                      * 
;*******************************************************************************
Proc Rm_1501D_Atualiza_Acerto()

TELA = 3

Array TG_COMISSAO[1]
TG_COMISSAO[1]="Gerar comiss„o/outros retornos no contas a pagar"

Array CheckTG_COMISSAO[ArraySize(TG_COMISSAO)]
CheckTG_COMISSAO[1]=False
        
VSDGDTREFERENTE=BlankDate()                              
Echo Normal
Echo Off
While True
  ShowDialog "Acerto" Proc "SD_Dialog"
    Trigger "OPEN","ARRIVE"
    Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140
     @ 05,12   Height 08 Width 77
                        
      Label  @ 00,00 "Data p/ Acerto: " For "TG_DATAREFERENTE"
      Accept @ 00,18 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DATAREFERENTE" To VSDGDTREFERENTE
     
      CheckBoxes @ 02,00 Height 1 Width 55 Tag "TG_COMISSAO"
      TG_COMISSAO[1] to CheckTG_COMISSAO[1]
  
      Pushbutton @ 04,22 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
      Pushbutton @ 04,36 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue   
     
    EndDialog                    
    If Not RetVal 
       Then Return False
    EndIf   
    
    If CheckTG_COMISSAO[1] And VSDGDTREFERENTE = BlankDate()
       Then Mensagem("Data para acerto n„o informado!")
            Loop
    EndIf        
    
    If VSDGDTREFERENTE<>BlankDate() And Not CheckTG_COMISSAO[1]
     Then COR_MENSAGEM="ALERTA"
          ConfGeral(Completa("Foi identificado que a data de acerto foi informada, por‚m a comiss„o/",72," ")+"//"+
                    Completa("outros retornos n„o foi marcada, assim n„o ocorrer   o  lan‡amento  de",72," ")+"//"+
                    Completa("comissionamento automatico no CONTAS A PAGAR.",72," ")+"//"+
                    Completa("Deseja realmente continuar com este processo?",72," "))
                    If Ok<>"S"              
                       Then Loop
                    EndIf   
   EndIf
   
   If CheckTG_COMISSAO[1]
      Then         
           MSG = ""
           Rm_1501D_Gera_Valores("Comissao")
           If IsAssigned(DESTIN)
              Then If DESTIN=False
                      Then MSG="Destina‡„o de VENDA CONSIGNADA n„o encontrada!"
                   EndIf
           EndIf
           If MSG<>"" Then Mensagem(MSG) EndIf
   EndIf   
   
   If VSDGDTREFERENTE<>BlankDate()
      Then Rm_1501D_Data_Acerto()
           Mensagem("Opera‡Æo Realizada!")
   EndIF
   QuitLoop
EndWhile

Return True
            
TELA = 1

Return True
                          
EndProc ;Atualiza_Acerto()

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************

Rm_1501D_Atualiza_Acerto()
  
Release Procs Rm_1501D_Data_Acerto, Rm_1501D_Gera_Valores, Rm_1501D_Atualiza_Acerto
