;** P_Destin *******************************************************************
;*  Configuracao de Paramentos p/ Clientes e Fornecedores                      *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 20/08/2001 por Anivel Augusto Rodrigues
;Ultima Alteracao: 21/03/2003 por Karen Lauar Nery
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 17/09/2007 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Parametros
;Ultima Alteracao: 01/10/2009 por Bruno Carvalho
;Motivo Alteracao: InclusÆo Script ImpressÆo"
;Ultima Alteracao: 01/04/2013 por Bruno Carvalho
;Motivo Alteracao: Ajustes Param_Dialog() p/ vari veis de intervalo de codigo alinhar a 4 digitos
;Ultima Alteracao: 05/08/2013 por Kamila Gomes
;Motivo Alteracao: Adicionados parametros limite de credito e NDias em Atraso Ficha Financeira
;Ultima Alteracao: 03/03/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes usar no dialog Monta_Prompt(MSGCAMPO,TECLA)
;Ultima Alteracao: 08/11/2016 por Kamila Gomes
;Motivo Alteracao: Adicionado parametro Habilita Consulta Sintegra

;*******************************************************************************
;* Rotina de Controle de Paramentros                                           *
;*******************************************************************************
Proc PARAM_DIALOG(Disparo,Campo,Evento,Elemento)
Temp=True

TECLA   =""
MSGCAMPO=""
If INICIO_DIALOGO
   Then INICIO_DIALOGO=False
EndIf

If Disparo="OPEN"
   Then AoCriarShowDialog()
        TiraSombraShowDialog()
EndIf

