Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,849 @@
|
||||
{
|
||||
------------------------------------------------------------------
|
||||
PROGRAMA : COPRMT001
|
||||
OBJETIVO : Capturar, Modificar, Eliminar registros de la
|
||||
Tabla de suplidoreses.
|
||||
PROGRAMADOR : JUAN SOTO .
|
||||
FECHA REALIZACION : Agosto 1997.
|
||||
------------------------------------------------------------------
|
||||
}
|
||||
|
||||
SCHEMA smarmotech
|
||||
|
||||
DEFINE
|
||||
suplidores RECORD
|
||||
tipo_doc VARCHAR(10),
|
||||
rnc VARCHAR(11),
|
||||
cod_sp SMALLINT,
|
||||
cod_sp_sec SMALLINT,
|
||||
nom_sp VARCHAR(41),
|
||||
dir_sp VARCHAR(60),
|
||||
ciu_sp VARCHAR(30),
|
||||
cod_pais VARCHAR(3),
|
||||
tel_sp VARCHAR(25),
|
||||
area_sp VARCHAR(10),
|
||||
fax_sp VARCHAR(25),
|
||||
cont_sp VARCHAR(30),
|
||||
term_sp SMALLINT,
|
||||
status_t CHAR(1),
|
||||
cuenta_no VARCHAR(10),
|
||||
us_crea VARCHAR(50),
|
||||
fech_crea DATETIME YEAR TO FRACTION(3),
|
||||
us_mod VARCHAR(50),
|
||||
fech_mod DATETIME YEAR TO FRACTION(3),
|
||||
id_maintainx INTEGER,
|
||||
contactID INTEGER,
|
||||
email VARCHAR(60)
|
||||
END RECORD,
|
||||
pdocumentoEntrada VARCHAR(2),
|
||||
descripcion_cuenta VARCHAR(80),
|
||||
cuenta_suplidor SMALLINT
|
||||
|
||||
DEFINE proveedores SMALLINT
|
||||
|
||||
GLOBALS "coprgb000.4gl"
|
||||
DEFINE
|
||||
balance DEC(12, 2),
|
||||
q_opt CHAR(3)
|
||||
DEFINE
|
||||
apicheck BOOLEAN,
|
||||
answer, answer2 INT
|
||||
DEFINE email VARCHAR(60)
|
||||
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
|
||||
CONNECT TO "smarmotech" AS "SQL_C" USER usuarios USING clave
|
||||
SELECT a.* INTO p_companias.* FROM companias a
|
||||
|
||||
CALL coprmt001()
|
||||
END MAIN
|
||||
|
||||
FUNCTION coprmt001()
|
||||
OPTIONS FORM LINE 9, ERROR LINE 23, COMMENT LINE 21
|
||||
|
||||
OPEN FORM cofmmt001 FROM "cofmmt001"
|
||||
DISPLAY FORM cofmmt001
|
||||
|
||||
LET selec =
|
||||
"SELECT a.razon_social,RTRIM(a.calle) + ' #'+RTRIM(a.no_local) + ' '+a.sector,a.telefono
|
||||
FROM DGII.dbo.empresas a
|
||||
WHERE a.rnc = ?"
|
||||
|
||||
PREPARE dgii FROM selec
|
||||
|
||||
MENU
|
||||
ON ACTION nuevo
|
||||
CLEAR FORM
|
||||
CALL copcad001()
|
||||
ON ACTION buscar
|
||||
|
||||
CALL copcmf001()
|
||||
ON ACTION Salir
|
||||
EXIT MENU
|
||||
END MENU
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION copcad001()
|
||||
DEFINE ultimo_codigo INTEGER
|
||||
# Captura los datos que va a contener el registro
|
||||
|
||||
INITIALIZE suplidores.* TO NULL
|
||||
|
||||
INPUT BY NAME suplidores.*, apicheck, pdocumentoEntrada
|
||||
BEFORE INPUT
|
||||
CALL proveedores()
|
||||
|
||||
ON KEY(CONTROL-W)
|
||||
CASE
|
||||
WHEN INFIELD(cod_pais)
|
||||
|
||||
CALL busca_pais()
|
||||
DISPLAY BY NAME paises.nom_pais, suplidores.cod_pais
|
||||
END CASE
|
||||
AFTER FIELD rnc
|
||||
IF suplidores.rnc IS NOT NULL THEN
|
||||
IF suplidores.tipo_doc = 'RNC' THEN
|
||||
SELECT a.rnc
|
||||
FROM cotb00001 a
|
||||
WHERE a.rnc = suplidores.rnc AND a.status_t IS NULL
|
||||
IF STATUS <> NOTFOUND THEN
|
||||
CALL msg(12)
|
||||
NEXT FIELD rnc
|
||||
END IF
|
||||
EXECUTE dgii
|
||||
INTO suplidores.nom_sp, suplidores.dir_sp, suplidores.tel_sp USING suplidores
|
||||
.rnc
|
||||
IF STATUS = NOTFOUND THEN
|
||||
CALL msg(3)
|
||||
NEXT FIELD rnc
|
||||
END IF
|
||||
DISPLAY BY NAME suplidores.nom_sp,
|
||||
suplidores.dir_sp,
|
||||
suplidores.tel_sp
|
||||
END IF
|
||||
END IF
|
||||
|
||||
# Verifica que el codigo del suplidores no exista. Si existe,
|
||||
# entonces despliega los datos del registro existente.
|
||||
AFTER FIELD cod_sp
|
||||
IF suplidores.cod_sp IS NOT NULL THEN
|
||||
SELECT a.cod_sp_sec
|
||||
INTO ultimo_codigo
|
||||
FROM cotb00021 a
|
||||
WHERE a.cod_sp = suplidores.cod_sp
|
||||
|
||||
IF ultimo_codigo IS NULL THEN
|
||||
LET ultimo_codigo = 0
|
||||
END IF
|
||||
LET suplidores.cod_sp_sec = ultimo_codigo + 1
|
||||
DISPLAY BY NAME suplidores.cod_sp_sec
|
||||
NEXT FIELD nom_sp
|
||||
END IF
|
||||
{ AFTER FIELD cod_sp_sec
|
||||
SELECT a.* INTO suplidores.* FROM cotb00001 a
|
||||
WHERE a.cod_sp = suplidores.cod_sp and
|
||||
a.cod_sp_sec = suplidores.cod_sp_sec
|
||||
IF status != NOTFOUND THEN
|
||||
IF suplidores.status_t = "E" THEN
|
||||
LET numero_msg = 36
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_sp
|
||||
END IF
|
||||
|
||||
# Llamado a la rutina que despliega el mensaje del error retornado despues del
|
||||
# SELECT. Solamente despliega mensaje si hay error.
|
||||
|
||||
DISPLAY BY NAME suplidores.*
|
||||
LET numero_msg = 12
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_sp
|
||||
END IF
|
||||
}
|
||||
AFTER FIELD cod_pais
|
||||
IF suplidores.cod_pais IS NULL THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD cod_pais
|
||||
END IF
|
||||
SELECT a.nom_pais
|
||||
INTO paises.nom_pais
|
||||
FROM cotb00018 a
|
||||
WHERE a.cod_pais = suplidores.cod_pais
|
||||
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_pais
|
||||
END IF
|
||||
DISPLAY BY NAME paises.nom_pais
|
||||
|
||||
AFTER FIELD term_sp
|
||||
SELECT a.descrip_term
|
||||
INTO pagos.descrip_term
|
||||
FROM cotb00024 a
|
||||
WHERE a.term_sp = suplidores.term_sp
|
||||
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD term_sp
|
||||
END IF
|
||||
DISPLAY BY NAME pagos.descrip_term
|
||||
AFTER FIELD cuenta_no
|
||||
|
||||
SELECT a.descripcion
|
||||
INTO descripcion_cuenta
|
||||
FROM cgtb00001 a
|
||||
WHERE a.cuenta_no = suplidores.cuenta_no AND a.nivel = 3
|
||||
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cuenta_no
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME descripcion_cuenta
|
||||
|
||||
AFTER INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
CLEAR FORM
|
||||
RETURN
|
||||
END IF
|
||||
IF suplidores.cod_pais IS NULL THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD cod_pais
|
||||
END IF
|
||||
IF suplidores.tipo_doc IS NULL THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD tipo_doc
|
||||
END IF
|
||||
IF suplidores.tipo_doc = 'RNC' AND LENGTH(suplidores.rnc) <> 9 THEN
|
||||
CALL msg(77)
|
||||
NEXT FIELD rnc
|
||||
END IF
|
||||
|
||||
IF pdocumentoEntrada IS NULL THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD pdocumentoEntrada
|
||||
END IF
|
||||
IF suplidores.cuenta_no IS NULL THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD cuenta_o
|
||||
END IF
|
||||
IF suplidores.rnc IS NOT NULL THEN
|
||||
IF suplidores.tipo_doc = 'RNC' THEN
|
||||
|
||||
EXECUTE dgii
|
||||
INTO suplidores.nom_sp, suplidores.dir_sp, suplidores.tel_sp USING suplidores
|
||||
.rnc
|
||||
IF STATUS = NOTFOUND THEN
|
||||
CALL msg(3)
|
||||
NEXT FIELD rnc
|
||||
END IF
|
||||
DISPLAY BY NAME suplidores.nom_sp,
|
||||
suplidores.dir_sp,
|
||||
suplidores.tel_sp
|
||||
END IF
|
||||
END IF
|
||||
|
||||
BEGIN WORK
|
||||
|
||||
#BUSCA EL ULTIMO NUMERO CREADO POR TIPO DE PROVEEDOR
|
||||
SELECT a.cod_sp_sec
|
||||
INTO ultimo_codigo
|
||||
FROM cotb00021 a
|
||||
WHERE a.cod_sp = suplidores.cod_sp
|
||||
|
||||
IF ultimo_codigo IS NULL THEN
|
||||
LET ultimo_codigo = 0
|
||||
INSERT INTO cotb00021(
|
||||
cod_sp, cod_sp_sec, us_mod, fech_mod)
|
||||
VALUES(suplidores.cod_sp,
|
||||
ultimo_codigo,
|
||||
usuarios,
|
||||
getdate())
|
||||
END IF
|
||||
LET suplidores.cod_sp_sec = ultimo_codigo + 1
|
||||
DISPLAY BY NAME suplidores.cod_sp_sec
|
||||
UPDATE cotb00021
|
||||
SET cod_sp_sec = suplidores.cod_sp_sec,
|
||||
us_mod = usuarios,
|
||||
fech_mod = getdate()
|
||||
WHERE cod_sp = suplidores.cod_sp
|
||||
|
||||
IF apicheck THEN
|
||||
|
||||
CALL ApiMaintainC(
|
||||
'POST', NULL, suplidores.*, usuarios)
|
||||
RETURNING answer, answer2
|
||||
|
||||
IF answer IS NULL THEN
|
||||
ROLLBACK WORK
|
||||
END IF
|
||||
|
||||
IF answer2 = 0 THEN
|
||||
INITIALIZE answer2 TO NULL
|
||||
END IF
|
||||
|
||||
ELSE
|
||||
|
||||
INITIALIZE answer, answer2 TO NULL
|
||||
|
||||
END IF
|
||||
|
||||
INSERT INTO cotb00001(
|
||||
tipo_doc,
|
||||
rnc,
|
||||
cod_sp,
|
||||
cod_sp_sec,
|
||||
nom_sp,
|
||||
dir_sp,
|
||||
ciu_sp,
|
||||
cod_pais,
|
||||
tel_sp,
|
||||
area_sp,
|
||||
fax_sp,
|
||||
cont_sp,
|
||||
term_sp,
|
||||
us_crea,
|
||||
fech_crea,
|
||||
cuenta_no,
|
||||
id_maintainx,
|
||||
contactID,
|
||||
email,
|
||||
documentoEntrada)
|
||||
VALUES(suplidores.tipo_doc,
|
||||
suplidores.rnc,
|
||||
suplidores.cod_sp,
|
||||
suplidores.cod_sp_sec,
|
||||
suplidores.nom_sp,
|
||||
suplidores.dir_sp,
|
||||
suplidores.ciu_sp,
|
||||
suplidores.cod_pais,
|
||||
suplidores.tel_sp,
|
||||
suplidores.area_sp,
|
||||
suplidores.fax_sp,
|
||||
suplidores.cont_sp,
|
||||
suplidores.term_sp,
|
||||
usuarios,
|
||||
GETDATE(),
|
||||
suplidores.cuenta_no,
|
||||
answer,
|
||||
answer2,
|
||||
suplidores.email,
|
||||
pdocumentoEntrada)
|
||||
|
||||
COMMIT WORK
|
||||
|
||||
LET numero_msg = 1
|
||||
CALL msg(numero_msg)
|
||||
CLEAR FORM
|
||||
# Verifica el Status que retorna luego de insertar el registro en la tabla.
|
||||
# Si hubo problemas en la insercion del registro, se despliega un mensaje.
|
||||
|
||||
EXIT INPUT
|
||||
END INPUT
|
||||
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION copcmf001()
|
||||
#WHENEVER ERROR CONTINUE
|
||||
DEFINE
|
||||
nombreF VARCHAR(100),
|
||||
actualiza VARCHAR(3)
|
||||
|
||||
# Aqui se prepara para la captura del criterio de seleccion
|
||||
CONSTRUCT BY NAME criterio ON a.cod_sp, a.cod_sp_sec, a.nom_sp, a.tipo_doc, a.rnc
|
||||
BEFORE CONSTRUCT
|
||||
CALL proveedores()
|
||||
AFTER CONSTRUCT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
EXIT CONSTRUCT
|
||||
END CONSTRUCT
|
||||
|
||||
LET SELEC =
|
||||
" SELECT a.tipo_Doc
|
||||
,a.rnc
|
||||
,a.cod_sp
|
||||
,a.cod_sp_sec
|
||||
,a.nom_sp
|
||||
,a.dir_sp
|
||||
,a.ciu_sp
|
||||
,a.cod_pais
|
||||
,a.tel_sp
|
||||
,a.area_sp
|
||||
,a.fax_sp
|
||||
,a.cont_sp
|
||||
,a.term_sp
|
||||
,a.status_t
|
||||
,a.cuenta_no
|
||||
,a.us_crea
|
||||
,a.fech_crea
|
||||
,a.us_mod
|
||||
,a.fech_mod
|
||||
,a.id_maintainx,a.contactId,a.email,a.documentoEntrada,b.nom_sp
|
||||
FROM marmotech.dbo.cotb00001 a left outer join exterior.dbo.cotb00001 b on b.cod_sp = a.cod_sp and b.cod_sp_sec = a.cod_sp_Sec where ",
|
||||
" a.status_t is null AND ",
|
||||
criterio CLIPPED,
|
||||
" ORDER BY 1,2,3,4"
|
||||
|
||||
PREPARE busca FROM selec
|
||||
DECLARE datos SCROLL CURSOR FOR busca
|
||||
OPEN datos
|
||||
|
||||
FETCH FIRST datos INTO suplidores.*, pdocumentoEntrada, nombreF
|
||||
IF status >= 0 THEN
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
RETURN
|
||||
END IF
|
||||
END IF
|
||||
|
||||
SELECT nom_pais
|
||||
INTO paises.nom_pais
|
||||
FROM cotb00018
|
||||
WHERE cod_pais = suplidores.cod_pais
|
||||
|
||||
SELECT descrip_term
|
||||
INTO pagos.descrip_term
|
||||
FROM cotb00024
|
||||
WHERE term_sp = suplidores.term_sp
|
||||
|
||||
DISPLAY BY NAME suplidores.*,
|
||||
paises.nom_pais,
|
||||
pagos.descrip_term,
|
||||
pdocumentoEntrada,
|
||||
nombreF
|
||||
|
||||
MENU "OPCIONES "
|
||||
COMMAND "Siguiente"
|
||||
"Presenta en pantalla el proximo registro encontrado"
|
||||
FETCH NEXT datos INTO suplidores.*, pdocumentoEntrada, nombreF
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
SELECT nom_pais
|
||||
INTO paises.nom_pais
|
||||
FROM cotb00018
|
||||
WHERE cod_pais = suplidores.cod_pais
|
||||
|
||||
SELECT descrip_term
|
||||
INTO pagos.descrip_term
|
||||
FROM cotb00024
|
||||
WHERE term_sp = suplidores.term_sp
|
||||
|
||||
DISPLAY BY NAME suplidores.*,
|
||||
paises.nom_pais,
|
||||
pagos.descrip_term,
|
||||
pdocumentoEntrada,
|
||||
nombreF
|
||||
|
||||
COMMAND "Anterior"
|
||||
"Presenta en pantalla el registro anterior encontrado"
|
||||
FETCH PREVIOUS datos INTO suplidores.*, pdocumentoEntrada, nombreF
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
END IF
|
||||
SELECT nom_pais
|
||||
INTO paises.nom_pais
|
||||
FROM cotb00018
|
||||
WHERE cod_pais = suplidores.cod_pais
|
||||
|
||||
SELECT descrip_term
|
||||
INTO pagos.descrip_term
|
||||
FROM cotb00024
|
||||
WHERE term_sp = suplidores.term_sp
|
||||
|
||||
DISPLAY BY NAME suplidores.*,
|
||||
paises.nom_pais,
|
||||
pagos.descrip_term,
|
||||
pdocumentoEntrada,
|
||||
nombreF
|
||||
|
||||
COMMAND "Primero" "Presenta en pantalla el primer registro encontrado"
|
||||
FETCH FIRST datos INTO suplidores.*, pdocumentoEntrada, nombreF
|
||||
SELECT nom_pais
|
||||
INTO paises.nom_pais
|
||||
FROM cotb00018
|
||||
WHERE cod_pais = suplidores.cod_pais
|
||||
|
||||
SELECT descrip_term
|
||||
INTO pagos.descrip_term
|
||||
FROM cotb00024
|
||||
WHERE term_sp = suplidores.term_sp
|
||||
|
||||
DISPLAY BY NAME suplidores.*,
|
||||
paises.nom_pais,
|
||||
pagos.descrip_term,
|
||||
pdocumentoEntrada,
|
||||
nombreF
|
||||
LET numero_msg = 5
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Ultimo" "Presenta en pantalla el ultimo registro encontrado"
|
||||
FETCH LAST datos INTO suplidores.*, pdocumentoEntrada, nombreF
|
||||
SELECT nom_pais
|
||||
INTO paises.nom_pais
|
||||
FROM cotb00018
|
||||
WHERE cod_pais = suplidores.cod_pais
|
||||
|
||||
SELECT descrip_term
|
||||
INTO pagos.descrip_term
|
||||
FROM cotb00024
|
||||
WHERE term_sp = suplidores.term_sp
|
||||
|
||||
DISPLAY BY NAME suplidores.*,
|
||||
paises.nom_pais,
|
||||
pagos.descrip_term,
|
||||
pdocumentoEntrada,
|
||||
nombreF
|
||||
LET numero_msg = 4
|
||||
CALL msg(numero_msg)
|
||||
|
||||
COMMAND "Escoger"
|
||||
"<Esc> Actualiza Registro <Delete> Cancela Operacion"
|
||||
IF suplidores.status_t = "E" THEN
|
||||
LET numero_msg = 36
|
||||
CALL msg(numero_msg)
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
INPUT BY NAME suplidores.tipo_doc,
|
||||
suplidores.rnc,
|
||||
suplidores.nom_sp,
|
||||
suplidores.dir_sp,
|
||||
suplidores.cod_pais,
|
||||
suplidores.term_sp,
|
||||
suplidores.ciu_sp,
|
||||
suplidores.tel_sp,
|
||||
suplidores.area_sp,
|
||||
suplidores.fax_sp,
|
||||
suplidores.cont_sp,
|
||||
suplidores.email,
|
||||
apicheck,
|
||||
pdocumentoEntrada,
|
||||
suplidores.cuenta_no
|
||||
WITHOUT DEFAULTS
|
||||
ON KEY(CONTROL-W)
|
||||
CASE
|
||||
WHEN INFIELD(cod_pais)
|
||||
CALL busca_pais()
|
||||
DISPLAY BY NAME paises.nom_pais, suplidores.cod_pais
|
||||
END CASE
|
||||
|
||||
AFTER FIELD rnc
|
||||
IF suplidores.rnc IS NOT NULL THEN
|
||||
IF suplidores.tipo_doc = 'RNC' THEN
|
||||
LET cuenta_suplidor = 0
|
||||
SELECT COUNT(*)
|
||||
INTO cuenta_suplidor
|
||||
FROM cotb00001 a
|
||||
WHERE a.rnc = suplidores.rnc
|
||||
AND a.status_t IS NULL
|
||||
IF cuenta_suplidor > 1 THEN
|
||||
CALL msg(12)
|
||||
NEXT FIELD rnc
|
||||
END IF
|
||||
EXECUTE dgii
|
||||
INTO suplidores.nom_sp, suplidores.dir_sp, suplidores.tel_sp USING suplidores
|
||||
.rnc
|
||||
IF STATUS = NOTFOUND THEN
|
||||
CALL msg(3)
|
||||
NEXT FIELD rnc
|
||||
END IF
|
||||
DISPLAY BY NAME suplidores.nom_sp,
|
||||
suplidores.dir_sp,
|
||||
suplidores.tel_sp
|
||||
END IF
|
||||
END IF
|
||||
|
||||
AFTER FIELD cod_pais
|
||||
IF suplidores.cod_pais IS NULL THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD cod_pais
|
||||
END IF
|
||||
|
||||
SELECT nom_pais
|
||||
INTO paises.nom_pais
|
||||
FROM cotb00018
|
||||
WHERE cod_pais = suplidores.cod_pais
|
||||
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cod_pais
|
||||
END IF
|
||||
DISPLAY BY NAME paises.nom_pais
|
||||
|
||||
AFTER FIELD term_sp
|
||||
SELECT descrip_term
|
||||
INTO pagos.descrip_term
|
||||
FROM cotb00024
|
||||
WHERE term_sp = suplidores.term_sp
|
||||
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD term_sp
|
||||
END IF
|
||||
DISPLAY BY NAME pagos.descrip_term
|
||||
AFTER FIELD cuenta_no
|
||||
|
||||
SELECT a.descripcion
|
||||
INTO descripcion_cuenta
|
||||
FROM cgtb00001 a
|
||||
WHERE a.cuenta_no = suplidores.cuenta_no
|
||||
|
||||
IF status = NOTFOUND THEN
|
||||
LET numero_msg = 3
|
||||
CALL msg(numero_msg)
|
||||
NEXT FIELD cuenta_no
|
||||
END IF
|
||||
|
||||
DISPLAY BY NAME descripcion_cuenta
|
||||
|
||||
AFTER INPUT
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
CLEAR FORM
|
||||
RETURN
|
||||
END IF
|
||||
IF suplidores.cod_pais IS NULL THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD cod_pais
|
||||
END IF
|
||||
IF suplidores.tipo_doc IS NULL THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD tipo_doc
|
||||
END IF
|
||||
IF suplidores.rnc IS NULL THEN
|
||||
CALL msg(16)
|
||||
NEXT FIELD rnc
|
||||
END IF
|
||||
IF suplidores.nom_sp <> nombreF THEN
|
||||
LET actualiza =
|
||||
fgl_winquestion(
|
||||
"Actualiza",
|
||||
"Nombres diferentes, si actualizas vas a actualizar Finanzas",
|
||||
"No",
|
||||
"Yes|No",
|
||||
"Question",
|
||||
0)
|
||||
IF actualiza = "No" THEN
|
||||
CONTINUE INPUT
|
||||
END IF
|
||||
END IF
|
||||
BEGIN WORK
|
||||
|
||||
IF apicheck THEN
|
||||
|
||||
IF suplidores.id_maintainx IS NULL THEN
|
||||
|
||||
CALL ApiMaintainC(
|
||||
'POST', NULL, suplidores.*, usuarios)
|
||||
RETURNING answer, answer2
|
||||
|
||||
IF answer IS NULL OR answer2 IS NULL THEN
|
||||
ROLLBACK WORK
|
||||
ELSE
|
||||
IF answer != 0 THEN
|
||||
LET suplidores.id_maintainx = answer
|
||||
|
||||
IF answer2 != 0 THEN
|
||||
LET suplidores.contactID = answer2
|
||||
END IF
|
||||
END IF
|
||||
END IF
|
||||
|
||||
ELSE
|
||||
|
||||
CALL ApiMaintainC(
|
||||
'PATCH',
|
||||
suplidores.id_maintainx,
|
||||
suplidores.*,
|
||||
usuarios)
|
||||
RETURNING answer
|
||||
|
||||
DISPLAY answer2
|
||||
IF answer != 1 THEN
|
||||
ROLLBACK WORK
|
||||
END IF
|
||||
|
||||
END IF
|
||||
|
||||
END IF
|
||||
|
||||
UPDATE cotb00001
|
||||
SET tipo_Doc = suplidores.tipo_doc,
|
||||
rnc = suplidores.rnc,
|
||||
nom_sp = suplidores.nom_sp,
|
||||
dir_sp = suplidores.dir_sp,
|
||||
ciu_sp = suplidores.ciu_sp,
|
||||
cod_pais = suplidores.cod_pais,
|
||||
tel_sp = suplidores.tel_sp,
|
||||
area_sp = suplidores.area_sp,
|
||||
fax_sp = suplidores.fax_sp,
|
||||
cont_sp = suplidores.cont_sp,
|
||||
term_sp = suplidores.term_sp,
|
||||
id_maintainx = suplidores.id_maintainx,
|
||||
contactID = suplidores.contactID,
|
||||
email = suplidores.email,
|
||||
us_mod = usuarios,
|
||||
fech_mod = GETDATE(),
|
||||
cuenta_no = suplidores.cuenta_no,
|
||||
documentoEntrada = pdocumentoEntrada
|
||||
WHERE cod_sp = suplidores.cod_sp
|
||||
AND cod_sp_sec = suplidores.cod_sp_sec
|
||||
|
||||
COMMIT WORK
|
||||
|
||||
LET numero_msg = 13
|
||||
CALL msg(numero_msg)
|
||||
|
||||
END INPUT
|
||||
|
||||
COMMAND KEY("L") "eLiminar"
|
||||
# BUSCA BALANCE
|
||||
SELECT SUM(a.valor)
|
||||
INTO balance
|
||||
FROM cptb00001 a
|
||||
WHERE a.cod_sp = suplidores.cod_sp
|
||||
AND a.cod_sp_sec = suplidores.cod_sp_sec
|
||||
AND a.status_t IS NULL
|
||||
IF balance <> 0 THEN
|
||||
CALL fgl_winmessage(
|
||||
"INFO",
|
||||
"NO PUEDES ELIMINAR ESTE PROVEEDOR, TIENE BALANCE EN CXP",
|
||||
"INFO")
|
||||
CONTINUE MENU
|
||||
END IF
|
||||
|
||||
LET q_opt =
|
||||
fgl_winquestion(
|
||||
"ELIMINAR",
|
||||
"ESTA SEGURO DE ELIMINAR ESTE REGISTRO",
|
||||
"NO",
|
||||
"NO|YES",
|
||||
"QUESTION",
|
||||
0)
|
||||
IF q_opt = "YES" THEN
|
||||
|
||||
BEGIN WORK
|
||||
|
||||
IF apicheck THEN
|
||||
|
||||
IF suplidores.id_maintainx IS NOT NULL THEN
|
||||
|
||||
CALL ApiMaintainC(
|
||||
'DELETE',
|
||||
suplidores.id_maintainx,
|
||||
suplidores.*,
|
||||
usuarios)
|
||||
RETURNING answer
|
||||
|
||||
IF answer != 1 THEN
|
||||
ROLLBACK WORK
|
||||
END IF
|
||||
|
||||
END IF
|
||||
|
||||
END IF
|
||||
|
||||
UPDATE cotb00001
|
||||
SET status_t = "E", us_mod = usuarios, fech_mod = getdate()
|
||||
WHERE cod_sp = suplidores.cod_sp
|
||||
AND cod_sp_sec = suplidores.cod_sp_sec
|
||||
|
||||
COMMIT WORK
|
||||
|
||||
LET numero_msg = 39
|
||||
CALL msg(numero_msg)
|
||||
|
||||
END IF
|
||||
|
||||
COMMAND "Retornar" "Retorna al menu anterior"
|
||||
CLEAR FORM
|
||||
EXIT MENU
|
||||
END MENU
|
||||
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION busca_pais()
|
||||
OPEN WINDOW busqueda1
|
||||
AT 10, 10
|
||||
WITH FORM "cofmwd019"
|
||||
ATTRIBUTE(BORDER, FORM LINE FIRST + 1, COMMENT LINE LAST)
|
||||
|
||||
CONSTRUCT criterio
|
||||
ON cotb00018.cod_pais, cotb00018.nom_pais
|
||||
FROM cotb00018.cod_pais, cotb00018.nom_pais
|
||||
IF int_flag THEN
|
||||
LET numero_msg = 2
|
||||
CALL msg(numero_msg)
|
||||
LET int_flag = FALSE
|
||||
RETURN
|
||||
END IF
|
||||
|
||||
LET selec =
|
||||
"SELECT cod_pais,nom_pais FROM cotb00018 ",
|
||||
"WHERE status_t is null AND ",
|
||||
criterio CLIPPED,
|
||||
"ORDER BY 1 "
|
||||
|
||||
PREPARE localiza1 FROM selec
|
||||
DECLARE country CURSOR FOR localiza1
|
||||
|
||||
LET idx = 1
|
||||
FOREACH country INTO pais_wd[idx].*
|
||||
IF status = NOTFOUND THEN
|
||||
LET existe = "N"
|
||||
EXIT FOREACH
|
||||
END IF
|
||||
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
|
||||
CALL set_count(idx - 1)
|
||||
DISPLAY ARRAY pais_wd TO consart.*
|
||||
LET curr1 = arr_curr()
|
||||
|
||||
LET suplidores.cod_pais = pais_wd[curr1].cod_pais
|
||||
LET paises.nom_pais = pais_wd[curr1].nom_pais
|
||||
CLOSE WINDOW busqueda1
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION proveedores()
|
||||
|
||||
DEFINE
|
||||
cod_sp SMALLINT,
|
||||
descrip VARCHAR(200),
|
||||
cproveedores ui.ComboBox,
|
||||
query STRING
|
||||
|
||||
LET cproveedores = ui.combobox.forname("formonly.cod_sp")
|
||||
|
||||
LET query =
|
||||
"SELECT a.cod_sp, CONCAT('(' ,a.cod_sp, ')',' ',a.titulo) FROM cotb00047 a "
|
||||
DECLARE bproveedores CURSOR FROM query
|
||||
CALL cproveedores.clear()
|
||||
|
||||
FOREACH bproveedores INTO cod_sp, descrip
|
||||
CALL cproveedores.additem(cod_sp, descrip)
|
||||
END FOREACH
|
||||
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user