Pular para o conteúdo principal

REQ001 — Saldo em Estoque por Produto

Fonte​

  • Source: source/REQ001/

Objetivo​

Gera o relatorio de Saldo de Estoque por Produto com multiplos enfoques (custo, grade, lote, preco de venda, NCM, perfil, categoria, condicao fiscal, etc.). O operador escolhe um dos 28 modelos no combobox "Tipo" e combina filtros de produto, empresa, local, grupo/subgrupo, marca, secao e data de posicao para dimensionar o resultado. E o relatorio gerencial de estoque mais usado do ERP.

Modelos de Relatorio​

O combobox "Tipo" (campo TP_RELATORIO) define o modelo impresso. Cada opcao chaveia um bloco SQL distinto dentro de btnImprimirClick em UREQ001.pas; o Layout .rtm carregado tambem muda por modelo. Os modelos compartilham a base de filtros (isqlSALDO) construida no inicio do handler.

Modelo E: Saldo X Custo Estoque​

Quando usado: item "Saldo X Custo Estoque" do combo "Tipo" (TP_RELATORIO = 'E'). Layout REQ001 (ou REQ001_O se a quebra "Lote de Produtos" estiver marcada; monta via modelo_E_Lote/modelo_E).

Mostra, por produto, saldo em quantidade, valor do estoque, custo medio e ultimo custo na data de posicao. Suporta quebras por Grupo/SubGrupo/Marca/Local/Unidade/Secao/Categoria/Grade e as opcoes de saldo/valor ("Somente com Saldo", "Sem Saldo", "Saldo Negativo", "Todos") e de movimentacao ("Com/Sem Movimentacao"). Usa RETORNA_SALDOESTOQUE para consolidar o saldo na data informada.

SQL Base (sem lote, sem grade):

SELECT /*E*/ ESTOQUE.CD_EMPRESA,
ITEM.CD_ITEM, ITEM.DS_ITEM, ITEM.CD_FORNECEDOR1, ITEM.SG_UNIDMED,
CAST(SUM(R.O_QT_SALDO) AS NUMERIC(15,5)) QTDE,
CAST(SUM(R.O_VL_SALDO) AS NUMERIC(15,4)) VALOR,
CAST(AVG(R.O_VL_CUSTOMEDIO) AS NUMERIC(15,4)) CUSTO,
CAST(AVG(R.O_VL_ULTIMOCUSTO) AS NUMERIC(15,4)) ULTCUSTO,
ITEM.NR_NCM
FROM ITEM
INNER JOIN CONDFISCAL ON (CONDFISCAL.CD_CONDFISCAL = ITEM.CD_CONDFISCAL)
INNER JOIN ITEMLOCAL ON (ITEMLOCAL.CD_ITEM = ITEM.CD_ITEM)
INNER JOIN TIPOLOCAL ON (ITEMLOCAL.CD_TIPOLOCAL = TIPOLOCAL.CD_TIPOLOCAL)
INNER JOIN LOCALESTOQUE ON (ITEMLOCAL.CD_TIPOLOCAL = LOCALESTOQUE.CD_TIPOLOCAL
AND ITEMLOCAL.CD_LOCAL = LOCALESTOQUE.CD_LOCAL)
INNER JOIN GRUPO ON (ITEM.CD_GRUPO = GRUPO.CD_GRUPO)
INNER JOIN MARCA ON (ITEM.CD_MARCA = MARCA.CD_MARCA)
INNER JOIN UNIDMED ON (ITEM.SG_UNIDMED = UNIDMED.SG_UNIDMED)
LEFT JOIN SUBGRUPO ON (ITEM.CD_SUBGRUPO = SUBGRUPO.CD_SUBGRUPO)
LEFT JOIN ESTOQUE ON (ESTOQUE.CD_ITEM = ITEMLOCAL.CD_ITEM
AND ESTOQUE.CD_TIPOLOCAL = ITEMLOCAL.CD_TIPOLOCAL
AND ESTOQUE.CD_LOCAL = ITEMLOCAL.CD_LOCAL)
LEFT JOIN RETORNA_SALDOESTOQUE(COALESCE(ESTOQUE.CD_EMPRESA, :CD_EMPRESA),
ITEM.CD_ITEM, ITEMLOCAL.CD_TIPOLOCAL, ITEMLOCAL.CD_LOCAL,
:DT_POSICAO) R ON (1 = 1)
WHERE ESTOQUE.CD_EMPRESA = :CD_EMPRESA
GROUP BY ESTOQUE.CD_EMPRESA, ITEM.CD_ITEM, ITEM.DS_ITEM,
ITEM.CD_FORNECEDOR1, ITEM.SG_UNIDMED, ITEM.NR_NCM

Modelo C: Saldo Comprometido X Custo​

Quando usado: item "Saldo Comprometido X Custo" (TP_RELATORIO = 'C'). Layout REQ001.

Exibe o saldo comprometido (pedidos em aberto) contra custo medio, ultimo custo e preco da tabela de compras (ITEMTABCOMPRA via PARMFATUR.CD_TABCOMPRA). Util para dimensionar compras considerando demanda ja empenhada.

SQL Base:

