;** Rm_0600 ********************************************************************
;* Emissao Tabela de Pre‡o                                                     *
;*******************************************************************************
;Autor: Visao/Vise
;Desenvolvido    : 02/07/2003 por Karen Lauar Nery
;Ultima Alteracao: 29/05/2006 por Nikolas M. Mateus
;Motivo Alteracao: Inclusao da emissao 10 modelo XV
;Ultima Alteracao: 19/04/2007 por Nikolas M. Mateus
;Motivo Alteracao: Inclusao da emissao 12 modelo XVI
;Ultima Alteracao: 26/07/2007 por Nikolas M. Mateus
;Motivo Alteracao: Inclusao da emissao 13 modelo XVII
;Ultima Alteracao: 30/08/2007 por Nikolas M. Mateus
;Motivo Alteracao: Ajustes Bug
;Ultima Alteracao: 26/02/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Modelo 14 Vico
;Ultima Alteracao: 02/07/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Modelo 15 Curt.Nunes
;Ultima Alteracao: 23/09/2009 por Nikolas
;Motivo Alteracao: Inclusao Modelo 16 para a Zuggi
;Ultima Alteracao: 02/12/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustex no Modelo 13
;Ultima Alteracao: 14/12/2010 por Bruno Carvalho
;Motivo Alteracao: Inclus„o Modelo 17 Podium
;Ultima Alteracao: 20/12/2010 por Bruno Carvalho
;Motivo Alteracao: Ajustes Modelo 07 (Op‡Æo Reduzida) para Concretos Vico
;Ultima Alteracao: 10/08/2011 por Bruno Carvalho
;Motivo Alteracao: InclusÆo Obs no Modelo 07 (Ordem "1") para Concretos Vico
;Ultima Alteracao: 29/11/2011 por Bruno Carvalho
;Motivo Alteracao: InclusÆo Modelo 18 "Codigo de Barras" *Divina Panela*
;Ultima Alteracao: 11/01/2012 por Karina Andrade
;Motivo Alteracao: Ajuste Array_OpTabela[]
;Ultima Alteracao: 19/01/2012 por Bruno Carvalho
;Motivo Alteracao: Erro ao Gravar, VSDGOPRELCODALFDIG sem valor atribuido
;Ultima Alteracao: 26/04/2012 por Karina Andrade
;Motivo Alteracao: Ajustes VSDGOPRELCODALF           
;Ultima Alteracao: 15/08/2012 por Bruno Carvalho
;Motivo Alteracao: InclusÆo Modelo 19 "Marca/Referˆncia/Fator de ConversÆo" *GM*
;Ultima Alteracao: 19/09/2012 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Substitui‡Æo Editor novo arquivo por FileWrite
;Ultima Alteracao: 04/02/2013 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes LimpaRodape()  
;Ultima Alteracao: 24/06/2013 por Kamila Gomes
;Motivo Alteracao: Ajustes Seleciona() para opcao 17    
;Ultima Alteracao: 21/05/2015 por Andrey Fillipe
;Motivo Alteracao: Adicionado Filtro Somente Itens em Promocao              
;Ultima Alteracao: 23/06/2016 por Bruno Carvalho
;Motivo Alteracao: Removido Link nos Report "RM_3000", "RM_3001", "RM_0900" e utilizado fun‡Æo Ajusta_Answer() e Adiciona_Dados_Tabela()
;Ultima Alteracao: 22/07/2016 por Bruno Carvalho
;Motivo Alteracao: Ajustado p/ quando for DISPOSITIVO_OPCAO = "A" n„o realizar o processo Ajusta_Answer()
;Ultima Alteracao: 28/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes ShowDialog TG_DESTINAT
;Ultima Alteracao: 29/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes MensagemCheckBoxes()
;Ultima Alteracao: 07/01/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog   
;Ultima Alteracao: 18/01/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes layout simplificar
;Ultima Alteracao: 06/06/2017 por Rafael Matos
;Motivo Alteracao: Incluso VSDGCODMODELO="20"
;Ultima Alteracao: 04/07/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes modelo 16,18 ajustar_answer para excel
;Ultima Alteracao: 24/10/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes seleciona4()                                  
;Ultima Alteracao: 04/01/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes modelo 21, 22                                 
;Ultima Alteracao: 03/02/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes na estrutura tabela RM_3000 e reports, logica + Seta_Ordem_Report()                  
;Ultima Alteracao: 21/02/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes modelo 20 tabela e report                     
;Ultima Alteracao: 05/04/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado MudaEstruturaDaTabelaPara()
;Ultima Alteracao: 25/04/2018 por Bruno Carvalho
;Motivo Alteracao: Ausˆncia de informar "\\BASE" no segundo parƒmetro -> MudaEstruturaDaTabelaPara()  
;Ultima Alteracao: 01/11/2018 por Bruno Carvalho
;Motivo Alteracao: Adicionado modelo "03A"
;Ultima Alteracao: 13/03/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes modelo 23
;Ultima Alteracao: 07/04/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog     
;Ultima Alteracao: 08/04/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes modelo 18, 18A                    
;Ultima Alteracao: 08/04/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes Seleciona5()                      
;Ultima Alteracao: 22/09/2020 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes SelecionaItens() pegar pai, tem item com marca diferente do pai #0227                       
;Ultima Alteracao: 24/09/2020 por Bruno Carvalho
;Motivo Alteracao: Adicionado op‡Æo "F2" para consulta personalizada nos filtros da Marca, Familia, Grupo e Cor_Tecido  
;Ultima Alteracao: 26/09/2020 por Anivel Augusto Rodrigues        
;Motivo Alteracao: Alterado Picture [TG_FAMI],[TG_GRP],[TG_MARCA],[TG_COR_TECIDO] de "[#*#]" para "!*!", permitir caracter "?" p/ ListaRegra

;*******************************************************************************
;* Ajusta Dados na Answer                                                      *  
;*******************************************************************************
Proc Ajusta_Answer(PARAM)
Private PARAM

;Processo p/ ajustar tabela conforme remo‡Æo do link da tabela "ITENS" nos reports

If IsAssigned(TABELA) And IsTable(TABELA) Then Delete TABELA EndIf
TABELA = Cria_Temp(PrivDir())
Copy "\\Base\\Sistemas\\Vendas\\"+PARAM TABELA

{Ask} {Answer} Check
Moveto [Codigo do Item           ] Example "_Ite"
{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item           ] Example "_Ite"
Switch
  Case PARAM = "RM_3000" :  
       Moveto [Tributacao de ICMS       ] Check     
       Moveto [Aliquota de ICMS         ] Check 
       Moveto [Referencia               ] Check 
       Moveto [Descricao Complementar   ] Check 
       Moveto [Observacao               ] Check 
       Moveto [Localizacao              ] Check  
       Moveto [Codigo Fornecedor        ] Check 
       Do_It!
       ClearAll      

  Case PARAM = "RM_3001" Or
       PARAM = "RM_3001A": 
       Moveto [Localizacao              ] Check 
       Moveto [Codigo da Grade          ] Check 
       Moveto [Referencia               ] Check 
       Moveto [Descricao Complementar   ] Check 
       Moveto [Fator de Conversao       ] Check 
       Moveto [Fator Conversao Embalagem] Check 
       Moveto [Codigo Fornecedor        ] Check
       Moveto [Codigo de Barras         ] Check 
       ;Caso haja necessidade de novos campos, somente adicionar na tabela e nesta fun‡Æo
       Do_It!
       ClearAll
       
  Case PARAM = "RM_3005" : 
       Moveto [Referencia              ] Check
       Moveto [Localizacao             ] Check
       Moveto [Codigo Fornecedor       ] Check
       Moveto [Peso Liquido            ] Check
       Moveto [Descricao Complementar  ] Check
       Do_It!
       ClearAll
       
  Case PARAM = "RM_0900" :
       Moveto [Codigo da Marca         ] Check
       Moveto [Descricao da Marca      ] Check
       Moveto [Localizacao             ] Check
       Do_It!
       ClearAll
       
EndSwitch

MudaEstruturaDaTabelaPara("Answer","\\Base\\Sistemas\\Vendas\\"+PARAM)

;;Adiciona_Dados_Tabela(TABELA)
;;{Ask} TypeIn TABELA Enter Check
;;Do_It!
;;ClearAll
;;Delete TABELA  

EndProc ;Ajusta_Answer()

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

Switch
  Case PARAM = "RM_3001" :
       {Ask} TypeIn Tabela Enter Check            
       Moveto [Localizacao              ] Check 
       Moveto [Codigo da Grade          ] Check 
       Moveto [Referencia               ] Check 
       Moveto [Fator de Conversao       ] Check 
       Moveto [Fator Conversao Embalagem] Check 
       Moveto [Codigo Fornecedor        ] Check
       Do_it!
       ClearAll 
        
       Ajusta_Answer("RM_3001")
       Rename "Answer" Tabela
  Case PARAM = "RM_0900" :
       {Ask} TypeIn Tabela Enter Check            
       Moveto [Codigo da Marca         ] Check
       Moveto [Descricao da Marca      ] Check
       Moveto [Localizacao             ] Check
       Do_it!
       ClearAll 
        
       Ajusta_Answer("RM_0900")
       Rename "Answer" Tabela
EndSwitch                    
    
EndProc ;Ajusta_Dados()  

;*******************************************************************************
;* Seleciona
;*******************************************************************************
Proc SelecionaItens()
ClearAll

{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item           ] Check
;---- Familia ------------------------------------------------------------------
Switch
  Case ListaRegra_VSDGFAMI_Ativo : Moveto [Codigo da Familia] Check TypeIn ListaRegra_VSDGFAMI
  Otherwise                      : Moveto [Codigo da Familia] Check TypeIn "~VSDGFAMI.."
EndSwitch
Moveto [Descricao da Familia     ] Check
;---- Grupo --------------------------------------------------------------------
Switch
  Case ListaRegra_VSDGGRP_Ativo : Moveto [Codigo do Grupo] Check TypeIn ListaRegra_VSDGGRP
  Otherwise                     : Moveto [Codigo do Grupo] Check TypeIn "~VSDGGRP.."
EndSwitch
Moveto [Descricao do Grupo      ] Check
;---- Marca --------------------------------------------------------------------
Switch
  Case ListaRegra_VSDGMARCA_Ativo : Moveto [Codigo da Marca] Check TypeIn ListaRegra_VSDGMARCA
  Otherwise                       : Moveto [Codigo da Marca] Check TypeIn "~VSDGMARCA.."
EndSwitch
Moveto [Descricao da Marca        ] Check
;---- Cor do Tecido ------------------------------------------------------------
Switch
  Case ListaRegra_VSDGCORTECIDO_Ativo : Moveto [Codigo da Cor_Tecido] Check TypeIn ListaRegra_VSDGCORTECIDO
  Otherwise                           : Moveto [Codigo da Cor_Tecido] Check TypeIn "~VSDGCORTECIDO.."
EndSwitch
Moveto [Descricao da Cor_Tecido  ] Check

Moveto [Referencia               ] Check
Moveto [Codigo da Grade          ] Check
Moveto [Unidade Embalagem        ] Check
Moveto [Fator Conversao Embalagem] Check
Moveto [Inativo                  ] TypeIn "Not S"
Do_it!
ClearAll 
TabelaItens=Adiciona_Indice_Temp("Codigo do Item")

if not isblank(VSDGMARCA)
   then
        {ask} typeIn TabelaItens Enter
        Moveto [Referencia               ] check
        Moveto [Codigo da Marca          ] Check 
        Moveto [Descricao da Marca       ] Check
        Moveto [Codigo da Grade          ] typein "Not blank"
        Do_it!
        ClearAll 
        TabelaRef=Adiciona_Indice_Temp("Referencia")
        
        {ask} typeIn TabelaRef Enter  
        Moveto [Referencia               ] typein "_ref"
        Moveto [Codigo da Marca          ] Check 
        Moveto [Descricao da Marca       ] Check
        {Ask} {\\Sistemas\\Estoque\\Itens}
        Moveto [Codigo do Item           ] Check
        Moveto [Codigo da Familia        ] Check 
        Moveto [Descricao da Familia     ] Check
        Moveto [Codigo do Grupo          ] Check 
        Moveto [Descricao do Grupo       ] Check
        Moveto [Codigo da Cor_Tecido     ] Check 
        Moveto [Descricao da Cor_Tecido  ] Check
        Moveto [Referencia               ] check typein "_ref"
        Moveto [Codigo da Grade          ] Check
        Moveto [Unidade Embalagem        ] Check
        Moveto [Fator Conversao Embalagem] Check
        
        Moveto [Tipo do Item             ]       typein "D"
        Moveto [Codigo da Grade          ]       typein "not blank"
        Do_it!
        ClearAll 
        
        MudaEstruturaDaTabelaPara("Answer",TabelaItens)
        
        Add "Answer" TabelaItens
        ClearAll 
        
        Delete TabelaRef

endif

endproc

;*******************************************************************************
;* Seleciona
;*******************************************************************************
Proc Seleciona()
ClearAll

{ask} typeIn TabelaItens Enter check
Moveto [Codigo do Item           ] Example "CODIGO"
{Ask} {TbPrCab}             
Moveto [Codigo da Tabela         ] TypeIn "_cdtab"
Moveto [Descricao da Tabela      ] Check
{Ask} {TbPrite} Check
Moveto [Codigo da Tabela         ] TypeIn "_cdtab, ~VSDGTABELA.."
Moveto [Codigo do Item           ] Example "CODIGO"
If SO_REAJUSTADOS
   Then Moveto [Data Ultimo Reajuste] TypeIn ">=~VSDGDTINI2,<=~VSDGDTFIM2"
EndIf
If VSDGOPCAO[1]
   Then Moveto [Em Promocao] TypeIn "S"   
EndIf

switch
  case VSDGVRBRANCO="S" : Moveto [Preco Unitario] TypeIn "<=0"
  case VSDGVRBRANCO="C" : Moveto [Preco Unitario] TypeIn ">0"
endswitch

Do_It!
ClearAll

If IsEmpty("Answer")
   Then MENSAGEM("N„o existem registros a processar")
        Return
EndIf

{Modify} {Restructure} {Answer}
Moveto [Field Name]
End Down
"Preco Unitario_Formatado" Enter "A13"  Enter
Do_It!
ClearImage            

EndProc  ;(Seleciona)

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

{ask} typeIn TabelaItens Enter 
Moveto [Codigo do Item           ] Example "CODIGO"
If VSDGCODMODELO="10"
   Then Moveto [Unidade Embalagem        ] Check
EndIf
{Ask} {Tbprcab} Check
Moveto [Codigo da Tabela] Example "TAB" TypeIn ",~VSDGTABELA"
{Ask} {TbPrite} Check
Moveto [Codigo da Tabela] Example "TAB"
Moveto [Codigo do Item  ] Example "CODIGO"
If SO_REAJUSTADOS
   Then Moveto [Data Ultimo Reajuste] TypeIn ">=~VSDGDTINI2,<=~VSDGDTFIM2"
EndIf
If VSDGOPCAO[1]
   Then Moveto [Em Promocao] TypeIn "S"   
EndIf

switch
  case VSDGVRBRANCO="S" : Moveto [Preco Unitario] TypeIn "<=0"
  case VSDGVRBRANCO="C" : Moveto [Preco Unitario] TypeIn ">0"
endswitch

Do_It!
ClearAll

{Modify} {Restructure} {Answer}
Moveto [Field Name]
Locate "Preco Unitario_Formatado"
       If Not RetVal
          Then End Down
              "Preco Unitario_Formatado" Enter "A13"  Enter
       EndIf
       Do_It! ClearImage

{Ask} {Answer}
Moveto [Codigo da Tabela    ] Example "a"
Moveto [Codigo do Item      ] Example "b"
Moveto [Tipo do Item        ] Example "c"
Moveto [Descricao do Item   ] Example "d"
Moveto [Unidade Fiscal      ] Example "e"
Moveto [Preco Unitario      ] Example "f" TypeIn ",Not 0,not Blank"
Moveto [Data Ultimo Reajuste] Example "g"
Moveto [Taxa Ultimo Reajuste] Example "h"
If VSDGCODMODELO="10"
   Then Moveto [Unidade Embalagem        ] Example "j"
EndIf

{Ask} TypeIn Tabela Enter Typein "Fast Insert"
Moveto [Codigo da Tabela    ] Example "a"
Moveto [Codigo do Item      ] Example "b"
Moveto [Tipo do Item        ] Example "c"
Moveto [Descricao do Item   ] Example "d"
Moveto [Unidade Fiscal      ] Example "e"
Moveto [Preco Unitario      ] Example "f"
Moveto [Data Ultimo Reajuste] Example "g"
Moveto [Taxa Ultimo Reajuste] Example "h"
If VSDGCODMODELO="10"
   Then Moveto [Unidade Embalagem        ] Example "j"
EndIf

Do_It!
ClearAll

For I From 1 to 6
    DESCPAGTO[I]=""
    TAXA[I]     =BlankNum()
EndFor

View "Tbprcpg"
If not IsEmpty("Tbprcpg")
   Then Moveto [Codigo da Tabela]
        Locate VSDGTABELA
        i=1
        While [Codigo da Tabela]=VSDGTABELA
            If i>6
               Then QuitLoop
               Else DESCPAGTO[I]=[Tbprcpg->Descricao CondPagto]
                    TAXA[I]     =[Tbprcpg->Taxa Financeira]
            EndIf
            i=i+1
            Skip
            If EOT()
               Then QuitLoop
            Endif
        EndWhile
EndIf
ClearAll
                    

EndProc    ;  (Seleciona)

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

{ask} typeIn TabelaItens Enter 
Moveto [Codigo do Item           ] Example "CODIGO"
Moveto [Codigo da Familia        ] Check 
Moveto [Descricao da Familia     ] Check
Moveto [Codigo da Marca          ] Check 
Moveto [Descricao da Marca       ] Check
Moveto [Codigo do Grupo          ] Check 
Moveto [Descricao do Grupo       ] Check
{Ask} {Tbprcab} Check
Moveto [Codigo da Tabela] Example "TAB" TypeIn ",~VSDGTABELA"
{Ask} {TbPrite} Check
Moveto [Codigo da Tabela] Example "TAB"
Moveto [Codigo do Item  ] Example "CODIGO"
If SO_REAJUSTADOS
   Then Moveto [Data Ultimo Reajuste] TypeIn ">=~VSDGDTINI2,<=~VSDGDTFIM2"
