CREATE VIEW CONSULTA_MYPHARMA_PRODUTOS (EAN, NAME, PRICE, QUANTITY, LABORATORY, PRECO_SEM_DESCONTO, PMC, ACTIVEPRINCIPLE)
AS
select ean,name,iif(prc_promo > 0 and prc_promo < price,prc_promo,price) as price, quantity,laboratory, PRECO_SEM_DESCONTO, PMC, activeprinciple
from
(
select ean,name,sum(price) price,sum(prc_promo) prc_promo,sum(quantity) as quantity,laboratory, PRECO_SEM_DESCONTO, PMC, activeprinciple
from
(
select
PRODUTOS.COD_BARRA as ean
,PRODUTOS.DESCRICAO as name
,(PRODUTOS.PRC_VENDA - ((PRODUTOS.PRC_VENDA / 100) * coalesce(PRODUTOS.DESC_INDIVIDUAL,0))) price
,0 as prc_promo
,ESTOQUES.EST_ATUAL as quantity,
PRODUTOS.FABRICANTE as laboratory,
PRODUTOS.PRECO_ECOMMERCE as PRECO_SEM_DESCONTO,
PRODUTOS.PMC as PMC,
PRODUTOS.PRINCATIVO As activeprinciple
from produtos
join estoques on PRODUTOS.CODIGO = ESTOQUES.CODIGO and ESTOQUES.EMPRESA =1
union all
select
PRODUTOS.COD_BARRA
,produtos.DESCRICAO
,0 as price
,(PRODUTOS.PRC_VENDA - ((PRODUTOS.PRC_VENDA / 100) * coalesce(PROMOCAO_PRD.DESCONTO,0))) prc_promo
,0
,PRODUTOS.FABRICANTE,
PRODUTOS.PRECO_ECOMMERCE as PRECO_SEM_DESCONTO,
PRODUTOS.PMC as PMC,
PRODUTOS.PRINCATIVO As activeprinciple
from produtos
join PROMOCAO_PRD on PROMOCAO_PRD.PRODUTO = PRODUTOS.CODIGO and PROMOCAO_PRD.DELETED_AT is null
join PROMOCAO_PRD_LOJAS on PROMOCAO_PRD.ID = PROMOCAO_PRD_LOJAS.ID_PRD_PROMOCAO
join PROMOCAO_CAB on PROMOCAO_CAB.ID = PROMOCAO_PRD.ID_CAB_PROMOCAO
and current_date between PROMOCAO_CAB.VIGENCIA_INICIAL and PROMOCAO_CAB.VIGENCIA_FINAL and promocao_cab.DELETED_AT is null
left join vendidos on vendidos.produto = produtos.codigo and VENDIDOS.DATA between PROMOCAO_CAB.VIGENCIA_INICIAL and PROMOCAO_CAB.VIGENCIA_FINAL
group by cod_barra,produtos.descricao,fabricante,price,PROMOCAO_PRD.DESCONTO,PROMOCAO_PRD_LOJAS.QUANTIDADE, PRECO_SEM_DESCONTO, PRODUTOS.PMC,prc_promo,produtos.princativo
having coalesce(sum(QUANTI - DEVOLVIDO), 0) < iif(PROMOCAO_PRD_LOJAS.QUANTIDADE is null, coalesce(sum(QUANTI - DEVOLVIDO), 0) + 1, PROMOCAO_PRD_LOJAS.QUANTIDADE)
)
group by ean,name,laboratory,PRECO_SEM_DESCONTO, PMC,activeprinciple
)
;