Adicionando esqueleto dos restantes assuntos de produtos ai
davinTI/app-dono-modulos/pipeline/head This commit looks good
davinTI/app-dono-modulos/pipeline/head This commit looks good
This commit is contained in:
+347
-131
@@ -64,144 +64,145 @@ export default moduleFactory
|
||||
tabela_rag: "tb_flash_nodo"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
produtos_detalhe_mdv: {
|
||||
descricao: "Consulta o histórico diário de giro (MDV - Média de Venda Diária) e quantidade vendida de um produto em uma loja específica. Útil para entender a vazão do item dia a dia.",
|
||||
prompt: {
|
||||
prompt_persona: "Você é um Extrator de Filtros focado no histórico de vendas e giro diário. Sua tarefa: preparar a busca pelo histórico de MDV de um produto em uma unidade.",
|
||||
prompt_tarefa: "1. Filtros: extraia 'produto' e 'loja'.\n2. Agrupamento: vazio (dados virão por dia).",
|
||||
prompt_regras_gerais: "- 'produto' e 'loja' são fundamentais para não sobrecarregar o banco.",
|
||||
prompt_regras_contexto: "- Se a loja for omitida, busque-a no contexto.",
|
||||
prompt_exemplos: "Ex.: 'Como foi a venda diária de Picanha na loja Sul?' → produto='Picanha', loja='Sul'.",
|
||||
prompt_outras_infos: "A query retorna a timeline (data, quantidade vendida, estoque inicial) limitada ao produto e loja filtrados.",
|
||||
prompt_saida: "Responda com uma análise dos dados recebidos conforme a pergunta do usuário, de forma objetiva e direta, apenas com as informações solicitadas."
|
||||
},
|
||||
json_params_saida: {
|
||||
agrupamentos: [],
|
||||
filtros: {
|
||||
produto: {
|
||||
descricao_agente: "Nome, EAN ou código do produto.",
|
||||
coluna_vtr: "mcdia.seqproduto",
|
||||
tabela_rag: "map_produto"
|
||||
},
|
||||
loja: {
|
||||
descricao_agente: "Nome ou código da loja/empresa.",
|
||||
coluna_vtr: "mcdia.nroempresa",
|
||||
tabela_rag: "tb_flash_nodo"
|
||||
}
|
||||
}
|
||||
}
|
||||
query_base: "produto_detalhe_preco_ai"
|
||||
},
|
||||
produtos_situacao_vigente: {
|
||||
descricao: "Consulta o histórico de promoções e preços vigentes (situação vigente) de um produto em uma loja específica. Útil para verificar campanhas promocionais e variações de preço ofertado.",
|
||||
prompt: {
|
||||
prompt_persona: "Você é um Extrator de Filtros focado no histórico de campanhas promocionais. Sua tarefa: preparar a busca pela situação vigente de preços de um produto em uma loja.",
|
||||
prompt_tarefa: "1. Extraia 'produto' e 'loja'.",
|
||||
prompt_regras_gerais: "- Identifique os nomes do produto e da loja.",
|
||||
prompt_regras_contexto: "- Resgate filtros de turnos anteriores se a frase atual for incompleta.",
|
||||
prompt_exemplos: "Ex.: 'A Brahma esteve em promoção na loja Norte?' → produto='Brahma', loja='Norte'.",
|
||||
prompt_outras_infos: "Retorna o período (data início e fim) das promoções do produto na loja.",
|
||||
prompt_saida: "Responda com uma análise dos dados recebidos conforme a pergunta do usuário, de forma objetiva e direta, apenas com as informações solicitadas."
|
||||
produtos_detalhe_mdv: {
|
||||
descricao: "Consulta o histórico diário de giro (MDV - Média de Venda Diária) e quantidade vendida de um produto em uma loja específica. Útil para entender a vazão do item dia a dia.",
|
||||
prompt: {
|
||||
prompt_persona: "Você é um Extrator de Filtros focado no histórico de vendas e giro diário. Sua tarefa: preparar a busca pelo histórico de MDV de um produto em uma unidade.",
|
||||
prompt_tarefa: "1. Filtros: extraia 'produto' e 'loja'.\n2. Agrupamento: vazio (dados virão por dia).",
|
||||
prompt_regras_gerais: "- 'produto' e 'loja' são fundamentais para não sobrecarregar o banco.",
|
||||
prompt_regras_contexto: "- Se a loja for omitida, busque-a no contexto.",
|
||||
prompt_exemplos: "Ex.: 'Como foi a venda diária de Picanha na loja Sul?' → produto='Picanha', loja='Sul'.",
|
||||
prompt_outras_infos: "A query retorna a timeline (data, quantidade vendida, estoque inicial) limitada ao produto e loja filtrados.",
|
||||
prompt_saida: "Responda com uma análise dos dados recebidos conforme a pergunta do usuário, de forma objetiva e direta, apenas com as informações solicitadas."
|
||||
},
|
||||
json_params_saida: {
|
||||
agrupamentos: [],
|
||||
filtros: {
|
||||
produto: {
|
||||
descricao_agente: "Nome, EAN ou código do produto.",
|
||||
coluna_vtr: "mcdia.seqproduto",
|
||||
tabela_rag: "map_produto"
|
||||
},
|
||||
loja: {
|
||||
descricao_agente: "Nome ou código da loja/empresa.",
|
||||
coluna_vtr: "mcdia.nroempresa",
|
||||
tabela_rag: "tb_flash_nodo"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
json_params_saida: {
|
||||
agrupamentos: [],
|
||||
filtros: {
|
||||
produto: {
|
||||
descricao_agente: "Nome, EAN ou código do produto.",
|
||||
coluna_vtr: "mrl_prodempseg.seqproduto",
|
||||
tabela_rag: "consinco.map_produto"
|
||||
},
|
||||
loja: {
|
||||
descricao_agente: "Nome ou código da loja/empresa.",
|
||||
coluna_vtr: "mrl_prodempseg.nroempresa",
|
||||
tabela_rag: "tb_flash_nodo"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
produtos_custo_liquido: {
|
||||
descricao: "Consulta a evolução histórica do custo líquido, entradas e saídas de um produto em uma loja específica. Útil para análise de flutuação de custo de reposição.",
|
||||
prompt: {
|
||||
prompt_persona: "Você é um Extrator de Filtros focado na evolução de custos de mercadoria. Extraia o produto e a loja alvo.",
|
||||
prompt_tarefa: "1. Filtros: identifique 'produto' e 'loja'.",
|
||||
prompt_regras_gerais: "- Preencha rigorosamente os filtros exigidos.",
|
||||
prompt_regras_contexto: "- Em 'E na loja Leste?', resgate o produto em discussão.",
|
||||
prompt_exemplos: "Ex.: 'Como variou o custo do feijão na loja Centro?' → produto='feijão', loja='Centro'.",
|
||||
prompt_outras_infos: "Retorna dados linha a linha por data; sem necessidade de agrupamento.",
|
||||
prompt_saida: "Responda com uma análise dos dados recebidos conforme a pergunta do usuário, de forma objetiva e direta, apenas com as informações solicitadas."
|
||||
produtos_situacao_vigente: {
|
||||
descricao: "Consulta o histórico de promoções e preços vigentes (situação vigente) de um produto em uma loja específica. Útil para verificar campanhas promocionais e variações de preço ofertado.",
|
||||
prompt: {
|
||||
prompt_persona: "Você é um Extrator de Filtros focado no histórico de campanhas promocionais. Sua tarefa: preparar a busca pela situação vigente de preços de um produto em uma loja.",
|
||||
prompt_tarefa: "1. Extraia 'produto' e 'loja'.",
|
||||
prompt_regras_gerais: "- Identifique os nomes do produto e da loja.",
|
||||
prompt_regras_contexto: "- Resgate filtros de turnos anteriores se a frase atual for incompleta.",
|
||||
prompt_exemplos: "Ex.: 'A Brahma esteve em promoção na loja Norte?' → produto='Brahma', loja='Norte'.",
|
||||
prompt_outras_infos: "Retorna o período (data início e fim) das promoções do produto na loja.",
|
||||
prompt_saida: "Responda com uma análise dos dados recebidos conforme a pergunta do usuário, de forma objetiva e direta, apenas com as informações solicitadas."
|
||||
},
|
||||
json_params_saida: {
|
||||
agrupamentos: [],
|
||||
filtros: {
|
||||
produto: {
|
||||
descricao_agente: "Nome, EAN ou código do produto.",
|
||||
coluna_vtr: "mrl_prodempseg.seqproduto",
|
||||
tabela_rag: "consinco.map_produto"
|
||||
},
|
||||
loja: {
|
||||
descricao_agente: "Nome ou código da loja/empresa.",
|
||||
coluna_vtr: "mrl_prodempseg.nroempresa",
|
||||
tabela_rag: "tb_flash_nodo"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
json_params_saida: {
|
||||
agrupamentos: [],
|
||||
filtros: {
|
||||
produto: {
|
||||
descricao_agente: "Nome, EAN ou código do produto.",
|
||||
coluna_vtr: "mrl_prodempseg.seqproduto",
|
||||
tabela_rag: "consinco.map_produto"
|
||||
},
|
||||
loja: {
|
||||
descricao_agente: "Nome ou código da loja/empresa.",
|
||||
coluna_vtr: "mrl_prodempseg.nroempresa",
|
||||
tabela_rag: "tb_flash_nodo"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
produtos_estoque_disponivel: {
|
||||
descricao: "Consulta o histórico diário de movimentação do estoque (entradas, saídas e saldo) de um produto em uma loja específica nos últimos 365 dias.",
|
||||
prompt: {
|
||||
prompt_persona: "Você é um Extrator de Filtros focado no fluxo contínuo de estoque. Extraia o necessário para rastrear o saldo do item.",
|
||||
prompt_tarefa: "1. Extraia 'produto' e 'loja'.",
|
||||
prompt_regras_gerais: "- É vital identificar a loja correta.",
|
||||
prompt_regras_contexto: "- Considere o histórico; o usuário pode analisar várias lojas seguidamente sobre o mesmo produto.",
|
||||
prompt_exemplos: "Ex.: 'Movimentação do estoque de Fralda Turma da Mônica na unidade Brooklin.' → produto='Fralda Turma da Mônica', loja='Brooklin'.",
|
||||
prompt_outras_infos: "Timeline do estoque, cruzando entradas e saídas diárias do produto na loja escolhida.",
|
||||
prompt_saida: "Responda com uma análise dos dados recebidos conforme a pergunta do usuário, de forma objetiva e direta, apenas com as informações solicitadas."
|
||||
produtos_custo_liquido: {
|
||||
descricao: "Consulta a evolução histórica do custo líquido, entradas e saídas de um produto em uma loja específica. Útil para análise de flutuação de custo de reposição.",
|
||||
prompt: {
|
||||
prompt_persona: "Você é um Extrator de Filtros focado na evolução de custos de mercadoria. Extraia o produto e a loja alvo.",
|
||||
prompt_tarefa: "1. Filtros: identifique 'produto' e 'loja'.",
|
||||
prompt_regras_gerais: "- Preencha rigorosamente os filtros exigidos.",
|
||||
prompt_regras_contexto: "- Em 'E na loja Leste?', resgate o produto em discussão.",
|
||||
prompt_exemplos: "Ex.: 'Como variou o custo do feijão na loja Centro?' → produto='feijão', loja='Centro'.",
|
||||
prompt_outras_infos: "Retorna dados linha a linha por data; sem necessidade de agrupamento.",
|
||||
prompt_saida: "Responda com uma análise dos dados recebidos conforme a pergunta do usuário, de forma objetiva e direta, apenas com as informações solicitadas."
|
||||
},
|
||||
json_params_saida: {
|
||||
agrupamentos: [],
|
||||
filtros: {
|
||||
produto: {
|
||||
descricao_agente: "Nome, EAN ou código do produto.",
|
||||
coluna_vtr: "mrl_prodempseg.seqproduto",
|
||||
tabela_rag: "consinco.map_produto"
|
||||
},
|
||||
loja: {
|
||||
descricao_agente: "Nome ou código da loja/empresa.",
|
||||
coluna_vtr: "mrl_prodempseg.nroempresa",
|
||||
tabela_rag: "tb_flash_nodo"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
json_params_saida: {
|
||||
agrupamentos: [],
|
||||
filtros: {
|
||||
produto: {
|
||||
descricao_agente: "Nome, EAN ou código do produto.",
|
||||
coluna_vtr: "x.seqproduto",
|
||||
tabela_rag: "consinco.map_produto"
|
||||
},
|
||||
loja: {
|
||||
descricao_agente: "Nome ou código da loja/empresa.",
|
||||
coluna_vtr: "x.nroempresa",
|
||||
tabela_rag: "tb_flash_nodo"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
detalhe_estoque_transito: {
|
||||
descricao: "Consulta detalhes de notas fiscais e mercadorias em trânsito de um produto para uma loja específica. Útil para rastrear entregas pendentes, identificar fornecedores e verificar quantidades e valores de produtos a caminho.",
|
||||
prompt: {
|
||||
prompt_persona: "Você é um Extrator de Filtros de Logística e Recebimento. Sua tarefa: extrair os filtros para rastrear o estoque em trânsito (notas fiscais emitidas) de um item para uma loja.",
|
||||
prompt_tarefa: "1. Filtros: identifique 'produto' e 'loja' (empresa) de destino.\n2. Agrupamento: vazio (dados retornam por nota fiscal).",
|
||||
prompt_regras_gerais: "- Obrigatório preencher os filtros de produto e loja para execução otimizada.",
|
||||
prompt_regras_contexto: "- Resgate filtros de turnos anteriores. Ex: em 'E na loja Sul, tem algo chegando?', herde o produto do histórico.",
|
||||
prompt_exemplos: "Ex.: 'Tem nota de Arroz Tio João chegando na loja Norte?' → produto='Arroz Tio João', loja='Norte'.",
|
||||
prompt_outras_infos: "Retorna as notas fiscais do último ano com fornecedor, datas de emissão/entrada e quantidade em trânsito do produto para a loja.",
|
||||
prompt_saida: "Responda ÚNICA e EXCLUSIVAMENTE com um objeto JSON válido, aderente ao schema. Sem texto extra e sem markdown — apenas o objeto puro."
|
||||
produtos_estoque_disponivel: {
|
||||
descricao: "Consulta o histórico diário de movimentação do estoque (entradas, saídas e saldo) de um produto em uma loja específica nos últimos 365 dias.",
|
||||
prompt: {
|
||||
prompt_persona: "Você é um Extrator de Filtros focado no fluxo contínuo de estoque. Extraia o necessário para rastrear o saldo do item.",
|
||||
prompt_tarefa: "1. Extraia 'produto' e 'loja'.",
|
||||
prompt_regras_gerais: "- É vital identificar a loja correta.",
|
||||
prompt_regras_contexto: "- Considere o histórico; o usuário pode analisar várias lojas seguidamente sobre o mesmo produto.",
|
||||
prompt_exemplos: "Ex.: 'Movimentação do estoque de Fralda Turma da Mônica na unidade Brooklin.' → produto='Fralda Turma da Mônica', loja='Brooklin'.",
|
||||
prompt_outras_infos: "Timeline do estoque, cruzando entradas e saídas diárias do produto na loja escolhida.",
|
||||
prompt_saida: "Responda com uma análise dos dados recebidos conforme a pergunta do usuário, de forma objetiva e direta, apenas com as informações solicitadas."
|
||||
},
|
||||
json_params_saida: {
|
||||
agrupamentos: [],
|
||||
filtros: {
|
||||
produto: {
|
||||
descricao_agente: "Nome, EAN ou código do produto.",
|
||||
coluna_vtr: "x.seqproduto",
|
||||
tabela_rag: "consinco.map_produto"
|
||||
},
|
||||
loja: {
|
||||
descricao_agente: "Nome ou código da loja/empresa.",
|
||||
coluna_vtr: "x.nroempresa",
|
||||
tabela_rag: "tb_flash_nodo"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
json_params_saida: {
|
||||
agrupamentos: [],
|
||||
filtros: {
|
||||
produto: {
|
||||
descricao_agente: "Nome, EAN ou código do produto.",
|
||||
coluna_vtr: "b.seqproduto",
|
||||
tabela_rag: "consinco.map_produto"
|
||||
},
|
||||
loja: {
|
||||
descricao_agente: "Nome ou código da loja/empresa de destino.",
|
||||
coluna_vtr: "a.nroempresa",
|
||||
tabela_rag: "tb_flash_nodo"
|
||||
}
|
||||
}
|
||||
detalhe_estoque_transito: {
|
||||
descricao: "Consulta detalhes de notas fiscais e mercadorias em trânsito de um produto para uma loja específica. Útil para rastrear entregas pendentes, identificar fornecedores e verificar quantidades e valores de produtos a caminho.",
|
||||
prompt: {
|
||||
prompt_persona: "Você é um Extrator de Filtros de Logística e Recebimento. Sua tarefa: extrair os filtros para rastrear o estoque em trânsito (notas fiscais emitidas) de um item para uma loja.",
|
||||
prompt_tarefa: "1. Filtros: identifique 'produto' e 'loja' (empresa) de destino.\n2. Agrupamento: vazio (dados retornam por nota fiscal).",
|
||||
prompt_regras_gerais: "- Obrigatório preencher os filtros de produto e loja para execução otimizada.",
|
||||
prompt_regras_contexto: "- Resgate filtros de turnos anteriores. Ex: em 'E na loja Sul, tem algo chegando?', herde o produto do histórico.",
|
||||
prompt_exemplos: "Ex.: 'Tem nota de Arroz Tio João chegando na loja Norte?' → produto='Arroz Tio João', loja='Norte'.",
|
||||
prompt_outras_infos: "Retorna as notas fiscais do último ano com fornecedor, datas de emissão/entrada e quantidade em trânsito do produto para a loja.",
|
||||
prompt_saida: "Responda ÚNICA e EXCLUSIVAMENTE com um objeto JSON válido, aderente ao schema. Sem texto extra e sem markdown — apenas o objeto puro."
|
||||
},
|
||||
json_params_saida: {
|
||||
agrupamentos: [],
|
||||
filtros: {
|
||||
produto: {
|
||||
descricao_agente: "Nome, EAN ou código do produto.",
|
||||
coluna_vtr: "b.seqproduto",
|
||||
tabela_rag: "consinco.map_produto"
|
||||
},
|
||||
loja: {
|
||||
descricao_agente: "Nome ou código da loja/empresa de destino.",
|
||||
coluna_vtr: "a.nroempresa",
|
||||
tabela_rag: "tb_flash_nodo"
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
queries: {
|
||||
consulta: {
|
||||
@@ -666,6 +667,41 @@ export default moduleFactory
|
||||
},
|
||||
params: ["nrempresa", "codproduto"],
|
||||
},
|
||||
produto_detalhe_preco_ai: {
|
||||
name: "Detalhe Preço AI",
|
||||
display: {
|
||||
type: "none"
|
||||
},
|
||||
params: ["data"]
|
||||
},
|
||||
produto_detalhe_mdv_ai: {
|
||||
name: "Detalhe MDV AI",
|
||||
display: {
|
||||
type: "none"
|
||||
},
|
||||
params: ["data"]
|
||||
},
|
||||
produto_detalhe_estoque_ai: {
|
||||
name: "Detalhe Estoque AI",
|
||||
display: {
|
||||
type: "none"
|
||||
},
|
||||
params: ["data"]
|
||||
},
|
||||
produto_detalhe_custo_ai: {
|
||||
name: "Detalhe Custo AI",
|
||||
display: {
|
||||
type: "none"
|
||||
},
|
||||
params: ["data"]
|
||||
},
|
||||
produto_detalhe_margem_ai: {
|
||||
name: "Detalhe Margem AI",
|
||||
display: {
|
||||
type: "none"
|
||||
},
|
||||
params: ["data"]
|
||||
}
|
||||
},
|
||||
entrypoint: "consulta",
|
||||
})
|
||||
@@ -1493,6 +1529,57 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
|
||||
`,
|
||||
};
|
||||
},
|
||||
produto_detalhe_preco_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
SELECT
|
||||
ora_hash(mgmp.SEQPRODUTO || mgmp.NROEMPRESA || mgmp.QTDEMBALAGEM || mgmp.NROSEGMENTO) chave,
|
||||
mgmp.SEQPRODUTO,
|
||||
mgmp.NROEMPRESA,
|
||||
mgmp.NROSEGMENTO,
|
||||
mgmp.QTDEMBALAGEM || ' ' || mgmp.EMBVENDA embalagem,
|
||||
mgmp.PRECOVALIDNORMAL preco_embalagem,
|
||||
mgmp.PRECOVALIDNORMAL / mgmp.QTDEMBALAGEM preco_unidade,
|
||||
trunc(mgmp.MGMPRECOVALIDO, 2) margem
|
||||
FROM consinco.maxv_mgmbaseprodseg mgmp
|
||||
INNER JOIN consinco.max_empresa me
|
||||
ON me.nroempresa = mgmp.NROEMPRESA
|
||||
AND me.status = 'A'
|
||||
AND me.dtainiciomovestoque <= trunc(sysdate) - 1
|
||||
WHERE 1=1
|
||||
AND mgmp.STATUSVENDA = 'A'
|
||||
--FILTROS--
|
||||
`
|
||||
}
|
||||
},
|
||||
produto_detalhe_custo_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
|
||||
`
|
||||
}
|
||||
},
|
||||
produto_detalhe_margem_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
|
||||
`
|
||||
}
|
||||
},
|
||||
produto_detalhe_mdv_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
|
||||
`
|
||||
}
|
||||
},
|
||||
produto_detalhe_estoque_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
|
||||
`
|
||||
}
|
||||
}
|
||||
},
|
||||
C5_mambo: {
|
||||
consulta: (args) => {
|
||||
@@ -1953,6 +2040,41 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
|
||||
`,
|
||||
};
|
||||
},
|
||||
produto_detalhe_preco_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
|
||||
`
|
||||
}
|
||||
},
|
||||
produto_detalhe_estoque_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
|
||||
`
|
||||
}
|
||||
},
|
||||
produto_detalhe_custo_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
|
||||
`
|
||||
}
|
||||
},
|
||||
produto_detalhe_margem_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
|
||||
`
|
||||
}
|
||||
},
|
||||
produto_detalhe_mdv_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
|
||||
`
|
||||
}
|
||||
},
|
||||
},
|
||||
C5_big: {
|
||||
consulta: (args) => {
|
||||
@@ -2816,6 +2938,41 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
|
||||
`,
|
||||
};
|
||||
},
|
||||
produto_detalhe_preco_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
|
||||
`
|
||||
}
|
||||
},
|
||||
produto_detalhe_custo_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
|
||||
`
|
||||
}
|
||||
},
|
||||
produto_detalhe_margem_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
|
||||
`
|
||||
}
|
||||
},
|
||||
produto_detalhe_mdv_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
|
||||
`
|
||||
}
|
||||
},
|
||||
produto_detalhe_estoque_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
|
||||
`
|
||||
}
|
||||
}
|
||||
},
|
||||
Verdemar: {
|
||||
consulta: (args) => {
|
||||
@@ -3283,6 +3440,65 @@ and pes2.qtdembalagem = (select nvl(max(pes3.qtdembalagem), 1)
|
||||
ORDER BY e.dataemissao ASC, e.numeronota, e.serienota
|
||||
`
|
||||
}
|
||||
},
|
||||
produto_detalhe_preco_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
SELECT
|
||||
CAST(p.codigo AS VARCHAR2(15)) || CAST(l.codigo AS VARCHAR2(10)) ||
|
||||
CAST(ean.quantidade AS VARCHAR2(10)) || '0' AS chave,
|
||||
p.codigo AS SEQPRODUTO,
|
||||
l.codigo AS NROEMPRESA,
|
||||
0 AS NROSEGMENTO,
|
||||
ean.quantidade || ' ' || ean.embalagem AS embalagem,
|
||||
pp.precovenda AS preco_embalagem,
|
||||
pp.precovenda / GREATEST(ean.quantidade, 1) AS preco_unidade,
|
||||
ROUND(pp.sugestao, 2) AS margem
|
||||
|
||||
FROM verdemar.produtos p
|
||||
INNER JOIN verdemar.produtos_loja pl
|
||||
ON pl.codigo = p.codigo
|
||||
INNER JOIN verdemar.loja l
|
||||
ON l.codigo = pl.loja
|
||||
INNER JOIN verdemar.produtos_precos pp
|
||||
ON pp.codigo = p.codigo
|
||||
AND pp.loja = l.codigo
|
||||
INNER JOIN verdemar.produtos_ean ean
|
||||
ON ean.codigo = p.codigo
|
||||
AND ean.vendapadrao = 'S'
|
||||
WHERE 1=1
|
||||
AND p.inativo = 'N'
|
||||
--FILTROS--
|
||||
`
|
||||
}
|
||||
},
|
||||
produto_detalhe_custo_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
|
||||
`
|
||||
}
|
||||
},
|
||||
produto_detalhe_margem_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
|
||||
`
|
||||
}
|
||||
},
|
||||
produto_detalhe_mdv_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
|
||||
`
|
||||
}
|
||||
},
|
||||
produto_detalhe_estoque_ai: (args) => {
|
||||
return {
|
||||
sql: /*sql*/ `
|
||||
|
||||
`
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user