SELECT ESTOQUE.CD_EMPRESA,
ESTOQUE.CD_ITEM, ITEM.DS_ITEM, ITEM.CD_FORNECEDOR1, ITEM.SG_UNIDMED,
CAST(AVG(R.O_QT_SALDO) AS NUMERIC(15,5)) QTDE,
CAST(AVG(R.O_VL_SALDO) AS NUMERIC(15,4)) VALOR,
CAST(AVG(R.O_VL_CUSTOMEDIO) AS NUMERIC(15,4)) CUSTO,
CAST(AVG(R.O_VL_ULTIMOCUSTO) AS NUMERIC(15,4)) ULTCUSTO,
COALESCE(TC.VL_PRECO, 0) VL_TABCOMPRA
FROM ESTOQUE
LEFT JOIN RETORNA_ESTOQUECOMPROMETIDO(ESTOQUE.CD_EMPRESA, ESTOQUE.CD_ITEM,
NULL, NULL, :DT_POSICAO) R ON (1 = 1)
INNER JOIN ITEM ON (ESTOQUE.CD_ITEM = ITEM.CD_ITEM)
INNER JOIN CONDFISCAL ON (CONDFISCAL.CD_CONDFISCAL = ITEM.CD_CONDFISCAL)
INNER JOIN TIPOLOCAL ON (ESTOQUE.CD_TIPOLOCAL = TIPOLOCAL.CD_TIPOLOCAL)
INNER JOIN LOCALESTOQUE ON (ESTOQUE.CD_TIPOLOCAL = LOCALESTOQUE.CD_TIPOLOCAL
AND ESTOQUE.CD_LOCAL = LOCALESTOQUE.CD_LOCAL)
INNER JOIN GRUPO ON (ITEM.CD_GRUPO = GRUPO.CD_GRUPO)
INNER JOIN MARCA ON (ITEM.CD_MARCA = MARCA.CD_MARCA)
INNER JOIN UNIDMED ON (ITEM.SG_UNIDMED = UNIDMED.SG_UNIDMED)
LEFT JOIN PARMFATUR PF ON (PF.CD_EMPRESA = ESTOQUE.CD_EMPRESA)
LEFT JOIN ITEMTABCOMPRA TC ON (TC.CD_TABCOMPRA = PF.CD_TABCOMPRA
AND TC.CD_ITEM = ITEM.CD_ITEM)
WHERE ESTOQUE.CD_EMPRESA = :CD_EMPRESA
GROUP BY ESTOQUE.CD_EMPRESA, ESTOQUE.CD_ITEM, ITEM.CD_ITEM,
ITEM.DS_ITEM, ITEM.CD_FORNECEDOR1, ITEM.SG_UNIDMED, TC.VL_PRECO

Modelo G: Saldo X Grade​

Quando usado: TP_RELATORIO = 'G'. Layout especifico para quebra por grade.

Imprime o saldo distribuido em matriz linha x coluna da grade (tamanho, cor, etc.) usando VIEW_REQ001GRADE / ESTOQUEGRADE. Aceita filtros adicionais pelas abas "Descricao Linha Grade" e "Descricao Coluna Grade" com os modos "Igual a / Comeca com / Que Contem".

Modelo T: Saldo Comprometido X Grade​

Quando usado: TP_RELATORIO = 'T'. Versao "comprometido" do modelo G, usando RETORNA_ESTOQUECOMPROMETGRADE. Oculta filtro de local.

Modelo V: Saldo X Preco de Venda Analitico​

Quando usado: TP_RELATORIO = 'V'. Layout REQ001_V. Cruza o saldo com o preco atual da tabela de precos via RETORNA_PRECOITEM e PARMFATUR.CD_TABPRECO, listando item a item.

Modelo D: Saldo X Preco de Venda Sintetico​

Quando usado: TP_RELATORIO = 'D'. Layout REQ001_D. Agrega o modelo V por grupo/marca, com totais. So considera produtos ativos por default.

Modelo S: Saldo por Empresa​

Quando usado: TP_RELATORIO = 'S'. Layout REQ001_S. NAO filtra por Empresa (campo CD_EMPRESA fica desabilitado) — exibe ate 15 colunas de empresas (QT_ESTOQUE1..QT_ESTOQUE15) lado a lado via VIEW_REQ001.

SQL Base:

SELECT ITEM.CD_ITEM, ITEM.DS_ITEM, ITEM.CD_CODIGOBARRA, ITEM.CD_FORNECEDOR1,
MAX(CD_EMPRESA1) CD_EMPRESA1, MAX(NM_EMPRESA1) NM_EMPRESA1,
MAX(CD_EMPRESA2) CD_EMPRESA2, MAX(NM_EMPRESA2) NM_EMPRESA2,
/* ... ate CD_EMPRESA15 / NM_EMPRESA15 ... */
SUM(QT_ESTOQUE1) QT_ESTOQUE1,
SUM(QT_ESTOQUE2) QT_ESTOQUE2,
/* ... ate QT_ESTOQUE15 ... */
SUM(COALESCE(QT_ESTOQUE1,0) + COALESCE(QT_ESTOQUE2,0) + ...
+ COALESCE(QT_ESTOQUE15,0)) QT_SALDO
FROM VIEW_REQ001(:DT_POSICAO, :FILTRO_SALDO, :CD_USUARIO) ITEM
INNER JOIN ITEM I ON (I.CD_ITEM = ITEM.CD_ITEM)
INNER JOIN GRUPO ON (ITEM.CD_GRUPO = GRUPO.CD_GRUPO)
INNER JOIN MARCA ON (ITEM.CD_MARCA = MARCA.CD_MARCA)
LEFT JOIN SUBGRUPO ON (ITEM.CD_SUBGRUPO = SUBGRUPO.CD_SUBGRUPO)
GROUP BY ITEM.CD_ITEM, ITEM.DS_ITEM, ITEM.CD_FORNECEDOR1, ITEM.CD_CODIGOBARRA
HAVING /* conforme Saldo Estoque (S/N/X) e chkSomaSaldoEmp */
ORDER BY <TP_ORDEM>

Modelo L: Saldo por Local​

Quando usado: TP_RELATORIO = 'L'. Layout REQ001_L. Quebra o saldo por combinacao Tipo Local + Local de Armazenagem, ignorando filtro de Local.

Modelo N: Saldo de Produtos X Entrega​

Quando usado: TP_RELATORIO = 'N'. Layout REQ001_N. Cruza saldo atual com pedidos em aberto para entrega (via VIEW_CONTROLEENTREGA2 / CONTROLEENTREGA). Usa PARMFATUR.ST_ENTREGA como parametrizacao.

Modelo B: Saldo de Produtos p/ Balanco​

Quando usado: TP_RELATORIO = 'B'. Layout REQ001_B. Relatorio usado em balanco fisico — lista item com saldo/valor/custo medio e espaco para contagem. Habilita a quebra por "Secao".

Modelo F: Saldo Comprometido p/ Balanco​

Quando usado: TP_RELATORIO = 'F'. Layout REQ001_F. Versao de balanco com saldo comprometido (utiliza RETORNA_ESTOQUECOMPROMETIDO).

Modelo I: Saldo de Produtos por Indexador​

Quando usado: TP_RELATORIO = 'I'. Layout REQ001_I. Oculta data de posicao; agrupa por indexador de correcao definido no cadastro do produto.

Modelo P: Saldo X Custo Estoque / Data Compra​

Quando usado: TP_RELATORIO = 'P'. Layout REQ001_P. Agrega o custo pela data da ultima compra (via ITEMTABCOMPRA).

Modelo W: Saldo de Estoque X Saldo Comprometido​

Quando usado: TP_RELATORIO = 'W'. Layout REQ001_W. Mostra lado a lado saldo disponivel, comprometido e a receber por lote (LOTESEMENTE). Permite comparar com Produto Similar (aba "Produto Similar").

Modelo A: Saldo X Custo Estoque / Tabela de Compras​

Quando usado: TP_RELATORIO = 'A'. Layout REQ001_A. Agrega custo da tabela de compras atual (ITEMTABCOMPRA via PARMFATUR.CD_TABCOMPRA). Habilita filtro por NCM.

Modelo H: Saldo Compr. e Produtos a Entregar p/ Balanco​

Quando usado: TP_RELATORIO = 'H'. Layout REQ001_H. Para balanco, combina comprometido com itens pendentes de entrega.

Modelo J: Saldo de Produtos X Perfil​

Quando usado: TP_RELATORIO = 'J'. Layout REQ001_J. Agrupa por perfil de produto (PERFIL/ITEMPERFIL). Habilita a quebra "Perfil".

Modelo K: Saldo X Custo Estoque com Imagem​

Quando usado: TP_RELATORIO = 'K'. Layout REQ001_K. Mesmo conteudo do modelo E com coluna de imagem do produto; desabilita filtro por lote.

Modelo M: Saldo X Custo Estoque por Lote​

Quando usado: TP_RELATORIO = 'M'. Layout REQ001_M. Detalha saldo por lote (LOTESEMENTE), aceitando filtro "Validade Lote De/Ate" (campos DT_VENCLOTEINI/DT_VENCLOTEFIM).

Modelo O: Custo Estoque e Condicao Fiscal​

Quando usado: TP_RELATORIO = 'O'. Layout REQ001_O. Traz o custo cruzado com a CONDFISCAL do produto. Habilita a quebra "Condicao Fiscal".

Modelo Q: Saldo de Grade p/ Balanco​

Quando usado: TP_RELATORIO = 'Q'. Layout REQ001_Q. Versao do modelo G voltada para balanco fisico de itens com grade (usa FILTROITEMGRADE + VIEW_REQ001GRADE).

Modelo R: Produtos por Grade em Colunas​

Quando usado: TP_RELATORIO = 'R'. Layout REQ001_R. Pivota os tamanhos/cores da grade em colunas (via ESTOQUEGRADE / VIEW_REQ001GRADE). Desabilita quebras de agrupamento.

Modelo U: Exportacao Estoque de Produtos​

Quando usado: TP_RELATORIO = 'U'. Gera arquivo texto de exportacao (sem layout grafico). Desabilita quase todas as quebras.

Modelo Z: Exportacao Produtos com Grade​

Quando usado: TP_RELATORIO = 'Z'. Versao de exportacao para itens com grade — habilita o grupo "Periodos" (DT_INI/DT_FIM de movimentacao de estoque).

Modelo X: Saldo X Custo de Estoque por NCM​

Quando usado: TP_RELATORIO = 'X'. Layout REQ001_X. Agrega por NCM.

Modelo Y: Sintetico por Grupo​

Quando usado: TP_RELATORIO = 'Y'. Layout REQ001_Y. Sintese por grupo com custo. Desabilita quase todas as quebras (so Grupo/Marca).

Modelo 0: Exportacao Produtos Promocionais​

Quando usado: TP_RELATORIO = '0' (zero). Exportacao de itens marcados como promocionais (usa periodo DT_INI/DT_FIM).

Modelo 1: Saldo Estoque x ICMS Ultima Compra​

Quando usado: TP_RELATORIO = '1'. Layout REQ001_1. Cruza saldo com o ICMS da ultima nota de compra do item (via VIEW_ULTIMOICMS). Habilita as quebras "Fornecedor" e "Nr NCM".

Filtros​

Campos simples:

  • Empresa (Lista de Empresas) F9 — obrigatorio, exceto nos modelos "Saldo por Empresa" (S) e "Exportacao Produtos com Grade" (Z)
  • Dt Posicao (data de referencia do saldo) — desabilitada nos modelos G/T/Q (usam saldo atual) e W/I (sem posicao historica)
  • Tipo (combobox dos 28 modelos listados acima) — campo TP_RELATORIO
  • Saldo Estoque (Somente com Saldo / Sem Saldo / Saldo Negativo / Todos) — default "Todos"; forcado para "Somente com Saldo" no modelo G
  • Vl. Custo Estoque (Somente com Valor / Sem Valor / Valor Negativo / Todos) — default "Todos"; so visivel nos modelos de custo (E, C, O, P, A, K, M, X, Y, 1)
  • Tipo Produto (Produtivo / Improdutivo / Aplicacao Imediata / Serviço / Todos) — default "Todos"; ignorado no modelo R
  • Situacao Produto (Ativo / Inativo / Todos) — default "Ativo"; ignorado no modelo R
  • Ordem (Descricao Produto / Código Produto / Cod Fornecedor) — default "Descricao Produto"; oculto nos modelos W/I/R/Y
  • Mov. de Estoque (Todos / Sem Movimentação / Com Movimentação) — default "Todos"; so nos modelos E/F/S (alterna entre ESTOQUE.CD_ITEM IS NULL e clausula HAVING sobre QT_ESTOQUE1..15)
  • Data Vencimento (data unica) — so no modelo M (compara com LOTESEMENTE.DT_VALIDADE)
  • Quebras (checkboxes "Grupos" / "Marca" / "SubGrupo" / "Local de Armazenagem" / "Unidade de Medida" / "Secao" / "Grade de Produtos" / "Lote de Produtos" / "Perfil" / "Condicao Fiscal" / "Produto Similar" / "Nr NCM" / "Fornecedor" / "Categoria") — cada modelo habilita/desabilita um subconjunto dinamicamente
  • Considera Saldo Estoque de Todas Empresas (checkbox) — so no modelo S; altera o HAVING para somar QT_ESTOQUE1..15 ao inves de checar cada coluna
  • Validade Lote De / Ate (aba "Periodos") — so no modelo M; filtra LOTESEMENTE.DT_VALIDADE em DT_VENCLOTEINI/DT_VENCLOTEFIM
  • Mov. Estoque De / Ate (aba "Periodos") — so nos modelos Z e 0; filtra DT_INI/DT_FIM

