;** Rm_0194 ********************************************************************
;* Relacao de Entregas Pendentes                                               *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 27/01/2003 por Karen Lauar Nery
;Ultima Alteracao: 08/09/2004 por Jos‚ Lu¡s Ameno da Silva
;Motivo Alteracao: PrivDir
;Ultima Alteracao: 21/12/2010 por Bruno Carvalho
;Motivo Alteracao: Adicionado Op‡Æo de Relat¢rio
;Ultima Alteracao: 10/07/2012 por Bruno Carvalho
;Motivo Alteracao: Adicionado filtro na ask do NotaI "Situacao_Item"
;Ultima Alteracao: 12/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog               
;Ultima Alteracao: 28/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes ShowDialog TG_DESTINAT    
;Ultima Alteracao: 21/02/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes agrupado RM_0195

;*******************************************************************************
;* Rotina p/ Selecionar Registros                                              *
;*******************************************************************************
Proc Seleciona()
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI")
   Then {Ask} {\\Sistemas\\Cadastro\\Destinat}
        Moveto [Codigo                   ] Example "clie"
        Moveto [Endereco                 ] Check
        Moveto [Bairro                   ] Check
        If VSDGBAIRRO<>"TODOS"
           Then TypeIn VSDGBAIRRO
        EndIf
        Moveto [CEP                      ] Check
        Moveto [IE                       ] Check
        Moveto [Telefone                 ] Check
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
        Moveto [Codigo da Empresa        ] Check Example "cemp" TypeIn ", ~VSDGEMPRESA.."
        Moveto [Numero do Documento      ] Check Example "docto"
        Moveto [Serie do Documento       ] Check Example "serie"
        Moveto [Nome Fantasia Empresa    ] Check
        Moveto [Codigo do Documento      ] Check
        Moveto [Tipo do Documento        ] Check
        Moveto [Data de Emissao          ] Check
        Moveto [Data de Saida            ] Check
        Moveto [Hora de Saida            ] Check
        Moveto [Codigo                   ] Check Example "clie" TypeIn ", ~VSDGDESTINAT.."
        Moveto [Nome Fantasia EmitDest   ] Check
        Moveto [Razao Social             ] Check
        Moveto [Cidade                   ] Check
        Moveto [UF                       ] Check
        Moveto [CGC                      ] Check
        Moveto [Codigo do Representante  ] Check
        Moveto [Nome Fantasia Represent  ] Check
        Moveto [Comissao do Representante] Check
        Moveto [Entrega                  ] Check ;;;;;TypeIn "S"
        Moveto [Observacao na Nota Fiscal] Check 
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI" Enter
        Moveto [Codigo da Empresa        ] Example "cemp"
        Moveto [Numero do Documento      ] Example "docto"
        Moveto [Serie do Documento       ] Example "serie"
        Moveto [Item do Documento        ] Check
        Moveto [Tipo do Item             ] Check
        Moveto [Codigo do Item           ] Check
        Moveto [Descricao do Item        ] Check
        Moveto [Codigo da Cor_Tecido     ] Check
        Moveto [Descricao da Cor_Tecido  ] Check
        Moveto [Tamanho                  ] Check
        Moveto [Quantidade               ] Check
        Moveto [Unidade Fiscal           ] Check
        Moveto [Situacao_Item            ] TypeIn "Not C"
        
        switch
          case VSDGCODMODELO="43":
            Moveto [Entrega                  ] Check TypeIn "N"
            Moveto [Data a Entregar          ] Check TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
            Moveto [Data de Entrega          ] Check TypeIn "Blank"
           
          case VSDGCODMODELO="44":
            Moveto [Entrega                  ] Check TypeIn "S"
            Moveto [Data a Entregar          ] Check
            Moveto [Data de Entrega          ] Check TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
           
        endswitch
        Do_It!
        ClearAll

        {Modify} {Restructure} {Answer} Down Down Down Down Down Down
        Down Down Down Down Down Down Down Down Down Down Down Ins Right
         "Endereco" Enter Enter Ins Right  "Bairro" Enter Enter Right
        Left Ins Right  "CEP" Enter Down Down Down Down Ins Left  "I"
         "E" Enter Down Left Ins  "telefoon" Backspace Backspace  "n"
         "e" Enter Down Left Ins  "Nome do Autorizado" Enter  "a40"
        Down Do_It! ClearImage

