· 5 years ago · Feb 07, 2020, 04:32 PM
1#Código create da tabela
2CREATE TABLE `pedidos` (
3 `Id` INT(11) NOT NULL AUTO_INCREMENT,
4 `data` DATE NULL DEFAULT NULL,
5 `hora` TIME NULL DEFAULT NULL,
6 `idcliente` INT(11) NULL DEFAULT NULL,
7 `razaocliente` VARCHAR(150) NULL DEFAULT NULL,
8 `acrescimo` FLOAT(10,2) NULL DEFAULT NULL,
9 `desconto` FLOAT(10,2) NULL DEFAULT NULL,
10 `total` FLOAT(10,2) NULL DEFAULT NULL,
11 `status` TINYINT(3) NULL DEFAULT NULL,
12 `auto` TINYINT(1) NULL DEFAULT 0,
13 `forma_pagamento` VARCHAR(50) NULL DEFAULT NULL,
14 `observacao` VARCHAR(500) NULL DEFAULT NULL,
15 `empresa` TINYINT(3) NULL DEFAULT NULL,
16 PRIMARY KEY (`Id`)
17)
18COLLATE='latin1_swedish_ci'
19ENGINE=InnoDB
20AUTO_INCREMENT=0
21;
22
23#Procedure que cria a tabela temp e insere os registros
24begin
25set @dia = weekday(curdate());
26DROP TEMPORARY TABLE IF EXISTS pedidos_temp;
27CREATE TEMPORARY TABLE pedidos_temp(
28 select cl.id as idcliente, curdate() as data, curtime() as hora, cl.razaosocial as razaosocial,
29 '0' as acrescimo, '0' as desconto, sum(@dia * p.valorvenda) as total, '1' as status, '1' as auto,
30 (select max(id) from empresas) as empresa
31 from clientes cl
32 left join contrato co on cl.id = co.codigocliente
33 left join produtos p on co.codigoproduto = p.Id
34 where cl.status = 1 and
35 cl.contrato = 1 and
36 (case weekday(curdate())
37 when 0 then @dia:=co.segunda
38 when 1 then @dia:=co.terca
39 when 2 then @dia:=co.quarta
40 when 3 then @dia:=co.quinta
41 when 4 then @dia:=co.sexta
42 when 5 then @dia:=co.sabado
43 when 6 then @dia:=co.domingo
44 end) group by cl.Id order by 1);
45end
46
47#Query que insere os dados da tabela temp na principal
48insert into pedidos (idcliente, data, hora, razaocliente , acrescimo, desconto, total, status, auto, empresa)
49select idcliente, data, hora, razaosocial, acrescimo, desconto, total, status, auto, empresa from pedidos_temp;