134 lines
5.5 KiB
Plaintext
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 |