ctasapagar/l_traspaso.js

513 lines
23 KiB
JavaScript

//////////////////////////////////////
// //
// JavaScript Functions //
// //
//////////////////////////////////////
function wrtraspaso(text){
// writeln("w_outtraspaso.document.write('"+text+"\\n');");
fileRpt.writeln(text);
}
function chk_traspaso() {
var query;
c_query = database.cursor("select * FROM traspaso WHERE uid=\'" + request.uid+ "\'");
if (c_query.next()) {
request.criterio=StringClip(false,c_query.criterio);
request.f_traspaso=StringClip(false,c_query.f_traspaso);
request.f_emision=StringClip(false,c_query.f_emision);
request.f_nro_doc=StringClip(false,c_query.f_nro_doc);
request.sel_order=StringClip(false,c_query.sel_order);
writeln(' alert("\\r Existe un Traspaso de '+request.f_traspaso+' Pendientes de Confirmación !!!"); ');
request.opt_traspaso="true";
}
c_query.close();
if (request.opt_traspaso)
return true
else
return false
}
function insertaTrasp() {
status=database.execute('INSERT INTO traspaso(' +
' uid,' +
' sel_order,'+
' criterio,'+
' f_traspaso,'+
' f_emision,'+
' f_nro_doc ) VALUES ("' + request.uid+ '","' +
request.sel_order + '","'+
request.criterio + '","'+
request.f_traspaso + '","'+
request.f_emision + '","'+
request.f_nro_doc + '")');
if ( status != 0 ) {
client.is_trans=false;
database.rollbackTransaction();
redirect(addClient('error.html?alert=14'));
}
}
function report_traspaso() {
client.is_trans=true;
database.beginTransaction();
insertaTrasp();
out_traspaso();
database.commitTransaction();
client.is_trans=false;
}
function rpt_traspaso_Doc() {
writeln('w_carta=window.open("'+urlDoc+'","w_traspaso","toolbar=yes,directories=no,menubar=yes,status=no,scrollbars=yes,resizable=yes,width=600,height=500");');
}
function rpt_traspaso_Data() {
writeln('w_carta=window.open("'+urlData+'","w_traspaso","toolbar=yes,directories=no,menubar=yes,status=no,scrollbars=yes,resizable=yes,width=600,height=500");');
}
function cleanup_traspaso() {
// Borramos en tabla de pagos datos del usuario
status=database.execute("DELETE FROM traspaso WHERE uid=\'" + request.uid+ "\'");
return;
}
function out_traspaso() {
var Clave="-";
var SumaTotal=0;
var fileRpt=new File(nomDoc);
fileRpt.open("w");
var fileData=new File(nomData);
fileData.open("w");
fileRpt.writeln('<HTML>');
fileRpt.writeln('<HEAD></HEAD>');
fileRpt.writeln('<BODY>');
fileRpt.writeln('<B><I><CENTER> Traspaso de Facturas - '+request.f_traspaso+' - </B></I>');
if (request.f_traspaso=="gasto")
fileRpt.writeln('<FONT SIZE=1>');
else
fileRpt.writeln('<FONT SIZE=1>');
fileRpt.writeln('<PRE> ');
fileRpt.writeln('<HR>');
if (request.f_traspaso=="gasto")
fileRpt.writeln('<B>N.Doc. Línea Fecha Centro Cuenta Cv. DEBE HABER C o n c e p t o F. Vto. Contrap.</B>');
else {
fileRpt.writeln('<TABLE ALIGN="CENTER" BORDER=0>');
fileRpt.writeln('<B>N.Doc. Línea Fecha Centro Cuenta Cv. DEBE HABER C o n c e p t o F. Vto. Contrap.</B>');
}
fileRpt.writeln('<HR>');
linea=" ";
// c_traspaso = database.cursor("SELECT * FROM traspaso WHERE uid="+ request.uid+" ORDER BY nro_reg ");
var nlin=1
var nro_doc=NroUnformat(request.f_nro_doc);
while (c_traspdocs.next()) {
if (request.f_traspaso=="pago")
c_traspaso = database.cursor("SELECT * FROM facturas,proveedores WHERE facturas.nif=proveedores.nif "+
" and nro_doc_pago='"+c_traspdocs.nro_doc_pago+"' "+
" ORDER BY " + request.sel_order);
if (request.f_traspaso=="gasto")
c_traspaso = database.cursor("SELECT * FROM facturas,proveedores WHERE facturas.nif=proveedores.nif "+
" and nro_reg='"+c_traspdocs.nro_reg+"' "+
" ORDER BY " + request.sel_order);
if (request.f_traspaso=="vto")
c_traspaso = database.cursor("SELECT * FROM facturas,proveedores WHERE facturas.nif=proveedores.nif "+
" and nro_reg_vto='"+c_traspdocs.nro_reg_vto+"' "+
" ORDER BY " + request.sel_order);
while (c_traspaso.next()) {
request.razon_social=c_traspaso.razon_social;
if ( request.f_traspaso=="pago" && Clave == c_traspaso.nro_doc_pago )
continue;
if ( request.f_traspaso=="vto" && Clave == c_traspaso.nro_reg_vto )
continue ;
jusnum="";
nrolin=1;
if (request.f_traspaso!="vto")
CursorTabla("acf","nro_reg","=\'"+c_traspaso.nro_reg+"\' order by nro_lin ",false,"");
if (request.f_traspaso=="gasto") {
fileRpt.writeln('<TABLE ALIGN="CENTER" BORDER=0>');
while (c_aptectasfra.next()) {
make_apte(nro_doc,"",StringClip(false,c_traspaso.cta_contable),"",nrolin,0,jusnum,c_aptectasfra.tipoapte);
// if ( nrolin+1 > request.maxLins ) {
// skipTopPage(nrolin,request.maxLins);
// nrolin=0;
// }
if (c_aptectasfra.tipoapte != "I1" ||
c_aptectasfra.tipoapte != "I2" ||
c_aptectasfra.tipoapte != "I3" )
fileData.writeln(request.linea);
fileRpt.writeln(request.lindoc);
nrolin++;
if ( jusnum == "" )
jusnum="0";
}
fileRpt.writeln('</TABLE>');
} else {
if (request.f_traspaso!="vto")
c_aptectasfra.next();
// fileRpt.writeln('<TABLE ALIGN="CENTER" BORDER=0>');
if (request.f_traspaso=="pago")
CursorTabla("fa","nro_doc_pago","=\'"+c_traspaso.nro_doc_pago+"\'",true,"");
if (request.f_traspaso=="vto")
CursorTabla("fa","nro_reg_vto","=\'"+c_traspaso.nro_reg_vto+"\'",true,"");
SumaTotal=0;
request.cta_contable=c_traspaso.cta_contable;
request.f_emision_pago=datetoString(c_traspaso.f_emision_pago);
request.is_remesa ="N";
while ( true ) {
request.nro_reg=c_facturas.nro_reg;
request.nro_fra=c_facturas.nro_fra;
request.nro_doc_pago=c_facturas.nro_doc_pago;
request.importe_total=c_facturas.importe_total;
if ( c_traspaso.nro_doc_pago != c_facturas.nro_doc_pago )
request.is_remesa ="S";
if (request.f_traspaso=="pago") {
traspaso_pago(nro_doc,nrolin,"D");
if (c_facturas.tipo_doc_pago == "1" ) {
fileData.writeln(request.linea);
fileRpt.writeln(request.lindoc);
nrolin++;
traspaso_pago(nro_doc,nrolin,"H");
Clave=c_traspaso.nro_doc_pago;
}
}
if (request.f_traspaso=="vto")
traspaso_vto(nro_doc,nrolin,"D");
fileData.writeln(request.linea);
fileRpt.writeln(request.lindoc);
nrolin++;
SumaTotal=parseFloat(c_facturas.importe_total)+parseFloat(SumaTotal);
if (!c_facturas.next())
break;
}
c_facturas.close();
request.nro_reg=c_traspaso.nro_reg;
request.nro_fra=c_traspaso.nro_fra;
request.nro_doc_pago=c_traspaso.nro_doc_pago;
request.importe_total=SumaTotal;
if (request.f_traspaso=="pago" && c_traspaso.tipo_doc_pago == "2" ) {
traspaso_pago(nro_doc,nrolin,"H");
Clave=c_traspaso.nro_doc_pago;
fileData.writeln(request.linea);
fileRpt.writeln(request.lindoc);
nrolin++;
}
if (request.f_traspaso=="vto") {
traspaso_vto(nro_doc,nrolin,"H");
Clave=c_traspaso.nro_reg_vto;
fileData.writeln(request.linea);
fileRpt.writeln(request.lindoc);
nrolin++;
}
// fileRpt.writeln('</TABLE>');
}
if (request.f_traspaso!="vto")
c_aptectasfra.close();
fileRpt.writeln('<HR>');
nro_doc++;
}
c_traspaso.close();
}
c_traspdocs.close();
fileRpt.writeln('</TABLE>');
request.lindoc="TOTALES DEBE : "+NroFormat(SumaDebe,NF11);
// request.lindoc=request.lindoc.substring(0,46)+NroFormat(SumaDebe,NF11)+NroFormat(SumaHaber,NF11)+""
fileRpt.writeln(request.lindoc);
request.lindoc="TOTALES HABER: "+NroFormat(SumaHaber,NF11);
fileRpt.writeln(request.lindoc);
fileRpt.writeln('<PRE>');
fileRpt.writeln('</FONT>');
fileRpt.writeln('</BODY>');
fileRpt.writeln('</HTML>');
fileRpt.close();
fileData.close();
}
function traspaso_pago(nro_doc,nrolin,tipoApte) {
var DocNro="";
var s_cta="";
s_banco=parseInt(c_traspaso.cod_banco)+"";
lon=s_banco.length;
request.d_cod_cta=request.cta_contable;
if (c_traspaso.tipo_doc_pago == "1" )
s_cta=request.pag_hpag;
if (c_traspaso.tipo_doc_pago == "2" )
s_cta=request.pag_htal;
s_lon=s_cta.length;
request.h_cod_cta=s_cta.substring(0,s_lon-lon)+s_banco;
s_lon=request.d_cod_cta.length;
if ( tipoApte == "H") {
DocNro=StringClip(false,request.nro_doc_pago)+"";
make_apte(nro_doc,request.h_cod_cta,request.d_cod_cta,"H",nrolin,request.importe_total,DocNro,jusnum,"");
}
if ( tipoApte == "D") {
DocNro=StringClip(false,request.nro_fra)+" "+request.nro_reg.substring(4,10);
make_apte(nro_doc,request.d_cod_cta,request.h_cod_cta,"D",nrolin,request.importe_total,DocNro,jusnum,"");
}
}
function traspaso_vto(nro_doc,nrolin,tipoApte) {
var DocNro="";
var s_cta="";
s_banco=parseInt(c_traspaso.cod_banco)+"";
lon=s_banco.length;
if (c_traspaso.tipo_doc_pago == "1" )
s_cta=request.vto_dpag;
if (c_traspaso.tipo_doc_pago == "2" )
s_cta=request.vto_dtal;
s_lon=s_cta.length;
request.d_cod_cta=s_cta.substring(0,s_lon-lon)+s_banco;
s_lon=request.vto_h.length;
request.h_cod_cta=request.vto_h.substring(0,s_lon-lon)+s_banco;
DocNro=StringClip(false,request.nro_doc_pago);
if ( tipoApte == "H") {
DocNro=StringClip(false,request.nro_doc_pago);
if ( request.is_remesa == "S" ) {
lon=c_traspaso.nro_reg_vto.length;
request.razon_social="REMESA "+c_traspaso.nro_reg_vto.substring(5,lon);
}
make_apte(nro_doc,request.h_cod_cta,request.d_cod_cta,"H",nrolin,request.importe_total,DocNro,jusnum,"");
}
if ( tipoApte == "D") {
if ( request.is_remesa == "S" ) {
CursorTabla("pr","nif","=\'"+StringClip(true,c_facturas.nif)+"\'",false,false);
request.razon_social=StringClip(false,c_proveedores.razon_social);
c_proveedores.close();
}
make_apte(nro_doc,request.d_cod_cta,request.h_cod_cta,"D",nrolin,request.importe_total,DocNro,jusnum,"");
DocNro=StringClip(false,request.nro_fra)+" "+request.nro_reg.substring(4,10);
}
}
function make_apte(nro_doc,cod_cta,c_cod_cta,tipo_apte,nl,Cantidad,DocNro,jusnum,tipoapte) {
make_lindoc(nro_doc,cod_cta,c_cod_cta,tipo_apte,nl,Cantidad,DocNro,jusnum,tipoapte);
if (tipoapte != "I1" || tipoapte != "I2" || tipoapte != "I3" )
make_linea(nro_doc,cod_cta,c_cod_cta,tipo_apte,nl,Cantidad,DocNro,jusnum,tipoapte);
}
function make_lindoc(nro_doc,cod_cta,c_cod_cta,tipo_apte,nl,Cantidad,DocNro,jusnum,tipoapte) {
linea=" ";
request.lindoc="";
// cadena=parseInt(nro_doc)+"";
cadDoc="";
if ( c_traspaso.tipo_doc_pago == "1" )
cadDoc="P/";
if ( c_traspaso.tipo_doc_pago == "2" )
cadDoc="T/";
if (request.f_traspaso=="gasto") {
cadena=StringClip(false,c_aptectasfra.concepto);
}
// Una "P" delante del nro_doc ahora DocNro
request.lindoc=cadDoc+DocNro+" ";
cadena=parseInt(nl)+"";
request.lindoc=request.lindoc+cadena;
// Fecha de documento
s_fechadoc=request.f_emision;
if (request.f_traspaso=="pago")
s_fechadoc=request.f_emision_pago;
cadena=datetoNString(s_fechadoc);
lon=cadena.length;
request.lindoc=request.lindoc+" "+s_fechadoc;
s_fechadoc=cadena;
// Cod. Centro para el listado
cadena=StringClip(false,c_traspaso.cod_centro);
request.lindoc=request.lindoc+" "+cadena;
// Cod. Cta.
if (request.f_traspaso=="gasto")
s_cta=StringClip(false,c_aptectasfra.cod_cta);
if (request.f_traspaso=="pago")
s_cta=StringClip(false,cod_cta)+"";
if (request.f_traspaso=="vto")
s_cta=StringClip(false,cod_cta)+"";
request.lindoc=request.lindoc+" "+s_cta;
lon=s_cta.length;
// Clave
if (request.f_traspaso=="gasto")
cadena=c_aptectasfra.clave+"";
if (request.f_traspaso=="pago")
cadena=request.f_clave+"";
if (request.f_traspaso=="vto")
cadena=request.f_clave+"";
request.lindoc=request.lindoc+" "+cadena;
clave=cadena;
// Importe
if (request.f_traspaso=="gasto") {
nro=c_aptectasfra.importe;
tipo_apte=c_aptectasfra.tipo_apte;
} else {
nro=Cantidad;
}
if ( nro < 0 ) {
nro=nro*-1;
if (request.f_traspaso=="pago" && tipo_apte == "D")
cadDoc="";
if ( tipo_apte == "D" )
tipo_apte="H";
else
tipo_apte="D";
}
if (tipo_apte == "H") {
SumaHaber=SumaHaber+nro;
request.lindoc=request.lindoc+" "+NroFormat(nro,NF9)+" ";
} else {
SumaDebe=SumaDebe+nro;
request.lindoc=request.lindoc+" "+NroFormat(nro,NF9)+" ";
};
cadena=NroUnformat(NroFormat(nro,NF9))+"";
// Concepto para el listado
if (request.f_traspaso=="gasto") {
cadena=StringClip(false,c_aptectasfra.concepto);
}
if (request.f_traspaso=="pago" && tipo_apte == "H")
cadena=cadDoc+DocNro+" "+StringClip(false,request.razon_social);
if (request.f_traspaso=="pago" && tipo_apte == "D") {
cadena=DocNro+StringClip(false,request.razon_social);
}
if (request.f_traspaso=="vto" && tipo_apte == "D")
cadena=cadDoc+DocNro+" "+StringClip(false,request.razon_social);
if (request.f_traspaso=="vto" && tipo_apte == "H") {
if ( request.is_remesa == "S" )
cadena=StringClip(false,request.razon_social);
else
cadena=cadDoc+DocNro+" "+StringClip(false,request.razon_social);
}
lon=30; // lon=cadena.length;
s_cadena=cadena+linea;
request.lindoc=request.lindoc+" "+s_cadena.substring(0,lon);
// Vto.
if (request.f_traspaso=="gasto") {
s_cadena=" ";
cadena=s_cadena;
}
else {
s_cadena=datetoString(c_traspaso.vto_pago);
cadena=datetoNString(s_cadena);
}
request.lindoc=request.lindoc+" "+s_cadena;
lon=cadena.length;
// Contrapartida para el listado
cadena=StringClip(false,c_cod_cta);
lon=cadena.length;
request.lindoc=request.lindoc+" "+cadena;
}
function make_linea(nro_doc,cod_cta,c_cod_cta,tipo_apte,nl,Cantidad,DocNro,jusnum,tipoapte) {
linea=" ";
carsep="|";
request.linea="";
// apteid, asient, diario, moneda, cambio
request.linea="0"+carsep+"DG"+carsep+"PTA"+carsep+"1.0"+carsep;
cadena=StringClip(false,c_traspaso.cod_centro);
// centro de coste, seccion, juser
request.linea=request.linea+cadena+carsep+"A"+carsep+"A"+carsep+jusnum+carsep;
request.linea=request.linea+"P"+carsep;
cadDoc="";
if ( c_traspaso.tipo_doc_pago == "1" )
cadDoc="P/";
if ( c_traspaso.tipo_doc_pago == "2" )
cadDoc="T/";
if (request.f_traspaso=="gasto") {
cadena=StringClip(false,c_aptectasfra.concepto);
}
request.linea=request.linea+cadDoc+DocNro+carsep;
// Fecha de documento
s_fechadoc=request.f_emision;
if (request.f_traspaso=="pago")
s_fechadoc=request.f_emision_pago;
cadena=datetoNString(s_fechadoc);
lon=cadena.length;
request.linea=request.linea+cadena+carsep;
s_fechadoc=cadena;
// Cod. Cta.
if (request.f_traspaso=="gasto")
s_cta=StringClip(false,c_aptectasfra.cod_cta);
if (request.f_traspaso=="pago")
s_cta=StringClip(false,cod_cta)+"";
if (request.f_traspaso=="vto")
s_cta=StringClip(false,cod_cta)+"";
lon=s_cta.length;
request.linea=request.linea+s_cta.substring(0,3)+"."+s_cta.substring(4,lon)+carsep+carsep;
// Concepto
if ( c_traspaso.tipo_doc_pago == "1" )
cadDoc="P/";
if ( c_traspaso.tipo_doc_pago == "2" )
cadDoc="T/";
if (request.f_traspaso=="gasto") {
cadena=StringClip(false,c_aptectasfra.concepto);
}
if (request.f_traspaso=="pago" && tipo_apte == "H")
cadena=cadDoc+DocNro+" "+StringClip(false,request.razon_social);
if (request.f_traspaso=="pago" && tipo_apte == "D") {
cadena=DocNro+StringClip(false,request.razon_social);
}
if (request.f_traspaso=="vto" && tipo_apte == "D")
cadena=cadDoc+DocNro+" "+StringClip(false,request.razon_social);
if (request.f_traspaso=="vto" && tipo_apte == "H") {
if ( request.is_remesa == "S" )
cadena=StringClip(false,request.razon_social);
else
cadena=cadDoc+DocNro+" "+StringClip(false,request.razon_social);
}
request.linea=request.linea+cadena+carsep;
// Importe
if (request.f_traspaso=="gasto") {
nro=c_aptectasfra.importe;
tipo_apte=c_aptectasfra.tipo_apte;
} else {
nro=Cantidad;
}
cadena=NroUnformat(NroFormat(nro,NF9))+"";
if ( tipo_apte == "D" )
request.linea=request.linea+cadena+carsep+carsep;
if ( tipo_apte == "H" )
request.linea=request.linea+carsep+cadena+carsep;
// Contrapartida nula aptes. en tabla
request.linea=request.linea+carsep;
// Fecha valor, sistem
request.linea=request.linea+s_fechadoc+carsep+"A"+carsep+"0"+carsep+"0"+carsep;
// Tipo documento
if ( s_cta.substring(0,1) == "2" )
request.linea=request.linea+"I"+carsep;
else
request.linea=request.linea+"R"+carsep+"N"+carsep;
// Código de Tercero cta_contable
request.linea=request.linea+c_traspaso.cta_contable+carsep;
tipIVA="";
if (tipoapte == "P1"){
if ( c_traspaso.iva_1 == "16")
tipIVA="RE"
request.linea=request.linea+tipIVA+carsep+"1"+carsep;
}
if (tipoapte == "P2"){
if ( c_traspaso.iva_2 == "7" )
tipIVA="OR"
request.linea=request.linea+tipIVA+carsep+"1"+carsep;
}
if (tipoapte == "P3"){
if ( c_traspaso.iva_3 == "4" )
tipIVA="SR"
request.linea=request.linea+tipIVA+carsep+"1"+carsep;
}
if (request.f_traspaso=="gasto")
cadena=c_aptectasfra.clave+"";
if (request.f_traspaso=="pago")
cadena=request.f_clave+"";
if (request.f_traspaso=="vto")
cadena=request.f_clave+"";
// Vto.
if (request.f_traspaso=="gasto") {
s_cadena=" ";
cadena=s_cadena;
}
else {
s_cadena=datetoString(c_traspaso.vto_pago);
cadena=datetoNString(s_cadena);
}
lon=cadena.length;
request.linea=request.linea+cadena+linea;
// Contrapartida para el listado
cadena=StringClip(false,c_cod_cta);
lon=cadena.length;
request.linea=request.linea+cadena;
//texto="p_contracta="+p_contracta+" lon="+lon+" c_cod_cta="+c_cod_cta
//debug(texto)
//debug(request.linea)
//debug(request.linea)
}