function uf_print_cierrecuentas_cargo($ai_total,$as_cargarcargos,$as_tipo)
	{	
		/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		//	     Function: uf_print_cierrecuentas_cargo
		//		   Access: private
		//	    Arguments: ai_total  // Total de filas a imprimir
		//                 as_cargarcargos // Si cargamos los cargos ó solo pintamos
		//                 as_tipo // Tipo de SEP si es de bienes ó de servicios
		//	  Description: Método que imprime el grid de las cuentas presupuestarias de los cargos
		//	   Creado Por: Ing. Yesenia Moreno/ Ing. Luis Lang
		// Modificado Por: Ing. Yozelin Barragan
		// Fecha Creación: 17/03/2007								Fecha Última Modificación : 12/05/2007
		/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		global $io_grid, $io_funciones_sep,$la_cuentacargo,$li_estmodest,$li_loncodestpro1,$li_loncodestpro2,$li_loncodestpro3,
	 	       $li_loncodestpro4,$li_loncodestpro5;
		require_once("../../shared/class_folder/class_datastore.php");
		$io_dscuentas=new class_datastore();
		
		// Titulos el Grid
		$lo_title[1]="Crédito";
		$lo_title[2]="Estructura Presupuestaria";
		$lo_title[3]="Cuenta";
		$lo_title[4]="Monto";
		//$lo_title[5]=""; 
		$ls_codpro="";
		// Recorrido del Grid de Cuentas Presupuestarias del Cargo
		for($li_fila=1;$li_fila<=$ai_total;$li_fila++)
		{ 
			$ls_cargo= trim($io_funciones_sep->uf_obtenervalor("txtcodcar".$li_fila,""));
			$li_moncue= $io_funciones_sep->uf_obtenervalor("txtmoncar".$li_fila,""); 
			$ls_cuenta= trim($io_funciones_sep->uf_obtenervalor("txtcodspgcre".$li_fila,""));
		    $ls_codpro= $io_funciones_sep->uf_obtenervalor("txtcodgascre".$li_fila,"");
			$ls_estcla= $io_funciones_sep->uf_obtenervalor("txtstatuscre".$li_fila,"");
			$li_moncue = str_replace(".","",$li_moncue);
			$li_moncue = str_replace(",",".",$li_moncue);
		    $ls_codestpro1 = substr($ls_codpro,0,25); 
			$ls_codestpro2 = substr($ls_codpro,25,25); 
			$ls_codestpro3 = substr($ls_codpro,50,25); 
			$ls_codestpro4 = substr($ls_codpro,75,25); 
			$ls_codestpro5 = substr($ls_codpro,100,25);	
			if($ls_cuenta!="")
			{
				$valores["codcargo"]=$ls_cargo;
				$valores["cuentacar"]=$ls_cuenta;
				$valores["estcla"]=$ls_estcla;
				$valores["codestpro1"]=$ls_codestpro1;
				$valores["codestpro2"]=$ls_codestpro2;
				$valores["codestpro3"]=$ls_codestpro3;
				$valores["codestpro4"]=$ls_codestpro4;
				$valores["codestpro5"]=$ls_codestpro5;
				$ll_row_found=$io_dscuentas->findValues($valores,"codcargo") ;
				if($ll_row_found>0)
				{  
					$ldec_monto=0;
					$ldec_monto=$io_dscuentas->getValue("moncuecar",$ll_row_found);
					$ldec_monto=$ldec_monto + $li_moncue;
					$io_dscuentas->updateRow("moncuecar",$ldec_monto,$ll_row_found);	
				}
				else
				{
					$io_dscuentas->insertRow("codcargo",$ls_cargo);			
					$io_dscuentas->insertRow("codprocar",$ls_codpro);			
					$io_dscuentas->insertRow("cuentacar",$ls_cuenta);			
					$io_dscuentas->insertRow("moncuecar",$li_moncue);
					$io_dscuentas->insertRow("estcla",$ls_estcla);
					$io_dscuentas->insertRow("codestpro1",$ls_codestpro1);
					$io_dscuentas->insertRow("codestpro2",$ls_codestpro2);
					$io_dscuentas->insertRow("codestpro3",$ls_codestpro3);
					$io_dscuentas->insertRow("codestpro4",$ls_codestpro4);
					$io_dscuentas->insertRow("codestpro5",$ls_codestpro5);	
				}		
			}
		}
		if($as_cargarcargos=="1")
		{	// si los cargos se deben cargar recorremos el arreglo de cuentas
			// que se lleno con los cargos 
			$li_cuenta=count($la_cuentacargo)-1;
			for($li_fila=1;($li_fila<=$li_cuenta);$li_fila++)
			{
				$ls_cargo        = trim($la_cuentacargo[$li_fila]["cargo"]);
				$ls_cuenta       = trim($la_cuentacargo[$li_fila]["cuenta"]);
				$ls_programatica = trim($la_cuentacargo[$li_fila]["programatica"]);
				$ls_estcla       = trim($la_cuentacargo[$li_fila]["estcla"]);
				$li_moncue="0.00";
				$ls_codestpro1 = substr($ls_programatica,0,25);
			    $ls_codestpro2 = substr($ls_programatica,25,25);
			    $ls_codestpro3 = substr($ls_programatica,50,25);
			    $ls_codestpro4 = substr($ls_programatica,75,25);
			    $ls_codestpro5 = substr($ls_programatica,100,25); 
				if($ls_cuenta!="")
				{
					$valores["codcargo"]=$ls_cargo;
					$valores["cuentacar"]=$ls_cuenta;
					$valores["estcla"]=$ls_estcla;
					$valores["codestpro1"]=$ls_codestpro1;
					$valores["codestpro2"]=$ls_codestpro2;
					$valores["codestpro3"]=$ls_codestpro3;
					$valores["codestpro4"]=$ls_codestpro4;
					$valores["codestpro5"]=$ls_codestpro5;
					$ll_row_found=$io_dscuentas->findValues($valores,"codcargo") ;
					if($ll_row_found>0)
					{  
						$ldec_monto=0;
						$ldec_monto=$io_dscuentas->getValue("moncuecar",$ll_row_found);
						$ldec_monto=$ldec_monto + $li_moncue;
						$io_dscuentas->updateRow("moncuecar",$ldec_monto,$ll_row_found);	
					}
					else
					{
						$io_dscuentas->insertRow("codcargo",$ls_cargo);			
						$io_dscuentas->insertRow("codprocar",$ls_programatica);			
						$io_dscuentas->insertRow("cuentacar",$ls_cuenta);			
						$io_dscuentas->insertRow("moncuecar",$li_moncue);
						$io_dscuentas->insertRow("estcla",$ls_estcla);
						$io_dscuentas->insertRow("codestpro1",$ls_codestpro1);
						$io_dscuentas->insertRow("codestpro2",$ls_codestpro2);
						$io_dscuentas->insertRow("codestpro3",$ls_codestpro3);
						$io_dscuentas->insertRow("codestpro4",$ls_codestpro4);
						$io_dscuentas->insertRow("codestpro5",$ls_codestpro5);
					}
				}			
			}
		} 
		// Agrupamos las cuentas por programatica y cuenta
		//$io_dscuentas->group_by(array('0'=>'codcargo','1'=>'codprocar','2'=>'cuentacar','3'=>'estcla'),array('0'=>'moncuecar'),'moncuecar');
		$io_dscuentas->group_by(array('0'=>'codcargo','1'=>'codestpro1','2'=>'codestpro2','3'=>'codestpro3','4'=>'codestpro4','5'=>'codestpro5',
		                              '6'=>'estcla','7'=>'cuentacar'),array('0'=>'moncuecar'),'moncuecar');
		$li_total=$io_dscuentas->getRowCount('codcargo');	
		//print_r($io_dscuentas->data);
		// Recorremos el data stored de cuentas que se lleno y se agrupo anteriormente
		for($li_fila=1;$li_fila<=$li_total;$li_fila++)
		{ 
			$ls_cargo     = $io_dscuentas->getValue('codcargo',$li_fila);
			$ls_codpro    = $io_dscuentas->getValue('codprocar',$li_fila);
			$ls_cuenta    = $io_dscuentas->getValue('cuentacar',$li_fila);
			$li_moncue    = number_format($io_dscuentas->getValue('moncuecar',$li_fila),2,",",".");
			$ls_codestpro = "";
			if (!empty($ls_codpro))
			   {
				 $ls_codestpro1 = substr($ls_codpro,0,25);
				 $ls_codestpro2 = substr($ls_codpro,25,25);
				 $ls_codestpro3 = substr($ls_codpro,50,25);
				 $ls_codestpro4 = substr($ls_codpro,75,25);
				 $ls_codestpro5 = substr($ls_codpro,100,25);
				 $ls_codestpro1 = substr($ls_codestpro1,-$li_loncodestpro1);
			 	 $ls_codestpro2 = substr($ls_codestpro2,-$li_loncodestpro2);
				 $ls_codestpro3 = substr($ls_codestpro3,-$li_loncodestpro3);
				 $ls_codestpro  = $ls_codestpro1.'-'.$ls_codestpro2.'-'.$ls_codestpro3;
			   } 
			if ($li_estmodest==2)
			   {
			     if (!empty($ls_codpro))
				    {
					  $ls_codestpro2 = substr($ls_codestpro2,-$li_loncodestpro2);
					  $ls_codestpro3 = substr($ls_codestpro3,-$li_loncodestpro3);
					  $ls_codestpro  = $ls_codestpro.'-'.$ls_codestpro4.'-'.$ls_codestpro5;
					}
			   }
			$ls_estcla = $io_dscuentas->getValue('estcla',$li_fila);
			if($ls_cuenta!="")
			{

				$lo_object[$li_fila][1]="<input name=txtcodcargo".$li_fila." type=text id=txtcodcargo".$li_fila." class=sin-borde  style=text-align:center size=12 value='".$ls_cargo."' readonly>";
				$lo_object[$li_fila][2]="<input name=txtprogramaticacar".$li_fila." type=text id=txtprogramaticacar".$li_fila." class=sin-borde  style=text-align:center size=75 value='".$ls_codestpro."' readonly>";
				$lo_object[$li_fila][3]="<input name=txtcuentacar".$li_fila." type=text id=txtcuentacar".$li_fila." class=sin-borde  style=text-align:center size=25 value='".$ls_cuenta."' readonly>";
				$lo_object[$li_fila][4]="<input name=txtmoncuecar".$li_fila." type=text id=txtmoncuecar".$li_fila." class=sin-borde  style=text-align:right  size=25 onKeyPress=return(ue_formatonumero(this,'.',',',event)); value='".$li_moncue."' readonly>".
				                        "<input name=txtcodprocar".$li_fila."  type=hidden id=txtcodprocar".$li_fila."  value='".$ls_codpro."'>".
										"<input name=estclacar".$li_fila."  type=hidden id=estclacar".$li_fila."  value='".$ls_estcla."'>";
			   // $lo_object[$li_fila][5]="<a href=javascript:ue_delete_cuenta_cargo('".$li_fila."','".$as_tipo."');><img src=../shared/imagebank/tools15/eliminar.gif title=Eliminar width=15 height=10 border=0></a>".
										
			}
		}
		$ai_total=$li_total+1;
		$lo_object[$ai_total][1]="<input name=txtcodcargo".$ai_total." type=text id=txtcodcargo".$ai_total." class=sin-borde  style=text-align:center size=12 value='' readonly>";
		$lo_object[$ai_total][2]="<input name=txtprogramaticacar".$ai_total." type=text id=txtprogramaticacar".$ai_total." class=sin-borde  style=text-align:center size=75 value='' readonly>";
		$lo_object[$ai_total][3]="<input name=txtcuentacar".$ai_total."       type=text id=txtcuentacar".$ai_total."       class=sin-borde  style=text-align:center size=25 value='' readonly>";
		$lo_object[$ai_total][4]="<input name=txtmoncuecar".$ai_total."       type=text id=txtmoncuecar".$ai_total."       class=sin-borde  style=text-align:right  size=25 value='' readonly>";
		$lo_object[$ai_total][5]="<input name=txtcodprocar".$ai_total."       type=hidden id=txtcodprocar".$ai_total."  value=''><input name=estclacar".$li_fila."  type=hidden id=estclacar".$li_fila."  value=''>";        

		print "<p>&nbsp;</p>";
		print "  <table width='840' border='0' align='center' cellpadding='0' cellspacing='0'";
		print "    <tr>";
		//print "      <td  align='left'><a href='javascript:ue_catalogo_cuentas_cargos();'><img src='../shared/imagebank/tools/nuevo.gif' width='20' height='20' border='0' title='Agregar Cuenta'>Agregar Cuenta Otros Cr&eacute;ditos</a>&nbsp;&nbsp;</td>";
		print "    </tr>";
		print "  </table>";
		$io_grid->makegrid($ai_total,$lo_title,$lo_object,840,"Cuentas Otros Cr&eacute;ditos","gridcuentascargos");
		unset($io_dscuentas);
	}// end function uf_print_cuentas_cargo
	function uf_print_amortizacion()
   	{
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		//	     Function: uf_print_amortizacion
		//		   Access: private
		//	    Arguments: 
		//	  Description: Función que obtiene e imprime los resultados de la busqueda de compromisos
		//	   Creado Por: Ing. Yesenia Moreno/ Ing. Luis Lang
		// Fecha Creación: 09/05/2007 								Fecha Última Modificación : 
		////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
		global $io_funciones_sob;
		
		require_once("../../shared/class_folder/class_mensajes.php");
		$io_mensajes=new class_mensajes();		
		require_once("../../shared/class_folder/class_funciones.php");
		$io_funciones=new class_funciones();		
		require_once("sigesp_sob_c_recepcion.php");
		$io_recepcion=new sigesp_sob_c_recepcion("../../");		
		require_once("../../shared/class_folder/class_datastore.php");
		$io_ds_amortizacion=new class_datastore(); // Datastored de cuentas contables
		$ls_codigo=$_POST['codigo'];
		$ls_tipodes=$_POST['tipodes'];
		switch($ls_tipodes)
		{
			case "P":
				$ls_codprov=$ls_codigo;
				$ls_cedbene="----------";
				break;
			case "B":
				$ls_codprov="----------";
				$ls_cedbene=$ls_codigo;
				break;
		}
		if(array_key_exists("amortizacion",$_SESSION))
		{
			$io_ds_amortizacion->data=$_SESSION["amortizacion"];
		}
		$lb_valido=$io_recepcion->uf_select_amortizaciones($ls_codprov,$ls_cedbene);
		if($lb_valido==true)
		{
				$li_totrow=$io_recepcion->io_ds_anticipos->getRowCount('numrecdoc');
				if($li_totrow>0)
				{//print_r($io_ds_amortizacion->data);
					print "<table width=600 border=0 cellpadding=1 cellspacing=1 class=fondo-tabla align=center>";
					print "<tr class=titulo-celda>";
					print "	<td align='center' >Recepcion</td>";
					print "	<td align='rigth' >Total Anticipo</td>";
					print "	<td align='rigth' >Saldo</td>";
					print "	<td align='rigth' >Amortizacion</td>";
					print "</tr>";
					for($li_i=1;($li_i<=$li_totrow)&&($lb_valido);$li_i++)
					{
						$ls_numrecdoc=trim($io_recepcion->io_ds_anticipos->data["numrecdoc"][$li_i]);
						$ls_codtipdoc=trim($io_recepcion->io_ds_anticipos->data["codtipdoc"][$li_i]);
						$li_monsal=$io_recepcion->io_ds_anticipos->data["monsal"][$li_i];
						$li_montotamo=$io_recepcion->io_ds_anticipos->data["montotamo"][$li_i];				  
						$ls_cuenta=$io_recepcion->io_ds_anticipos->data["cuenta"][$li_i];				  
						$ls_codamo=$io_recepcion->io_ds_anticipos->data["codamo"][$li_i];				  
						$li_monamo=0;
						if($lb_valido)
						{
							$li_row=$io_ds_amortizacion->findValues(array('recdocant'=>$ls_numrecdoc,'codtipdoc'=>$ls_codtipdoc),"recdocant");
							if($li_row>0)
							{
								$li_monamo=$io_ds_amortizacion->getValue("monto",$li_row);
							}
							print "<tr class=celdas-blancas>";
							print "	<td  width=155 align=center><input name=txtnumrecdoc".$li_i." type=text class=sin-borde style=text-align:center id=txtnumrecdoc".$li_i."' value=".$ls_numrecdoc." readonly/>".
								  "	<input name=txtcuenta".$li_i." type=hidden id=txtcuenta".$li_i."' value=".$ls_cuenta."  /><input name=txtcodtipdoc".$li_i." type=hidden id=txtcodtipdoc".$li_i."' value=".$ls_codtipdoc."  />".
								  " <input name=txtcodamo".$li_i." type=hidden id=txtcodamo".$li_i."' value=".$ls_codamo."  /></td>";
							print "	<td  width=155  align=right>".number_format($li_montotamo,2,',','.')."</td>";
							print " <td  width=155 align=right><input name=txtsaldo".$li_i." type=text class=sin-borde style=text-align:right id=txtsaldo".$li_i."' value=".number_format($li_monsal,2,',','.')." readonly/></td>";
							print " <td  width=155 align=right><input name=txtmonto".$li_i." type=text class=sin-borde style=text-align:right id=txtmonto".$li_i."' value=".number_format($li_monamo,2,',','.')." onKeyPress=return(ue_formatonumero(this,'.',',',event)); onBlur= ue_validarmonto(); /> </td>";
							print "</tr>";
						}
					}
					print "<tr><td>";
					print "<input name=txttotrow type=hidden class=sin-borde  id=txttotrow value=".$li_totrow." onKeyPress=return(ue_formatonumero(this,'.',',',event)); />";
					print "</td></tr>";
					print "</table>";
				}
				else
				{
        			$io_mensajes->message("ERROR->No hay Anticipos asociados a este Proveedor ó Beneficiario"); 
				}
			}
		unset($io_mensajes);
		unset($io_funciones);
		unset($io_recepcion);
	}// end function uf_print_compromisos
