Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,159 @@
|
||||
{
|
||||
PROGRAMA : CGPRRP034
|
||||
OBJETIVO : ANULAR RANGO DE NCF'S
|
||||
DESARROLLADOR : ING. ELVIS GARCÍA
|
||||
FECHA : AGOSTO 05, 2024
|
||||
}
|
||||
IMPORT util
|
||||
|
||||
DEFINE usuarios,clave,rncemisor VARCHAR(50),
|
||||
ruta_anulados STRING, numero_msg INT
|
||||
|
||||
|
||||
DEFINE codigodgii CHAR(14),
|
||||
descripcion CHAR(80), fecha_vencimiento DATE
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
|
||||
CONNECT to "marmotech" AS "IFMX" USER usuarios USING clave
|
||||
SELECT a.rnc INTO rncemisor FROM companias a
|
||||
CALL genera_anulacion()
|
||||
END MAIN
|
||||
|
||||
|
||||
FUNCTION genera_anulacion()
|
||||
DEFINE documento_anular RECORD
|
||||
nombrefile,rnc_emisor,cantidadEncf,fechaAnulacion,numeroLineas,tipoeCF,
|
||||
secuenciaeCFdesde,secuenciaeCFhasta,
|
||||
cantidadeCFanulados STRING
|
||||
END RECORD, mensaje, respuesta, codigo STRING
|
||||
|
||||
|
||||
DEFINE flag,
|
||||
ncf_ini,ncf_fin, comprobante_ini, comprobante_fin STRING, range INT, tiponcf VARCHAR(3)
|
||||
|
||||
OPEN WINDOW w1 WITH FORM 'cgfmrp034'
|
||||
|
||||
INPUT BY NAME tiponcf,ncf_ini, ncf_fin ATTRIBUTES(UNBUFFERED, WITHOUT DEFAULTS)
|
||||
BEFORE INPUT
|
||||
LET ruta_anulados= fgl_getenv("RUTA_XML_ANULADOS")
|
||||
|
||||
ON ACTION f2
|
||||
CALL btipo_fact(1,'FT') RETURNING codigodgii,descripcion,fecha_vencimiento
|
||||
LET tiponcf = codigodgii
|
||||
DISPLAY BY NAME tiponcf
|
||||
|
||||
|
||||
|
||||
ON ACTION CANCEL
|
||||
EXIT INPUT
|
||||
|
||||
AFTER INPUT
|
||||
LET numero_msg = 16
|
||||
|
||||
-- IF fech_ini IS NULL THEN
|
||||
-- CALL msg(numero_msg)
|
||||
-- NEXT FIELD fech_ini
|
||||
-- END IF
|
||||
--
|
||||
-- IF fech_fin IS NULL THEN
|
||||
-- CALL msg(numero_msg)
|
||||
-- NEXT FIELD fech_fin
|
||||
-- END IF
|
||||
|
||||
IF tiponcf IS NULL THEN
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD tiponcf
|
||||
END IF
|
||||
|
||||
IF ncf_ini IS NULL THEN
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD ncf_ini
|
||||
END IF
|
||||
|
||||
IF ncf_fin IS NULL THEN
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD ncf_fin
|
||||
END IF
|
||||
|
||||
LET comprobante_ini = build_whole_voucher(ncf_ini, tiponcf)
|
||||
LET comprobante_fin = build_whole_voucher(ncf_fin, tiponcf)
|
||||
|
||||
LET range = (ncf_fin - ncf_ini) + 1
|
||||
|
||||
DISPLAY comprobante_ini
|
||||
DISPLAY comprobante_fin
|
||||
|
||||
INITIALIZE flag TO NULL
|
||||
|
||||
SELECT TOP (1) ncf INTO flag FROM vetb00002
|
||||
WHERE ncf BETWEEN comprobante_ini AND comprobante_fin
|
||||
AND estado_dgii NOT IN ('Anulado', 'Rechazado')
|
||||
|
||||
IF flag IS NULL THEN
|
||||
|
||||
LET documento_anular.nombrefile = ruta_anulados CLIPPED,rncemisor CLIPPED,"AENCF",tiponcf CLIPPED,"_",ncf_ini USING "<<<<<<<",".xml"
|
||||
LET documento_anular.rnc_emisor=rncemisor CLIPPED
|
||||
LET documento_anular.cantidadEncf= range
|
||||
LET documento_anular.fechaAnulacion = util.Datetime.format(current, "%d-%m-%Y %H:%M:%S" )
|
||||
LET documento_anular.numeroLineas=1
|
||||
LET documento_anular.tipoeCF=tiponcf[2,3]
|
||||
LET documento_anular.secuenciaeCFdesde= comprobante_ini
|
||||
LET documento_anular.secuenciaeCFhasta= comprobante_fin
|
||||
LET documento_anular.cantidadeCFanulados=range
|
||||
|
||||
CALL anularencf(documento_anular.*) RETURNING mensaje, respuesta, codigo
|
||||
|
||||
DISPLAY mensaje, respuesta, codigo
|
||||
|
||||
IF codigo = 200 THEN
|
||||
LET respuesta = "LAS SECUENCIAS FUERON ANULADAS CORRECTAMENTE"
|
||||
ELSE
|
||||
IF codigo = 400 THEN
|
||||
LET respuesta = "LAS SECUENCIAS QUE HAS INTENTADO ANULAR YA HAN SIDO UTILIZADAS"
|
||||
CALL fgl_winmessage('ANULACION ESTADO', respuesta,NULL)
|
||||
NEXT FIELD ncf_ini
|
||||
ELSE
|
||||
LET respuesta = "HA OCURRIDO UN ERROR CODIGO: ", codigo
|
||||
CALL fgl_winmessage('ANULACION ESTADO', respuesta,NULL)
|
||||
NEXT FIELD ncf_ini
|
||||
END IF
|
||||
END IF
|
||||
|
||||
|
||||
INSERT INTO vetb00046(ncf_desde, ncf_hasta, usuario, fecha_anulacion, respuesta_dgii) VALUES
|
||||
(comprobante_ini, comprobante_fin, usuarios, getdate(), respuesta)
|
||||
|
||||
CALL fgl_winmessage('ANULACION ESTADO', respuesta,NULL)
|
||||
|
||||
ELSE
|
||||
|
||||
CALL fgl_winmessage('NCF ENCONTRADO', 'EXISTE UN NCF EN EL RANGO ESTABLECIDO YA FACTURADO',NULL)
|
||||
NEXT FIELD ncf_ini
|
||||
|
||||
END IF
|
||||
|
||||
END INPUT
|
||||
|
||||
CLOSE WINDOW w1
|
||||
|
||||
|
||||
END FUNCTION
|
||||
|
||||
|
||||
|
||||
FUNCTION build_whole_voucher(sequence_number, voucher_type)
|
||||
|
||||
DEFINE sequence_number INT, voucher_type STRING
|
||||
DEFINE answer STRING, i INT
|
||||
|
||||
LET answer= voucher_type
|
||||
|
||||
LET answer = answer, sequence_number USING "&&&&&&&&&&"
|
||||
|
||||
|
||||
RETURN answer
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user