

;nÆo usar mais - utilizar rm_0501 - posic‡Æo da carteira de pedidos
;Ver com An¡vel


;** Rm_0402  *******************************************************************
;* Emissao de Pedidos                                                          *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 05/12/1995 por Anivel Augusto Rodrigues
;Ultima Alteracao: 01/09/2006 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes
;Ultima Alteracao: 08/08/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Rateio de descontos
;Ultima Alteracao: 29/07/2009 por Humberto F.Santos.
;Motivo Alteracao: Acrescentado campo Destinacao
;Ultima Alteracao: 16/05/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TG_SITUACAOPEDIDO
;Ultima Alteracao: 08/05/2013 por Bruno Carvalho  
;Motivo Alteracao: Ajustes para buscar Mˆs Fechado
;Ultima Alteracao: 28/04/2014 por Andrey Fillipe  
;Motivo Alteracao: Ajustes para agrupar por N§ do pedido se (VSDGUTILIZAITENS="O")                      
;Ultima Alteracao: 14/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 27/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   

;*******************************************************************************
;* Rotina p/ Selecionar e Ordernar Registros                                   *
;*******************************************************************************
Proc Seleciona()
ClearAll

If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoI")
   Then {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoC" Enter
        Moveto [Numero do Pedido    ] Example "Pedido" TypeIn ",~VSDGPEDIDO.."
        Moveto [Codigo da Destinacao] TypeIn "~VSDGDESTIN.."
        Switch
          Case VSDGTPDATA="1": Moveto [Data de Emissao ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
          Case VSDGTPDATA="2": Moveto [Data de Entrega ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
          Case VSDGTPDATA="3": Moveto [Data_Inclusao   ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
        EndSwitch
        If VSDGSITUACAOPEDIDO<>"TODAS"
           Then Moveto [Situacao do Pedido] TypeIn "~VSDGSITUACAOPEDIDO"
        EndIf
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoI" Enter Check
        Moveto [Numero do Pedido] Example "Pedido"
        Do_It!
        ClearAll
        
        If IsEmpty("Answer")
           Then Return
        Endif
        
        Edit "Answer"
        Scan
          [Valor do IR  ]=[Preco Total]-[Valor Desconto Total]
          If [Quantidade]>[Quantidade Faturada]
             Then [Valor do INSS]=(([Preco Unitario]-[Valor Desconto Unitario])*[Quantidade Faturada])
                  [Valor do INSS]=[Valor do INSS]-(([Valor do INSS]*[Taxa Desconto Total])/100)
             Else [Valor do INSS]=[Valor do IR]
          EndIf
        EndScan
        Do_It!
        ClearAll
        
        If VSDGUTILIZAITENS="O"
           Then {Ask} {Answer} 
                Moveto [Numero do Pedido] Check
                Moveto [Valor do IR     ] TypeIn "Calc Sum as Valor do IR"
                Moveto [Valor do INSS   ] TypeIn "Calc Sum as Valor do INSS" 
                Do_It!
                ClearAll
        EndIf        
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_PEDIDO"        : Campo="NO"
            Case Campo="TG_SITUACAO"      : Campo="TG_PEDIDO"
            Case Campo="TG_SITUACAOPEDIDO": Campo="TG_PEDIDO"
            Case Campo="TG_DESTIN"        : Campo="TG_SITUACAOPEDIDO"
            Case Campo="TG_TPDATA"        : Campo="TG_DESTIN"
            Case Campo="TG_DTINI"         : Campo="TG_TPDATA"
            Case Campo="TG_DTFIM"         : Campo="TG_DTINI"
            Case Campo="TG_UTILIZAITENS"  : Campo="TG_DTFIM"
            Case Campo="YES" Or Campo="NO": Campo="TG_PEDIDO"

          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_PEDIDO"          : Campo="TG_SITUACAOPEDIDO"
                    Case Campo="TG_SITUACAOPEDIDO"  : Campo="TG_DESTIN"
                    Case Campo="TG_DESTIN"       : Campo="TG_TPDATA"           
                    Case Campo="TG_TPDATA"          :
                      VSDGTPDATA=ControlValue("TG_TPDATA")
                      If IsBlank(VSDGTPDATA)
                           Then VSDGTPDATA="1"
                      EndIf
          
                      Switch
                        Case VSDGTPDATA="1": VSDGNOMTPDATA="EMISSAO"
                        Case VSDGTPDATA="2": VSDGNOMTPDATA="ENTREGA"
                        Case VSDGTPDATA="3": VSDGNOMTPDATA="INCLUSAO"
                      EndSwitch
                      Campo="TG_DTINI"
                    Case Campo="TG_DTINI"           : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"           : Campo="TG_UTILIZAITENS"
                    Case Campo="TG_UTILIZAITENS"    :
                       VSDGUTILIZAITENS=ControlValue("TG_UTILIZAITENS")
                       If IsBlank(VSDGUTILIZAITENS)
                            Then VSDGUTILIZAITENS="O"
                       EndIf
                       If VSDGUTILIZAITENS="M"
                          Then VSDGNOMUTILIZAITENS="MOSTRA ITENS"
                          Else VSDGNOMUTILIZAITENS="OCULTA ITENS"
                       EndIf
                       Campo="YES"
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_PEDIDO":
     MSG_CAMPO="Em Branco = Todos"
  Case Campo="TG_TPDATA":
       MSG_CAMPO="1 = EMISSAO  2 = ENTREGA  3 = INCLUSAO"
  Case Campo="TG_UTILIZAITENS":
    MSG_CAMPO="M = Mostra Itens  O = Oculta Itens"
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

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

VSDGPEDIDO           =""
VSDGSITUACAOPEDIDO   =""
VSDGTPDATA           =""
VSDGNOMTPDATA        =""
VSDGNOMOPRELANALSINT =""
VSDGUTILIZAITENS     =""
VSDGDTINI            =BlankDate()
VSDGDTFIM            =BlankDate()
While True

  ShowDialog "Emiss„o Pedidos" 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 17 Width 56

    Label  @ 00,00 "Pedido"  For "TG_PEDIDO"
    Accept @ 01,01 Width 09 "A6"  Picture "[&,#][#*#]" Tag "TG_PEDIDO" To VSDGPEDIDO
    Accept @ 01,09 Width 23 "A20" Picture "!*!" Tag "TG_NOMPEDIDO" To VSDGNOMPEDIDO

    Label  @ 02,00 "Situacao"  For "TG_SITUACAOPEDIDO"
    Accept @ 03,01 Width 12 "A9"  Picture "ABERTO,SUSPENSO,CANCELADO,FATURADO" Tag "TG_SITUACAOPEDIDO"  To VSDGSITUACAOPEDIDO

    Label  @ 04,01 "Destinacao"  For "TG_DESTIN"
    Accept @ 05,02 Width 06 "A3"  Picture "#*#" Tag "TG_DESTIN"    To VSDGDESTIN
    Accept @ 05,09 Width 33 "A30" Picture "!*!" Tag "TG_NOMDESTIN" To VSDGNOMDESTIN
    
    Label  @ 06,00 "Op‡äes de Datas" For "TG_TPDATA"
    Accept @ 07,01 Width 07 "A1"  Picture "1,2,3"  Tag "TG_TPDATA"     To VSDGTPDATA
    Accept @ 07,09 Width 23 "A18" Picture "!*!"  Tag "TG_NOMTPDATA" To VSDGNOMTPDATA

    Label  @ 08,00 "Per¡odo" For "TG_DTINI"
    Label  @ 09,00 "de" For "TG_DTINI"
    Accept @ 09,04 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 09,17 "at‚" For "TG_DTFIM"
    Accept @ 09,22 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM

    Label  @ 10,00 "Op‡„o do Relat¢rio" For "TG_UTILIZAITENS"
    Accept @ 11,01 Width 04 "A1"  Picture "M,O" Tag "TG_UTILIZAITENS" To VSDGUTILIZAITENS
    Accept @ 11,06 Width 28 "A25"  Picture "!*!" Tag "TG_NOMUTILIZAITENS" To VSDGNOMUTILIZAITENS

    Pushbutton @ 13,14 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 13,28 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog
  If Not RetVal Then QuitLoop EndIf

  If VSDGDTFIM=BlankDate()
     Then Mensagem("Data Final Invalida !")
  EndIf

  DISPOSITIVO()
  If OK="" Then Loop EndIf

  AGUARDE("Aguarde, gerando o relat¢rio")
  Tabela=Cria_Temp(PrivDir())
  
  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

  If VSDGUTILIZAITENS="O"
     Then CopyReport "\\Base\\Sistemas\\Vendas\\PedidoI" "9" Tabela "R"
     Else CopyReport "\\Base\\Sistemas\\Vendas\\PedidoI" "6" Tabela "R"
  EndIf

  IMPRIREL(Tabela,"R")
  Delete Tabela

EndWhile
ClearAll
Release Vars All
Release Procs All