EL SP, me parece buenisimo:
Código SQL
[-]
SET TERM ^ ;
CREATE PROCEDURE "UPDATE" (
X_TIPO_TARIFA VARCHAR(30),
X_TIPO_FACTURA VARCHAR(10),
X_MES INTEGER,
X_YEAR INTEGER)
AS
begin
update facturacion
set base_imponible = cloaca
where tipo_tarifa=:x_tipo_tarifa and tipo_factura=:x_tipo_factura and extract(month from fecha)=:x_mes and extract(year from fecha)=:x_year;
update facturacion
set excento = consumo_agua
where tipo_tarifa=:x_tipo_tarifa and tipo_factura=:x_tipo_factura and extract(month from fecha)=:x_mes and extract(year from fecha)=:x_year;
suspend;
end^
SET TERM ; ^
GRANT SELECT,UPDATE ON FACTURACION TO PROCEDURE "UPDATE";
GRANT EXECUTE ON PROCEDURE "UPDATE" TO SYSDBA;
========================
Código:
/******************************************************************************/
/**** Generated by IBExpert 26/04/2010 07:19:48 p.m. ****/
/******************************************************************************/
SET SQL DIALECT 3;
SET NAMES NONE;
/******************************************************************************/
/**** Tables ****/
/******************************************************************************/
CREATE TABLE FACTURACION (
ID_SUSCRIPTOR VARCHAR(30),
STATUS_FACTURA VARCHAR(15),
RUTA INTEGER,
NUMERO_FACTURA INTEGER,
NUMERO_FACTURA_A VARCHAR(30),
NUMERO_FACTURA_IMPRESA INTEGER,
CODIGO_SUSCRIPTOR INTEGER,
CODIGO_SUSCRIPTOR_A VARCHAR(30),
LECTURA_ANTERIOR INTEGER,
LECTURA_ACTUAL INTEGER,
CONSUMO NUMERIC(15,2),
FECHA_INICIO DATE,
FECHA_INICIO_A VARCHAR(20),
FECHA_FIN DATE,
FECHA_FIN_A VARCHAR(20),
FECHA_FACTURACION DATE,
FECHA_FACTURACION_A VARCHAR(20),
FECHA_VENCIMIENTO DATE,
FECHA_VENCIMIENTO_A VARCHAR(20),
MONTO_TARIFA NUMERIC(15,2),
MONTO_TARIFA_EXCESO NUMERIC(15,2),
ALICUOTA_IVA NUMERIC(15,2),
CARGO_FIJO NUMERIC(15,2),
CARGO_VARIABLE NUMERIC(15,2),
CARGO_EXCESO_CONSUMO NUMERIC(15,2),
CONSUMO_AGUA NUMERIC(15,2),
CLOACA NUMERIC(15,2),
PORCENTAJE_CLOACA NUMERIC(15,2),
MONTO_CONCEPTO NUMERIC(15,2),
MONTO_FACTURADO NUMERIC(15,2),
MONTO_IVA NUMERIC(15,2),
DEUDA_ANTERIOR NUMERIC(15,2),
TIPO_TARIFA VARCHAR(30),
ESTADO VARCHAR(20),
AVISO_CORTE VARCHAR(2),
FECHA_PAGO_FACTURA DATE,
FECHA_PAGO_FACTURA_A VARCHAR(20),
FORMA_PAGO VARCHAR(20),
PORCENTAJE_DESCUENTO NUMERIC(15,2),
MONTO_DESCUENTO NUMERIC(15,2),
DESCUENTO_AUTORIZADO VARCHAR(30),
NUMERO_CHEQUE VARCHAR(30),
CUENTA_CHEQUE VARCHAR(30),
NOMBRE_BANCO VARCHAR(30),
USUARIO VARCHAR(10),
FECHA DATE,
FECHA_A VARCHAR(10),
PRECIO_UNITARIO NUMERIC(15,2),
SUB_TOTAL NUMERIC(15,2),
CONTADOR INTEGER,
LITERAL_EXCENTO VARCHAR(10),
MONTO_PAGADO NUMERIC(15,2),
VUELTO NUMERIC(15,2),
NUMERO_TARJETA VARCHAR(30),
TIPO_TARJETA_CREDITO VARCHAR(30),
NOMBRE_BANCO_TARJETA VARCHAR(30),
TIPO_FACTURA VARCHAR(10),
RECIBO VARCHAR(2),
PRECIO NUMERIC(15,2),
BASE_IMPONIBLE NUMERIC(15,2),
FACTURAR_LOTE VARCHAR(10),
CODIGO_STATE_ACCOUNT VARCHAR(10),
EXCENTO NUMERIC(15,2),
STATUS_TARIFA VARCHAR(20),
CAMPO1 VARCHAR(50),
CAMPO2 VARCHAR(100),
STATUS_2 VARCHAR(30),
STATUS_3 VARCHAR(30),
STATUS VARCHAR(30),
CODIGO_LECTURA INTEGER,
PENDIENTES INTEGER
);
/******************************************************************************/
/**** Indices ****/
/******************************************************************************/
CREATE INDEX FACTURACION_CODIGO_CLIENTE ON FACTURACION (CODIGO_SUSCRIPTOR);
CREATE INDEX FACTURACION_IDX1 ON FACTURACION (DEUDA_ANTERIOR);
/* Fields descriptions */
DESCRIBE FIELD STATUS_FACTURA TABLE FACTURACION
'Si indica "Si" es que esta facturado';
DESCRIBE FIELD FECHA_INICIO TABLE FACTURACION
' fecha inicio de periodo a facturar';
DESCRIBE FIELD FECHA_FIN TABLE FACTURACION
' fecha fin de periodo a facturar';
DESCRIBE FIELD CARGO_FIJO TABLE FACTURACION
' cargo fijo para la tarifa comercial';
DESCRIBE FIELD CARGO_VARIABLE TABLE FACTURACION
'cargo variable tarifa comercial';
DESCRIBE FIELD CARGO_EXCESO_CONSUMO TABLE FACTURACION
' cargo consumo tarifa comercial';
DESCRIBE FIELD CONSUMO_AGUA TABLE FACTURACION
' consumo mas tarifa mensual';
DESCRIBE FIELD MONTO_CONCEPTO TABLE FACTURACION
' monto por concepto debito o credito de la facturacion mensual';
DESCRIBE FIELD MONTO_FACTURADO TABLE FACTURACION
' monto facturado es la suma de agua,cloaca, exceso, cargo fijo, debido o credito';
DESCRIBE FIELD ESTADO TABLE FACTURACION
'status operacional= 1 activo, 2 cortado, 3 suspendido';
DESCRIBE FIELD AVISO_CORTE TABLE FACTURACION
'Verdadero si y falso no';
/******************************************************************************/
/**** Privileges ****/
/******************************************************************************/