EndIf
If VSDGOPCAO[1]
   Then Moveto [Em Promocao] TypeIn "S"   
EndIf

switch
  case VSDGVRBRANCO="S" : Moveto [Preco Unitario] TypeIn "<=0"
  case VSDGVRBRANCO="C" : Moveto [Preco Unitario] TypeIn ">0"
endswitch

Do_It!
ClearAll

{Modify} {Restructure} {Answer}
Moveto [Field Name]
Locate "Preco Unitario_Formatado"
       If Not RetVal
          Then End Down
              "Preco Unitario_Formatado" Enter "A13"  Enter
       EndIf
       Do_It! ClearImage


{Ask} {Answer}
Moveto [Codigo da Tabela    ] Example "a"
Moveto [Codigo do Item      ] Example "b"
Moveto [Tipo do Item        ] Example "c"
Moveto [Descricao do Item   ] Example "d"
Moveto [Unidade Fiscal      ] Example "e"
Moveto [Preco Unitario      ] Example "f" TypeIn ",Not 0,not Blank"
Moveto [Data Ultimo Reajuste] Example "g"
Moveto [Taxa Ultimo Reajuste] Example "h"
Moveto [Codigo da Familia   ] Example "cf"
Moveto [Descricao da Familia] Example "df"
Moveto [Codigo do Grupo     ] Example "cg"
Moveto [Descricao do Grupo  ] Example "dg"
Moveto [Codigo da Marca     ] Example "cm"
Moveto [Descricao da Marca  ] Example "dm"

{Ask} TypeIn Tabela Enter TypeIn "Fast Insert"
Moveto [Codigo da Tabela    ] Example "a"
Moveto [Codigo do Item      ] Example "b"
Moveto [Tipo do Item        ] Example "c"
Moveto [Descricao do Item   ] Example "d"
Moveto [Unidade Fiscal      ] Example "e"
Moveto [Preco Unitario      ] Example "f"
Moveto [Data Ultimo Reajuste] Example "g"
Moveto [Taxa Ultimo Reajuste] Example "h"
Moveto [Codigo da Familia   ] Example "cf"
Moveto [Descricao da Familia] Example "df"
Moveto [Codigo do Grupo     ] Example "cg"
Moveto [Descricao do Grupo  ] Example "dg"
Moveto [Codigo da Marca     ] Example "cm"
Moveto [Descricao da Marca  ] Example "dm"
Do_It!
ClearAll

For I From 1 to 6
    DESCPAGTO[I]=""
    TAXA[I]     =BlankNum()
EndFor

View "Tbprcpg"
If not IsEmpty("Tbprcpg")
   Then Moveto [Codigo da Tabela]
        Locate VSDGTABELA
        i=1
        While [Codigo da Tabela]=VSDGTABELA
            If i>6
               Then QuitLoop
               Else DESCPAGTO[I]=[Tbprcpg->Descricao CondPagto]
                    TAXA[I]     =[Tbprcpg->Taxa Financeira]
            Endif
            i=i+1
            Skip
            If EOT()
               Then QuitLoop
            Endif
        Endwhile
EndIf
ClearAll             

EndProc    ; (Seleciona3)

;*******************************************************************************
;* Seleciona
;*******************************************************************************
Proc Seleciona4()
ClearAll

{ask} typeIn TabelaItens Enter 
Moveto [Codigo do Item           ] Example "CODIGO"
Moveto [Codigo da Familia        ] Check 
Moveto [Descricao da Familia     ] Check
Moveto [Codigo do Grupo          ] Check 
Moveto [Descricao do Grupo       ] Check
Moveto [Codigo da Marca          ] Check 
Moveto [Descricao da Marca       ] Check
Moveto [Codigo da Cor_Tecido     ] Check 
Moveto [Descricao da Cor_Tecido  ] Check
Moveto [Unidade Embalagem        ] Check
Moveto [Fator Conversao Embalagem] Check
Moveto [Inativo                  ] TypeIn "Not S"
{Ask} {TbPrcit} 
Moveto [Codigo da Tabela         ] Check TypeIn "~VSDGTABELA.."
Moveto [Codigo                   ] Check TypeIn "~VSDGDESTINAT.."
Moveto [Codigo do Item           ] Check Example "CODIGO"
Moveto [Tipo do Item             ] Check 
Moveto [Descricao do Item        ] Check 
Moveto [Unidade Fiscal           ] Check 
Moveto [Preco Unitario           ] Check 
Moveto [Data Ultimo Reajuste     ] Check 
Moveto [Taxa Ultimo Reajuste     ] Check 
Moveto [Em Promocao              ] Check 
Moveto [Lookup_Item              ] Check 
If SO_REAJUSTADOS
   Then Moveto [Data Ultimo Reajuste] TypeIn ">=~VSDGDTINI2,<=~VSDGDTFIM2"
EndIf
If VSDGOPCAO[1]
   Then Moveto [Em Promocao] TypeIn "S"   
EndIf

switch
  case VSDGVRBRANCO="S" : Moveto [Preco Unitario] TypeIn "<=0"
  case VSDGVRBRANCO="C" : Moveto [Preco Unitario] TypeIn ">0"
endswitch

Do_It!
ClearAll

If IsEmpty("Answer")
   Then MENSAGEM("N„o existem registros a processar")
        Return
EndIf

{Modify} {Restructure} {Answer}
Moveto [Field Name]
Locate "Preco Unitario_Formatado"
If Not RetVal
   Then End Down
       "Preco Unitario_Formatado" Enter "A13"  Enter
EndIf
Do_It! ClearImage
                       
EndProc  ;(Seleciona4)


;*******************************************************************************
;* Seleciona
;*******************************************************************************
Proc Seleciona5()
ClearAll

{ask} typeIn TabelaItens Enter 
Moveto [Codigo do Item           ] Example "CODIGO"
Moveto [Codigo da Familia        ] Check 
Moveto [Descricao da Familia     ] Check
Moveto [Codigo do Grupo          ] Check 
Moveto [Descricao do Grupo       ] Check
Moveto [Codigo da Marca          ] Check 
Moveto [Descricao da Marca       ] Check
Moveto [Codigo da Cor_Tecido     ] Check 
Moveto [Descricao da Cor_Tecido  ] Check
Moveto [Unidade Embalagem        ] Check
Moveto [Fator Conversao Embalagem] Check
{Ask} {TbPrrit} 
Moveto [Codigo da Tabela         ] Check TypeIn "~VSDGTABELA.."
Moveto [Codigo do Representante  ] Check TypeIn "~VSDGREPRESEN.., as Codigo"
Moveto [Codigo do Item           ] Check Example "CODIGO"
Moveto [Tipo do Item             ] Check 
Moveto [Descricao do Item        ] Check 
Moveto [Unidade Fiscal           ] Check 
Moveto [Preco Unitario           ] Check 
Moveto [Data Ultimo Reajuste     ] Check 
Moveto [Taxa Ultimo Reajuste     ] Check 
Moveto [Em Promocao              ] Check 
Moveto [Lookup_Item              ] Check 
If SO_REAJUSTADOS
   Then Moveto [Data Ultimo Reajuste] TypeIn ">=~VSDGDTINI2,<=~VSDGDTFIM2"
EndIf
If VSDGOPCAO[1]
   Then Moveto [Em Promocao] TypeIn "S"   
EndIf

switch
  case VSDGVRBRANCO="S" : Moveto [Preco Unitario] TypeIn "<=0"
  case VSDGVRBRANCO="C" : Moveto [Preco Unitario] TypeIn ">0"
endswitch

Do_It!
ClearAll

If IsEmpty("Answer")
   Then MENSAGEM("N„o existem registros a processar")
        Return
EndIf

{Modify} {Restructure} {Answer}
Moveto [Field Name]
Locate "Preco Unitario_Formatado"
If Not RetVal
   Then End Down
       "Preco Unitario_Formatado" Enter "A13"  Enter
EndIf
Do_It! ClearImage
                       
EndProc  ;(Seleciona5)

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog3T(Disparo,Campo,Evento,Elemento)
private 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_TABELA"        : Campo="NO"
            Case Campo="TG_TABELA2"       : Campo="TG_TABELA"
            Case Campo="TG_TABELA3"       : Campo="TG_TABELA2"
            Case Campo="YES" Or Campo="NO": Campo="TG_TABELA"
          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_TABELA"  : Campo="TG_TABELA2"
                    Case Campo="TG_TABELA2" : Campo="TG_TABELA3"
                    Case Campo="TG_TABELA3" : Campo="YES"
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="":
     MSG_CAMPO=""
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* Rotina p/ Selecionar e Ordernar Registros                                   *
;*******************************************************************************
Proc Seleciona3T()
private wi

