

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


;Rm_0403  **********************************************************************
;* Emissao de Pedidos IV                                                       *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 05/12/1995 por Anivel Augusto Rodrigues
;Ultima Alteracao: 18/04/2005 por Davi Pereira Carrano
;Motivo Alteracao: Incluir Cliente
;Ultima Alteracao: 04/03/2008 por Nikolas
;Motivo Alteracao: Incluir Representante
;Ultima Alteracao: 14/07/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Preco - Desconto Total
;Ultima Alteracao: 16/07/2009 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao Gerencia
;Ultima Alteracao: 29/04/2010 por Cleber Alves            
;Motivo Alteracao: ".." VSDGGERENCIA
;Ultima Alteracao: 10/09/2010 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajuste NOT CANCELADO
;Ultima Alteracao: 16/05/2011 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TG_SITUACAOPEDIDO
;Ultima Alteracao: 08/10/2012 por Kamila Gomes
;Motivo Alteracao: Incluido Numero do pedido origem
;Ultima Alteracao: 06/11/2012 por Kamila Gomes
;Motivo Alteracao: Incluido Sys_codigo 0319 para Codigo Fornecedor
;Ultima Alteracao: 14/12/2012 por Kamila Gomes
;Motivo Alteracao: Ajustes Ask itens em aberto
;Ultima Alteracao: 19/03/2013 Bruno Carvalho
;Motivo Alteracao: Alterado campo [Fator Conversao] p/ [Aliquota de IR]
;Ultima Alteracao: 08/05/2013 por Bruno Carvalho  
;Motivo Alteracao: Ajustes para buscar Mˆs Fechado
;Ultima Alteracao: 09/05/2013 por Bruno Carvalho  
;Motivo Alteracao: Ajustes p/ filtrar apenas campos utilizaveis e ajustes no Report
;Ultima Alteracao: 11/06/2013 por Bruno Carvalho  
;Motivo Alteracao: Ajustes para cliente 0319, rotina incluida incorretamente 
;Ultima Alteracao: 10/07/2013 por Karina Andrade  
;Motivo Alteracao: InclusÆo campo Cidade e UF na ASK e reports
;Ultima Alteracao: 24/02/2014 por Karina Andrade  
;Motivo Alteracao: Ajustes Ask PedidoI - Incluido [Item do Pedido]
;Ultima Alteracao: 16/06/2014 por Luis Gustavo
;Motivo Alteracao: Ajustes no filtro Gerencia
;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      
;Ultima Alteracao: 28/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes ShowDialog TG_DESTINAT    
;Ultima Alteracao: 19/10/2017 por Bruno Carvalho
;Motivo Alteracao: [Aliquota de IR] substitu¡do [Volumes] na ASK "PedidoI", renomeado p/ Aliquota de IR conforme tabela de report         
;Ultima Alteracao: 20/10/2017 por Bruno Carvalho
;Motivo Alteracao: Substituido [Composicao de Dias] por [Observacao_Item] 
;Ultima Alteracao: 20/10/2017 por Bruno Carvalho
;Motivo Alteracao: Ajustes [Codigo da Marca]
;Ultima Alteracao: 12/12/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes desfazer ask com representante nÆo cadastrado

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