If Disparo="EVENT" And DynArraySize(Evento)>0 And Evento["Type"]="KEY" Then
   Switch
      Case Evento["KeyCode"] = 9:
           Temp=False

      Case Evento["KeyCode"] = 27:
           Switch
             Case Campo="I_CGC_CLIENTE"    : CancelDialog
             Case Campo="I_CGC_FORNECEDOR" : Campo="I_CGC_CLIENTE"
             Case Campo="I_SINTEGRA"       : Campo="I_CGC_FORNECEDOR"
             Case Campo="I_COD"            : Campo="I_SINTEGRA"
             Case Campo="I_AUT"            : Campo="I_COD"
             Case Campo="L_Credito"        : Campo="I_AUT"
             Case Campo="M_Atraso"         : Campo="L_Credito"
             Case Campo="I_IMPRESSAO"      : Campo="M_Atraso"
             Case Campo="TG_INICIAL"       : INICIO_DIALOGO=True
                                             CancelDialog
             Case Campo="TG_FINAL"         : Campo="TG_INICIAL"
             Case Campo="TG_INICIALFOR"    : Campo="TG_FINAL"
             Case Campo="TG_FINALFOR"      : Campo="TG_INICIALFOR"
             Case Campo="TG_INICIALOU"     : Campo="TG_FINALFOR"
             Case Campo="TG_FINALOU"       : Campo="TG_INICIALOU"
           EndSwitch

      Case Evento["KeyCode"] = 13:
           Switch
             Case Campo="I_CGC_CLIENTE":
                  VSD_CGC_CLIENTE=ControlValue("I_CGC_CLIENTE")
                  If Not IsBlank(VSD_CGC_CLIENTE)
                     Then Campo="I_CGC_FORNECEDOR"
                  EndIf
             Case Campo="I_CGC_FORNECEDOR":
                  VSD_CGC_FORNECEDOR=ControlValue("I_CGC_FORNECEDOR")
                  If Not IsBlank(VSD_CGC_FORNECEDOR)
                     Then Campo="I_SINTEGRA"
                  EndIf
             Case Campo="I_SINTEGRA":
                  VSD_SINTEGRA=ControlValue("I_SINTEGRA")
                  If VSD_CGC_CLIENTE = "N"
                    Then VSD_SINTEGRA = "N"
                  EndIf
                  
                  If Not IsBlank(VSD_SINTEGRA)
                     Then Campo="I_COD"
                  EndIf     
             Case Campo="I_COD":
                  VSD_COD=ControlValue("I_COD")
                  If VSD_COD="S"
                     Then TelaS()
                          If Not INICIO_DIALOGO
                             Then Campo="I_AUT"
                             Else Campo="I_COD"
                          EndIf
                     Else Campo="I_AUT"
                  EndIf
             Case Campo="TG_INICIAL":
                  VSDINICIAL=ControlValue("TG_INICIAL")
                  If Not IsBlank(VSDINICIAL)
                     Then VSDINICIAL=AlinhM(VSDINICIAL,4)
                          Campo="TG_FINAL"
                  EndIf
             Case Campo="TG_FINAL":
                  VSDFINAL=ControlValue("TG_FINAL")
                  If Not IsBlank(VSDFINAL) and (VSDFINAL <> VSDINICIAL)
                     Then VSDFINAL=AlinhM(VSDFINAL,4)
                          Campo="TG_INICIALFOR"
                  EndIf
             Case Campo="TG_INICIALFOR":
                  VSDINICIALFOR=ControlValue("TG_INICIALFOR")
                  If Not IsBlank(VSDINICIALFOR)
                     Then VSDINICIALFOR=AlinhM(VSDINICIALFOR,4)
                          Campo="TG_FINALFOR"
                  EndIf
             Case Campo="TG_FINALFOR":
                  VSDFINALFOR=ControlValue("TG_FINALFOR")
                  If Not IsBlank(VSDFINALFOR) and (VSDFINALFOR <> VSDINICIALFOR)
                     Then VSDFINALFOR=AlinhM(VSDFINALFOR,4)
                          Campo="TG_INICIALOU"
                  EndIf
             Case Campo="TG_INICIALOU":
                  VSDINICIALOU=ControlValue("TG_INICIALOU")
                  If Not IsBlank(VSDINICIALOU)
                     Then VSDINICIALOU=AlinhM(VSDINICIALOU,4)
                          Campo="TG_FINALOU"
                  EndIf
             Case Campo="TG_FINALOU":
                  VSDFINALOU=ControlValue("TG_FINALOU")
                  If Not IsBlank(VSDFINALOU) and (VSDFINALOU <> VSDINICIALOU)
                     Then VSDFINALOU=AlinhM(VSDFINALOU,4)
                          AcceptDialog
                          INICIO_DIALOGO=False
                  EndIf
             Case Campo="I_AUT":
                  VSD_AUT=ControlValue("I_AUT")
                  If IsBlank(VSD_AUT)
                     Then VSD_AUT="N"
                  EndIf
                  Campo="L_Credito"
            Case Campo="L_Credito":
                  VSD_L_Credito=ControlValue("L_Credito")
                  If IsBlank(VSD_L_Credito)
                     Then VSD_L_Credito=0
                  EndIf
                  Campo="M_Atraso" 
             Case Campo="M_Atraso":
                  VSD_M_Atraso=ControlValue("M_Atraso")
                  If IsBlank(VSD_M_Atraso)
                     Then VSD_M_Atraso=0
                  EndIf
                  Campo="I_IMPRESSAO"     
             Case Campo="I_IMPRESSAO":
                  VSD_IMPRESSAO=ControlValue("I_IMPRESSAO")
                  ConfGeral("Confirma novos parametros?")
                  If OK="S"
                      Then PARAM_OPCAO("Gravar")
                            AcceptDialog
                      Else CancelDialog
                  EndIf
           EndSwitch

      Case Evento["KeyCode"] = -81:
           ConfGeral("Confirma novos parametros?")
           If OK="S"
              Then PARAM_OPCAO("Gravar")
                   AcceptDialog
              Else CancelDialog
           Endif
    OtherWise:
        CancelDialog

   EndSwitch
EndIf

TECLA="//Esc=Retornar  PgDn=Finalizar  "
Switch
     Case Campo="I_CGC_CLIENTE" or Campo="I_CGC_FORNECEDOR" or Campo="I_COD" or Campo="I_SINTEGRA":
          MSGCAMPO ="Utiliza este recurso Sim/N„o"
     Case Campo="TG_INICIAL":
          MSGCAMPO ="Informe o Codigo Inicial de Cliente"
     Case Campo="I_IMPRESSAO" :
          MSGCAMPO ="Script de Impressao"
     Case Campo="TG_FINAL":
          MSGCAMPO ="Informe o Codigo Final de Cliente"
     Case Campo="TG_INICIALFOR":
          MSGCAMPO ="Informe o Codigo Inicial de Fornecedor"
     Case Campo="TG_FINALFOR":
          MSGCAMPO ="Informe o Codigo Final de Fornecedor"
     Case Campo="TG_INICIALOU":
          MSGCAMPO ="Informe o Codigo Inicial"
     Case Campo="TG_FINALOU":
          MSGCAMPO ="Informe o Codigo Final"
     Case Campo="I_AUT":
          MSGCAMPO ="Utiliza Autoriza‡„o p/ outros Comprar no Nome do Cliente"
     Case Campo="L_Credito":
          MSGCAMPO ="Informe o valor padrÆo de limite de cr‚dito para a Ficha Financeira"
     Case Campo="M_Atraso":
          MSGCAMPO ="Informe n£mero m ximo de dias em atraso padrÆo para a Ficha Financeira"
EndSwitch

;@ 24,0 ?? TECLA+Spaces(80-Len(TECLA))
;PaintCanvas Attribute 31 24,0,24,79
;Message(MSGCAMPO)

Monta_Prompt(MSGCAMPO,TECLA)

Return TEMP
EndProc   ;(Param_Dialog)

;*******************************************************************************
;* Rotina Gravacao ou Leitura dos Parametros                                   *
;*******************************************************************************
Proc PARAM_OPCAO(OP)
Private OP
If OP="Gravar"
   Then [Utiliza_CGC_Cliente      ] = VSD_CGC_CLIENTE
        [Utiliza_CGC_Fornecedor   ] = VSD_CGC_FORNECEDOR
        [Reutiliza_Cod            ] = VSD_COD
        [Cliente_Inicial          ] = VSDINICIAL
        [Cliente_Final            ] = VSDFINAL
        [Fornecedor_Inicial       ] = VSDINICIALFOR
        [Fornecedor_Final         ] = VSDFINALFOR
        [Outros_Inicial           ] = VSDINICIALOU
        [Outros_Final             ] = VSDFINALOU
        [Utiliza_Autorizacao      ] = VSD_AUT
        [Script_Impressao         ] = VSD_IMPRESSAO
        [Limite_Credito_Padrao    ] = VSD_L_Credito
        [NDias_Atraso_Padrao      ] = VSD_M_Atraso
        [Utiliza_Consulta_Sintegra] = VSD_SINTEGRA
        
        
  Else
        VSD_CGC_CLIENTE    = [Utiliza_CGC_Cliente      ]
        VSD_CGC_FORNECEDOR = [Utiliza_CGC_Fornecedor   ]
        VSD_COD            = [Reutiliza_Cod            ]
        VSDINICIAL         = [Cliente_Inicial          ]
        VSDFINAL           = [Cliente_Final            ]
        VSDINICIALFOR      = [Fornecedor_Inicial       ]
        VSDFINALFOR        = [Fornecedor_Final         ]
        VSDINICIALOU       = [Outros_Inicial           ]
        VSDFINALOU         = [Outros_Final             ]
        VSD_AUT            = [Utiliza_Autorizacao      ]
        VSD_IMPRESSAO      = [Script_Impressao         ]
        VSD_L_Credito      = [Limite_Credito_Padrao    ]
        VSD_M_Atraso       = [NDias_Atraso_Padrao      ]
        VSD_SINTEGRA       = [Utiliza_Consulta_Sintegra]
EndIf

ClearAll
EndProc   ; (Param_Opcao)

;*******************************************************************************
;* Rotina da Tela Inicial                                                      *
;*******************************************************************************

Proc TelaP()
 Showdialog "Configura‡Æo Cliente/Fornecedor/Outros" Proc "Param_Dialog"
    Trigger "OPEN","ARRIVE"
     Key "F1","TAB","ReverseTab","ENTER","ESC","F4","ClearArea","PGDN"
      @ 00,00 height 23 width 80

    Label  @ 01,00 "[    ] Utiliza CGC/CPF £nico p/ Cliente " for "I_CGC_CLIENTE"
    Accept @ 01,02 Width 04 "A1" picture "S,N" Tag "I_CGC_CLIENTE" to VSD_CGC_CLIENTE
    Label  @ 02,00 "[    ] Utiliza CGC/CPF £nico p/ Fornecedor" for "I_CGC_FORNECEDOR"
    Accept @ 02,02 Width 04 "A1" picture "S,N" Tag "I_CGC_FORNECEDOR" to VSD_CGC_FORNECEDOR
    Label  @ 03,00 "[    ] Habilita Consulta Sintegra" for "I_SINTEGRA"
    Accept @ 03,02 Width 04 "A1" picture "S,N" Tag "I_SINTEGRA" to VSD_SINTEGRA
    Label  @ 04,00 "[    ] Utiliza Intervalos de Codigos " for "I_COD"
    Accept @ 04,02 Width 04 "A1" picture "S,N" Tag "I_COD" to VSD_COD
    Label  @ 05,00 "[    ] Utiliza Autorizacao" for "I_AUT"
    Accept @ 05,02 Width 04 "A1" picture "S,N" Tag "I_AUT" to VSD_AUT
    Label  @ 06,00 "[          ] Valor padrÆo de limite de cr‚dito - Ficha Financeira" for "L_Credito"
    Accept @ 06,02 Width 10 "$" picture "#*#.[##]" Tag "L_Credito" to VSD_L_Credito
    Label  @ 07,00 "[      ] Ndias em atraso padrÆo - Ficha Financeira" for "M_Atraso"
    Accept @ 07,02 Width 06 "S" picture "#*#" Tag "M_Atraso" to VSD_M_Atraso
    
    Label  @ 09,00 "[           ] Script Impressao NE" for "I_IMPRESSAO"
    Accept @ 09,02 Width 11 "A8" picture "!*!" Tag "I_IMPRESSAO" to VSD_IMPRESSAO
    

 Enddialog
Endproc;     (TelaP)

;*******************************************************************************
;* Rotina da Segunda Tela (Tela Opcional)                                      *
;*******************************************************************************

Proc TelaS()

Showdialog " Intervalos " Proc "Param_Dialog"
   Trigger "OPEN","ARRIVE"
    Key "F1","TAB","ReverseTab","ENTER","ESC","F4","ClearArea","PGDN"
     @ 16,09 height 06 width 62

   Frame Single From 00,02 to 03,20
   @ 00,03 ?? " Clientes "
;   Paintcanvas attribute 31 0, 0, 03, 20
   Label  @ 01,03 "Inicial"  For "TG_INICIAL"
   Accept @ 02,04 Width 07 "A4" Tag "TG_INICIAL" To VSDINICIAL
   Label  @ 01,12 "Final"  For "TG_FINAL"                                                   
   Accept @ 02,12 Width 07 "A4" Tag "TG_FINAL" To VSDFINAL

   Frame Single From 00,21 to 03,39
   @ 00,22 ?? " Fornecedores "
 ;  Paintcanvas attribute 31 0, 0, 03, 39
   Label  @ 01,22 "Inicial"  For "TG_INICIALFOR"
   Accept @ 02,23 Width 07 "A4" Tag "TG_INICIALFOR" To VSDINICIALFOR
   Label  @ 01,31 "Final"  For "TG_FINALFOR"
   Accept @ 02,31 Width 07 "A4" Tag "TG_FINALFOR" To VSDFINALFOR

   Frame Single From 00,40 to 03,58
   @ 00,41 ?? " Outros "
 ;  Paintcanvas attribute 31 0, 0, 03, 58
   Label  @ 01,41 "Inicial"  For "TG_INICIALOU"
   Accept @ 02,42 Width 07 "A4" Tag "TG_INICIALOU" To VSDINICIALOU
   Label  @ 01,50 "Final"  For "TG_FINALOU"
   Accept @ 02,50 Width 07 "A4" Tag "TG_FINALOU" To VSDFINALOU

EndDialog

EndProc;    (TelaS)

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot"

If Not Checa_Supervisor()
   Then Return
EndIf

CoEdit NoWindow "P_dest"
If RecordStatus("New")
   Then [Utiliza_CGC_Cliente      ]= "N"
        [Utiliza_CGC_Fornecedor   ]= "N"
        [Reutiliza_Cod            ]= "N"
        [Cliente_Inicial          ]= ""
        [Cliente_Final            ]= ""
        [Fornecedor_Inicial       ]= ""
        [Fornecedor_Final         ]= ""
        [Outros_Inicial           ]= ""
        [Outros_Final             ]= ""
        [Utiliza_Autorizacao      ]= "N"
        [Limite_Credito_Padrao    ]= 0
        [NDias_Atraso_Padrao      ]= 0
        [Utiliza_Consulta_Sintegra]= "N"
        
        UnLockRecord
EndIf

PARAM_OPCAO("Ler")
INICIO_DIALOGO=True

TelaP()
Echo Fast
Echo Off


Do_It!
ClearAll
Release Vars All
Release Procs All