While True

  ShowDialog "Emiss„o para 3 Tabelas" Proc "SD_Dialog3T"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
   @ 05,12   Height 11 Width 72

    Label  @ 00,00 "Tabela 1"  For "TG_TABELA"
    Accept @ 01,01 Width 08 "A5"  Picture "#*#" Tag "TG_TABELA" To VSDGTABELA
    Accept @ 01,09 Width 25 "A30" Picture "!*!" Tag "TG_NOMTAB" To VSDGNOMTAB
    
    Label  @ 02,00 "Tabela 2"  For "TG_TABELA2"
    Accept @ 03,01 Width 08 "A5"  Picture "#*#" Tag "TG_TABELA2" To VSDGTABELA2
    Accept @ 03,09 Width 25 "A30" Picture "!*!" Tag "TG_NOMTAB2" To VSDGNOMTAB2
    
    Label  @ 04,00 "Tabela 3"  For "TG_TABELA3"
    Accept @ 05,01 Width 08 "A5"  Picture "#*#" Tag "TG_TABELA3" To VSDGTABELA3
    Accept @ 05,09 Width 25 "A30" Picture "!*!" Tag "TG_NOMTAB3" To VSDGNOMTAB3

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

  EndDialog
  If Not RetVal 
     Then 
          VSDGTABELA =""
          VSDGNOMTAB =""
          
          return false 
  EndIf

  If IsBlank(VSDGTABELA)
     Then Mensagem("Tabela 1 inv lida !")
     else quitloop
  EndIf

endwhile

Tabela=Cria_Temp(PrivDir())
Empty "\\Base\\Sistemas\\Vendas\\Rm_3003"
Copy "\\Base\\Sistemas\\Vendas\\Rm_3003" Tabela
             
tittabela1=VSDGNOMTAB
tittabela2=VSDGNOMTAB2
tittabela3=VSDGNOMTAB3

for wi from 1 to 3

  ClearAll
  
  {ask} typeIn TabelaItens Enter 
  Moveto [Codigo do Item           ] Example "CODIGO"
  {Ask} {Tbprcab} Check
  switch
    case wi=1 : Moveto [Codigo da Tabela] Example "TAB" TypeIn ",~VSDGTABELA"
    case wi=2 : Moveto [Codigo da Tabela] Example "TAB" TypeIn ",~VSDGTABELA2"
    case wi=3 : Moveto [Codigo da Tabela] Example "TAB" TypeIn ",~VSDGTABELA3"
  endswitch
  {Ask} {TbPrite} Check
  Moveto [Codigo da Tabela] Example "TAB"
  Moveto [Codigo do Item  ] Example "CODIGO"
  If SO_REAJUSTADOS
     Then Moveto [Data Ultimo Reajuste] TypeIn ">=~VSDGDTINI2,<=~VSDGDTFIM2"
  EndIf
  If VSDGOPCAO[1]
     Then Moveto [Em Promocao] TypeIn "S"   
  EndIf
  
  switch
    case VSDGVRBRANCO="S" : Moveto [Preco Unitario] TypeIn "<=0"
    case VSDGVRBRANCO="C" : Moveto [Preco Unitario] TypeIn ">0"
  endswitch
  
  Do_It!
  ClearAll
  

  View Tabela
  Coedit "Answer"
  scan
  
    moveto tabela
    moveto [codigo do item]
    locate [Answer->codigo do item]
    if not retval
       then
            end
            down
            [Codigo do Item      ]=[Answer->Codigo do Item      ]
            [Tipo do Item        ]=[Answer->Tipo do Item        ]
            [Descricao do Item   ]=[Answer->Descricao do Item   ]
            [Unidade Fiscal      ]=[Answer->Unidade Fiscal      ]
    endif
    switch
      case wi=1 : [Codigo da Tabela1     ]=[Answer->Codigo da Tabela]
                  [Preco Unitario_Tabela1]=[Answer->Preco Unitario  ]
  
      case wi=2 : [Codigo da Tabela2     ]=[Answer->Codigo da Tabela]
                  [Preco Unitario_Tabela2]=[Answer->Preco Unitario  ]
  
      case wi=3 : [Codigo da Tabela3     ]=[Answer->Codigo da Tabela]
                  [Preco Unitario_Tabela3]=[Answer->Preco Unitario  ]
  
    endswitch
  
    moveto "Answer"  
  endscan 
  Do_It!
  ClearAll
  
endfor

If IsEmpty(Tabela)
   Then MENSAGEM("N„o Existem Registros a Processar")
        delete Tabela
        return false
EndIf

return true
EndProc    ;  (Seleciona3T)



;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog2T(Disparo,Campo,Evento,Elemento)
private 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_TABELA"        : Campo="NO"
            Case Campo="TG_TABELA2"       : Campo="TG_TABELA"
            Case Campo="YES" Or Campo="NO": Campo="TG_TABELA"
          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_TABELA"  : Campo="TG_TABELA2"
                    Case Campo="TG_TABELA2" : Campo="YES"
                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="":
     MSG_CAMPO=""
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;*******************************************************************************
;* Rotina p/ Selecionar e Ordernar Registros                                   *
;*******************************************************************************
Proc Seleciona2T()
private wi

While True

  ShowDialog "Emiss„o para 2 Tabelas" Proc "SD_Dialog2T"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140  
   @ 05,12   Height 09 Width 72

    Label  @ 00,00 "Tabela 1"  For "TG_TABELA"
    Accept @ 01,01 Width 08 "A5"  Picture "#*#" Tag "TG_TABELA" To VSDGTABELA
    Accept @ 01,09 Width 25 "A30" Picture "!*!" Tag "TG_NOMTAB" To VSDGNOMTAB
    
    Label  @ 02,00 "Tabela 2"  For "TG_TABELA2"
    Accept @ 03,01 Width 08 "A5"  Picture "#*#" Tag "TG_TABELA2" To VSDGTABELA2
    Accept @ 03,09 Width 25 "A30" Picture "!*!" Tag "TG_NOMTAB2" To VSDGNOMTAB2
    
    Pushbutton @ 05,22 width 11 "~O~k"      OK     Default Value "Ok" Tag "YES" To BottonValue
    Pushbutton @ 05,36 width 11 "~C~ancela" CANCEL                    Tag "NO"  To BottonValue

  EndDialog
  If Not RetVal 
     Then 
          VSDGTABELA =""
          VSDGNOMTAB =""
          
          return false 
  EndIf

  If IsBlank(VSDGTABELA)
     Then Mensagem("Tabela 1 inv lida !")
     else quitloop
  EndIf

endwhile

Tabela=Cria_Temp(PrivDir())
Empty "\\Base\\Sistemas\\Vendas\\Rm_3003"
Copy "\\Base\\Sistemas\\Vendas\\Rm_3003" Tabela
             
tittabela1=VSDGNOMTAB
tittabela2=VSDGNOMTAB2

for wi from 1 to 2

  ClearAll

  {ask} typeIn TabelaItens Enter 
  Moveto [Codigo do Item           ] Example "CODIGO"
  {Ask} {Tbprcab} Check
  switch
    case wi=1 : Moveto [Codigo da Tabela] Example "TAB" TypeIn ",~VSDGTABELA"
    case wi=2 : Moveto [Codigo da Tabela] Example "TAB" TypeIn ",~VSDGTABELA2"
  endswitch
  {Ask} {TbPrite} Check
  Moveto [Codigo da Tabela] Example "TAB"
  Moveto [Codigo do Item  ] Example "CODIGO"
  If SO_REAJUSTADOS
     Then Moveto [Data Ultimo Reajuste] TypeIn ">=~VSDGDTINI2,<=~VSDGDTFIM2"
  EndIf
  If VSDGOPCAO[1]
     Then Moveto [Em Promocao] TypeIn "S"   
  EndIf
  
  switch
    case VSDGVRBRANCO="S" : Moveto [Preco Unitario] TypeIn "<=0"
    case VSDGVRBRANCO="C" : Moveto [Preco Unitario] TypeIn ">0"
  endswitch
  
  Do_It!
  ClearAll
  

  View Tabela
  Coedit "Answer"
  scan
  
    moveto tabela
    moveto [codigo do item]
    locate [Answer->codigo do item]
    if not retval
       then
            end
            down
            [Codigo do Item      ]=[Answer->Codigo do Item      ]
            [Tipo do Item        ]=[Answer->Tipo do Item        ]
            [Descricao do Item   ]=[Answer->Descricao do Item   ]
            [Unidade Fiscal      ]=[Answer->Unidade Fiscal      ]
    endif
    switch
      case wi=1 : [Codigo da Tabela1     ]=[Answer->Codigo da Tabela]
                  [Preco Unitario_Tabela1]=[Answer->Preco Unitario  ]
  
      case wi=2 : [Codigo da Tabela2     ]=[Answer->Codigo da Tabela]
                  [Preco Unitario_Tabela2]=[Answer->Preco Unitario  ]
  
    endswitch
  
    moveto "Answer"  
  endscan 
  Do_It!
  ClearAll
  
endfor

If IsEmpty(Tabela)
   Then MENSAGEM("N„o Existem Registros a Processar")
        delete Tabela
        return false
EndIf

return true
EndProc    ;  (Seleciona2T)



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

VSDGCODMODELO     = ""
VSDGMODELO        = ""

;ModeloRelatoriosAdd("XXX XX maximo 70 XX")

