;** RM_0501 ********************************************************************
;*  Posicao de Pedidos                                                         *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 25/08/2011 por Anivel Augusto Rodrigues
;Ultima Alteracao: 24/10/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Novo layout e l¢gica
;Ultima Alteracao: 24/10/2016 por Bruno Carvalho 
;Motivo Alteracao: "TG_PEDIDO" e "TG_NCARREG" -> ENTER gerenciando p/ "TG_OPCOES" (n„o havia ocorrˆncia deste campo no script)
;Ultima Alteracao: 27/10/2016 por Bruno Carvalho
;Motivo Alteracao: Add Gera_Arquivo() p/ quando usu rio optar em gerar arquivo conforme impressÆo do relat¢rio (*agrupamento) -> Modelo "3","4" e "6" 
;Ultima Alteracao: 31/10/2016 por Bruno/Rafael
;Motivo Alteracao: Adicionado ModeloRelatoriosCarregaLista()
;Ultima Alteracao: 03/11/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Novo Modelo e ajustes filtro
;Ultima Alteracao: 07/11/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: AJustes Arquivo para Excel    
;Ultima Alteracao: 08/11/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustes p/ ordena‡Æo de campo Gera_Arquivo() -> Adiciona_Campo_EmOrdem()   
;Ultima Alteracao: 08/11/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Inclusao modelo 10 marca      
;Ultima Alteracao: 09/11/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes logica e filtro       
;Ultima Alteracao: 24/11/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TG_SITUACAOPEDIDO  
;Ultima Alteracao: 24/11/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TG_CODMODELO      
;Ultima Alteracao: 09/12/2016 por Rafael Matos
;Motivo Alteracao: Inclusao Modelo 11 Cliente  
;Ultima Alteracao: 14/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes filtro da destinacao
;Ultima Alteracao: 14/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;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: 14/01/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes sele‡Æo dos pedidos
;Ultima Alteracao: 26/01/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: InclusÆo filtro gerencia         
;Ultima Alteracao: 27/01/2017 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes TG_REFERENCIA
;Ultima Alteracao: 19/04/2017 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes destina‡Æo SIMPLES REMESSA
;Ultima Alteracao: 04/05/2017 por Rafael Matos
;Motivo Alteracao: Inclusao Modelo 12 Representante/Cliente  
;Ultima Alteracao: 10/05/2017 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes Contagens()        
;Ultima Alteracao: 23/06/2017 por Bruno Carvalho
;Motivo Alteracao: Adicionado PARAM_CCLIEC -> Chamado pela Ficha do Cliente (C_CLIEC)
;Ultima Alteracao: 06/07/2017 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes novo modelo 15   
;Ultima Alteracao: 07/08/2017 por Kamila Gomes
;Motivo Alteracao: Ajustes vari vel com erro (estava 'Tabela' e o correto ‚ 'TabelaAux')               
;Ultima Alteracao: 26/07/2017 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes filtro da marca  
;Ultima Alteracao: 05/10/2017 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes filtro pedidos faturados
;Ultima Alteracao: 20/10/2017 por Bruno Carvalho 
;Motivo Alteracao: Removido [Codigo da Marca] ao realizar a ASK nomeada … TabelaRIP 
;Ultima Alteracao: 26/10/2017 por Bruno Carvalho 
;Motivo Alteracao: Tratamento especial ao buscar pedidos em mˆs fechado se op‡Æo for por data de entregue 
;                  onde ser  analisado com um ano a mais e a menos de acordo com o periodo informado
;Ultima Alteracao: 18/11/2017 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes logica erro perdendo arquivo tabela temporaria
;Ultima Alteracao: 12/12/2017 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes VSDGDTFIM blank
;Ultima Alteracao: 13/12/2017 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes nova logica e qtde expedida   
;Ultima Alteracao: 30/01/2018 por Bruno Carvalho 
;Motivo Alteracao: Ausˆncia do Moveto [Situacao do Pedido] -> Seleciona_Rm0501()
;Ultima Alteracao: 22/03/2018 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes filtro data faturado, pedido por item
;Ultima Alteracao: 28/03/2018 por Bruno Carvalho 
;Motivo Alteracao: Adicionado OBS do Pedido no Modelo 12 p/ #0227#    
;Ultima Alteracao: 05/04/2018 por Bruno Carvalho 
;Motivo Alteracao: Mantido o modelo 12 p/ 0227 e criado o modelo 13 com a OBS
;Ultima Alteracao: 05/07/2018 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Ajustes otimiza‡Æo/logica  mensagens
;Ultima Alteracao: 03/09/2018 por Kamila Gomes 
;Motivo Alteracao: Ajustes otimiza‡Æo/logica  tabelaItens
;Ultima Alteracao: 18/09/2018 por Bruno Carvalho 
;Motivo Alteracao: Ajustes no modelo  "06" p/ fazer uma ASK da MARCA antes de utilizar o PegaCodigoRaiz()

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc Seleciona_PEDREL_Rm0501()
ClearAll

LimpaRodape(0)
exibeRodape(1,"Aguarde, selecionando pedidos rela‡Æo")

TabelaRPF=Cria_Temp(PrivDir())

{Ask} {\\sistemas\\estoque\\rpedidos}
Moveto [Numero do Pedido       ] Check
do_it!
ClearAll
 
Rename "Answer" TabelaRPF
Adiciona_Indice(TabelaRPF,"Numero do Pedido")

endproc

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc Seleciona_PEDFAT_Rm0501()
ClearAll

LimpaRodape(0)
exibeRodape(1,"Aguarde, selecionando pedidos faturados")

