Advertisement
LovelessIsma

Untitled

Mar 16th, 2016
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. CREATE FUNCTION pa_facturacion_generar(idproyecto character varying, tipofacturacion smallint, idpropiedad character varying, anho smallint, mes smallint, fechavencimiento timestamp without time zone, fechatope timestamp without time zone, idmoneda character varying, tipocambio numeric, idusuario integer, OUT rpta character varying, OUT titulomsje character varying, OUT contenidomsje character varying) RETURNS record
  3.     AS $$
  4. DECLARE rPropiedad record;
  5.         rConcepto record;
  6.         rFacturacion record;
  7.         idfactura CHARACTER VARYING(15);
  8.         correlativofacturacion CHARACTER VARYING(45);
  9.         prefijoproyecto CHARACTER VARYING(30);
  10.         FACTURAS integer;
  11.         codigomoneda CHARACTER VARYING;
  12.         codigofactura CHARACTER VARYING(15);
  13.         codigofactpropietario CHARACTER VARYING(15);
  14.         codigoconceptofact CHARACTER VARYING(15);
  15.         importefacturado NUMERIC(10, 2);
  16.         countfactpropietario BIGINT;
  17.         areapropiedad NUMERIC(6, 2);
  18.         valorconcepto NUMERIC(6,2);
  19.         areadepartamento NUMERIC(6, 2);
  20.         areaestacionamiento NUMERIC(6, 2);
  21.         ratioProp NUMERIC(6, 4);
  22.         areadeposito NUMERIC(6, 2);
  23.         formula TEXT;
  24.         consumomes NUMERIC(9, 2);
  25.         tipovalorizacion CHARACTER VARYING;
  26.         cantidadPropiedades SMALLINT;
  27.         AreaProyecto numeric (10,2);
  28.         variableDuplex SMALLINT;
  29.         PorcenDscto NUMERIC;
  30.         ratio NUMERIC(6, 4);
  31.         importefijo NUMERIC(10, 2);
  32.  
  33.  
  34. BEGIN
  35.     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
  36.     rpta := '1';
  37.     titulomsje := 'El proceso actual no ha sido abierto';
  38.     contenidomsje := 'La operación no se puede realizar';
  39.     RETURN;
  40.     END IF;
  41.    
  42.     SELECT COUNT(*) INTO FACTURAS from tm_facturacion WHERE tm_idproyecto = idproyecto AND tm_per_ano = anho AND tm_per_mes = mes AND activo = 1;
  43.  
  44.         IF FACTURAS > 0 THEN
  45.            
  46.             UPDATE td_facturacionpropietario SET activo = 0 WHERE tm_idfacturacion IN (SELECT tm_idfacturacion FROM tm_facturacion WHERE tm_idproyecto = idproyecto AND tm_per_ano = anho AND tm_per_mes = mes AND activo = 1);
  47.  
  48.             UPDATE tm_facturacion SET activo = 0  WHERE tm_idproyecto = idproyecto AND tm_per_ano = anho AND tm_per_mes = mes AND activo = 1;
  49.    
  50.             UPDATE td_conceptosfacturacion SET activo = 0  WHERE tm_idproyecto = idproyecto AND tm_per_ano = anho AND tm_per_mes = mes AND activo = 1;
  51.  
  52.         END IF;
  53.  
  54.     variableDuplex := 0;
  55.    
  56.     PorcenDscto :=0;
  57.  
  58.     CREATE TEMP SEQUENCE temp_seq;
  59.    
  60.     IF idmoneda = '0' THEN
  61.       SELECT tm_idmoneda INTO codigomoneda FROM tm_moneda WHERE tm_default = 1 AND activo = 1;
  62.     ELSE
  63.       codigomoneda := idmoneda;
  64.     END IF;
  65.  
  66.     SELECT tm_codigoproyecto, ta_tipovaloracion INTO prefijoproyecto, tipovalorizacion FROM tm_proyecto WHERE tm_idproyecto = idproyecto AND activo = 1;
  67.  
  68.     --- Traer campo descuento para Dúplex
  69.    
  70.     SELECT tm_tieneporcjduplex INTO  variableDuplex FROM tm_proyecto WHERE tm_idproyecto = idproyecto AND activo = 1;
  71.    
  72.    --- Si se descuenta por dúplex, traer el % de descuento
  73.  
  74.     IF variableDuplex = 1 THEN
  75.    
  76.         SELECT tm_porcjduplex INTO  PorcenDscto FROM tm_proyecto WHERE tm_idproyecto = idproyecto AND activo = 1;    
  77.    
  78.     END IF;
  79.  
  80.     IF tipovalorizacion = '00' THEN
  81.    
  82.         SELECT COUNT(*) INTO cantidadPropiedades FROM tm_propiedad WHERE tm_idproyecto = idproyecto AND tm_idtipopropiedad = 'DPT' AND activo = 1;
  83.    
  84.     ELSE
  85.         IF tipovalorizacion = '01' THEN
  86.          select resultado into AreaProyecto from pa_area_proyecto(idproyecto,PorcenDscto);
  87.         --ELSE
  88.             --IF tipovalorizacion = '02' THEN
  89.                 --select resultado into AreaProyecto from pa_area_proyecto(idproyecto,PorcenDscto);
  90.             --ELSE
  91.                 --select resultado into AreaProyecto from pa_area_proyecto(idproyecto,PorcenDscto);
  92.             --END IF;
  93.         END IF;
  94.     END IF;
  95.  
  96.     SELECT COUNT(*) INTO countfactpropietario FROM td_facturacionpropietario;
  97.  
  98.     IF tipoFacturacion = 1 THEN
  99.  
  100.    
  101.         FOR rPropiedad IN SELECT a.tm_idpropiedad, a.tm_idpropiedadrelacionada, a.tm_area, a.tm_ratio, a.tm_importefijo FROM tm_propiedad AS a WHERE a.tm_idproyecto = idproyecto AND a.activo = 1 AND a.tm_idtipopropiedad = 'DPT' LOOP
  102.      
  103.             areadepartamento := rPropiedad.tm_area;
  104.             ratio := rPropiedad.tm_ratio;
  105.             importefijo := rPropiedad.tm_importefijo;
  106.  
  107.      
  108.             SELECT 'FN' || LPAD((COUNT(*) + 1)::TEXT, 13, '0') INTO codigofactura FROM tm_facturacion;
  109.             SELECT prefijoproyecto || anho::character varying || mes::character varying || LPAD((COUNT(*) + 1)::TEXT, 10, '0') INTO correlativofacturacion FROM tm_facturacion WHERE activo = 1;
  110.            
  111.            
  112.             --- Se Calcula el porcentaje de participación y se graba en la cabecera de la factura
  113.             IF tipovalorizacion = '00' THEN
  114.                 ratioProp := round(1/cantidadPropiedades,4);
  115.             ELSE
  116.                     IF tipovalorizacion = '01' THEN
  117.                         select porcentaje into ratioProp from pa_porcentaje_participacion(rPropiedad.tm_idpropiedad, idproyecto, AreaProyecto);
  118.                     END IF;
  119.             END IF;
  120.  
  121.             INSERT INTO tm_facturacion (tm_idfacturacion, tm_codigo, tm_idproyecto, tm_per_ano, tm_per_mes, tm_ratio, tm_idmoneda, tm_tipo_cambio,  tm_fechaemision, tm_fechavencimiento, tm_fechatope, tm_importefacturado, activo, idusuarioreg, fechareg, idusuarioact, fechaact)
  122.             VALUES (codigofactura, correlativofacturacion, idproyecto, anho, mes, ratioProp, codigomoneda, tipocambio, CURRENT_TIMESTAMP, fechavencimiento, fechatope, 0, 1, idusuario, CURRENT_TIMESTAMP, idusuario, CURRENT_TIMESTAMP);
  123.      
  124.      
  125.             INSERT INTO td_facturacionpropietario (td_idfacturacionpropietario, tm_idpropietario, tm_idfacturacion, activo, idusuarioreg, fechareg, idusuarioact, fechaact)
  126.             SELECT 'FP' || LPAD(( countfactpropietario + NEXTVAL('temp_seq'))::TEXT, 13, '0'), oldtable.tm_idtipopropietario, codigofactura, 1, idusuario, CURRENT_TIMESTAMP, idusuario, CURRENT_TIMESTAMP
  127.             FROM (SELECT * FROM vstpropietario AS propt
  128.                     INNER JOIN td_propiedadpropietario AS b ON propt.tm_idtipopropietario = b.tm_idpropietario AND b.tm_idpropiedad = rPropiedad.tm_idpropiedad
  129.             ORDER BY propt.tm_idtipopropietario) AS oldtable;
  130.            
  131.             SELECT areadepartamento + SUM(a.tm_area) INTO areapropiedad FROM tm_propiedad AS a WHERE tm_idpropiedadrelacionada = rPropiedad.tm_idpropiedad AND a.tm_idtipopropiedad <> 'DPT' AND a.activo = 1;
  132.      
  133.            
  134.             FOR rConcepto IN SELECT a.tm_idconcepto, a.tm_definicion_formula, a.tm_esformula, a.tm_escalonable, a.tm_ascensor FROM tm_concepto AS a WHERE a.tm_idproyecto = idproyecto AND a.ta_tipoconcepto = '02' AND a.activo = 1 LOOP
  135.      
  136.                 SELECT 'CF' || LPAD((COUNT(*) + 1)::TEXT, 13, '0') INTO codigoconceptofact FROM td_conceptosfacturacion;
  137.                
  138.                 IF rConcepto.tm_escalonable = 1 THEN
  139.                   SELECT td_consumoperiodo INTO consumomes FROM td_consumoescalonable WHERE tm_idconcepto = rConcepto.tm_idconcepto AND tm_idproyecto = idproyecto AND tm_idpropiedad = rPropiedad.tm_idpropiedad AND tm_per_mes = mes AND tm_per_ano = anho;
  140.      
  141.                   consumomes := COALESCE(consumomes, 0.0);
  142.      
  143.                   SELECT a.pagoconsumo INTO valorconcepto FROM pa_conceptoescalonable_calcular(rConcepto.tm_idconcepto, consumomes) AS a;
  144.                 ELSE
  145.                     IF rConcepto.tm_ascensor = 1 THEN
  146.                         SELECT a.facturarconcepto INTO valorconcepto  FROM pa_facturacion_ascensor(idproyecto, rPropiedad.tm_idpropiedad, anho, mes, idusuario ) AS a;          
  147.                     ELSE
  148.                         IF rConcepto.tm_esformula = 1 THEN
  149.                            IF tipovalorizacion = '00' THEN
  150.                               SELECT a.facturarconcepto INTO valorconcepto  FROM pa_facturacion_equitativa(rConcepto.tm_idconcepto, rPropiedad.tm_idpropiedad, idproyecto, mes, anho, cantidadPropiedades) AS a;
  151.                            ELSE
  152.                                 IF tipovalorizacion = '01' THEN
  153.                                     SELECT a.facturarconcepto INTO valorconcepto FROM pa_facturacion_calcular(rConcepto.tm_idconcepto, rPropiedad.tm_idpropiedad, idproyecto, AreaProyecto, mes, anho) AS a;
  154.                                 ELSE
  155.                                     IF tipovalorizacion = '02' THEN
  156.                                         SELECT a.facturarconcepto INTO valorconcepto FROM pa_facturacion_ratio(rConcepto.tm_idconcepto, rPropiedad.tm_idpropiedad, idproyecto, ratio, mes, anho) AS a;    
  157.                                     ELSE
  158.                                         valorconcepto := importefijo;
  159.                                     END IF;                
  160.                                 END IF;
  161.                            END IF;
  162.                         ELSE
  163.                            valorconcepto := 0.0;
  164.                         END IF;
  165.                     END IF;
  166.                 END IF;
  167.                
  168.                 if valorconcepto is null THEN
  169.                     valorconcepto := 0.0;
  170.                 end if;
  171.                 INSERT INTO td_conceptosfacturacion  (td_idconceptofacturacion, tm_idproyecto, tm_idfacturacion, tm_per_ano, tm_per_mes, tm_idpropiedad, tm_idconcepto, td_valorconcepto, ta_tiporesultado, activo, idusuarioreg, fechareg, idusuarioact, fechaact)
  172.                 VALUES (codigoconceptofact, idproyecto, codigofactura, anho, mes, rPropiedad.tm_idpropiedad, rConcepto.tm_idconcepto, valorconcepto, '01', 1, idusuario, CURRENT_TIMESTAMP, idusuario, CURRENT_TIMESTAMP);
  173.      
  174.             END LOOP;
  175.      
  176.             SELECT SUM(td_valorconcepto) INTO importefacturado FROM td_conceptosfacturacion WHERE tm_idfacturacion = codigofactura;
  177.  
  178.             UPDATE tm_facturacion SET tm_importefacturado = importefacturado  WHERE tm_idfacturacion = codigofactura;
  179.      
  180.         END LOOP;
  181.      
  182.         IF tipovalorizacion <> '00' THEN
  183.  
  184.             FOR rPropiedad IN SELECT a.tm_idpropiedad, a.tm_area FROM tm_propiedad AS a WHERE a.tm_idproyecto = idproyecto AND a.activo = 1 AND a.tm_idtipopropiedad <> 'DPT' AND (tm_idpropiedadrelacionada='' OR tm_idpropiedadrelacionada IS NULL)  LOOP
  185.          
  186.                 areadepartamento := rPropiedad.tm_area;
  187.          
  188.                 SELECT 'FN' || LPAD((COUNT(*) + 1)::TEXT, 13, '0') INTO codigofactura FROM tm_facturacion;
  189.                 SELECT prefijoproyecto || anho::character varying || mes::character varying || LPAD((COUNT(*) + 1)::TEXT, 10, '0') INTO correlativofacturacion FROM tm_facturacion WHERE activo = 1;
  190.                
  191.                 --- Se Calcula el porcentaje de participación y se graba en la cabecera de la factura
  192.            
  193.                 select porcentaje into ratioProp from pa_porcentaje_participacion(rPropiedad.tm_idpropiedad,idproyecto, AreaProyecto);
  194.  
  195.                 INSERT INTO tm_facturacion (tm_idfacturacion, tm_codigo, tm_idproyecto, tm_per_ano, tm_per_mes, tm_ratio, tm_idmoneda, tm_tipo_cambio,  tm_fechaemision, tm_fechavencimiento, tm_fechatope, tm_importefacturado, activo, idusuarioreg, fechareg, idusuarioact, fechaact)
  196.                 VALUES (codigofactura, correlativofacturacion, idproyecto, anho, mes, ratioProp, codigomoneda, tipocambio, CURRENT_TIMESTAMP, fechavencimiento, fechatope, 0, 1, idusuario, CURRENT_TIMESTAMP, idusuario, CURRENT_TIMESTAMP);
  197.          
  198.          
  199.                 INSERT INTO td_facturacionpropietario (td_idfacturacionpropietario, tm_idpropietario, tm_idfacturacion, activo, idusuarioreg, fechareg, idusuarioact, fechaact)
  200.                 SELECT 'FP' || LPAD(( countfactpropietario + NEXTVAL('temp_seq'))::TEXT, 13, '0'), oldtable.tm_idtipopropietario, codigofactura, 1, idusuario, CURRENT_TIMESTAMP, idusuario, CURRENT_TIMESTAMP
  201.                 FROM (SELECT * FROM vstpropietario AS propt
  202.                         INNER JOIN td_propiedadpropietario AS b ON propt.tm_idtipopropietario = b.tm_idpropietario AND b.tm_idpropiedad = rPropiedad.tm_idpropiedad
  203.                 ORDER BY propt.tm_idtipopropietario) AS oldtable;
  204.                
  205.                
  206.                 FOR rConcepto IN SELECT a.tm_idconcepto, a.tm_definicion_formula, a.tm_esformula, a.tm_escalonable FROM tm_concepto AS a WHERE a.tm_idproyecto = idproyecto AND a.ta_tipoconcepto = '02' AND a.activo = 1 LOOP
  207.          
  208.                     SELECT 'CF' || LPAD((COUNT(*) + 1)::TEXT, 13, '0') INTO codigoconceptofact FROM td_conceptosfacturacion;
  209.                         IF rConcepto.tm_esformula = 1 THEN
  210.                               SELECT a.facturarconcepto INTO valorconcepto FROM pa_facturacion_calcular(rConcepto.tm_idconcepto, rPropiedad.tm_idpropiedad, idproyecto, AreaProyecto, mes, anho) AS a;
  211.                         ELSE
  212.                            valorconcepto := 0.0;
  213.                         END IF;
  214.                    
  215.                     INSERT INTO td_conceptosfacturacion  (td_idconceptofacturacion, tm_idproyecto, tm_idfacturacion, tm_per_ano, tm_per_mes, tm_idpropiedad, tm_idconcepto, td_valorconcepto, ta_tiporesultado, activo, idusuarioreg, fechareg, idusuarioact, fechaact)
  216.                     VALUES (codigoconceptofact, idproyecto, codigofactura, anho, mes, rPropiedad.tm_idpropiedad, rConcepto.tm_idconcepto, valorconcepto, '01', 1, idusuario, CURRENT_TIMESTAMP, idusuario, CURRENT_TIMESTAMP);
  217.          
  218.                 END LOOP;
  219.          
  220.                 SELECT SUM(td_valorconcepto) INTO importefacturado FROM td_conceptosfacturacion WHERE tm_idfacturacion = codigofactura;
  221.  
  222.                 UPDATE tm_facturacion SET tm_importefacturado = importefacturado  WHERE tm_idfacturacion = codigofactura;
  223.        
  224.             END LOOP;
  225.         END IF;
  226.     ELSE
  227.        
  228.         FOR rPropiedad IN SELECT a.tm_idpropiedad, a.tm_idpropiedadrelacionada, a.tm_area FROM tm_propiedad AS a WHERE a.tm_idpropiedad = idpropiedad AND a.activo = 1 LOOP
  229.      
  230.             SELECT DISTINCT tm_idfacturacion into idfactura from td_conceptosfacturacion WHERE  tm_per_ano = anho AND tm_per_mes = mes AND tm_idpropiedad = rPropiedad.tm_idpropiedad AND activo = 1;
  231.  
  232.             IF idfactura IS NOT NULL THEN
  233.                
  234.                 UPDATE td_facturacionpropietario SET activo = 0 WHERE tm_idfacturacion = idfactura and activo = 1;
  235.  
  236.                 UPDATE tm_facturacion SET activo = 0  WHERE tm_idfacturacion = idfactura and activo = 1;
  237.        
  238.                 UPDATE td_conceptosfacturacion SET activo = 0  WHERE tm_idfacturacion = idfactura and activo = 1;
  239.  
  240.             END IF;
  241.  
  242.             areadepartamento := rPropiedad.tm_area;
  243.      
  244.             SELECT 'FN' || LPAD((COUNT(*) + 1)::TEXT, 13, '0') INTO codigofactura FROM tm_facturacion;
  245.             SELECT prefijoproyecto || anho::character varying || mes::character varying || LPAD((COUNT(*) + 1)::TEXT, 10, '0') INTO correlativofacturacion FROM tm_facturacion WHERE activo = 1;
  246.            
  247.             --- Se Calcula el porcentaje de participación y se graba en la cabecera de la factura
  248.             IF tipovalorizacion = '00' THEN
  249.                 ratioProp := round(1/cantidadPropiedades,4);
  250.             ELSE
  251.                 select porcentaje into ratioProp from pa_porcentaje_participacion(rPropiedad.tm_idpropiedad, idproyecto, AreaProyecto);
  252.             END IF;
  253.  
  254.             INSERT INTO tm_facturacion (tm_idfacturacion, tm_codigo, tm_idproyecto, tm_per_ano, tm_per_mes, tm_ratio, tm_idmoneda, tm_tipo_cambio,  tm_fechaemision, tm_fechavencimiento, tm_fechatope, tm_importefacturado, activo, idusuarioreg, fechareg, idusuarioact, fechaact)
  255.             VALUES (codigofactura, correlativofacturacion, idproyecto, anho, mes, ratioProp, codigomoneda, tipocambio, CURRENT_TIMESTAMP, fechavencimiento, fechatope, 0, 1, idusuario, CURRENT_TIMESTAMP, idusuario, CURRENT_TIMESTAMP);
  256.      
  257.      
  258.             INSERT INTO td_facturacionpropietario (td_idfacturacionpropietario, tm_idpropietario, tm_idfacturacion, activo, idusuarioreg, fechareg, idusuarioact, fechaact)
  259.             SELECT 'FP' || LPAD(( countfactpropietario + NEXTVAL('temp_seq'))::TEXT, 13, '0'), oldtable.tm_idtipopropietario, codigofactura, 1, idusuario, CURRENT_TIMESTAMP, idusuario, CURRENT_TIMESTAMP
  260.             FROM (SELECT * FROM vstpropietario AS propt
  261.                     INNER JOIN td_propiedadpropietario AS b ON propt.tm_idtipopropietario = b.tm_idpropietario AND b.tm_idpropiedad = rPropiedad.tm_idpropiedad
  262.             ORDER BY propt.tm_idtipopropietario) AS oldtable;
  263.            
  264.             SELECT areadepartamento + SUM(a.tm_area) INTO areapropiedad FROM tm_propiedad AS a WHERE tm_idpropiedadrelacionada = rPropiedad.tm_idpropiedad AND a.tm_idtipopropiedad <> 'DPT' AND a.activo = 1;
  265.      
  266.            
  267.             FOR rConcepto IN SELECT a.tm_idconcepto, a.tm_definicion_formula, a.tm_esformula, a.tm_escalonable, a.tm_ascensor FROM tm_concepto AS a WHERE a.tm_idproyecto = idproyecto AND a.ta_tipoconcepto = '02' AND a.activo = 1 LOOP
  268.      
  269.                 SELECT 'CF' || LPAD((COUNT(*) + 1)::TEXT, 13, '0') INTO codigoconceptofact FROM td_conceptosfacturacion;
  270.                
  271.                 IF rConcepto.tm_escalonable = 1 THEN
  272.                   SELECT td_consumoperiodo INTO consumomes FROM td_consumoescalonable WHERE tm_idconcepto = rConcepto.tm_idconcepto AND tm_idproyecto = idproyecto AND tm_idpropiedad = rPropiedad.tm_idpropiedad AND tm_per_mes = mes AND tm_per_ano = anho;
  273.      
  274.                   consumomes := COALESCE(consumomes, 0.0);
  275.      
  276.                   SELECT a.pagoconsumo INTO valorconcepto FROM pa_conceptoescalonable_calcular(rConcepto.tm_idconcepto, consumomes) AS a;
  277.                 ELSE
  278.                     IF rConcepto.tm_ascensor = 1 THEN
  279.                         SELECT a.facturarconcepto INTO valorconcepto  FROM pa_facturacion_ascensor(idproyecto, rPropiedad.tm_idpropiedad, anho, mes, idusuario) AS a;          
  280.                     ELSE
  281.                         IF rConcepto.tm_esformula = 1 THEN
  282.                            IF tipovalorizacion = '00' THEN
  283.                               SELECT a.facturarconcepto INTO valorconcepto  FROM pa_facturacion_equitativa(rConcepto.tm_idconcepto, rPropiedad.tm_idpropiedad, idproyecto, mes, anho, cantidadPropiedades) AS a;
  284.                            ELSE
  285.                                 IF tipovalorizacion = '01' THEN
  286.                                     SELECT a.facturarconcepto INTO valorconcepto FROM pa_facturacion_calcular(rConcepto.tm_idconcepto, rPropiedad.tm_idpropiedad, idproyecto, AreaProyecto, mes, anho) AS a;
  287.                                 ELSE
  288.                                     IF tipovalorizacion = '02' THEN
  289.                                         SELECT a.facturarconcepto INTO valorconcepto FROM pa_facturacion_ratio(rConcepto.tm_idconcepto, rPropiedad.tm_idpropiedad, idproyecto, ratio, mes, anho) AS a;    
  290.                                     ELSE
  291.                                         valorconcepto := importefijo;
  292.                                     END IF;                
  293.                                 END IF;
  294.                            END IF;
  295.                         ELSE
  296.                            valorconcepto := 0.0;
  297.                         END IF;
  298.                     END IF;
  299.                 END IF;
  300.                
  301.                 if valorconcepto is null THEN
  302.                     valorconcepto := 0.0;
  303.                 end if;
  304.                 INSERT INTO td_conceptosfacturacion  (td_idconceptofacturacion, tm_idproyecto, tm_idfacturacion, tm_per_ano, tm_per_mes, tm_idpropiedad, tm_idconcepto, td_valorconcepto, ta_tiporesultado, activo, idusuarioreg, fechareg, idusuarioact, fechaact)
  305.                 VALUES (codigoconceptofact, idproyecto, codigofactura, anho, mes, rPropiedad.tm_idpropiedad, rConcepto.tm_idconcepto, valorconcepto, '01', 1, idusuario, CURRENT_TIMESTAMP, idusuario, CURRENT_TIMESTAMP);
  306.      
  307.             END LOOP;
  308.      
  309.             SELECT SUM(td_valorconcepto) INTO importefacturado FROM td_conceptosfacturacion WHERE tm_idfacturacion = codigofactura;
  310.  
  311.             UPDATE tm_facturacion SET tm_importefacturado = importefacturado  WHERE tm_idfacturacion = codigofactura;
  312.      
  313.         END LOOP;
  314.     END IF;
  315.     DROP SEQUENCE temp_seq;
  316.  
  317.     rpta := '1';
  318.     titulomsje := 'Generado correctamente';
  319.     contenidomsje := 'La operaci&oacute;n se realiz&oacute; correctamente';
  320. END;
  321. $$
  322.     LANGUAGE plpgsql;
  323.  
  324.  
  325. ALTER FUNCTION public.pa_facturacion_generar(idproyecto character varying, tipofacturacion smallint, idpropiedad character varying, anho smallint, mes smallint, fechavencimiento timestamp without time zone, fechatope timestamp without time zone, idmoneda character varying, tipocambio numeric, idusuario integer, OUT rpta character varying, OUT titulomsje character varying, OUT contenidomsje character varying) OWNER TO cinadsac_inmobiliaria;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement