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