1095 lines
36 KiB
Plaintext
1095 lines
36 KiB
Plaintext
{
|
|
-----------------------------------------------------------------------------
|
|
PROGRAMA : CCPRMT003
|
|
OBJETIVO : Generacion de Notas de Credito Por Avance a Orden.
|
|
REALIZADO POR : Tadeo A. Ferreras
|
|
FECHA : Enero 26, 1993
|
|
-----------------------------------------------------------------------------
|
|
}
|
|
GLOBALS "ccprgb000.4gl"
|
|
|
|
DEFINE decenas DYNAMIC ARRAY OF CHAR(20)
|
|
DEFINE centenas DYNAMIC ARRAY OF CHAR(20)
|
|
DEFINE unidades1 DYNAMIC ARRAY OF CHAR(20)
|
|
DEFINE valor_cheque1,p_num_doc,aplicar,otro_num INT,
|
|
xdireccion,xnombre_proyecto,xnombre_provincia CHAR(60),
|
|
psimbolo CHAR(10),
|
|
pmoneda CHAR(20),
|
|
xestado CHAR(20),
|
|
verdad BOOLEAN,
|
|
ch_itbis char(2)
|
|
|
|
DEFINE valor_orig,valor_nc,nc_pend,valor_ctrl,p_total,val_pen,
|
|
valor2,monto1 DECIMAL(12,2),
|
|
valor_letras CHAR(240)
|
|
DEFINE fecha1 DATE
|
|
DEFINE nombre1,nombre2,apell CHAR(15)
|
|
DEFINE nombre_ven,nombre_cli CHAR(30)
|
|
DEFINE tipo_p CHAR(1)
|
|
|
|
DEFINE recibo_nc RECORD
|
|
num_doc INTEGER,
|
|
num_orden INTEGER,
|
|
tipo_cliente INTEGER,
|
|
sec_cliente INTEGER,
|
|
cod_emp_sec INTEGER,
|
|
fecha DATE,
|
|
avance DECIMAL(12,2)
|
|
END RECORD,
|
|
pcondpago SMALLINT,
|
|
psecvend INT
|
|
|
|
|
|
####### Funcion para agregar un recibo de pago Por Avance
|
|
MAIN
|
|
DEFER INTERRUPT
|
|
CALL STARTLOG("ccprmt03.log")
|
|
CALL ARG_VAL(1) RETURNING usuarios
|
|
CALL ARG_VAL(2) RETURNING clave
|
|
CALL ARG_VAL(3) RETURNING impresor
|
|
CONNECT to "exterior" AS "IFMX"
|
|
CONNECT to "smarmotech" AS "MSSQL" USER usuarios USING clave
|
|
SELECT a.* INTO p_companias.* FROM companias a
|
|
SELECT unique a.sucid,a.sucnombre INTO codigo_sucursal,nombre_sucursal
|
|
FROM sucursales a,seg0001 b
|
|
WHERE b.usuario = usuarios AND b.sucid = a.sucid
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL fgl_winmessage("ERROR","USTED NO TIENE LOCALIDAD ASIGNADA, CONTACTE ADMINISTRADOR SISTEMAS","STOP")
|
|
EXIT PROGRAM
|
|
END IF
|
|
|
|
CALL ccprmt003()
|
|
|
|
END MAIN
|
|
|
|
FUNCTION ccprmt003()
|
|
|
|
OPTIONS
|
|
FORM LINE 8,
|
|
ERROR LINE 24,
|
|
COMMENT LINE 22,
|
|
PROMPT LINE 23
|
|
|
|
#CALL pantalla()
|
|
OPEN FORM ccfmmt003 FROM "ccfmmt003"
|
|
DISPLAY FORM ccfmmt003
|
|
DISPLAY "ccprmt003" AT 4,3
|
|
DISPLAY "Generacion Nota de Credito Por Avance Orden" AT 6,18
|
|
DISPLAY nombre_sucursal TO localidad
|
|
|
|
MENU
|
|
ON ACTION nuevo
|
|
LET tipo_p = "A"
|
|
INITIALIZE recibo_nc.* TO NULL
|
|
LET recibo_nc.fecha = today
|
|
CALL ccpcad003()
|
|
ON ACTION buscar
|
|
|
|
LET tipo_p = "C"
|
|
INITIALIZE recibo_nc.* TO NULL
|
|
SET CONNECTION "IFMX"
|
|
CALL ccpcmf003()
|
|
ON ACTION salir
|
|
EXIT MENU
|
|
END MENU
|
|
END FUNCTION
|
|
|
|
FUNCTION ccpcad003()
|
|
DEFINE porc_p DECIMAL(10,2)
|
|
DEFINE emp SMALLINT
|
|
DEFINE hoy DATE
|
|
LET hoy = null
|
|
|
|
LABEL volver:
|
|
|
|
INPUT BY NAME recibo_nc.*,recibo.comentario,ch_itbis WITHOUT DEFAULTS
|
|
|
|
## AQUI SE PREPARA PARA LA CAPTURA DE INFORMACION
|
|
BEFORE INPUT
|
|
LET ch_itbis = 'SI'
|
|
DISPLAY BY NAME ch_itbis
|
|
NEXT FIELD Num_orden
|
|
AFTER FIELD num_orden
|
|
IF recibo_nc.num_orden IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_orden
|
|
END IF
|
|
|
|
LET nombre_cli = NULL
|
|
{SELECT UNIQUE a.tipo_cliente,a.sec_cliente,b.nombre,CONVERT(char(10),a.fecha_oc,103)
|
|
INTO recibo_nc.tipo_cliente,recibo_nc.sec_cliente,nombre_cli,
|
|
recibo_nc.fecha
|
|
FROM prtb00012 a, b
|
|
WHERE a.tipo_cliente = b.tipo_cliente AND a.sec_cliente = b.sec_cliente
|
|
AND a.num_oc = recibo_nc.num_orden
|
|
}
|
|
IF tipo_p = 'A' THEN
|
|
LET xnombre_proyecto = NULL
|
|
LET xnombre_provincia = NULL
|
|
LET xdireccion = NULL
|
|
LET nombre_cli = NULL
|
|
LET recibo_nc.avance = 0
|
|
SELECT UNIQUE a.tipo_cliente,a.sec_cliente,b.nombre,
|
|
a.nombre_proyecto,c.nombre_provincia,
|
|
a.direccion_cliente,a.cond_pago,a.sec_vend
|
|
INTO recibo_nc.tipo_cliente,recibo_nc.sec_cliente,nombre_cli,
|
|
xnombre_proyecto,xnombre_provincia,xdireccion,pcondpago,psecvend
|
|
FROM vetb00050 a, vetb00004 b,vetb00020 c
|
|
WHERE a.tipo_cliente = b.tipo_cliente AND a.sec_cliente = b.sec_cliente
|
|
AND a.cotizacion_no = recibo_nc.num_orden AND
|
|
a.cod_provincia = c.cod_provincia
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_orden
|
|
END IF
|
|
CALL procesaCliente(recibo_nc.tipo_cliente) RETURNING verdad
|
|
|
|
END IF
|
|
IF tipo_p = 'C' THEN
|
|
SELECT UNIQUE a.tipo_cliente,a.sec_cliente,b.nombre
|
|
INTO recibo_nc.tipo_cliente,recibo_nc.sec_cliente,nombre_cli
|
|
FROM vetb00050 a, vetb00004 b,vetb00020 c
|
|
WHERE a.tipo_cliente = b.tipo_cliente AND a.sec_cliente = b.sec_cliente
|
|
AND a.cotizacion_no = recibo_nc.num_orden
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
LET numero_msg = 3
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD num_orden
|
|
END IF
|
|
CALL procesaCliente(recibo_nc.tipo_cliente) RETURNING verdad
|
|
END IF
|
|
|
|
SELECT UNIQUE a.sec_vend INTO recibo_nc.cod_emp_sec FROM vetb00028 a
|
|
WHERE a.tipo_cliente = recibo_nc.tipo_cliente AND
|
|
a.sec_cliente = recibo_nc.sec_cliente
|
|
|
|
LET nombre_ven = NULL
|
|
LET nombre1 = NULL
|
|
LET nombre2 = NULL
|
|
LET apell = NULL
|
|
SELECT UNIQUE a.nom1_emp,a.nom2_emp,a.apell1_emp
|
|
INTO nombre1,nombre2,apell FROM adtb00003 a
|
|
WHERE a.num_emp = recibo_nc.cod_emp_sec
|
|
LET nombre_ven = nombre1 CLIPPED," ",nombre2 CLIPPED," ",apell CLIPPED
|
|
|
|
DISPLAY BY NAME recibo_nc.tipo_cliente,recibo_nc.sec_cliente,nombre_cli,
|
|
recibo_nc.cod_emp_sec,nombre_ven ATTRIBUTE (REVERSE)
|
|
|
|
DISPLAY BY NAME recibo_nc.fecha ATTRIBUTE(blue)
|
|
AFTER FIELD fecha
|
|
IF recibo_nc.fecha IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha
|
|
END IF
|
|
|
|
LET p_fechas = recibo_nc.fecha
|
|
CALL prd(p_fechas,usuarios) RETURNING bandera
|
|
IF bandera = 1 THEN
|
|
LET bandera = 0
|
|
NEXT FIELD fecha
|
|
END IF
|
|
|
|
|
|
AFTER FIELD avance
|
|
IF recibo_nc.avance IS NULL OR recibo_nc.avance < 0 THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD avance
|
|
END IF
|
|
AFTER INPUT
|
|
IF int_flag THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET int_flag = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
IF recibo_nc.num_orden IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD tipo_doc
|
|
END IF
|
|
|
|
IF recibo_nc.fecha IS NULL THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD fecha
|
|
END IF
|
|
|
|
IF recibo_nc.avance IS NULL OR recibo_nc.avance < 0 THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD avance
|
|
END IF
|
|
IF recibo_nc.avance = 0 THEN
|
|
LET numero_msg = 16
|
|
CALL msg(numero_msg)
|
|
NEXT FIELD avance
|
|
END IF
|
|
END INPUT
|
|
INITIALIZE p_companias.* TO NULL
|
|
IF tipo_p = "A" THEN
|
|
CALL procesacliente(recibo_nc.tipo_cliente) RETURNING verdad
|
|
IF verdad=TRUE THEN
|
|
SET CONNECTION "IFMX"
|
|
SELECT a.* INTO p_companias.* FROM companias a
|
|
SELECT a.ult_recibo INTO recibo_nc.num_doc FROM cctb00003 a
|
|
WHERE a.tipo_doc = "AV"
|
|
|
|
IF recibo_nc.num_doc IS NULL THEN
|
|
LET recibo_nc.num_doc = 0
|
|
END IF
|
|
LET recibo_nc.num_doc = recibo_nc.num_doc + 1
|
|
LET otro_num = recibo_nc.num_doc
|
|
|
|
IF otro_num = 0 or otro_num IS NULL THEN
|
|
CALL fgl_winmessage("ERROR","PROBLEMAS EN EL CONTROL NUMERO","STOP")
|
|
RETURN
|
|
END IF
|
|
|
|
UPDATE cctb00003 set ult_recibo = recibo_nc.num_doc where
|
|
tipo_doc = 'AV'
|
|
|
|
DISPLAY BY NAME recibo_nc.num_doc ATTRIBUTE (REVERSE)
|
|
|
|
INSERT INTO cctb00001 (cod_cia,num_doc,tipo_doc,tipo_cliente,sec_cliente,
|
|
cod_emp,cod_emp_sec,fecha_orig,aplica_a,num_cheque,valor,
|
|
monto_desc,us_crea,fech_crea,costo)
|
|
VALUES (p_companias.cod_comp,recibo_nc.num_doc,"AV",recibo_nc.tipo_cliente,
|
|
recibo_nc.sec_cliente,codigo_sucursal, recibo_nc.cod_emp_sec,recibo_nc.fecha,
|
|
recibo_nc.num_doc,recibo_nc.num_orden,recibo_nc.avance,0,
|
|
usuarios,current,1)
|
|
|
|
INSERT INTO cctb00011 (cod_cia,tipo_cliente,sec_cliente,
|
|
num_doc,tipo_doc,comentario,us_crea,fech_crea)
|
|
VALUES (p_companias.cod_comp,recibo_nc.tipo_cliente,recibo_nc.sec_cliente,
|
|
recibo_nc.num_doc,'AV',recibo.comentario,usuarios,current)
|
|
|
|
END IF
|
|
|
|
SET CONNECTION "MSSQL"
|
|
|
|
SELECT a.ult_recibo INTO recibo_nc.num_doc FROM cctb00003 a
|
|
WHERE a.tipo_doc = "AV"
|
|
|
|
IF recibo_nc.num_doc IS NULL THEN
|
|
LET recibo_nc.num_doc = 0
|
|
END IF
|
|
LET recibo_nc.num_doc = recibo_nc.num_doc + 1
|
|
|
|
UPDATE cctb00003 set ult_recibo = recibo_nc.num_doc where
|
|
tipo_doc = 'AV'
|
|
|
|
|
|
INSERT INTO cctb00001 (cod_cia,num_doc,tipo_doc,tipo_cliente,sec_cliente,
|
|
cod_emp,cod_emp_sec,fecha_orig,aplica_a,num_cheque,valor,
|
|
monto_desc,us_crea,fech_crea,costo)
|
|
VALUES (p_companias.cod_comp,recibo_nc.num_doc,"AV",recibo_nc.tipo_cliente,
|
|
recibo_nc.sec_cliente,codigo_sucursal, recibo_nc.cod_emp_sec,recibo_nc.fecha,
|
|
recibo_nc.num_doc,recibo_nc.num_orden,recibo_nc.avance,0,
|
|
SUSER_SNAME(),GETDATE(),1)
|
|
|
|
INSERT INTO cctb00011 (cod_cia,tipo_cliente,sec_cliente,
|
|
num_doc,tipo_doc,comentario,us_crea,fech_crea,chitbis)
|
|
VALUES (p_companias.cod_comp,recibo_nc.tipo_cliente,recibo_nc.sec_cliente,
|
|
recibo_nc.num_doc,'AV',recibo.comentario,usuarios,getdate(),ch_itbis)
|
|
|
|
# AQUI VIENE LA FUNCION PARA EVALUAR EL CLIENTE
|
|
|
|
CALL evaluaclientes
|
|
(recibo_nc.tipo_cliente,recibo_nc.sec_cliente,
|
|
pcondpago,recibo_nc.num_orden,psecvend,'AV')
|
|
RETURNING xestado
|
|
|
|
|
|
IF xestado ='AUTORIZADA' THEN
|
|
UPDATE cctb00025 SET estado = 'AUROTIZADA'
|
|
WHERE num_req IN
|
|
(SELECT a.num_req FROM cctb00026 a WHERE a.cotizacion_no =recibo_nc.num_orden)
|
|
END IF
|
|
|
|
|
|
|
|
####################
|
|
IF verdad THEN
|
|
INSERT INTO cctb00020 (cod_cia,tipo_doc,num_oc,fecha,tipo_cliente,sec_cliente,
|
|
factura,valor_efectivo,num_trans,us_crea,fech_crea)
|
|
VALUES (p_companias.cod_comp,'AV',recibo_nc.num_doc,recibo_nc.fecha,
|
|
recibo_nc.tipo_cliente,
|
|
recibo_nc.sec_cliente,recibo_nc.num_orden,
|
|
recibo_nc.avance,otro_num,usuarios,getdate())
|
|
END IF
|
|
|
|
END IF
|
|
|
|
IF tipo_p = "C" THEN
|
|
CALL procesacliente(recibo_nc.tipo_cliente) RETURNING verdad
|
|
IF verdad=TRUE THEN
|
|
SET CONNECTION "IFMX"
|
|
SELECT a.* INTO p_companias.* FROM companias a
|
|
UPDATE cctb00001 SET (num_cheque,tipo_cliente,sec_cliente,cod_emp_sec,
|
|
fecha_orig,valor,monto_desc,us_mod,fech_mod) =
|
|
(recibo_nc.num_orden,recibo_nc.tipo_cliente,
|
|
recibo_nc.sec_cliente,recibo_nc.cod_emp_sec,
|
|
recibo_nc.fecha,recibo_nc.avance,0,usuarios,current)
|
|
WHERE tipo_doc = "AV" AND num_doc = recibo_nc.num_doc AND
|
|
aplica_a = recibo_nc.num_doc
|
|
|
|
UPDATE cctb00011 SET comentario = recibo.comentario,
|
|
us_mod = usuarios,
|
|
fech_mod= current
|
|
WHERE cod_cia = p_companias.cod_comp AND
|
|
num_doc = recibo_nc.num_doc AND
|
|
tipo_doc = 'AV'
|
|
END IF
|
|
|
|
SET CONNECTION "MSSQL"
|
|
|
|
SELECT unique a.num_trans INTO otro_num FROM cctb00020 a
|
|
WHERE a.num_trans = recibo_nc.num_doc
|
|
|
|
UPDATE cctb00001 SET (num_cheque,tipo_cliente,sec_cliente,cod_emp_sec,
|
|
fecha_orig,valor,monto_desc,us_mod,fech_mod) =
|
|
(recibo_nc.num_orden,recibo_nc.tipo_cliente,
|
|
recibo_nc.sec_cliente,recibo_nc.cod_emp_sec,
|
|
recibo_nc.fecha,recibo_nc.avance,0,SUSER_SNAME(),GETDATE())
|
|
WHERE tipo_doc = "AV" AND num_doc = otro_num AND
|
|
aplica_a = recibo_nc.num_doc
|
|
|
|
UPDATE cctb00011 SET comentario = recibo.comentario,
|
|
us_mod = usuarios,
|
|
fech_mod= getdate()
|
|
WHERE cod_cia = p_companias.cod_comp AND
|
|
num_doc = recibo_nc.num_doc AND
|
|
tipo_doc = 'AV'
|
|
|
|
END IF
|
|
|
|
CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of,
|
|
doble_on,doble_off,comp_on,comp_off,
|
|
doce,normal,archivo,copia
|
|
|
|
|
|
START REPORT volante TO archivo
|
|
IF verdad THEN
|
|
LET recibo_nc.num_doc = otro_num
|
|
END IF
|
|
DISPLAY BY NAME recibo_nc.num_doc ATTRIBUTE (REVERSE)
|
|
OUTPUT TO REPORT volante(recibo_nc.*)
|
|
FINISH REPORT volante
|
|
|
|
RUN imprime
|
|
LET numero_msg = 1
|
|
CALL msg(numero_msg)
|
|
END FUNCTION
|
|
|
|
FUNCTION ccpcmf003()
|
|
DEFINE recibo_orig INT
|
|
|
|
INPUT BY NAME recibo_nc.num_doc
|
|
|
|
|
|
AFTER FIELD num_doc
|
|
SET CONNECTION "IFMX"
|
|
|
|
SELECT a.num_cheque,a.tipo_cliente,a.sec_cliente,a.cod_emp_sec,
|
|
a.fecha_orig,a.valor,a.cod_emp
|
|
INTO recibo_nc.num_orden,recibo_nc.tipo_cliente,recibo_nc.sec_cliente,
|
|
recibo_nc.cod_emp_sec,recibo_nc.fecha,recibo_nc.avance,codigo_sucursal
|
|
FROM cctb00001 a
|
|
WHERE a.status_t IS NULL AND a.num_doc = a.aplica_a AND
|
|
a.tipo_doc = 'AV' AND a.num_Doc = recibo_nc.num_doc
|
|
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
|
|
SET CONNECTION "MSSQL"
|
|
|
|
SELECT a.num_cheque,a.tipo_cliente,a.sec_cliente,a.cod_emp_sec,
|
|
a.fecha_orig,a.valor,a.cod_emp
|
|
INTO recibo_nc.num_orden,recibo_nc.tipo_cliente,recibo_nc.sec_cliente,
|
|
recibo_nc.cod_emp_sec,recibo_nc.fecha,recibo_nc.avance,codigo_sucursal
|
|
FROM cctb00001 a
|
|
WHERE a.status_t IS NULL AND a.num_doc = a.aplica_a AND
|
|
a.tipo_doc = 'AV' AND a.num_Doc = recibo_nc.num_doc
|
|
|
|
IF STATUS = NOTFOUND THEN
|
|
CALL msg(3)
|
|
NEXT FIELD Num_Doc
|
|
END IF
|
|
END IF
|
|
|
|
SELECT a.nombre INTO nombre_cli FROM vetb00004 a
|
|
WHERE a.tipo_cliente = recibo_nc.tipo_cliente AND
|
|
a.sec_cliente = recibo_nc.sec_cliente
|
|
|
|
SELECT UNIQUE a.nom1_emp,a.nom2_emp,a.apell1_emp
|
|
INTO nombre1,nombre2,apell FROM adtb00003 a
|
|
WHERE a.num_emp = recibo_nc.cod_emp_sec
|
|
|
|
CALL busca_info()
|
|
|
|
LET nombre_ven = nombre1 CLIPPED," ",nombre2 CLIPPED," ",apell CLIPPED
|
|
DISPLAY BY NAME recibo_nc.*,nombre_cli,nombre_ven ATTRIBUTE (REVERSE)
|
|
DISPLAY codigo_sucursal TO localidad
|
|
|
|
AFTER INPUT
|
|
IF INT_FLAG THEN
|
|
LET numero_msg = 2
|
|
CALL msg(numero_msg)
|
|
LET INT_FLAG = FALSE
|
|
RETURN
|
|
END IF
|
|
|
|
EXIT INPUT
|
|
END INPUT
|
|
MENU
|
|
{ ESTA FUNCIONABILIDAD SE QUITO TEMPORALMENTE, YA QUE EL PROGRAMA TIENE
|
|
QUE ACTUALIZAR DOS BASE DE DATOS DIFERENTES, PERO NO TENGO LA IDENTIFICACION DE
|
|
CUAL SERIA LA PRIMERA
|
|
ON ACTION anular
|
|
LET p_fechas = recibo_nc.fecha
|
|
SET CONNECTION "MSSQL"
|
|
CALL prd(p_fechas,usuarios) RETURNING bandera
|
|
IF bandera = 1 THEN
|
|
LET bandera = 0
|
|
RETURN
|
|
END IF
|
|
LET otro_num = recibo_nc.num_doc
|
|
LET recibo_orig = recibo_nc.num_doc
|
|
CALL procesacliente(recibo_nc.tipo_cliente) RETURNING verdad
|
|
IF verdad THEN
|
|
SET CONNECTION "IFMX"
|
|
|
|
SELECT SUM(a.valor+a.monto_desc) INTO monto1 FROM cctb00001 a
|
|
WHERE a.status_t IS NULL AND a.num_doc = recibo_nc.num_doc 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
|
|
ERROR "Documento Tiene Aplicaciones... No Puede Ser Eliminado"
|
|
CONTINUE MENU
|
|
END IF
|
|
END IF
|
|
SET CONNECTION "MSSQL"
|
|
IF verdad THEN
|
|
SELECT a.num_oc INTO recibo_nc.num_doc FROM cctb00020 a
|
|
WHERE a.num_trans = otro_num and tipo_Doc = 'AV'
|
|
END IF
|
|
SELECT SUM(a.valor+a.monto_desc) INTO monto1 FROM cctb00001 a
|
|
WHERE a.status_t IS NULL AND a.num_doc = recibo_nc.num_doc 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
|
|
ERROR "Documento Tiene Aplicaciones... No Puede Ser Eliminado"
|
|
CONTINUE MENU
|
|
END IF
|
|
|
|
|
|
LET respuesta = fgl_winquestion("INFO","ESTA SEGURO DE QUERER ANULAR ESTE DOCUMENTO?","NO","NO|YES","question",0)
|
|
IF UPSHIFT(respuesta) = "YES" THEN
|
|
|
|
IF verdad THEN
|
|
SET CONNECTION "IFMX"
|
|
LET recibo_nc.num_doc= recibo_orig
|
|
UPDATE cctb00001 SET (status_t,us_mod,fech_mod) = ( "E",usuarios,current)
|
|
WHERE tipo_doc = "AV" AND num_doc = recibo_nc.num_doc AND
|
|
aplica_a = recibo_nc.num_doc and fecha_orig > '03/01/2011'
|
|
|
|
END IF
|
|
SET CONNECTION "MSSQL"
|
|
SELECT a.num_oc INTO recibo_nc.num_doc FROM cctb00020 a
|
|
WHERE a.num_trans = otro_num
|
|
UPDATE cctb00001 SET (status_t,us_mod,fech_mod) = ( "E",SUSER_SNAME(),GETDATE())
|
|
WHERE tipo_doc = "AV" AND num_doc = recibo_nc.num_doc AND
|
|
aplica_a = recibo_nc.num_doc and fecha_orig > '03/01/2011'
|
|
|
|
LET numero_msg = 82
|
|
CALL msg(numero_msg)
|
|
END IF
|
|
}
|
|
ON ACTION rImprimir
|
|
SET CONNECTION "MSSQL"
|
|
SELECT a.cod_perfil INTO pperfil
|
|
FROM seg0001 a
|
|
WHERE a.usuario = usuarios
|
|
|
|
CALL seg000(usuarios,pperfil,'otroimp') RETURNING acceso
|
|
IF acceso = "SI" THEN
|
|
|
|
CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of,
|
|
doble_on,doble_off,comp_on,comp_off,
|
|
doce,normal,archivo,copia
|
|
|
|
|
|
START REPORT volante TO archivo
|
|
|
|
OUTPUT TO REPORT volante(recibo_nc.*)
|
|
FINISH REPORT volante
|
|
|
|
RUN imprime
|
|
CALL fgl_winmessage("IMPRESION","ENVIO INFORMACION A LA IMPRESORA","STOP")
|
|
END IF
|
|
ON ACTION otroimp
|
|
CALL defecto(usuarios,clave,impresor) RETURNING imprime,negrilla_on,negrillas_of,
|
|
doble_on,doble_off,comp_on,comp_off,
|
|
doce,normal,archivo,copia
|
|
|
|
|
|
START REPORT volante1 TO archivo
|
|
|
|
OUTPUT TO REPORT volante1(recibo_nc.*)
|
|
FINISH REPORT volante1
|
|
|
|
RUN imprime
|
|
CALL fgl_winmessage("IMPRESION","ENVIO INFORMACION A LA IMPRESORA","STOP")
|
|
|
|
ON ACTION salir
|
|
EXIT MENU
|
|
END MENU
|
|
END FUNCTION
|
|
|
|
REPORT volante (x)
|
|
|
|
DEFINE x RECORD
|
|
num_doc INTEGER,
|
|
num_orden INTEGER,
|
|
tipo_cliente INTEGER,
|
|
sec_cliente INTEGER,
|
|
cod_emp_sec INTEGER,
|
|
fecha DATE,
|
|
avance DECIMAL(12,2)
|
|
END RECORD
|
|
|
|
|
|
|
|
DEFINE doble CHAR(1)
|
|
DEFINE comp_off,negras,negras_of,italic,italic_of CHAR(2)
|
|
|
|
|
|
OUTPUT
|
|
TOP MARGIN 0
|
|
LEFT MARGIN 0
|
|
PAGE LENGTH 33
|
|
|
|
FORMAT
|
|
PAGE HEADER
|
|
LET negras = ASCII 27, ASCII 69
|
|
LET negras_of = ASCII 27, ASCII 70
|
|
LET doble = ASCII 14
|
|
LET italic = ASCII 27, ASCII 52
|
|
LET italic_of = ASCII 27, ASCII 53
|
|
LET comp_off = ASCII 18
|
|
|
|
PRINT COLUMN 70,comp_off, ASCII 27, ASCII 80
|
|
PRINT COLUMN 68,doble, x.num_doc using "&&&&&&"
|
|
IF NOT verdad THEN
|
|
PRINT " "
|
|
PRINT " "
|
|
ELSE
|
|
PRINT COLUMN 5, negras,p_companias.nombre CLIPPED,negras_of,
|
|
COLUMN 74, today using "dd/mm/yyyy"
|
|
|
|
PRINT COLUMN 5, p_companias.direccion CLIPPED," TEL.",p_companias.telefono CLIPPED
|
|
END IF
|
|
|
|
PRINT COLUMN 15, italic,"RECIBO DE INGRESO"
|
|
PRINT COLUMN 15, italic,"AVANCE A COTIZACION"
|
|
|
|
SKIP 1 LINE
|
|
|
|
LET valor_orig = x.avance
|
|
LET valor_letras = NULL
|
|
SELECT a.simbolo,a.descripcion_moneda
|
|
INTO psimbolo,pmoneda FROM vetb00061 a,vetb00060 b
|
|
WHERE a.ventas = b.ventas AND
|
|
b.tipo_cliente = x.tipo_cliente
|
|
|
|
CALL convierte()
|
|
# BUSCA TIPO DE VENTAS
|
|
|
|
PRINT COLUMN 5, "LOCALIDAD: ",nombre_sucursal
|
|
PRINT COLUMN 5, "RECIBIMOS DE :",negras,nombre_cli clipped,"(",x.tipo_cliente USING "&&","-",x.sec_cliente USING "&&&&&&",")",negras_of
|
|
PRINT COLUMN 5, "DIRECCION :",negras,xdireccion,negras_of
|
|
PRINT COLUMN 5, "PROVINCIA :",negras,xnombre_provincia CLIPPED,negras_of
|
|
PRINT COLUMN 5, "VENDEDOR :",recibo_nc.cod_emp_sec USING "<<<<"," ",nombre_ven
|
|
PRINT COLUMN 5, "PROYECTO :",negras,xnombre_proyecto CLIPPED,negras_of
|
|
PRINT COLUMN 5, "LA SUMA DE :", negras,valor_letras clipped,negras_of
|
|
PRINT COLUMN 5, "VALOR RECIBIDO:", negras,psimbolo CLIPPED,x.avance
|
|
using "<<<,<<<,<<<.##",negras_of
|
|
SKIP 1 LINE
|
|
|
|
PRINT COLUMN 1,
|
|
"------------------------------------------------------------------------------"
|
|
PRINT COLUMN 5, "FECHA",
|
|
COLUMN 40, "COTIZACION NO.",
|
|
COLUMN 60, "NETO COBRADO"
|
|
PRINT COLUMN 1,
|
|
"------------------------------------------------------------------------------"
|
|
SKIP 1 LINE
|
|
|
|
PRINT COLUMN 5, x.fecha using "dd/mm/yyyy",
|
|
COLUMN 40, x.num_orden using "&&&&&&" ,
|
|
COLUMN 58,psimbolo CLIPPED, x.avance using "<<<,<<<,<##.##"
|
|
|
|
PAGE TRAILER
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 5, "OBSERVACION: ",recibo.comentario
|
|
PRINT COLUMN 5, "_______________________________",
|
|
COLUMN 45,"_______________________________"
|
|
PRINT COLUMN 10, " Preparado Por ",
|
|
COLUMN 45, " Autorizado Por"
|
|
|
|
PRINT italic_of
|
|
|
|
END REPORT
|
|
|
|
REPORT volante1(x)
|
|
|
|
DEFINE x RECORD
|
|
num_doc INTEGER,
|
|
num_orden INTEGER,
|
|
tipo_cliente INTEGER,
|
|
sec_cliente INTEGER,
|
|
cod_emp_sec INTEGER,
|
|
fecha DATE,
|
|
avance DECIMAL(12,2)
|
|
END RECORD
|
|
|
|
|
|
|
|
DEFINE doble CHAR(1)
|
|
DEFINE comp_off,negras,negras_of,italic,italic_of CHAR(2)
|
|
|
|
|
|
OUTPUT
|
|
TOP MARGIN 0
|
|
LEFT MARGIN 0
|
|
PAGE LENGTH 33
|
|
|
|
FORMAT
|
|
PAGE HEADER
|
|
LET negras = ASCII 27, ASCII 69
|
|
LET negras_of = ASCII 27, ASCII 70
|
|
LET doble = ASCII 14
|
|
LET italic = ASCII 27, ASCII 52
|
|
LET italic_of = ASCII 27, ASCII 53
|
|
LET comp_off = ASCII 18
|
|
|
|
PRINT COLUMN 70,comp_off, ASCII 27, ASCII 80
|
|
PRINT COLUMN 68,doble, x.num_doc using "&&&&&&"
|
|
IF NOT verdad THEN
|
|
PRINT " "
|
|
PRINT " "
|
|
ELSE
|
|
PRINT COLUMN 5, negras,p_companias.nombre CLIPPED,negras_of,
|
|
COLUMN 74, today using "dd/mm/yyyy"
|
|
|
|
PRINT COLUMN 5, p_companias.direccion CLIPPED," TEL.",p_companias.telefono CLIPPED
|
|
END IF
|
|
|
|
PRINT COLUMN 15, italic,"RECIBO DE INGRESO"
|
|
PRINT COLUMN 15, italic,"AVANCE A COTIZACION"
|
|
|
|
SKIP 1 LINE
|
|
|
|
LET valor_orig = x.avance
|
|
LET valor_letras = NULL
|
|
CALL convierte()
|
|
SET CONNECTION "MSSQL"
|
|
# BUSCA TIPO DE VENTAS
|
|
SELECT a.simbolo INTO psimbolo FROM vetb00061 a,vetb00060 b
|
|
WHERE a.ventas = b.ventas AND
|
|
b.tipo_cliente = x.tipo_cliente
|
|
|
|
PRINT COLUMN 60, "LOCALIDAD: ",nombre_sucursal
|
|
PRINT COLUMN 5, "RECIBIMOS DE :",negras,nombre_cli clipped,"(",x.tipo_cliente USING "&&","-",x.sec_cliente USING "&&&&&&",")",negras_of
|
|
PRINT COLUMN 5, "DIRECCION :",negras,xdireccion,negras_of
|
|
PRINT COLUMN 5, "PROVINCIA :",negras,xnombre_provincia CLIPPED,negras_of
|
|
PRINT COLUMN 5, "VENDEDOR :",recibo_nc.cod_emp_sec USING "<<<<"," ",nombre_ven
|
|
PRINT COLUMN 5, "PROYECTO :",negras,xnombre_proyecto CLIPPED,negras_of
|
|
PRINT COLUMN 5, "LA SUMA DE :", negras,valor_letras clipped,negras_of
|
|
PRINT COLUMN 5, "VALOR RECIBIDO:", negras,psimbolo CLIPPED,x.avance
|
|
using "<<<,<<<,<<<.##",negras_of
|
|
PRINT COLUMN 5, "REFERENCIA : ",otro_num USING "&&&&&&"
|
|
SKIP 1 LINE
|
|
|
|
PRINT COLUMN 1,
|
|
"------------------------------------------------------------------------------"
|
|
PRINT COLUMN 5, "FECHA",
|
|
COLUMN 40, "COTIZACION NO.",
|
|
COLUMN 60, "NETO COBRADO"
|
|
PRINT COLUMN 1,
|
|
"------------------------------------------------------------------------------"
|
|
SKIP 1 LINE
|
|
|
|
PRINT COLUMN 5, x.fecha using "dd/mm/yyyy",
|
|
COLUMN 40, x.num_orden using "&&&&&&" ,
|
|
COLUMN 58,psimbolo CLIPPED, x.avance using "<<<,<<<,<##.##"
|
|
|
|
PAGE TRAILER
|
|
SKIP 1 LINE
|
|
PRINT COLUMN 5, "OBSERVACION: ",recibo.comentario
|
|
PRINT COLUMN 5, "_______________________________",
|
|
COLUMN 45,"_______________________________"
|
|
PRINT COLUMN 10, " Preparado Por ",
|
|
COLUMN 45, " Autorizado Por"
|
|
|
|
PRINT italic_of
|
|
|
|
END REPORT
|
|
|
|
FUNCTION convierte()
|
|
DEFINE consegui CHAR(1)
|
|
DEFINE p,miles,m,k,a,b,d,c,entero,unidades_mi,unidades_m,unidad,mil,millon,
|
|
unid_c,u INTEGER
|
|
DEFINE cheles DECIMAL (7,2)
|
|
|
|
CALL letras()
|
|
LET consegui = "N"
|
|
LET entero = valor_orig
|
|
LET cheles = (valor_orig - entero) * 100
|
|
LET unidad = entero / 100
|
|
LET unidad = entero - (unidad * 100)
|
|
LET a = entero / 1000
|
|
LET a = entero - (a * 1000)
|
|
LET d = entero - 19
|
|
|
|
IF d >= 82 THEN
|
|
|
|
LET c = entero / 100
|
|
|
|
# Para Controlar los miles y los cientos
|
|
|
|
IF c <= 9 THEN
|
|
LET valor_letras = valor_letras clipped," ",centenas[c] clipped
|
|
ELSE
|
|
LET c = entero / 1000
|
|
LET b = entero / 1000000
|
|
END IF
|
|
|
|
IF d > 19 THEN
|
|
LET d = unidad - 19
|
|
END IF
|
|
|
|
IF unidad > 0 and unidad < 20 THEN
|
|
LET d = unidad
|
|
LET valor_letras = valor_letras clipped," ",unidades1[d] clipped
|
|
LET consegui = "S"
|
|
END IF
|
|
|
|
ELSE
|
|
IF d > 0 AND d <= 81 THEN
|
|
LET valor_letras = valor_letras clipped," ",decenas[d] clipped
|
|
LET consegui = "S"
|
|
END IF
|
|
END IF
|
|
|
|
# Para controlar los miles
|
|
|
|
IF entero > 999 THEN
|
|
LET unidades_m = a / 100
|
|
LET unidades_m = a - (unidades_m * 100)
|
|
LET valor_letras = null
|
|
|
|
IF c = 1 THEN
|
|
LET valor_letras = "MIL"
|
|
END IF
|
|
|
|
IF c > 1 and c <= 19 THEN
|
|
LET valor_letras = valor_letras clipped," ",unidades1[c] clipped," ","MIL"
|
|
END IF
|
|
|
|
|
|
IF c >= 20 and c <= 999 THEN
|
|
IF c < 82 THEN
|
|
LET c = c - 19
|
|
LET valor_letras = valor_letras clipped," ",decenas[c] clipped
|
|
ELSE
|
|
LET k = c / 100
|
|
|
|
IF k > 0 THEN
|
|
LET valor_letras = valor_letras clipped," ",centenas[k] clipped
|
|
END IF
|
|
LET unid_c = c - (k * 100)
|
|
IF unid_c >= 20 THEN
|
|
LET unid_c = unid_c - 19
|
|
LET valor_letras = valor_letras clipped," ",decenas[unid_c] clipped
|
|
END IF
|
|
END IF
|
|
LET valor_letras = valor_letras clipped," ","MIL"
|
|
END IF
|
|
|
|
LET c = a
|
|
IF c > 100 THEN
|
|
LET c = c / 100
|
|
LET valor_letras = valor_letras clipped," ",centenas[c] clipped
|
|
END IF
|
|
|
|
IF unidades_m > 0 and unidades_m < 19 THEN
|
|
LET a = unidades_m
|
|
LET valor_letras = valor_letras clipped, " ",unidades1[a] clipped
|
|
END IF
|
|
|
|
END IF
|
|
|
|
# Para Controlar cantidades en millones
|
|
|
|
IF entero > 999999 THEN
|
|
LET c = 0
|
|
LET miles = entero - 1000000
|
|
LET m = miles / 1000
|
|
LET p = miles - (m * 1000)
|
|
LET u = m / 100
|
|
LET u = m - (u * 100)
|
|
LET unidades_mi = p
|
|
LET unidades_mi = unidades_mi / 100
|
|
LET unidades_mi = p - (unidades_mi * 100)
|
|
LET valor_letras = null
|
|
|
|
IF b = 1 THEN
|
|
LET valor_letras = "UN MILLON"
|
|
END IF
|
|
|
|
IF b > 1 and b <= 19 THEN
|
|
LET valor_letras = valor_letras clipped," ",unidades1[b] clipped," ",
|
|
"MILLONES"
|
|
END IF
|
|
|
|
IF b >= 20 and b <= 999999 THEN
|
|
IF b < 82 THEN
|
|
LET b = b - 19
|
|
LET valor_letras = valor_letras clipped," ",decenas[b] clipped," ",
|
|
"MILLONES"
|
|
ELSE
|
|
LET k = b / 100
|
|
LET valor_letras = valor_letras clipped," ",centenas[k] clipped," ",
|
|
"MILLONES"
|
|
END IF
|
|
END IF
|
|
|
|
LET b = m
|
|
IF b > 100 THEN
|
|
LET b = b / 100
|
|
LET valor_letras = valor_letras clipped," ",centenas[b] clipped
|
|
|
|
IF u > 0 and u <= 19 THEN
|
|
|
|
IF u = 1 THEN
|
|
LET unidades1[1] = "UN"
|
|
END IF
|
|
|
|
LET valor_letras = valor_letras clipped," ",unidades1[u] clipped
|
|
END IF
|
|
LET valor_letras = valor_letras clipped," ","MIL"
|
|
END IF
|
|
|
|
IF p > 100 THEN
|
|
LET p = p / 100
|
|
LET valor_letras = valor_letras clipped," ",centenas[p] clipped
|
|
END IF
|
|
|
|
IF unidades_mi > 0 and unidades_mi < 19 THEN
|
|
LET m = unidades_mi
|
|
LET valor_letras = valor_letras clipped, " ",unidades1[m] clipped
|
|
END IF
|
|
|
|
END IF
|
|
|
|
IF unidad > 0 and unidad < 20 AND consegui = "N" THEN
|
|
LET d = unidad
|
|
LET valor_letras = valor_letras clipped," ",unidades1[d] clipped
|
|
END IF
|
|
|
|
IF unidad >= 20 AND d <= 81 AND consegui = "N" THEN
|
|
LET valor_letras = valor_letras clipped," ",decenas[d] clipped
|
|
END IF
|
|
|
|
LET valor_letras = valor_letras clipped," ",pmoneda
|
|
# este era la instruccion original fecha 29/04/2014 LET valor_letras = valor_letras clipped," ","PESOS"
|
|
|
|
LET valor_letras = valor_letras clipped," ","CON"," ",cheles using "&&",
|
|
"/100"
|
|
END FUNCTION
|
|
|
|
FUNCTION letras()
|
|
|
|
LET unidades1[1] = "UNO"
|
|
LET unidades1[2] = "DOS"
|
|
LET unidades1[3] = "TRES"
|
|
LET unidades1[4] = "CUATRO"
|
|
LET unidades1[5] = "CINCO"
|
|
LET unidades1[6] = "SEIS"
|
|
LET unidades1[7] = "SIETE"
|
|
LET unidades1[8] = "OCHO"
|
|
LET unidades1[9] = "NUEVE"
|
|
LET unidades1[10] = "DIEZ"
|
|
LET unidades1[11] = "ONCE"
|
|
LET unidades1[12] = "DOCE"
|
|
LET unidades1[13] = "TRECE"
|
|
LET unidades1[14] = "CATORCE"
|
|
LET unidades1[15] = "QUINCE"
|
|
LET unidades1[16] = "DIESISEIS"
|
|
LET unidades1[17] = "DIESISIETE"
|
|
LET unidades1[18] = "DIESIOCHO"
|
|
LET unidades1[19] = "DIESINUEVE"
|
|
|
|
|
|
LET decenas[1] = "VEINTE"
|
|
LET decenas[2] = "VEINTE Y UNO"
|
|
LET decenas[3] = "VEINTE Y DOS"
|
|
LET decenas[4] = "VEINTE Y TRES"
|
|
LET decenas[5] = "VEINTE Y CUATRO"
|
|
LET decenas[6] = "VEINTE Y CINCO"
|
|
LET decenas[7] = "VEINTE Y SEIS"
|
|
LET decenas[8] = "VEINTE Y SIETE"
|
|
LET decenas[9] = "VEINTE Y OCHO"
|
|
LET decenas[10] = "VEINTE Y NUEVE"
|
|
LET decenas[11] = "TREINTA"
|
|
LET decenas[12] = "TREINTA Y UNO"
|
|
LET decenas[13] = "TREINTA Y DOS"
|
|
LET decenas[14] = "TREINTA Y TRES"
|
|
LET decenas[15] = "TREINTA Y CUATRO"
|
|
LET decenas[16] = "TREINTA Y CINCO"
|
|
LET decenas[17] = "TREINTA Y SEIS"
|
|
LET decenas[18] = "TREINTA Y SIETE"
|
|
LET decenas[19] = "TREINTA Y OCHO"
|
|
LET decenas[20] = "TREINTA Y NUEVE"
|
|
LET decenas[21] = "CUARENTA"
|
|
LET decenas[22] = "CUARENTA Y UNO"
|
|
LET decenas[23] = "CUARENTA Y DOS"
|
|
LET decenas[24] = "CUARENTA Y TRES"
|
|
LET decenas[25] = "CUARENTA Y CUATRO"
|
|
LET decenas[26] = "CUARENTA Y CINCO"
|
|
LET decenas[27] = "CUARENTA Y SEIS"
|
|
LET decenas[28] = "CUARENTA Y SIETE"
|
|
LET decenas[29] = "CUARENTA Y OCHO"
|
|
LET decenas[30] = "CUARENTA Y NUEVE"
|
|
LET decenas[31] = "CINCUENTA"
|
|
LET decenas[32] = "CINCUENTA Y UNO"
|
|
LET decenas[33] = "CINCUENTA Y DOS"
|
|
LET decenas[34] = "CINCUENTA Y TRES"
|
|
LET decenas[35] = "CINCUENTA Y CUATRO"
|
|
LET decenas[36] = "CINCUENTA Y CINCO"
|
|
LET decenas[37] = "CINCUENTA Y SEIS"
|
|
LET decenas[38] = "CINCUENTA Y SIETE"
|
|
LET decenas[39] = "CINCUENTA Y OCHO"
|
|
LET decenas[40] = "CINCUENTA Y NUEVE"
|
|
LET decenas[41] = "SESENTA"
|
|
LET decenas[42] = "SESENTA Y UNO"
|
|
LET decenas[43] = "SESENTA Y DOS"
|
|
LET decenas[44] = "SESENTA Y TRES"
|
|
LET decenas[45] = "SESENTA Y CUATRO"
|
|
LET decenas[46] = "SESENTA Y CINCO"
|
|
LET decenas[47] = "SESENTA Y SEIS"
|
|
LET decenas[48] = "SESENTA Y SIETE"
|
|
LET decenas[49] = "SESENTA Y OCHO"
|
|
LET decenas[50] = "SESENTA Y NUEVE"
|
|
LET decenas[51] = "SETENTA"
|
|
LET decenas[52] = "SETENTA Y UNO"
|
|
LET decenas[53] = "SETENTA Y DOS"
|
|
LET decenas[54] = "SETENTA Y TRES"
|
|
LET decenas[55] = "SETENTA Y CUATRO"
|
|
LET decenas[56] = "SETENTA Y CINCO"
|
|
LET decenas[57] = "SETENTA Y SEIS"
|
|
LET decenas[58] = "SETENTA Y SIETE"
|
|
LET decenas[59] = "SETENTA Y OCHO"
|
|
LET decenas[60] = "SETENTA Y NUEVE"
|
|
LET decenas[61] = "OCHENTA"
|
|
LET decenas[62] = "OCHENTA Y UNO"
|
|
LET decenas[63] = "OCHENTA Y DOS"
|
|
LET decenas[64] = "OCHENTA Y TRES"
|
|
LET decenas[65] = "OCHENTA Y CUATRO"
|
|
LET decenas[66] = "OCHENTA Y CINCO"
|
|
LET decenas[67] = "OCHENTA Y SEIS"
|
|
LET decenas[68] = "OCHENTA Y SIETE"
|
|
LET decenas[69] = "OCHENTA Y OCHO"
|
|
LET decenas[70] = "OCHENTA Y NUEVE"
|
|
LET decenas[71] = "NOVENTA"
|
|
LET decenas[72] = "NOVENTA Y UNO"
|
|
LET decenas[73] = "NOVENTA Y DOS"
|
|
LET decenas[74] = "NOVENTA Y TRES"
|
|
LET decenas[75] = "NOVENTA Y CUATRO"
|
|
LET decenas[76] = "NOVENTA Y CINCO"
|
|
LET decenas[77] = "NOVENTA Y SEIS"
|
|
LET decenas[78] = "NOVENTA Y SIETE"
|
|
LET decenas[79] = "NOVENTA Y OCHO"
|
|
LET decenas[80] = "NOVENTA Y NUEVE"
|
|
LET decenas[81] = "CIEN"
|
|
|
|
LET centenas[1] = "CIENTO"
|
|
LET centenas[2] = "DOCIENTOS"
|
|
LET centenas[3] = "TRESCIENTOS"
|
|
LET centenas[4] = "CUATROCIENTOS"
|
|
LET centenas[5] = "QUINIENTOS"
|
|
LET centenas[6] = "SEISCIENTOS"
|
|
LET centenas[7] = "SETECIENTOS"
|
|
LET centenas[8] = "OCHOCIENTOS"
|
|
LET centenas[9] = "NOVECIENTOS"
|
|
|
|
END FUNCTION
|
|
|
|
FUNCTION busca_info()
|
|
|
|
SELECT a.nombre INTO nombre_cli FROM vetb00004 a
|
|
WHERE a.tipo_cliente = recibo_nc.tipo_cliente AND
|
|
a.sec_cliente = recibo_nc.sec_cliente
|
|
|
|
SELECT UNIQUE a.nom1_emp,a.nom2_emp,a.apell1_emp
|
|
INTO nombre1,nombre2,apell FROM adtb00003 a
|
|
WHERE a.num_emp = recibo_nc.cod_emp_sec
|
|
|
|
LET nombre_ven = nombre1 CLIPPED," ",nombre2 CLIPPED," ",apell CLIPPED
|
|
|
|
SELECT a.sucnombre INTO nombre_sucursal
|
|
FROM sucursales a
|
|
WHERE a.sucid = codigo_sucursal
|
|
|
|
SET CONNECTION "MSSQL"
|
|
LET otro_num = NULL
|
|
SELECT a.num_trans INTO otro_num
|
|
FROM cctb00020 a
|
|
WHERE a.num_oc = recibo_nc.num_doc
|
|
|
|
SELECT a.chitbis INTO ch_itbis
|
|
FROM cctb00011 a
|
|
WHERE a.tipo_Doc = 'AV' AND a.num_doc = recibo_nc.num_doc
|
|
|
|
SET CONNECTION "IFMX"
|
|
|
|
DISPLAY BY NAME recibo_nc.*,nombre_cli,nombre_ven,ch_itbis
|
|
DISPLAY codigo_sucursal TO Localidad
|
|
|
|
END FUNCTION
|
|
FUNCTION procesacliente(xtipo_cliente)
|
|
DEFINE xtipo_cliente SMALLINT,
|
|
verdad1 BOOLEAN,
|
|
xitbis CHAR(1)
|
|
|
|
LET verdad1 = TRUE
|
|
|
|
SELECT a.paga_itbis INTO xitbis
|
|
FROM vetb00060 a
|
|
WHERE a.tipo_cliente = xtipo_cliente
|
|
|
|
IF xitbis = "N" THEN
|
|
LET verdad1 = FALSE
|
|
END IF
|
|
RETURN verdad1
|
|
END FUNCTION
|
|
|
|
|