Como realizo un procedimiento almacenado en mySQL.
Publicado por Wilmer (1 intervención) el 09/03/2021 16:24:40
Como realizo un procedimiento en mySql, si el cliente tiene discapacidad o es de tercera edad.
Quiero me salga en la tabla de factura en el campo totalfactura con el descuento si el cliente es discapacitado o tercera edad , caso contrario no hay descuento.
Gracias de antemano.
Saludos..
Tengo este procedimiento pero solo realiza el proceso de la factura.

Quiero me salga en la tabla de factura en el campo totalfactura con el descuento si el cliente es discapacitado o tercera edad , caso contrario no hay descuento.
Gracias de antemano.
Saludos..
Tengo este procedimiento pero solo realiza el proceso de la factura.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `procesar_venta`(IN `cod_usuario` INT, IN `cod_cliente` INT, IN `token` VARCHAR(50))
BEGIN
DECLARE factura int;
DECLARE registros int;
DECLARE total decimal(10,2);
DECLARE nueva_existencia int;
DECLARE existencia_actual int;
DECLARE tmp_cod_producto int;
DECLARE tmp_cant_producto int;
DECLARE descuento decimal(10,2);
DECLARE a int;
SET a = 1;
CREATE TEMPORARY TABLE tbl_tmp_tokenuser(
id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
cod_prod BIGINT,
cant_prod int);
SET registros = (SELECT COUNT(*) FROM detalle_temp WHERE token_user=token);
IF registros > 0 THEN
INSERT INTO tbl_tmp_tokenuser(cod_prod,cant_prod) SELECT idmedidor,mes FROM detalle_temp WHERE token_user=token;
INSERT INTO factura(usuario,codcliente) VALUES (cod_usuario,cod_cliente);
SET factura = LAST_INSERT_ID();
INSERT INTO detallefactura(nofactura,idmedidor,concepto,anio,mes,precio) SELECT (factura) as nofactura, idmedidor,concepto,anio,mes,precio FROM detalle_temp WHERE token_user=token;
WHILE a <= registros DO
SELECT cod_prod,cant_prod INTO tmp_cod_producto,tmp_cant_producto FROM tbl_tmp_tokenuser WHERE id=a;
SET a=a+1;
END WHILE;
SET total =(SELECT SUM(precio + 0) FROM detalle_temp WHERE token_user=token);
UPDATE factura SET totalfactura=total WHERE nofactura=factura;
TRUNCATE TABLE tbl_tmp_tokenuser;
SELECT * FROM factura WHERE nofactura=factura;
DELETE FROM detalle_temp WHERE token_user=token;
ELSE
SELECT 0;
END IF;
END$$
DELIMITER ;

Valora esta pregunta


0