If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoI")
   Then ;**** Representante ****************************************************
        {Ask} TypeIn "\\Sistemas\\Cadastro\\Represen" Enter
        Moveto [Codigo do Representante] Example "crep"
        If Not IsBlank (VSDGGERENCIA)
           Then Moveto [Codigo da Gerencia     ] TypeIn "~VSDGGERENCIA"
           Else Moveto [Codigo da Gerencia     ] TypeIn "~VSDGGERENCIA.."
        EndIf
        
        ;**** PedidoC **********************************************************
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoC" Enter
        Moveto [Codigo da Empresa      ] Check
        Moveto [Nome Fantasia Empresa  ] Check
        Moveto [Numero do Pedido       ] Check Example "Pedido" TypeIn ",~VSDGPEDIDO.."
        Moveto [Numero Pedido Origem   ] Check
        If VSDGTPDATA="1"
           Then Moveto [Data de Entrega] Check
                Moveto [Data de Emissao] Check TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
           Else Moveto [Data de Entrega] Check TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
                Moveto [Data de Emissao] Check
        EndIf
        If VSDGSITUACAOPEDIDO<>"TODAS"
           Then Moveto [Situacao do Pedido] Check TypeIn "~VSDGSITUACAOPEDIDO"
           Else Moveto [Situacao do Pedido] Check
        EndIf
        Moveto [Codigo                 ] Check TypeIn "~VSDGDESTINAT.."
        Moveto [Nome Fantasia EmitDest ] Check
        Moveto [Razao Social           ] Check
        Moveto [Cidade                 ] Check
        Moveto [UF                     ] Check
        Moveto [Codigo do Representante] Example "crep" TypeIn ", ~VSDGREPRESEN.."

        ;**** PedidoI **********************************************************
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoI" Enter 
        Moveto [Numero do Pedido   ] Example "Pedido"
        Moveto [Item do Pedido     ] Check
        Moveto [Codigo do Item     ] Check Example "Item"
        Moveto [Descricao do Item  ] Check
        Moveto [Unidade Fiscal     ] Check
        Moveto [Quantidade         ] Check 
        Moveto [Quantidade Faturada] Check
        Moveto [Preco Unitario     ] Check
        Moveto [Preco Total        ] Check
        Moveto [Volumes            ] Check TypeIn "as Aliquota de IR"   
        Moveto [Taxa Desconto Total] Check
        Moveto [Observacao_Item    ] Check
        {Ask} {\\Sistemas\\Estoque\\Itens}
        Moveto [Codigo do Item     ] Example "Item"
        Moveto [Codigo da Marca    ] TypeIn "~VSDGMARCA.."        
        Do_It!
        ClearAll

        If SYS_CODIGO_CLIENTE = "0319"
            Then {Ask} {Answer} Check 
                 Moveto [Codigo do Item] Example "nitem"
                 {Ask} TypeIn "\\Sistemas\\Estoque\\Itens" Enter
                 Moveto [Codigo do Item   ] Example "nitem"
                 Moveto [Codigo Fornecedor] Check
                 Do_It!
                 ClearAll
        EndIf           

        If VSDGSITUACAOPEDIDO="ABERTO" And VSDGUTILIZAITENS="M"
           Then {Ask} {Answer} TypeIn "Fast Delete"
                Moveto [Quantidade         ] Example "quant"
                Moveto [Quantidade Faturada]  TypeIn ">= " Example "quant"
                Do_It!
                ClearAll
        EndIf
        
        Coedit "Answer"
        Scan
            [Observacao_Item]=[Numero Pedido Origem]
            If SYS_CODIGO_CLIENTE = "0319"
               Then [Codigo do Item]=[Codigo Fornecedor]    
            EndIf
        EndScan
        Do_It!
        ClearAll
        
        ;; *** Ajustando contador de Pedidos ****
        Sort "Answer" On "Numero do Pedido"
        ClearAll
        
        Edit "Answer"
        NPED="***"
        Scan
        
          If [Numero do Pedido]=NPED
             Then [Aliquota de IR]=0
             Else [Aliquota de IR]=1
                  NPED=[Numero do Pedido]
          EndIf
          
          [Preco Unitario]=[Preco Unitario]-NDecimal((([Preco Unitario]*[Taxa Desconto Total])/100),2)
          [Preco Total   ]=[Preco Total   ]-NDecimal((([Preco Total   ]*[Taxa Desconto Total])/100),2)
        
        EndScan
        Do_It!
        ClearAll
        
        If Not IsEmpty("Answer")
           Then Ajusta_Dados()
        EndIf   

EndIf

EndProc; (Seleciona)

;*******************************************************************************
;* Ajusta Dados                                                                *
;*******************************************************************************
Proc Ajusta_Dados()

{Ask} {Answer}
Moveto [Numero do Pedido      ] Example "NumP" 
Moveto [Codigo da Empresa     ] Example "CodE" 
Moveto [Nome Fantasia Empresa ] Example "NomF" 
Moveto [Data de Emissao       ] Example "DtEm" 
Moveto [Data de Entrega       ] Example "DtEnt" 
Moveto [Codigo                ] Example "CodC"
Moveto [Nome Fantasia EmitDest] Example "NomE"
Moveto [Razao Social          ] Example "RazS"
Moveto [Cidade                ] Example "Cid" 
Moveto [UF                    ] Example "Uf"
Moveto [Situacao do Pedido    ] Example "SitP"
Moveto [Numero Pedido Origem  ] Example "NumPO"
Moveto [Codigo do Item        ] Example "CodI"
Moveto [Descricao do Item     ] Example "DescI"
Moveto [Quantidade            ] Example "Qtd"
Moveto [Quantidade Faturada   ] Example "QtdF"
Moveto [Unidade Fiscal        ] Example "UnF"
Moveto [Preco Unitario        ] Example "PrUn"
Moveto [Preco Total           ] Example "PrTo"
Moveto [Aliquota de IR        ] Example "AlqIR"
{Ask} TypeIn Tabela Enter TypeIn "Fast Insert" Enter
Moveto [Numero do Pedido      ] Example "NumP" 
Moveto [Codigo da Empresa     ] Example "CodE" 
Moveto [Nome Fantasia Empresa ] Example "NomF" 
Moveto [Data de Emissao       ] Example "DtEm" 
Moveto [Data de Entrega       ] Example "DtEnt" 
Moveto [Codigo                ] Example "CodC"
Moveto [Nome Fantasia EmitDest] Example "NomE"
Moveto [Razao Social          ] Example "RazS"
Moveto [Cidade                ] Example "Cid" 
Moveto [UF                    ] Example "Uf"
Moveto [Situacao do Pedido    ] Example "SitP"
Moveto [Numero Pedido Origem  ] Example "NumPO"
Moveto [Codigo do Item        ] Example "CodI"
Moveto [Descricao do Item     ] Example "DescI"
Moveto [Quantidade            ] Example "Qtd"
Moveto [Quantidade Faturada   ] Example "QtdF"
Moveto [Unidade Fiscal        ] Example "UnF"
Moveto [Preco Unitario        ] Example "PrUn"
Moveto [Preco Total           ] Example "PrTo"
Moveto [Aliquota de IR        ] Example "AlqIR"    
Do_It!
ClearAll

