Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CREATE DEFINER=`sueldos`@`%` PROCEDURE `liquidar_1_concepto`(IN id_empleado INT, IN id_liquidacion INT, IN id_concepto INT, IN id_convenio INT, IN cantidad DECIMAL(10,2), IN importe_novedad DOUBLE, IN comentario varchar(100))
- liquidar_1_concepto_label: BEGIN
- DECLARE EXIT HANDLER FOR SQLEXCEPTION
- BEGIN
- INSERT INTO output(line)
- select CONCAT('id_concepto ', id_concepto)
- union select CONCAT('Concepto ', c.descripcion)
- from Conceptos c
- where c.id_concepto = id_concepto
- union select CONCAT('sueldo ', @sueldo) as sueldo
- union select CONCAT('accion ', @accion) as accion
- union select CONCAT('valor ', @valor) as valor;
- CALL logear_error_liquidacion();
- END;
- IF NOT concat('',@accion * 1) = @accion THEN
- SET @sumConceptos = COALESCE((SELECT SUM(dl.valor)
- FROM Detalles_liquidacion dl INNER JOIN
- Rel_conceptos_conceptos rcc ON dl.id_concepto = rcc.id_concepto_rel
- WHERE rcc.id_concepto = id_concepto
- AND dl.id_liquidacion = id_liquidacion
- ),0);
- #LEAVE liquidar_1_concepto_label;
- SET @set_valor = CONCAT(' SET @valor = ', @accion, ';');
- #DEBUGEO
- #INSERT INTO output(line) select CAST(@select_valor as CHAR(4000));
- PREPARE set_valor FROM @set_valor;
- EXECUTE set_valor;
- DEALLOCATE PREPARE set_valor;
- /*
- #DEBUGEO
- INSERT INTO output(line)
- select CONCAT('id_concepto ', id_concepto)
- union select CONCAT('Concepto ', c.descripcion)
- from Conceptos c
- where c.id_concepto = id_concepto
- union select CONCAT('cantidad ', CAST(COALESCE(cantidad,0) as DECIMAL)) as cantidad
- union select CONCAT('importe ', CAST(COALESCE(importe_novedad,0) as DECIMAL)) as importe
- union select CONCAT('sueldo ', CAST(sueldo as DECIMAL)) as sueldo
- union select CONCAT('valor ', CAST(valor as DECIMAL)) as valor
- union select CONCAT('sumConceptos ', CAST(sumConceptos as DECIMAL)) as valor
- union select CONCAT('accion ', accion) as valor;
- */
- ELSE
- SET @valor = CONVERT(@accion,DECIMAL(10,2));
- END IF;
- IF @valor <> 0 THEN
- INSERT INTO Detalles_liquidacion(id_concepto,valor,cantidad,id_liquidacion, comentario)
- SELECT c.id_concepto,
- IF( c.signo='-', -1 * @valor, @valor ),
- IF( cantidad IS NULL OR cantidad = 0, 1, cantidad ),
- id_liquidacion,
- comentario
- FROM Conceptos c
- WHERE c.id_concepto = id_concepto;
- END IF;
- END
Advertisement
Add Comment
Please, Sign In to add comment