O conteúdo desse post tem como objetivo orientação de como realizar a manutenção do CUSTO e LUCRO no ABC de Vendas quando é realizado um recebimento com custo ou quantidade de embalagem incorreto;

–CASO NÃO MUDE A MARGEM REAL VERIFICAR OS CONFIGs 100 E 101 COLOCAR = 0 (PADRÃO CLIENTES)
–CASO SEJA CUSTO MÉDIO ISSO MUDA.
–CALCULO DA MARGEM REAL COM CONFIG 100 E 101 = 0 | MARGEM REAL = (CUSTO/VENDA) / CUSTO

1 – Realizar BACKUP das tabelas (venda_diaria e venda_item) executando as linhas de comando abaixo.
OBS: Caso apresente erro de SCHEMA, crie-o denominado de BACKUP.

–BACKUP VENDA_DIARIA ITEM
create table backup.venda_item_ajustecusto as select * from venda_item;

–BACKUP VENDA_DIARIA
create table backup.venda_diaria_ajustecusto as select * from venda_diaria;

2 – Apos execução dos comandos acima, execute o SELECT abaixo, informando o ID empresadata inicial e final do ajustecódigo do produto para verificar o custo do produto.

–SELECT VENDA ITEM
select produto_loja.custo, produto_loja.produto, venda_item. *
from venda_item, venda, produto_loja
where venda.id = venda_item.venda
and venda.empresa = ID empresa
and produto_loja.empresa = ID empresa
and venda_item.produto = produto_loja.produto
and venda_item.custoicms <> produto_loja.custo
and cast(venda.dataproc as date) between ’01/01/2000′ and ’31/12/2000′
and venda_item.produto = ID produto;

2.1 – Depois de identificado os produtos na select acima, execute o update abaixo  informando o ID da empresa, data inicial e final do ajuste e código do produto.

–UPDATE VENDA ITEM
update venda_item set custoicms = produto_loja.custo
from venda, produto_loja
where venda.id = venda_item.venda
and venda.empresa = ID empresa
and produto_loja.empresa = ID empresa
and venda_item.produto = produto_loja.produto
and venda_item.custoicms <> produto_loja.custo
and cast(venda.dataproc as date) between ’01/01/2000′ and ’31/12/2000′
and venda_item.produto = ID produto;

3 – Depois de realizado o update acima, execute o select abaixo  informando o ID da empresa, data inicial e final do ajuste e código do produto para verificar o custo do produto.

–SELECT VENDA_DIARIA
select produto_loja.produto, produto_loja.custo, produto_loja.custo * venda_diaria.qtde as custo_novo, venda_diaria.custo,
venda_diaria.*
from venda_diaria, produto_loja
where venda_diaria.data between ’01/01/2000′ and ’31/12/2000′
and venda_diaria.empresa = ID empresa
and produto_loja.empresa = ID empresa
and venda_diaria.produto = produto_loja.produto
and venda_diaria.produto in (ID produto)
and venda_diaria.custo <> produto_loja.custo * venda_diaria.qtde;

3.1 – Depois de identificado os produtos na select acima, execute o update abaixo  informando o ID da empresa, data inicial e final do ajuste e código do produto.

–UPDATE VENDA_DIARIA
update venda_diaria set custo = produto_loja.custo * qtde
from produto_loja
where venda_diaria.data between ’01/01/2000′ and ’31/12/2000′
and venda_diaria.empresa = ID empresa
and produto_loja.empresa = ID empresa
and venda_diaria.produto = produto_loja.produto
and venda_diaria.produto in (ID produto)
and venda_diaria.custo <> produto_loja.custo * venda_diaria.qtde;

 

O comando abaixo retorna backup caso o update apresente algum erro.
–VOLTA BACKUCP COLUNA CASO O UPDATE DE ERRADO
update venda_item set custoicms = vi.custoicms
from backup.venda_item06062018 vi
where venda_item.id = vi.id;