;** Rm_3070 ********************************************************************
;* Resumo de Vendas por Familia/Produto                                        *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 17/09/2002 por Anivel Augusto Rodrigues
;Ultima Alteracao: 05/09/2006 por Nikolas M. Mateus
;Motivo Alteracao: Invertido no calculo da embalagem para dividir pela quantidade
;Ultima Alteracao: 15/12/2008 por Anivel Augusto Rodrigues
;Motivo Alteracao: TOTALIZA EMPRESAS
;Ultima Alteracao: 10/07/2012 por Bruno Carvalho
;Motivo Alteracao: Adicionado filtro na ask do NotaI "Situacao_Item"
;Ultima Alteracao: 03/09/2013 por Anivel Augusto Rodrigues 
;Motivo Alteracao: Inclusao opcao sintetico
;Ultima Alteracao: 16/01/2015 por Andrey Fillipe 
;Motivo Alteracao: Adicionado Coluna Localizacao RM_3100 "12" e "13" Analitico
;Ultima Alteracao: 12/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes showdialog                   
;Ultima Alteracao: 17/12/2016 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes TG_EMPRESATE                 
;Ultima Alteracao: 24/07/2017 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes modelo 03 e filro tipo pessoa
;Ultima Alteracao: 22/02/2018 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes erro modelo 02   
;Ultima Alteracao: 18/01/2020 por Bruno Carvalho                                     
;Motivo Alteracao: Adicionado scripts "RM_3060" (16), "RM_3063" (1Q), "RM_3062" (1A),"RM_0170" (42) neste script "RM_0370" (15)
;Ultima Alteracao: 18/01/2020 por Bruno Carvalho
;Motivo Alteracao: Ajustes chamada principal RM_3020           
;Ultima Alteracao: 13/04/2021 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado TG_COR_TECIDO                  

;*******************************************************************************
;* Rotina p/ Selecionar Registros                                              *
;*******************************************************************************
Proc RM_3060b_Seleciona()
ClearAll

