;** Rm_3010 ********************************************************************
;* Resumo de Vendas por Marca/Familia/Grupo/Produto                            *
;*******************************************************************************
;Autor           : Vise Informatica (VISERP)
;Desenvolvido    : 10/09/2002 por Anivel Augusto Rodrigues
;Ultima Alteracao: 08/09/2004 por Jos‚ Lu¡s Ameno da Silva
;Motivo Alteracao: PrivDir
;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: 28/07/2014 por Luis Gustavo
;Motivo Alteracao: Implementado op‡Æo para sair o codigo do item ou o codigo do Fornecedor
;Ultima Alteracao: 14/08/2014 por Andrey Fillipe
;Motivo Alteracao: Adicionado Codigo do Cliente no report RM_3100a "9" e "10"
;Ultima Alteracao: 15/09/2014 por Andrey Fillipe
;Motivo Alteracao: Retirado quebra por Codigo do Cliente no report RM_3100a "9" e "10"
;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: 28/12/2016 por Rafael Matos
;Motivo Alteracao: Ajustes ShowDialog TG_DESTINAT                 
;Ultima Alteracao: 30/05/2019 por Anivel Augusto Rodrigues
;Motivo Alteracao: Ajustes modelo relatorio 02
;Ultima Alteracao: 30/07/2019 por Bruno Carvalho
;Motivo Alteracao: Adicionado proc RM_0227_Processa() p/ #0227# onde tem algumas particularidades conforme grupo 024
;Ultima Alteracao: 05/02/2020 por Bruno Carvalho
;Motivo Alteracao: Adicionado ValidarModelosRelatorios()
;Ultima Alteracao: 18/01/2021 por Bruno Carvalho
;Motivo Alteracao: Ajustes chamada principal RM_3020
;Ultima Alteracao: 03/02/2021 por Bruno Carvalho
;Motivo Alteracao: Adicionado ao calcular valores da tabela os campos [Vendas_Descontos] e [Vendas_Liquida] na proc RM_3010_Processa()
;Ultima Alteracao: 13/04/2021 por Anivel Augusto Rodrigues
;Motivo Alteracao: Adicionado TG_COR_TECIDO                  

;*******************************************************************************
;* Rotina p/ Selecionar Registros                                              *
;*******************************************************************************
Proc RM_3010_Seleciona()
Private ii
ClearAll