Tabelatmp=Cria_Temp(PrivDir())

Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
While Novo_Dir_Trab()
  If IsTable("Answer")     then Delete "Answer" EndIf

  If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"Notac") and
     IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"Notai") 
     then
          {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
          Moveto [Codigo da Empresa      ] Example "cemp"
          Moveto [Numero do Documento    ] Example "ndoc"
          Moveto [Serie do Documento     ] Example "sdoc"
          Moveto [Data de Emissao        ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM" 
          Moveto [Descricao da Destinacao] TypeIn "..VEND.. Or ..SAIDA.. Or ..SERV.. or ..REMESSA.."
          Moveto [Tipo Movimento Estoque ] TypeIn "S"
          Moveto [Situacao               ] TypeIn "Not C"
          Moveto [Numero do Pedido       ] TypeIn "Not Blank"
          {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI" Enter
          Moveto [Codigo da Empresa      ] Example "cemp"
          Moveto [Numero do Documento    ] Example "ndoc"
          Moveto [Serie do Documento     ] Example "sdoc"
          Moveto [Numero Pedido_Orcamento] Check typein "as Numero do Pedido"
          do_it!
          ClearAll
            
          If IsTable(Tabelatmp)
             Then Add "Answer" Tabelatmp
             Else Rename "Answer" Tabelatmp
          EndIf
  endif
EndWhile

{Ask} TypeIn Tabelatmp Enter 
Moveto [Numero do Pedido       ] check
do_it!
ClearAll

Delete Tabelatmp

TabelaRPF=Cria_Temp(PrivDir())
Rename "Answer" TabelaRPF
Adiciona_Indice(TabelaRPF,"Numero do Pedido")

endproc

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc Seleciona_Rm0501()    
ClearAll

If not IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoC") or
   not IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoI")
   then return
endif   

LimpaRodape(0)
exibeRodape(1,"Aguarde, selecionando pedidos "+Dir_Trab+" 1/4")

if VSDGOPDTPEEIRF="4" or VSDGOPDTPEEIRF="5"
   then 
        {Ask} TypeIn TabelaRPF Enter 
        Moveto [Numero do Pedido       ] TypeIn "_nped"
endif   

{Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoC" Enter
if VSDGOPDTPEEIRF="4" or VSDGOPDTPEEIRF="5"
   then Moveto [Numero do Pedido       ] Check TypeIn "_nped, ~VSDGPEDIDO.."
   else Moveto [Numero do Pedido       ] Check TypeIn        "~VSDGPEDIDO.."
endif   
Moveto [Codigo da Empresa      ]       TypeIn "~VSDGEMPRESA.."
Moveto [Codigo                 ]       TypeIn "~VSDGDESTINAT.."
Moveto [Cidade                 ]       TypeIn CIDADE
Moveto [Codigo do Representante] Check TypeIn "~VSDGREPRESEN.."
Moveto [Codigo da Destinacao   ] Check
Moveto [Numero_Carregamento    ]       TypeIn "~VSDGNCARREG.."
Moveto [Situacao do Pedido     ]
switch
  case VSDGSITUACAOPEDIDO="JUNTAR ABERTO+SUSPENSO"     : TypeIn "ABERTO or SUSPENSO"
  case VSDGSITUACAOPEDIDO="IGNORAR CANCELADO+SUSPENSO" : TypeIn "not CANCELADO, not SUSPENSO"
  case VSDGSITUACAOPEDIDO="IGNORAR CANCELADO"          : TypeIn "not CANCELADO"
  case VSDGSITUACAOPEDIDO<>"TODAS"                     : TypeIn "~VSDGSITUACAOPEDIDO.."
endswitch

If IsBlank(VSDGPEDIDO) And
   IsBlank(VSDGNCARREG)
   Then 
        if VSDGOPDTPEEIRF="1" Then Moveto [Data de Entrega ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM" endif
        If VSDGOPDTPEEIRF="2" Then Moveto [Data de Emissao ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM" endif
        if VSDGOPDTPEEIRF="3" Then Moveto [Data_Inclusao   ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM" endif

        Moveto [Descricao da Destinacao] TypeIn "..VEND.. Or ..SAIDA.. Or ..SERV.. or ..REMESSA.."
EndIf   
Do_It!
ClearAll

if isempty("Answer")
   then return
endif   

{Ask} TypeIn "\\Sistemas\\Cadastro\\Represen" Enter
Moveto [Codigo do Representante] Example "crep"
Moveto [Codigo da Gerencia     ] TypeIn "~VSDGGERENCIA.."

{Ask} {\\Sistemas\\Vendas\\Destin}
Moveto [Codigo da Destinacao  ] Example "cd"
Moveto [Tipo Movimento Estoque] TypeIn "S"
Moveto [Atualiza Pedidos      ] TypeIn "S"
        
{Ask} {Answer} 
Moveto [Numero do Pedido       ] Check 
Moveto [Codigo do Representante] Example "crep"
Moveto [Codigo da Destinacao   ] Example "cd"
Do_It!
ClearAll

if isempty("Answer")
   then return
endif   

TabelaRP=Cria_Temp(PrivDir())
Rename "Answer" TabelaRP
Adiciona_Indice(TabelaRP,"Numero do Pedido")
ClearAll

;-------------------------------------------------------------------------------
LimpaRodape(0)
exibeRodape(1,"Aguarde, selecionando pedidos "+Dir_Trab+" 2/4")

{Ask} TypeIn TabelaRP Enter 
Moveto [Numero do Pedido       ]       Example "Pedido"
{Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoI" Enter
Moveto [Numero do Pedido       ] Check Example "Pedido"
Moveto [Item do Pedido         ] Check
Moveto [Codigo do Item         ] Check Example "item" TypeIn ", ~VSDGITEM.."
Moveto [Tipo do Item           ] Check 
Moveto [Quantidade             ] Check
Moveto [Quantidade Faturada    ] Check TypeIn "As \"Qtde_Faturada\""
Moveto [Preco Unitario         ] Check
Moveto [Preco Total            ] Check
Moveto [Valor Desconto Total   ] Check
Moveto [Peso Liquido           ] Check
Do_It!
ClearAll

;-------------------------------------------------------------------------------
LimpaRodape(0)
exibeRodape(1,"Aguarde, selecionando pedidos "+Dir_Trab+" 3/4")

{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item         ] Example "item"
Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."
Moveto [Codigo do Grupo        ] TypeIn "~VSDGGRP.."
Moveto [Codigo da Marca        ] TypeIn "~VSDGMARCA.."
Moveto [Referencia             ] TypeIn "~VSDGREFERENCIA.."
{Ask} {Answer} Check
Moveto [Codigo do Item         ] Example "item"
Do_It!
ClearAll

if isempty("Answer")
   then return
endif   

TabelaRIP=Cria_Temp(PrivDir())
Copy "Answer" TabelaRIP

;-------------------------------------------------------------------------------
LimpaRodape(0)
exibeRodape(1,"Aguarde, selecionando pedidos "+Dir_Trab+" 4/4")

if primeiravez
   then TabelaAux=Cria_Temp(PrivDir())
endif        
If IsTable(TabelaAux)
   Then Add "Answer" TabelaAux
   Else Rename "Answer" TabelaAux
EndIf
ClearAll

{Ask} TypeIn TabelaRIP Enter 
Moveto [Numero do Pedido       ] Check
Do_It!
ClearAll

Empty(TabelaRP)
Add "Answer" TabelaRP
ClearAll

{Ask} TypeIn TabelaRP Enter 
Moveto [Numero do Pedido       ]       TypeIn "_nped"
{Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"PedidoC" Enter
Moveto [Numero do Pedido       ] Check TypeIn "_nped"
Moveto [Codigo da Empresa      ] Check 
Moveto [Nome Fantasia Empresa  ] Check
Moveto [Data de Emissao        ] Check
Moveto [Data de Entrega        ] Check
Moveto [Codigo                 ] Check 
Moveto [Razao Social           ] Check
Moveto [UF                     ] Check
Moveto [Cidade                 ] Check 
Moveto [Codigo do Representante] Check 
Moveto [Nome Fantasia Represent] Check
Moveto [Numero_Carregamento    ] Check
If SYS_CODIGO_CLIENTE = "0227" And VSDGCODMODELO="13" 
    Then Moveto [Observacao do Pedido] Check
EndIf    
Moveto [Situacao do Pedido     ] Check
Moveto [Condicao de Pagamento  ] Check
Moveto [Descricao CondPagto    ] Check
Moveto [Numero Pedido Origem   ] Check
Do_It!
ClearAll

if primeiravez
   then TabelaPED=Cria_Temp(PrivDir())
endif        
If IsTable(TabelaPED)
   Then Add "Answer" TabelaPED
   Else Rename "Answer" TabelaPED
EndIf
ClearAll

primeiravez=false

EndProc

;*******************************************************************************
;* Rotina p/ Selecionar e Order Registros                                      *
;*******************************************************************************
Proc Seleciona_EXPED_Rm0501()
private dtmin

ClearAll

LimpaRodape(0)
exibeRodape(1,"Aguarde, selecionando expedi‡Æo")

{Ask} TypeIn TabelaPED Enter 
Moveto [Data de Emissao        ] typein "Calc min as Data"
do_it!

Moveto "Answer"
dtmin=[Answer->Data]
ClearAll

Tabelatmp=Cria_Temp(PrivDir())

Monta_Dir_Trab(dtmin,today())
While Novo_Dir_Trab()
  If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"Expedc") 
     then
          {Ask} TypeIn TabelaPED Enter 
          Moveto [Numero do Pedido       ]       Example "Pedido"
          {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"ExpedC" Enter
          Moveto [Numero da OE           ]       Example "exped"
          Moveto [Numero do Pedido       ] Check Example "Pedido"
          Moveto [Situacao da OE         ] Check 
          {Ask} Typein "\\Sistemas\\Vendas\\"+Dir_Trab+"ExpedI" Enter
          Moveto [Numero da OE           ]       Example "exped"
          Moveto [Codigo do Item         ] Check 
          Moveto [Tipo do Item           ] Check 
          Moveto [Quantidade_Expedida    ]       TypeIn "Calc Sum As \"Qtde_Expedida\""
          Do_It!
          ClearAll

          {Ask} {\\Sistemas\\Estoque\\Itens}
          Moveto [Codigo do Item         ] Example "item"
          Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."
          Moveto [Codigo do Grupo        ] TypeIn "~VSDGGRP.."
          Moveto [Codigo da Marca        ] TypeIn "~VSDGMARCA.."
          Moveto [Referencia             ] TypeIn "~VSDGREFERENCIA.."
          {Ask} {Answer} Check
          Moveto [Codigo do Item         ] Example "item"
          Do_It!
          ClearAll

          If IsTable(Tabelatmp)
             Then Add "Answer" Tabelatmp
             Else Rename "Answer" Tabelatmp
          EndIf
  endif
EndWhile

{Ask} TypeIn Tabelatmp Enter 
Moveto [Numero do Pedido       ] check
Moveto [Codigo do Item         ] check
Moveto [Situacao da OE         ] Check 
Moveto [Qtde_Expedida          ]       TypeIn "Calc Sum As \"Qtde_Expedida\""
do_it!
ClearAll

Delete Tabelatmp

TabelaRE=Cria_Temp(PrivDir())
Rename "Answer" TabelaRE
Adiciona_Indice(TabelaRE,"Numero do Pedido,Codigo do Item,Situacao da OE")
ClearAll

{Ask} TypeIn TabelaRE Enter typein "Fast Delete"
moveto [Qtde_Expedida] typein "blank or 0"
Do_It!
ClearAll

endproc

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc AjustaDados_Rm0501()
private wi, fazersortido

Seleciona_EXPED_Rm0501()  

LimpaRodape(0)
exibeRodape(1,"Aguarde ajustando dados 1/4")

Adiciona_Campo(TabelaAux,"Qtde_Expedida(N),Qtde_EmExpedicao(N)")   
Adiciona_Indice(TabelaAux,"Numero do Pedido,Codigo do Item,Item do Pedido")

fazersortido=false
If SYS_CODIGO_CLIENTE="0222" Or
   SYS_CODIGO_CLIENTE="0232" Or
	 SYS_CODIGO_CLIENTE="0079"
   Then fazersortido=true
endif   

while true    

    {Ask} TypeIn TabelaRE Enter 
    Moveto [Numero do Pedido       ] typein "_nped"
    Moveto [Codigo do Item         ] typein "_cite"
    moveto [Situacao da OE         ] typein "FATURADO" 
    moveto [Qtde_Expedida          ] typein "_qexp"
    {Ask} TypeIn TabelaAux Enter 
    Moveto [Numero do Pedido       ] typein "_nped"
    Moveto [Codigo do Item         ] typein "_cite"
    moveto [Qtde_Expedida          ] typein "_auxqexp, changeto _auxqexp+_qexp"
    do_it!
    ClearAll

    {Ask} TypeIn TabelaRE Enter 
    Moveto [Numero do Pedido       ] typein "_nped"
    Moveto [Codigo do Item         ] typein "_cite"
    moveto [Situacao da OE         ] typein "not FATURADO" 
    moveto [Qtde_Expedida          ] typein "_qexp"
    {Ask} TypeIn TabelaAux Enter 
    Moveto [Numero do Pedido       ] typein "_nped"
    Moveto [Codigo do Item         ] typein "_cite"
    moveto [Qtde_EmExpedicao       ] typein "_auxqexp, changeto _auxqexp+_qexp"
    do_it!
    ClearAll

    {Ask} TypeIn TabelaAux Enter 
    Moveto [Numero do Pedido       ] typein "_nped"
    Moveto [Codigo do Item         ] typein "_cite"
    {Ask} TypeIn TabelaRE Enter typein "Fast Delete"
    Moveto [Numero do Pedido       ] typein "_nped"
    Moveto [Codigo do Item         ] typein "_cite"
    do_it!
    ClearAll

    If fazersortido
       Then
            NR=NRecords(TabelaRE)
                     
            View NoWindow TabelaRE 
            EditKey
            scan for [Numero do Pedido]<>""
              Barra(NR, RecNo())
              Aguarde("Aguarde, processando expedi‡Æo sortidos "+BARRA_STRING)
            
              item=[Codigo do Item]
              Switch
                Case SYS_CODIGO_CLIENTE="0222":
  								Item=SubStr([Codigo do Item],1,7)+"9"+
  										 SubStr([Codigo do Item],9,2)

                Case SYS_CODIGO_CLIENTE="0232":
  								Item=SubStr([Codigo do Item],1,8)+"9"+
  										 SubStr([Codigo do Item],10,1)																			 

  							Case SYS_CODIGO_CLIENTE="0079":
  								Item=SubStr([Codigo do Item],1,6)+"99"+
  										 SubStr([Codigo do Item],9,2)

              EndSwitch
              [Codigo do Item]=item
              
            endscan
            do_it!
            clearAll  
            
            fazersortido=false
            loop
    EndIf

    if not isempty(TabelaRE)
       then 
            {Ask} TypeIn TabelaRE Enter 
            Moveto [Numero do Pedido       ] typein "_nped"
            Moveto [Codigo do Item         ] typein "_cite"
            moveto [Situacao da OE         ] typein "FATURADO" 
            moveto [Qtde_Expedida          ] typein "_qexp"
            {Ask} TypeIn TabelaAux Enter typein "Fast Insert" 
            Moveto [Numero do Pedido       ] typein "_nped"
            Moveto [Codigo do Item         ] typein "_cite"
            moveto [Qtde_Expedida          ] typein "_qexp"
            do_it!
            ClearAll

            {Ask} TypeIn TabelaRE Enter 
            Moveto [Numero do Pedido       ] typein "_nped"
            Moveto [Codigo do Item         ] typein "_cite"
            moveto [Situacao da OE         ] typein "not FATURADO" 
            moveto [Qtde_Expedida          ] typein "_qexp"
            {Ask} TypeIn TabelaAux Enter 
            Moveto [Numero do Pedido       ] typein "_nped"
            Moveto [Codigo do Item         ] typein "_cite"
            moveto [Qtde_EmExpedicao       ] typein "_qexp"
            do_it!
            ClearAll

    endif   

    quitloop

endwhile

LimpaRodape(0)
exibeRodape(1,"Aguarde ajustando dados 2/4")

If SYS_CLIENTE_CONFEC<>"" and VSDGCODMODELO="06"
   then      
        NR=NRecords(TabelaAux)

        {Ask} TypeIn TabelaAux Enter Check
        Moveto [Codigo do Item         ]       TypeIn "_citem!"
        {Ask} {\\Sistemas\\Estoque\\Itens}
        Moveto [Codigo do Item         ]       TypeIn "_citem!"
        Moveto [Codigo da Marca        ] Check
        Moveto [Descricao da Marca     ] Check
        Do_it!
        ClearAll
        Rename "Answer" TabelaAux
    
        View NoWindow TabelaAux
        EditKey
        Scan For [Tipo do Item]="P"
          Barra(NR, RecNo())
          Aguarde("Aguarde, agrupando itens "+BARRA_STRING)
          
          [Codigo do Item]=PegaCodigoRaiz([Codigo do Item])
        EndScan
        Do_It!
        ClearAll
EndIf   

{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item         ] Check 
Moveto [Descricao do Item      ] Check
Moveto [Unidade Fiscal         ] Check
Moveto [Referencia             ] Check 
If SYS_CLIENTE_CONFEC<>"" And VSDGCODMODELO="06"
   Then 
   Else Moveto [Codigo da Marca   ] Check 
        Moveto [Descricao da Marca] Check
EndIf         
Do_It!
ClearAll

TabelaItens=Cria_Temp(PrivDir())
 
Rename "Answer" TabelaItens
Adiciona_Indice(TabelaItens,"Codigo do Item")

{Ask} typein TabelaAux Enter Check
Moveto [Codigo do Item         ]       Example "item"
{Ask} typein TabelaItens Enter 
Moveto [Codigo do Item         ]       Example "item"
Moveto [Descricao do Item      ] Check
Moveto [Unidade Fiscal         ] Check
Moveto [Referencia             ] Check
If SYS_CLIENTE_CONFEC<>"" And VSDGCODMODELO="06"
   Then 
   Else Moveto [Codigo da Marca   ] Check 
        Moveto [Descricao da Marca] Check
EndIf   
Do_It!
ClearAll

Delete TabelaItens
;-------------------------------------------------------------------------------
LimpaRodape(0)
exibeRodape(1,"Aguarde ajustando dados 3/4")

{Ask} {Answer} typein "Fast"
Moveto [Quantidade             ]       TypeIn "_qtd"
Moveto [Preco Total            ]       TypeIn "_prt"
Moveto [Valor Desconto Total   ]       TypeIn "_vdt"
Moveto [Preco Unitario         ]       TypeIn "changeto (_prt-_vdt)/_qtd"
Do_It!
ClearAll

{Ask} {Answer} typein "Fast"
Moveto [Preco Total            ]       TypeIn "_prt, changeto (_prt-_vdt)"
Moveto [Valor Desconto Total   ]       TypeIn "_vdt"
Do_It!
ClearAll

{Ask} {Answer} Check
Moveto [Quantidade             ]       TypeIn "_qtd"
Moveto [Qtde_Faturada          ]       TypeIn "_qtdaf, calc (_qtd-_qtdaf) As \"Qtde_AFaturar\""
Do_It!
ClearAll

{Ask} {Answer} Check
Moveto [Preco Unitario         ]       TypeIn "_pru"
Moveto [Qtde_Faturada          ]       TypeIn "_qtdf, calc (_qtdf*_pru) As \"Preco Total_Faturado\""
Do_It!
ClearAll

{Ask} {Answer} Check
Moveto [Preco Unitario         ]       TypeIn "_pru"
Moveto [Qtde_AFaturar          ]       TypeIn "_qtdaf, calc (_qtdaf*_pru) As \"Preco Total_AFaturar\""
Do_It!
ClearAll

{Ask} {Answer} Check
Moveto [Qtde_Faturada          ]       TypeIn "_qtdf"
Moveto [Peso Liquido           ]       TypeIn "_pslf, calc (_qtdf-_pslf) As \"Peso_Liquido_Faturado\""
Do_It!
ClearAll

{Ask} {Answer} Check
Moveto [Qtde_AFaturar          ]       TypeIn "_qtdaf"
Moveto [Peso Liquido           ]       TypeIn "_pslf, calc (_qtdaf-_pslf) As \"Peso_Liquido_AFaturar\""
Do_It!
ClearAll

{Ask} {Answer} typein "Fast"
Moveto [Qtde_AFaturar          ]       TypeIn "<=0"
Moveto [Preco Total_AFaturar   ]       TypeIn      "Changeto blank"
Moveto [Peso_Liquido_AFaturar  ]       TypeIn      "Changeto blank"
down

Moveto [Qtde_Faturada          ]       TypeIn " =0, Changeto blank"
down

Moveto [Qtde_Faturada          ]       TypeIn "<=0"
Moveto [Preco Total_Faturado   ]       TypeIn      "Changeto blank"
Moveto [Peso_Liquido_Faturado  ]       TypeIn      "Changeto blank"
down

Moveto [Qtde_AFaturar          ]       TypeIn " =0, Changeto blank"
Moveto [Preco Total_AFaturar   ]       TypeIn      "Changeto blank"
Moveto [Peso_Liquido_AFaturar  ]       TypeIn      "Changeto blank"
down

Moveto [Peso_Liquido_Faturado  ]       TypeIn "<=0, Changeto blank"
Moveto [Peso_Liquido_AFaturar  ]       TypeIn "<=0, Changeto blank"
Do_It!
ClearAll

;-------------------------------------------------------------------------------
LimpaRodape(0)
exibeRodape(1,"Aguarde ajustando dados 4/4")

{Ask} TypeIn TabelaPED Enter Check 
Moveto [Numero do Pedido       ]       Example "Pedido"
{Ask} {Answer} Check 
Moveto [Numero do Pedido       ] Check Example "Pedido" 
Do_It!
ClearAll

If VSDGSITUACAOPEDIDO<>"SUSPENSO"  And
   VSDGSITUACAOPEDIDO<>"CANCELADO" And
   VSDGSITUACAOPEDIDO<>"FATURADO"
   Then
        {Ask} {Answer} typein "Fast"
        Moveto [Situacao do Pedido     ] TypeIn "CANCELADO or FATURADO"
        Moveto [Qtde_AFaturar          ] TypeIn "Changeto blank"
        Moveto [Preco Total_AFaturar   ] TypeIn "Changeto blank"
        Moveto [Peso_Liquido_AFaturar  ] TypeIn "Changeto blank"
        Do_It!
        ClearAll
endif

Delete TabelaAux

TabelaAux = Cria_Temp(PrivDir())
Rename "Answer" TabelaAux
ClearAll

If SYS_CODIGO_CLIENTE = "0227" And VSDGCODMODELO="13" 
    Then ;NÆo ‚ poss¡vel fazer por ASK, pois mesmo alterando o campo para A255, talvez a descri‡Æo ultrapasse estes 255 caracteres
         ;e caso realziar este ajuste na tabela para entÆo a ASK ser processada, a OBS poderia nÆo vir completa, o que torna invi vel 
         
         NR=NRecords(TabelaPED)
         
         View NoWindow TabelaAux
         View NoWindow TabelaPED
         Editkey             
         Scan For [Observacao do Pedido]<>""
           Barra(NR, RecNo())
           Aguarde("Aguarde, adicionando a observa‡„o "+BARRA_STRING)
           
           PEDIDO = [Numero do Pedido]
           OBS    = Rtrim([Observacao do Pedido])
           If OBS="" Then Loop EndIf
           Moveto TabelaAux
           Moveto [Numero do Pedido]
           Locate PEDIDO
           If RetVal
              Then While [Numero do Pedido] = PEDIDO 
                     [Observacao do Pedido] = OBS
                     Skip
                     If Eot() Then QuitLoop EndIf
                   EndWhile  
           EndIf   
           Moveto TabelaPED 
         EndScan   
         Do_it!
         ClearAll
EndIf

endproc

;*******************************************************************************
;* Rotina para contegens de pedidos e clientes                                 *
;*******************************************************************************
Proc Contagens_Rm0501()
private vrold

LimpaRodape(0)
Aguarde("Aguarde, totalizando ")

{Modify} {Restructure} TypeIn TabelaAux Enter
end Down Moveto [Field Name] TypeIn "NumeroDePedidos"  Right "S"
end Down Moveto [Field Name] TypeIn "NumeroDeClientes" Right "S"
Do_It! 
ClearAll

NR=NRecords(TabelaAux)

Sort TabelaAux On "Numero do Pedido" clearAll

vrold="????"
View NoWindow TabelaAux
EditKey
scan
  Barra(NR, RecNo())
  Aguarde("Aguarde, totalizando n§ pedidos "+BARRA_STRING)

  if [Numero do Pedido]<>vrold
     then vrold=[Numero do Pedido]
          [NumeroDePedidos ]=1
  endif        
endscan
do_It!
ClearAll


Sort TabelaAux On "Codigo" clearall

vrold="????"
View NoWindow TabelaAux
EditKey
scan
  Barra(NR, RecNo())
  Aguarde("Aguarde, totalizando n§ clientes "+BARRA_STRING)

  if [Codigo          ]<>vrold
     then vrold=[Codigo          ]
          [NumeroDeClientes]=1
  endif        
endscan
do_It!
ClearAll

EndProc

;*******************************************************************************
;* Organiza Registro p/ Exibir em Arquivo                                      *
;*******************************************************************************
Proc Gera_Arquivo_Rm0501()
             
Switch
  Case VSDGCODMODELO="03" Or  
       VSDGCODMODELO="07" Or
       VSDGCODMODELO="11"  :
        
       {Ask} TypeIn TabelaAux Enter 
       Moveto [Numero do Pedido       ] Check 
       Moveto [Codigo da Empresa      ] Check 
       Moveto [Nome Fantasia Empresa  ] Check
       Moveto [Data de Emissao        ] Check
       Moveto [Data de Entrega        ] Check
       Moveto [Codigo                 ] Check 
       Moveto [Razao Social           ] Check
       Moveto [UF                     ] Check
       Moveto [Cidade                 ] Check 
       Moveto [Codigo do Representante] Check
       Moveto [Nome Fantasia Represent] Check
       Moveto [Condicao de Pagamento  ] Check
       Moveto [Descricao CondPagto    ] Check
       Moveto [Numero_Carregamento    ] Check 
       Moveto [Numero Pedido Origem   ] Check
       Moveto [Situacao do Pedido     ] Check
       Moveto [Quantidade             ] TypeIn "Calc Sum as \"Pedido_Quantidade\""  
       Moveto [Preco Total            ] TypeIn "Calc Sum as \"Pedido_PrecoTotal\""     
       Moveto [Qtde_Faturada          ] TypeIn "Calc Sum as \"Faturado_Quantidade\"" 
       Moveto [Preco Total_Faturado   ] TypeIn "Calc Sum as \"Faturado_PrecoTotal\""  
       Moveto [Qtde_AFaturar          ] TypeIn "Calc Sum as \"AFaturar_Quantidade\""  
       Moveto [Preco Total_AFaturar   ] TypeIn "Calc Sum as \"AFaturar_PrecoTotal\""  
       Moveto [Qtde_Expedida          ] TypeIn "Calc Sum as \"Expedido_Quantidade\""  
       Moveto [Qtde_EmExpedicao       ] TypeIn "Calc Sum as \"EmExpedicao_Quantidade\""  
       Do_iT!
       ClearAll
       
       {Ask} {Answer} Check          
       Moveto [Pedido_Quantidade      ] typein "_qtd"
       Moveto [Faturado_Quantidade    ] typein "_qtdf, calc ((_qtdf/_qtd)*100) as Concluido"
       Do_iT!
       ClearAll
       
       Adiciona_Campo_EmOrdem("Answer","Codigo da Empresa(A4),"+      
                                       "Nome Fantasia Empresa(A20),"+
                                       "Numero do Pedido(A6),"+       
                                       "Data de Entrega(D),"+
                                       "Data de Emissao(D),"+
                                       "Codigo(A4),"+                  
                                       "Razao Social(A40),"+
                                       "UF(A2),"+                     
                                       "Cidade(A20),"+                 
                                       "Codigo do Representante(A4),"+
                                       "Nome Fantasia Represent(A20),"+
                                       "Condicao de Pagamento(A2),"+  
                                       "Descricao CondPagto(A20),"+    
                                       "Numero_Carregamento(A6),"+    
                                       "Numero Pedido Origem(A15),"+   
                                       "Situacao do Pedido(A10),"+     
                                       "Pedido_Quantidade(N),"+      
                                       "Pedido_PrecoTotal($),"+         
                                       "Faturado_Quantidade(N),"+   
                                       "Faturado_PrecoTotal($),"+    
                                       "AFaturar_Quantidade(N),"+   
                                       "AFaturar_PrecoTotal($),"+   
                                       "Expedido_Quantidade(N),"+   
                                       "EmExpedicao_Quantidade(N),"+                       
                                       "Concluido(N)")
                                       
       Delete TabelaAux
       Rename "Answer" TabelaAux                                                       
       
  Case VSDGCODMODELO="04"  Or
       VSDGCODMODELO="06":

       {Ask} TypeIn TabelaAux Enter 
       Moveto [Codigo da Empresa      ] Check 
       Moveto [Nome Fantasia Empresa  ] Check
       Moveto [Codigo do Item         ] Check
       Moveto [Descricao do Item      ] Check
       Moveto [Unidade Fiscal         ] Check
       Moveto [Referencia             ] Check 
       Moveto [Codigo da Marca        ] check 
       Moveto [Descricao da Marca     ] check 
       Moveto [Quantidade             ] TypeIn "Calc Sum as \"Pedido_Quantidade\""  
       Moveto [Preco Total            ] TypeIn "Calc Sum as \"Pedido_PrecoTotal\""     
       Moveto [Qtde_Faturada          ] TypeIn "Calc Sum as \"Faturado_Quantidade\"" 
       Moveto [Preco Total_Faturado   ] TypeIn "Calc Sum as \"Faturado_PrecoTotal\""  
       Moveto [Qtde_AFaturar          ] TypeIn "Calc Sum as \"AFaturar_Quantidade\""  
       Moveto [Preco Total_AFaturar   ] TypeIn "Calc Sum as \"AFaturar_PrecoTotal\""  
       Moveto [Qtde_Expedida          ] TypeIn "Calc Sum as \"Expedido_Quantidade\""  
       Moveto [Qtde_EmExpedicao       ] TypeIn "Calc Sum as \"EmExpedicao_Quantidade\""  
       Do_iT!
       ClearAll
       
       {Ask} {Answer} Check          
       Moveto [Pedido_Quantidade      ] typein "_qtd"
       Moveto [Faturado_Quantidade    ] typein "_qtdf, calc ((_qtdf/_qtd)*100) as Concluido"
       Do_iT!
       ClearAll               
                                       
       Adiciona_Campo_EmOrdem("Answer","Codigo da Empresa(A4),"+      
                                       "Nome Fantasia Empresa(A20),"+  
                                       "Codigo do Item(A10),"+         
                                       "Descricao do Item(A30),"+
                                       "Unidade Fiscal(A4),"+         
                                       "Referencia(A20),"+   
                                       "Codigo da Marca(A3),"+   
                                       "Descricao da Marca(A20),"+   
                                       "Pedido_Quantidade(N),"+      
                                       "Pedido_PrecoTotal($),"+         
                                       "Faturado_Quantidade(N),"+     
                                       "Faturado_PrecoTotal($),"+      
                                       "AFaturar_Quantidade(N),"+      
                                       "AFaturar_PrecoTotal($),"+      
                                       "Expedido_Quantidade(N),"+      
                                       "EmExpedicao_Quantidade(N),"+                       
                                       "Concluido(N)")                       
                                       
       Delete TabelaAux
       Rename "Answer" TabelaAux                                                      
       
  Case VSDGCODMODELO="10":    
        
       {Ask} TypeIn TabelaAux Enter 
       Moveto [Numero do Pedido       ] Check 
       Moveto [Codigo da Empresa      ] Check 
       Moveto [Nome Fantasia Empresa  ] Check
       Moveto [Data de Emissao        ] Check
       Moveto [Data de Entrega        ] Check
       Moveto [Codigo                 ] Check 
       Moveto [Razao Social           ] Check
       Moveto [UF                     ] Check
       Moveto [Cidade                 ] Check 
       Moveto [Codigo do Representante] Check
       Moveto [Nome Fantasia Represent] Check
       Moveto [Condicao de Pagamento  ] Check
       Moveto [Descricao CondPagto    ] Check
       Moveto [Numero_Carregamento    ] Check 
       Moveto [Numero Pedido Origem   ] Check
       Moveto [Situacao do Pedido     ] Check
       Moveto [Codigo da Marca        ] check 
       Moveto [Descricao da Marca     ] check 
       Moveto [Quantidade             ] TypeIn "Calc Sum as \"Pedido_Quantidade\""  
       Moveto [Preco Total            ] TypeIn "Calc Sum as \"Pedido_PrecoTotal\""     
       Moveto [Qtde_Faturada          ] TypeIn "Calc Sum as \"Faturado_Quantidade\"" 
       Moveto [Preco Total_Faturado   ] TypeIn "Calc Sum as \"Faturado_PrecoTotal\""  
       Moveto [Qtde_AFaturar          ] TypeIn "Calc Sum as \"AFaturar_Quantidade\""  
       Moveto [Preco Total_AFaturar   ] TypeIn "Calc Sum as \"AFaturar_PrecoTotal\""  
       Moveto [Qtde_Expedida          ] TypeIn "Calc Sum as \"Expedido_Quantidade\""  
       Moveto [Qtde_EmExpedicao       ] TypeIn "Calc Sum as \"EmExpedicao_Quantidade\""  
       Do_iT!
       ClearAll
       
       {Ask} {Answer} Check          
       Moveto [Pedido_Quantidade      ] typein "_qtd"
       Moveto [Faturado_Quantidade    ] typein "_qtdf, calc ((_qtdf/_qtd)*100) as Concluido"
       Do_iT!
       ClearAll
       
       Adiciona_Campo_EmOrdem("Answer","Codigo da Empresa(A4),"+      
                                       "Nome Fantasia Empresa(A20),"+
                                       "Numero do Pedido(A6),"+       
                                       "Data de Entrega(D),"+
                                       "Data de Emissao(D),"+
                                       "Codigo(A4),"+                  
                                       "Razao Social(A40),"+
                                       "UF(A2),"+                     
                                       "Cidade(A20),"+                 
                                       "Codigo do Representante(A4),"+
                                       "Nome Fantasia Represent(A20),"+
                                       "Condicao de Pagamento(A2),"+  
                                       "Descricao CondPagto(A20),"+    
                                       "Numero_Carregamento(A6),"+    
                                       "Numero Pedido Origem(A15),"+   
                                       "Situacao do Pedido(A10),"+
                                       "Codigo da Marca(A3),"+   
                                       "Descricao da Marca(A20),"+   
                                       "Pedido_Quantidade(N),"+      
                                       "Pedido_PrecoTotal($),"+         
                                       "Faturado_Quantidade(N),"+   
                                       "Faturado_PrecoTotal($),"+    
                                       "AFaturar_Quantidade(N),"+   
                                       "AFaturar_PrecoTotal($),"+   
                                       "Expedido_Quantidade(N),"+   
                                       "EmExpedicao_Quantidade(N),"+                       
                                       "Concluido(N)")
                                       
       Delete TabelaAux
       Rename "Answer" TabelaAux                                                      
       
EndSwitch       
       
EndProc ;Gera_Arquivo_Rm0501()

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog_Rm0501(Disparo,Campo,Evento,Elemento)
Temp=True
MSG_CAMPO=""
TECLA=""

If Disparo="OPEN"  
   Then AoCriarShowDialog()
        TiraSombraShowDialog()
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_PEDIDO"         : Campo="TG_EMPRESA"
            Case Campo="TG_NCARREG"        : Campo="TG_PEDIDO"
            Case Campo="TG_DESTINAT"       : Campo="TG_NCARREG"
            Case Campo="TG_CIDADE"         : If PARAM_CCLIEC
                                                Then Campo="TG_NCARREG"
                                                Else Campo="TG_DESTINAT"
                                             EndIf
            Case Campo="TG_GERENCIA"       : Campo="TG_CIDADE"   
            Case Campo="TG_REPRESEN"       : Campo="TG_GERENCIA"   
            Case Campo="TG_OPDTPEEIRF"      : Campo="TG_REPRESEN"
            Case Campo="TG_DTINI"          : Campo="TG_OPDTPEEIRF"
            Case Campo="TG_DTFIM"          : Campo="TG_DTINI"

            Case Campo="TG_MARCA"          : Campo="TG_PEDIDO"
            Case Campo="TG_FAMI"           : Campo="TG_MARCA" 
            Case Campo="TG_GRP"            : Campo="TG_FAMI" 
            Case Campo="TG_ITEM"           : Campo="TG_GRP"
            Case Campo="TG_REFERENCIA"     : Campo="TG_ITEM"
            Case Campo="TG_SITUACAOPEDIDO" : Campo="TG_REFERENCIA"
            Case Campo="TG_CODMODELO"      : Campo="TG_SITUACAOPEDIDO"  
            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_PEDIDO"
                    Case Campo="TG_PEDIDO"      : 
                      If Not IsBlank(VSDGPEDIDO)
                         Then Campo="TG_MARCA"


                              VSDGNCARREG=""
                              CIDADE     =""
                              VSDGDTINI  =BlankDate()
                              VSDGDTFIM  =BlankDate()
                         Else Campo="TG_NCARREG"
                      EndIf   
                    Case Campo="TG_NCARREG"     :
                      If Not IsBlank(VSDGNCARREG)
                         Then Campo="TG_MARCA"
                         
                              VSDGPEDIDO=""
                              CIDADE     =""
                              VSDGDTINI  =BlankDate()
                              VSDGDTFIM  =BlankDate()
                         Else If PARAM_CCLIEC
                                 Then Campo="TG_CIDADE"
                                 Else Campo="TG_DESTINAT"
                              EndIf                      EndIf   
                    Case Campo="TG_DESTINAT"       : Campo="TG_CIDADE"
                    Case Campo="TG_CIDADE"         : Campo="TG_GERENCIA"
                         If Upper(VSDGCIDADE)="TODAS"
                            Then CIDADE=""
                            Else CIDADE=VSDGCIDADE
                         EndIf
                    Case Campo="TG_GERENCIA"       : Campo="TG_REPRESEN"
                    Case Campo="TG_REPRESEN"       : Campo="TG_OPDTPEEIRF"
                    Case Campo="TG_OPDTPEEIRF"      : Campo="TG_DTINI"
                         if VSDGOPDTPEEIRF="4"
                            then Campo="TG_MARCA"
                            
                                 VSDGDTINI  =BlankDate()
                                 VSDGDTFIM  =BlankDate()
                         endif   
                             
                    Case Campo="TG_DTINI"          : Campo="TG_DTFIM"
                    Case Campo="TG_DTFIM"          : Campo="TG_MARCA"
                    Case Campo="TG_MARCA"          : Campo="TG_FAMI"
                    Case Campo="TG_FAMI"           : Campo="TG_GRP"   
                    Case Campo="TG_GRP"            : Campo="TG_ITEM"                                
                    Case Campo="TG_ITEM"           : Campo="TG_REFERENCIA"
                    Case Campo="TG_REFERENCIA"     : Campo="TG_SITUACAOPEDIDO"
                    Case Campo="TG_SITUACAOPEDIDO" : Campo="TG_CODMODELO"
                    Case Campo="TG_CODMODELO" : Campo="YES"
                  EndSwitch
          EndIf
   EndSwitch
EndIf
Switch
  Case Campo="":
       MSG_CAMPO=""
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("01  Anal¡tico por pedido")
ModeloRelatoriosAdd("02  Anal¡tico por pedido/agrupado por referˆncia")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("03  Sint‚tico por pedido")
ModeloRelatoriosAdd("04  Sint‚tico por item")
ModeloRelatoriosAdd("05  Sint‚tico por item/agrupado por referˆncia")
ModeloRelatoriosAdd("06  Sint‚tico por referˆncia")
ModeloRelatoriosAdd("07  Sint‚tico por representante/pedido [28,39]")
ModeloRelatoriosAdd("12  Sint‚tico por representante/cliente/pedido [34]")
ModeloRelatoriosAdd("13  Sint‚tico por representante/cliente/pedido/obs [34]")
ModeloRelatoriosAdd("10  Sint‚tico por marca/pedido [29]")
ModeloRelatoriosAdd("11  Sint‚tico por cliente/pedido [17,47]")
ModeloRelatoriosAdd("15  Sint‚tico por cliente/item")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("08  Anal¡tico por pedido/Peso")
ModeloRelatoriosAdd("09  Sint‚tico por pedido/Peso")
ModeloRelatoriosAdd("Fim")
                           
EndProc ;ModeloRelatoriosCarregaLista


;*******************************************************************************
;* ROTINA PRINCIPAL                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bibliot"
If Not IsAssigned(SYS_CODIGO_CLIENTE)  Then SYS_CODIGO_CLIENTE=""  EndIf
If Not IsAssigned(SYS_CLIENTE_CONFEC)  Then SYS_CLIENTE_CONFEC=""  EndIf
LimpAguarde()

Sys_Valor()

;PARAM_CCLIEC -> Chamado da Ficha do Cliente 
If Not IsAssigned(PARAM_CCLIEC) Then PARAM_CCLIEC = False EndIf

If Not PARAM_CCLIEC
   Then VSDGEMPRESA   =""
        VSDGDESTINAT  =""      
EndIf      

VSDGPEDIDO  =""
VSDGNCARREG =""
VSDGCIDADE  =""
VSDGGERENCIA=""
VSDGREPRESEN=""
VSDGOPDTPEEIRF  =""
VSDGDTINI   =BlankDate()
VSDGDTFIM   =BlankDate()
VSDGMARCA   =""
VSDGFAMI    =""
VSDGGRP     =""
VSDGITEM    =""
VSDGREFERENCIA    =""
VSDGSITUACAOPEDIDO=""

ModeloRelatoriosCarregaLista()

While True                               

  ShowDialog "EmissÆo da Posi‡Æo de Pedidos" Proc "SD_Dialog_Rm0501"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140,-68
    @ 01,00 Height 22 Width 80

    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 "Pedido" For "TG_PEDIDO"
    Accept @ 03,01 Width 16 "A6"  Picture "[&,#][#*#]" Tag "TG_PEDIDO" To VSDGPEDIDO

    Label  @ 02,17 "Carregamento" For "TG_NCARREG"
    Accept @ 03,18 Width 16 "A6"  Picture "[&,#][#*#]" Tag "TG_NCARREG"    To VSDGNCARREG

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

    Label  @ 06,00 "Cidade"  For "TG_CIDADE"
    Accept @ 07,01 Width 33 "A20"  Picture "!*!" Tag "TG_CIDADE" To VSDGCIDADE

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

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

    Label  @ 12,00 "Op‡äes de Datas" For "TG_OPDTPEEIRF"
    Accept @ 13,04 Width 04 "A1"  Picture "1,2,3,4,5"  Tag "TG_OPDTPEEIRF"  To VSDGOPDTPEEIRF
    Accept @ 13,09 Width 25 "A20" Picture "!*!"      Tag "TG_NOMOPDTPEEIRF" To VSDGNOMOPDTPEEIRF
 
    Label  @ 14,00 "Per¡odo Referente de" For "TG_DTINI"
    Accept @ 15,03 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 15,16 "at‚" For "TG_DTFIM"
    Accept @ 15,21 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM

    Label  @ 00,35 "Marca"  For "TG_MARCA"
    Accept @ 01,37 Width 06 "A3"  Picture "#*#" Tag "TG_MARCA"    To VSDGMARCA
    Accept @ 01,44 Width 25 "A20" Picture "!*!" Tag "TG_NOMMARCA" To VSDGNOMMARCA

    Label  @ 02,35 "Familia"  For "TG_FAMI"
    Accept @ 03,37 Width 06 "A3"  Picture "#*#" Tag "TG_FAMI"    To VSDGFAMI
    Accept @ 03,44 Width 25 "A20" Picture "!*!" Tag "TG_NOMFAMI" To VSDGNOMFAMI

    Label  @ 04,35 "Grupo"  For "TG_GRP"
    Accept @ 05,37 Width 06 "A3"  Picture "#*#" Tag "TG_GRP"    To VSDGGRP
    Accept @ 05,44 Width 25 "A20" Picture "!*!" Tag "TG_NOMGRP" To VSDGNOMGRP

    Label  @ 06,35 "Item"  For "TG_ITEM"
    Accept @ 07,36 Width 33 "A10" Picture "#*#" Tag "TG_ITEM"    To VSDGITEM
    Accept @ 08,36 Width 33 "A30" Picture "!*!" Tag "TG_NOMITEM" To VSDGNOMITEM

    Label  @ 10,35 "Referˆncia"  For "TG_REFERENCIA"
    Accept @ 11,36 Width 33 "A20" Picture "!*!" Tag "TG_REFERENCIA"     To VSDGREFERENCIA  

    Label  @ 12,35 "Situacao do Pedido"  For "TG_SITUACAOPEDIDO"
    Accept @ 13,36 Width 33 "A30"  Picture "ABERTO,SUSPENSO,CANCELADO,FATURADO,TODAS,!*!" Tag "TG_SITUACAOPEDIDO"  To VSDGSITUACAOPEDIDO

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

    Pushbutton @ 18,54 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 18,66 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

    @ 18,40 ?? ""
  EndDialog
  If Not RetVal Then QuitLoop EndIf
  if not ValidarModelosRelatorios() then loop endif         
  if isblank(VSDGDTFIM) then VSDGDTFIM=today() endif
  
  If PARAM_CCLIEC And VSDGDESTINAT <> VSDGDESTINAT2
     Then Mensagem("Cliente informado ‚ diferente desta ficha!")
          Loop
  EndIf
  
  DISPOSITIVO()
  If OK="" Then Loop EndIf
  
  If Ok="A" Then IMPRIME_ARQUIVO = True Else IMPRIME_ARQUIVO=False EndIf
  AGUARDE("Aguarde, gerando o relat¢rio")

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

  if VSDGOPDTPEEIRF="4" then Seleciona_PEDREL_Rm0501() endif
  if VSDGOPDTPEEIRF="5" then Seleciona_PEDFAT_Rm0501() endif
  
  if not isblank(VSDGDTINI)
     then Monta_Dir_Trab(VSDGDTINI-365,VSDGDTFIM+365)
     Else Monta_Dir_Trab(Today()-365,VSDGDTFIM+365)
  endif   
  
  primeiravez=true
  While Novo_Dir_Trab()
    Seleciona_Rm0501()    

    If IsAssigned(TabelaRP)  And IsTable(TabelaRP)  Then Delete TabelaRP  EndIf
    If IsAssigned(TabelaRIP) And IsTable(TabelaRIP) Then Delete TabelaRIP EndIf
  EndWhile
  If IsAssigned(TabelaRPF) And IsTable(TabelaRPF) Then Delete TabelaRPF EndIf

  If not IsTable(TabelaAux) or IsEmpty(TabelaAux)
     Then MENSAGEM("N„o existem registros a processar")
          Loop
  EndIf

  AjustaDados_Rm0501()
  Contagens_Rm0501()

  LimpaRodape(0)
   
  Impressao_Orientacao="Paisagem"
  Switch
    case VSDGCODMODELO="01" : copyreport "\\base\\Sistemas\\Vendas\\rm_0501" "R"  TabelaAux "R"
    case VSDGCODMODELO="02" : copyreport "\\base\\Sistemas\\Vendas\\rm_0501" "1"  TabelaAux "R"
    case VSDGCODMODELO="03" : copyreport "\\base\\Sistemas\\Vendas\\rm_0501" "2"  TabelaAux "R"
    case VSDGCODMODELO="04" : copyreport "\\base\\Sistemas\\Vendas\\rm_0501" "3"  TabelaAux "R"
    case VSDGCODMODELO="05" : copyreport "\\base\\Sistemas\\Vendas\\rm_0501" "4"  TabelaAux "R"
    case VSDGCODMODELO="06" : copyreport "\\base\\Sistemas\\Vendas\\rm_0501" "3"  TabelaAux "R"
    case VSDGCODMODELO="07" : copyreport "\\base\\Sistemas\\Vendas\\rm_0501" "5"  TabelaAux "R"
    case VSDGCODMODELO="08" : copyreport "\\base\\Sistemas\\Vendas\\rm_0501" "7"  TabelaAux "R"
    case VSDGCODMODELO="09" : copyreport "\\base\\Sistemas\\Vendas\\rm_0501" "8"  TabelaAux "R"
    case VSDGCODMODELO="10" : copyreport "\\base\\Sistemas\\Vendas\\rm_0501" "6"  TabelaAux "R"
    case VSDGCODMODELO="11" : copyreport "\\base\\Sistemas\\Vendas\\rm_0501" "9"  TabelaAux "R"    
    case VSDGCODMODELO="12" : Impressao_Orientacao="Retrato"
                              copyreport "\\base\\Sistemas\\Vendas\\rm_0501" "10" TabelaAux "R" 
    case VSDGCODMODELO="13" : Impressao_Orientacao="Retrato"
                              copyreport "\\base\\Sistemas\\Vendas\\rm_0502" "R"  TabelaAux "R"
    case VSDGCODMODELO="15" : copyreport "\\base\\Sistemas\\Vendas\\rm_0501" "11" TabelaAux "R"
  EndSwitch

  If IMPRIME_ARQUIVO
     Then If VSDGCODMODELO="03" Or
             VSDGCODMODELO="04" Or
             VSDGCODMODELO="06" Or
             VSDGCODMODELO="07" Or
             VSDGCODMODELO="10" Or
             VSDGCODMODELO="11"
             Then Gera_Arquivo_Rm0501()
          endif    
  EndIf   
  IMPRIREL(TabelaAux,"R")              
  LimpAguarde()
  If IsAssigned(TabelaAux) And IsTable(TabelaAux) Then Delete TabelaAux EndIf
  If IsAssigned(TabelaPED) And IsTable(TabelaPED) Then Delete TabelaPED EndIf
  If IsAssigned(TabelaRE)  And IsTable(TabelaRE)  Then Delete TabelaRE  EndIf
  
EndWhile
ClearAll

If PARAM_CCLIEC
   Then Release Vars VSDGSITUACAOPEDIDO,VSDGPEDIDO,VSDGNCARREG,VSDGOPDTPEEIRF,VSDGMARCA,VSDGITEM,
                     VSDGCODMODELO,VSDGCIDADE,VSDGGERENCIA,VSDGREPRESEN,VSDGFAMI,VSDGGRP,VSDGREFERENCIA,
                     TabelaAux,TabelaRP,TabelaRIP,TabelaRE,TabelaPED,primeiravez
                      
        Release Procs Seleciona_Rm0501, Contagens_Rm0501, Gera_Arquivo_Rm0501, 
                      SD_Dialog_Rm0501, ModeloRelatoriosCarregaLista, AjustaDados_Rm0501,
                      Seleciona_PEDREL_Rm0501,Seleciona_PEDFAT_Rm0501,Seleciona_EXPED_Rm0501
                      
                      
   Else Release Vars All
        Release Procs All
EndIf
