sahchas

LIQUIDACION_liquidar_1_concepto

Mar 28th, 2017
125
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MySQL 2.34 KB | None | 0 0
  1. 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))
  2. liquidar_1_concepto_label: BEGIN
  3.  
  4. DECLARE EXIT HANDLER FOR SQLEXCEPTION
  5. BEGIN
  6. INSERT INTO output(line)
  7. select CONCAT('id_concepto ', id_concepto)
  8. union select CONCAT('Concepto ', c.descripcion)
  9. from Conceptos c
  10. where c.id_concepto = id_concepto
  11. union select CONCAT('sueldo ', @sueldo) as sueldo
  12. union select CONCAT('accion ', @accion) as accion
  13. union select CONCAT('valor ', @valor) as valor;
  14.  
  15. CALL logear_error_liquidacion();
  16.  
  17. END;
  18.  
  19.  
  20. IF NOT concat('',@accion * 1) = @accion THEN
  21.  
  22.     SET @sumConceptos = COALESCE((SELECT SUM(dl.valor)
  23.                           FROM Detalles_liquidacion dl                                       INNER JOIN
  24.                                Rel_conceptos_conceptos rcc ON dl.id_concepto = rcc.id_concepto_rel
  25.                          WHERE rcc.id_concepto = id_concepto
  26.                            AND dl.id_liquidacion = id_liquidacion
  27.                        ),0);
  28.  
  29.     #LEAVE liquidar_1_concepto_label;
  30.  
  31.     SET @set_valor = CONCAT(' SET @valor = ', @accion, ';');
  32.  
  33.     #DEBUGEO
  34.     #INSERT INTO output(line) select CAST(@select_valor as CHAR(4000));
  35.  
  36.     PREPARE set_valor FROM @set_valor;
  37.     EXECUTE set_valor;
  38.     DEALLOCATE PREPARE set_valor;
  39.  
  40.     /*
  41.     #DEBUGEO
  42.     INSERT INTO output(line)
  43.     select CONCAT('id_concepto ', id_concepto)
  44.     union select CONCAT('Concepto ', c.descripcion)
  45.     from Conceptos c
  46.     where c.id_concepto = id_concepto
  47.     union select CONCAT('cantidad ', CAST(COALESCE(cantidad,0) as DECIMAL)) as cantidad
  48.     union select CONCAT('importe ', CAST(COALESCE(importe_novedad,0) as DECIMAL)) as importe
  49.     union select CONCAT('sueldo ', CAST(sueldo as DECIMAL)) as sueldo
  50.     union select CONCAT('valor ', CAST(valor as DECIMAL)) as valor
  51.     union select CONCAT('sumConceptos ', CAST(sumConceptos as DECIMAL)) as valor
  52.     union select CONCAT('accion ', accion) as valor;
  53.     */
  54. ELSE
  55.  
  56.     SET @valor = CONVERT(@accion,DECIMAL(10,2));
  57.  
  58. END IF;
  59.  
  60. IF @valor <> 0 THEN
  61.     INSERT INTO Detalles_liquidacion(id_concepto,valor,cantidad,id_liquidacion, comentario)
  62.     SELECT c.id_concepto,
  63.            IF( c.signo='-', -1 * @valor, @valor ),
  64.            IF( cantidad IS NULL OR cantidad = 0, 1, cantidad ),
  65.            id_liquidacion,
  66.            comentario
  67.       FROM Conceptos c
  68.      WHERE c.id_concepto = id_concepto;
  69. END IF;
  70.  
  71.  
  72. END
Advertisement
Add Comment
Please, Sign In to add comment