;****** Vendas *****************************************************************
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI")
   Then  if Not IsBlank(VSDGTIPOEST) or
            Not IsBlank(VSDGFAMI)    or
            Not IsBlank(VSDGGRP)     or
            Not IsBlank(VSDGMARCA)   or
            Not IsBlank(VSDGNCM)     or
            Not IsBlank(VSDGREFERENCIA) 
            Then {Ask} {\\Sistemas\\Estoque\\Itens}
                 Moveto [Codigo do Item         ] Example "cite"
                 Ask_EstoqueTpItem("") 
                 Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."
                 Moveto [Codigo do Grupo        ] TypeIn "~VSDGGRP.."
                 Moveto [Codigo da Marca        ] TypeIn "~VSDGMARCA.."
                 Moveto [NCM                    ] TypeIn "~VSDGNCM.."
                 Moveto [Referencia             ] TypeIn "~VSDGREFERENCIA.."    
        EndIf                                                                   
        If VSDGAREA<>""
           Then {Ask} {\\Sistemas\\Cadastro\\Destinat}
                Moveto [Codigo                 ] Example "clie"
                Moveto [Codigo da Area         ] TypeIn "~VSDGAREA.."
        EndIf        
        {Ask} TypeIn "\\Sistemas\\Cadastro\\Represen" Enter
        Moveto [Codigo do Representante] Example "crep"
        If VSDGGERENCIA<>""
           Then Moveto [Codigo da Gerencia     ] Check TypeIn "~VSDGGERENCIA"
           Else Moveto [Codigo da Gerencia     ] Check TypeIn "~VSDGGERENCIA.."
        EndIf                        
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
        Moveto [Codigo da Empresa      ] Check Example "cemp" TypeIn ", ~VSDGEMPRESA2.."
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"
        If VSDGOPDTES="2"
           Then Moveto [Data de Saida  ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
           Else Moveto [Data de Emissao] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
        EndIf
        switch
          case ListaRegra_VSDGDESTIN_Ativo  : Moveto [Codigo da Destinacao] TypeIn ListaRegra_VSDGDESTIN
          otherwise                         : Moveto [Codigo da Destinacao] TypeIn "~VSDGDESTIN.."
        endswitch
        Moveto [Descricao da Destinacao] TypeIn "..VEND.. or ..SERV.. or ..SAIDA.."
        Moveto [Codigo do Representante] Example "crep" TypeIn ", ~VSDGREPRESEN.."
        Moveto [Tipo Movimento Estoque ] TypeIn "S"
        Moveto [Situacao               ] TypeIn "Not C"
        If VSDGAREA<>""
           Then Moveto [Codigo         ] Example "clie" TypeIn ", ~VSDGDESTINAT.."
           Else Moveto [Codigo         ]                TypeIn "~VSDGDESTINAT.."
        EndIf
        if VSDGCODMODELO="15C" 
           then moveto [Tipo Pessoa    ] typein "JURIDICA"
        endif   
        
        {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 [Codigo do Item         ] Check
        if Not IsBlank(VSDGTIPOEST) or
           Not IsBlank(VSDGFAMI)    or
           Not IsBlank(VSDGGRP)     or                                      
           Not IsBlank(VSDGMARCA)   or
           Not IsBlank(VSDGNCM)     or
           Not IsBlank(VSDGREFERENCIA)
           Then Moveto [Codigo do Item ] Example "cite" TypeIn ", ~VSDGITEM.."   
           Else Moveto [Codigo do Item ]                TypeIn   "~VSDGITEM.."    
        EndIf
        Moveto [Descricao do Item      ] Check
        Moveto [Unidade Fiscal         ] Check
        Moveto [Quantidade             ] TypeIn "Calc Sum as Quantidade"
        Moveto [Preco Total            ] TypeIn "Calc Sum as Preco Total"
        Moveto [Valor Desconto Total   ] TypeIn "Calc Sum as Valor Desconto Total"
        Moveto [Situacao_Item          ] TypeIn "Not C"
        Switch
          Case ListaRegra_VSDGCORTECIDO_Ativo : Moveto [Codigo da Cor_Tecido]       TypeIn ListaRegra_VSDGCORTECIDO
          Otherwise                           : Moveto [Codigo da Cor_Tecido]       TypeIn "~VSDGCORTECIDO.."
        EndSwitch
        Do_It!
        ClearAll

        RM_3060b_Adiciona_Dados("VENDAS")
EndIf

;****** Devolucoes - Estoque ***************************************************
If IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEC") And
   IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEI")
   Then if Not IsBlank(VSDGTIPOEST) or
           Not IsBlank(VSDGFAMI)    or
           Not IsBlank(VSDGGRP)     or
           Not IsBlank(VSDGMARCA)   or
           Not IsBlank(VSDGNCM)     or
           Not IsBlank(VSDGREFERENCIA) 
           Then {Ask} {\\Sistemas\\Estoque\\Itens}
                Moveto [Codigo do Item         ] Example "cite"
                Ask_EstoqueTpItem("") 
                Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."
                Moveto [Codigo do Grupo        ] TypeIn "~VSDGGRP.."
                Moveto [Codigo da Marca        ] TypeIn "~VSDGMARCA.."
                Moveto [NCM                    ] TypeIn "~VSDGNCM.."
                Moveto [Referencia             ] TypeIn "~VSDGREFERENCIA.."    
        EndIf                                                              
        If VSDGAREA<>""
           Then {Ask} {\\Sistemas\\Cadastro\\Destinat}
                Moveto [Codigo                 ] Example "clie"
                Moveto [Codigo da Area         ] TypeIn "~VSDGAREA.."
        EndIf
        {Ask} TypeIn "\\Sistemas\\Cadastro\\Represen" Enter
        Moveto [Codigo do Representante] Example "crep"
        If VSDGGERENCIA<>""
           Then Moveto [Codigo da Gerencia     ] Check TypeIn "~VSDGGERENCIA"
           Else Moveto [Codigo da Gerencia     ] Check TypeIn "~VSDGGERENCIA.."
        EndIf
        {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEC" Enter
        Moveto [Numero do Lancamento   ] Example "nlan"
        Moveto [Codigo da Empresa      ] Check Example "cemp" TypeIn ", ~VSDGEMPRESA2.."
        Moveto [Data de Entrada        ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
        Moveto [Tipo de Operacao       ] TypeIn "D"
        Moveto [Codigo do Representante] Example "crep" TypeIn ", ~VSDGREPRESEN.."
        If VSDGAREA<>""
           Then Moveto [Codigo         ] Example "clie" TypeIn ", ~VSDGDESTINAT.."
           Else Moveto [Codigo         ]                TypeIn "~VSDGDESTINAT.."
        EndIf
        if VSDGCODMODELO="15C" 
           then moveto [Tipo Pessoa    ] typein "JURIDICA"
        endif   
        
        {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEI" Enter
        Moveto [Numero do Lancamento   ] Example "nlan"
        Moveto [Codigo do Item         ] Check
        if Not IsBlank(VSDGTIPOEST) or
           Not IsBlank(VSDGFAMI)    or
           Not IsBlank(VSDGGRP)     or                                      
           Not IsBlank(VSDGMARCA)   or
           Not IsBlank(VSDGNCM)     or
           Not IsBlank(VSDGREFERENCIA)
           Then Moveto [Codigo do Item ] Example "cite" TypeIn ", ~VSDGITEM.."   
           Else Moveto [Codigo do Item ]                TypeIn   "~VSDGITEM.."    
        EndIf
        Moveto [Descricao do Item      ] Check
        Moveto [Unidade Fiscal         ] Check
        Moveto [Quantidade             ] TypeIn "Calc Sum as Quantidade"
        Moveto [Preco Total            ] TypeIn "Calc Sum as Preco Total"
        Moveto [Valor Desconto Total   ] TypeIn "Calc Sum as Valor Desconto Total"
        Switch
          Case ListaRegra_VSDGCORTECIDO_Ativo : Moveto [Codigo da Cor_Tecido]       TypeIn ListaRegra_VSDGCORTECIDO
          Otherwise                           : Moveto [Codigo da Cor_Tecido]       TypeIn "~VSDGCORTECIDO.."
        EndSwitch
        Do_It!
        ClearAll

        RM_3060b_Adiciona_Dados("DEVOLUCOES")
EndIf

;****** Devolucoes - Vendas ****************************************************
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI")
   Then if Not IsBlank(VSDGTIPOEST) or
           Not IsBlank(VSDGFAMI)    or
           Not IsBlank(VSDGGRP)     or
           Not IsBlank(VSDGMARCA)   or
           Not IsBlank(VSDGNCM)     or
           Not IsBlank(VSDGREFERENCIA) 
           Then {Ask} {\\Sistemas\\Estoque\\Itens}
                Moveto [Codigo do Item         ] Example "cite"
                Ask_EstoqueTpItem("") 
                Moveto [Codigo da Familia      ] TypeIn "~VSDGFAMI.."
                Moveto [Codigo do Grupo        ] TypeIn "~VSDGGRP.."
                Moveto [Codigo da Marca        ] TypeIn "~VSDGMARCA.."
                Moveto [NCM                    ] TypeIn "~VSDGNCM.."
                Moveto [Referencia             ] TypeIn "~VSDGREFERENCIA.."    
        EndIf
        If VSDGAREA<>""
           Then {Ask} {\\Sistemas\\Cadastro\\Destinat}
                Moveto [Codigo                 ] Example "clie"
                Moveto [Codigo da Area         ] TypeIn "~VSDGAREA.."
        EndIf
        {Ask} TypeIn "\\Sistemas\\Cadastro\\Represen" Enter
        Moveto [Codigo do Representante] Example "crep"
        If VSDGGERENCIA<>""
           Then Moveto [Codigo da Gerencia     ] Check TypeIn "~VSDGGERENCIA"
           Else Moveto [Codigo da Gerencia     ] Check TypeIn "~VSDGGERENCIA.."
        EndIf
        {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
        Moveto [Codigo da Empresa      ] Check Example "cemp" TypeIn ", ~VSDGEMPRESA2.."
        Moveto [Numero do Documento    ] Example "ndoc"
        Moveto [Serie do Documento     ] Example "sdoc"
        If VSDGOPDTES="2"
           Then Moveto [Data de Saida  ] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
           Else Moveto [Data de Emissao] TypeIn ">=~VSDGDTINI,<=~VSDGDTFIM"
        EndIf
        Moveto [Descricao da Destinacao] TypeIn "..DEVOL.."
        Moveto [Codigo do Representante] Example "crep" TypeIn ", ~VSDGREPRESEN.."
        Moveto [Tipo Movimento Estoque ] TypeIn "E"
        Moveto [Situacao               ] TypeIn "Not C"
        If VSDGAREA<>""
           Then Moveto [Codigo         ] Example "clie" TypeIn ", ~VSDGDESTINAT.."
           Else Moveto [Codigo         ]                TypeIn "~VSDGDESTINAT.."
        EndIf
        if VSDGCODMODELO="15C" 
           then moveto [Tipo Pessoa    ] typein "JURIDICA"
        endif   
        
        {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 [Codigo do Item         ] Check
        if Not IsBlank(VSDGTIPOEST) or
           Not IsBlank(VSDGFAMI)    or
           Not IsBlank(VSDGGRP)     or                                      
           Not IsBlank(VSDGMARCA)   or
           Not IsBlank(VSDGNCM)     or
           Not IsBlank(VSDGREFERENCIA)
           Then Moveto [Codigo do Item ] Example "cite" TypeIn ", ~VSDGITEM.."   
           Else Moveto [Codigo do Item ]                TypeIn   "~VSDGITEM.."    
        EndIf
        Moveto [Descricao do Item      ] Check
        Moveto [Unidade Fiscal         ] Check
        Moveto [Quantidade             ] TypeIn "Calc Sum as Quantidade"
        Moveto [Preco Total            ] TypeIn "Calc Sum as Preco Total"
        Moveto [Valor Desconto Total   ] TypeIn "Calc Sum as Valor Desconto Total"
        Moveto [Situacao_Item          ] TypeIn "Not C"
        Switch
          Case ListaRegra_VSDGCORTECIDO_Ativo : Moveto [Codigo da Cor_Tecido]       TypeIn ListaRegra_VSDGCORTECIDO
          Otherwise                           : Moveto [Codigo da Cor_Tecido]       TypeIn "~VSDGCORTECIDO.."
        EndSwitch
        Do_It!
        ClearAll

        RM_3060b_Adiciona_Dados("DEVOLUCOES")
EndIf

EndProc   ; (RM_3060b_Seleciona)

;*******************************************************************************
;* Rotina adicionar dados na Db temporaria                                     *
;*******************************************************************************
Proc RM_3060b_Adiciona_Dados(Tipo)

If IsEmpty("Answer")
   Then Return
EndIf

{Ask} {Answer}
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Codigo do Item         ] Example "cite"
Moveto [Descricao do Item      ] Example "dite"
Moveto [Unidade Fiscal         ] Example "unf"
Moveto [Quantidade             ] Example "qtde"
Moveto [Preco Total            ] Example "ptot"
Moveto [Valor Desconto Total   ] Example "vdes"
{Ask} TypeIn Tabela Enter TypeIn "Fast Insert"
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Codigo do Item         ] Example "cite"
Moveto [Descricao do Item      ] Example "dite"
Moveto [Unidade Fiscal         ] Example "unf"
Switch
  Case Tipo="VENDAS":
       Moveto [Vendas_Quantidade      ] Example "qtde"
       Moveto [Vendas_Preco Total     ] Example "ptot" TypeIn"-" Example "vdes"
  Case Tipo="DEVOLUCOES":
       Moveto [Devolucoes_Quantidade  ] Example "qtde"
       Moveto [Devolucoes_Preco Total ] Example "ptot" TypeIn"-" Example "vdes"
EndSwitch
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina p/ processar Db temporaria                                           *
;*******************************************************************************
Proc RM_3060b_Processa()

;***** Ajusta Dados ************************************
If VSDGEMPRESA="0000"
   Then {Ask} TypeIn Tabela Enter TypeIn "Fast"
        Moveto [Codigo da Empresa      ] TypeIn "changeto 0000"
        Moveto [Nome Fantasia Empresa  ] TypeIn "changeto TOTALIZA EMPRESAS"
        Do_It!
        ClearAll
   Else {Ask} {\\Sistemas\\Cadastro\\Empresas}
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Nome Fantasia Empresa  ] Example "nemp"
        {Ask} TypeIn Tabela Enter TypeIn "Fast"
        Moveto [Codigo da Empresa      ] Example "cemp"
        Moveto [Nome Fantasia Empresa  ] TypeIn "changeto _nemp"
        Do_It!
        ClearAll
EndIf

{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item         ] Example "cite"
Moveto [Descricao do Item      ] Example "dite"
Moveto [Tipo do Item           ] Example "tite"
Moveto [Unidade Fiscal         ] Example "unf"
Moveto [Unidade Embalagem      ] Example "une"
switch
  case VSDGCODMODELO="15C":
    Moveto [NCM                    ] Example "ncm"
    Moveto [Codigo de Barras       ] Example "cbar"
  
  otherwise              :
    Moveto [Codigo da Familia      ] Example "cfam"
    Moveto [Descricao da Familia   ] Example "dfam"
    Moveto [Localizacao            ] Example "loc"
     
endswitch

{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Codigo do Item         ] Example "cite"
Moveto [Descricao do Item      ] TypeIn "changeto _dite"
Moveto [Tipo do Item           ] TypeIn "changeto _tite"
Moveto [Unidade Fiscal         ] TypeIn "changeto _unf"
Moveto [Unidade Embalagem      ] TypeIn "changeto _une"
switch
  case VSDGCODMODELO="15C":
    Moveto [Descricao do Grupo     ] TypeIn "changeto _ncm"
    Moveto [Descricao da Marca     ] TypeIn "changeto _cbar"
  
  otherwise              :
    Moveto [Codigo da Familia      ] TypeIn "changeto _cfam"
    Moveto [Descricao da Familia   ] TypeIn "changeto _dfam"
    Moveto [Codigo Fornecedor      ] TypeIn "changeto _loc"
  
endswitch

Do_It!
ClearAll

{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Codigo do Item            ] Example "cite"
Moveto [Fator Conversao Embalagem ] Example "fce"
{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Codigo do Item            ] Example "cite"
Moveto [Unidade Fiscal            ] Example "unf"
Moveto [Unidade Embalagem         ] TypeIn "not = " Example "unf"
Moveto [Vendas_Quantidade         ] Example "qtd"
Moveto [Vendas_Embalagem          ] TypeIn "changeto _qtd/_fce"
Do_It!
ClearAll




;***** Totaliza Dados ************************************
{Ask} TypeIn Tabela Enter Check
Moveto [Vendas_Quantidade      ] Check TypeIn "Calc Sum as \"Vendas_Quantidade\""
Moveto [Vendas_Embalagem       ] Check TypeIn "Calc Sum as \"Vendas_Embalagem\""
Moveto [Vendas_Preco Total     ] Check TypeIn "Calc Sum as \"Vendas_Preco Total\""
Moveto [Devolucoes_Quantidade  ] Check TypeIn "Calc Sum as \"Devolucoes_Quantidade\""
Moveto [Devolucoes_Preco Total ] Check TypeIn "Calc Sum as \"Devolucoes_Preco\""
Do_It!
ClearAll

Empty Tabela
Adiciona_Dados_Tabela(Tabela)

{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Vendas_Embalagem          ] TypeIn "<=0, changeto blank"
Moveto [Unidade Embalagem         ] TypeIn "changeto Blank"
Do_It!
ClearAll

;*** Totaliza Empresa *****
{Ask} TypeIn Tabela Enter
Moveto [Codigo da Empresa      ] Check
Moveto [Vendas_Preco Total     ] TypeIn "Calc Sum as VendasPreco"
Do_It!
ClearAll

{Ask} {Answer}
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [VendasPreco            ] Example "vp"
{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Total_Vendas_Empresa   ] TypeIn "changeto _vp"
Do_It!
ClearAll

;*** Totaliza Familia *****
{Ask} TypeIn Tabela Enter
Moveto [Codigo da Empresa      ] Check
Moveto [Codigo da Familia      ] Check
Moveto [Vendas_Preco Total     ] TypeIn "Calc Sum as VendasPreco"
Do_It!
ClearAll

{Ask} {Answer}
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Codigo da Familia      ] Example "cfam"
Moveto [VendasPreco            ] Example "vp"
{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Codigo da Familia      ] Example "cfam"
Moveto [Total_Vendas_Familia   ] TypeIn "changeto _vp"
Do_It!
ClearAll

EndProc    ;  (RM_3060b_Processa)

;*******************************************************************************
;* Organiza Registro p/ Exibir em Arquivo                                      *
;*******************************************************************************
Proc Gera_Arquivo_Rm3100()
        
Switch
  Case VSDGCODMODELO="15C" : 
        
       {Ask} TypeIn Tabela    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 [Descricao do Grupo     ] Check typeIn "as NCM"
       Moveto [Descricao da Marca     ] check typeIn "as CodigoDeBarras"
       Moveto [Vendas_Preco Total     ]       TypeIn "Calc Sum as \"Vendas\""     
       Moveto [Devolucoes_Preco Total ]       TypeIn "Calc Sum as \"Devolucoes\""     
       Do_iT!
       ClearAll
       
       {Ask} {Answer} Check              
       Moveto [Vendas                 ] typein "_v" 
       Moveto [Devolucoes             ] typein "_d, calc _v-_d as Liquido" 
       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),"+         
                                       "CodigoDeBarras(A20),"+   
                                       "NCM(A20),"+   
                                       "Vendas($),"+         
                                       "Devolucoes($),"+         
                                       "Liquido($)")                       
                                       
       Delete Tabela
       Rename "Answer" Tabela                                                      
       
EndSwitch       
       
EndProc ;Gera_Arquivo_Rm3100()

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
Proc RM_3060b_Principal()

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

switch
  case VSDGCODMODELO="15A" : Copy "\\Base\\Sistemas\\Vendas\\RM_3100"  Tabela
  case VSDGCODMODELO="15B" : Copy "\\Base\\Sistemas\\Vendas\\RM_3100a" Tabela
  case VSDGCODMODELO="15C" : Copy "\\Base\\Sistemas\\Vendas\\RM_3100a" Tabela
endswitch
Empty Tabela
  
Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
While Novo_Dir_Trab()
  RM_3060b_Seleciona()
EndWhile
 
If IsEmpty(Tabela)
   Then MENSAGEM("No existem registros a processar")
        Delete Tabela
        Return
EndIf
RM_3060b_Processa()

If IMPRIME_ARQUIVO
   Then If VSDGCODMODELO="15C" 
           Then Gera_Arquivo_Rm3100()
        endif    
EndIf   
 
Switch
  Case VSDGCODMODELO="15A":  
       If VSDGOPRELCODALF="1"
         Then IMPRIREL(Tabela,"12")
         Else IMPRIREL(Tabela,"13")
       EndIf
  Case VSDGCODMODELO="15B":
       IMPRIREL(Tabela,"4")
 Case VSDGCODMODELO="15C":
       IMPRIREL(Tabela,"5")
EndSwitch
Delete Tabela

EndProc
          
;-- Chamada principal ----------------------------------------------------------
RM_3060b_Principal()

Release Vars Tabela
Release Procs RM_3060b_Principal, RM_3060b_Seleciona, RM_3060b_Adiciona_Dados, RM_3060b_Processa,
              Gera_Arquivo_Rm3100