itecnogest Miembro |
# Publicado: 7 Ene 2010 17:28
Hola a tod@s
Implementar IBAN y SWIFT en la impresión de facturas
Creado dos funciones en el script flfactinfo.qs del modulo de impresiones.
function cuentaIBANFacturaCli(nodo:FLDomNode, campo:String):String {
return this.ctx.oficial_cuentaIBANFacturaCli(nodo, campo);
}
function cuentaSWIFTFacturaCli(nodo:FLDomNode, campo:String):String {
return this.ctx.oficial_cuentaSWIFTFacturaCli(nodo, campo);
}
////////////////////////////////////////////////// /////////////////////////////////
/************************************************* ****************
* Funcion : cuentaIBANFacturaCli
* Descripcion: Recupera cuenta IBAN Cliente o Forma de Pago
*
* Inicio : Enero 2010
* Modificado :
************************************************** ***************/
function oficial_cuentaIBANFacturaCli(nodo:FLDomNode, campo:String):String
{
var util:FLUtil = new FLUtil;
var datosCuenta:String;
var ret:String;
var codCliente:String = nodo.attributeValue("facturascli.codcliente");
var codPago:String = nodo.attributeValue("facturascli.codpago");
var domiciliado:Boolean = util.sqlSelect("formaspago", "domiciliado", "codpago = '" + codPago + "'");
var codCuenta:String;
var tipoCuenta:String;
var datosCuenta:String;
// Si no hay cliente, se busca la forma de pago
if (!codCliente)
tipoCuenta = "formaPago";
else
if (domiciliado)
tipoCuenta = "domiciliado";
else
tipoCuenta = "formaPago";
if (tipoCuenta == "domiciliado") {
codCuenta = util.sqlSelect("clientes", "codcuentadom", "codcliente = '" + codCliente + "'");
if (codCuenta)
datosCuenta = util.sqlSelect("cuentasbcocli", "iban", "codcuenta = " + codCuenta );
}
if (!codCuenta) {
codCuenta = util.sqlSelect("formaspago", "codcuenta", "codpago = '" + codPago + "'");
if (!codCuenta)
return "";
datosCuenta = util.sqlSelect("cuentasbanco", "iban", "codcuenta = " + codCuenta );
}
if (datosCuenta.isEmpty())
return "";
ret = "IBAN " + datosCuenta.substring(0,4) + " " + datosCuenta.substring(4,8) + " " + datosCuenta.substring(8,12) + " " + datosCuenta.substring(12,16) + " " + datosCuenta.substring(16,20) + " " + datosCuenta.substring(20,24);
return ret;
}
/************************************************* ****************
* Funcion : cuentaSWIFTFacturaCli
* Descripcion: Recupera cuenta SWIFT Cliente o Forma de Pago
*
* Inicio : Enero 2010
* Modificado :
************************************************** ***************/
function oficial_cuentaSWIFTFacturaCli(nodo:FLDomNode, campo:String):String
{
var util:FLUtil = new FLUtil;
var datosCuenta:String;
var ret:String;
var codCliente:String = nodo.attributeValue("facturascli.codcliente");
var codPago:String = nodo.attributeValue("facturascli.codpago");
var domiciliado:Boolean = util.sqlSelect("formaspago", "domiciliado", "codpago = '" + codPago + "'");
var codCuenta:String;
var tipoCuenta:String;
var datosCuenta:String;
// Si no hay cliente, se busca la forma de pago
if (!codCliente)
tipoCuenta = "formaPago";
else
if (domiciliado)
tipoCuenta = "domiciliado";
else
tipoCuenta = "formaPago";
if (tipoCuenta == "domiciliado") {
codCuenta = util.sqlSelect("clientes", "codcuentadom", "codcliente = '" + codCliente + "'");
if (codCuenta)
datosCuenta = util.sqlSelect("cuentasbcocli", "swift", "codcuenta = " + codCuenta );
}
if (!codCuenta) {
codCuenta = util.sqlSelect("formaspago", "codcuenta", "codpago = '" + codPago + "'");
if (!codCuenta)
return "";
datosCuenta = util.sqlSelect("cuentasbanco", "swift", "codcuenta = " + codCuenta );
}
if (datosCuenta.isEmpty())
return "";
ret = datosCuenta;
return ret;
}
Llamada desde el archivo de impresion i_facturascli.ar o i_facturascli.kut
Para la impresión del IBAN
FunctionName = "flfactinfo.cuentaIBANFacturaCli" CalculationType=6
Para la impresión del SWIFT
FunctionName = "flfactinfo.cuentaSWIFTFacturaCli" CalculationType=6
Saludos
Jordi Marco
jordi.marco@itecnogest.com
ITECNOGEST S.L.
Silver Partner
|