EndProc ;Ajusta_Dados()

;*******************************************************************************
;* 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_SITUACAOPEDIDO": Campo="TG_PEDIDO"
            Case Campo="TG_MARCA"         : Campo="TG_SITUACAOPEDIDO"
            Case Campo="TG_DESTINAT"      : Campo="TG_MARCA"
            Case Campo="TG_REPRESEN"      : Campo="TG_DESTINAT"
            Case Campo="TG_GERENCIA"      : Campo="TG_REPRESEN"
            Case Campo="TG_TPDATA"        : Campo="TG_GERENCIA"
            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_MARCA"
                    Case Campo="TG_MARCA"           : Campo="TG_DESTINAT" 
                    Case Campo="TG_DESTINAT"        : Campo="TG_REPRESEN"
                    Case Campo="TG_REPRESEN"        : Campo="TG_GERENCIA"
                    Case Campo="TG_GERENCIA"        : Campo="TG_TPDATA"
                    Case Campo="TG_TPDATA"          :
                      VSDGTPDATA=ControlValue("TG_TPDATA")
                      If IsBlank(VSDGTPDATA)
                         Then VSDGTPDATA="1"
                      EndIf
                      
                      If VSDGTPDATA="1"
                         Then VSDGNOMTPDATA="EMISSAO"
                         Else VSDGNOMTPDATA="DATA DE ENTREGA"
                      EndIf
                      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"
  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()

If Not IsAssigned(SYS_CODIGO_CLIENTE) Then SYS_CODIGO_CLIENTE="" EndIf

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

  ShowDialog "Emiss„o Pedidos por Cliente/Representante" 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 21 Width 60

    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,00 "Marca"  For "TG_MARCA"
    Accept @ 05,01 Width 07 "A3"  Picture "#*#" Tag "TG_MARCA"    To VSDGMARCA
    Accept @ 05,09 Width 23 "A20" Picture "!*!" Tag "TG_NOMMARCA" To VSDGNOMMARCA

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

    Label  @ 08,00 "Representante"  For "TG_REPRESEN"
    Accept @ 09,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_REPRESEN" To VSDGREPRESEN
    Accept @ 09,09 Width 23 "A20" Picture "!*!" Tag "TG_NOMREPR"  To VSDGNOMREPR

    Label  @ 08,35 "Gerˆncia " For "TG_GERENCIA"
    Accept @ 09,36 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_GERENCIA" To VSDGGERENCIA
    Accept @ 09,44 Width 13 "A10"  Picture "!*!" Tag "TG_DESCGERENCIA" To VSDGDESCGERENCIA

    Label  @ 10,00 "Op‡äes de Datas" For "TG_TPDATA"
    Accept @ 11,01 Width 07 "A1"  Picture "1,2"  Tag "TG_TPDATA"     To VSDGTPDATA
    Accept @ 11,09 Width 23 "A18" Picture "!*!"  Tag "TG_NOMTPDATA" To VSDGNOMTPDATA

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

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

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

  EndDialog
  If Not RetVal Then QuitLoop EndIf
  If Not Valida_ShowDialog("") Then Loop 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())
  Copy "\\Base\\Sistemas\\Vendas\\Rm_0020" Tabela

  Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
  While Novo_Dir_Trab()
    If IsTable("Answer") Then Delete "Answer" EndIf
    Seleciona()
  EndWhile

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

  If VSDGUTILIZAITENS="O"
     Then CopyReport "\\Base\\Sistemas\\Vendas\\Rm_0020" "R" Tabela "R"
     Else CopyReport "\\Base\\Sistemas\\Vendas\\Rm_0020" "1" Tabela "R"
  EndIf

  IMPRIREL(Tabela,"R")
  Delete Tabela

EndWhile
ClearAll
Release Vars All
Release Procs All
