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

406 lines
12 KiB
Plaintext

GLOBALS "cgprgb000.4gl"
FUNCTION pantalla()
DEFINE fecha CHAR(8),
hora char(5) ,
l SMALLINT
SELECT * INTO p_compania.*
FROM companias
LET l = (80 - LENGTH(p_compania.nombre CLIPPED))/2
LET fecha = today USING "dd/mm/yy"
LET hora = time
DISPLAY p_compania.nombre CLIPPED AT 4,l
ATTRIBUTE (REVERSE,blue)
DISPLAY fecha AT 4,70 ATTRIBUTE (blue)
DISPLAY "Sistema de Contabilidad General" AT 5,24
DISPLAY hora AT 6,73 ATTRIBUTE(blue)
CALL fgl_drawbox(5,79,3,1)
#CALL fgl_drawbox(1,79,22,1)
END FUNCTION
FUNCTION cvendedor()
DEFINE k1vendedor SMALLINT, dvendedor CHAR(60),
k2vendedor ui.ComboBox
LET k2vendedor = ui.combobox.forname("formonly.kvendedor")
DECLARE bvendedor CURSOR FOR
SELECT DISTINCT b.num_emp,RTRIM(CAST(b.nom1_emp AS CHAR(30)))+" " +
RTRIM(CAST(b.apell1_emp AS CHAR(30)))+"("+CAST(b.num_emp AS VARCHAR(6))+")"
FROM vetb00028 a, adtb00003 b
WHERE a.sec_vend = b.num_emp AND b.num_Emp = a.sec_Vend AND b.status_t IS NULL
order by 2
CALL k2vendedor.clear()
FOREACH bvendedor INTO k1vendedor,dvendedor
CALL k2vendedor.additem(k1vendedor,dvendedor)
END FOREACH
END FUNCTION
REPORT cheque(x,z)
DEFINE z RECORD
cuenta_no LIKE cgtb00004.cuenta_no,
departamento LIKE cgtb00004.departamento,
cod_aux LIKE cgtb00004.cod_aux,
cod_sec LIKE cgtb00004.cod_sec,
num_doc LIKE cgtb00004.num_doc,
nom_cuenta CHAR(30),
debito LIKE cgtb00004.debito,
credito LIKE cgtb00004.credito
END RECORD
DEFINE x RECORD
tipo_doc LIKE cptb00001.tipo_doc,
cuenta_p LIKE cgtb00004.cuenta_no,
numero INTEGER,
cod_sp LIKE cptb00001.cod_sp,
cod_sp_sec LIKE cptb00001.cod_sp_sec,
nom_sup CHAR(60),
fecha LIKE cgtb00004.fecha,
tasa LIKE cgtb00005.tasa,
monto DECIMAL(12,2),
codigo LIKE tetb00003.codigo
END RECORD,
ano CHAR(4)
DEFINE nombre_mes CHAR(10)
DEFINE orden,fact CHAR(30)
DEFINE doble_on,negrillas_on,negrillas_off,italica,italica_of,doce_on,doble_of,
doce_of CHAR(2)
DEFINE in_mes INTEGER
DEFINE comprime_on,comprime_of CHAR(1)
DEFINE
lineas CHAR(5)
DEFINE valor_mask CHAR(13)
OUTPUT
TOP MARGIN 0
LEFT MARGIN 2
PAGE LENGTH 51
BOTTOM MARGIN 0
ORDER BY x.numero
FORMAT
BEFORE GROUP OF x.numero
{ LET doble_on = ASCII 14
LET doble_of = ASCII 20
LET doce_on = ASCII 27, ASCII 77
LET doce_of = ASCII 27, ASCII 80
LET italica = ASCII 27, ASCII 52
LET italica_of = ASCII 27, ASCII 53
LET negrillas_on = ASCII 27, ASCII 69
LET negrillas_off = ASCII 27, ASCII 70
LET comprime_on = ASCII 15
LET comprime_of = ASCII 18}
LET in_mes = month(recibo.fecha)
CALL busca_mes()
LET nombre_mes = meses[in_mes]
SKIP 2 LINE
PRINT COLUMN 1, doce_on,comprime_on,
COLUMN 129, datos_ck.codigo_1,doce_of,comprime_of
PRINT COLUMN 1, doce_on,comprime_on,
COLUMN 125, "-------",doce_of,comprime_of,
COLUMN 135, doble_on,x.numero using "&&&&&&",doce_on,
comprime_on
PRINT COLUMN 125, datos_ck.codigo_2,doce_of,comprime_of
LET ano = year(recibo.fecha)
PRINT COLUMN 43, negrillas_on,day(recibo.fecha) using "&&",
COLUMN 55, nombre_mes clipped,
COLUMN 74, ano
SKIP 2 LINE
PRINT COLUMN 18, recibo.nom_sup clipped,
COLUMN 64, recibo.monto using "***,***,***.##"
{ CALL convierte(recibo.monto)
SKIP 1 LINE
PRINT COLUMN 5, "*",valor_letras clipped,negrillas_off}
LET valor_mask = recibo.monto using "<<,<<<,<<<.##" clipped
SKIP 2 LINE
{ PRINT COLUMN 3, negrillas_on,comprime_on,
" Mmotech",doble_on,comprime_of,"RD$",
valor_mask clipped,
" Ctvos",negrillas_off}
PRINT negrillas_on,doce_on
#PRINT COLUMN 8 , datos_ck.nombre_bco,doce_of,negrillas_off,comprime_on
#PRINT COLUMN 11, datos_ck.direccion
#PRINT COLUMN 11, "Cuenta No. ",datos_ck.cuenta_bank
PRINT comprime_of
SKIP 4 LINES
SKIP 6 LINES
PRINT COLUMN 6, detalle_1," ",valor_1 using "(((,(((,((#.##)"
PRINT COLUMN 6, detalle_2," ",valor_2 using "(((,(((,((#.##)"
PRINT COLUMN 6, detalle_3," ",valor_3 using "(((,(((,((#.##)"
PRINT COLUMN 6, detalle_4," ",valor_4 using "(((,(((,((#.##)"
PRINT COLUMN 6, detalle_5," ",valor_5,
COLUMN 77, recibo.monto using "#,###,###.##"
SKIP 3 LINES
PRINT comprime_on
ON EVERY ROW
PRINT COLUMN 6, z.cuenta_no,
COLUMN 18, z.departamento using "####",
COLUMN 27, z.cod_aux using "##","-",z.cod_sec using "####",
COLUMN 37, z.num_doc ,
COLUMN 50, z.nom_cuenta,
COLUMN 119, z.debito using "##,###,###.##",
COLUMN 142, z.credito using "##,###,###.##"
PAGE TRAILER
PRINT COLUMN 10, x.codigo using "&&&&"," ",p_descrip
PRINT COLUMN 1,comprime_of,doble_on,
COLUMN 1, x.numero USING "&&&&&&"
SKIP 7 LINES
END REPORT
FUNCTION busca_mes()
LET meses[1] = "ENERO"
LET meses[2] = "FEBRERO"
LET meses[3] = "MARZO"
LET meses[4] = "ABRIL"
LET meses[5] = "MAYO"
LET meses[6] = "JUNIO"
LET meses[7] = "JULIO"
LET meses[8] = "AGOSTO"
LET meses[9] = "SEPTIEMBRE"
LET meses[10] = "OCTUBRE"
LET meses[11] = "NOVIEMBRE"
LET meses[12] = "DICIEMBRE"
END FUNCTION
FUNCTION cventas()
DEFINE kventas SMALLINT, dventas CHAR(30)
#LET pventas = ui.combobox.forname("formonly.ventas")
DECLARE bventas CURSOR FOR
SELECT a.ventas,a.descripcion FROM vetb00061 a
CALL pventas.clear()
FOREACH bventas INTO kventas,dventas
CALL pventas.additem(kventas,dventas)
END FOREACH
END FUNCTION
FUNCTION busca_aplicacion(pcod,pcodsec)
DEFINE pcod,pcodsec INT
CALL aplica_wd.CLEAR()
OPEN WINDOW busqueda1 AT 10,10 WITH FORM "cgfmwd006"
ATTRIBUTE (BORDER,FORM LINE FIRST + 1, comment line last)
LET selec = "SELECT a.aplica_a,SUM(a.valor) FROM cptb00001 a ",
"WHERE a.cod_sp = ? AND a.cod_sp_sec = ? AND ",
" a.status_t IS NULL AND a.aplica_a IS NOT NULL ",
"GROUP BY aplica_a HAVING SUM(a.valor) != 0 ORDER BY 1"
PREPARE comando1 FROM selec
DECLARE aplicar CURSOR FOR comando1
OPEN aplicar USING pcod,pcodsec
LET existe = "N"
LET idx = 1
WHILE STATUS != NOTFOUND
FETCH aplicar INTO aplica_wd[idx].*
IF STATUS = NOTFOUND THEN
EXIT WHILE
END IF
LET aplica_wd[idx].pendiente = aplica_wd[idx].pendiente #* -1
LET existe = "S"
LET idx = idx + 1
END WHILE
IF existe = "N" AND idx = 1 THEN
LET numero_msg = 127
CALL msg(numero_msg)
GOTO salir
END IF
CALL SET_COUNT(idx-1)
DISPLAY ARRAY aplica_wd TO consart.*
LET curr1 = arr_curr()
LET arr_recibo[curr].aplica_a = aplica_wd[curr1].aplica_a
LET arr_recibo[curr].valor_pen = aplica_wd[curr1].pendiente
LABEL salir:
CLOSE WINDOW busqueda1
RETURN arr_recibo[curr].aplica_a,arr_recibo[curr].valor_pen
END FUNCTION
FUNCTION repetir1()
DEFINE ant_art RECORD
orden_no INTEGER,
aplica_a CHAR(10),
valor_pag INTEGER
END RECORD
LET ant_art.orden_no = arr_recibo[curr].orden_no
LET ant_art.aplica_a = arr_recibo[curr].aplica_a
LET ant_art.valor_pag = arr_recibo[curr].valor_pag
FOR idx = 1 to arr_count()
IF idx != curr THEN
IF arr_recibo[idx].aplica_a IS NOT NULL AND
arr_recibo[idx].valor_pag IS NOT NULL THEN
IF arr_recibo[idx].aplica_a = ant_art.aplica_a AND
arr_recibo[idx].valor_pag = ant_art.valor_pag THEN
LET numero_msg = 21
CALL msg(numero_msg)
LET verdad = "S"
ELSE
IF verdad != "S" THEN
LET verdad = "N"
END IF
END IF
END IF
END IF
END FOR
END FUNCTION
FUNCTION consulta_zonas()
OPEN WINDOW busqueda AT 7,12 WITH FORM "vefmwd071"
ATTRIBUTE (BORDER,FORM LINE FIRST + 2,COMMENT LINE LAST,MESSAGE LINE LAST)
LET int_flag = false
CONSTRUCT criterio ON a.descrip FROM descrip
LET selec2 = "SELECT a.cod_zona, a.descrip ",
"FROM vetb00008 a ",
"WHERE a.status_t is null AND ",criterio clipped,
" ORDER BY 1 "
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
GO TO salir_consulta_z
END IF
PREPARE busca_zonas FROM selec2
IF status >= 0 THEN
IF status = notfound THEN
LET numero_msg = 3
CALL msg(numero_msg)
END IF
END IF
DECLARE buscar_zonas CURSOR FOR busca_zonas
LET idx = 1
FOREACH buscar_zonas INTO zonas[idx].*
IF status = NOTFOUND THEN
EXIT FOREACH
END IF
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
EXIT FOREACH
END IF
LET idx = idx + 1
END FOREACH
CALL set_count(idx-1)
MESSAGE " <Esc> Selecciona Zona donde esta el cursor"
DISPLAY ARRAY zonas TO s_zonas.*
LET curr1 = arr_curr()
LET zona.cod_zona = zonas[curr1].cod_zona
LET transportista.cod_zona = zonas[curr1].cod_zona
LET descrip1 = zonas[curr1].descrip
LABEL salir_consulta_z:
CLOSE WINDOW busqueda
END FUNCTION
FUNCTION ctipoNegocio(campo)
DEFINE ktipoNegocio SMALLINT, dtipoNegocio CHAR(30),
campo VARCHAR(100)
# LET ptipoNegocio = ui.combobox.forname("formonly.tipo_negocio")
LET ptipoNegocio = ui.combobox.forname(campo)
CALL ptipoNegocio.clear()
DECLARE btipo_negocio CURSOR FOR
SELECT a.tipo_negocio,a.descripcion FROM cctb00013 a
FOREACH btipo_negocio INTO ktipoNegocio,dtipoNegocio
CALL ptipoNegocio.additem(ktipoNegocio,dtipoNegocio)
END FOREACH
END FUNCTION
FUNCTION busca_cuenta()
OPEN WINDOW cons_cuenta AT 10,5 WITH FORM "cgfmwd004" ATTRIBUTE
(BORDER,FORM LINE FIRST + 1,COMMENT LINE LAST)
CONSTRUCT BY NAME criterio ON descripcion
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
RETURN
END IF
LET selec =
"SELECT cuenta_no,descripcion,nivel FROM cgtb00001 ",
"WHERE ",criterio clipped," AND status_t is null ORDER BY 1"
PREPARE comando FROM selec
DECLARE busca2 CURSOR FOR comando
OPEN busca2
LET idx = 1
WHILE STATUS != NOTFOUND
FETCH busca2 INTO cuentas1[idx].*
IF status = notfound THEN
EXIT WHILE
END IF
LET idx = idx + 1
END WHILE
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
RETURN
END IF
CALL set_count (idx - 1)
DISPLAY ARRAY cuentas1 TO s_cuentas.*
LET curr1 = arr_curr()
IF int_flag THEN
LET numero_msg = 2
CALL msg(numero_msg)
RETURN
END IF
CLOSE WINDOW cons_cuenta
END FUNCTION