delimiter ;

insert into instalacao_log(ds_passo) values ('passo 177');
drop view if exists vw_erpc_recibo_geraxml_totais;
drop view if exists vw_erpc_recibo_geraxml_prod_imposto;
drop view if exists vw_erpc_recibo_geraxml_produtos;

insert into instalacao_log(ds_passo) values ('passo 178');
CREATE VIEW`vw_erpc_recibo_geraxml_prod_imposto` AS select `ped`.`id` AS `nItem`,
1 AS `1`,
'ICMS' AS `tipo`,
concat('<ICMSSN102><Orig>',`org`.`cd_origem`,'</Orig><CSOSN>102</CSOSN></ICMSSN102>') AS `valor` 
from ((((((`erpc_pedidos_itens_liberados` `ped` 
     join `erpc_produtos` `pro` on((`ped`.`id_produto` = `pro`.`id`))) 
     join `erpc_origem_produto` `org` on((`pro`.`id_origem_produto` = `org`.`id`))) 
left join `erpc_tipos_movimentacao` `mov` on((`ped`.`id_tipo_movimentacao` = `mov`.`id`))) 
left join `erpc_dom_situacao_tributaria` `tri` on((`mov`.`id_situacao_tributaria` = `tri`.`id`))) 
left join `erpc_pedidos_venda_liberados` `ven` on((`ped`.`id_pedido_venda_liberado` = `ven`.`id`))) 
left join `erpc_unidades` `uni` on((`ven`.`id_unidade` = `uni`.`id`))) 
union all select `ped`.`id` AS `id_item_liberado`,2 AS `2`,'PIS' AS `tipo`,concat('<PISSN><CST>49</CST></PISSN>') AS `valor` from (((`erpc_pedidos_itens_liberados` `ped` join `erpc_produtos` `pro` on((`ped`.`id_produto` = `pro`.`id`))) left join `erpc_tipos_movimentacao` `mov` on((`ped`.`id_tipo_movimentacao` = `mov`.`id`))) left join `erpc_dom_situacao_tributaria` `tri` on((`mov`.`id_situacao_tributaria` = `tri`.`id`))) union all select `ped`.`id` AS `id_item_liberado`,3 AS `3`,'COFINS' AS `tipo`,concat('<COFINSSN><CST>49</CST></COFINSSN>') AS `valor` from (((`erpc_pedidos_itens_liberados` `ped` join `erpc_produtos` `pro` on((`ped`.`id_produto` = `pro`.`id`))) left join `erpc_tipos_movimentacao` `mov` on((`ped`.`id_tipo_movimentacao` = `mov`.`id`))) left join `erpc_dom_situacao_tributaria` `tri` on((`mov`.`id_situacao_tributaria` = `tri`.`id`))) order by `nItem`,`1`;


insert into instalacao_log(ds_passo) values ('passo 179');
CREATE VIEW vw_erpc_recibo_geraxml_produtos  
AS select  ped . id  AS  nItem ,
 ven . id  AS  nr_documento ,
 ven . id  AS  nr_nota ,
 ven . id  AS  nr_pedido ,
 pro . cd_produto  AS  cProd ,
 pro . ds_ean  AS  cEAN , pro .
 ds_produto  AS  xProd ,
 pro . ds_ncm  AS  NCM ,
 mov . ds_cfop  AS  CFOP ,
NULL AS  EXTIPI ,
 ped . id_unidade_medida  AS  uCom ,
 ped . nr_quantidade  AS  qCom ,
 ped . vl_unitario  AS  vUnCom ,
 ped . vl_desconto_produto  AS  vDesc ,
(( ped . vl_unitario  *  ped . nr_quantidade ) -  ped . vl_desconto_produto ) AS  vProd ,
'A' AS  indRegra ,( ncm . nr_perc_nacional  / 100) AS  vTribFed ,
( ncm . nr_perc_estadual  / 100) AS  vTribEst ,
( ncm . nr_perc_municipal  / 100) AS  vTribMun ,
 ncm . ds_chave_acesso  AS  ds_chave_ibpt  
from  erpc_pedidos_itens_liberados   ped  
join  erpc_pedidos_venda_liberados   ven  on  ped . id_pedido_venda_liberado  =  ven . id  
join  erpc_produtos   pro  on ped . id_produto  =  pro . id 
join  erpc_origem_produto   org  on pro . id_origem_produto  =  org . id 
left join  erpc_grupo_tributacao   grp  on pro . id_grupo_tributacao  =  grp . id 
left join  erpc_excecao_fiscal   exc  on grp . id  =  exc . id_grupo_tributacao 
left join  erpc_tipos_movimentacao   mov  on ped . id_tipo_movimentacao  =  mov . id 
left join  erpc_dom_situacao_tributaria   tri  on mov . id_situacao_tributaria  =  tri . id 
left join  erpc_tributos_ncm   ncm  on
     pro . ds_ncm  =  ncm . ds_ncm
 and case when pro.ds_ex_ncm is null then '' else pro.ds_ex_ncm end = ncm.ds_ex_tipi
;

insert into instalacao_log(ds_passo) values ('passo 180');
create view vw_erpc_recibo_geraxml_totais AS
    SELECT 
        pv.id AS nr_documento,
        NULL AS ds_numnf,
        pv.vl_total_pedido AS vl_total_pedido,
        fp.cd_forma AS cMP ,
        pv.vl_total_pedido AS vMP
    FROM erpc_pedidos_venda_liberados pv
    JOIN erpc_pedidos_itens_liberados pp ON pv.id = pp.id_pedido_venda_liberado
    JOIN erpc_dom_forma_pagamento     fp on pv.id_forma_pagamento = fp.id
    GROUP BY pv.id , pv.vl_total_pedido, fp.cd_forma;
    
drop view if exists vw_erpc_nfccode_geraxml_totais;

create view vw_erpc_nfccode_geraxml_totais AS
    SELECT 
        ds.id AS nr_documento,
        ds.ds_numnf AS ds_numnf,
        pv.vl_total_pedido AS vl_total_pedido,
        fp.cd_forma AS cMP ,
        pv.vl_total_pedido AS vMP
    FROM erpc_documentos_saida ds
	JOIN erpc_pedidos_documentos_saida dp ON ds.id = dp.id_documento_saida
	JOIN erpc_pedidos_venda_liberados pv ON dp.id_pedido_liberados = pv.id
    JOIN erpc_pedidos_itens_liberados pp ON pv.id = pp.id_pedido_venda_liberado
    JOIN erpc_dom_forma_pagamento     fp on pv.id_forma_pagamento = fp.id
    GROUP BY ds.id , ds.ds_numnf , pv.vl_total_pedido, fp.cd_forma
    ;
	
insert into instalacao_log(ds_passo) values ('passo 181');