function uf_print_deducciones()
{
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    //	     Function: uf_print_deducciones
    //		   Access: private
    //	    Arguments:
    //	  Description: Método que imprime el resultado de la busqueda de las cdeducciones a aplicar en la recepción de documentos
    //	   Creado Por: Ing. Néstor Falcón
    // Fecha Creación: 22/04/2007								Fecha Última Modificación :
    /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    global $io_grid, $io_ds_deducciones;
    require_once "../../shared/class_folder/sigesp_include.php";
    $io_include = new sigesp_include();
    $io_conexion = $io_include->uf_conectar();
    require_once "../../shared/class_folder/class_sql.php";
    $io_sql = new class_sql($io_conexion);
    require_once "../../shared/class_folder/class_mensajes.php";
    $io_mensajes = new class_mensajes();
    require_once "../../shared/class_folder/class_funciones.php";
    $io_funciones = new class_funciones();
    require_once "../../shared/class_folder/class_datastore.php";
    $io_ds_deducciones = new class_datastore();
    // Datastored de cuentas contables
    $ls_numrecdoc = $_POST['numrecdoc'];
    $li_subtotal = $_POST['subtotal'];
    $li_cargos = $_POST['cargos'];
    $ls_procede = $_POST['procede'];
    $ls_presupuestario = $_POST['presupuestario'];
    $ls_contable = $_POST['contable'];
    $ls_codemp = $_SESSION['la_empresa']['codemp'];
    $ls_modageret = $_SESSION["la_empresa"]["modageret"];
    $ls_orden = $_POST['orden'];
    $ls_campoorden = $_POST['campoorden'];
    $ls_tipo = $_POST['tipo'];
    $li_fila = 0;
    $ls_sql = "SELECT codded,dended,formula,porded,sc_cuenta,islr,iva,estretmun\n\t\t\t\t   FROM sigesp_deducciones\n\t\t\t\t  WHERE iva=1 \n\t\t\t\t    AND estretmun=0 \n\t\t\t\t\tAND islr=0 \n\t\t\t\t\tAND otras=0\n\t\t\t\t  ORDER BY codded ASC";
    $rs_data = $io_sql->select($ls_sql);
    if ($rs_data === false) {
        $io_mensajes->uf_mensajes_ajax("Error al cargar Deducciones ", "ERROR->" . $io_funciones->uf_convertirmsg($io_sql->message), false, "");
    } else {
        $lo_title[1] = " ";
        $lo_title[2] = utf8_encode("Código");
        $lo_title[3] = utf8_encode("Denominación");
        if ($ls_tipo == 'CMPRETIVA') {
            $lo_title[4] = "Porcentaje";
            $lo_title[5] = utf8_encode("Fórmula");
        }
        if (array_key_exists("deducciones", $_SESSION)) {
            $io_ds_deducciones->data = $_SESSION["deducciones"];
        }
        while ($row = $io_sql->fetch_row($rs_data)) {
            $li_fila++;
            $ls_codded = $row["codded"];
            $ls_dended = $row["dended"];
            $ls_formula = $row["formula"];
            $ld_porded = $row["porded"];
            $ls_cuenta = $row["sc_cuenta"];
            $li_iva = $row["iva"];
            $li_islr = $row["islr"];
            $li_estretmun = $row["estretmun"];
            $ls_activo = "";
            $li_monobjret = 0;
            $li_monret = "0,00";
            if ($li_islr == '1' || $li_estretmun == '1') {
                $li_monobjret = number_format($li_subtotal, 2, ',', '.');
            } else {
                $li_monobjret = $li_cargos;
            }
            $li_row = $io_ds_deducciones->findValues(array('codded' => $ls_codded), "codded");
            if ($li_row > 0) {
                $ls_activo = "checked";
                $li_monobjret = $io_ds_deducciones->getValue("monobjret", $li_row);
                $li_monret = $io_ds_deducciones->getValue("monret", $li_row);
            }
            $lo_object[$li_fila][1] = "<input name=radiodeduccion        type=radio id=radiodeduccion" . $li_fila . " class=sin-borde>";
            $lo_object[$li_fila][2] = "<input name=txtcodded" . $li_fila . " type=text  id=txtcodded" . $li_fila . "      class=sin-borde  style=text-align:center size=7   value='" . $ls_codded . "'  readonly>";
            $lo_object[$li_fila][3] = "<input name=txtdended" . $li_fila . " type=text  id=txtdended" . $li_fila . "      class=sin-borde  style=text-align:left   size=40  value='" . $ls_dended . "'  readonly>";
            $lo_object[$li_fila][4] = "<input name=porded" . $li_fila . "    type=text  id=porded" . $li_fila . "    \t  class=sin-borde  style=text-align:right  size=7   value='" . number_format($ld_porded, 2, ',', '.') . "'  readonly >";
            $lo_object[$li_fila][5] = "<input name=formula" . $li_fila . "   type=text  id=formula" . $li_fila . "        class=sin-borde  style=text-align:left   size=50  value='" . $ls_formula . "' readonly>";
        }
        $io_sql->free_result($rs_data);
        if ($ls_tipo == 'CMPRETIVA') {
            echo "<table width=534 border=0 align=center cellpadding=0 cellspacing=0>";
            echo "<tr>";
            echo "<td width=532 colspan=6 align=center bordercolor=#FFFFFF>";
            echo "<div align=center class=Estilo2>";
            echo "<p align=right>&nbsp;&nbsp;&nbsp;<a href='javascript: uf_aceptar_deducciones({$li_fila});'><img src='../shared/imagebank/tools20/aprobado.gif' alt='Aceptar' width=20 height=20 border=0>Agregar Deducciones</a></p>";
            echo "</div></td>";
            echo "</tr>";
            echo "</table>";
        }
        $io_grid->makegrid($li_fila, $lo_title, $lo_object, 580, "", "griddeduccion");
    }
    unset($io_include);
    unset($io_conexion);
    unset($io_sql);
    unset($io_mensajes);
    unset($io_funciones);
    unset($ls_codemp);
}