EndIf
EndProc ; (Seleciona)

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(Disparo,Campo,Evento,Elemento)
Temp=True
MSG_CAMPO=""
TECLA=""
If Disparo="OPEN"  Then AoCriarShowDialog() EndIf
If Disparo="EVENT" And Evento["Type"]="KEY" Then
   Switch
     Case Evento["KeyCode"] = 9: Temp=False
     Case Evento["KeyCode"] = -59: Dialog_F1()
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case Campo="TG_EMPRESA"     : Campo="NO"
            Case Campo="TG_DESTINAT"    : Campo="TG_EMPRESA"
            Case Campo="TG_BAIRRO"      : Campo="TG_DESTINAT"
            Case Campo="TG_DTINI"       : Campo="TG_BAIRRO"
            Case Campo="TG_DTFIM"       : Campo="TG_DTINI"
            Case Campo="TG_OPRELCODALF" : Campo="TG_DTFIM"  
            Case Campo="TG_CODMODELO"   : Campo="TG_OPRELCODALF"  
            Case Campo="YES" Or Campo="NO": Campo="TG_EMPRESA"
          EndSwitch
     Case (Evento["KeyCode"] <= -104 And Evento["KeyCode"] >= -113) Or 
           Evento["KeyCode"]  = -139 Or  Evento["KeyCode"]  = -140:
           SYS_TECLA_ACIONADA=Evento["KeyCode"]
           Seta_Tecla_Acionada()
           CancelDialog
     Case Evento["KeyCode"] = 13:
          Temp=False
          If Checa_TAG()
             Then Switch
                    Case Campo="TG_EMPRESA" : Campo="TG_DESTINAT"
                    Case Campo="TG_DESTINAT": Campo="TG_BAIRRO"
                    Case Campo="TG_BAIRRO"  : Campo="TG_DTINI"
                         VSDGBAIRRO=ControlValue("TG_BAIRRO")
                         If IsBlank(VSDGBAIRRO) Or
                            VSDGBAIRRO="TODOS"
                            Then VSDGBAIRRO="TODOS"
                         EndIf
                    Case Campo="TG_DTINI"       : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"       : Campo="TG_OPRELCODALF"
                    Case Campo="TG_OPRELCODALF" : Campo="TG_CODMODELO"
                         VSDGOPRELCODALF=ControlValue("TG_OPRELCODALF")
                         If IsBlank(VSDGOPRELCODALF)
                            Then VSDGOPRELCODALF="1"
                         EndIf   
                         If VSDGOPRELCODALF="1"
                            Then VSDGNOMOPRELCODALF="CODIGO"
                            Else VSDGNOMOPRELCODALF="DATA DE SAIDA"
                         EndIf
                    Case Campo="TG_CODMODELO"    : Campo="YES"
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_OPRELCODALF" :
     MSG_CAMPO="1=C¢digo   2=Data de Saida"
  Case Campo="TG_DTFIM" :
     MSG_CAMPO="Informe a Data Final"
  Case Campo="TG_BAIRRO" :
     MSG_CAMPO="Use .. ou Em Branco=Todos"
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;************************************
;* ROTINA PARA Ler/Gravacao Opcao   *
;************************************
Proc ModeloRelatoriosCarregaLista()

VSDGCODMODELO     = ""
VSDGMODELO        = ""

;ModeloRelatoriosAdd("XXX XX maximo 70 XX")

ModeloRelatoriosAdd("Criar") ; linha obrigatoria inicial
ModeloRelatoriosAdd("43  Pendentes")
ModeloRelatoriosAdd("44  Efetuadas")
ModeloRelatoriosAdd("Fim")

EndProc ;ModeloRelatoriosCarregaLista

;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot"
LimpAguarde()

VSDGEMPRESA =""
VSDGDESTINAT=""
VSDGDTINI   =BlankDate()
VSDGDTFIM   =BlankDate()

ModeloRelatoriosCarregaLista()

While True

  ShowDialog "Rela‡„o de Entregas" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
   @ 09,12   Height 16 Width 72

    Label  @ 00,00 "Empresa"  For "TG_EMPRESA"
    Accept @ 01,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_EMPRESA"    To VSDGEMPRESA
    Accept @ 01,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMEMPRESA" To VSDGNOMEMP

    Label  @ 02,00 "Pessoa"  For "TG_DESTINAT"
    Accept @ 03,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_DESTINAT" To VSDGDESTINAT
    Accept @ 03,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMDEST"  To VSDGNOMDEST

    Label  @ 04,00 "Bairro"  For "TG_BAIRRO"
    Accept @ 05,01 Width 33 "A20" Picture "!*!" Tag "TG_BAIRRO"  To VSDGBAIRRO

    Label  @ 06,00 "Per¡odo a Entregar de" For "TG_DTINI"
    Accept @ 07,03 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 07,16 "at‚" For "TG_DTFIM"
    Accept @ 07,21 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM

    Label  @ 00,35 "Op‡„o de Ordem" For "TG_OPRELCODALF"
    Accept @ 01,39 Width 04 "A1"  Picture "1,2" Tag "TG_OPRELCODALF" To VSDGOPRELCODALF
    Accept @ 01,44 Width 25 "A25"  Picture "!*!" Tag "TG_NOMOPRELCODALF" To VSDGNOMOPRELCODALF

    Label  @ 09,00  "Modelo de ~R~elat¢rio"  For "TG_CODMODELO"
    Accept @ 10,01  Width 06 "A3"  Picture "!*!" Tag "TG_CODMODELO" To VSDGCODMODELO
    Accept @ 10,06  Width 63 "A60"  Picture "!*!" Tag "TG_MODELO" To VSDGMODELO 

    Pushbutton @ 12,22 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 12,36 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue


  EndDialog
  If Not RetVal Then QuitLoop EndIf
  If Not Valida_ShowDialog("") Then Loop EndIf

  If IsBlank(VSDGDTFIM)
     Then Mensagem("Data Final Invalida !")
          Loop
  EndIf

  DISPOSITIVO()
  If OK=""  Then Loop EndIf

  AGUARDE("Aguarde, gerando o relat¢rio")
  Tabela=Cria_Temp(PrivDir())

  Empty "\\Base\\Sistemas\\Vendas\\Rm_0190"
  Copy "\\Base\\Sistemas\\Vendas\\Rm_0190" Tabela

  Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
  While Novo_Dir_Trab()
    If IsTable("Answer")     Then Delete "Answer" EndIf
    Seleciona()
    If Not IsTable("Answer") Then Loop EndIf
    If IsTable(Tabela)
       Then Add "Answer" Tabela     
       Else Rename "Answer" Tabela
    EndIf
  EndWhile                                           

  If IsEmpty(Tabela)
     Then MENSAGEM("N„o existem registros a processar")
          Delete Tabela
          Loop
  EndIf

  switch
    case VSDGCODMODELO="43":
      If VSDGOPRELCODALF="1"
         Then IMPRIREL(Tabela,"R")
         Else IMPRIREL(Tabela,"3")
      EndIf
     
    case VSDGCODMODELO="44":
      IMPRIREL(Tabela,"1")
     
  endswitch

  Delete Tabela

EndWhile
ClearAll
Release Vars All
Release Procs All
