-- 02/05/2007 MV alter table gen_clasificacion add clase char(1) default 'O' not null; alter table gen_clasificacion add constraint GEN_CLASIFICACION_CLASE_CK check (clase in ('O','M','C','A')); -- 18/05/2007 MV -- Cambiar vista para imprimir reporte con descripcion para ver numero de placa Create or Replace View VenFactNot as select f.cia, f.sucursal, f.documento, f.tipo, f.caja, f.cajero, f.dia, f.linea, f.fecha, f.cliente, f.persona,f.descripcion, f.moneda, f.tipocambio, f.cambiobase, f.nombre, f.estado, f.consignatario, d.bodega, d.articulo, d.agenteventa,d.porcdescuento,d.cantidad, d.costo, d.precio, d.impuesto, d.impconsumo, d.totallinea, 'F' origen From VenFactura f, VenDetFactura d Where f.Cia = d.Cia And f.Sucursal = d.Sucursal And f.Documento= d.Documento Union All select n.cia, n.sucursal, n.documento, n.tipo, n.caja, n.cajero, n.dia,n.linea, n.fecha, n.cliente, Null persona,n.descripcion, n.moneda, n.tipocambio, n.cambiobase, n.nombre, n.estado, Null Consignatario, dn.bodega, dn.articulo, dn.agenteventa, 0, 0, 0, 0, dn.impuesto, dn.impconsumo, dn.totallinea, 'ND' origen From VenNota n, VenDetNota dn Where n.Cia = dn.Cia And n.Sucursal = dn.Sucursal And n.Documento= dn.Documento And n.efecto = 'D'; -- Manejo de cierre de combustible en Gasolineras. drop table venciesurtidor; drop table vensurtidor; // Como ya te habia dicho me parece mas claro crear los surtidores... create table vensurtidor ( cia char(3) not null, surtidor number(2) not null, descripcion varchar2(30), articulo varchar2(25) not null, lectura NUMBER(14,2) not null constraint VENSURTIDOR_LECTURA_CK check (LECTURA >= 0), caja CHAR(3) not null, constraint vensurtidor_pk primary key(cia, surtidor) ); --La tabla venciearticulo seria mas bien venciesurtidor asi: drop table venciesurtidor; create table VenCieSurtidor ( cia CHAR(3) not null, caja CHAR(3) not null, dia DATE not null, surtidor NUMBER(2) not null, articulo VARCHAR2(25) not null, lectura NUMBER(14,2) not null constraint VENCIESURTIDOR_LECTURA_CK check (LECTURA >= 0), lecturaant NUMBER(14,2) not null constraint VENCIESURTIDOR_LECTURaANT_CK check (LECTURAANT >= 0), constraint VENCIESURTIDOR_PK primary key (cia, caja, dia, surtidor) ) initrans 1 storage ( initial 10K next 10K ); alter table VenCieSurtidor add constraint Vencierre_cieSurtidor_FK foreign key (cia, caja, dia) references VenCierre (cia, caja, dia); alter table VenCieSurtidor add constraint Vencierre_Surtidor_FK foreign key (cia, surtidor) references VenSurtidor (cia, surtidor); alter table VenSurtidor add constraint Caja_VenSurtidor_FK foreign key (cia, caja) references Caja (cia, caja); CREATE PUBLIC SYNONYM VenCieSurtidor FOR &OWNER..VenCieSurtidor; GRANT ALL ON VenCieSurtidor TO &ROLE; CREATE PUBLIC SYNONYM VenSurtidor FOR &OWNER..VenSurtidor; GRANT ALL ON VenSurtidor TO &ROLE; -- Preferencia para Línea de artículos COMBUSTIBLE 20/05/2007 insert into genprefscla(modulo, objeto, clave, descripcion) values('POS', 'INICIO', 'LINEACOMBUS', 'Linea de Articulos para identificar Combustibles.'); insert into genprefsval(cia, modulo, objeto, clave, instancia, valor) values('001', 'POS', 'INICIO', 'LINEACOMBUS', 'INICIO','02'); insert into genprefscla(modulo, objeto, clave, descripcion) values('POS', 'INICIO', 'FACCONTADO', 'Tipo de factura contado para liquidacion surtidores.'); insert into genprefsval(cia, modulo, objeto, clave, instancia, valor) values('001', 'POS', 'INICIO', 'FACCONTADO', 'INICIO','FCO'); commit; --En cuanto a la rutina generafacturaliq habria que hacerla por el resart no por el detalle. --Es importante considerar que -- Actualizar surtidores CREATE OR REPLACE TRIGGER VENCIESURTIDOR AFTER INSERT ON VencieSurtidor FOR EACH ROW BEGIN update Vensurtidor set lectura = :New.lectura where cia = :New.cia and surtidor = :New.surtidor and articulo = :new.articulo; END; / -- 06/06/2007 para estilos drop table gentipobitacora; create table gentipobitacora ( cod_cia char(3) not null, tipo varchar2(5) not null, descripcion varchar2(30) not null, constraint gentipobitacora_pk primary key(cod_cia, tipo) ); insert into gentipobitacora values('001','001','GENERAL'); alter table gen_cliente_bitacora add tipo varchar(5); update gen_cliente_bitacora set tipo='001'; commit; alter table gen_cliente_bitacora modify tipo varchar(5) not null; CREATE PUBLIC SYNONYM gentipobitacora FOR &OWNER..Gentipobitacora; GRANT ALL ON GENTIPOBITACORA TO &ROLE; alter table gen_cliente_bitacora add constraint gentipobitacora_clientebita_FK foreign key (cod_cia, tipo) references gentipobitacora (cod_cia,tipo); alter table gen_cliente_bitacora add usuario varchar2(30); update gen_cliente_bitacora set usuario='MAYOR'; commit; alter table gen_cliente_bitacora modify usuario varchar2(30) not null; declare cursor xx is select usuario,cod_cliente,max(fecha) fecha from gen_cliente_clasif where cod_cia ='001' group by usuario,cod_cliente; begin for a in xx loop update gen_cliente_bitacora set usuario=a.usuario where cod_cia ='001' and cod_cliente=a.cod_cliente and usuario='MAYOR'; end loop; end; /