Filtros de grid (multi-selecao via F9):

  • Produtos (aba "Filtros 1", grupo "Produtos") F9 — multi-selecao com 3 colunas (Código, Descricao, Grade) + codigo de barras; o checkbox "Exclusao de Produtos" inverte para NOT IN (...)
  • Grupos (aba "Filtros 1", grupo "Grupos") F9 — multi-selecao
  • Tipos de Locais (aba "Filtros 1", grupo "Tipos de Locais") F9 — multi-selecao
  • Marcas (aba "Filtros 1", grupo "Marcas") F9 — multi-selecao
  • SubGrupos (aba "Filtros 1", grupo "SubGrupos") F9 — multi-selecao
  • Locais de Armazenagem (aba "Filtros 1", grupo "Locais de Armazenagem") F9 — multi-selecao
  • Secoes (aba "Filtros 2", grupo "Secoes") F9 — multi-selecao
  • Condicao Fiscal (aba "Filtros 2", grupo "Condicao Fiscal") F9 — multi-selecao
  • Produto Similar (aba "Filtros 2", grupo "Produto Similar") F9 — multi-selecao; so no modelo W
  • Perfil (aba "Filtros 2", grupo "Perfil") F9 — multi-selecao; so no modelo J
  • NCM (aba "Filtros 2", grupo "NCM") F9 — multi-selecao; habilitado no modelo A e 1
  • Descricao de Local (aba "Filtros 2", grupo "Descricao de Local") — texto livre multi-linha com combo "Que contem / Comeca com"; aplica LOCALESTOQUE.DS_LOCAL CONTAINING/STARTING WITH
  • Descricao Linha Grade (aba "Filtros 2", grupo "Descricao Linha Grade") — so no modelo G; combo "Igual a / Comeca com / Que Contem" mais lista de descricoes de linha
  • Descricao Coluna Grade (aba "Filtros 2", grupo "Descricao Coluna Grade") — so no modelo G; mesma logica do filtro de linha
  • Categorias (aba "Filtros 3", grupo "Categorias") F9 — multi-selecao; habilitado nos modelos C e E

Parametros que Influenciam​

TabelaCampoEfeito
PARMFATURCD_TABPRECOTabela de precos usada em RETORNA_PRECOITEM nos modelos V, D, A e 1 (Saldo x Preco / Tabela de Compras)
PARMFATURCD_TABCOMPRATabela de compras que alimenta o VL_TABCOMPRA nos modelos C, A e P (custo via ITEMTABCOMPRA)
PARMFATURST_ENTREGADireciona a regra de pedidos a entregar no modelo N (Saldo X Entrega)
PARMFATURTP_LISTAITEMConsultado no carregamento inicial para montar o lookup de produto

Perguntas Frequentes​


Perguntas Gerais​

P: Qual é a finalidade da tela REQ001? R: A tela REQ001 é o Relatório de Posição de Estoque do sistema. Ela permite gerar relatórios detalhados sobre a posição atual do estoque, incluindo saldos, custos, preços de venda e diversas formas de agrupamento e filtro. O relatório pode ser gerado por empresa, produto, grupo, subgrupo, marca, local de armazenagem, tipo de local, seção, perfil, categoria, condição fiscal, grade de produtos, lote, produto similar, NCM e fornecedor.

P: Quais são os tipos de relatório disponíveis na tela REQ001? R: A tela REQ001 oferece diversos tipos de relatório que podem ser selecionados no campo "Tipo". Os relatórios podem ser gerados considerando saldos de estoque de todas as empresas ou de uma empresa específica, e permitem diferentes ordenações e filtros por situação do produto (ativo/inativo) e tipo de produto.

P: Como gerar um relatório de posição de estoque? R: Para gerar o relatório, acesse a tela REQ001, informe obrigatoriamente a Empresa no campo correspondente, selecione o tipo de relatório desejado, configure os filtros necessários (Produto, Grupo, SubGrupo, Marca, Local de Armazenagem, etc.), defina as quebras desejadas e clique no botão Imprimir. Caso deseje considerar o saldo de todas as empresas, marque a opção "Considera Saldo Estoque de Todas Empresas".

P: É possível exportar os dados do relatório REQ001? R: Sim, a tela REQ001 permite exportar os dados do relatório para arquivo. Ao realizar a exportação com sucesso, o sistema exibirá a mensagem "Arquivo Gerado com Sucesso!" indicando o caminho do arquivo gerado. Para exportar, é necessário que a consulta retorne registros; caso contrário, o sistema informará que a consulta não retornou registros.


Mensagens de Validação e Erros​

P: O sistema apresenta a mensagem "É Obrigatório Informar a Empresa para Gerar o Relatório!". O que devo fazer? R: Esta mensagem indica que o campo Empresa não foi preenchido. A Empresa é um campo obrigatório para a geração do relatório de posição de estoque. Informe o código da empresa desejada no campo "Empresa" e tente gerar o relatório novamente.

P: O sistema apresenta a mensagem "O Código da Empresa não está Cadastrada [ADM002]!". O que significa? R: Esta mensagem indica que o código informado no campo Empresa não corresponde a nenhuma empresa cadastrada no sistema. Verifique se o código foi digitado corretamente ou acesse a tela de Cadastro de Empresas (ADM002) para consultar os códigos disponíveis.

P: O sistema apresenta a mensagem "O Código do Produto não está Cadastrado [TPO001]!". O que significa? R: Esta mensagem indica que o código informado no campo Produto não corresponde a nenhum produto cadastrado no sistema. Verifique se o código foi digitado corretamente ou acesse a tela de Cadastro de Produtos (TPO001) para consultar os produtos disponíveis.

P: O sistema apresenta a mensagem "Código de Barras Não Cadastrado. Verifique! [TPO001]". O que significa? R: Esta mensagem indica que o código de barras informado na pesquisa não está associado a nenhum produto cadastrado. Verifique se o código de barras foi lido ou digitado corretamente, ou acesse a tela de Cadastro de Produtos (TPO001) para verificar o cadastro do código de barras.

P: O sistema apresenta a mensagem "O Código do Grupo não está Cadastrado [TPO006]!". O que significa? R: Esta mensagem indica que o código informado no campo Grupo não corresponde a nenhum grupo cadastrado. Verifique o código ou acesse a tela de Cadastro de Grupos (TPO006) para consultar os grupos disponíveis.

P: O sistema apresenta a mensagem "O Código do SubGrupo não está Cadastrado [TPO007]!". O que significa? R: Esta mensagem indica que o código informado no campo SubGrupo não está cadastrado no sistema. Verifique o código ou acesse a tela de Cadastro de SubGrupos (TPO007) para consultar os subgrupos disponíveis.

