Files
2026-09-22 20:38:51 -04:00

134 lines
5.5 KiB
Plaintext

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