//////////////////////////////////////
//                                  //
//     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 ;
      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);
//             if ( nrolin+1 > request.maxLins ) {
//                  skipTopPage(nrolin,request.maxLins);
//                  nrolin=0;
//             }
             fileData.writeln(request.linea);
             fileRpt.writeln(request.lindoc);
             nrolin++;
          }   
          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);
        }
        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);
        }
}

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);
        }
        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);
             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) {
             linea="                                                                                                                        ";   
             request.linea=linea;
             request.lindoc="";
             cadena=parseInt(nro_doc)+"";
             lon=cadena.length;
             request.linea=request.linea.substring(0,p_nro_doc-lon)+cadena+linea;
             cadena=parseInt(nl)+"";
             lon=cadena.length;
             request.linea=request.linea.substring(0,p_nro_lin-lon)+cadena+linea;
             request.lindoc=StringClip(false,request.linea);
             s_cadena=request.f_emision;
             if (request.f_traspaso=="pago")
                 s_cadena=request.f_emision_pago;
             cadena=datetoNString(s_cadena);
             lon=cadena.length;
             request.linea=request.linea.substring(0,p_f_cont-lon)+cadena+linea;
             request.linea=request.linea.substring(0,p_f_emis-lon)+cadena+linea;             
             request.lindoc=request.lindoc+"  "+s_cadena;
             cadena=StringClip(false,c_traspaso.cod_centro);
             request.lindoc=request.lindoc+"  "+cadena;
             lon=cadena.length;
             request.linea=request.linea.substring(0,p_centro-lon)+cadena+linea;
             if (request.f_traspaso=="gasto")
                 cadena=StringClip(false,c_aptectasfra.cod_cta);
             if (request.f_traspaso=="pago")
                 cadena=StringClip(false,cod_cta)+"";
             if (request.f_traspaso=="vto")
                 cadena=StringClip(false,cod_cta)+"";
             request.lindoc=request.lindoc+"  "+cadena;
             lon=cadena.length;
             request.linea=request.linea.substring(0,p_cta-lon)+cadena+linea;
             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;
             if (request.f_traspaso=="gasto") {
                  nro=c_aptectasfra.importe;
                  tipo_apte=c_aptectasfra.tipo_apte;
             } else {    
                     nro=Cantidad;
             }
             if ( c_traspaso.tipo_doc_pago == "1" ) 
                cadDoc="P/";
             if ( c_traspaso.tipo_doc_pago == "2" )              
                cadDoc="T/";
             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=tipo_apte;
             lon=cadena.length;
             request.linea=request.linea.substring(0,p_tipo_apte-lon)+cadena+linea;
             cadena=NroUnformat(NroFormat(nro,NF9))+"";
             lon=cadena.length;
             request.linea=request.linea.substring(0,p_importe-lon)+cadena+linea;
             lon=clave.length;
             request.linea=request.linea.substring(0,p_clave-lon)+clave+linea;
             if (request.f_traspaso=="gasto") {
                 cadena=StringClip(false,c_aptectasfra.concepto);
//                   cadena=StringClip(false,c_traspaso.nro_fra)+" "+c_traspaso.nro_reg.substring(4,10)+" "+StringClip(false,request.razon_social);
             }
             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=StringClip(false,c_aptectasfra.concepto);
                   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);
             request.linea=request.linea.substring(0,p_concepto-lon)+cadena.substring(0,lon)+linea;
             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;
             request.linea=request.linea.substring(0,p_vto-lon)+cadena+linea;
             cadena=StringClip(false,c_cod_cta);
             lon=cadena.length;
//texto="p_contracta="+p_contracta+" lon="+lon+" c_cod_cta="+c_cod_cta
//debug(texto)
//debug(request.linea)
             request.lindoc=request.lindoc+"  "+cadena;
//             if (request.f_traspaso=="pago" && tipo_apte == "H" && cod_cta.substring(0,2) != "41")      
//                 lon=lon-4;
             request.linea=request.linea.substring(0,p_contracta-lon)+cadena;
//debug(request.linea)
}