P: O sistema apresenta a mensagem "O Código da Marca não está Cadastrado [TPO002]!". O que significa? R: Esta mensagem indica que o código informado no campo Marca não corresponde a nenhuma marca cadastrada. Verifique o código ou acesse a tela de Cadastro de Marcas (TPO002) para consultar as marcas disponíveis.

P: O sistema apresenta a mensagem "O Código do Tipo de Local não está Cadastrado [TEQ002]!". O que significa? R: Esta mensagem indica que o código informado no campo Tipo de Local não está cadastrado no sistema. Verifique o código ou acesse a tela de Cadastro de Tipo de Local (TEQ002) para consultar os tipos de local disponíveis.

P: O sistema apresenta a mensagem "O Código do Local de Armazenagem não está Cadastrado [TEQ003]!". O que significa? R: Esta mensagem indica que o código informado no campo Local de Armazenagem não está cadastrado no sistema. Verifique o código ou acesse a tela de Cadastro de Local de Armazenagem (TEQ003) para consultar os locais disponíveis.

P: O sistema apresenta a mensagem "Seção Não Cadastrada. Verifique! [TPO008]". O que significa? R: Esta mensagem indica que o código informado no campo Seção não corresponde a nenhuma seção cadastrada. Verifique o código ou acesse a tela de Cadastro de Seções (TPO008) para consultar as seções disponíveis.

P: O sistema apresenta a mensagem "O Código do Perfil não está Cadastrado [TPO033]!". O que significa? R: Esta mensagem indica que o código informado no campo Perfil não está cadastrado no sistema. Verifique o código ou acesse a tela de Cadastro de Perfis (TPO033) para consultar os perfis disponíveis.

P: O sistema apresenta a mensagem "Categoria Não Cadastrada. Verifique! [TPO040]". O que significa? R: Esta mensagem indica que o código informado no campo Categoria não corresponde a nenhuma categoria cadastrada. Verifique o código ou acesse a tela de Cadastro de Categorias (TPO040) para consultar as categorias disponíveis.

P: O sistema apresenta a mensagem "A Condição Fiscal não está Cadastrado! Verifique [TFI001]". O que significa? R: Esta mensagem indica que a condição fiscal informada não está cadastrada no sistema. Verifique o código ou acesse a tela de Cadastro de Condição Fiscal (TFI001) para consultar as condições fiscais disponíveis.

P: O sistema apresenta a mensagem "O Item Similar não está Cadastrado. Verifique [TPO001]!". O que significa? R: Esta mensagem indica que o código informado no filtro de Produto Similar não corresponde a nenhum produto cadastrado. Verifique o código ou acesse a tela de Cadastro de Produtos (TPO001) para consultar os produtos disponíveis.

P: O sistema apresenta a mensagem "A Data Inicial deve ser Menor que a Final!". O que significa? R: Esta mensagem indica que a data informada no campo Data Inicial é posterior à data informada no campo Data Final. Corrija as datas para que a Data Inicial seja igual ou anterior à Data Final.

P: O sistema apresenta a mensagem "A Data Final deve ser Maior que a Inicial!". O que significa? R: Esta mensagem indica que a data informada no campo Data Final é anterior à data informada no campo Data Inicial. Corrija as datas para que a Data Final seja igual ou posterior à Data Inicial.

P: O sistema apresenta a mensagem "A Consulta não retornou Registros! Verifique.". O que significa? R: Esta mensagem indica que não foram encontrados registros que atendam aos filtros informados. Revise os critérios de filtro utilizados (empresa, período, produto, grupo, etc.) e tente novamente com filtros menos restritivos.

Mensagens exibidas​

Levantadas de source/REQ001/ pela camada 0 (commit 96fc51e236).

CódigoTipoMensagem
I-1511InformaçãoArquivo Gerado com Sucesso! %s

Mais 23 mensagens com texto literal no código: REQ001.

Tabelas de Escrita (INSERT/UPDATE/DELETE)​

TabelaOperacoes
CATEGORIACONFECCAODELETE, INSERT, SELECT, UPDATE
EMPRESADELETE, INSERT, SELECT, UPDATE
FILTROITEMGRADEDELETE, INSERT, SELECT
GRUPODELETE, INSERT, SELECT, UPDATE
ITEMDELETE, INSERT, SELECT, UPDATE
MARCADELETE, INSERT, SELECT, UPDATE
PERFILDELETE, INSERT, SELECT, UPDATE
SECAODELETE, INSERT, SELECT, UPDATE
SUBGRUPODELETE, INSERT, SELECT, UPDATE
TIPOLOCALDELETE, INSERT, SELECT, UPDATE

Tabelas de Leitura (SELECT)​

TabelaOperacoes
COLUNAGRADESELECT
CONDFISCALSELECT
ESTOQUESELECT
ESTOQUEGRADESELECT
GRADESELECT
ITEMGRADESELECT
ITEMLOCALSELECT
ITEMNOTASELECT
ITEMPEDIDOSEMENTESELECT
ITEMPERFILSELECT
ITEMSIMILARSELECT
ITEMTABCOMPRASELECT
ITEMTABPRECOSELECT
ITEMTABPRECODATASELECT
LINHAGRADESELECT
LOCALESTOQUESELECT
LOTESEMENTESELECT
MOVESTOQUESELECT
MOVIMENTACAOSELECT
NCMSELECT
NOTASELECT
OPERACAOSELECT
PARMFATURSELECT
TABPRECOSELECT
TIPOCALCULOSELECT
UNIDMEDSELECT

Procedures Chamadas​

ProcedureTabelas Acessadas
RETORNA_ESTOQUECOMPROMETGRADEESTOQUEGRADE (SELECT), ITEMNOTAGRADE (SELECT), ITEMPEDIDO (SELECT), ITEMPEDIDOGRADE (SELECT), MESTRA (SELECT), MOVESTOQUE (SELECT) +6
RETORNA_ESTOQUECOMPROMETIDOMOVESTOQUE (SELECT), OPERACAO (SELECT), PARMESTOQUE (SELECT)
RETORNA_ESTOQUECOMPROMETLOCALMOVESTOQUE (SELECT), PARMESTOQUE (SELECT)
RETORNA_ESTOQUECONFERIDOCOLUNAGRADE (SELECT), CONFERENCIAVOLUMEPRODUCAO (SELECT), ESTOQUEGRADE (SELECT), GRUPO (SELECT), ITEM (SELECT), ITEMPEDIDO (SELECT) +9
RETORNA_ESTOQUECONFERIDO_DATACONFERENCIAVOLUMEPRODUCAO (SELECT), ITEM (SELECT), ITEMPEDIDO (SELECT), ITEMPEDIDOGRADE (SELECT), PEDIDO (SELECT), TIPOCALCULO (SELECT) +2
RETORNA_PRECOITEMCONDPAGTO (SELECT), ITEM (SELECT), ITEMTABPRECO (SELECT), ITEMTABPRECODATA (SELECT), PARAMRECAP (SELECT), PARMFATUR (SELECT) +6
RETORNA_SALDOESTOQUEESTOQUE (SELECT), ESTOQUEDIA (SELECT), ITEMLOCAL (SELECT), MOVESTOQUE (SELECT), OPERACAO (SELECT), PARMESTOQUE (SELECT)
RETORNA_SALDOESTOQUEGRADEMOVESTOQUE (SELECT), OPERACAO (SELECT), PARMESTOQUE (SELECT)
RETORNA_SALDOLOTESEMENTEITEMNOTA (SELECT), ITEMNOTASEMENTE (SELECT), ITEMPEDIDO (SELECT), ITEMPEDIDOSEMENTE (SELECT), LOTEPRODUCAO (SELECT), LOTEPRODUCAOSEMENTE (SELECT) +3
VIEW_CONTROLEENTREGA2CONTROLEENTREGA (SELECT), ENDERECOPESSOA (SELECT), ITEM (SELECT), ITEMNOTA (SELECT), ITEMPEDIDO (SELECT), ITEMTABCOMPRA (SELECT) +10
VIEW_REQ001CONDFISCAL (SELECT), EMPRESA (SELECT), ESTOQUE (SELECT), ITEM (SELECT), USUARIOEMPRESA (SELECT)
VIEW_REQ001GRADECOLUNAGRADE (SELECT), CONDFISCAL (SELECT), ESTOQUE (SELECT), ESTOQUEGRADE (SELECT), GRADE (SELECT), GRUPO (SELECT) +9
VIEW_REQ001INDICECONDFISCAL (SELECT), ITEM (SELECT), ITEMLOCAL (SELECT), ITEMPEDIDO (SELECT), ITEMPERFIL (SELECT), LOCALESTOQUE (SELECT) +4
VIEW_REQ001_ECATEGORIACONFECCAO (SELECT), CONDFISCAL (SELECT), GRUPO (SELECT), LOCALESTOQUE (SELECT), MARCA (SELECT), SECAO (SELECT) +3
VIEW_ULTIMOICMSEMPRESA (SELECT), IMPOSTO (SELECT), IMPOSTONOTA (SELECT), ITEMNOTA (SELECT), NOTA (SELECT), PESSOA (SELECT)

Tabelas via Procedures (acesso indireto)​

TabelaOperacoes
CATEGORIACONFECCAOSELECT
COLUNAGRADESELECT
CONDFISCALSELECT
CONDPAGTOSELECT
CONFERENCIAVOLUMEPRODUCAOSELECT
CONTROLEENTREGASELECT
EMPRESASELECT
ENDERECOPESSOASELECT
ESTOQUESELECT
ESTOQUEDIASELECT
ESTOQUEGRADESELECT
GRADESELECT
GRUPOSELECT
IMPOSTOSELECT
IMPOSTONOTASELECT
ITEMSELECT
ITEMLOCALSELECT
ITEMNOTASELECT
ITEMNOTAGRADESELECT
ITEMNOTASEMENTESELECT
...+44 tabelas

Modelos de Relatório​

O combobox "Tipo" (campo TP_RELATORIO) define o modelo impresso. Cada opcao chaveia um bloco SQL distinto dentro de btnImprimirClick em UREQ001.pas; o Layout .rtm carregado tambem muda por modelo. Os modelos compartilham a base de filtros (isqlSALDO) construida no inicio do handler.

Modelo E: Saldo X Custo Estoque​

Quando usado: item "Saldo X Custo Estoque" do combo "Tipo" (TP_RELATORIO = 'E'). Layout REQ001 (ou REQ001_O se a quebra "Lote de Produtos" estiver marcada; monta via modelo_E_Lote/modelo_E).

Mostra, por produto, saldo em quantidade, valor do estoque, custo medio e ultimo custo na data de posicao. Suporta quebras por Grupo/SubGrupo/Marca/Local/Unidade/Secao/Categoria/Grade e as opcoes de saldo/valor ("Somente com Saldo", "Sem Saldo", "Saldo Negativo", "Todos") e de movimentação ("Com/Sem Movimentação"). Usa RETORNA_SALDOESTOQUE para consolidar o saldo na data informada.

SQL Base (sem lote, sem grade):

SELECT /*E*/ ESTOQUE.CD_EMPRESA,
ITEM.CD_ITEM, ITEM.DS_ITEM, ITEM.CD_FORNECEDOR1, ITEM.SG_UNIDMED,
CAST(SUM(R.O_QT_SALDO) AS NUMERIC(15,5)) QTDE,
CAST(SUM(R.O_VL_SALDO) AS NUMERIC(15,4)) VALOR,
CAST(AVG(R.O_VL_CUSTOMEDIO) AS NUMERIC(15,4)) CUSTO,
CAST(AVG(R.O_VL_ULTIMOCUSTO) AS NUMERIC(15,4)) ULTCUSTO,
ITEM.NR_NCM
FROM ITEM
INNER JOIN CONDFISCAL ON (CONDFISCAL.CD_CONDFISCAL = ITEM.CD_CONDFISCAL)
INNER JOIN ITEMLOCAL ON (ITEMLOCAL.CD_ITEM = ITEM.CD_ITEM)
INNER JOIN TIPOLOCAL ON (ITEMLOCAL.CD_TIPOLOCAL = TIPOLOCAL.CD_TIPOLOCAL)
INNER JOIN LOCALESTOQUE ON (ITEMLOCAL.CD_TIPOLOCAL = LOCALESTOQUE.CD_TIPOLOCAL
AND ITEMLOCAL.CD_LOCAL = LOCALESTOQUE.CD_LOCAL)
INNER JOIN GRUPO ON (ITEM.CD_GRUPO = GRUPO.CD_GRUPO)
INNER JOIN MARCA ON (ITEM.CD_MARCA = MARCA.CD_MARCA)
INNER JOIN UNIDMED ON (ITEM.SG_UNIDMED = UNIDMED.SG_UNIDMED)
LEFT JOIN SUBGRUPO ON (ITEM.CD_SUBGRUPO = SUBGRUPO.CD_SUBGRUPO)
LEFT JOIN ESTOQUE ON (ESTOQUE.CD_ITEM = ITEMLOCAL.CD_ITEM
AND ESTOQUE.CD_TIPOLOCAL = ITEMLOCAL.CD_TIPOLOCAL
AND ESTOQUE.CD_LOCAL = ITEMLOCAL.CD_LOCAL)
LEFT JOIN RETORNA_SALDOESTOQUE(COALESCE(ESTOQUE.CD_EMPRESA, :CD_EMPRESA),
ITEM.CD_ITEM, ITEMLOCAL.CD_TIPOLOCAL, ITEMLOCAL.CD_LOCAL,
:DT_POSICAO) R ON (1 = 1)
WHERE ESTOQUE.CD_EMPRESA = :CD_EMPRESA
GROUP BY ESTOQUE.CD_EMPRESA, ITEM.CD_ITEM, ITEM.DS_ITEM,
ITEM.CD_FORNECEDOR1, ITEM.SG_UNIDMED, ITEM.NR_NCM

Modelo C: Saldo Comprometido X Custo​

Quando usado: item "Saldo Comprometido X Custo" (TP_RELATORIO = 'C'). Layout REQ001.

Exibe o saldo comprometido (pedidos em aberto) contra custo medio, ultimo custo e preco da tabela de compras (ITEMTABCOMPRA via PARMFATUR.CD_TABCOMPRA). Util para dimensionar compras considerando demanda ja empenhada.

SQL Base:

SELECT ESTOQUE.CD_EMPRESA,
ESTOQUE.CD_ITEM, ITEM.DS_ITEM, ITEM.CD_FORNECEDOR1, ITEM.SG_UNIDMED,
CAST(AVG(R.O_QT_SALDO) AS NUMERIC(15,5)) QTDE,
CAST(AVG(R.O_VL_SALDO) AS NUMERIC(15,4)) VALOR,
CAST(AVG(R.O_VL_CUSTOMEDIO) AS NUMERIC(15,4)) CUSTO,
CAST(AVG(R.O_VL_ULTIMOCUSTO) AS NUMERIC(15,4)) ULTCUSTO,
COALESCE(TC.VL_PRECO, 0) VL_TABCOMPRA
FROM ESTOQUE
LEFT JOIN RETORNA_ESTOQUECOMPROMETIDO(ESTOQUE.CD_EMPRESA, ESTOQUE.CD_ITEM,
NULL, NULL, :DT_POSICAO) R ON (1 = 1)
INNER JOIN ITEM ON (ESTOQUE.CD_ITEM = ITEM.CD_ITEM)
INNER JOIN CONDFISCAL ON (CONDFISCAL.CD_CONDFISCAL = ITEM.CD_CONDFISCAL)
INNER JOIN TIPOLOCAL ON (ESTOQUE.CD_TIPOLOCAL = TIPOLOCAL.CD_TIPOLOCAL)
INNER JOIN LOCALESTOQUE ON (ESTOQUE.CD_TIPOLOCAL = LOCALESTOQUE.CD_TIPOLOCAL
AND ESTOQUE.CD_LOCAL = LOCALESTOQUE.CD_LOCAL)
INNER JOIN GRUPO ON (ITEM.CD_GRUPO = GRUPO.CD_GRUPO)
INNER JOIN MARCA ON (ITEM.CD_MARCA = MARCA.CD_MARCA)
INNER JOIN UNIDMED ON (ITEM.SG_UNIDMED = UNIDMED.SG_UNIDMED)
LEFT JOIN PARMFATUR PF ON (PF.CD_EMPRESA = ESTOQUE.CD_EMPRESA)
LEFT JOIN ITEMTABCOMPRA TC ON (TC.CD_TABCOMPRA = PF.CD_TABCOMPRA
AND TC.CD_ITEM = ITEM.CD_ITEM)
WHERE ESTOQUE.CD_EMPRESA = :CD_EMPRESA
GROUP BY ESTOQUE.CD_EMPRESA, ESTOQUE.CD_ITEM, ITEM.CD_ITEM,
ITEM.DS_ITEM, ITEM.CD_FORNECEDOR1, ITEM.SG_UNIDMED, TC.VL_PRECO

Modelo G: Saldo X Grade​

Quando usado: TP_RELATORIO = 'G'. Layout especifico para quebra por grade.

Imprime o saldo distribuido em matriz linha x coluna da grade (tamanho, cor, etc.) usando VIEW_REQ001GRADE / ESTOQUEGRADE. Aceita filtros adicionais pelas abas "Descricao Linha Grade" e "Descricao Coluna Grade" com os modos "Igual a / Comeca com / Que Contem".

Modelo T: Saldo Comprometido X Grade​

Quando usado: TP_RELATORIO = 'T'. Versao "comprometido" do modelo G, usando RETORNA_ESTOQUECOMPROMETGRADE. Oculta filtro de local.

Modelo V: Saldo X Preco de Venda Analitico​

Quando usado: TP_RELATORIO = 'V'. Layout REQ001_V. Cruza o saldo com o preco atual da tabela de precos via RETORNA_PRECOITEM e PARMFATUR.CD_TABPRECO, listando item a item.

Modelo D: Saldo X Preco de Venda Sintetico​

Quando usado: TP_RELATORIO = 'D'. Layout REQ001_D. Agrega o modelo V por grupo/marca, com totais. So considera produtos ativos por default.

Modelo S: Saldo por Empresa​

Quando usado: TP_RELATORIO = 'S'. Layout REQ001_S. NAO filtra por Empresa (campo CD_EMPRESA fica desabilitado) — exibe ate 15 colunas de empresas (QT_ESTOQUE1..QT_ESTOQUE15) lado a lado via VIEW_REQ001.

SQL Base:

SELECT ITEM.CD_ITEM, ITEM.DS_ITEM, ITEM.CD_CODIGOBARRA, ITEM.CD_FORNECEDOR1,
MAX(CD_EMPRESA1) CD_EMPRESA1, MAX(NM_EMPRESA1) NM_EMPRESA1,
MAX(CD_EMPRESA2) CD_EMPRESA2, MAX(NM_EMPRESA2) NM_EMPRESA2,
/* ... ate CD_EMPRESA15 / NM_EMPRESA15 ... */
SUM(QT_ESTOQUE1) QT_ESTOQUE1,
SUM(QT_ESTOQUE2) QT_ESTOQUE2,
/* ... ate QT_ESTOQUE15 ... */
SUM(COALESCE(QT_ESTOQUE1,0) + COALESCE(QT_ESTOQUE2,0) + ...
+ COALESCE(QT_ESTOQUE15,0)) QT_SALDO
FROM VIEW_REQ001(:DT_POSICAO, :FILTRO_SALDO, :CD_USUARIO) ITEM
INNER JOIN ITEM I ON (I.CD_ITEM = ITEM.CD_ITEM)
INNER JOIN GRUPO ON (ITEM.CD_GRUPO = GRUPO.CD_GRUPO)
INNER JOIN MARCA ON (ITEM.CD_MARCA = MARCA.CD_MARCA)
LEFT JOIN SUBGRUPO ON (ITEM.CD_SUBGRUPO = SUBGRUPO.CD_SUBGRUPO)
GROUP BY ITEM.CD_ITEM, ITEM.DS_ITEM, ITEM.CD_FORNECEDOR1, ITEM.CD_CODIGOBARRA
HAVING /* conforme Saldo Estoque (S/N/X) e chkSomaSaldoEmp */
ORDER BY <TP_ORDEM>

Modelo L: Saldo por Local​

Quando usado: TP_RELATORIO = 'L'. Layout REQ001_L. Quebra o saldo por combinacao Tipo Local + Local de Armazenagem, ignorando filtro de Local.

Modelo N: Saldo de Produtos X Entrega​

Quando usado: TP_RELATORIO = 'N'. Layout REQ001_N. Cruza saldo atual com pedidos em aberto para entrega (via VIEW_CONTROLEENTREGA2 / CONTROLEENTREGA). Usa PARMFATUR.ST_ENTREGA como parametrizacao.

Modelo B: Saldo de Produtos p/ Balanco​

Quando usado: TP_RELATORIO = 'B'. Layout REQ001_B. Relatório usado em balanco fisico — lista item com saldo/valor/custo medio e espaco para contagem. Habilita a quebra por "Secao".

Modelo F: Saldo Comprometido p/ Balanco​

Quando usado: TP_RELATORIO = 'F'. Layout REQ001_F. Versao de balanco com saldo comprometido (utiliza RETORNA_ESTOQUECOMPROMETIDO).

Modelo I: Saldo de Produtos por Indexador​

Quando usado: TP_RELATORIO = 'I'. Layout REQ001_I. Oculta data de posicao; agrupa por indexador de correcao definido no cadastro do produto.

Modelo P: Saldo X Custo Estoque / Data Compra​

Quando usado: TP_RELATORIO = 'P'. Layout REQ001_P. Agrega o custo pela data da ultima compra (via ITEMTABCOMPRA).

Modelo W: Saldo de Estoque X Saldo Comprometido​

Quando usado: TP_RELATORIO = 'W'. Layout REQ001_W. Mostra lado a lado saldo disponivel, comprometido e a receber por lote (LOTESEMENTE). Permite comparar com Produto Similar (aba "Produto Similar").

Modelo A: Saldo X Custo Estoque / Tabela de Compras​

Quando usado: TP_RELATORIO = 'A'. Layout REQ001_A. Agrega custo da tabela de compras atual (ITEMTABCOMPRA via PARMFATUR.CD_TABCOMPRA). Habilita filtro por NCM.

Modelo H: Saldo Compr. e Produtos a Entregar p/ Balanco​

Quando usado: TP_RELATORIO = 'H'. Layout REQ001_H. Para balanco, combina comprometido com itens pendentes de entrega.

Modelo J: Saldo de Produtos X Perfil​

Quando usado: TP_RELATORIO = 'J'. Layout REQ001_J. Agrupa por perfil de produto (PERFIL/ITEMPERFIL). Habilita a quebra "Perfil".

Modelo K: Saldo X Custo Estoque com Imagem​

Quando usado: TP_RELATORIO = 'K'. Layout REQ001_K. Mesmo conteudo do modelo E com coluna de imagem do produto; desabilita filtro por lote.

Modelo M: Saldo X Custo Estoque por Lote​

Quando usado: TP_RELATORIO = 'M'. Layout REQ001_M. Detalha saldo por lote (LOTESEMENTE), aceitando filtro "Validade Lote De/Ate" (campos DT_VENCLOTEINI/DT_VENCLOTEFIM).

Modelo O: Custo Estoque e Condicao Fiscal​

Quando usado: TP_RELATORIO = 'O'. Layout REQ001_O. Traz o custo cruzado com a CONDFISCAL do produto. Habilita a quebra "Condicao Fiscal".

Modelo Q: Saldo de Grade p/ Balanco​

Quando usado: TP_RELATORIO = 'Q'. Layout REQ001_Q. Versao do modelo G voltada para balanco fisico de itens com grade (usa FILTROITEMGRADE + VIEW_REQ001GRADE).

Modelo R: Produtos por Grade em Colunas​

Quando usado: TP_RELATORIO = 'R'. Layout REQ001_R. Pivota os tamanhos/cores da grade em colunas (via ESTOQUEGRADE / VIEW_REQ001GRADE). Desabilita quebras de agrupamento.

Modelo U: Exportacao Estoque de Produtos​

Quando usado: TP_RELATORIO = 'U'. Gera arquivo texto de exportacao (sem layout grafico). Desabilita quase todas as quebras.

Modelo Z: Exportacao Produtos com Grade​

Quando usado: TP_RELATORIO = 'Z'. Versao de exportacao para itens com grade — habilita o grupo "Periodos" (DT_INI/DT_FIM de movimentação de estoque).

Modelo X: Saldo X Custo de Estoque por NCM​

Quando usado: TP_RELATORIO = 'X'. Layout REQ001_X. Agrega por NCM.

Modelo Y: Sintetico por Grupo​

Quando usado: TP_RELATORIO = 'Y'. Layout REQ001_Y. Sintese por grupo com custo. Desabilita quase todas as quebras (so Grupo/Marca).

Modelo 0: Exportacao Produtos Promocionais​

Quando usado: TP_RELATORIO = '0' (zero). Exportacao de itens marcados como promocionais (usa periodo DT_INI/DT_FIM).

Modelo 1: Saldo Estoque x ICMS Ultima Compra​

Quando usado: TP_RELATORIO = '1'. Layout REQ001_1. Cruza saldo com o ICMS da ultima nota de compra do item (via VIEW_ULTIMOICMS). Habilita as quebras "Fornecedor" e "Nr NCM".