ModeloRelatoriosAdd("Criar") ; linha obrigatoria inicial
ModeloRelatoriosAdd("01  Tabela + Marca")
ModeloRelatoriosAdd("20  Tabela + Marca, Descri‡Æo Complementar")
ModeloRelatoriosAdd("18  Tabela + C¢digo de Barra, Referˆncia") 
ModeloRelatoriosAdd("18A Tabela + C¢digo de Barra, Referˆncia, Descri‡Æo Complementar") 
ModeloRelatoriosAdd("15  Tabela/Cliente       + Marca")
ModeloRelatoriosAdd("23  Tabela/Representante + Marca")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("02  Tabela/Familia/Marca/Grupo")
ModeloRelatoriosAdd("08  Tabela/Familia/Marca/Grupo+ Localiza‡Æo, C¢d.Item Fornecedor")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("03  Tabela + Referˆncia, Descri‡Æo Complementar")
ModeloRelatoriosAdd("03A Tabela + Referˆncia, Descri‡Æo Complementar - Assinatura")
ModeloRelatoriosAdd("03B Tabela + Referˆncia, Descri‡Æo Complementar, Obs")
ModeloRelatoriosAdd("16  Tabela pela Referˆncia")
ModeloRelatoriosAdd("19  Tabela/Marca + Referˆncia, Fator de ConversÆo") 
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("04  Tabela + Localiza‡Æo, C¢d.Item Fornecedor")
ModeloRelatoriosAdd("17  Tabela + Localiza‡Æo, C¢d.Item Fornecedor II")      
ModeloRelatoriosAdd("13  Tabela + C¢d.Item Fornecedor")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("05  Tabela 3 Condi‡äes Pagto")
ModeloRelatoriosAdd("05B Tabela 6 Condi‡äes Pagto")
ModeloRelatoriosAdd("05C Tabela 6 Condi‡äes Pagto II")
ModeloRelatoriosAdd("06  Tabela/Marca/Familia/Grupo 3 Condi‡äes Pagto")
ModeloRelatoriosAdd("12  Tabela 2 Condi‡äes Pagto + Localiza‡Æo")
ModeloRelatoriosAdd("10  Tabela 3 Condi‡äes Pagto + Pre‡o Unidade Fiscal e de Embalagem")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("07  Tabela/Familia/Grupo + Marca, Embalagem      (Prazo Validade)")
ModeloRelatoriosAdd("07B Tabela/Familia/Grupo + Marca, Embalagem, Obs (Prazo Validade)")
ModeloRelatoriosAdd("09  Tabela/Familia/Grupo + Peso L¡quido, Descri‡Æo Complementar")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("11  Tabela/Familia/Grupo    (espa‡os a esquerda)")
ModeloRelatoriosAdd("14  Tabela/Familia/Grupo II (espa‡os a esquerda)")
ModeloRelatoriosAdd("Separator")
ModeloRelatoriosAdd("21  3 Tabelas")
ModeloRelatoriosAdd("22  2 Tabelas")
ModeloRelatoriosAdd("Fim")
                           
EndProc ;ModeloRelatoriosCarregaLista

