Files
MBS/PROYECTO/ccdir/ccprmt016.4gl
T

148 lines
5.9 KiB
Plaintext

{
==============================================================================
PROGRAMA : ccprmt016.4gl
PROGRAMADOR : Ing. Juan Soto
OBSERVACION : ANULAR AVANCES
FECHA : 1/1/2014
==============================================================================
}
GLOBALS
"ccprgb000.4gl"
MAIN
DEFER INTERRUPT
CALL ARG_VAL(1) RETURNING usuarios
CALL ARG_VAL(2) RETURNING clave
CALL ARG_VAL(3) RETURNING impresor
CONNECT to "smarmotech" AS "MSSQL" USER usuarios USING clave
CALL ccprmt016()
END MAIN
FUNCTION ccprmt016()
DEFINE monto1,montoDoc DEC(12,2),
ptipodoc CHAR(2),
pnumDoc,pnumoc,xcotizacion_no,xtipo,xsec,pnumdocdeposito,sucid INT,
cliente CHAR(60),
estado CHAR(30),
pmontoDeposito DEC(12,2),
pfecha DATE
OPEN WINDOW ccfmmt016 WITH FORM "ccfmmt016"
INPUT BY NAME sucid,ptipoDoc,pnumDoc
BEFORE INPUT
CALL localidades('1')
AFTER FIELD pnumdoc
IF pnumdoc IS NOT NULL THEN
SELECT a.nombre,CASE b.status_t
WHEN 'E' THEN "NULO"
ELSE "ACTIVO"
END,
b.num_cheque,
a.tipo_cliente,a.sec_cliente,ISNULL(SUM(b.valor),0),b.fecha_orig
INTO cliente,estado,xcotizacion_no,xtipo,xsec,montoDoc,pfecha
FROM vetb00004 a,cctb00001 b
WHERE a.tipo_cliente = b.tipo_cliente AND
a.sec_cliente = b.sec_cliente AND
b.tipo_doc = ptipoDoc AND
b.num_doc = pnumDoc AND
b.sucid = sucid AND
b.status_t IS NULL
GROUP BY a.nombre, b.status_t,b.num_cheque,a.tipo_cliente,a.sec_cliente,
b.fecha_orig
IF STATUS = NOTFOUND THEN
CALL msg(3)
NEXT FIELD ptipoDoc
END IF
DISPLAY BY NAME cliente,estado,montoDoc,pfecha
IF ptipoDoc = 'AV' THEN
SELECT SUM(a.valor+a.monto_desc) INTO monto1 FROM cctb00001 a
WHERE a.status_t IS NULL AND a.num_doc = Pnumdoc AND
a.num_doc != a.aplica_a AND a.tipo_doc = "AV"
IF monto1 IS NULL THEN
LET monto1 = 0
END IF
IF monto1 <> 0 THEN
CALL fgl_winmessage("ERROR","Documento Tiene Aplicaciones... No Puede Ser Eliminado","info")
NEXT FIELD ptipoDoc
END IF
END IF
# BUSCA DESPACHOS
{
SELECT a.num_oc INTO pnumoc FROM prtb00012 a
WHERE a.cotizacion_no = xcotizacion_no AND a.status_t IS NULL
SELECT DISTINCT a.num_oc FROM iptb00006 a,iptb00005 b
WHERE a.num_oc = pnumoc AND a.status_t IS NULL AND
a.cod_mov = b.cod_mov AND b.control_despacho = 'SI'
AND a.cod_sp = xtipo AND a.cod_sp_Sec = xsec
IF STATUS <> NOTFOUND THEN
CALL fgl_winmessage("ERROR","ORDEN TIENE CONDUCE DESPACHO, NO PUEDE ANULAR AVANCE","INFO")
NEXT FIELD pnumdoc
END IF
}
END IF
AFTER INPUT
IF INT_FLAG THEN
CALL msg(2)
EXIT INPUT
END IF
LET respuesta = fgl_winquestion("INFO","ESTA SEGURO DE QUERER ANULAR ESTE DOCUMENTO?","NO","NO|YES","question",0)
IF UPSHIFT(respuesta) = "YES" THEN
BEGIN WORK
UPDATE cctb00001 SET status_t = 'E',
us_mod = usuarios,
fech_mod = getdate()
WHERE cctb00001.num_doc = pnumDoc AND
cctb00001.tipo_doc = ptipoDoc AND
cctb00001.sucid = sucid AND
cctb00001.fecha_orig > '06/01/2021'
#----------------------------------------------------------------------------
# ANULAR REGISTRO EN FINANZAS
#----------------------------------------------------------------------------
UPDATE cgtb00004 SET status_t ='E',us_mod = usuarios,fech_mod = getdate()
WHERE tipo_doc_cxc = ptipodoc AND
num_doc_cxc = pnumdoc
#------------------------------------------------------------------------------------
# ANULAR REGISTROS DE LA TABLA DE LOS DEPOSITOS
#-------------------------------------------------------------------------------------
SELECT DISTINCT a.num_Doc INTO pnumdocdeposito FROM tetb00008 a
WHERE tipo_Doc = ptipodoc AND documento = pnumdoc
UPDATE tetb00008 SET status_t = 'E',us_mod = usuarios, fech_mod = getdate()
WHERE tipo_Doc = ptipodoc AND documento = pnumdoc
SELECT ISNULL(SUM(a.valor),0) INTO pmontoDeposito FROM tetb00008 a
WHERE a.num_Doc = pnumdocdeposito AND a.status_t IS null
DISPLAY "monto anular dep: ",pnumdocdeposito," monto: ",pmontoDeposito
IF pmontoDeposito = 0 THEN
UPDATE tetb00001 SET status_t = 'E',us_mod = usuarios, fech_mod = getdate()
WHERE num_Doc = pnumdocdeposito
ELSE
UPDATE tetb00001 SET monto = pmontoDeposito
WHERE num_Doc = pnumdocdeposito
END IF
COMMIT WORK
CALL fgl_winmessage("INFO","REGISTRO ANULADO","INFO")
END IF
END input
END FUNCTION