insert into instalacao_log(ds_passo) values ('passo 280');
/*criação da tabela de categorias de produtos*/
drop table if exists erpc_categorias_produtos;

create table erpc_categorias_produtos(
id int primary key auto_increment,
ds_categoria varchar(255),
ds_imagem varchar(255),
st_ativo tinyint
);

insert into instalacao_log(ds_passo) values ('passo 281');
/*alterando tabela de produtos para referenciar a categoria*/
alter table erpc_produtos add id_categoria int null;

insert into instalacao_log(ds_passo) values ('passo 282');
INSERT INTO `erpc_modulos` (`id`, `ds_modulo`, `ds_path_modulo`, `ds_icone`, `st_ativo`) VALUES
(15, 'Comanda', '', 'img/icones/hand-gesture.png', 1);

/*
ALTER TABLE erpc_produtos
ADD CONSTRAINT fk_erpc_produtos_erpc_categoria_produtos
FOREIGN KEY (id_categoria) REFERENCES erpc_categorias_produtos(id);
*/

insert into instalacao_log(ds_passo) values ('passo 283');
/*criação da tabela de comandas*/
DROP TABLE if exists erpc_comanda;

CREATE TABLE `erpc_comanda` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `id_unidade` int(11) NOT NULL,
 `nr_comanda` int(11) NOT NULL,
 `id_produto` int(11) NOT NULL,
 `id_unidade_medida` varchar(2) NOT NULL,
 `qt_pedido` decimal(15,4) NOT NULL,
 `vl_unitario` decimal(15,4) NOT NULL,
 `ds_pedido` varchar(100) DEFAULT NULL,
 `st_comanda` char(1) DEFAULT NULL,
 `st_entrega` bit(1) DEFAULT b'0',
 `id_usuario` int(11) NOT NULL,
 `ts_alteracao` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
 PRIMARY KEY (`id`),
 KEY `fk_comanda_usuario` (`id_usuario`),
 KEY `fk_comanda_produtos` (`id_produto`),
 KEY `fk_comanda_unidade_medida` (`id_unidade_medida`),
 KEY `fk_comanda_unidade` (`id_unidade`)
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=latin1;

insert into instalacao_log(ds_passo) values ('passo 284');
alter table erpc_comanda add column st_impressao bool after st_comanda;


insert into instalacao_log(ds_passo) values ('passo 285');
drop view if exists vw_erpc_comanda_geraxml_produtos;

Create View vw_erpc_comanda_geraxml_produtos
as
select   c.nr_comanda as xComanda
		,p.cd_produto as cProd
		,p.ds_produto as xProd
        ,c.qt_pedido  as qCom
        ,c.id_unidade_medida as uCom
		,c.id_unidade as id_unidade
		,c.ds_pedido as Obs
FROM 
		`erpc_comanda` c
			inner join erpc_produtos p
				on c.id_produto = p.id 
WHERE 
		st_comanda = 1
		and st_impressao != 1
;

insert into instalacao_log(ds_passo) values ('passo 286');
update erpc_funcionalidades set ds_path_funcionalidade = 'erpc_produtos_filter.php' where ds_funcionalidade like 'Produtos';

insert into instalacao_log(ds_passo) values ('passo 287');
alter table erpc_pedidos_venda add column dh_criacao datetime;

insert into instalacao_log(ds_passo) values ('passo 288');
update erpc_funcionalidades set ds_path_funcionalidade = 'erpc_pedidos_filter.php' where ds_funcionalidade like 'Liberar Pedidos';

insert into instalacao_log(ds_passo) values ('passo 289');
update 	erpc_pedidos_venda
		inner join erpc_pedidos_venda_liberados 
			on erpc_pedidos_venda.id = erpc_pedidos_venda_liberados.id_pedido_original
	set dh_criacao = erpc_pedidos_venda_liberados.dh_liberacao
	where erpc_pedidos_venda.dh_criacao is null;
	
insert into instalacao_log(ds_passo) values ('passo 290');
create table erpc_orcamento select * from erpc_pedidos_venda;
truncate table erpc_orcamento;

