Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DROP FUNCTION pa_facturacion_eliminacionprevia( idproyecto character varying, anho smallint, mes smallint, idusuario integer, OUT rpta character varying, OUT titulomsje character varying, OUT contenidomsje character varying);
- CREATE FUNCTION pa_facturacion_eliminacionprevia(
- tipofacturacion smallint,
- idproyecto character varying,
- idpropiedad character varying,
- anho smallint,
- mes smallint,
- idusuario integer
- OUT rpta character varying,
- OUT titulomsje character varying,
- OUT contenidomsje character varying)
- RETURNS record
- LANGUAGE plpgsql
- AS $$
- DECLARE FACTURAS integer;
- BEGIN
- IF (SELECT COUNT(*) FROM tm_proceso WHERE tm_idestadoproceso = 1 AND tm_idproyecto = idproyecto AND tm_per_ano = anho AND tm_per_mes = mes AND activo = 1) = 0 THEN
- rpta := '0';
- titulomsje := 'El proceso actual no ha sido abierto';
- contenidomsje := 'La operación no se puede realizar';
- RETURN;
- END IF;
- IF tipoFacturacion = 1 THEN
- SELECT COUNT(*) INTO FACTURAS from tm_facturacion WHERE tm_idproyecto = idproyecto AND tm_per_ano = anho AND tm_per_mes = mes AND activo = 1;
- IF FACTURAS > 0 THEN
- UPDATE td_facturacionpropietario fprop SET activo = 0 FROM tm_facturacion fac
- WHERE fac.tm_idproyecto = idproyecto AND fac.tm_per_ano = anho AND fac.tm_per_mes = mes AND fac.tm_idfacturacion = fprop.tm_idfacturacion AND fprop.activo = 1;
- UPDATE tm_facturacion SET activo = 0 WHERE tm_idproyecto = idproyecto AND tm_per_ano = anho AND tm_per_mes = mes AND activo = 1;
- UPDATE td_conceptosfacturacion SET activo = 0 WHERE tm_idproyecto = idproyecto AND tm_per_ano = anho AND tm_per_mes = mes AND activo = 1;
- END IF;
- ELSE
- SELECT COUNT(*) INTO FACTURAS FROM td_conceptosfacturacion where tm_idpropiedad = idpropiedad and tm_per_ano = anho AND tm_per_mes = mes AND activo = 1
- IF FACTURAS > 0 THEN
- UPDATE td_facturacionpropietario SET activo = 0
- WHERE tm_idfacturacion in (select DISTINCT(tm_idfacturacion) from td_conceptosfacturacion where tm_idpropiedad = idpropiedad and tm_per_ano = anho AND tm_per_mes = mes AND activo = 1 );
- UPDATE tm_facturacion SET activo = 0
- WHERE tm_idfacturacion in (select DISTINCT(tm_idfacturacion) from td_conceptosfacturacion where tm_idpropiedad = idpropiedad and tm_per_ano = anho AND tm_per_mes = mes AND activo = 1 );
- UPDATE td_conceptosfacturacion SET activo = 0 WHERE tm_idpropiedad = idpropiedad and tm_per_ano = anho AND tm_per_mes = mes AND activo = 1
- END IF
- END IF;
- rpta := '1';
- titulomsje := '';
- contenidomsje := '';
- RETURN;
- END;
- $$;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement