297 lines
12 KiB
Plaintext
297 lines
12 KiB
Plaintext
IMPORT UTIL
|
|
|
|
SCHEMA smarmotech
|
|
|
|
REPORT imp_factura(x,z,porciento,bonifica,cod_f,pncf,pcodigodgii,descripcion,observacion,usuarios,fecha_vencimiento)
|
|
|
|
DEFINE x RECORD
|
|
cod_cia LIKE vetb00002.cod_cia,
|
|
ventas LIKE vetb00002.ventas,
|
|
zona CHAR(3),
|
|
factura LIKE vetb00002.factura,
|
|
bodega SMALLINT,
|
|
conduce LIKE vetb00002.conduce,
|
|
fecha_conduce DATE,
|
|
fecha_factura DATE,
|
|
tipo_cliente LIKE vetb00002.tipo_cliente,
|
|
sec_cliente LIKE vetb00002.sec_cliente,
|
|
nombre CHAR(30),
|
|
direccion CHAR(100),
|
|
ciudad CHAR(20),
|
|
prima_us LIKE vetb00002.prima_us,
|
|
porc_desc LIKE vetb00002.porc_desc,
|
|
cond_pago LIKE vetb00002.cond_pago,
|
|
orden INT,
|
|
fecha_orden DATE,
|
|
porc_itbi LIKE vetb00002.porc_itbi,
|
|
sec_vend LIKE vetb00002.sec_vend,
|
|
nombre_vend CHAR(60),
|
|
cod_transp LIKE iptb00006.cod_transp,
|
|
sec_transp LIKE iptb00006.sec_transp,
|
|
cod_tarifa LIKE iptb00006.cod_tarifa,
|
|
nombre_tran CHAR(30),
|
|
fecha_embarque DATE,
|
|
placa_transp LIKE iptb00006.placa,
|
|
sub_total DECIMAL(12,2),
|
|
desc_valor DECIMAL(12,2),
|
|
itbi DECIMAL(12,2),
|
|
total_fact DECIMAL(12,2)
|
|
END RECORD,
|
|
pncf INT, pcodigodgii CHAR(30),
|
|
rhash VARCHAR(50),
|
|
descripcion,descripcion_bodega VARCHAR(100),
|
|
fecha_vencimiento DATE
|
|
|
|
DEFINE z RECORD
|
|
area SMALLINT,
|
|
cod_n INT,
|
|
cod_grupo INT,
|
|
cod_tipo INT,
|
|
cod_sec INT,
|
|
descrip_esp CHAR(50),
|
|
unidad_med CHAR(5),
|
|
cantidad DEC(12,2),
|
|
precio LIKE vetb00003.precio,
|
|
cantidad_2 LIKE vetb00003.cantidad_2,
|
|
monto_fact DECIMAL(12,2),
|
|
cantidad_orden DEC(12,5),
|
|
pendiente DEC(12,5),
|
|
facturada DEC(12,5),
|
|
|
|
kit_id INT
|
|
|
|
END RECORD,
|
|
telefono char (30),celular char(15),
|
|
descrip_cond CHAR(50),
|
|
observacion VARCHAR(100)
|
|
|
|
DEFINE punidad,conduce_alm INTEGER,
|
|
i,cod_f SMALLINT
|
|
DEFINE c_cajas,bonifica INTEGER
|
|
DEFINE tot_b,tot_n,tot_m,peso_n,medida,peso_b,valor_itbis,neto_s_imp DECIMAL(12,2),
|
|
ch_fech,ch_ncf CHAR(20)
|
|
DEFINE porciento DECIMAL(8,3)
|
|
DEFINE valor_porc,isub_total,ineto DECIMAL (18,2)
|
|
|
|
DEFINE rnc CHAR(25)
|
|
DEFINE nombre_vend,apellido_vend CHAR(15)
|
|
|
|
DEFINE hora CHAR(5),
|
|
marca,modelo CHAR(25),
|
|
ldescuento DEC(12,2),
|
|
p_companias RECORD LIKE companias.*,
|
|
imagen BYTE,
|
|
localidad SMALLINT,
|
|
xconduce_almacen,pcotizacion INT,
|
|
xdireccion,filedestino,nombre_file,sucnombre,chventas,xbodega,direccion_sucursal VARCHAR(100),
|
|
usuarios,codigo VARCHAR(50),
|
|
simbolo VARCHAR(4),
|
|
ch_fechavence VARCHAR(10),
|
|
vimagen BOOLEAN,
|
|
cliente_bas RECORD LIKE vetb00004.*,
|
|
condicion RECORD LIKE vetb00012.*,
|
|
ch_fecha VARCHAR(10),
|
|
dataqrcode,xhash STRING,
|
|
xfechafirmadigital DATETIME YEAR TO SECOND,
|
|
chfechafirmadigital STRING,
|
|
muestraQR,ncffechaVencimiento BOOLEAN,
|
|
pubicacion LIKE prtb00012.ubicacion,
|
|
cemail VARCHAR(200),
|
|
chbruto,chdescuento,chsubtotal,chitbis,chneto VARCHAR(100)
|
|
|
|
DEFINE buf base.StringBuffer
|
|
|
|
OUTPUT
|
|
TOP MARGIN 0
|
|
PAGE LENGTH 66
|
|
LEFT MARGIN 0
|
|
|
|
ORDER BY x.factura
|
|
|
|
FORMAT
|
|
FIRST PAGE HEADER
|
|
LET xconduce_almacen = x.conduce
|
|
SELECT a.descripcion INTO descripcion_bodega FROM intb00009 a WHERE a.cod_bodega = x.bodega
|
|
|
|
SELECT MAX(a.cotizacion_no) INTO pcotizacion FROM vetb00002 a WHERE a.factura = x.factura
|
|
|
|
SELECT a.descrip INTO condicion.descrip FROM vetb00012 a WHERE a.cond_pago = x.cond_pago
|
|
|
|
SELECT a.telefono,a.telex,a.num_rnc INTO cliente_bas.telefono,cliente_bas.telex,rnc FROM vetb00004 a
|
|
WHERE a.tipo_cliente = x.tipo_cliente AND a.sec_cliente = x.sec_cliente
|
|
|
|
SELECT a.* INTO p_companias.* FROM companias a WHERE a.cod_comp = x.cod_cia
|
|
|
|
SELECT a.sucid,b.sucnombre,b.direccion,c.nombre_provincia,b.telefono,b.fax,b.rnc,a.bodega
|
|
INTO localidad,sucnombre,direccion_sucursal,p_companias.direccion1,
|
|
p_companias.telefono,p_companias.fax,p_companias.rnc
|
|
FROM seg0001 a,sucursales b,vetb00020 c
|
|
WHERE a.usuario = usuarios AND a.sucid = b.sucid AND b.localidad = c.cod_provincia
|
|
|
|
SELECT a.descripcion,a.simbolo INTO chventas,simbolo FROM vetb00060 a WHERE a.ventas = x.ventas
|
|
SELECT a.descripcion INTO xbodega FROM intb00009 a WHERE a.cod_bodega = x.bodega
|
|
LET conduce_alm = 0
|
|
|
|
SELECT a.conduce_almacen,a.hash,a.fechafirmadigital INTO conduce_alm,xhash,xfechafirmadigital
|
|
FROM vetb00002 a WHERE a.factura = x.factura AND a.sucid = localidad
|
|
DISPLAY "en impresion: ",x.factura, " localidad: ",localidad
|
|
#COMPLEMENTO DE LA DIRECCION
|
|
# LET pubicacion = NULL
|
|
# SELECT UNIQUE a.ubicacion
|
|
# INTO pubicacion FROM prtb00012 a
|
|
# WHERE a.num_oc = x.orden AND
|
|
# a.tipo_cliente = x.tipo_cliente AND
|
|
# a.sec_cliente =x.sec_cliente
|
|
|
|
LET chfechafirmadigital=util.Datetime.format(xfechafirmadigital, "%d-%m-%Y %H:%M:%S" )
|
|
LET buf = base.StringBuffer.create()
|
|
CALL buf.append(chfechafirmadigital)
|
|
CALL buf.replace(' ','%20',1)
|
|
LET chfechafirmadigital = buf.toString()
|
|
|
|
LET isub_total = x.sub_total *x.prima_us
|
|
LET ineto = x.total_fact *x.prima_us
|
|
|
|
|
|
#LET x.sub_total = x.sub_total * x.prima_us
|
|
#LET x.total_fact = x.total_fact * x.prima_us
|
|
|
|
# DISPLAY "fecha ",chfechafirmadigital
|
|
CALL sus_caracter(xhash CLIPPED) RETURNING rhash
|
|
IF pcodigodgii <> '32' THEN
|
|
LET dataqrcode ='https://ecf.dgii.gov.do/ecf/consultatimbre?rncemisor=',p_companias.rnc CLIPPED,
|
|
"&rnccomprador=",rnc CLIPPED,"&encf=E",pcodigodgii CLIPPED,pncf USING "&&&&&&&&&&",
|
|
"&fechaemision=",x.fecha_factura USING 'dd-mm-yyyy',
|
|
"&montototal=",ineto USING "<<<<<<<<#.##",
|
|
"&fechafirma=",chfechafirmadigital,
|
|
"&codigoseguridad=",rhash CLIPPED
|
|
END IF
|
|
IF pcodigodgii = '32' AND ineto > 250000 THEN
|
|
LET dataqrcode ='https://ecf.dgii.gov.do/ecf/consultatimbre?rncemisor=',p_companias.rnc CLIPPED,
|
|
"&rnccomprador=",rnc CLIPPED,"&encf=E",pcodigodgii CLIPPED,pncf USING "&&&&&&&&&&",
|
|
"&fechaemision=",x.fecha_factura USING 'dd-mm-yyyy',
|
|
"&montototal=",ineto USING "<<<<<<<<#.##",
|
|
"&fechafirma=",chfechafirmadigital,
|
|
"&codigoseguridad=",rhash CLIPPED
|
|
END IF
|
|
IF pcodigodgii = '32' AND ineto < 250000 THEN
|
|
LET dataqrcode ='https://fc.dgii.gov.do/ecf/consultatimbrefc?rncemisor=',p_companias.rnc CLIPPED,
|
|
"&encf=E",pcodigodgii CLIPPED,pncf USING "&&&&&&&&&&",
|
|
"&montototal=",ineto USING "<<<<<<<<#.##",
|
|
"&codigoseguridad=",rhash CLIPPED
|
|
|
|
#('https://fc.dgii.gov.do/testecf/consultatimbrefc?rncemisor=' +infomyempresa.rnc+ '&encf='+ECF.eNCF+'&montototal='+CurrToStr(ecf.MontoTotal)+'&codigoseguridad='+ecf.CodigoSeguridadeCF
|
|
END IF
|
|
LET chfechafirmadigital =util.Datetime.format(xfechafirmadigital, "%d-%m-%Y" )
|
|
LET vimagen=TRUE
|
|
LOCATE imagen IN MEMORY
|
|
SELECT a.firmafactura,a.nombre_file_firma INTO imagen,nombre_file FROM seg0001 a WHERE a.usuario = usuarios
|
|
LET filedestino = 'e:\\MARMOTECH\\test\\IMAGENES\\tmp\\',usuarios CLIPPED,nombre_file CLIPPED
|
|
IF imagen IS NULL THEN
|
|
LET vimagen=FALSE
|
|
ELSE
|
|
CALL imagen.writeFile(filedestino)
|
|
CALL comprimeImagen(filedestino,' -resize 200x200 ')
|
|
CALL imagen.readFile(filedestino)
|
|
END IF
|
|
|
|
AFTER GROUP OF x.factura
|
|
|
|
LET telefono = NULL
|
|
LET rnc = NULL
|
|
|
|
|
|
LET tot_n = 0
|
|
LET tot_b = 0
|
|
LET tot_m = 0
|
|
LET neto_s_imp =0
|
|
ON EVERY ROW
|
|
LET codigo = z.cod_n USING "&&&","-",z.cod_grupo USING "&&&&","-",z.cod_tipo USING "&&&&","-",
|
|
z.cod_Sec USING "&&&&&&&"
|
|
|
|
{if x.direccion is null then
|
|
SELECT b.calle||' '||b.casa_num||''||b.barrio||' '||b.urbanizacion
|
|
INTO x.direccion
|
|
FROM vetb00005 b
|
|
WHERE b.tipo_cliente = x.tipo_cliente AND
|
|
b.sec_cliente = x.sec_cliente
|
|
end if}
|
|
#LET ch_ncf ="NCF:", pcodigodgii CLIPPED,pncf USING "&&&&&&&&"
|
|
IF pcodigodgii NOT MATCHES 'B*' THEN
|
|
LET ch_ncf ="e-NCF:","E", pcodigodgii CLIPPED,pncf USING "&&&&&&&&&&"
|
|
LET muestraQR = TRUE
|
|
ELSE
|
|
LET ch_ncf ="NCF:", pcodigodgii CLIPPED,pncf USING "&&&&&&&&&&"
|
|
LET muestraQR = FALSE
|
|
END IF
|
|
SELECT a.num_rnc,a.telefono INTO rnc,telefono FROM vetb00004 a
|
|
WHERE a.tipo_cliente = x.tipo_cliente AND a.sec_cliente = x.sec_cliente AND
|
|
a.status_t IS NULL
|
|
|
|
SELECT a.descrip INTO descrip_cond FROM vetb00012 a
|
|
WHERE a.cond_pago = x.cond_pago
|
|
|
|
|
|
# LET chbruto = simbolo CLIPPED, x.sub_total USING "<<<,<<<,<##.##"
|
|
# LET chdescuento = simbolo CLIPPED, x.desc_valor USING "<<<,<<<,<##.##"
|
|
# LET chsubtotal = simbolo CLIPPED, x.sub_total - x.desc_valor USING "<<<,<<<,<##.##"
|
|
LET chitbis = x.itbi*x.prima_us USING "<<<,<<<,<##.##"
|
|
LET chneto = x.total_fact *x.prima_us USING "<<<,<<<,<##.##"
|
|
|
|
LET punidad = z.unidad_med
|
|
LET marca = NULL
|
|
LET modelo = NULL
|
|
|
|
LET ch_fecha = fecha_vencimiento USING "dd/mm/yyyy"
|
|
IF fecha_vencimiento IS NOT NULL THEN
|
|
LET ncffechaVencimiento = TRUE
|
|
ELSE
|
|
LET ncffechaVencimiento = FALSE
|
|
END IF
|
|
LET ldescuento = (z.cantidad_2 / 100) * ((z.precio*x.prima_us)*z.cantidad)
|
|
LET xdireccion = x.direccion
|
|
IF x.porc_itbi > 0 THEN
|
|
LET valor_itbis = ((z.cantidad * (z.precio*x.prima_us))-ldescuento) *(x.porc_itbi /100)
|
|
ELSE
|
|
LET valor_itbis = 0
|
|
END IF
|
|
|
|
# LET x.desc_valor = x.desc_valor * x.prima_us
|
|
LET x.desc_valor = x.desc_valor
|
|
# LET neto_s_imp = (x.sub_total*x.prima_us) -x.desc_valor
|
|
LET neto_s_imp = (x.sub_total) -x.desc_valor
|
|
LET x.nombre = "(",x.tipo_cliente USING "<<","-",x.sec_cliente USING "<<<<<<<<<<",")",x.nombre CLIPPED
|
|
# LET z.precio = z.precio * x.prima_us
|
|
# LET z.monto_fact = z.monto_fact * x.prima_us
|
|
# LET x.itbi = x.itbi * x.prima_us
|
|
|
|
|
|
PRINTX z.cod_n,z.cod_grupo,z.cod_tipo,z.cod_sec,
|
|
z.cantidad,z.unidad_med ,
|
|
z.descrip_esp ,marca , modelo ,
|
|
isub_total,ineto,ldescuento,z.monto_fact,
|
|
direccion_sucursal,p_companias.telefono,
|
|
p_companias.fax,p_companias.rnc,x.cond_pago, descripcion,
|
|
pcodigodgii,x.factura , x.fecha_factura,
|
|
x.sec_vend,x.nombre_vend ,x.nombre,x.tipo_cliente,
|
|
x.sec_cliente,x.conduce, # x.orden
|
|
x.direccion ,
|
|
x.porc_desc , x.desc_valor,z.precio,
|
|
neto_s_imp,
|
|
x.porc_itbi, x.itbi,
|
|
celular,x.prima_us,rnc,
|
|
p_companias.nombre,telefono,
|
|
ch_ncf,descrip_cond,observacion,
|
|
imagen,chventas,simbolo,x.nombre_tran,x.placa_transp,xbodega,
|
|
conduce_alm,ch_fecha,fecha_vencimiento,vimagen,
|
|
cliente_bas.telefono,cliente_bas.telex,descripcion_bodega,
|
|
condicion.descrip,xconduce_almacen,sucnombre,x.orden,pcotizacion,
|
|
valor_itbis,dataqrcode,xhash,chfechafirmadigital,muestraQR,
|
|
ncffechaVencimiento,cemail,
|
|
chbruto,chdescuento,chsubtotal,chitbis,chneto,x.total_fact,x.sub_total
|
|
|
|
|
|
|
|
END REPORT
|
|
|