Commit inicial: fuentes MBS ERP (Genero 6) + .gitignore + docs/SETUP_PC_MBS.md
This commit is contained in:
@@ -0,0 +1,532 @@
|
||||
{------------------------------------------------------------------------------
|
||||
PROGRAMA : CCPRMT050
|
||||
OBJETIVO : Programa para cobros compulsivos CxC
|
||||
PROGRAMADOR : Valentin Rodriguez
|
||||
FECHA REALIZACION :
|
||||
------------------------------------------------------------------------------}
|
||||
IMPORT JAVA javax.mail.Session
|
||||
|
||||
GLOBALS "ccprgb000.4gl"
|
||||
|
||||
#VARIABLES PARA INTERACTUAR CON CAMPO DEL FORMULARIO
|
||||
#DEFINE sec_cliente SMALLINT
|
||||
|
||||
DEFINE campos RECORD
|
||||
tipo_cliente SMALLINT,
|
||||
f_vencimiento DATE,
|
||||
rangoFecha CHAR(10),
|
||||
f_final DATE,
|
||||
f_inicio DATE
|
||||
END RECORD,
|
||||
att dynamic array of record
|
||||
col1 ,
|
||||
col2 ,
|
||||
col3 ,
|
||||
col4 ,
|
||||
col5 ,
|
||||
col6 ,
|
||||
col7 ,
|
||||
col8 ,
|
||||
col9 ,
|
||||
col10,col11 STRING
|
||||
end RECORD,
|
||||
xcliente,enviainfo,sqlconnect STRING,
|
||||
retorne BOOLEAN,
|
||||
montopendiente DECIMAL(12,2)
|
||||
|
||||
DEFINE xusername,xsmtphost,xsmtpport,xpassword,respuesta,mensajes STRING
|
||||
# VARIABLES PARA GUARDAR LOS DATOS DEVUELTOS POR EL METODO 'busca_balance'
|
||||
# DEFINE xcorriente,x1a30,x31a60,x61a90,xmas90,xtotalSaldo DECIMAL(12,2)
|
||||
|
||||
#RECORD DONDE GUARDAREMOS LAS COTIZACIONES, ORDENES Y FACTURAS ENVIADOS
|
||||
#POR EL METODO 'busca_balance'
|
||||
|
||||
DEFINE tb_acuerdo DYNAMIC ARRAY OF RECORD
|
||||
ACfechaPago DATE,
|
||||
ACobservacion VARCHAR(100),
|
||||
ACmontoPago DEC(12,2),
|
||||
fechCompromiso ,
|
||||
fecha_registro CHAR(40),
|
||||
usuario VARCHAR(100),
|
||||
ACidCliente INT
|
||||
END RECORD,
|
||||
arrContactos DYNAMIC ARRAY OF RECORD
|
||||
seleccionar,
|
||||
contacto,puesto,email,celular,telefonoOficina STRING
|
||||
END RECORD,
|
||||
arrConsolidado DYNAMIC ARRAY OF RECORD
|
||||
cCliente,cDocumento,cfechaVen,cTipoDoc,cOrden,cCotizacion STRING,
|
||||
cCorriente,cDe1a30,cDe31a60,cD61a90,cMasde90,cTotal DECIMAL(12,2),
|
||||
cmoneda STRING
|
||||
END RECORD
|
||||
DEFINE notaCliente, cliente VARCHAR(200),
|
||||
fecha_compromiso DATE,
|
||||
monto_pago DECIMAL(12,2),
|
||||
xtipocliente,xseccliente INT
|
||||
MAIN
|
||||
DEFER INTERRUPT
|
||||
CALL ARG_VAL(1) RETURNING usuarios
|
||||
CALL ARG_VAL(2) RETURNING clave
|
||||
|
||||
CONNECT TO "smarmotech" AS 'MSSQL' USER usuarios USING clave
|
||||
|
||||
CONNECT TO "marmotech" AS 'IFMX' USER usuarios USING clave
|
||||
|
||||
CALL buscaInformacion()
|
||||
END MAIN
|
||||
|
||||
|
||||
|
||||
FUNCTION buscaInformacion()
|
||||
|
||||
DEFINE selec STRING,
|
||||
datatree DYNAMIC ARRAY OF RECORD
|
||||
cliente,factura,orden,cotizacion,telefono STRING,
|
||||
limCredito,corriente,de1a30,de31a60,de61a90,masde90,totalSaldo DEC(12,2),
|
||||
moneda STRING,
|
||||
nodo,hijo,imagen STRING,
|
||||
|
||||
idregistro,tcliente,scliente,sec_vend INT,tipo_doc VARCHAR(10)
|
||||
END RECORD,
|
||||
idx INT,
|
||||
|
||||
compromiso RECORD
|
||||
tipo_cliente,sec_cliente INT,
|
||||
fechaActualizaacion DATE,
|
||||
observacion VARCHAR(200),
|
||||
montoPago DEC(12,2),
|
||||
documento VARCHAR(25),
|
||||
tipo_doc VARCHAR(10),
|
||||
fechaCompromiso DATE,
|
||||
envioemail VARCHAR(10)
|
||||
END RECORD
|
||||
|
||||
# SET CONNECTION 'IFMX'
|
||||
|
||||
LET sqlconnect = 'marmotech'
|
||||
LET selec =
|
||||
"SELECT a.clientes, a.factura,a.orden,a.cotizacion,a.telefono,a.limcredito,a.corriente,a.d1a30,
|
||||
a.d31a60,a.d31a60,a.mas90,a.totalSaldo,a.moneda,
|
||||
a.nodo,a.hijos,imagen,idregistro,a.tipo_cliente,a.sec_cliente,sec_vend,a.tipo_doc
|
||||
FROM cctb00042 a
|
||||
WHERE a.totalSaldo > 0
|
||||
ORDER BY a.idregistro,a.nodo,a.hijos
|
||||
"
|
||||
|
||||
LET idx = 1
|
||||
PREPARE comando FROM selec
|
||||
DECLARE buscacxc CURSOR FOR comando
|
||||
|
||||
FOREACH buscacxc INTO datatree[idx].*
|
||||
|
||||
LET idx = idx + 1
|
||||
END FOREACH
|
||||
call ui.Interface.loadStyles("formularios")
|
||||
OPEN WINDOW w1 WITH FORM "ccfmmt050"
|
||||
DIALOG ATTRIBUTE(UNBUFFERED)
|
||||
DISPLAY ARRAY datatree TO s_record.*
|
||||
BEFORE DISPLAY
|
||||
LET Xtipocliente = datatree[arr_curr()].tcliente
|
||||
LET xseccliente = datatree[arr_curr()].scliente
|
||||
|
||||
call dialog.setCellAttributes(att)
|
||||
|
||||
FOR idx = 1 TO datatree.getLength()
|
||||
LET att[idx].col1 = NULL
|
||||
LET att[idx].col2 = NULL
|
||||
LET att[idx].col3 = NULL
|
||||
LET att[idx].col4 = NULL
|
||||
LET att[idx].col5 = NULL
|
||||
LET att[idx].col6 = NULL
|
||||
LET att[idx].col7 = NULL
|
||||
LET att[idx].col8 = NULL
|
||||
LET att[idx].col9 = NULL
|
||||
LET att[idx].col10 = NULL
|
||||
LET att[idx].col11 = NULL
|
||||
IF datatree[idx].masde90 > 0 THEN
|
||||
LET ATT[idx].col11 = 'red reverse'
|
||||
END IF
|
||||
IF datatree[idx].de61a90 > 0 THEN
|
||||
LET ATT[idx].col10 = 'red reverse'
|
||||
END IF
|
||||
IF datatree[idx].de31a60 > 0 THEN
|
||||
LET att[idx].coL9 = "yellow reverse"
|
||||
END IF
|
||||
IF datatree[idx].de1a30 > 0 THEN
|
||||
LET att[idx].coL8 = "yellow reverse"
|
||||
END IF
|
||||
IF datatree[idx].corriente > 0 THEN
|
||||
LET att[idx].coL7 = "green reverse"
|
||||
END IF
|
||||
END FOR
|
||||
ON SELECTION CHANGE
|
||||
LET montopendiente =datatree[arr_curr()].totalSaldo
|
||||
|
||||
DISPLAY datatree[arr_curr()].factura TO nfactura
|
||||
DISPLAY montopendiente TO montopendiente
|
||||
|
||||
CALL compromiso(datatree[arr_curr()].tcliente,datatree[arr_curr()].scliente,datatree[arr_curr()].factura,
|
||||
datatree[arr_curr()].tipo_doc)
|
||||
RETURNING cliente
|
||||
DISPLAY cliente TO ncliente
|
||||
CALL contactos(datatree[arr_curr()].tcliente,datatree[arr_curr()].scliente)
|
||||
AFTER DISPLAY
|
||||
END DISPLAY
|
||||
DISPLAY ARRAY arrContactos TO scontactos.*
|
||||
END DISPLAY
|
||||
INPUT BY NAME fecha_compromiso,monto_pago,notaCliente,enviainfo
|
||||
BEFORE INPUT
|
||||
LET notaCliente = 'Por medio de la presente le estamos notificando los acuerdos que conversamos:'
|
||||
AFTER FIELD monto_pago
|
||||
IF monto_pago IS NOT NULL THEN
|
||||
IF monto_pago > montopendiente THEN
|
||||
CALL msg(168)
|
||||
NEXT FIELD monto_pago
|
||||
END IF
|
||||
END IF
|
||||
AFTER FIELD fecha_compromiso
|
||||
IF fecha_compromiso IS NOT NULL THEN
|
||||
IF fecha_compromiso < TODAY THEN
|
||||
CALL msg(1011)
|
||||
NEXT FIELD fecha_compromiso
|
||||
END IF
|
||||
END IF
|
||||
ON ACTION guardar ATTRIBUTE(TEXT='Salvar', IMAGE="save")
|
||||
LET compromiso.tipo_cliente = datatree[arr_curr()].tcliente
|
||||
LET compromiso.sec_cliente = datatree[arr_curr()].scliente
|
||||
LET compromiso.fechaCompromiso = fecha_compromiso
|
||||
LET compromiso.observacion = notaCliente
|
||||
LET compromiso.montoPago = monto_pago
|
||||
LET compromiso.documento =datatree[arr_curr()].factura
|
||||
LET compromiso.tipo_doc = datatree[arr_curr()].tipo_doc
|
||||
CALL salvacompromiso(compromiso.*)
|
||||
|
||||
DISPLAY datatree[arr_curr()].factura TO nfactura
|
||||
DISPLAY datatree[arr_curr()].totalSaldo TO montopendiente
|
||||
|
||||
CALL compromiso(datatree[arr_curr()].tcliente,datatree[arr_curr()].scliente,datatree[arr_curr()].factura,
|
||||
datatree[arr_curr()].tipo_doc)
|
||||
RETURNING cliente
|
||||
DISPLAY cliente TO ncliente
|
||||
IF enviainfo = 'SI' THEN
|
||||
CALL notificar()
|
||||
END IF
|
||||
END INPUT
|
||||
DISPLAY ARRAY tb_acuerdo TO src_acuerdo.*
|
||||
END DISPLAY
|
||||
DISPLAY ARRAY arrConsolidado TO sconsolidado.*
|
||||
END DISPLAY
|
||||
ON ACTION estado ATTRIBUTE(TEXT="Estado",IMAGE="fa-dollar")
|
||||
DISPLAY "sqlconnect ",sqlconnect
|
||||
IF sqlconnect = 'smarmotech' THEN
|
||||
SET CONNECTION "MSSQL"
|
||||
END IF
|
||||
CALL visualiza_estado(datatree[arr_curr()].tcliente,datatree[arr_curr()].scliente,sqlconnect)
|
||||
LET sqlconnect = 'marmotech'
|
||||
SET CONNECTION "IFMX"
|
||||
ON ACTION consolidado ATTRIBUTE(IMAGE='fa-sellsy')
|
||||
LET sqlconnect = 'smarmotech'
|
||||
|
||||
CALL buscaBalance(xtipocliente,xseccliente,1)
|
||||
ON ACTION CANCEL
|
||||
EXIT PROGRAM
|
||||
END DIALOG
|
||||
CLOSE WINDOW w1
|
||||
|
||||
END FUNCTION
|
||||
FUNCTION compromiso(xtipocliente,xseccliente,xfactura,xtipo)
|
||||
DEFINE xtipocliente,xseccliente,i,xfactura INT,
|
||||
xtipo STRING
|
||||
|
||||
# SELECT a.fechaPago,a.observacion,a.montoPago,a.idCliente,a.fechacompromiso,a.fech_crea,
|
||||
# ISNULL(c.nom1_emp,'NO TIENE')+' '+ISNULL(c.apell1_emp,'NO TIENE')
|
||||
|
||||
SELECT a.nombre INTO xcliente FROM vetb00004 a WHERE a.tipo_cliente = xtipocliente AND a.sec_cliente = xseccliente
|
||||
DISPLAY "CLIENTE: ",xtipocliente," ",xseccliente," documento ",xfactura," ",xtipo
|
||||
DECLARE busca_acuerdos CURSOR FOR
|
||||
SELECT a.fechaPago,a.observacion,a.montoPago ,a.fechacompromiso ,a.fech_crea
|
||||
# ,ISNULL(c.nom1_emp,'NO TIENE')+' '+ISNULL(c.apell1_emp,'NO TIENE'),a.idCliente
|
||||
FROM cctb00043 a LEFT OUTER JOIN seg0001 b ON a.us_crea = b.usuario
|
||||
# LEFT OUTER JOIN adtb00003 c ON b.num_emp = c.num_emp
|
||||
WHERE a.tipo_cliente = xtipocliente AND a.sec_cliente = xseccliente AND
|
||||
(a.estado = 'ACTIVO' OR a.estado IS NULL) AND
|
||||
a.documento=xfactura AND a.tipo_doc = xtipo
|
||||
ORDER BY a.fechapago
|
||||
|
||||
LET i =1
|
||||
FOREACH busca_acuerdos INTO tb_acuerdo[i].*
|
||||
LET i = i +1
|
||||
END FOREACH
|
||||
|
||||
RETURN xcliente
|
||||
|
||||
END FUNCTION
|
||||
FUNCTION salvacompromiso(xcompromiso)
|
||||
DEFINE xcompromiso RECORD
|
||||
tipo_cliente,sec_cliente INT,
|
||||
fechaActualizaacion DATE,
|
||||
observacion VARCHAR(200),
|
||||
montoPago DEC(12,2),
|
||||
documento VARCHAR(25),
|
||||
tipo_doc VARCHAR(10),
|
||||
fechaCompromiso DATE,
|
||||
envioemail VARCHAR(10)
|
||||
END RECORD
|
||||
|
||||
INSERT INTO cctb00043 (tipo_cliente,sec_cliente,fechaActualizacion,observacion,montoPago,documento,
|
||||
tipo_doc,fechaCompromiso,envioemail,us_crea,fech_crea,estado)
|
||||
VALUES (xcompromiso.*, suser_sname(),getdate(),'ACTIVO')
|
||||
CALL msg(13)
|
||||
|
||||
|
||||
END FUNCTION
|
||||
FUNCTION notificar()
|
||||
|
||||
DEFINE sesion Session,
|
||||
password,s_protocol,respuesta,mensajes STRING
|
||||
|
||||
|
||||
LET subject = "NOTIFICACION COMPROMISO PAGOS"
|
||||
|
||||
LET cuerpo_correo ="
|
||||
<!DOCTYPE html>
|
||||
<html lang='en'>
|
||||
<head>
|
||||
<title>Estimado Senores: ",xcliente CLIPPED,"</title>
|
||||
</head>
|
||||
<body>
|
||||
<img src='https://ws.marmotech.com.do/imagenes/principal/logo.png' alt=''>
|
||||
<div>
|
||||
<p>Estimados Señores: <b><em>",xcliente CLIPPED, "</em></b>
|
||||
<p>",notaCliente CLIPPED,
|
||||
"</div>",
|
||||
"<div>",
|
||||
" <p>Acordamos el pago por un monto de ",monto_pago USING"###,###,###.##"," en fecha ",fecha_compromiso USING "dd/mm/yyyy",
|
||||
|
||||
"</p></div>
|
||||
<div><p>Nos reiteramos a sus ordenes</p></div>
|
||||
<diiv><b>Departamento de cobros MARMOTECH, S. A.</b></div>
|
||||
",
|
||||
"
|
||||
</body>
|
||||
</html>"
|
||||
LET xusername ='notificacion@marmotech.com.do'
|
||||
LET xsmtphost ='smtp.office365.com'
|
||||
LET xsmtpport = '587'
|
||||
LET xpassword = 'Lmmjvsd2020'
|
||||
|
||||
LET vendedorEmail = 'jsoto@marmotech.com.do'
|
||||
CALL enviaemail(vendedorEmail,subject,cuerpo_correo,NULL,xusername,xsmtphost,xsmtpport,xpassword)
|
||||
|
||||
|
||||
END FUNCTION
|
||||
FUNCTION contactos(ptipocliente,pseccliente)
|
||||
DEFINE ptipocliente,pseccliente,i INT
|
||||
|
||||
DECLARE buscaContactos CURSOR FOR
|
||||
SELECT 'NO',a.contacto,a.puesto,a.email,a.celular,a.telefono_of FROM vetb00087 a
|
||||
WHERE a.tipo_cliente = ptipocliente AND a.sec_cliente = pseccliente AND a.contacto IS NOT NULL
|
||||
|
||||
LET i = 1
|
||||
FOREACH buscaContactos INTO arrContactos[i].*
|
||||
LET i = i + 1
|
||||
END FOREACH
|
||||
|
||||
END FUNCTION
|
||||
FUNCTION buscaBalance(ktipo,ksec,j)
|
||||
DEFINE ktipo,ksec,dias, j INT,
|
||||
zcorriente,z1a30,z31a60,z61a90,zmas90,ztotalSaldo,t_ztotalSaldo,
|
||||
t_zcorriente,t_z1a30,t_z31a60,t_z61a90,t_zmas90,t_t_totalSaldo DEC(12,2),
|
||||
selec1 STRING,
|
||||
zmoneda VARCHAR(50),
|
||||
fechaAV,hoy DATE,
|
||||
factura CHAR(10)
|
||||
|
||||
DEFINE datos RECORD
|
||||
factura INT,
|
||||
pendiente DECIMAL(12,2),
|
||||
nombre VARCHAR(50),
|
||||
fecha_ven DATE,
|
||||
num_doc INT,
|
||||
cotizacion_no,
|
||||
num_oc INT,
|
||||
tipo_doc CHAR(7),
|
||||
tipo_cliente,
|
||||
sec_cliente,
|
||||
sec_vend INT
|
||||
END RECORD
|
||||
SET CONNECTION "MSSQL"
|
||||
LET hoy = TODAY
|
||||
LET selec1= " SELECT a.tipo_cliente,a.sec_cliente,b.nombre,a.aplica_a,",
|
||||
" SUM(a.valor+a.monto_desc),d.simbolo ",
|
||||
" FROM cctb00001 a,vetb00004 b,vetb00060 e,vetb00061 d ",
|
||||
" WHERE ",
|
||||
" (a.fecha_orig <= '", TODAY USING "mm/dd/yyyy" , "') AND ",
|
||||
" (a.tipo_cliente = ",ktipo," AND ",
|
||||
" a.sec_cliente = ",ksec,") AND ",
|
||||
" (a.tipo_cliente=b.tipo_cliente AND ",
|
||||
" a.sec_cliente=b.sec_cliente) AND ",
|
||||
"a.tipo_cliente = e.tipo_cliente AND d.ventas=e.ventas AND ",
|
||||
# " a.tipo_doc NOT IN ('AV') AND ",
|
||||
" a.status_t IS NULL ",
|
||||
" GROUP BY a.tipo_cliente,a.sec_cliente,b.nombre,a.aplica_a,d.simbolo ",
|
||||
" HAVING SUM(a.valor + a.monto_desc) > 0 ORDER BY a.tipo_cliente,a.sec_cliente,a.aplica_a "
|
||||
|
||||
PREPARE c_docs FROM selec1
|
||||
DECLARE b_docs CURSOR FOR c_docs
|
||||
|
||||
LET t_zcorriente=0
|
||||
LET t_z1a30=0
|
||||
LET t_z31a60=0
|
||||
LET t_z61a90=0
|
||||
LET t_zmas90=0
|
||||
LET t_ztotalSaldo=0
|
||||
LET t_t_totalSaldo = 0
|
||||
LET j = 1
|
||||
|
||||
FOREACH b_docs INTO datos.tipo_cliente, datos.sec_cliente, datos.nombre,
|
||||
datos.factura, datos.pendiente,zmoneda
|
||||
LET zcorriente=0
|
||||
LET z1a30=0
|
||||
LET z31a60=0
|
||||
LET z61a90=0
|
||||
LET zmas90=0
|
||||
LET ztotalSaldo=0
|
||||
|
||||
#BUSCAMOS EL VENDEDOR
|
||||
LET datos.sec_vend = NULL
|
||||
SELECT UNIQUE a.sec_vend INTO datos.sec_vend
|
||||
FROM vetb00028 a
|
||||
WHERE a.tipo_cliente = datos.tipo_cliente AND
|
||||
a.sec_cliente = datos.sec_cliente AND
|
||||
a.status_t IS NULL
|
||||
|
||||
IF datos.sec_vend IS NULL THEN
|
||||
LET datos.sec_vend = 0
|
||||
END IF
|
||||
|
||||
#BUSCAMOS LA FECHA DE VENCIMIENTO Y TIPO DE DOCUMENTO
|
||||
SELECT MAX( a.tipo_doc),MAX(a.fecha_ven)
|
||||
INTO datos.tipo_doc,datos.fecha_ven
|
||||
FROM cctb00001 a
|
||||
WHERE a.status_t IS NULL AND (a.tipo_doc NOT in ("PG","NC","PC","OC","DV","RC")AND
|
||||
a.num_doc = a.num_doc AND
|
||||
a.num_doc=datos.factura ) and
|
||||
(a.tipo_cliente=datos.tipo_cliente AND
|
||||
a.sec_cliente=datos.sec_cliente)
|
||||
|
||||
IF datos.tipo_doc = 'AV' THEN
|
||||
CONTINUE FOREACH
|
||||
END IF
|
||||
|
||||
#BUSCAMOS LA COTIZACION
|
||||
IF datos.tipo_doc = 'FT' OR datos.tipo_doc='FE' THEN
|
||||
LET datos.cotizacion_no=NULL
|
||||
SELECT MAX(a.conduce)
|
||||
INTO datos.cotizacion_no
|
||||
FROM vetb00002 a
|
||||
WHERE (a.factura = datos.factura) AND
|
||||
(a.tipo_cliente = datos.tipo_cliente AND
|
||||
a.sec_cliente=datos.sec_cliente)
|
||||
END IF
|
||||
|
||||
#DAMOS VALOR A LA FECHA DE FACTURA SI ES NULA
|
||||
IF datos.fecha_ven IS NULL THEN
|
||||
|
||||
SELECT CONVERT(CHAR(10),MAX(a.fecha_ven),103)
|
||||
INTO datos.fecha_ven
|
||||
FROM cctb00001 a
|
||||
WHERE a.status_t IS NULL AND
|
||||
a.aplica_a=datos.factura AND
|
||||
a.tipo_doc IN ("NC","OC","DV","ND") and
|
||||
(a.tipo_cliente=datos.tipo_cliente AND
|
||||
a.sec_cliente=datos.sec_cliente)
|
||||
END IF
|
||||
|
||||
|
||||
#BUSCAMOS EL NUMERO DE ORDEN Y COTIZACION
|
||||
SELECT MAX(a.orden),MAX(a.conduce)
|
||||
INTO datos.num_oc, datos.cotizacion_no
|
||||
FROM vetb00002 a
|
||||
WHERE (a.factura = datos.factura) AND
|
||||
(a.tipo_cliente = datos.tipo_cliente AND a.sec_cliente = datos.sec_cliente)
|
||||
|
||||
IF datos.fecha_ven IS NULL THEN
|
||||
|
||||
SELECT CONVERT(CHAR(10),MAX(a.fecha_ven),103)
|
||||
INTO datos.fecha_ven
|
||||
FROM cctb00001 a
|
||||
WHERE a.status_t IS NULL AND
|
||||
a.aplica_a=datos.factura AND
|
||||
a.tipo_doc in ("NC","OC","DV","ND") AND
|
||||
(a.tipo_cliente=datos.tipo_cliente AND
|
||||
a.sec_cliente=datos.sec_cliente)
|
||||
END IF
|
||||
|
||||
IF datos.pendiente > 0 THEN
|
||||
#### Calcula la diferencia de dias de pago a determinada factura para acu-
|
||||
#### mularlo en la variable correspondiente por tipo de dia.
|
||||
LET dias = hoy - datos.fecha_ven
|
||||
LET factura = datos.tipo_doc,"-",datos.factura
|
||||
|
||||
DISPLAY "dias ",dias
|
||||
|
||||
#### Imprime y acumula los valores correspondientes a pago realizados en
|
||||
#### menos de 31 dias.
|
||||
IF dias <= 0 THEN
|
||||
LET zcorriente = datos.pendiente
|
||||
LET t_zcorriente = t_zcorriente + datos.pendiente
|
||||
|
||||
END IF
|
||||
|
||||
IF dias > 0 AND dias < 31 THEN
|
||||
LET z1a30 = datos.pendiente
|
||||
LET t_z1a30 = t_z1a30 + datos.pendiente
|
||||
END IF
|
||||
|
||||
IF dias >=31 AND dias < 61 THEN
|
||||
LET z31a60 = datos.pendiente
|
||||
LET t_z31a60 = t_z31a60+ datos.pendiente
|
||||
END IF
|
||||
|
||||
IF dias >= 61 AND dias <= 90 THEN
|
||||
LET z61a90 = datos.pendiente
|
||||
LET t_z61a90 = t_z61a90+ datos.pendiente
|
||||
END IF
|
||||
|
||||
IF dias > 90 THEN
|
||||
LET zmas90 = datos.pendiente
|
||||
LET t_zmas90 = t_zmas90 + datos.pendiente
|
||||
END IF
|
||||
LET ztotalSaldo = zcorriente+ z1a30 + z31a60 + z61a90 + zmas90
|
||||
LET t_ztotalSaldo = t_ztotalSaldo + ztotalSaldo
|
||||
|
||||
DISPLAY "datos4 ", zcorriente, z1a30, z31a60, z61a90, zmas90, datos.tipo_doc, datos.factura, fechaAV
|
||||
|
||||
# LET arrConsolidado[j].tipo_cliente = datos.tipo_cliente
|
||||
# LET nodos_sub_hijos[j].sec_cliente = datos.sec_cliente
|
||||
LET arrConsolidado[j].cCliente = xcliente
|
||||
LET arrConsolidado[j].cDocumento = datos.factura
|
||||
LET arrConsolidado[j].cOrden = datos.num_oc
|
||||
LET arrConsolidado[j].ccotizacion = datos.cotizacion_no
|
||||
LET arrConsolidado[j].cmoneda = zmoneda
|
||||
|
||||
LET arrConsolidado[j].ccorriente =zcorriente
|
||||
LET arrConsolidado[j].cde1a30= z1a30
|
||||
LET arrConsolidado[j].cde31a60 = z31a60
|
||||
LET arrConsolidado[j].cd61a90= z61a90
|
||||
LET arrConsolidado[j].cMasde90=zmas90
|
||||
LET arrConsolidado[j].cTotal=ztotalSaldo
|
||||
|
||||
LET arrConsolidado[j].ctipodoc = datos.tipo_doc
|
||||
LET arrConsolidado[j].cfechaVen = datos.fecha_ven
|
||||
|
||||
--DISPLAY "data6 ",datos.factura," ",nodos_sub_hijos[j].corriente ,' ',j,' ', zcorriente
|
||||
LET j = j+1
|
||||
|
||||
END IF
|
||||
END FOREACH
|
||||
SET CONNECTION "IFMX"
|
||||
# RETURN t_zcorriente, t_z1a30, t_z31a60, t_z61a90, t_zmas90, t_ztotalSaldo, datos.sec_vend
|
||||
|
||||
END FUNCTION
|
||||
Reference in New Issue
Block a user