;*******************************************************************************
;* Rotina                                                                      *
;*******************************************************************************
Proc SD_Dialog(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"] = -60 Or 
          Evento["KeyCode"] = "F2" : If Campo="TG_FAMI"       Or 
                                        Campo="TG_GRP"        Or 
                                        Campo="TG_MARCA"      Or 
                                        Campo="TG_COR_TECIDO"  
                                        Then ListaRegra_F2() 
                                     EndIf     
     Case Evento["KeyCode"] =  27:
          Temp=False
          Switch
            Case Campo="TG_TABELA"      : Campo="NO"
            Case Campo="TG_CODMODELO"   : Campo="TG_TABELA"
            Case Campo="TG_DESTINAT"    : Campo="TG_CODMODELO"
            Case Campo="TG_REPRESEN"    : Campo="TG_CODMODELO"
            
            Case Campo="TG_FAMI"        : Campo="TG_CODMODELO"
            Case Campo="TG_GRP"         : Campo="TG_FAMI"
            Case Campo="TG_MARCA"       : Campo="TG_GRP"
            Case Campo="TG_COR_TECIDO"  : Campo="TG_MARCA"
            Case Campo="TG_OPRELCODALF" : Campo="TG_COR_TECIDO"
            
            Case Campo="TG_DTINI2"      : Campo="TG_OPRELCODALF"
            Case Campo="TG_DTFIM2"      : Campo="TG_DTINI2"
            
            Case Campo="TG_DTINI"       : Campo="TG_DTFIM2"
            Case Campo="TG_DTFIM"       : Campo="TG_DTINI"

            Case Campo="TG_OPCOES"      : Campo="TG_DTFIM" 
            Case Campo="TG_OPCOES2"     : Campo="TG_OPCOES"
            Case Campo="TG_VRBRANCO"    : Campo="TG_OPCOES2"
                 
            Case Campo="YES" Or Campo="NO" : Campo="TG_TABELA"
          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_TABELA"      :Campo="TG_CODMODELO"
                    Case Campo="TG_CODMODELO"   :

                         switch
                           case VSDGCODMODELO="15" : Campo="TG_DESTINAT"
                              VSDGREPRESEN=""
                              VSDGNOMREPR =""
                           
                           case VSDGCODMODELO="23" : Campo="TG_REPRESEN"
                              VSDGDESTINAT=""
                              VSDGNOMDEST =""
                           
                           otherwise               : Campo="TG_FAMI"
                              VSDGDESTINAT=""
                              VSDGNOMDEST =""
                              
                              VSDGREPRESEN=""
                              VSDGNOMREPR =""
                         endswitch
                    
                    Case Campo="TG_DESTINAT"     : Campo="TG_REPRESEN"
                    Case Campo="TG_REPRESEN"     : Campo="TG_FAMI"
                    Case Campo="TG_FAMI"         : Campo="TG_GRP"
                    Case Campo="TG_GRP"          : Campo="TG_MARCA"
                    Case Campo="TG_MARCA"        : Campo="TG_COR_TECIDO"
                    Case Campo="TG_COR_TECIDO"   : Campo="TG_OPRELCODALF" 
                    Case Campo="TG_OPRELCODALF"  : Campo="TG_DTINI2"
                    
                    Case Campo="TG_DTINI2"       : Campo="TG_DTFIM2" 
                         VSDGDTINI2=ControlValue("TG_DTINI2")
                         If IsBlank(VSDGDTINI2)
                            Then SO_REAJUSTADOS=False
                                 VSDGDTFIM2=BlankDate()
                                 Campo="TG_DTINI"
                         EndIf
                    Case Campo="TG_DTFIM2"       : Campo="TG_DTINI"
                         VSDGDTFIM2=ControlValue("TG_DTFIM2")
                         If IsBlank(VSDGDTINI2) Or VSDGDTFIM2<VSDGDTINI2
                            Then FastMSg("Data Final Invalida !")
                            Else 
                                 SO_REAJUSTADOS=True
                         EndIf

                    Case Campo="TG_DTINI"        : Campo="TG_DTFIM"
                         If IsBlank(VSDGDTINI)
                            Then 
                                 VSDGDTFIM=BlankDate()
                                 Campo="TG_OPCOES"
                         EndIf
                    Case Campo="TG_DTFIM"        : Campo="TG_OPCOES"
                    Case Campo="TG_OPCOES"       : Campo="TG_OPCOES2" 
                    Case Campo="TG_OPCOES2"      : Campo="TG_VRBRANCO"
                    Case Campo="TG_VRBRANCO"     : Campo="YES"
                         VSDGVRBRANCO=ControlValue("TG_VRBRANCO")
                         Switch
                           Case VSDGVRBRANCO="S" : VSDGOPVRBRANCO="SEM VALOR"
                           Case VSDGVRBRANCO="C" : VSDGOPVRBRANCO="COM VALOR"
                           OtherWise             : VSDGOPVRBRANCO="AMBOS"
                                                   VSDGVRBRANCO="A"
                           EndSwitch
                    Case Campo="NO"              : Chave=9

                  EndSwitch
          EndIf
          RefreshDialog
   EndSwitch
EndIf
Switch
  Case Campo="TG_DTFIM2":
     MSG_CAMPO="Informe a Data Final"
  Case Campo="TG_VRBRANCO":
     MSG_CAMPO="Op‡oes dos Itens: C=Com Valor  S=Sem Valor  A=Ambos"
  Case Campo="TG_DTINI2":
     MSG_CAMPO="Somente Itens Reajustados !  Em Branco=Ignorar"
  Case Campo="TG_DTINI":
     MSG_CAMPO="Ver modelos com este T¡tulo !  Em Branco=Ignorar"
  Case Campo="TG_OPCOES" Or Campo="TG_OPCOES2" :
     MensagemCheckBoxes()     
Endswitch
Monta_Prompt(MSG_CAMPO,TECLA)
Return Temp
EndProc

;************************************
;* ROTINA PARA FORMATAR O PRECO     *
;************************************
Proc Preco()

If VSDGCODMODELO="05" or VSDGCODMODELO="05B" or
   VSDGCODMODELO="06" or VSDGCODMODELO="05C"  
   Then Coedit Tabela
   Else Coedit "Answer"
EndIf

Scan for Not IsBlank([Preco Unitario])

If VSDGCODMODELO="04"  or
   VSDGCODMODELO="07"  or
   VSDGCODMODELO="07B" or
   VSDGCODMODELO="08"
   Then PRECO=Format("W10.3,EIC",[Preco Unitario])
        If SubStr(PRECO,Len(PRECO),1)="0"
           Then PRECO=Format("W9.2,EIC",[Preco Unitario])+" "
        EndIf
   Else PRECO=Format("W11.3,EIC",[Preco Unitario])
        If SubStr(PRECO,Len(PRECO),1)="0"
           Then PRECO=Format("W10.2,EIC",[Preco Unitario])+" "
        EndIf
EndIf
[Preco Unitario_Formatado]=PRECO

EndScan
Do_It!

EndProc ;(Preco)

;************************************
;* ROTINA PARA Ler/Gravacao Opcao   *
;************************************
Proc ConfOpcoes(Opcao)
Private Opcao

Switch
  Case Opcao="Ler":
  
       ModeloRelatoriosCarregaLista()

       LeiaINI("RM_0600.ini","VSDGCODMODELO.S.1,VSDGOPRELCODALFDIG.S.null,VSDGNOMOPRELCODALFDIG.S.null")       

  Case Opcao="Gravar":
       LINHA =         GravaExpressao("[Variaveis Modelo de Tabela de Preco]","T","")
       LINHA = LINHA + GravaExpressao("VSDGCODMODELO","S",VSDGCODMODELO)        
       LINHA = LINHA + GravaExpressao("VSDGOPRELCODALFDIG","S",VSDGOPRELCODALFDIG)
       FileWrite "RM_0600.ini" From LINHA          
   
EndSwitch
EndProc ;

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
AutoLib="\\Sistemas\\Cadastro\\Bibliot,\\Sistemas\\Cadastro\\Bib_Show,\\Sistemas\\Cadastro\\Bib_Proc"
If Not IsAssigned(NOMEMPRESA) Then NOMEMPRESA="" EndIf

view"\\sistemas\\vendas\\Tbprite"
CHAVE=1

VSDGTABELA =""
VSDGNOMTAB =""
 
VSDGTABELA2=""
VSDGNOMTAB2=""

VSDGTABELA3=""
VSDGNOMTAB3=""

VSDGDESTINAT      =""
VSDGREPRESEN      =""

VSDGFAMI          =""
VSDGNOMFAMI       =""
VSDGGRP           =""
VSDGNOMGRP        =""
VSDGMARCA         =""
VSDGNOMMARCA      =""
VSDGCORTECIDO     =""
VSDGNOMCORTECIDO  =""

VSDGDTINI         =BlankDate()
VSDGDTFIM         =BlankDate()
VSDGDTINI2        =BlankDate()
VSDGDTFIM2        =BlankDate()

VSDGOPRELCODALF   =""
VSDGVRBRANCO      =""

Array VSDGOPCAO[1]
VSDGOPCAO[1] = False

Array VSDGTITEMPRESA[1]
VSDGTITEMPRESA[1] = False 
                 
Temp_NOMEMPRESA=NOMEMPRESA
ConfOpcoes("Ler")

ListaRegra_Funcao("ListaRegra_TGAtivado","[TG_FAMI],[TG_GRP],[TG_MARCA],[TG_COR_TECIDO]")

While True
  NOMEMPRESA=Temp_NOMEMPRESA

  SO_REAJUSTADOS=False
  OP_SHOW="I"
  ShowDialog "EmissÆo de Tabela de Pre‡o" Proc "SD_Dialog"
  Trigger "OPEN","ARRIVE"
  Key "F1","ENTER","ESC","TAB",
      -104, -105, -106, -107, -108, -109, -110, -111, -112, -113, -139, -140, -60, "F2"   
   @ 01,01 Height 22 Width 80
   
    Label  @ 00,00 "Tabela"  For "TG_TABELA"
    Accept @ 01,01 Width 08 "A5"  Picture "#*#" Tag "TG_TABELA" To VSDGTABELA
    Accept @ 01,09 Width 67 "A70" Picture "!*!" Tag "TG_NOMTAB" To VSDGNOMTAB

    Label  @ 02,00  "Modelo de ~R~elat¢rio"  For "TG_CODMODELO"
    Accept @ 03,01  Width 06 "A3"  Picture "!*!" Tag "TG_CODMODELO" To VSDGCODMODELO
    Accept @ 03,06  Width 70 "A60"  Picture "!*!" Tag "TG_MODELO" To VSDGMODELO
    
    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_NOMDEST"  To VSDGNOMDEST
    
    Label  @ 06,00 "Representante"  For "TG_REPRESEN"
    Accept @ 07,01 Width 07 "A4"  Picture "[&,#][#*#]" Tag "TG_REPRESEN" To VSDGREPRESEN
    Accept @ 07,09 Width 25 "A20" Picture "!*!" Tag "TG_NOMREPR"  To VSDGNOMREPR

    Label  @ 08,00 "Familia"  For "TG_FAMI"
    Accept @ 09,02 Width 06 "A3"  Picture "!*!" Tag "TG_FAMI" To VSDGFAMI
    Accept @ 09,09 Width 25 "A25" Picture "!*!" Tag "TG_NOMFAMI" To VSDGNOMFAMI

    Label  @ 10,00 "Grupo"  For "TG_GRP"
    Accept @ 11,02 Width 06 "A3"  Picture "!*!" Tag "TG_GRP" To VSDGGRP
    Accept @ 11,09 Width 25 "A25" Picture "!*!" Tag "TG_NOMGRP" To VSDGNOMGRP

    Label  @ 12,00 "Marca"  For "TG_MARCA"
    Accept @ 13,02 Width 06 "A3"  Picture "!*!" Tag "TG_MARCA"    To VSDGMARCA
    Accept @ 13,09 Width 25 "A25" Picture "!*!" Tag "TG_NOMMARCA" To VSDGNOMMARCA

    Label  @ 14,00 "Cor do Tecido"  For "TG_COR_TECIDO"
    Accept @ 15,01 Width 07 "A4"  Picture "!*!" Tag "TG_COR_TECIDO"    To VSDGCORTECIDO
    Accept @ 15,09 Width 25 "A25" Picture "!*!" Tag "TG_NOMCOR_TECIDO" To VSDGNOMCORTECIDO
    
    Label  @ 16,00 "Ordem" For "TG_OPRELCODALF"
    Accept @ 17,04 Width 04 "A1"  Picture "1,2" Tag "TG_OPRELCODALF" To VSDGOPRELCODALF
    Accept @ 17,09 Width 25 "A12" Picture "!*!" Tag "TG_NOMOPRELCODALF" To VSDGNOMOPRELCODALF

    Label  @ 04,35 "Per¡odo Itens Reajustados de" For "TG_DTINI2"
    Accept @ 05,38 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI2" To VSDGDTINI2
    Label  @ 05,51 "at‚" For "TG_DTFIM2"
    Accept @ 05,56 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM2" To VSDGDTFIM2

    Label  @ 06,35 "Per¡odo Prazo Validade" For "TG_DTINI"
    Accept @ 07,38 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTINI" To VSDGDTINI
    Label  @ 07,51 "at‚" For "TG_DTFIM"
    Accept @ 07,56 Width 13 "D"  Picture "#[#];.##;.##[##]" Tag "TG_DTFIM" To VSDGDTFIM

    CheckBoxes @10,35 Height 3 Width 33 Tag "TG_OPCOES"
    "Somente Itens em Promo‡„o" to VSDGOPCAO[1]
    
    CheckBoxes @11,35 Height 3 Width 33 Tag "TG_OPCOES2"
    "Op‡„o Nome Empresa no Cabe‡alho" to VSDGTITEMPRESA[1]

    Label  @ 14,35 "Op‡äes de Valor" For "TG_VRBRANCO"
    Accept @ 15,39 Width 04 "A1"  Picture "A,C,S" Tag "TG_VRBRANCO" To VSDGVRBRANCO
    Accept @ 15,44 Width 25 "A20" Picture "!*!" Tag "TG_OPVRBRANCO" To VSDGOPVRBRANCO
               
    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

  EndDialog
  If Not RetVal
     Then CHAVE=9
          QuitLoop
  EndIf
  if not ValidarModelosRelatorios() then loop endif         
  
  Dispositivo()
  If OK="" Then Loop EndIf

  AGUARDE("Aguarde, Gerando Relat¢rio")
            
  If Not VSDGTITEMPRESA[1]
     Then NOMEMPRESA=""
  EndIf

  SelecionaItens()
  
  Switch
    Case VSDGCODMODELO="01" : 
         Seleciona()                                                  
         If Not IsEmpty("Answer")
            Then Ajusta_Answer("RM_3000")    
                 CopyReport "\\Base\\Sistemas\\Vendas\\RM_3000" "1" "Answer" "R"
                 If VSDGOPRELCODALF="1"
                    Then Seta_Ordem_Report("Answer","R","Codigo do Item","Codigo do Item"   ,"")
                    Else Seta_Ordem_Report("Answer","R","Codigo do Item","Descricao do Item","")
                 EndIf
                 Preco()
                 IMPRIREL("Answer","R")
         EndIf
    Case VSDGCODMODELO="02" :
         Seleciona()
         If Not IsEmpty("Answer")
            Then Ajusta_Answer("RM_3000")    
                 CopyReport "\\Base\\Sistemas\\Vendas\\RM_3000" "3" "Answer" "R"
                 If VSDGOPRELCODALF="1"
                    Then Seta_Ordem_Report("Answer","R","Codigo do Item","Codigo do Item"   ,"")
                    Else Seta_Ordem_Report("Answer","R","Codigo do Item","Descricao do Item","")
                 EndIf
                 Preco()
                 IMPRIREL("Answer","R")
         EndIf
    Case VSDGCODMODELO="03" :
         Seleciona()    
         If Not IsEmpty("Answer")
            Then Ajusta_Answer("RM_3000")    
                 CopyReport "\\Base\\Sistemas\\Vendas\\RM_3000" "11" "Answer" "R"
                 If VSDGOPRELCODALF="1"
                    Then Seta_Ordem_Report("Answer","R","Codigo do Item","Codigo do Item"   ,"")
                    Else Seta_Ordem_Report("Answer","R","Codigo do Item","Descricao do Item","")
                 EndIf
                 Preco()
                 IMPRIREL("Answer","R")
         EndIf
    Case VSDGCODMODELO="03A" : 
         Seleciona()    
         If Not IsEmpty("Answer")
            Then Ajusta_Answer("RM_3000")    
                 CopyReport "\\Base\\Sistemas\\Vendas\\RM_3000" "12" "Answer" "R"
                 If VSDGOPRELCODALF="1"
                    Then Seta_Ordem_Report("Answer","R","Codigo do Item","Codigo do Item"   ,"")
                    Else Seta_Ordem_Report("Answer","R","Codigo do Item","Descricao do Item","")
                 EndIf
                 Preco()
                 IMPRIREL("Answer","R")
         EndIf
    Case VSDGCODMODELO="03B" :
         Seleciona()    
         If Not IsEmpty("Answer")
            Then Ajusta_Answer("RM_3000")    
                 CopyReport "\\Base\\Sistemas\\Vendas\\RM_3000" "5" "Answer" "R"
                 If VSDGOPRELCODALF="1"
                    Then Seta_Ordem_Report("Answer","R","Codigo do Item","Codigo do Item"   ,"")
                    Else Seta_Ordem_Report("Answer","R","Codigo do Item","Descricao do Item","")
                 EndIf
                 Preco()
                 IMPRIREL("Answer","R")
         EndIf
    Case VSDGCODMODELO="04" : 
         Seleciona()                                                  
         If Not IsEmpty("Answer")
            Then Ajusta_Answer("RM_3000")    
                 CopyReport "\\Base\\Sistemas\\Vendas\\RM_3000" "7" "Answer" "R"
                 If VSDGOPRELCODALF="1"
                    Then Seta_Ordem_Report("Answer","R","Codigo do Item","Codigo do Item"   ,"")
                    Else Seta_Ordem_Report("Answer","R","Codigo do Item","Descricao do Item","")
                 EndIf
                 Preco()
                 IMPRIREL("Answer","R")
         EndIf
    Case VSDGCODMODELO="05" : 
         Array DESCPAGTO[6]
         Array TAXA[6]
         Tabela=Cria_Temp(PrivDir())
         Empty "\\Base\\Sistemas\\Vendas\\Rm_0900"
         Copy "\\Base\\Sistemas\\Vendas\\Rm_0900" Tabela
         Seleciona2()
         If DESCPAGTO[1]="" and TAXA[1]=BlankNum()
            Then MENSAGEM("N„o Existe Condi‡”es de Pagamento para esta Tabela !")
                 Loop
         Endif
         If IsEmpty(Tabela)
            Then MENSAGEM("N„o Existem Registros a Processar")
                 Delete Tabela
                 Loop
         EndIf
         Ajusta_Dados("RM_0900") 
         If VSDGOPRELCODALF="1"
           Then IMPRIREL(Tabela,"2")
           Else IMPRIREL(Tabela,"3")
         Endif
    Case VSDGCODMODELO="05B" : 
         Array DESCPAGTO[6]
         Array TAXA[6]
         Tabela=Cria_Temp(PrivDir())
         Empty "\\Base\\Sistemas\\Vendas\\Rm_0900"
         Copy "\\Base\\Sistemas\\Vendas\\Rm_0900" Tabela
         Seleciona2()
         If DESCPAGTO[1]="" and TAXA[1]=BlankNum()
            Then MENSAGEM("N„o Existe Condi‡”es de Pagamento para esta Tabela !")
                 Loop
         Endif
         If IsEmpty(Tabela)
            Then MENSAGEM("N„o Existem Registros a Processar")
                 Delete Tabela
                 Loop
         EndIf
         Ajusta_Dados("RM_0900") 
         If VSDGOPRELCODALF="1"
            Then IMPRIREL(Tabela,"R")
            Else IMPRIREL(Tabela,"1")
         Endif
    Case VSDGCODMODELO="06" : 
         Array DESCPAGTO[6]
         Array TAXA[6]
         Tabela=Cria_Temp("\\Sistemas\\Vendas\\")
         Empty "\\Base\\Sistemas\\Vendas\\Rm_0901"
         Copy "\\Base\\Sistemas\\Vendas\\Rm_0901" Tabela
         Seleciona3()
         If DESCPAGTO[1]="" and TAXA[1]=BlankNum()
            Then MENSAGEM("N„o Existe Condi‡”es de Pagamento para esta Tabela !")
                 Loop
         Endif
         If IsEmpty(Tabela)
            Then MENSAGEM("N„o Existem Registros a Processar")
                 Loop
         EndIf
         If VSDGOPRELCODALF="1"
            Then IMPRIREL(Tabela,"7")
            Else IMPRIREL(Tabela,"8")
         Endif
    Case VSDGCODMODELO="05C" : 
         Array DESCPAGTO[6]
         Array TAXA[6]
         Tabela=Cria_Temp("\\Sistemas\\Vendas\\")
         Empty "\\Base\\Sistemas\\Vendas\\Rm_0901"
         Copy "\\Base\\Sistemas\\Vendas\\Rm_0901" Tabela
         Seleciona3()
         If DESCPAGTO[1]="" and TAXA[1]=BlankNum()
            Then MENSAGEM("N„o Existe Condi‡”es de Pagamento para esta Tabela !")
                 Loop
         Endif
         If IsEmpty(Tabela)
            Then MENSAGEM("N„o Existem Registros a Processar")
                 Loop
         EndIf
         If VSDGOPRELCODALF="1"
            Then IMPRIREL(Tabela,"R")
            Else IMPRIREL(Tabela,"1")
         Endif
    Case VSDGCODMODELO="10" :
         Array DESCPAGTO[6]
         Array TAXA[6]
         Tabela=Cria_Temp(PrivDir())
         Empty "\\Base\\Sistemas\\Vendas\\Rm_0900"
         Copy "\\Base\\Sistemas\\Vendas\\Rm_0900" Tabela
         Seleciona2()
         If DESCPAGTO[1]="" and TAXA[1]=BlankNum()
            Then MENSAGEM("N„o Existe Condi‡”es de Pagamento para esta Tabela !")
                 Loop
         Endif
         If IsEmpty(Tabela)
            Then MENSAGEM("N„o Existem Registros a Processar")
                 Delete Tabela
                 Loop
         EndIf
         Ajusta_Dados("RM_0900") 
         If VSDGOPRELCODALF="1"
            Then IMPRIREL(Tabela,"6")
            Else IMPRIREL(Tabela,"7")
         Endif
    Case VSDGCODMODELO="12" : 
         Array DESCPAGTO[6]
         Array TAXA[6]
         Tabela=Cria_Temp(PrivDir())
         Empty "\\Base\\Sistemas\\Vendas\\Rm_0900"
         Copy "\\Base\\Sistemas\\Vendas\\Rm_0900" Tabela
         Seleciona2()
         If DESCPAGTO[1]="" and TAXA[1]=BlankNum()
            Then MENSAGEM("N„o Existe Condi‡”es de Pagamento para esta Tabela !")
                 Loop
         Endif
         If IsEmpty(Tabela)
            Then MENSAGEM("N„o Existem Registros a Processar")
                 Delete Tabela
                 Loop
         EndIf
         Ajusta_Dados("RM_0900")
         If VSDGOPRELCODALF="1"
            Then IMPRIREL(Tabela,"8")
            Else IMPRIREL(Tabela,"8")
         Endif
    Case VSDGCODMODELO="13" :
         Array DESCPAGTO[6]
         Array TAXA[6]
         Tabela=Cria_Temp(PrivDir())
         Empty "\\Base\\Sistemas\\Vendas\\Rm_3001"
         Copy "\\Base\\Sistemas\\Vendas\\Rm_3001" Tabela
         Seleciona2()
         If DESCPAGTO[1]="" and TAXA[1]=BlankNum()
            Then MENSAGEM("N„o Existe Condi‡”es de Pagamento para esta Tabela !")
                 Loop
         Endif
         If IsEmpty(Tabela)
            Then MENSAGEM("N„o Existem Registros a Processar")
                 Delete Tabela
                 Loop
         EndIf
         Ajusta_Dados("RM_3001")          
         If VSDGOPRELCODALF="1"
            Then IMPRIREL(Tabela,"5")
            Else IMPRIREL(Tabela,"2")
         Endif
    Case VSDGCODMODELO="07" : 
         Seleciona()
         If Not IsEmpty("Answer")
            Then Ajusta_Answer("RM_3000")    
                 CopyReport "\\Base\\Sistemas\\Vendas\\RM_3000" "13" "Answer" "R"
                 If VSDGOPRELCODALF="1"
                    Then Seta_Ordem_Report("Answer","R","Codigo do Item","Codigo do Item"   ,"")
                    Else Seta_Ordem_Report("Answer","R","Codigo do Item","Descricao do Item","")
                 EndIf
                 Preco()
                 IMPRIREL("Answer","R")
         EndIf
    Case VSDGCODMODELO="07B" : 
         Seleciona()
         If Not IsEmpty("Answer")
            Then              
                 Switch
                  Case VSDGOPRELCODALF = "1":
                       CopyReport "\\Base\\Sistemas\\Vendas\\RM_3001" "7"  "Answer" "R"
                  Case VSDGOPRELCODALF = "2":
                       CopyReport "\\Base\\Sistemas\\Vendas\\RM_3001" "8"  "Answer" "R"
                 EndSwitch
                 Preco()
                 IMPRIREL("Answer","R")
         EndIf 
    Case VSDGCODMODELO="08" : 
         Seleciona()
         If Not IsEmpty("Answer")
            Then If DISPOSITIVO_OPCAO<>"A" Then Ajusta_Answer("RM_3005") EndIf
                 If VSDGOPRELCODALF = "1"
                    Then CopyReport "\\Base\\Sistemas\\Vendas\\RM_3005" "R" "Answer" "R"
                    Else CopyReport "\\Base\\Sistemas\\Vendas\\RM_3005" "1" "Answer" "R"
                 EndIf
                 Preco()
                 IMPRIREL("Answer","R")
         EndIf
    Case VSDGCODMODELO="09" :
         Seleciona()
         If Not IsEmpty("Answer")
            Then If DISPOSITIVO_OPCAO<>"A" Then Ajusta_Answer("RM_3005") EndIf
                 If VSDGOPRELCODALF = "1"
                    Then CopyReport "\\Base\\Sistemas\\Vendas\\RM_3005" "2" "Answer" "R"
                    Else CopyReport "\\Base\\Sistemas\\Vendas\\RM_3005" "3" "Answer" "R"
                 EndIf
                 Preco()
                 IMPRIREL("Answer","R")
         EndIf
    Case VSDGCODMODELO="14" : 
         Seleciona()
         If Not IsEmpty("Answer")
            Then If DISPOSITIVO_OPCAO<>"A" Then Ajusta_Answer("RM_3005") EndIf
                 If VSDGOPRELCODALF = "1"
                    Then CopyReport "\\Base\\Sistemas\\Vendas\\RM_3005" "4" "Answer" "R"
                    Else CopyReport "\\Base\\Sistemas\\Vendas\\RM_3005" "5" "Answer" "R"
                 EndIf
                 Preco()
                 CI_12CPP="MÏ1"
                 CI_INEG ="E"
                 CI_FNEG ="F"
                 IMPRIREL("Answer","R")
         EndIf
    Case VSDGCODMODELO="11" : 
         Seleciona()
         If Not IsEmpty("Answer")
            Then If DISPOSITIVO_OPCAO<>"A" Then Ajusta_Answer("RM_3005") EndIf
                 If VSDGOPRELCODALF = "1"
                    Then CopyReport "\\Base\\Sistemas\\Vendas\\RM_3005" "4" "Answer" "R"
                    Else CopyReport "\\Base\\Sistemas\\Vendas\\RM_3005" "5" "Answer" "R"
                 EndIf
                 Preco()
                 IMPRIREL("Answer","R")
         EndIf     
    Case VSDGCODMODELO="15" :
         Seleciona4()
         If Not IsEmpty("Answer")
            Then CopyReport "\\Base\\Sistemas\\Vendas\\RM_3002" "R" "Answer" "R"
                 If VSDGOPRELCODALF="1"
                    Then Seta_Ordem_Report("Answer","R","Codigo do Item","Codigo do Item"   ,"")
                    Else Seta_Ordem_Report("Answer","R","Codigo do Item","Descricao do Item","")
                 EndIf
                 Preco()
                 IMPRIREL("Answer","R")
         EndIf
    Case VSDGCODMODELO="16" : 
         Seleciona()
         If Not IsEmpty("Answer")
            Then Ajusta_Answer("RM_3001")
                 If VSDGOPRELCODALF = "1"
                    Then CopyReport "\\Base\\Sistemas\\Vendas\\RM_3001" "3" "Answer" "R"
                    Else CopyReport "\\Base\\Sistemas\\Vendas\\RM_3001" "4" "Answer" "R"
                 EndIf
                 Preco()
                 IMPRIREL("Answer","R")
         EndIf
    Case VSDGCODMODELO="17" : 
         Seleciona()    
         If Not IsEmpty("Answer")
            Then If DISPOSITIVO_OPCAO<>"A" Then Ajusta_Answer("RM_3001") EndIf 
                 CopyReport "\\Base\\Sistemas\\Vendas\\RM_3001" "6" "Answer" "R"
                 Preco()
                 IMPRIREL("Answer","R")
         EndIf
    Case VSDGCODMODELO="18" :
         Seleciona()            
         If Not IsEmpty("Answer")
            Then Ajusta_Answer("RM_3001A")
                 CopyReport "\\Base\\Sistemas\\Vendas\\RM_3001A" "9" "Answer" "R"
                 If VSDGOPRELCODALF="1"
                    Then Seta_Ordem_Report("Answer","R","Codigo do Item","Codigo do Item"   ,"")
                    Else Seta_Ordem_Report("Answer","R","Codigo do Item","Descricao do Item","")
                 EndIf
                 Preco()
                 IMPRIREL("Answer","R")
         EndIf
    Case VSDGCODMODELO="18A" : 
         Seleciona()            
         If Not IsEmpty("Answer")
            Then Ajusta_Answer("RM_3001A")
                 CopyReport "\\Base\\Sistemas\\Vendas\\RM_3001A" "10" "Answer" "R"
                 If VSDGOPRELCODALF="1"
                    Then Seta_Ordem_Report("Answer","R","Codigo do Item","Codigo do Item"        ,"")
                    Else Seta_Ordem_Report("Answer","R","Codigo do Item","Descricao Complementar","")
                 EndIf
                 Preco()
                 IMPRIREL("Answer","R")
         EndIf
    Case VSDGCODMODELO="19" :
         Seleciona()
         If Not IsEmpty("Answer")
            Then If DISPOSITIVO_OPCAO<>"A" Then Ajusta_Answer("RM_3001") EndIf 
                 CopyReport "\\Base\\Sistemas\\Vendas\\RM_3001" "11" "Answer" "R"
                 Preco()
                 IMPRIREL("Answer","R")
         EndIf
    Case VSDGCODMODELO="20" : 
         Seleciona()                                                  
         If Not IsEmpty("Answer")
            Then Ajusta_Answer("RM_3000")    
                 CopyReport "\\Base\\Sistemas\\Vendas\\RM_3000" "14" "Answer" "R"
                 If VSDGOPRELCODALF="1"
                    Then Seta_Ordem_Report("Answer","R","Codigo do Item","Codigo do Item"   ,"")
                    Else Seta_Ordem_Report("Answer","R","Codigo do Item","Descricao do Item","")
                 EndIf
                 Preco()
                 IMPRIREL("Answer","R")
         EndIf
    Case VSDGCODMODELO="21" : 
         if Seleciona3T()
            Then 
                 If VSDGOPRELCODALF="1"
                   Then Seta_Ordem_Report(Tabela,"R","Codigo do Item","Codigo do Item","") 
                   Else Seta_Ordem_Report(Tabela,"R","Codigo do Item","Descricao do Item","")
                 Endif
                 IMPRIREL(Tabela,"R")
                 
                 Delete Tabela
         endif
    Case VSDGCODMODELO="22" : 
         if Seleciona2T()
            Then 
                 If VSDGOPRELCODALF="1"
                    Then Seta_Ordem_Report(Tabela,"1","Codigo do Item","Codigo do Item","") 
                    Else Seta_Ordem_Report(Tabela,"1","Codigo do Item","Descricao do Item","")
                 Endif
                 IMPRIREL(Tabela,"1")
                 
                 Delete Tabela
         endif
    Case VSDGCODMODELO="23" : 
         Seleciona5()
         If Not IsEmpty("Answer")
            Then 
                 CopyReport "\\Base\\Sistemas\\Vendas\\RM_3002" "1" "Answer" "R"
                 If VSDGOPRELCODALF="1"
                    Then Seta_Ordem_Report("Answer","R","Codigo do Item","Codigo do Item"   ,"")
                    Else Seta_Ordem_Report("Answer","R","Codigo do Item","Descricao do Item","")
                 EndIf
                 Preco()
                 IMPRIREL("Answer","R")
         EndIf
  EndSwitch       
  If Istable("Answer")    Then Delete "Answer"    EndIf
  If Istable(TabelaItens) Then Delete TabelaItens EndIf
  ConfOpcoes("Gravar")
  
  If CHAVE=9 Then QuitLoop EndIf
  
EndWhile
Do_It!
ClearAll

Release Vars All
Release Procs All