/*Cambios que se harían a la forma: * Cursor c_movtos se podrían nvl a cod_proveedor * No es necesario calcular min o max del proveedor * Variables debpago, crepago y vsaldo pasarian a definirse de acuerdo cxp_det_pago_nota.mon_pago * Quitar where de cxp_movimientotmp*/ begin for serv in (select distinct servidor from repservidores) loop Replicacion.FijarEstado(serv.Servidor, Replicacion.ChequearServidor(serv.servidor)); end loop; end; / --------------------------------------------------------------------------------------------- RepInvCat REPINVCAT Instruccion para Montar Replicación: * Crear Objetos Replicacion para server (Tablas:RepSecuencia, RepComDef, RepErrores, RepTablas, RepPlantilla, RepServidor, RepInstancias, Vistas: RepServidores, RepInstanciasv, Montar preferencia server, paquetes: xrp, replicacion, repsync, genarcreplic). * Generar script para generación de vistas para clientes - Eliminar tablas y meter vistas en bodega * Crear objectos replicacion para cliente(Tablas: repsecuencia, repcomdef, reperrores, repinstancias, vistas: repservidores, repinstanciasv). * Con el generador de rutinas de replicacion crear vistas con script para el cliente. * Crear parar el cliente cliente los paquetes: xrp, replicacion, repsync, genarcreplic. * Crear datalinks * Llenar datos en server: repsecuencia (REP, ERR), repservidor, reptablas, repplantilla, repinstancias. * Llenar datos en clientes: repsecuencia(REP, ERR), repinstancias * Con el generador de rutinas de replicacion crear alters, paquetes y los triggers para cada uno de los servidores, al momento de montar los objetos se hará en ese orden. * Los alters, paquetes y vistas para el cliente son unicos para todos, cada servidor tendrá sus propias rutinas de triggers. * Montar los alters, paquetes y triggers para todos en ese orden. Validaciones para generar: * Va a haber un unico servidor que es master ok * En el servidor master debe estar la lista completa de tablas ok con la definicion de columnas y es la unica que vale. * En un servidor esclavo debe validarse que no exista una tabla ok que no este en el master. * Solo en el master se puede hacer la generación de trigger ok y paquetes y lo hara para todos los servidores. * Meter el catálogo de servidores que sería solo para el maestro. ok * Hacer vista para los esclavos para reptabla y repplantilla, repservidor del servidor.ok drop trigger ReplBefVENDEVOLUCION ; drop trigger ReplAftVENDEVOLUCION ; drop package repventas; delete from repinstancias; delete from repplantilla; delete from reptablas; alter table inv_acum_periodo drop column local1; alter table inv_acum_periodo drop column replica1; alter table inv_artic_locbod drop column local1; alter table inv_artic_locbod drop column replica1; alter table inv_articulo drop column local1; alter table inv_articulo drop column replica1; alter table inv_articulobod drop column local1; alter table inv_articulobod drop column replica1; alter table inv_consec_movtos drop column local1; alter table inv_consec_movtos drop column replica1; alter table inv_detmovimiento drop column local1; alter table inv_detmovimiento drop column replica1; alter table inv_encabmovimiento drop column local1; alter table inv_encabmovimiento drop column replica1; alter table inv_lote drop column local1; alter table inv_lote drop column replica1; alter table inv_lote_artic_bodega drop column local1; alter table inv_lote_artic_bodega drop column replica1; drop trigger ReplBefinv_acum_periodo ; drop trigger ReplAftinv_acum_periodo ; drop trigger ReplBefinv_artic_locbod ; drop trigger ReplAftinv_artic_locbod ; drop trigger ReplBefinv_articulo ; drop trigger ReplAftinv_articulo ; drop trigger ReplBefinv_articulobod ; drop trigger ReplAftinv_articulobod ; drop trigger ReplBefinv_consec_movtos ; drop trigger ReplAftinv_consec_movtos ; drop trigger ReplBefinv_detmovimiento ; drop trigger ReplAftinv_detmovimiento ; drop trigger ReplBefinv_encabmovimiento ; drop trigger ReplAftinv_encabmovimiento ; drop trigger ReplBefinv_lote ; drop trigger ReplAftinv_lote ; drop trigger ReplBefinv_lote_artic_bodega ; drop trigger ReplAftinv_lote_artic_bodega ; drop package repINVENTARIO; --Generar un jar jar cvfm lab1.jar miManifiesto.mf laboratorio1\* --Videos Manual http://www.jdeveloperla.com/joomla/index.php?option=com_content&task=view&id=119&Itemid=104 create table prreplic(a varchar2(3) not null, b number(5), local1 varchar2(1) default 'S', replica1 varchar2(1) default 'N', constraint prreplicapk primary key (a)); create table prreplic2(a varchar2(3) not null, b number(5), local1 varchar2(1) default 'S', replica1 varchar2(1) default 'N', constraint prreplica2pk primary key (a)); create table prreplic3(a varchar2(3) not null, b number(5), local1 varchar2(1) default 'S', replica1 varchar2(1) default 'N', constraint prreplica3pk primary key (a)); CREATE OR REPLACE TRIGGER ReplBefPrReplic BEFORE INSERT OR UPDATE ON PrReplic FOR EACH ROW BEGIN :New.Replica1 := :New.Control1; :New.Control1 := 'S'; End; / CREATE OR REPLACE TRIGGER ReplAftPrReplic AFTER INSERT OR UPDATE OR DELETE ON PrReplic FOR EACH ROW BEGIN If Inserting and :New.Replica1='S' Then RepPrReplic.InsPrReplic2(:new.a, :new.b); RepPrReplic.InsPrReplic3(:new.a, :new.b); elsif Updating and :New.Replica1='S' then RepPrReplic.ActPrReplic2(:Old.A, :new.a, :new.b); RepPrReplic.ActPrReplic3(:Old.A, :new.a, :new.b); elsif Deleting and :Old.Replica1='S' then RepPrReplic.DelPrReplic2(:Old.A); RepPrReplic.DelPrReplic3(:Old.A); end if; End; / Create or Replace Package RepPrReplic is --##Tabla PrReplic Procedure InsPrReplic(pA in Varchar2, pB in Number); Procedure ActPrReplic(pOldA in Varchar2, pA in Varchar2, pB in Number); Procedure DelPrReplic(pA in Varchar2); End RepPrReplic; / Create or Replace Package Body RepPrReplic is --##Tabla PrReplic Procedure InsPrReplic(pA in Varchar2, pB in Number) Is Begin Insert Into PrReplic(A, B, Control1) Values(pA, pB, 'N'); End InsPrReplic; Procedure ActPrReplic(pOldA in Varchar2, pA in Varchar2, pB in Number) Is Begin Update PrReplic Set A = pA, B = pB, Control1 = 'N' Where A = pOldA; If Sql%NotFound Then InsPrReplic(pA, pB); End If; End ActPrReplic; Procedure DelPrReplic(pA in Varchar2) Is Begin Update PrReplic Set Control1 = 'N' Where A = pA; If Sql%Found Then Delete From PrReplic Where A = pA; End If; End DelPrReplic; End RepPrReplic; / select * from prreplic; select * from prreplic2; select * from prreplic3; ALTER TABLE XX ADD(LOCAL1 VARCHAR2(1) DEFAULT 'S', REPLICA1 VARCHAR2(1) DEFAULT 'N'); -----------------------*******************************************************------------------------------------- -----------------------********************PENDIENTES*************************------------------------------------- -----------------------*******************************************************------------------------------------- -------------------------------------------------------------------------------- Alta Prioridad: 1- Error de preparación de pagos. Débitos superan a los créditos. Reportes Gi: 1) *Resumen del total vtas, vs total de compras y la utilidad por año no! 2) *Compras mensuales por proveedor Enero a Diciembra no! 3) *Reporte por mes de lo comprado a proveedores sustitutos no! 4) *Productos mas vendidos por mes no! 8) *Proyección de consumos y compras por producto no! ---------------------------------------------------------------------------------------------------------------- Baja Prioridad: 1- ¿Suena familiar forma prepenco.fmb o tabla gen_camb_costo? 2- Chequear el registro del reclamo en la parte de inventarios contra la aplicación de facturas. ¿Pq no utiliza invact.detalle? 3- Anothers keys en compras: COM_DET_FACTURA BD: COM_DET_FACTURA_UQ (COD_CIA, SUCURSAL, NUM_FACTURA, COD_PROVEEDOR, COD_ARTICULO, FEC_VENCE) PD: COM_DET_FACTURA_UQ (COD_CIA, SUCURSAL, NUM_FACTURA, COD_PROVEEDOR, COD_ARTICULO, FEC_VENCE) Debería ser: COM_DET_FACTURA_UQ (COD_CIA, SUCURSAL, NUM_FACTURA, COD_PROVEEDOR, COD_ARTICULO_FINAL, FEC_VENCE) COM_DET_NACIONALIZACION BD: COM_DET_NACIONALIZACION_UQ (COD_CIA, SUCURSAL, NUM_NACIONALIZACION, COD_ARTICULO, FEC_VENCE) PD: COM_DET_NACIONALIZACION_UQ (COD_CIA, SUCURSAL, NUM_NACIONALIZACION, COD_ARTICULO, FEC_VENCE) Debería ser: COM_DET_NACIONALIZACION_UQ (COD_CIA, SUCURSAL, NUM_NACIONALIZACION, COD_ARTICULO_FINAL, FEC_VENCE) COM_DET_RECIBO BD: COM_DET_RECIBO_NACIO_UQ (COD_CIA, SUCURSAL, DOCUMENTO, COD_BODEGA, COD_ARTICULO, COD_ARTICULO_FINAL) PD: COM_DET_RECIBO_NACIO_UQ (COD_CIA, SUCURSAL, DOCUMENTO, COD_BODEGA, COD_ARTICULO, COD_ARTICULO_FINAL) Está bien? No debería meterse fec_vence? Ventas 1. Recordar correccion otros cargos en venxcaja.rdf 3. No existe forma llobet/rpvenmon (facturas x cliente lista de articulos) 4. Reportes, Facturas, Vendedor, linea, artículo. Reporte Clientes x Vendedor Detallado: no existe llobet\venxagdt Planillas 1. detplaco.rdf no tiene nada 2. librosaltmp.rdf 08052002 0115 esto aun se utiliza porque existe librosal? 3. retimpv.rdf 08052002 0121 no compila el modelo: las tablas pladetdecimp b , plaencdecimp no existen. Compras "Articulos Finales" corregir comrredi articulo final En la nacionalizacion y el recibo se debe traer la descripcion del articulo final, sino existe la de articulos. En el recibo se deben juntar ambos articulos Varios: Ordenamiento de estados de cuenta en reportes de cobros Recibo resumido en traslados de inventario. Pasar cuenta a compras. Variable ccosto recibo. Insert Null en aplicar pago. cxp_enc_pago_nota.monpago tamaño desccosto invmoves Planillas Candy: Provisiones, hay algunas provisiones que no deberian poder cambiarse por empleado, ejemplo: Aporte Patronal Asociacion. Correccion en reportes de antiguedad y puesto en planilla (antiguedad y antigagen) Agregar la nueva contabilización a Cxp. Eliminar reportes de estadisticas. Documentos a pagar con varias obligaciones -----------------------*******************************************************------------------------------------- -----------------------********************FIN PENDIENTES*************************------------------------------------- -----------------------*******************************************************------------------------------------- ------------------------------------------------------------------------------------ Cambios Sge Mexico traer la cantidad bonificada en oc y factura. corregir el query del reporte de artículos sin movimiento, el reporte debe ser de los articulos que tienen existencia y costo. -----------------------*******************************************************------------------------------------- -----------------------**************CAMBIO TABLAS Y VISTAS PRECIOS***********------------------------------------- -----------------------*******************************************************------------------------------------- FAC_PROMOCION = PrePromocion FAC_DETPROMOCION = PreDetPromocion GEN_ENC_PRECIO = PreEncCambio GEN_CAMB_PRECIO = PreDetCambio gen_incon_campre = PreInconsCambio fac_precio_pro = PrePrecioPro fac_desc_cliente = PreDescClase CAMB_PRECIO_ACT = PreCambioAct CAMB_PRECIO_PEN = PreCambioPen Cambios nombre tablas y vistas precios: Librerias Platino Precio VenFac Paquetes descuentos (dsc) Formas FacPromo FcactPro FrFacPro Precampp PreCauCam PreCliPe PrecMope PreCorfe PreGenCa PreGencp PreLiPre PreLiprh PreMovif PreMovPe PreqCara PrerMoPe RVenProm Pretracp cobros\cxccacli compra\comcafac compra\comcamar ventas\desclin ventas\desclinlanco ventas\venprexi Reportes FcDescu PreCampr PreMovCp Prerlipr Prermope Prerprnt RFacProm Rpvenxa RVenProm compra\comrfadp compra\comrnacc compra\comrnacf compra\comrrena ------------------------------------------------------------------------------------ Recibos ver gestión de lotes al hacer entradas y salidas. 18-02-2008 * Se activo el campo lote_interno ------------------------------------------------------------------------------------ Cambios méxico 28-02-2008 Resumiendo: 1) Identificar adecuadamente cuando se va a usar prov.titular. estgen.fmb estpivote.sql esrpgen.fmb repvtas.fmb estvtas.fmb fcprompr.rdf fcrpromp.fmb estadist.mmb * En la forma se utiliza la vista venvresventa que no se encuentra. * En consecutivo de facturas (rpfacxco): El query del reporte croma porque no encuentra venfactnot.descripcion. 2) Agregar clase cliente como pivote en todo lado que hayan pivotes en estadisticas. 3) Hacer un reporte de ranking en estadisticas con los n mejores pivotes Por cantidad, monto, utilidad con porcentajes. -------------------------------------------------------------------------------------- 06-03-2008 Propuesta de Cambio Corrección costos en el traslado en el recibo de mercadería. 1- En compras.pll: la rutina invact.detalle debe ser una función y retornar el costo de compra retornado por fac_inv.ins_detfactent y fac_inv.ins_detfactsal. 2- En comfactu.fmb: Recibir el costo retornado por invact.detalle en la rutina aplicadetalle. 3- En comnacio.fmb: Recibir el costo retornado por invact.detalle en la rutina aplicadetalle. 4- En comrenac.fmb: * Recibir el costo de la salida en aplicadetalle. * El costo a utilizar en la entrada es el de la salida si es un traslado o el cos_compra del origen del recibo. * Recibir el costo de la entrada en aplicadetalle. Estimación: 4 horas ------------------------------------------------------------------------------------------ -----------***************Guia Distribuciones*************------------------------------ ------------------------------------------------------------------------------------------ --En el pre-form (**talvez no haga falta llamarla**) --Inicializa la sesion de distribuciones Dist.Iniciar(:encabezado.cod_cia, :parameter.Sistema); --Se debe invocar cuando se desea ver la distribucion en pantalla --Muestra la distribucion Dist.MostrarDist(:com_enc_factura.cod_cia, :parameter.sistema, :coord.distribucion); --Se debe invocar cuando se desea anula una distribucion --Anula la distribucion Dist.AnularDist(:com_enc_factura.cod_cia, :parameter.sistema, :coord.distribucion); --Correr en post query del documento (**talvez no haga falta llamarla**) --Fija la distribucion actual --y consulta datos de la distribucion Dist.Fijar(:com_enc_factura.distribucion); --Correr en post query del documento --Setea atributo visual a la distribucion Dist.MarcarDist('com_enc_factura.distribucion'); --En condetdistribucion.wnbi --Indica si se puede generar la distribucion Dist.Generable(:Coord.Bloque,vDist) --En condetdistribucion.wnbi --Genera la distribucion vDist:=Dist.GenerarDist('Documento #'||:coord.ref, :coord.fecha, 'FAC'||:coord.origen, :com_enc_factura.cod_movto, :coord.moneda, :coord.tipcambio, :coord.tipcambiobase); --En condetdistribucion.wnbi o una rutina que sea llamada desde --ella --Setea las variables de la plantilla Contexto.FijarVariable(Var.NomVar, nvl(:Coord.cCosto,'0')); --En condetdistribucion.wnbi --Carga el detalle si existe una plantilla para la distribucion Dist.Cargarplantilla(:com_enc_factura.nom_asiento, null, null, null); --En condetdistribucion.wnbi --Indica si se puede tocar la distribucion Dist.Modificar(get_block_property('com_enc_factura',update_allowed)='TRUE'); --------------Correciones multimoneda------------- Cambiar discon.datos meter crebas y debbas * Modificar dist.fijar para cargas crebas y debbas en distcon.datos * En la Especificacion de Dist meter variables debito y credito * de la moneda base En Dist.Verificacion: Cargar los totales de la moneda base del paquete * con los totales del bloque condetdistribucion En Dist.Balanceado: Se deben comparar tambien los totales por moneda base * En ConDetDistribucion.wnri: No eliminar registro si las monedas son diferentes * En ConDetDistribucion.Cod_Cta.Wvi: Permitir tambien cuentas de moneda base * Agregar totales al bloque condetdistribucion para totales moneda base * Los totales actuales solo deben de tomarlo de los montos de la moneda de la distribucion. Agregar moneda base a condetdistribucion. * En lista de valores considerar tambien la moneda base.* P Primarys R Foreign U Uniques select constraint_type, decode(index_name, null, 'nulo', 'no nulo') nulo, count(1) from all_constraints group by constraint_type, decode(index_name, null, 'nulo', 'no nulo'); UNIQUENES COUNT(1) --------- --------- NONUNIQUE 37 UNIQUE 11 Select c.constraint_type, count(1) from all_constraints c, all_cons_columns cc where c.owner = user and c.constraint_type in ('P', 'R', 'U') and cc.owner = user and cc.constraint_name = c.constraint_name and cc.table_name = c.table_name and not exists(select 1 from all_ind_columns ic where ic.index_owner = user and ic.index_name = c.constraint_name and ic.table_name = c.table_name and ic.column_name = cc.column_name) group by c.constraint_type; Estan constraints pero no en indices Más errores en llaves foraneas Total Columnas 3493 C COUNT(1) - --------- P 4 R 1130 select i.uniqueness, count(1) from all_indexes i, all_ind_columns ic where i.owner = user and (i.uniqueness = 'UNIQUE' or i.index_name like '%FK') and ic.index_owner = user and ic.index_name = i.index_name and ic.table_name = i.table_name and not exists(select 1 from all_cons_columns cc where cc.owner = user and cc.constraint_name = i.index_name and cc.table_name = i.table_name and cc.column_name = ic.column_name) group by i.uniqueness; Estan en indices pero no en constraints Más errores en llaves foraneas Total Columnas 2407