insert into instalacao_log(ds_passo) values ('passo 291');
alter table erpc_orcamento change id id int(11) AUTO_INCREMENT PRIMARY KEY;
alter table erpc_orcamento AUTO_INCREMENT = 1;

insert into instalacao_log(ds_passo) values ('passo 292');
create table erpc_orcamento_itens select * from erpc_pedidos_itens;
truncate table erpc_orcamento_itens;
alter table erpc_orcamento_itens change id id int(11) AUTO_INCREMENT PRIMARY KEY;
alter table erpc_orcamento_itens AUTO_INCREMENT = 1;


insert into instalacao_log(ds_passo) values ('passo 293');
create table erpc_orcamento_liberados select * from erpc_pedidos_venda_liberados;
truncate table erpc_orcamento_liberados;
alter table erpc_orcamento_liberados change id id int(11) AUTO_INCREMENT PRIMARY KEY;
alter table erpc_orcamento_liberados AUTO_INCREMENT = 1;

insert into instalacao_log(ds_passo) values ('passo 294');
create table erpc_orcamento_itens_liberados select * from erpc_pedidos_itens_liberados;
truncate table erpc_orcamento_itens_liberados;
alter table erpc_orcamento_itens_liberados change id id int(11) AUTO_INCREMENT PRIMARY KEY;
alter table erpc_orcamento_itens_liberados AUTO_INCREMENT = 1;


insert into instalacao_log(ds_passo) values ('passo 295');
drop view if exists vw_erpc_orcamento_geraxml_totais;

Create View vw_erpc_orcamento_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,
IF(IFNULL(pv.vl_pagamento,0)=0, pv.vl_total_pedido, vl_pagamento) AS vMP
from ((erpc_orcamento_liberados pv 
join erpc_orcamento_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 ;


insert into instalacao_log(ds_passo) values ('passo 296');
drop view if exists vw_erpc_orcamento_geraxml_produtos;
CREATE VIEW vw_erpc_orcamento_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_orcamento_itens_liberados   ped  
join  erpc_orcamento_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 297');
drop view if exists vw_erpc_orcamento_geraxml_prod_imposto;
CREATE VIEW`vw_erpc_orcamento_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_orcamento_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_orcamento_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_orcamento_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_orcamento_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 298');
DELIMITER $$

DROP PROCEDURE IF EXISTS pr_orcamento_cliente$$

CREATE PROCEDURE `pr_orcamento_cliente`(IN _ID_PED INT)
BEGIN
	/*CORPO DO PROCEDIMENTO*/
select	 cl.ds_cnpj_cpf, 
		 cl.ds_nome, 
         cl.ds_tipo_documento,
         cl.ds_endereco,
         cl.ds_bairro,
		 cl.ds_contato
into @documento, @nome, @tipo, @end, @bairro, @contato
  from	erpc_orcamento_liberados  pv
  join	erpc_clientes cl
  	on  pv.id_cliente = cl.id
where   pv.id = _ID_PED;

if @documento='' then
	select @nome  as xNome, @end as xEnd, @bairro as xBairro, @contato as xContato;
elseif @tipo='J' then
	select @documento as CNPJ, @nome as xNome, @end as xEnd, @bairro as xBairro, @contato as xContato;
elseif @tipo='F' then 
	select @documento as CPF, @nome as xNome, @end as xEnd, @bairro as xBairro, @contato as xContato;
end if;    

END$$
DELIMITER ;
   
insert into instalacao_log(ds_passo) values ('passo 299');
   
update `erpc_dom_forma_pagamento` set ds_forma = 'Cartão de Crédito' WHERE id = 3;
update `erpc_dom_forma_pagamento` set ds_forma = 'Cartão de Débito' WHERE id = 4;
update `erpc_dom_forma_pagamento` set ds_forma = 'Crédito Loja' WHERE id = 5;
update `erpc_dom_forma_pagamento` set ds_forma = 'Vale Alimentação' WHERE id = 6;
update `erpc_dom_forma_pagamento` set ds_forma = 'Vale Refeição' WHERE id = 7;
update `erpc_dom_forma_pagamento` set ds_forma = 'Vale Combustível' WHERE id = 9;

insert into instalacao_log(ds_passo) values ('passo 300');