GLOBALS "veprgb000.4gl" FUNCTION exterior(localidad,detalle,xusuario,recibo) DEFINE localidad SMALLINT, xusuario VARCHAR(50), recibo CHAR(3), pnum_doc INT DEFINE detalle DYNAMIC ARRAY OF RECORD area SMALLINT, cod_n SMALLINT, cod_grupo SMALLINT, cod_tipo SMALLINT, cod_sec SMALLINT, descrip_esp CHAR(50), unidad_med CHAR(5), bodega SMALLINT, cantidad DEC(12,5), precio LIKE vetb00003.precio, cantidad_2 LIKE vetb00003.cantidad_2, monto_fact DECIMAL(12,2) END RECORD SET CONNECTION "IFMX" SELECT a.ult_factura INTO fact_gral1.factura FROM vetb00001 a WHERE a.sucid =localidad LET fact_gral1.factura = fact_gral1.factura + 1 UPDATE vetb00001 SET ult_factura = fact_gral1.factura WHERE sucid = localidad #=========================================================================== # INSERTA DOCUMENTO EN TRANSACCIONES NCF INSERT INTO vetb00072 VALUES (fact_gral1.factura,"FT",codigodgii,kncf,user,current,localidad) INSERT INTO vetb00002 (cod_cia,factura,fecha_factura,ventas,zona,orden, fecha_orden,conduce,fecha_conduce,tipo_cliente, sec_cliente,cod_vend,sec_vend,cond_pago,porc_itbi, porc_desc,prima_us,sub_total,monto_desc,monto_itbi, neto,fecha_embarque,status_impresion,status_t,us_crea, fech_crea,sucid) VALUES (fact_gral1.cod_cia, fact_gral1.factura, fact_gral1.fecha_factura, fact_gral1.ventas,fact_gral1.zona,fact_gral1.orden, fact_gral1.fecha_orden,fact_gral1.conduce,fact_gral1.fecha_conduce, fact_gral1.tipo_cliente,fact_gral1.sec_cliente,NULL,fact_gral1.sec_vend, fact_gral1.cond_pago,fact_gral1.porc_itbi,fact_gral1.porc_desc, fact_gral1.prima_us,fact_gral1.sub_total,fact_gral1.desc_valor, fact_gral1.itbi,fact_gral1.total_fact,fact_gral1.fecha_embarque, impresion,NULL,xusuario,CURRENT,localidad) # INSERTA EL DETALLE DE LA FACTURA INSERT INTO vetb00048 VALUES (fact_gral1.factura,observacion,null,usuario,current, null,null) # Actualizacion de la tabla de cuentas por cobrar IF fact_gral1.cond_pago > 1 THEN LET p_fecha_ven = fact_gral1.fecha_factura + condicion.dias INSERT INTO cctb00001 VALUES (NULL,fact_gral1.cod_cia,tipo_f,fact_gral1.factura, fact_gral1.tipo_cliente,fact_gral1.sec_cliente,NULL, fact_gral1.sec_vend,fact_gral1.fecha_factura,p_fecha_ven, fact_gral1.factura, NULL,NULL,fact_gral1.total_fact,NULL,NULL, t_costos,0, NULL, xusuario,CURRENT, NULL, NULL,sucid) END IF #-> Actulizacion de la tabla de monitoreo de la orden de produccion vg Wednesday, 17 January, 2001 09:33:21 AM FOR idx = 1 TO detalle.getLength() IF detalle[idx].cod_n IS NOT NULL THEN INSERT INTO vetb00003 VALUES (fact_gral1.cod_cia,fact_gral1.factura,detalle[idx].area,detalle[idx].cod_n, detalle[idx].cod_grupo,detalle[idx].cod_tipo, detalle[idx].cod_sec,detalle[idx].cantidad,detalle[idx].cantidad_2, valor_desc,detalle[idx].precio,NULL,xusuario,CURRENT,NULL,NULL,detalle[idx].bodega,localidad) # Actualizando la tabla de movimientos de inventario cuando la factura es # normal o Tiene Cantidad a despachar LET detalle[idx].cantidad = detalle[idx].cantidad * -1 INSERT INTO iptb00006 (cod_cia,num_doc,fact_no,fecha,cod_transp,sec_transp, cod_sp,cod_sp_sec,placa,cod_tarifa,cod_mov,cod_n, cod_grupo,cod_tipo,cod_sec,cantidad_2, bodega,us_crea,fech_crea,sucid) VALUES (fact_gral1.cod_cia,fact_gral1.factura,fact_gral1.factura, fact_gral1.fecha_factura,fact_gral1.cod_transp,fact_gral1.sec_transp, fact_gral1.tipo_cliente,fact_gral1.sec_cliente,fact_gral1.placa_transp, fact_gral1.cod_tarifa,tipo_fact,detalle[idx].cod_n, detalle[idx].cod_grupo,detalle[idx].cod_tipo, detalle[idx].cod_sec,detalle[idx].cantidad,detalle[idx].bodega,xusuario,CURRENT,localidad) LET detalle[idx].cantidad = detalle[idx].cantidad * -1 LET cant_pend[idx] = cant_pend[idx] * -1 # Actualiza la tabla maestra de producto terminados en la existencia IF p_bonifica[idx] IS NULL THEN LET p_bonifica[idx] = 0 END IF IF opt4 = "N" or opt4 = "n" THEN LET p_bonifica[idx] = 0 END IF # END IF END IF END FOR IF recibo = "YES" THEN SELECT ult_recibo INTO pnum_doc FROM cctb00003 WHERE sucid=localidad AND tipo_doc = 'PG' IF pnum_doc IS NULL THEN LET pnum_doc = 1 INSERT INTO cctb00003 (ult_recibo,tipo_doc,sucid,us_crea,fech_crea) VALUES (pnum_doc,'PG',localidad,xusuario,current,localidad) ELSE LET pnum_doc = pnum_doc + 1 UPDATE cctb00003 SET ult_recibo=pnum_doc WHERE sucid = localidad AND tipo_doc = 'PG' AND sucid = localidad END IF END IF END FUNCTION