;****** Vendas *****************************************************************
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI")
   Then For ii From 1 To PROCESSO_0227_TM
          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] TypeIn "~VSDGGERENCIA"
             Else Moveto [Codigo da Gerencia] TypeIn "~VSDGGERENCIA.."
          EndIf
          {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
          Moveto [Codigo da Empresa      ] Check Example "cemp" TypeIn ", ~VSDGEMPRESA2.."
          If ii=1
             Then Moveto [Numero do Documento    ] Example "ndoc"
             Else Moveto [Numero do Documento    ] Check Example "ndoc"
          EndIf   
          Moveto [Serie do Documento     ] Example "sdoc"
          Moveto [Codigo do Representante] Example "crep" TypeIn ", ~VSDGREPRESEN.."
          If VSDGAREA<>""
             Then Moveto [Codigo         ] Example "clie" TypeIn ", ~VSDGDESTINAT.."
             Else Moveto [Codigo         ]                TypeIn "~VSDGDESTINAT.."
          EndIf   
          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 [Tipo Movimento Estoque ] TypeIn "S"
          Moveto [Situacao               ] TypeIn "Not C"
          {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"
          If ii=1
             Then Moveto [Codigo do Item ] Check
          EndIf   
          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
          If ii=1
             Then Moveto [Descricao do Item      ] Check
                  Moveto [Unidade Fiscal         ] Check
                  Moveto [Quantidade             ] TypeIn "Calc Sum as Quantidade"
                  If PROCESSO_0227
                     Then Moveto [Preco Unitario ] Check
                          Moveto [Valor do ICMS  ] TypeIn "Calc Sum as Valor do ICMS"
                          Moveto [COFINS_Valor   ] TypeIn "Calc Sum as Valor do COFINS"
                          Moveto [PIS_Valor      ] TypeIn "Calc Sum as Valor do PIS"
                  EndIf
                  Moveto [Preco Total            ] TypeIn "Calc Sum as Preco Total"
                  Moveto [Valor Desconto Total   ] TypeIn "Calc Sum as Valor Desconto Total"
          EndIf  
          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

          Switch
            Case ii = 1 : RM_3010_Adiciona_Dados("VENDAS")
            Case ii = 2 : RM_3010_Adiciona_Dados("NOTAS")
          EndSwitch  
        Endfor
EndIf

;****** Devolucoes - Estoque ***************************************************
If IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEC") And
   IsTable("\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEI")
   Then For ii From 1 To PROCESSO_0227_TM 
          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] TypeIn "~VSDGGERENCIA"
             Else Moveto [Codigo da Gerencia] 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.."
          If ii=2
             Then Moveto [Numero do Documento] Check
          EndIf   
          Moveto [Codigo                 ] TypeIn "~VSDGDESTINAT.."
          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
          {Ask} TypeIn "\\Sistemas\\Estoque\\"+Dir_Trab+"NotaEI" Enter
          Moveto [Numero do Lancamento   ] Example "nlan"
          If ii=1
             Then Moveto [Codigo do Item ] Check
          EndIf
          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
          If ii=1
             Then Moveto [Descricao do Item      ] Check
                  Moveto [Unidade Fiscal         ] Check
                  Moveto [Quantidade             ] TypeIn "Calc Sum as Quantidade"
                  If PROCESSO_0227
                     Then Moveto [Preco Unitario ] Check
                          Moveto [Valor do ICMS  ] TypeIn "Calc Sum as Valor do ICMS"
                          Moveto [COFINS_Valor   ] TypeIn "Calc Sum as Valor do COFINS"
                          Moveto [PIS_Valor      ] TypeIn "Calc Sum as Valor do PIS"
                  EndIf
                  Moveto [Preco Total            ] TypeIn "Calc Sum as Preco Total"
                  Moveto [Valor Desconto Total   ] TypeIn "Calc Sum as Valor Desconto Total"
          EndIf
          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
  
          Switch
            Case ii = 1 : RM_3010_Adiciona_Dados("DEVOLUCOES")
            Case ii = 2 : RM_3010_Adiciona_Dados("NOTAS")
          EndSwitch
        EndFor
EndIf

;****** Devolucoes - Vendas ****************************************************
If IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC") And
   IsTable("\\Sistemas\\Vendas\\"+Dir_Trab+"NotaI")
   Then For ii From 1 To PROCESSO_0227_TM
          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] TypeIn "~VSDGGERENCIA"
             Else Moveto [Codigo da Gerencia] TypeIn "~VSDGGERENCIA.."
          EndIf
          {Ask} TypeIn "\\Sistemas\\Vendas\\"+Dir_Trab+"NotaC" Enter
          Moveto [Codigo da Empresa      ] Check Example "cemp" TypeIn ", ~VSDGEMPRESA2.."
          If ii=1
             Then Moveto [Numero do Documento    ] Example "ndoc"
             Else Moveto [Numero do Documento    ] Check Example "ndoc"
          EndIf
          Moveto [Serie do Documento     ] Example "sdoc"
          Moveto [Codigo                 ] TypeIn "~VSDGDESTINAT.."
          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 [Tipo Movimento Estoque ] TypeIn "E"
          Moveto [Situacao               ] TypeIn "Not C"
          Moveto [Codigo do Representante] Example "crep" TypeIn ", ~VSDGREPRESEN.."
          If VSDGAREA<>""
           Then Moveto [Codigo         ] Example "clie" TypeIn ", ~VSDGDESTINAT.."
           Else Moveto [Codigo         ]                TypeIn "~VSDGDESTINAT.."
        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"
          If ii=1
             Then Moveto [Codigo do Item ] Check
          EndIf
          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
          If ii=1
             Then Moveto [Descricao do Item      ] Check
                  Moveto [Unidade Fiscal         ] Check
                  Moveto [Quantidade             ] TypeIn "Calc Sum as Quantidade"
                  If PROCESSO_0227
                     Then Moveto [Preco Unitario ] Check
                          Moveto [Valor do ICMS  ] TypeIn "Calc Sum as Valor do ICMS"
                          Moveto [COFINS_Valor   ] TypeIn "Calc Sum as Valor do COFINS"
                          Moveto [PIS_Valor      ] TypeIn "Calc Sum as Valor do PIS"
                  EndIf
                  Moveto [Preco Total            ] TypeIn "Calc Sum as Preco Total"
                  Moveto [Valor Desconto Total   ] TypeIn "Calc Sum as Valor Desconto Total"
          EndIf        
          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
  
          Switch
            Case ii = 1 : RM_3010_Adiciona_Dados("DEVOLUCOES")
            Case ii = 2 : RM_3010_Adiciona_Dados("NOTAS")
          EndSwitch
        Endfor
EndIf

EndProc   ; (RM_3010_Seleciona)

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

If IsEmpty("Answer")
   Then Return
EndIf

Switch
  Case Tipo="NOTAS" : 
  {Ask} {Answer}
  Moveto [Numero do Documento    ] TypeIn "_Doc"
  {Ask} TypeIn TabelaNota Enter TypeIn "Fast Insert"
  Moveto [Documento              ] TypeIn "_Doc"
  
  OtherWise         :
  {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"
  If PROCESSO_0227
     Then Moveto [Preco Unitario      ] Example "prunit" 
          Moveto [Valor do ICMS       ] Example "icms"
          Moveto [Valor do COFINS     ] Example "cof" 
          Moveto [Valor do PIS        ] Example "pis" 
  EndIf
  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"
         If PROCESSO_0227
            Then Moveto [Vendas_PrUnitario   ] Example "prunit"
                 Moveto [Desconto_Total      ] Example "vdes"
                 Moveto [Valor do ICMS       ] Example "icms"
                 Moveto [Valor do COFINS     ] Example "cof" 
                 Moveto [Valor do PIS        ] Example "pis" 
         EndIf
    Case Tipo="DEVOLUCOES":
         Moveto [Devolucoes_Quantidade  ] Example "qtde"
         Moveto [Devolucoes_Preco Total ] Example "ptot" TypeIn"-" Example "vdes"
         If PROCESSO_0227
            Then Moveto [Vendas_PrUnitario   ] Example "prunit"
                 Moveto [Desconto_Total      ] Example "vdes"
                 Moveto [Valor do ICMS       ] Example "icms"
                 Moveto [Valor do COFINS     ] Example "cof" 
                 Moveto [Valor do PIS        ] Example "pis"
         EndIf
  EndSwitch
EndSwitch
Do_It!
ClearAll

EndProc

;*******************************************************************************
;* Rotina p/ processar Db temporaria                                           *
;*******************************************************************************
Proc RM_3010_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"
Moveto [Codigo da Familia      ] Example "cfam"
Moveto [Descricao da Familia   ] Example "dfam"
Moveto [Codigo do Grupo        ] Example "cgru"
Moveto [Descricao do Grupo     ] Example "dgru"
Moveto [Codigo da Marca        ] Example "cmar"
Moveto [Descricao da Marca     ] Example "dmar"
Moveto [Codigo Fornecedor      ] Example "codfor"
{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"
Moveto [Codigo da Familia      ] TypeIn "changeto _cfam"
Moveto [Descricao da Familia   ] TypeIn "changeto _dfam"
Moveto [Codigo do Grupo        ] TypeIn "changeto _cgru"
Moveto [Descricao do Grupo     ] TypeIn "changeto _dgru"
Moveto [Codigo da Marca        ] TypeIn "changeto _cmar"
Moveto [Descricao da Marca     ] TypeIn "changeto _dmar"
Moveto [Codigo Fornecedor      ] typeIn "changeto _codfor"
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

switch
  case VSDGCODMODELO="02":
    {Ask} TypeIn Tabela Enter TypeIn "Fast"
    Moveto [Codigo da Familia      ] TypeIn "changeto blank"
    Moveto [Descricao da Familia   ] TypeIn "changeto blank"
    Moveto [Codigo do Grupo        ] TypeIn "changeto blank"
    Moveto [Descricao do Grupo     ] TypeIn "changeto blank"
    Do_It!
    ClearAll
endswitch                                          

;***** Totaliza Dados ************************************
{Ask} TypeIn Tabela Enter Check
Moveto [Vendas_Quantidade      ] Check TypeIn "Calc Sum as VendasQuantidade"
Moveto [Vendas_Embalagem       ] Check TypeIn "Calc Sum as VendasEmbalagem"
Moveto [Vendas_Preco Total     ] Check TypeIn "Calc Sum as VendasPreco"
Moveto [Devolucoes_Quantidade  ] Check TypeIn "Calc Sum as DevolucoesQuantidade"
Moveto [Devolucoes_Preco Total ] Check TypeIn "Calc Sum as DevolucoesPreco"
Moveto [Vendas_Descontos       ] Check TypeIn "Calc Sum as VendasDescontos"
Moveto [Vendas_Liquida         ] Check TypeIn "Calc Sum as VendasLiquida"
Do_It!
ClearAll

Empty Tabela
Add "Answer" Tabela
ClearAll

{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 Marca *****
{Ask} TypeIn Tabela Enter
Moveto [Codigo da Empresa      ] Check
Moveto [Codigo da Marca        ] Check
Moveto [Vendas_Preco Total     ] TypeIn "Calc Sum as VendasPreco"
Do_It!
ClearAll

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

;*** Totaliza Familia *****
{Ask} TypeIn Tabela Enter
Moveto [Codigo da Empresa      ] Check
Moveto [Codigo da Marca        ] 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 Marca        ] Example "cmar"
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 Marca        ] Example "cmar"
Moveto [Codigo da Familia      ] Example "cfam"
Moveto [Total_Vendas_Familia   ] TypeIn "changeto _vp"
Do_It!
ClearAll

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

{Ask} {Answer}
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Codigo da Marca        ] Example "cmar"
Moveto [Codigo da Familia      ] Example "cfam"
Moveto [Codigo do Grupo        ] Example "cgru"
Moveto [VendasPreco            ] Example "vp"
{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Codigo da Empresa      ] Example "cemp"
Moveto [Codigo da Marca        ] Example "cmar"
Moveto [Codigo da Familia      ] Example "cfam"
Moveto [Codigo do Grupo        ] Example "cgru"
Moveto [Total_Vendas_Grupo     ] TypeIn "changeto _vp"
Do_It!
ClearAll

EndProc    ;  (RM_3010_Processa)

;*******************************************************************************
;* Rotina p/ processar Db temporaria *Particularidade                          *
;*******************************************************************************
Proc RM_0227_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"
Moveto [Codigo do Grupo        ] Example "cgru"
Moveto [Descricao do Grupo     ] Example "dgru"
Moveto [Referencia             ] Example "Ref"
{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"
Moveto [Codigo do Grupo        ] TypeIn "changeto _cgru"
Moveto [Descricao do Grupo     ] TypeIn "changeto _dgru"
Moveto [Referencia             ] typeIn "changeto _Ref"
Do_It!
ClearAll

{Ask} {\\Sistemas\\Estoque\\Iten_Com}
Moveto [Codigo do Item     ] Example "cite"
Moveto [Codigo Concentrador] Example "Codc"
{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Codigo do Item     ] Example "cite"
Moveto [Codigo Concentrador] typeIn "changeto _Codc"
Do_It!
ClearAll

{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Codigo do Item         ] TypeIn "changeto blank"
Do_It!
ClearAll

{Ask} {\\Sistemas\\Estoque\\Itens}
Moveto [Referencia                ] Example "ref"
Moveto [Descricao do Item         ] Example "descr"
{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Referencia                ] Example "ref"
Moveto [Descricao do Item         ] TypeIn "changeto _descr"
Do_It!
ClearAll

{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Codigo Concentrador       ] TypeIn "_conc" 
Moveto [Codigo do Item            ] TypeIn "changeto _conc"
Do_It!
ClearAll

{Ask} TypeIn Tabela Enter TypeIn "Fast"
Moveto [Referencia                ] TypeIn "_ref"
Moveto [Codigo do Item            ] TypeIn "Blank, changeto _ref"
Do_It!
ClearAll

{Ask} TypeIn Tabela Enter Check
Moveto [Valor do ICMS          ] Check TypeIn "Calc Sum as ValorICMS" 
Moveto [Valor do COFINS        ] Check TypeIn "Calc Sum as ValorCOFINS"
Moveto [Valor do PIS           ] Check TypeIn "Calc Sum as ValorPIS"
Moveto [Vendas_Quantidade      ] Check TypeIn "Calc Sum as VendasQuantidade"
Moveto [Vendas_Preco Total     ] Check TypeIn "Calc Sum as VendasPreco"
Moveto [Devolucoes_Quantidade  ] Check TypeIn "Calc Sum as DevolucoesQuantidade"
Moveto [Devolucoes_Preco Total ] Check TypeIn "Calc Sum as DevolucoesPreco"
Moveto [Desconto_Total         ] Check TypeIn "Calc Sum as VendasDescTotal"
Do_It!
ClearAll

Empty Tabela
Add "Answer" Tabela
ClearAll

{Ask} TypeIn Tabela Enter 
Moveto [Valor do ICMS             ] Example "icms" 
Moveto [Valor do COFINS           ] Example "cofins" 
Moveto [Valor do PIS              ] Example "pis"
Moveto [Valor ICMS+PIS+COFINS     ] TypeIn "Changeto _icms+_cofins+_pis"
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 Grupo *****
{Ask} TypeIn Tabela Enter
Moveto [Codigo da Empresa      ] Check
Moveto [Codigo do Grupo        ] Check
Moveto [Vendas_Preco Total     ] TypeIn "Calc Sum as VendasPreco"
Do_It!
ClearAll

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

If Not IsEmpty(TabelaNota)
   Then NOTAS = ""
        View TabelaNota
        Scan
          If NOTAS <>"" 
             Then NOTAS = NOTAS + ", "
          EndIf   
          NOTAS = NOTAS + [Documento]
        EndScan
        CleaRAll
        
        CoEdit Tabela 
        Scan
          [Notas]=NOTAS
        EndScan
        Do_It!
        ClearAll
EndIf

EndProc    ;RM_0227_Processa()

;*******************************************************************************
;* Rotina Principal                                                            *
;*******************************************************************************
Proc RM_3010_Principal()

If VSDGGRP="024" And SYS_CODIGO_CLIENTE="0227" And VSDGCODMODELO<>"03"
   Then Mensagem("H  particularidades para relat¢rio ser filtrado por codigo concentrador//Modelo de Relat¢rio 03")
        Return
EndIf

AGUARDE("Aguarde, gerando o relat¢rio")

Array VSDGOPCAO[1]
VSDGOPCAO[1]=False

PROCESSO_0227=False
Tabela=Cria_Temp(PrivDir())
If VSDGGRP="024" And SYS_CODIGO_CLIENTE="0227" And VSDGCODMODELO="03"
   Then VSDGOPCAO[1]=True
        PROCESSO_0227_TM = 2
        PROCESSO_0227    = True
        ;Referencia e Codigo Concentrador
        Empty "\\Base\\Sistemas\\Vendas\\RM_3011"
        Copy "\\Base\\Sistemas\\Vendas\\RM_3011" Tabela
   Else PROCESSO_0227_TM = 1
        Empty "\\Base\\Sistemas\\Vendas\\RM_3100"
        Copy "\\Base\\Sistemas\\Vendas\\RM_3100" Tabela
EndIf        

;---- Criando tabela p/ armazenar o numero do documento das notas envolvidas ---
CRIAR_TABELA = True
CRIAR_TABELA2=FAlse
TabelaNota=Cria_Temp(PrivDir())
Adiciona_Campo(TabelaNota,"Documento(A20)")

Monta_Dir_Trab(VSDGDTINI,VSDGDTFIM)
While Novo_Dir_Trab()
  RM_3010_Seleciona()
EndWhile

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

;Particularidades da Empresa #0227# -> Processo especial apenas para um determinado grupo
If VSDGOPCAO[1] And VSDGCODMODELO="03"
   Then RM_0227_Processa()
   Else RM_3010_Processa()     
EndIf
 
Switch
  Case VSDGCODMODELO="01" : 
    CopyReport "\\Base\\Sistemas\\Vendas\\RM_3100" "6" Tabela "R"
    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
  Case VSDGCODMODELO="01B": 
    CopyReport "\\Base\\Sistemas\\Vendas\\RM_3100a" "9" Tabela "R"
    If VSDGOPRELCODALF="1"
       Then Seta_Ordem_Report(Tabela,"R","Codigo Fornecedor","Codigo Fornecedor","")
       Else Seta_Ordem_Report(Tabela,"R","Codigo Fornecedor","Descricao do Item","")
    EndIf
  Case VSDGCODMODELO="02" : 
    CopyReport "\\Base\\Sistemas\\Vendas\\RM_3100" "7" Tabela "R"
    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
  Case VSDGCODMODELO="03" :
    If VSDGOPCAO[1]
       Then CopyReport "\\Base\\Sistemas\\Vendas\\RM_3011" "R" Tabela "R"
       Else CopyReport "\\Base\\Sistemas\\Vendas\\RM_3100" "6" Tabela "R"
    EndIf
    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
EndSwitch
IMPRIREL(Tabela,"R")
Delete Tabela

EndProc
          
;-- Chamada principal ----------------------------------------------------------
RM_3010_Principal()

Release Vars Tabela
Release Procs RM_3010_Principal, RM_3010_Seleciona, RM_3010_Adiciona_Dados, RM_3010_Processa