<?php
date_default_timezone_set ( "America/Lima" ); 
define('SF_ROOT_DIR', realpath(realpath('./../')));
require_once(SF_ROOT_DIR.DIRECTORY_SEPARATOR.'config'.DIRECTORY_SEPARATOR.'config_core_compile.php');
require_once(SF_ROOT_DIR.DIRECTORY_SEPARATOR.'lib'.DIRECTORY_SEPARATOR.'functions'.DIRECTORY_SEPARATOR.'mensajes.php');

//header("Content-type: application/json; charset=utf-8");



$content = trim(file_get_contents("php://input"));
 
$url_base = "http://www.sinergiaperu.com";


//Attempt to decode the incoming RAW post data from JSON.
$decoded = json_decode($content, true);
 
$_POST = $decoded;

/*
$_POST['datos']['metodo'] 			= "seguimiento_personal";
$_POST['datos']['idusuario'] 		= "admin.sucursal";
//$_POST['datos']['idusuario'] 		= "admin.general";
$_POST['datos']['idsucursal'] 		= "1";
$_POST['datos']['idmercado'] 		= "2";
$_POST['datos']['token'] 			= "89nm75nh788";
*/
/*
$_POST['datos']['metodo'] = 'pago';
$_POST['datos']['idusuario'] = 'centrolima';
$_POST['datos']['idcliente'] = '257';
$_POST['datos']['idprestamo'] = '8658';
$_POST['datos']['monto'] = '11';
$_POST['datos']['huella'] = '';
$_POST['datos']['token'] = '89nm75nh788';
$_POST['datos']['ubicacion_registro_latitud'] = '1.3245678';
$_POST['datos']['ubicacion_registro_longitud'] = '-7.55555';
*/

/*
$_POST['datos']['metodo'] 		= "seguimiento_personal";
$_POST['datos']['idusuario'] 		= "admin.sucursal";
//$_POST['datos']['idusuario'] 		= "admin.general";
$_POST['datos']['idsucursal'] 		= "1";
$_POST['datos']['idmercado'] 		= "2";
$_POST['datos']['token'] 		= "89nm75nh788";
*/
/*
$_POST['datos']['metodo'] 		= "actualizacion_gps_domicilio";
$_POST['datos']['idusuario'] 		= "supervisor1";
$_POST['datos']['idcliente'] 		= "28";
$_POST['datos']['ubicacion_registro_latitud'] 		= "-1.787878787878";
$_POST['datos']['ubicacion_registro_longitud'] 		= "-2.555555555555";
//$_POST['datos']['idsucursal'] 		= "2";
//$_POST['datos']['idmercado'] 		= "3";
$_POST['datos']['token'] 		= "89nm75nh788";
*/
/*
$_POST['datos']['metodo'] 		= "seguimiento_personal";
$_POST['datos']['idusuario'] 		= "admin.sucursal";
//$_POST['datos']['idusuario'] 		= "admin.general";
//$_POST['datos']['idsucursal'] 		= "2";
//$_POST['datos']['idmercado'] 		= "3";
$_POST['datos']['token'] 		= "89nm75nh788";

*/
/*
$_POST['datos']['metodo'] 		= "validar_acceso";
$_POST['datos']['usuario'] 		= "centrolima";
$_POST['datos']['clave'] 		= "123";
$_POST['datos']['token'] 		= "89nm75nh788";
*/

/*
$_POST['datos']['metodo'] 		= "registrar_asistencia";
$_POST['datos']['idusuario'] 	= "admin.general";
$_POST['datos']['token'] 		= "89nm75nh788";
*/
/*
$_POST['datos']['metodo'] 		= "cobranzas";
$_POST['datos']['idusuario'] 	= "centrolima";
//$_POST['datos']['codigo_cliente'] 		= "548";
$_POST['datos']['apellido_paterno'] 		= "";
$_POST['datos']['idmercado'] 		= "5";
$_POST['datos']['token'] 		= "89nm75nh788";
*/
/*
$_POST['datos']['metodo'] 		= "pago";
$_POST['datos']['idusuario'] 		= "supervisor1";
$_POST['datos']['idusuario'] 		= "supervisor1";
$_POST['datos']['idcliente'] 		= "215";
$_POST['datos']['idprestamo'] 		= "3927";
$_POST['datos']['monto'] 		= "1.5";
$_POST['datos']['token'] 		= "89nm75nh788";
*/


/*
$_POST['datos']['metodo'] 		= "pedido_renovacion";
$_POST['datos']['idusuario'] 	= "centrolima";
$_POST['datos']['idprestamo'] 	= "88669";
$_POST['datos']['idcliente'] 	= "215";
$_POST['datos']['fecha_pedido'] = "2018-8-17";
$_POST['datos']['interes'] = "9";
$_POST['datos']['gastos_administrativos'] = "2.0";
$_POST['datos']['periodo'] 			= "D";
$_POST['datos']['duracion'] 		= "30";
$_POST['datos']['huella'] 		= "";
$_POST['datos']['token'] 		= "89nm75nh788";
$_POST['datos']['ubicacion_registro_latitud'] 		= "-12.0730443";
$_POST['datos']['ubicacion_registro_longitud'] 		= "-77.0502849";
$_POST['datos']['telefono_contacto'] 			= "999999996";
$_POST['datos']['comentario'] 			= "xxxxx";
$_POST['datos']['hora_atencion'] 			= "02:15";
*/


/*
$_POST['datos']['metodo'] 		= "generar_prestamo_sobre_pedido";
$_POST['datos']['idusuario'] 	= "centrolima";
$_POST['datos']['idpedido'] 	= "3";
$_POST['datos']['huella'] 		= "";
$_POST['datos']['ubicacion_registro_latitud'] 		= "-73.1125554";
$_POST['datos']['ubicacion_registro_longitud'] 		= "-73.5525554";
$_POST['datos']['token'] 		= "89nm75nh788";
*/
/*
$_POST['datos']['metodo'] 		= "lista_pedidos";
$_POST['datos']['idusuario'] 		= "supervisor1";
$_POST['datos']['idcliente'] 		= "220";
//$_POST['datos']['idmercado'] 		= "2";
$_POST['datos']['token'] 		= "89nm75nh788";
*/
/*
$_POST['datos']['metodo'] 		= "pago";
$_POST['datos']['idusuario'] 		= "centrolima";
$_POST['datos']['idcliente'] 		= "215";
$_POST['datos']['idprestamo'] 		= "3927";
$_POST['datos']['monto'] 		= "3.5";
$_POST['datos']['token'] 		= "89nm75nh788";
*/

/*
$_POST['datos']['metodo'] 		= "cobranzas";
$_POST['datos']['idusuario'] 		= "centrolima";
//$_POST['datos']['codigo_cliente'] 		= "548";
//$_POST['datos']['apellido_paterno'] 		= "";
//$_POST['datos']['idmercado'] 		= "";
$_POST['datos']['token'] 		= "89nm75nh788";
*/


/*
$_POST['datos']['metodo'] 		= "caja_tiempo_real";
$_POST['datos']['idusuario'] 		= "admin.general";
//$_POST['datos']['idsucursal'] 		= "1";
$_POST['datos']['token'] 		= "89nm75nh788";
*/

/*
$_POST['datos']['metodo'] 		= "estado_cuenta";
$_POST['datos']['idusuario'] 		= "centrolima";
$_POST['datos']['idprestamo'] 		= "534";
$_POST['datos']['token'] 		= "89nm75nh788";
*/
						
					
/*
$_POST['datos']['metodo'] 		= "validar_acceso";
$_POST['datos']['usuario'] 		= "centrolima";
$_POST['datos']['clave'] 		= "123";
$_POST['datos']['token'] 		= "89nm75nh788";

*/
/*
$_POST['datos']['metodo'] 		= "registrar_asistencia";
$_POST['datos']['idusuario'] 		= "casablanca";
$_POST['datos']['token'] 		= "89nm75nh788";
*/
/*
$_POST['datos']['metodo'] 		= "historial_prestamos";
$_POST['datos']['idusuario'] 	= "centrolima";
$_POST['datos']['idcliente'] 	= "206";
$_POST['datos']['token'] 		= "89nm75nh788";
*/

/*
$_POST['datos']['metodo'] 		= "cierre_caja";
//$_POST['datos']['idusuario'] 	= "supervisor1";
$_POST['datos']['idusuario'] 	= "casablanca";
$_POST['datos']['idmercado'] 	= "1";
$_POST['datos']['token'] 		= "89nm75nh788";
*/
/*
$_POST['datos']['metodo'] 		= "pedido";
$_POST['datos']['idusuario'] 	= "centrolima";
$_POST['datos']['idprestamo'] 	= "536";
$_POST['datos']['idcliente'] 	= "206";
$_POST['datos']['fecha_pedido'] 	= "2018-05-30";
$_POST['datos']['monto'] 		= "1000";
$_POST['datos']['gastos_administrativos'] 		= "20";
$_POST['datos']['interes'] 		= "10";
$_POST['datos']['hora_atencion'] 		= "1111";
$_POST['datos']['observacion'] 		= "2222";
$_POST['datos']['periodo'] 		= "D";
$_POST['datos']['duracion'] 		= "30";
$_POST['datos']['ubicacion_registro_latitud'] 		= "-73.1125554";
$_POST['datos']['ubicacion_registro_longitud'] 		= "-73.5525554";
$_POST['datos']['huella'] 		= "576576575757576575";
$_POST['datos']['token'] 		= "89nm75nh788";
*/
/*

$_POST['datos']['metodo'] 		= "pedido_renovacion";
$_POST['datos']['idusuario'] 	= "centrolima";
$_POST['datos']['idprestamo'] 	= "3824";
$_POST['datos']['idcliente'] 	= "209";
$_POST['datos']['fecha_pedido'] = "2018-8-17";
$_POST['datos']['gastos_administrativos'] = "20";
$_POST['datos']['periodo'] 			= "D";
$_POST['datos']['duracion'] 		= "30";
$_POST['datos']['interes'] 		= "9";
$_POST['datos']['telefono_contacto'] 			= "999999996";
$_POST['datos']['comentario'] 			= "xxxxx";
$_POST['datos']['hora_atencion'] 			= "02:15";
$_POST['datos']['ubicacion_registro_latitud'] 		= "-12.0730443";
$_POST['datos']['ubicacion_registro_longitud'] 		= "-77.0502849";
$_POST['datos']['huella'] 		= "576576575757576575";
$_POST['datos']['token'] 		= "89nm75nh788";

*/
/*
$_POST['datos']['metodo'] 		= "pedido_renovacion";
$_POST['datos']['idusuario'] 	= "centrolima";
$_POST['datos']['idprestamo'] 	= "1302";
$_POST['datos']['idcliente'] 	= "220";
$_POST['datos']['fecha_pedido'] = "2018-05-30";
$_POST['datos']['monto_extra'] 		= "110";
$_POST['datos']['gastos_administrativos'] = "20";
$_POST['datos']['interes'] 				= "10";
$_POST['datos']['hora_atencion'] 		= "yyy";
$_POST['datos']['observacion'] 			= "xxxxx";
$_POST['datos']['periodo'] 			= "D";
$_POST['datos']['duracion'] 		= "30";
$_POST['datos']['ubicacion_registro_latitud'] 		= "-73.1125554";
$_POST['datos']['ubicacion_registro_longitud'] 		= "-73.5525554";
$_POST['datos']['huella'] 		= "576576575757576575";
$_POST['datos']['token'] 		= "89nm75nh788";
*/
/*
$_POST['datos']['metodo'] 		= "prestamo";
$_POST['datos']['idusuario'] 	= "centrolima";
$_POST['datos']['idprestamo'] 	= "536";
$_POST['datos']['idcliente'] 	= "206";
$_POST['datos']['monto'] 		= "1000";
$_POST['datos']['gastos_administrativos'] 		= "20";
$_POST['datos']['interes'] 		= "10";
$_POST['datos']['periodo'] 		= "D";
$_POST['datos']['duracion'] 		= "30";
$_POST['datos']['ubicacion_registro_latitud'] 		= "-73.1125554";
$_POST['datos']['ubicacion_registro_longitud'] 		= "-73.5525554";
$_POST['datos']['huella'] 		= "576576575757576575";
$_POST['datos']['token'] 		= "89nm75nh788";
*/

/*
$_POST['datos']['metodo'] 		= "clientes";
$_POST['datos']['idusuario'] 	= "centrolima";
//$_POST['datos']['idusuario'] 	= "supervisor1";
$_POST['datos']['idcliente'] 	= "220";
//$_POST['datos']['idmercado'] 	= "5";
$_POST['datos']['token'] 		= "89nm75nh788";
*/

/*
$_POST['datos']['metodo'] 		= "caja_tiempo_real";
$_POST['datos']['idusuario'] 		= "admin.sucursal";
//$_POST['datos']['idusuario'] 		= "admin.general";
$_POST['datos']['idsucursal'] 		= "1";
$_POST['datos']['idmercado'] 		= "3";
$_POST['datos']['token'] 		= "89nm75nh788";



*/




if(!$_POST || !is_array($_POST) || count($_POST) == 0){
	$a_resultado['estado'] = "0";
	$a_resultado['mensaje'] = "Faltan datos";
	$a_respuesta["resultado"] = $a_resultado;
	print json_encode($a_respuesta);
	exit;
}


$cadena_log = json_encode($_POST);

guardar_log($cadena_log);

$j_datos = $_POST;

//$o_datos_post = json_decode($j_datos);

$o_datos = $j_datos['datos'];

//Array de parametros de salida
$s_token 			= "89nm75nh788";


function inicializarPagosApp($fecha, $idcolaborador, $idusuario){
  	  
  	 $con = Conexion::getConexion();
  	 
  	 $sql = "	SELECT usuario,idrol 
     			FROM cr_colaborador
     			where 1 and estado = 'A' and eliminado='0' and idcolaborador='".$idcolaborador."'
     		";
  	$resultCol = mysql_db_query(Conexion::getNameDb(), $sql, $con);
    $num_rowsCol = mysql_num_rows($resultCol);
    if($num_rowsCol>0){
    	 while ($o_valorCol = mysql_fetch_object($resultCol)) {
    	 	$usuario	 = $o_valorCol->usuario;
    	 	$idrol 		= $o_valorCol->idrol;
    	 	if($idrol == "sys.sup"){
    	 		
    	 		$sql = "SELECT idprestamo 
			            FROM cr_pr_asignar_detalle 
			            WHERE   fecha = '".$fecha."' 
			            		and idcolaborador = '".$idcolaborador."'".
			    		$where;
			  	//echo $sql;
			    $resultAD = mysql_db_query(Conexion::getNameDb(), $sql, $con);
			    $num_rowsAD = mysql_num_rows($resultAD);
				
								
				if($num_rowsAD>0){
			      while ($o_valorAD = mysql_fetch_object($resultAD)) {
				      $a_idprestamos[] = $o_valorAD->idprestamo;
			      }
			      if(is_array($a_idprestamos)){
			      	$s_idprestamos = implode(",",$a_idprestamos);
			      }
			      
			      $sql = "	SELECT idprestamo 
			     			FROM cr_prestamo
			     			where 1 and  estado = 'P' and eliminado='0' and idprestamo in (".$s_idprestamos.")
			     		";
					    //echo $sql;
				    $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
				    $num_rows = mysql_num_rows($result);
				    if($num_rows>0){
				      while ($o_valor = mysql_fetch_object($result)) {
				      	
			      		 $sql = "	SELECT * 
					     			FROM cr_pago
					     			where idprestamo = $o_valor->idprestamo
					     			and fechaPago='".$fecha."'
					     		";
						    //echo $sql;
						    $result2 = mysql_db_query(Conexion::getNameDb(), $sql, $con);
						    $num_rows2 = mysql_num_rows($result2);
						    if($num_rows2 == 0){
	
						      		$o_PagoBean = new PagoBean();
									$o_PagoBean->setIdPrestamo($o_valor->idprestamo);
									$o_PagoBean->setMontoPago("0.00");
									$o_PagoBean->setFechaPago($fecha);
									$o_PagoBean->setUsuarioCreacion($idusuario);
									$o_PagoBean->setIdColaborador($idcolaborador);
									$o_PagoBean->setFechaCreacion(date('Y-m-d H:i:s'));
									$o_PagoBL = new PagoBL();
									$o_PagoBL->insertarPago($o_PagoBean);
						      
						    }	
				      	
				      	
				      }
				    }
			      
			      
			    }
    	 		
    	 	}elseif($idrol == "sys.ope"){
    	 		
    	 		$sql = "SELECT IdMercado 
     					FROM cr_mercado_representante
     					where idcolaborador  = '$idcolaborador'
		     		";
    	 		$resultRM = mysql_db_query(Conexion::getNameDb(), $sql, $con);
			    $num_rowsRM = mysql_num_rows($resultRM);
			    if($num_rowsRM>0){
			      while ($o_valorRM = mysql_fetch_object($resultRM)) {
			      		$IdMercado = $o_valorRM->IdMercado;
			      		
			      		$sql = "	SELECT idprestamo 
					     			FROM cr_prestamo
					     			where idcliente in (
					     				SELECT idcliente 
					     				FROM cr_cliente
					     				where idmercado = '$IdMercado'
					     			) and estado = 'P' and eliminado='0'
					     		";
						    //echo $sql;
					    $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
					    $num_rows = mysql_num_rows($result);
					    if($num_rows>0){
					      while ($o_valor = mysql_fetch_object($result)) {
					      	
				      		 $sql = "	SELECT * 
						     			FROM cr_pago
						     			where idprestamo = $o_valor->idprestamo
						     			and fechaPago='".$fecha."'
						     		";
							    //echo $sql;
							    $result2 = mysql_db_query(Conexion::getNameDb(), $sql, $con);
							    $num_rows2 = mysql_num_rows($result2);
							    if($num_rows2 == 0){

							      		$o_PagoBean = new PagoBean();
										$o_PagoBean->setIdPrestamo($o_valor->idprestamo);
										$o_PagoBean->setMontoPago("0.00");
										$o_PagoBean->setFechaPago($fecha);
										$o_PagoBean->setUsuarioCreacion($idusuario);
										$o_PagoBean->setIdColaborador($idcolaborador);
										$o_PagoBean->setFechaCreacion(date('Y-m-d H:i:s'));
										$o_PagoBL = new PagoBL();
										$o_PagoBL->insertarPago($o_PagoBean);
							      
							    }	
					      	
					      	
					      }
					    }
			      }
			    }
		    }
		}
    }
    
     
  }

function inicializarPagos($cboMercado,$fecha, $idColaborador,$idusuario){
  	 $con = Conexion::getConexion();
    
     $sql = "	SELECT idprestamo 
     			FROM cr_prestamo
     			where idcliente in (
     				SELECT idcliente 
     				FROM cr_cliente
     				where idmercado = '$cboMercado'
     			) and estado = 'P' and eliminado='0'
     		";
	    //echo $sql;
	    $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
	    $num_rows = mysql_num_rows($result);
	    if($num_rows>0){
	      while ($o_valor = mysql_fetch_object($result)) {
	      	
	      		 $sql = "	SELECT * 
			     			FROM cr_pago
			     			where idprestamo = $o_valor->idprestamo
			     			and fechaPago='".$fecha."'
			     		";
				    //echo $sql;
				    $result2 = mysql_db_query(Conexion::getNameDb(), $sql, $con);
				    $num_rows2 = mysql_num_rows($result2);
				    if($num_rows2 == 0){
				      
				      		$o_PagoBean = new PagoBean();
							$o_PagoBean->setIdPrestamo($o_valor->idprestamo);
							$o_PagoBean->setMontoPago("0.00");
							$o_PagoBean->setFechaPago($fecha);
							$o_PagoBean->setUsuarioCreacion($idusuario);
							$o_PagoBean->setIdColaborador($idColaborador);
							$o_PagoBean->setFechaCreacion(date('Y-m-d H:i:s'));
							$o_PagoBL = new PagoBL();
							$o_PagoBL->insertarPago($o_PagoBean);
				      
				    }	
	      	
	      	
	      }
	    }
  }


function loadPedido($idPedido){
	$con = Conexion::getConexion();
	$sql = "SELECT eliminado,estado
            FROM cr_pedido_prestamo
            WHERE 1
            AND  idpedido= '".$idPedido."'
            limit 0,1
            "
            ;
	//echo $sql;  	
	$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
	
	$num_rows = mysql_num_rows($result);
	
	
	if($num_rows>0){
     	while ($o_valor = mysql_fetch_object($result)) {
		     $a_result['estado'] = $o_valor->estado;
		     $a_result['eliminado'] = $o_valor->eliminado;
     	}
	}
	return $a_result;
}

function getGastoOperativo($fecha, $idcolaborador){
	$con = Conexion::getConexion();
	$sql = "SELECT sum(Monto) as monto
 			FROM cr_gasto_operativo
 			WHERE eliminado = -1
 				AND IdColaborador = '".$idcolaborador."'
 				AND Fecha = '".$fecha."'
 			
 		";
	//echo $sql;
	$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
	$num_rows = mysql_num_rows($result);
	if($num_rows>0){
     	while ($o_valor = mysql_fetch_object($result)) {
     		 $monto = $o_valor->monto;
		 } 
    }
    return $monto;
}

function getClienteFile($idcliente,$i_IdTipoFile,$ruta){
	$con = Conexion::getConexion();
	$sql = "SELECT * 
 			FROM cr_cliente_file
 			WHERE eliminado = -1
 				AND IdCliente = '".$idcliente."'
 				AND Idtipofile = '".$i_IdTipoFile."'
 			ORDER BY IdClienteFile desc
 			LIMIT 0,1
 		";
	//echo $sql;
	$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
	
	$num_rows = mysql_num_rows($result);
	
	
	if($num_rows>0){
     	while ($o_valor = mysql_fetch_object($result)) {
     		 $s_NombreFile = $o_valor->NombreFile;
			 $s_Destino_Negocio = $ruta.$s_NombreFile;
		 } 
    }
    return $s_Destino_Negocio;
}
function loadPrestamoDeudor($IdCliente){
	$con = Conexion::getConexion();
    $sql = "SELECT *
            FROM cr_prestamo
            WHERE 1
            AND  idcliente= '".$IdCliente."'
            AND  eliminado = '0'
            AND fechavencimiento < '".date('Y-m-d')."'
            AND Estado = 'P'
            order by FlagReporte asc
            limit 0,1
            "
            ;
	//echo $sql;  	
	$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
	
	$num_rows = mysql_num_rows($result);
	
	
	if($num_rows>0){
     	while ($o_valor = mysql_fetch_object($result)) {
     		 $a_prestamo['Tipo'] = "Cliente Deudor";
		     $a_prestamo['FechaInicio'] = $o_valor->FechaInicio;
		     $a_prestamo['FechaVencimiento'] = $o_valor->FechaVencimiento;
		     $a_prestamo['SaldoPrestamo'] = $o_valor->SaldoPrestamo;
		     $a_prestamo['InteresPorcentaje'] = $o_valor->InteresPorcentaje;
		     $a_prestamo['Mora'] = ($o_valor->SaldoPrestamo*0.1);
		     if($o_valor->FlagReporte == 1) $a_prestamo['Tipo'] .=" Moroso";
		     
		 } 
      
    }else{
		$a_prestamo['Tipo'] = "";
		$a_prestamo['FechaInicio'] = "";
		$a_prestamo['FechaVencimiento'] = "";
		$a_prestamo['SaldoPrestamo'] = "";
		$a_prestamo['InteresPorcentaje'] = "";
		$a_prestamo['Mora'] = "";
    }
    return $a_prestamo;
}

function sumaAmortizo($fechaAbierto,$idprestamo){
	$con = Conexion::getConexion();
    $sql = "SELECT sum(MontoPago) as MontoPago
            FROM cr_pago
            WHERE fechaPago = '".$fechaAbierto."'
            AND  idprestamo = '".$idprestamo."'
            AND  eliminado = '0'
            "
            ;
	//echo $sql;  	
	$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
	
	$num_rows = mysql_num_rows($result);
	
	
	if($num_rows>0){
     	while ($o_valor = mysql_fetch_object($result)) {
		      return round($o_valor->MontoPago,2);
		 } 
      
    }else return 0;
}

function subirImagen($CodTipoDocumento,$foto_archivo,$idcliente,$idusuario,$ubicacion_registro_latitud,$ubicacion_registro_longitud,$referencia){

	$size_file      = $foto_archivo['foto_archivo']['size']; //: tamaÃ±o en bytes del archivo recibido
    $type_file      = $foto_archivo['foto_archivo']['type']; //: tipo mime del archivo, por ejemplo image/gif
    $name_file      = eliminar_acento( $foto_archivo['foto_archivo']['name'] ); //: nombre original del archivo
    $dir_tmp_name   = $foto_archivo['foto_archivo']['tmp_name']; //: nombre del archivo temporal que se utiliza para almacenar en

    			        

	//BASADO EN JPEG, PARA USAR EN PNG, GIF ETC CAMBIAR EL NOMBRE DE LAS FUNCIONES
	
	
    //VALIDACION - VARIOS
    if( $size_file > 2048000 )
    {
        //throw new Exception( "No se permite Archivos mayores a 2MB." );
    }
    if( $dir_tmp_name == "" )
    {
        throw new Exception( "No se puede guardar este Archivo." );
    }
    ///////////////////////////////////

    if( strpos( strtolower( $name_file ), 'pdf' ) !== false )
    {

    }

    //SE GUARA EL ARCHIVO
    $s_DirImages = $_SERVER['DOCUMENT_ROOT']."/images/uploadFiles/";

    $prefijo = substr( md5( uniqid( rand() ) ), 0, 6 );
    $name_file     = $CodTipoDocumento."_".$prefijo."_".$name_file;
    $destino =  $s_DirImages.$name_file;
    
    
   // if (isset($foto_archivo['foto_archivo']) && $foto_archivo['foto_archivo']['tmp_name']!=''){
    if (1){
		
		$s_DirImages = $_SERVER['DOCUMENT_ROOT']."/images/uploadFiles/";
	
		//Imagen original
		$rtOriginal=$foto_archivo['foto_archivo']['tmp_name'];
		
		//Crear variable
		$original = imagecreatefromjpeg($rtOriginal);
		
		//Ancho y alto mÃ¡ximo
		$max_ancho = 600; $max_alto = 400;
		 
		//Medir la imagen
		list($ancho,$alto)=getimagesize($rtOriginal);
		
		//Ratio
		$x_ratio = $max_ancho / $ancho;
		$y_ratio = $max_alto / $alto;
		
		//Proporciones
		if(($ancho <= $max_ancho) && ($alto <= $max_alto) ){
		    $ancho_final = $ancho;
		    $alto_final = $alto;
		}
		else if(($x_ratio * $alto) < $max_alto){
		    $alto_final = ceil($x_ratio * $alto);
		    $ancho_final = $max_ancho;
		}
		else {
		    $ancho_final = ceil($y_ratio * $ancho);
		    $alto_final = $max_alto;
		}
		
		//Crear un lienzo
		$lienzo=imagecreatetruecolor($ancho_final,$alto_final); 
		
		//Copiar original en lienzo
		imagecopyresampled($lienzo,$original,0,0,0,0,$ancho_final, $alto_final,$ancho,$alto);
		 
		//Destruir la original
		imagedestroy($original);
		
		//Crear la imagen y guardar en directorio upload/
		
		if($type_file = "image/jpeg"){
			imagejpeg($lienzo,$destino);
		}
		if($type_file = "image/gif"){
			imagegif($lienzo,$destino);
		}
		if($type_file = "image/png"){
			imagepng($lienzo,$destino);
		}
		
		$i_Id = Cr_cliente_fileDP::getNextId();
        $o_Cr_cliente_fileDP = new Cr_cliente_fileDP();
        $o_Cr_cliente_fileDP->setIdClienteFile( $i_Id );
        $o_Cr_cliente_fileDP->setIdCliente( ( int ) $idcliente );
        $o_Cr_cliente_fileDP->setIdtipofile( ( int ) $CodTipoDocumento );
        $o_Cr_cliente_fileDP->setFileNumero( $referencia);
        $o_Cr_cliente_fileDP->setEstado( "A" );
        $o_Cr_cliente_fileDP->setNombreFile( $name_file );
        $o_Cr_cliente_fileDP->setEliminado( -1 );
        $o_Cr_cliente_fileDP->setFechaRegistro( date( "Y-m-d H:i:s" ) );
        $o_Cr_cliente_fileDP->setUsuarioRegistro( $idusuario );
        $b_Result = $o_Cr_cliente_fileDP->save();
	}
}

function eliminar_acento ( $cadena )
{
    $originales  = 'ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûýýþÿŔŕ';
    $modificadas = 'aaaaaaaceeeeiiiidnoooooouuuuybsaaaaaaaceeeeiiiidnoooooouuuyybyRr';
    $cadena = utf8_decode($cadena);
    $cadena = strtr($cadena, utf8_decode($originales), $modificadas);
    $cadena = strtolower($cadena);
    return utf8_encode( stripAccents( $cadena ) );
}
function stripAccents( $string )
{
    return strtr($string,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ','aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
}
class array_sorter
{
    var $skey = false;
    var $sarray = false;
    var $sasc = true;

    /**
    * Constructor
    *
    * @access public
    * @param mixed $array array to sort
    * @param string $key array key to sort by
    * @param boolean $asc sort order (ascending or descending)
    */
    function array_sorter(&$array, $key, $asc=true)
    {
        $this->sarray = $array;
        $this->skey = $key;
        $this->sasc = $asc;
    }

    /**
    * Sort method
    *
    * @access public
    * @param boolean $remap if true reindex the array to rewrite indexes
    */
    function sortit($remap=true)
    {
        $array = &$this->sarray;
        uksort($array, array($this, "_as_cmp"));
        if ($remap)
        {
            $tmp = array();
            while (list($id, $data) = each($array))
                $tmp[] = $data;
            return $tmp;
        }
        return $array;
    }

    /**
    * Custom sort function
    *
    * @access private
    * @param mixed $a an array entry
    * @param mixed $b an array entry
    */
    function _as_cmp($a, $b)
    {
        //since uksort will pass here only indexes get real values from our array
        if (!is_array($a) && !is_array($b))
        {
            $a = $this->sarray[$a][$this->skey];
            $b = $this->sarray[$b][$this->skey];
        }

        //if string - use string comparision
        if (!ctype_digit($a) && !ctype_digit($b))
        {
            if ($this->sasc)
                return strcasecmp($a, $b);
            else
                return strcasecmp($b, $a);
        }
        else
        {
            if (intval($a) == intval($b))
                return 0;

            if ($this->sasc)
                return (intval($a) > intval($b)) ? -1 : 1;
            else
                return (intval($a) > intval($b)) ? 1 : -1;
        }
    }

}//end of class

function consultarAsistencia($idColaborador,$fechaAsistencia){
										
	$con = Conexion::getConexion();
    $sql = "SELECT *
            FROM cr_asistencia
            WHERE idcolaborador = '".$idColaborador."'
            AND  Fecha = '".$fechaAsistencia."'
            AND  eliminado = '-1'
            "
            ;
	//echo $sql;  	
	$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
	
	
    $num_rows = mysql_num_rows($result);
	
	$a_filtro['idcolaborador'] = "";
	
	if($num_rows>0){
      return true;
      
    }
    return false;
}

function obternerColaboradorxUsuario($idusuario){
										
	$con = Conexion::getConexion();
    $sql = "SELECT *
            FROM cr_colaborador
            WHERE usuario = '".$idusuario."'
            AND  eliminado = '0'
            "
            ;
	//echo $sql;  	
	$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
	
	
    $num_rows = mysql_num_rows($result);
	
	
	if($num_rows>0){
     	while ($o_valor = mysql_fetch_object($result)) {
		      return $o_valor->IdColaborador;
		 } 
      
    }
    return false;
}


function guardar_log($cadena_log){
	
	$con = Conexion::getConexion();
    $sql = "INSERT INTO 
            cr_wslog
            (idlog,cadena,fecharegistro)
            values
            (null,'".$cadena_log."',now())"
            ;
	//echo $sql;  	
	$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
}

function registrarHuella($idcliente,$idusuario){
	
	$con = Conexion::getConexion();
    $sql = "INSERT INTO 
            cr_cliente_huella
            (idclientehuella,idcliente,idusuario,fecharegistro)
            values
            (null,'".$idcliente."','".$idusuario."',now())"
            ;
	//echo $sql;  	
	$result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
}



function getColaboradorxCliente($idcliente){
	//Para asignar el colaborador por el mercado donde esta asignado el idcliente
  	$o_ClienteBean = new ClienteBean();
  	$o_ClienteBean->setIdCliente($idcliente);
  	
  	$o_ClienteDP = new ClienteDP($o_ClienteBean);
  	$a_clientes = $o_ClienteDP->select();
  	if(is_array($a_clientes)){
  		foreach ($a_clientes as $key => $o_cliente){
  			$idMercado = $o_cliente->getIdMercado();
  		}
  	}
	
  	$o_MercadoRepresentanteBean = new MercadoRepresentanteBean();
  	$o_MercadoRepresentanteBean->setIdMercado($idMercado);
  	$o_MercadoRepresentanteDP = new MercadoRepresentanteDP($o_MercadoRepresentanteBean);
  	$a_MercadoRepresentante = $o_MercadoRepresentanteDP->select();
  	if(is_array($a_MercadoRepresentante)){
  		foreach ($a_MercadoRepresentante as $key => $o_MercadoRepresentante){
  			$IdColaborador = $o_MercadoRepresentante->getIdColaborador();
  		}
  	}
  	return $IdColaborador;

  	//
}

function multi_sort(&$array, $key, $asc=true)
{
    $sorter = new array_sorter($array, $key, false);
    return $sorter->sortit();
}

function getFiltroCobranza($o_user,$fechaDiaAbierto,$idmercado=''){
	
	$a_filtro['idprestamos'] 	= '';
	$a_filtro['idcolaborador'] 	= '';
	
	
	$o_crColaboradorBean = new ColaboradorBean();
	$o_crColaboradorBean->setUsuario($o_user->getUserId());
	$o_crColaboradorDP = new ColaboradorDP($o_crColaboradorBean);
	$a_o_crColaboradorDP = $o_crColaboradorDP->select();
	if(is_array($a_o_crColaboradorDP) && count($a_o_crColaboradorDP)){
		$a_filtro['idcolaborador'] = $a_o_crColaboradorDP[0]->getIdColaborador();
	}
	
	if($o_user->getUserRoleId() == "sys.sup"){ 
		if($idmercado) $where = "and idmercado = '".$idmercado."'";
		$con = Conexion::getConexion();
	    $sql = "SELECT idprestamo 
	            FROM cr_pr_asignar_detalle 
	            WHERE   fecha = '".$fechaDiaAbierto."' 
	            		and idcolaborador = '".$a_o_crColaboradorDP[0]->getIdColaborador()."'".
	    		$where;
	  	//echo $sql;
	    $result = mysql_db_query(Conexion::getNameDb(), $sql, $con);
	    $num_rows = mysql_num_rows($result);
		
		$a_filtro['idcolaborador'] = "";
		
		if($num_rows>0){
	      while ($o_valor = mysql_fetch_object($result)) {
		      $a_idprestamos[] = $o_valor->idprestamo;
	      }
	      $a_filtro['idprestamos'] 	= $a_idprestamos;
	      
	    }
	    //print_r($a_idprestamos);

	}
	
	if($o_user->getUserRoleId() == "sys.res"){ 
		$a_filtro['idcolaborador'] = '';
	}
	
	return $a_filtro;
	
}

function is_valid_email($str)
{
  $matches = null;
  return (1 === preg_match('/^[A-z0-9\\._-]+@[A-z0-9][A-z0-9-]*(\\.[A-z0-9_-]+)*\\.([A-z]{2,6})$/', $str, $matches));
}

function sucursalMercado($o_user,$idmercado='',$idcolaborador=''){
	if($o_user->getUserRoleId() == "sys.ope"){ 
		$IdColaborador			  	= $o_user->getIdColaborador();
		
		$IdAdministrador	  		= $o_user->getIdParent();
		$o_ObjectBean 	= new SucursalBean();
		if($IdAdministrador)		$o_ObjectBean->setIdAdministrador($IdAdministrador);
		
		$o_class 					= new SucursalBL();
		$a_ObjectBean 				= $o_class->busquedaSucursal($o_ObjectBean);
		
		if(count($a_ObjectBean)>0){
	    	foreach ($a_ObjectBean as $iKey => $o_objBean){
	    		$a_user['idsucursal'] = $o_objBean->getIdSucursal();
	    		$a_user['sucursal'] = $o_objBean->getDescripcion();
	    	}
	    }
	    $o_MercadoRepresentante = new MercadoRepresentanteBean();
		$o_MercadoRepresentante->setIdColaborador($IdColaborador);
		$o_MercadoRepresentanteBL = new MercadoRepresentanteBL();
		$a_o_repmer = $o_MercadoRepresentanteBL->busquedaMercadoRepresentanteDetalle($o_MercadoRepresentante);
		
		foreach ($a_o_repmer as $key => $o_repmer){
			
			
			$o_MercadoBean = new MercadoBean();
			$o_MercadoBean->setIdMercado($o_repmer->getIdMercado());
			$o_MercadoDP = new MercadoDP($o_MercadoBean);
			$a_MercadoDP = $o_MercadoDP->select();
			foreach ($a_MercadoDP as $key => $o_MercadoDP){
				$a_user['idmercado'] 	= $o_MercadoDP->getIdMercado();	
				$a_user['mercado'] 		= $o_MercadoDP->getDescripcion();	
			}
		}
		$a_idColaborador[] = $IdColaborador;
		$a_user['idcolaboradores'] 	= $a_idColaborador;
	}elseif($o_user->getUserRoleId() == "sys.res"){ // Detectar Sucursal y Mercado si es Administrador de Sucursal
		$IdAdministrador	  		= $o_user->getIdColaborador();
		
		if($idmercado){
			$o_MercadoRepresentanteBean = new MercadoRepresentanteBean();
			$o_MercadoRepresentanteBean->setIdMercado($idmercado);
			$o_MercadoRepresentanteDP = new MercadoRepresentanteDP($o_MercadoRepresentanteBean);
			$a_o_MercadoRepresentanteDP = $o_MercadoRepresentanteDP->select();
			foreach ($a_o_MercadoRepresentanteDP as $key => $o_MercadoRepresentanteBean){
				$idcolaboradores[] = $o_MercadoRepresentanteBean->getIdColaborador();
			}
		}
		
		
		$idPadre = $IdAdministrador;
		//Busco sus hijo
		$a_idColaborador[] = "x";
		$o_ColaboradorBean_Temp = new ColaboradorBean();
	  	$o_ColaboradorBean_Temp->setIdPadre($idPadre);
	  	$o_ColaboradorBean_Temp->setIdColaboradores($idcolaboradores);
		$o_ColaboradorDP_Temp = new ColaboradorDP($o_ColaboradorBean_Temp);
		$a_o_idColaborador = $o_ColaboradorDP_Temp->select();
		if(is_array($a_o_idColaborador)){
			foreach($a_o_idColaborador as $key => $o_idColaborador){
				$a_idColaborador[] = $o_idColaborador->getIdColaborador();	
			}
		}
		
		
		$o_ObjectBean 				= new SucursalBean();
		$o_ObjectBean->setIdAdministrador($IdAdministrador);
				
		$o_class 					= new SucursalBL();
		$a_ObjectBean 				= $o_class->busquedaSucursal($o_ObjectBean);
		
		if(count($a_ObjectBean) > 0){
	    	foreach ($a_ObjectBean as $iKey => $o_objBean){
	    		$a_user['idsucursal'] = $o_objBean->getIdSucursal();
	    		$a_user['sucursal'] = $o_objBean->getDescripcion();
	    		$o_SucursalMercadoBean = new SucursalMercadoBean();
	    		$o_SucursalMercadoBean->setIdSucursal($o_objBean->getIdSucursal());
	    		$o_SucursalMercadoBean->setIdMercado($idmercado);
				$o_SucursalMercadoBL = new SucursalMercadoBL();
				$a_o_sucursalmercado = $o_SucursalMercadoBL->busquedaSucursalMercadoDetalle($o_SucursalMercadoBean);
				if(is_array($a_o_sucursalmercado)){
					foreach ($a_o_sucursalmercado as $key => $o_sucursalmercado){
						$a_IdMercados[] = $o_sucursalmercado->getIdMercado();
					}
				}
	    	}
	    }
		
		$a_user['mercado'] 		= "";
		$a_user['idmercado'] 	= "";
		$a_user['idsmercados'] 	= $a_IdMercados;
		$a_user['idcolaboradores'] 	= $a_idColaborador;
		
	}elseif($o_user->getUserRoleId() == "sys.sup"){ // Detectar Sucursal y Mercado si es Administrador de Sucursal
		$IdColaborador			  	= $o_user->getIdColaborador();
		
		$o_ColaboradorBean_Temp = new ColaboradorBean();
	  	$o_ColaboradorBean_Temp->setIdColaborador($IdColaborador);
		$o_ColaboradorDP_Temp = new ColaboradorDP($o_ColaboradorBean_Temp);
		$a_o_idColaborador = $o_ColaboradorDP_Temp->select();
		if(is_array($a_o_idColaborador)){
			foreach($a_o_idColaborador as $key => $o_idColaborador){
				$idPadre = $o_idColaborador->getIdPadre();	
			}
		}
		//Busco sus hijo
		$o_ColaboradorBean_Temp = new ColaboradorBean();
	  	$o_ColaboradorBean_Temp->setIdPadre($idPadre);
		$o_ColaboradorDP_Temp = new ColaboradorDP($o_ColaboradorBean_Temp);
		$a_o_idColaborador = $o_ColaboradorDP_Temp->select();
		if(is_array($a_o_idColaborador)){
			foreach($a_o_idColaborador as $key => $o_idColaborador){
				$a_idColaborador[] = $o_idColaborador->getIdColaborador();	
			}
		}
		
		
		$IdAdministrador	  		= $o_user->getIdParent();
		$o_ObjectBean 	= new SucursalBean();
		if($IdAdministrador)		$o_ObjectBean->setIdAdministrador($IdAdministrador);
		
		$o_class 					= new SucursalBL();
		$a_ObjectBean 				= $o_class->busquedaSucursal($o_ObjectBean);
		
		if(count($a_ObjectBean)>0){
	    	foreach ($a_ObjectBean as $iKey => $o_objBean){
	    		$a_user['idsucursal'] = $o_objBean->getIdSucursal();
	    		$a_user['sucursal'] = $o_objBean->getDescripcion();
	    		$o_SucursalMercadoBean = new SucursalMercadoBean();
	    		$o_SucursalMercadoBean->setIdSucursal($o_objBean->getIdSucursal());
				$o_SucursalMercadoBL = new SucursalMercadoBL();
				$a_o_sucursalmercado = $o_SucursalMercadoBL->busquedaSucursalMercadoDetalle($o_SucursalMercadoBean);
				if(is_array($a_o_sucursalmercado)){
					foreach ($a_o_sucursalmercado as $key => $o_sucursalmercado){
						$a_IdMercados[] = $o_sucursalmercado->getIdMercado();
					}
				}
	    	}
	    }
		$a_user['idmercado'] 	= "";
		$a_user['idsmercados'] 	= $a_IdMercados;
		$a_user['idcolaboradores'] 	= $a_idColaborador;
	}elseif($o_user->getUserRoleId() == "sys.gen"){									
		$a_user['sucursal'] = "";
		$a_user['mercado'] 	= "";
	}
	return $a_user;
}

function validarHuellaColaborador($idusuario,$huella){
	return true;
}
function validarHuellaCliente($idcliente,$huella){
	return true;
}

function mostrar_error($val,$mensaje){
	return $mensaje[$val];
}

function fechaDiaAbierto($idusuario){
	$o_crColaboradorBean = new ColaboradorBean();
	$o_crColaboradorBean->setUsuario($idusuario);
	
	$o_crColaboradorDP = new ColaboradorDP($o_crColaboradorBean);
	$a_o_crColaboradorDP = $o_crColaboradorDP->select();
	
	if(is_array($a_o_crColaboradorDP) && count($a_o_crColaboradorDP)){
			$idColaborador 		= $a_o_crColaboradorDP[0]->getIdColaborador();
			$fechaDiaAbierto 	= $o_crColaboradorDP->getFechaTransaccion($idColaborador);
	}
	return $fechaDiaAbierto;
}

//if($a_token[$o_datos->metodo] ==  $o_datos->token)

	if($s_token == $o_datos['token'])
	{
		$idusuario 	= $o_datos['usuario'];
		if(!$idusuario) $idusuario = $o_datos['idusuario'];
		$o_user 		= new user_class();
		if ($o_user->findUser($idusuario)){
		
		
			
		
		
			switch ($o_datos['metodo']){
				case "validar_acceso": 
						if(!$usuario){
							mostrar_error("USUARIO_VACIO",$mensaje);//HUELLA_INVALIDA	
						}
						$usuario 	= $o_datos['usuario'];
						$clave 		= $o_datos['clave'];
									
						$o_MyLoginValidator = new myLoginValidator();
				 
						$a_resultado['estado'] = "1";
						$a_resultado['mensaje'] = "";
						
						if(!$o_MyLoginValidator->execute($usuario, $clave)){
							$a_resultado = mostrar_error("LOGIN_ERRADO",$mensaje);//HUELLA_INVALIDA	
							
						}else{
							$a_resultado['estado'] = "1";
							$a_resultado['mensaje'] = "Exito";
							
							$o_user = new user_class();
							
							if ($o_user->findUser($usuario)){
								$a_user['idusuario'] 		= $o_user->getUserId();
								
								$a_user['rol']  			= $o_user->getUserRoleId();
								//$a_user['idusuario']  		= $o_user->getIdColaborador();
								
								// Detectar Sucursal y Mercado si es asesor o Representante de cobranzas
								
								$a_SucursalMercado 	= sucursalMercado($o_user);
								$a_user["mercado"] 	= (string)$a_SucursalMercado["mercado"];
								$a_user["idmercado"]= (int)$a_SucursalMercado["idmercado"];
								$a_user["sucursal"] = (string)$a_SucursalMercado["sucursal"];
								$a_user["idsucursal"] = (string)$a_SucursalMercado["idsucursal"];
								
								$o_crColaboradorBean = new ColaboradorBean();
								$o_crColaboradorBean->setUsuario($o_user->getUserId());
								
								$o_crColaboradorDP = new ColaboradorDP($o_crColaboradorBean);
								$a_o_crColaboradorDP = $o_crColaboradorDP->select();
								
								if(is_array($a_o_crColaboradorDP) && count($a_o_crColaboradorDP)){
									$idColaborador = $a_o_crColaboradorDP[0]->getIdColaborador();
									$a_user['nombre_completo']  = $a_o_crColaboradorDP[0]->getNombres();
									$fechatransaccion 	= $o_crColaboradorDP->getFechaTransaccion($idColaborador);
									$a_user['fecha_abierta'] 	= $fechatransaccion;
								}
								
								
								$flagAsistencia = consultarAsistencia($idColaborador,date('Y-m-d'));
								
								if($flagAsistencia){
									$a_user["registro_asistencia"] = 'S';
								}else{
									$a_user["registro_asistencia"] = 'N';
								}
								//$a_user["registro_asistencia"] = 'S';
															
								$a_resultado['usuario'] = $a_user;
							}
						}	
						 
					break;
				 
				 case "registrar_asistencia": 
					
						$idusuario 	= $o_datos['usuario'];
						$huella 	= $o_datos['huella'];
						$ubicacion_registro_latitud 	= $o_datos['ubicacion_registro_latitud'];
						$ubicacion_registro_longitud 	= $o_datos['ubicacion_registro_longitud'];
						
						
						if(validarHuellaColaborador($idusuario,$huella)){
						
							$o_crColaboradorBean = new ColaboradorBean();
							$o_crColaboradorBean->setUsuario($idusuario);
							
							$o_crColaboradorDP = new ColaboradorDP($o_crColaboradorBean);
							$a_o_crColaboradorDP = $o_crColaboradorDP->select();
							
							if(is_array($a_o_crColaboradorDP) && count($a_o_crColaboradorDP)){
									$fechatransaccion 	= date('Y-m-d');
									$o_crColaboradorBN 	= $a_o_crColaboradorDP[0];
									$idColaborador 		= $o_crColaboradorBN->getIdColaborador();
									$HoraIngreso		= $o_crColaboradorBN->getHoraIngreso();
									$MinutoIngreso		= $o_crColaboradorBN->getMinutoIngreso();
									$MontoDescuento		= $o_crColaboradorBN->getMontoDescuento();
									$HoraMinutoIngreso	= $HoraIngreso.":".$MinutoIngreso;
									$HoraMinutoActual	= date("H:i");
									
											
									//Validar si sera una [A]SISTENCIA o [T]ARDANZA
									//$o_asistenciaFNTemp->setTipoAsistencia('A');
									//$o_asistenciaFNTemp->setTipoAsistencia('T'); y colocar un monto de descuento
									
									$o_asistenciaFNTemp = new CrAsistenciaFN();
									$o_asistenciaFNTemp->setIdColaborador($idColaborador);
									//$o_asistenciaFNTemp->setTipoAsistencia('T');
									$o_asistenciaFNTemp->setEliminado('-1');
									//$o_asistenciaFNTemp->setFecha($fechatransaccion);
									$o_asistenciaFNTemp->setFecha($fechatransaccion);
									$a_o_asistenciaFNTemp = $o_asistenciaFNTemp->select();
									
									
									
									
									if(!is_array($a_o_asistenciaFNTemp) && count($a_o_asistenciaFNTemp) == 0){
									
										
									$o_user 		= new user_class();
									if ($o_user->findUser($idusuario)){
										if(($o_user->getUserRoleId() == "sys.ope" && $a_resultado["idmercado"]) && !$idsucursal){ 
											$fechaDiaAbierto 	= fechaDiaAbierto($idusuario);
											$dia = date('N',strtotime($fechaDiaAbierto));
											if($dia != 7){
												inicializarPagosApp($fechaDiaAbierto, $idColaborador, $idusuario);	
											}
										}
									}
										
									  $o_asistenciaDP = new CrAsistenciaDP();
									   
									  $o_asistenciaDP->setIdColaborador($idColaborador);
									  $o_asistenciaDP->setTipoAsistencia('A');
									  
									  if($HoraMinutoActual > $HoraMinutoIngreso){
										$o_asistenciaDP->setTipoAsistencia('T');
										$o_asistenciaDP->setMonto($MontoDescuento);
									  }
									  
									  $o_asistenciaDP->setHoraMinutoPactado($fechatransaccion." ".$HoraMinutoIngreso.":00");
									  
									  $o_asistenciaDP->setEstado('A');
									  
									  //$o_asistenciaDP->setFecha($fechatransaccion);
									  $o_asistenciaDP->setFecha(date('Y-m-d'));
									  
									  $o_asistenciaDP->setRegistroLatitud($ubicacion_registro_latitud);
									  $o_asistenciaDP->setRegistroLongitud($ubicacion_registro_longitud);
									  
									  $o_asistenciaDP->setUsuarioCreacion($idusuario);
									  $o_asistenciaDP->setFechaCreacion(date("Y-m-d H:i:s"));
									  $bResult = $o_asistenciaDP ->save();
									  if($bResult){
										$a_resultado['estado'] = "1";
										$a_resultado['mensaje'] = "Exito";
									  }
									
									}else{
										$a_resultado['estado'] = "10";
										$a_resultado['mensaje'] = "Fallo el registro, ya esta registrado para la fecha ".$fechatransaccion;
									}
								}
						}else{
							mostrar_error("HUELLA_INVALIDA",$mensaje);//HUELLA_INVALIDA
						}
						
						break;
					
					//Las cobranzas la realizara el supervisor de sucursal o el operador
					case "listado_cobranzas": 
							$ruta = "/images/uploadFiles/";
							
							
							$codigo_cliente 	= $o_datos['idcliente'];
							/*
							 // Foto de Negocio
							 $i_IdTipoFile = "8";
							
							 $o_ObjectFN_TN = new Cr_cliente_fileFN();
							 $o_ObjectFN_TN->setIdCliente($codigo_cliente);
							 $o_ObjectFN_TN->setEliminado( -1 );
							 $o_ObjectFN_TN->setIdtipofile($i_IdTipoFile);
							 $o_ObjectFN_TN->addOrderBy(Cr_cliente_fileFN::IdClienteFile ,false);
							 $o_ObjectBN_TN = $o_ObjectFN_TN->select( 0, 1);
							 
							 if( is_array($o_ObjectBN_TN))
							{
								$s_NombreFile = $o_ObjectBN_TN[0]->getNombreFile();
								$s_Destino_Negocio = $url_base.$ruta.$s_NombreFile;
							}
							
							 // Foto de Negocio
							 $i_IdTipoFile = "6";
							
							 $o_ObjectFN_TC = new Cr_cliente_fileFN();
							 $o_ObjectFN_TC->setIdCliente($codigo_cliente);
							 $o_ObjectFN_TC->setEliminado( -1 );
							 $o_ObjectFN_TC->setIdtipofile($i_IdTipoFile);
							 $o_ObjectFN_TC->addOrderBy(Cr_cliente_fileFN::IdClienteFile ,false);
							 $o_ObjectBN_TC = $o_ObjectFN_TC->select( 0, 1);
							 
							 if( is_array($o_ObjectBN_TC) )
							{
								$s_NombreFile = $o_ObjectBN_TC[0]->getNombreFile();
								$s_Destino_Domicilio = $url_base.$ruta.$s_NombreFile;
							}
							
							*/
							
							$idusuario 			= $o_datos['idusuario'];
							
							$idsucursal 		=  $o_datos['idsucursal'];
							$idmercado	 		=  $o_datos['idmercado'];
						
							
							//$codigo_cliente 	= $o_datos['idcliente']; Solo para que no se caiga
							$apellido_paterno 	= $o_datos['apellido_paterno'];

												
							if($idusuario){
								$fechaDiaAbierto = fechaDiaAbierto($idusuario);
								
								$o_user 		= new user_class();
								if ($o_user->findUser($idusuario)){
									
									
									$a_SucursalMercado 	= sucursalMercado($o_user);								
									/*
									echo "<pre>";
									
									print_r($a_SucursalMercado);
									echo "</pre>";
									*/
									
									if(!$idmercado) $a_resultado["idmercado"] 	= (string)$a_SucursalMercado["idmercado"];
									//$a_resultado["idsmercados"] = $a_SucursalMercado["idsmercados"];
									$a_resultado["idsucursal"] 	= $a_SucursalMercado["idsucursal"];	 						
									
									
											
									//Saldran todos los prestamos Pendientes y que no son marcados con Mora
									$o_ObjectBean = new PrestamoBean();
									$o_ObjectBean->setEstado("P");
									if($a_resultado["idsmercados"]   	!="") 	$o_ObjectBean->setFiltroMercado($a_resultado["idsmercados"]);
									if($a_resultado["idmercado"]   	!="") 	$o_ObjectBean->setIdMercado($a_resultado["idmercado"]);
									
									$a_filtroCobranza = getFiltroCobranza($o_user,$fechaDiaAbierto,$idmercado);
									
									/*echo "<pre>";
									
									print_r($a_filtroCobranza);
									echo "</pre>";
										*/						
									if($a_filtroCobranza["idcolaborador"]){
										$o_ObjectBean->setIdColaboradorPrestamo($a_filtroCobranza["idcolaborador"]);
										if(($o_user->getUserRoleId() == "sys.ope" && $a_resultado["idmercado"]) && !$idsucursal){ 
											$dia = date('N',strtotime($fechaDiaAbierto));
											if($dia != 7){
												inicializarPagos($a_resultado["idmercado"],$fechaDiaAbierto, $a_filtroCobranza["idcolaborador"],$idusuario);
											}
										}
										
									}
									if($a_filtroCobranza["idprestamos"]){
										$o_ObjectBean->setIdsPrestamos($a_filtroCobranza["idprestamos"]);
									}else{
										if($o_user->getUserRoleId() == "sys.sup"){
											$a_filtroCobranza["idprestamos"] = array('9999'=>9999999);
											$o_ObjectBean->setIdsPrestamos($a_filtroCobranza["idprestamos"]);
										}
									}
									
									if($codigo_cliente   			!="")	$o_ObjectBean->setIdCliente($codigo_cliente); 
									if($apellido_paterno 			!="")	$o_ObjectBean->setApellidoPaterno(utf8_decode($apellido_paterno));
									
									//$o_ObjectBean->setFlagReporte('2');
									
									$o_class = new PrestamoBL();
									$a_ObjectBean = $o_class->busquedaPrestamo($o_ObjectBean);
								
									if(count($a_ObjectBean)>0){
										$i = 1;
										foreach ($a_ObjectBean as $iKey => $o_objBean){
										
											// Foto de Negocio
											$i_IdTipoFile = "8";
											$s_Destino_Negocio = getClienteFile($o_objBean->getIdCliente(),$i_IdTipoFile,$url_base.$ruta);
												
											// Foto de Domicilio
											$i_IdTipoFile = "6";
											$s_Destino_Domicilio = getClienteFile($o_objBean->getIdCliente(),$i_IdTipoFile,$url_base.$ruta);
										
											
											
											
											$o_PrestamoDPT = new PrestamoDP(new PrestamoBean());
											$cobro_realizado = $o_PrestamoDPT->getTotalDiaAbierto($o_objBean->getIdPrestamo(),$fechaDiaAbierto);
											$numero_pagos = $o_PrestamoDPT->getNumeroPagosDiaAbierto($o_objBean->getIdPrestamo(),$fechaDiaAbierto);
											
											$a_prestamo[$o_objBean->getIdPrestamo()]['idprestamo'] 			= (int)$o_objBean->getIdPrestamo();	
											$a_prestamo[$o_objBean->getIdPrestamo()]['amortizo'] 			= (float)sumaAmortizo($fechaDiaAbierto,$o_objBean->getIdPrestamo());	
											$a_prestamo[$o_objBean->getIdPrestamo()]['monto_total'] 		= (float)$o_objBean->getMontoTotal();	
											$a_prestamo[$o_objBean->getIdPrestamo()]['capital'] 			= (float)$o_objBean->getMontoPrestado();	
											$a_prestamo[$o_objBean->getIdPrestamo()]['monto_interes']		= (float)$o_objBean->getInteresMonto();	
											$a_prestamo[$o_objBean->getIdPrestamo()]['saldo']				= (float)$o_objBean->getSaldoPrestamo();	
											$a_prestamo[$o_objBean->getIdPrestamo()]['monto_interes']		= (float)$o_objBean->getInteresPorcentaje();	
											$a_prestamo[$o_objBean->getIdPrestamo()]['gasto_administrativo_prestamo']= (float)$o_objBean->getGastoAdministrativo();	
											$a_prestamo[$o_objBean->getIdPrestamo()]['fecha_prestamo']		= (string)$o_objBean->getFechaInicio();	
											$a_prestamo[$o_objBean->getIdPrestamo()]['fecha_vencimiento']	= (string)$o_objBean->getFechaVencimiento();	
											$a_prestamo[$o_objBean->getIdPrestamo()]['estado']				= (string)$o_objBean->getEstado();	
											
											//Pagos realizados en la fecha abierta
											
											if($o_objBean->getOrigen() == "R"){
												$cadena_origen = "Nuevo";
											}elseif($o_objBean->getOrigen() == "F" && $o_objBean->getMontoExtra() >0){
												$cadena_origen = "Renovado"; 
											}elseif($o_objBean->getOrigen() == "F"){
												$cadena_origen = "Refinanciado"; 
											}
											
											$a_prestamo[$o_objBean->getIdPrestamo()]['origen']				= (string)$cadena_origen;	
											
											$a_prestamo[$o_objBean->getIdPrestamo()]['cobro_realizado']		= (float)$cobro_realizado;	//Suma de los cobros del dia del prestamo
											$a_prestamo[$o_objBean->getIdPrestamo()]['numero_pagos']		= (float)$numero_pagos;	//Suma de los cobros del dia del prestamo
											
											$a_prestamo[$o_objBean->getIdPrestamo()]["nombre_completo"] 	= (string)utf8_encode(ucwords(mb_strtolower ($o_objBean->getObjectCliente()->getNombres()." ".$o_objBean->getObjectCliente()->getApellidoPaterno()." ".$o_objBean->getObjectCliente()->getApellidoMaterno())));
											$a_prestamo[$o_objBean->getIdPrestamo()]["sexo"] 		= (string)$o_objBean->getObjectCliente()->getSexo();
											$a_prestamo[$o_objBean->getIdPrestamo()]["telefono"] 		= (string)$o_objBean->getObjectCliente()->getCelular();
											$a_prestamo[$o_objBean->getIdPrestamo()]["celular"] 			= (String)$o_objBean->getObjectCliente()->getTelefono();
											$a_prestamo[$o_objBean->getIdPrestamo()]["direccion"] 		= (string)utf8_encode($o_objBean->getObjectCliente()->getDireccion());
											$a_prestamo[$o_objBean->getIdPrestamo()]["gasto_administrativo"] 	= (float)$o_objBean->getObjectCliente()->getGastoAdministrativoPorcentaje();
											$a_prestamo[$o_objBean->getIdPrestamo()]["ruta_foto_negocio"]	= (string)$s_Destino_Negocio;
											$a_prestamo[$o_objBean->getIdPrestamo()]["ruta_foto_domicilio"]	= (string)$s_Destino_Domicilio;
											$a_prestamo[$o_objBean->getIdPrestamo()]["ubicacion_domicilio_longitud"]	= (string)$o_objBean->getObjectCliente()->getLongitudDomicilio();
											$a_prestamo[$o_objBean->getIdPrestamo()]["ubicacion_domicilio_latitud"]	= (string)$o_objBean->getObjectCliente()->getLatitudDomicilio();;
											$a_prestamo[$o_objBean->getIdPrestamo()]["ubicacion_negocio_longitud"]	= (string)$o_objBean->getObjectCliente()->getLongitudNegocio();;
											$a_prestamo[$o_objBean->getIdPrestamo()]["ubicacion_negocio_latitud"]	= (string)$o_objBean->getObjectCliente()->getLatitudNegocio();
											$a_prestamo[$o_objBean->getIdPrestamo()]["idcliente"] 		= $o_objBean->getIdCliente();
											$a_prestamo[$o_objBean->getIdPrestamo()]["semaforo"] 		= (string)$o_objBean->getSemaforo();
											
											
											$i++;
											
										}
										/*
										echo "<pre>";
										
										print_r($a_prestamo);
										echo "</pre>";*/
										$a_resultado['total_registros'] 		= count($a_prestamo);		
										$a_resultado['prestamos'] 				= $a_prestamo;		
									}else{
										$a_resultado = mostrar_error("NO_EXISTEN_PRESTAMOS",$mensaje);
									}
									
								}else{
									$a_resultado['estado'] = "3";
									$a_resultado['mensaje'] = "Token No valido";	
								}
		
							}else{
								$a_resultado['estado'] = "4";
								$a_resultado['mensaje'] = "No existe el usuario";
							}
					 
					 break;
					//Las cobranzas la realizara el supervisor de sucursal o el operador
					case "cobranzas": 
							$ruta = "/images/uploadFiles/";
							
							
							$codigo_cliente 	= $o_datos['idcliente'];
							/*
							 // Foto de Negocio
							 $i_IdTipoFile = "8";
							
							 $o_ObjectFN_TN = new Cr_cliente_fileFN();
							 $o_ObjectFN_TN->setIdCliente($codigo_cliente);
							 $o_ObjectFN_TN->setEliminado( -1 );
							 $o_ObjectFN_TN->setIdtipofile($i_IdTipoFile);
							 $o_ObjectFN_TN->addOrderBy(Cr_cliente_fileFN::IdClienteFile ,false);
							 $o_ObjectBN_TN = $o_ObjectFN_TN->select( 0, 1);
							 
							 if( is_array($o_ObjectBN_TN))
							{
								$s_NombreFile = $o_ObjectBN_TN[0]->getNombreFile();
								$s_Destino_Negocio = $url_base.$ruta.$s_NombreFile;
							}
							
							 // Foto de Negocio
							 $i_IdTipoFile = "6";
							
							 $o_ObjectFN_TC = new Cr_cliente_fileFN();
							 $o_ObjectFN_TC->setIdCliente($codigo_cliente);
							 $o_ObjectFN_TC->setEliminado( -1 );
							 $o_ObjectFN_TC->setIdtipofile($i_IdTipoFile);
							 $o_ObjectFN_TC->addOrderBy(Cr_cliente_fileFN::IdClienteFile ,false);
							 $o_ObjectBN_TC = $o_ObjectFN_TC->select( 0, 1);
							 
							 if( is_array($o_ObjectBN_TC) )
							{
								$s_NombreFile = $o_ObjectBN_TC[0]->getNombreFile();
								$s_Destino_Domicilio = $url_base.$ruta.$s_NombreFile;
							}
							
							*/
							
							$idusuario 			= $o_datos['idusuario'];
							
							$idsucursal 		=  $o_datos['idsucursal'];
							$idmercado	 		=  $o_datos['idmercado'];
						
							
							//$codigo_cliente 	= $o_datos['idcliente']; Solo para que no se caiga
							$apellido_paterno 	= $o_datos['apellido_paterno'];

												
							if($idusuario){
								$fechaDiaAbierto = fechaDiaAbierto($idusuario);
								
								$o_user 		= new user_class();
								if ($o_user->findUser($idusuario)){
									
									
									$a_SucursalMercado 	= sucursalMercado($o_user);								
									/*
									echo "<pre>";
									
									print_r($a_SucursalMercado);
									echo "</pre>";
									*/
									
									if(!$idmercado) $a_resultado["idmercado"] 	= (string)$a_SucursalMercado["idmercado"];
									//$a_resultado["idsmercados"] = $a_SucursalMercado["idsmercados"];
									$a_resultado["idsucursal"] 	= $a_SucursalMercado["idsucursal"];	 						
									
									
											
									//Saldran todos los prestamos Pendientes y que no son marcados con Mora
									$o_ObjectBean = new PrestamoBean();
									$o_ObjectBean->setEstado("P");
									if($a_resultado["idsmercados"]   	!="") 	$o_ObjectBean->setFiltroMercado($a_resultado["idsmercados"]);
									if($a_resultado["idmercado"]   	!="") 	$o_ObjectBean->setIdMercado($a_resultado["idmercado"]);
									
									$a_filtroCobranza = getFiltroCobranza($o_user,$fechaDiaAbierto,$idmercado);
									
									/*echo "<pre>";
									
									print_r($a_filtroCobranza);
									echo "</pre>";
										*/						
									if($a_filtroCobranza["idcolaborador"]){
										$o_ObjectBean->setIdColaboradorPrestamo($a_filtroCobranza["idcolaborador"]);
										if(($o_user->getUserRoleId() == "sys.ope" && $a_resultado["idmercado"]) && !$idsucursal){ 
											$dia = date('N',strtotime($fechaDiaAbierto));
											if($dia != 7){
												inicializarPagos($a_resultado["idmercado"],$fechaDiaAbierto, $a_filtroCobranza["idcolaborador"],$idusuario);
											}
										}
										
									}
									if($a_filtroCobranza["idprestamos"]){
										$o_ObjectBean->setIdsPrestamos($a_filtroCobranza["idprestamos"]);
									}else{
										if($o_user->getUserRoleId() == "sys.sup"){
											$a_filtroCobranza["idprestamos"] = array('9999'=>9999999);
											$o_ObjectBean->setIdsPrestamos($a_filtroCobranza["idprestamos"]);
										}
									}
									
									if($codigo_cliente   			!="")	$o_ObjectBean->setIdCliente($codigo_cliente); 
									if($apellido_paterno 			!="")	$o_ObjectBean->setApellidoPaterno(utf8_decode($apellido_paterno));
									
									//$o_ObjectBean->setFlagReporte('2');
									
									$o_class = new PrestamoBL();
									$a_ObjectBean = $o_class->busquedaPrestamo($o_ObjectBean);
								
									if(count($a_ObjectBean)>0){
										$i = 1;
										foreach ($a_ObjectBean as $iKey => $o_objBean){
										
											// Foto de Negocio
											$i_IdTipoFile = "8";
											$s_Destino_Negocio = getClienteFile($o_objBean->getIdCliente(),$i_IdTipoFile,$url_base.$ruta);
												
											// Foto de Domicilio
											$i_IdTipoFile = "6";
											$s_Destino_Domicilio = getClienteFile($o_objBean->getIdCliente(),$i_IdTipoFile,$url_base.$ruta);
										
											$a_clientes[$o_objBean->getIdCliente()]["nombre_completo"] 	= (string)utf8_encode(ucwords(mb_strtolower ($o_objBean->getObjectCliente()->getNombres()." ".$o_objBean->getObjectCliente()->getApellidoPaterno()." ".$o_objBean->getObjectCliente()->getApellidoMaterno())));
											$a_clientes[$o_objBean->getIdCliente()]["sexo"] 		= (string)$o_objBean->getObjectCliente()->getSexo();
											$a_clientes[$o_objBean->getIdCliente()]["telefono"] 		= (string)$o_objBean->getObjectCliente()->getCelular();
											$a_clientes[$o_objBean->getIdCliente()]["celular"] 			= (String)$o_objBean->getObjectCliente()->getTelefono();
											$a_clientes[$o_objBean->getIdCliente()]["direccion"] 		= (string)utf8_encode($o_objBean->getObjectCliente()->getDireccion());
											$a_clientes[$o_objBean->getIdCliente()]["gasto_administrativo"] 	= (float)$o_objBean->getObjectCliente()->getGastoAdministrativoPorcentaje();
											$a_clientes[$o_objBean->getIdCliente()]["ruta_foto_negocio"]	= (string)$s_Destino_Negocio;
											$a_clientes[$o_objBean->getIdCliente()]["ruta_foto_domicilio"]	= (string)$s_Destino_Domicilio;
											$a_clientes[$o_objBean->getIdCliente()]["ubicacion_domicilio_longitud"]	= (string)$o_objBean->getObjectCliente()->getLongitudDomicilio();
											$a_clientes[$o_objBean->getIdCliente()]["ubicacion_domicilio_latitud"]	= (string)$o_objBean->getObjectCliente()->getLatitudDomicilio();;
											$a_clientes[$o_objBean->getIdCliente()]["ubicacion_negocio_longitud"]	= (string)$o_objBean->getObjectCliente()->getLongitudNegocio();;
											$a_clientes[$o_objBean->getIdCliente()]["ubicacion_negocio_latitud"]	= (string)$o_objBean->getObjectCliente()->getLatitudNegocio();
											$a_clientes[$o_objBean->getIdCliente()]["idcliente"] 		= $o_objBean->getIdCliente();
											$a_clientes[$o_objBean->getIdCliente()]["semaforo"] 		= (string)$o_objBean->getSemaforo();
											
											
											$o_PrestamoDPT = new PrestamoDP(new PrestamoBean());
											$cobro_realizado = $o_PrestamoDPT->getTotalDiaAbierto($o_objBean->getIdPrestamo(),$fechaDiaAbierto);
											$numero_pagos = $o_PrestamoDPT->getNumeroPagosDiaAbierto($o_objBean->getIdPrestamo(),$fechaDiaAbierto);
											
											$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['idprestamo'] 			= (int)$o_objBean->getIdPrestamo();	
											$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['amortizo'] 			= (float)sumaAmortizo($fechaDiaAbierto,$o_objBean->getIdPrestamo());	
											$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['monto_total'] 		= (float)$o_objBean->getMontoTotal();	
											$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['capital'] 			= (float)$o_objBean->getMontoPrestado();	
											$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['monto_interes']		= (float)$o_objBean->getInteresMonto();	
											$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['saldo']				= (float)$o_objBean->getSaldoPrestamo();	
											$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['monto_interes']		= (float)$o_objBean->getInteresPorcentaje();	
											$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['gasto_administrativo']= (float)$o_objBean->getGastoAdministrativo();	
											$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['fecha_prestamo']		= (string)$o_objBean->getFechaInicio();	
											$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['fecha_vencimiento']	= (string)$o_objBean->getFechaVencimiento();	
											$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['estado']				= (string)$o_objBean->getEstado();	
											
											//Pagos realizados en la fecha abierta
											
											if($o_objBean->getOrigen() == "R"){
												$cadena_origen = "Nuevo";
											}elseif($o_objBean->getOrigen() == "F" && $o_objBean->getMontoExtra() >0){
												$cadena_origen = "Renovado"; 
											}elseif($o_objBean->getOrigen() == "F"){
												$cadena_origen = "Refinanciado"; 
											}
											
											$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['origen']				= (string)$cadena_origen;	
											
											$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['cobro_realizado']		= (float)$cobro_realizado;	//Suma de los cobros del dia del prestamo
											$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['numero_pagos']		= (float)$numero_pagos;	//Suma de los cobros del dia del prestamo
											
											$a_clientes[$o_objBean->getIdCliente()]['prestamo'] = $a_prestamo[$o_objBean->getIdCliente()];
											$i++;
											
										}
										/*
										echo "<pre>";
										
										print_r($a_clientes);
										echo "</pre>";*/
										$a_resultado['total_registros'] 		= count($a_clientes);		
										$a_resultado['clientes'] 		= $a_clientes;		
									}else{
										$a_resultado = mostrar_error("NO_EXISTEN_PRESTAMOS",$mensaje);
									}
									
								}else{
									$a_resultado['estado'] = "3";
									$a_resultado['mensaje'] = "Token No valido";	
								}
		
							}else{
								$a_resultado['estado'] = "4";
								$a_resultado['mensaje'] = "No existe el usuario";
							}
					 
					 break;
					 case "pago":
						$idusuario 			= $o_datos['idusuario'];
						$idcliente 			= $o_datos['idcliente'];
						$monto 				= $o_datos['monto'];
						$idprestamo			= $o_datos['idprestamo'];
						$ubicacion_registro_latitud	= $o_datos['ubicacion_registro_latitud'];
						$ubicacion_registro_longitud	= $o_datos['ubicacion_registro_longitud'];
						
						$permitir_trx 		= 1;		 		
						if($idusuario){
							if($idcliente){
								
								//////////////////////////////////////////7
								$o_crClienteBean = new ClienteBean();
								$o_crClienteBean->setIdCliente($idcliente);
								
								$o_clienteDP = new ClienteDP($o_crClienteBean);
								$a_o_clienteDP = $o_clienteDP->select();
								
								if(is_array($a_o_clienteDP) && count($a_o_clienteDP)){
									
									$o_ClienteBN 	= $a_o_clienteDP[0];
									$Correo 		= $o_ClienteBN->getCorreo();
									
									
								}
								
								///////////////////////////////////////////////
								
								$o_crColaboradorBean = new ColaboradorBean();
								$o_crColaboradorBean->setUsuario($idusuario);
								
								$o_crColaboradorDP = new ColaboradorDP($o_crColaboradorBean);
								$a_o_crColaboradorDP = $o_crColaboradorDP->select();
								
								if(is_array($a_o_crColaboradorDP) && count($a_o_crColaboradorDP)){
									
									$o_crColaboradorBN 	= $a_o_crColaboradorDP[0];
									$idColaborador 		= $o_crColaboradorBN->getIdColaborador();
									
									$fechaDiaAbierto = fechaDiaAbierto($idusuario);
									
									$o_PrestamoBeanTemp = new PrestamoBean();
									$o_PrestamoBeanTemp->setIdPrestamo($idprestamo);
									
									$o_PrestamoDP = new PrestamoDP($o_PrestamoBeanTemp);
									$a_o_Prestamo = $o_PrestamoDP->select();
									if(is_array($a_o_Prestamo)){
										foreach ($a_o_Prestamo as $key =>$o_Prestamo){
											$SaldoAnterior 			= $o_Prestamo->getSaldoPrestamo();
											$IdColaboradorPrestamo 	= $o_Prestamo->getIdColaborador();
											$EstadoPrestamo 		= $o_Prestamo->getEstado();
										}
									}else{
										$a_resultado['estado'] = "5";
										$a_resultado['mensaje'] = "Fallo, el codigo del prestamo no existe";					
										$permitir_trx = 0; 
									}
																	
									if($EstadoPrestamo == "C"){
										$a_resultado['estado'] = "2";
										$a_resultado['mensaje'] = "Fallo, no se puede ingresar un pago al prestamo ".$idprestamo." porque esta Cancelado.";
										$permitir_trx = 0;
									}elseif($monto > $SaldoAnterior){
										$a_resultado['estado'] = "4";
										$a_resultado['mensaje'] = "Fallo, el monto ingresado es mayor al Saldo";					
										$permitir_trx = 0; 
									}
									
									if($permitir_trx){
										$id_pago_update = "";
										$o_PagoBean = new PagoBean();
										$o_PagoBean->setIdPrestamo($idprestamo);
										$o_PagoBean->setFechaPago($fechaDiaAbierto);
										$o_PagoBean->setFechaFinal($fechaDiaAbierto);
										$o_PagoBL 		= new PagoBL();
										$a_o_pago 		= $o_PagoBL->busquedaPago($o_PagoBean);
										
										if(is_array($a_o_pago) && count($a_o_pago)){//Update del Pago
											foreach ($a_o_pago as $key => $o_pago) {
												if($o_pago->getMontoPago()== 0){
													$id_pago_update = $o_pago->getIdPago();
												}
											}
										}
										
										$o_PagoBean = new PagoBean();
										$o_PagoBean->setIdPrestamo($idprestamo);
										$o_PagoBean->setRegistroLatitud($ubicacion_registro_latitud);
										$o_PagoBean->setRegistroLongitud($ubicacion_registro_longitud);
										$o_PagoBean->setMontoPago($monto);
										$o_PagoBean->setFechaPago($fechaDiaAbierto);
										$o_PagoBean->setUsuarioCreacion($idusuario);
										$o_PagoBean->setIdColaborador($IdColaboradorPrestamo);
										$o_PagoBean->setFechaCreacion(date('Y-m-d H:i:s'));
										$o_PagoBL = new PagoBL();
													
										if($id_pago_update){
											$o_PagoBean->setIdPago($id_pago_update);
											$o_PagoBL->modificarPago($o_PagoBean);
										}else{
											$o_PagoBL->insertarPago($o_PagoBean);
										}
										
										//Actualizar el Saldo del Prestamo-----------------------
																		
										
										$o_PrestamoBean = new PrestamoBean();
										$o_PrestamoBean->setIdPrestamo($idprestamo);
										$NuevoSaldo = $SaldoAnterior - $monto;
										
										if($NuevoSaldo == 0){
											$o_PrestamoBean->setSaldoPrestamo("0.00");
											$o_PrestamoBean->setEstado("C");
											$o_PrestamoBean->setFechaCancelacion(date('Y-m-d H:i:s'));
											
										}elseif($NuevoSaldo < 0){//Se cancelo con un monto mayor
											$NuevoSaldo = "0";
											$o_PrestamoBean->setSaldoPrestamo("0.00");
											if($SaldoMoraAnterior == 0){
												$o_PrestamoBean->setEstado("C");
												$o_PrestamoBean->setFechaCancelacion(date('Y-m-d H:i:s'));
											}
											
											
										}else{//Descuento de saldo Normal
											$o_PrestamoBean->setSaldoPrestamo($NuevoSaldo);	
										}
										
										$o_PrestamoBL = new PrestamoBL();
										$bResult = $o_PrestamoBL->modificarPrestamo($o_PrestamoBean);		
										if($bResult){
											/***/
											if($Correo){
											
												
												$mail = new PHPMailer();
											
												//Luego tenemos que iniciar la validación por SMTP:
												$mail->CharSet = "UTF-8";
												$mail->isSMTP();
												$mail->SMTPAuth = true;
												$mail->Host = "mail.sinergiaperu.com"; // A RELLENAR. AquÃ­ pondremos el SMTP a utilizar. Por ej. mail.midominio.com
												$mail->Username = "sistemas@sinergiaperu.com"; // A RELLENAR. Email de la cuenta de correo. ej.info@midominio.com La cuenta de correo debe ser creada previamente. 
												$mail->Password = "py[58RZuqVIj"; // A RELLENAR. Aqui pondremos la contraseÃ±a de la cuenta de correo
												//$mail->Port = 465; // Puerto de conexión al servidor de envio. 
												$mail->From = "sistemas@sinergiaperu.com"; // A RELLENARDesde donde enviamos (Para mostrar). Puede ser el mismo que el email creado previamente.
												$mail->FromName = "Sinergia"; //A RELLENAR Nombre a mostrar del remitente. 
												$mail->AddAddress("msotomayor@dataexe.com"); // Esta es la dirección a donde enviamos 
												if(is_valid_email($Correo)){
													$mail->AddAddress($Correo); // Esta es la dirección a donde enviamos 
												}else{
													$msg = "Correo no valido";
												}
												$mail->isHTML(true); // El correo se envÃ­a como HTML 
												$mail->Subject = "Sinergia :: Pago del Prestamo # ".$idprestamo; // Este es el titulo del email. 
												$body = "Se realizo el pago del monto: ".$monto; 
												$body .= "<br>Nuevo saldo: ".$NuevoSaldo; 
												$body .= "<br><br>Muchas gracias.  "; 
												//$body .= "AquÃ­ continuamos el mensaje"; 
												$mail->Body = $body; // Mensaje a enviar. 
												//$attachment = chunk_split($attachment);
												//$mail->AddStringAttachment($attachment, 'filename.pdf','base64', "application/pdf");
												//$mail->AddStringAttachment($attachment, 'some_filename.pdf');
												
												//$mail->AddAttachment($archivo); 
												$exito = $mail->Send(); // EnvÃ­a el correo.
												
												if($exito)
												{ 
													//echo "El correo fue enviado correctamente."; 
												}else{ 
													//echo "Hubo un problema. Contacta a un administrador."; 
												} 
											}
											$a_resultado['estado'] = "1";
											$a_resultado['mensaje'] = "Exito";
										 }
									}
								}else{
									$a_resultado['estado'] = "2";
									$a_resultado['mensaje'] = "Fallo, no se encontro el usuario";
								}
							}else{
								$a_resultado['estado'] = "2";
								$a_resultado['mensaje'] = "Fallo, no hay codigo de cliente";
							}
						}else{
							$a_resultado['estado'] = "2";
							$a_resultado['mensaje'] = "Fallo, debe de ingresar el usuario";
						}
					 
					 break;
					 case "renovacion"		:
					 case "refinanciacion"	:	
							$idusuario 						=  $o_datos['idusuario'];
							$idcliente 						=  $o_datos['idcliente'];
							$idprestamo 					=  $o_datos['idprestamo'];
							$monto	 						=  $o_datos['monto'];
							$interes	 					=  $o_datos['interes'];
							$mora		 					=  $o_datos['mora'];
							$montoextra	 					=  $o_datos['monto']; //Monto Extra
							$periodo	 					=  $o_datos['periodo'];
							$duracion	 					=  $o_datos['duracion'];
							
							$incluir_en_monto				=  $o_datos['incluir_en_monto'];
							
							$gastos_administrativos	 		=  $o_datos['gastos_administrativos'];
							$ubicacion_registro_latitud		=  $o_datos['ubicacion_registro_latitud'];
							$ubicacion_registro_longitud	=  $o_datos['ubicacion_registro_longitud'];
							
							if($idusuario){
								if($idcliente){
								
									if($incluir_en_monto == 'S'){
										$moraNP						=	$mora;	
										$gastos_administrativosNP	=	$gastos_administrativos;	
										$mora						=	0;
										$gastos_administrativos		=	0;
									}
									
								
									
									//////////////////////////////////////////7
									$o_crClienteBean = new ClienteBean();
									$o_crClienteBean->setIdCliente($idcliente);
									
									///////////////////////////////////////////////
									
									$o_crColaboradorBean = new ColaboradorBean();
									$o_crColaboradorBean->setUsuario($idusuario);
									
									$o_crColaboradorDP = new ColaboradorDP($o_crColaboradorBean);
									$a_o_crColaboradorDP = $o_crColaboradorDP->select();
									
									if(is_array($a_o_crColaboradorDP) && count($a_o_crColaboradorDP)){
										
										$o_crColaboradorBN 	= $a_o_crColaboradorDP[0];
										$idColaborador 		= $o_crColaboradorBN->getIdColaborador();
										
										$fechatransaccion 	= $o_crColaboradorDP->getFechaTransaccion($idColaborador);
										
										if($idprestamo){
								
											$o_PrestamoBeanAnt = new PrestamoBean();
											$o_PrestamoBeanAnt->setIdPrestamo($idprestamo);
											$o_class = new PrestamoBL();
											$a_ObjectBeanAnt = $o_class->busquedaPrestamo($o_PrestamoBeanAnt);
										}
										
										
										if(is_array($a_ObjectBeanAnt)){
											 while(list($key,$o_ObjectBean) = each($a_ObjectBeanAnt)){
												$SaldoPrestamo = $o_ObjectBean->getSaldoPrestamo();
												$Estado = $o_ObjectBean->getEstado();
												$IdCliente = $o_ObjectBean->getIdCliente();
												$IdColaboradorP = $o_ObjectBean->getIdColaborador();
											 }
										}
										
										
										if($monto) $montoextra = $monto - $SaldoPrestamo;
														
										if($Estado == "C"){
											$a_resultado['estado'] = "2";
											$a_resultado['mensaje'] = "Fallo, el prestamo ".$idprestamo." a refinanciar esta cancelado";
										}elseif($idcliente != $IdCliente){
											$a_resultado['estado'] = "2";
											$a_resultado['mensaje'] = "Fallo, el Prestamo no ".$idprestamo." corresponde al cliente ".$idcliente;
										}else{
											//VALIDAR LA HUELLA DEL CLIENTE------------------------------------------
											
											//-----------------------------------------------------------------------
										
											/**/	
											$o_PrestamoBean = new PrestamoBean();
											$o_PrestamoBean->setIdCliente($IdCliente);
											$o_PrestamoBean->setMontoExtra(round($montoextra,2));
											$montoPrestado = $SaldoPrestamo + $montoextra + $moraNP + $gastos_administrativosNP;
											
											$montoTotal 	= round(($montoPrestado)*(1+$interes/100),1);
											$o_PrestamoBean->setMontoPrestado($montoPrestado);
											$o_PrestamoBean->setMontoTotal(round($montoTotal,1));
											$o_PrestamoBean->setSaldoPrestamo(round($montoTotal,1));
											$o_PrestamoBean->setInteresPorcentaje($interes);
											
											$o_PrestamoBean->setFechaInicio($fechatransaccion);
											
											$o_PrestamoBean->setPeriodicidadPago($periodo);
											$o_PrestamoBean->setDuracion($duracion); 
											$o_PrestamoBean->setOrigen("F");
											$o_PrestamoBean->setFlagReporte('2');
											$o_PrestamoBean->setIdPrestamoReferencia($idprestamo);
											
											
											$fecha_ini = date('Y-m-d',strtotime($fechatransaccion.' +1 days'));
											
											switch ($periodo){
												case "D" : 
														switch ($duracion){
															/**********************/
															case 7 :  $MontoCuota = round($montoTotal/5,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +7 days'));
																	  $NroCuotas=5; break;
															/*********************/ 
															case 15 : $MontoCuota = round($montoTotal/13,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +15 days'));
																	  $NroCuotas=13; break;
															case 30 : $MontoCuota = round($montoTotal/26,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +30 days'));
																	  $NroCuotas=26; break;
															case 45 : $MontoCuota = round($montoTotal/39,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +45 days'));
																	  $NroCuotas=39; break;
															case 60 : $MontoCuota = round($montoTotal/52,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +60 days'));
																	  $NroCuotas=52; break;
															case 75 : $MontoCuota = round($montoTotal/65,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +75 days'));
																	  $NroCuotas=65; break;
															case 90 : $MontoCuota = round($montoTotal/88,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +90 days'));
																	  $NroCuotas=88; break;
														}
														break;
												case "S":
														switch ($duracion){
															/**********************/
															case 7 :  $MontoCuota = round($montoTotal/1,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +7 days'));
																	  $NroCuotas=1; break;
															/*********************/
															case 15 : $MontoCuota = round($montoTotal/2,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +15 days'));
																	  $NroCuotas=2; break;
															case 30 : $MontoCuota = round($montoTotal/4,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +30 days'));
																	  $NroCuotas=4; break;
															case 45 : $MontoCuota = round($montoTotal/6,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +45 days'));
																	  $NroCuotas=6; break;
															case 60 : $MontoCuota = round($montoTotal/8,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +60 days'));
																	  $NroCuotas=8; break;
															case 75 : $MontoCuota = round($montoTotal/10,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +75 days'));
																	  $NroCuotas=10; break;
															case 90 : $MontoCuota = round($montoTotal/12,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +90 days'));
																	  $NroCuotas=12; break;
														}
														break;
												case "Q":
														switch ($duracion){	
															case 15 : $MontoCuota = round($montoTotal/1,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +15 days')); 
																	  $NroCuotas=1; break;
															case 30 : $MontoCuota = round($montoTotal/2,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +30 days'));  				
																	  $NroCuotas=2; break;
															case 45 : $MontoCuota = round($montoTotal/3,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +45 days'));
																	  $NroCuotas=3; break;
															case 60 : $MontoCuota = round($montoTotal/4,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +60 days'));
																	  $NroCuotas=4; break;
															case 75 : $MontoCuota = round($montoTotal/5,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +75 days'));  				
																	  $NroCuotas=5; break;
															case 90 : $MontoCuota = round($montoTotal/6,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +90 days'));
																	  $NroCuotas=6; break;
														}
														break;
												case "M":
														switch ($duracion){	
															
															case 30 : $MontoCuota = round($montoTotal/1,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +30 days'));
																	  $NroCuotas=1; break;
															case 60 : $MontoCuota = round($montoTotal/2,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +60 days'));
																	  $NroCuotas=2; break;
															case 90 : $MontoCuota = round($montoTotal/3,2);
																	  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +90 days'));
																	  $NroCuotas=3; break;
														}
														break;
											}
											if($duracion){
												$o_PrestamoBean->setCuotaPago($MontoCuota);
												$o_PrestamoBean->setFechaVencimiento($fechaVencimiento);
												$InteresMonto = round((($montoPrestado)*$interes)/100,2);
												$o_PrestamoBean->setInteresMonto($InteresMonto);
												$o_PrestamoBean->setNroCuotas($NroCuotas);
												$o_PrestamoBean->setEstado("P");
												$o_PrestamoBean->setFechaCreacion(date("Y-m-d H:i:s"));
												$o_PrestamoBean->setUsuarioCreacion($idusuario);
												$o_PrestamoBean->setIdColaborador($IdColaboradorP);
												$o_PrestamoBean->setGastoAdministrativo($gastos_administrativos);
												$o_PrestamoBean->setGastoAdministrativoNP($gastos_administrativosNP);
												$o_PrestamoBean->setMoraNP($moraNP);
												$o_PrestamoBean->setRegistroLatitud($ubicacion_registro_latitud);
												$o_PrestamoBean->setRegistroLongitud($ubicacion_registro_longitud);
												 
																						
												 
												 
												$o_PrestamoBL = new PrestamoBL();
												$bResult = $o_PrestamoBL->insertarPrestamo($o_PrestamoBean);
												
												if($bResult){
													$o_PrestamoBeanAnt = new PrestamoBean();
													$o_PrestamoBeanAnt->setIdPrestamo($idprestamo);
													$o_PrestamoBeanAnt->setEstado("C");
													$o_PrestamoBeanAnt->setFechaCancelacion($fechatransaccion." ".date('H:i:s'));
													$o_PrestamoBeanAnt->setFechaModificacion(date("Y-m-d H:i:s"));
													$o_PrestamoBeanAnt->setUsuarioModificacion($idusuario);
													$o_class = new PrestamoBL();
													$a_ObjectBeanAnt = $o_class->modificarPrestamo($o_PrestamoBeanAnt);
													
													if((float)$mora > 0){
														
														$o_PagoBean = new PagoBean();
														$o_PagoBean->setIdPrestamo($idprestamo);
														$o_PagoBean->setFechaPago($fechatransaccion);
														$o_PagoBean->setTipopago('2');
														$o_PagoBean->setMontoPago($mora);
														$o_PagoBean->setIdColaborador($idColaborador);
														$o_PagoBean->setFechaCreacion(date("Y-m-d H:i:s"));
														$o_PagoBean->setUsuarioCreacion($idusuario);
														$o_PagoDP = new PagoDP($o_PagoBean);
														$o_PagoDP->save();
													}
												
													$o_newPrestamoBean = new PrestamoBean();
													$o_newPrestamoBean->setIdPrestamo($bResult);
													
													$o_newPrestamoDP = new PrestamoDP($o_newPrestamoBean);
													$a_newPrestamoBean =$o_newPrestamoDP->select();
													$o_newPrestamo = $a_newPrestamoBean[0];
													
													$a_prestamoNuevo['idprestamo'] 	= $o_newPrestamo->getIdPrestamo();
													$a_prestamoNuevo['monto_total']	= (float)$o_newPrestamo->getMontoTotal();
													$a_prestamoNuevo['capital']	= (float)$o_newPrestamo->getMontoPrestado();
													$a_prestamoNuevo['monto_interes']	= (float)$o_newPrestamo->getInteresMonto();
													$a_prestamoNuevo['saldo']	= (float)$o_newPrestamo->getSaldoPrestamo();
													$a_prestamoNuevo['interes']	= (float)$o_newPrestamo->getInteresPorcentaje();
													$a_prestamoNuevo['gastos_administrativos']	= (float)$o_newPrestamo->getGastoAdministrativo();
													$a_prestamoNuevo['fecha_prestamo']	= (String)$o_newPrestamo->getFechaInicio();
													$a_prestamoNuevo['fecha_vencimiento']	= (String)$o_newPrestamo->getFechaVencimiento();
													$a_prestamoNuevo['estado']	= $o_newPrestamo->getEstado();
													$a_prestamoNuevo['monto_extra']	= (float)$o_newPrestamo->getMontoExtra();
													
												
													$a_resultado['estado'] = "1";
													$a_resultado['mensaje'] = "Exito";
													$a_resultado['nuevo_prestamo'] = $a_prestamoNuevo;
												
												}else{
													$a_resultado['estado'] = "2";
													$a_resultado['mensaje'] = "Fallo, no se registro el prestamo a renovar";
												}
											}else{
												$a_resultado['estado'] = "2";
												$a_resultado['mensaje'] = "Fallo, el Prestamo no tiene duracion ".$idprestamo.".";
											}
										}
									
									}else{
										$a_resultado['estado'] = "2";
										$a_resultado['mensaje'] = "Fallo, no se encontro el usuario";
									}
								}else{
									
								}
							}else{
								$a_resultado['estado'] = "2";
								$a_resultado['mensaje'] = "Fallo, debe de ingresar el usuario";
							}
						
					 break;
					 
					 case "prestamo":
						$idusuario 						=  $o_datos['idusuario'];
						$idcliente 						=  $o_datos['idcliente'];
						$idprestamo 					=  $o_datos['idprestamo'];
						$monto			 				=  $o_datos['monto'];
						$interes	 					=  $o_datos['interes'];
						$mora		 					=  $o_datos['mora'];
						$monto	 						=  $o_datos['monto']; //Monto Extra
						$periodo	 					=  $o_datos['periodo'];
						$duracion	 					=  $o_datos['duracion'];
						
						$gastos_administrativos	 		=  $o_datos['gastos_administrativos'];
						$ubicacion_registro_latitud		=  $o_datos['ubicacion_registro_latitud'];
						$ubicacion_registro_longitud	=  $o_datos['ubicacion_registro_longitud'];
						if($idusuario){
							if($idcliente){
								
								
											
								$o_crColaboradorBean = new ColaboradorBean();
								$o_crColaboradorBean->setUsuario($idusuario);
								
								$o_crColaboradorDP = new ColaboradorDP($o_crColaboradorBean);
								$a_o_crColaboradorDP = $o_crColaboradorDP->select();
								
								if(is_array($a_o_crColaboradorDP) && count($a_o_crColaboradorDP)){
									
									$o_crColaboradorBN 	= $a_o_crColaboradorDP[0];
									$idColaborador 		= $o_crColaboradorBN->getIdColaborador();
									
									$fechatransaccion 	= $o_crColaboradorDP->getFechaTransaccion($idColaborador);
					
									//VALIDAR LA HUELLA DEL CLIENTE------------------------------------------
									
										
									//-----------------------------------------------------------------------
								
									/**/	
									$o_PrestamoBean = new PrestamoBean();
									$o_PrestamoBean->setIdCliente($idcliente);
									$montoTotal 	= round(($monto)*(1+$interes/100),1);
									$o_PrestamoBean->setMontoPrestado($monto);
									$o_PrestamoBean->setMontoTotal(round(($monto)*(1+$interes/100),1));
									$o_PrestamoBean->setSaldoPrestamo(round(($monto)*(1+$interes/100),1));
									$o_PrestamoBean->setInteresPorcentaje($interes);
									
									$o_PrestamoBean->setFechaInicio($fechatransaccion);
									
									$o_PrestamoBean->setPeriodicidadPago($periodo);
									$o_PrestamoBean->setDuracion($duracion); 
									$o_PrestamoBean->setOrigen("R");
									$o_PrestamoBean->setFlagReporte('2');
									
									
									$fecha_ini = date('Y-m-d',strtotime($fechatransaccion.' +1 days'));
									
									switch ($periodo){
										case "D" : 
												switch ($duracion){
													/**********************/
													case 7 :  $MontoCuota = round($montoTotal/5,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +7 days'));
															  $NroCuotas=5; break;
													/*********************/ 
													case 15 : $MontoCuota = round($montoTotal/13,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +15 days'));
															  $NroCuotas=13; break;
													case 30 : $MontoCuota = round($montoTotal/26,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +30 days'));
															  $NroCuotas=26; break;
													case 45 : $MontoCuota = round($montoTotal/39,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +45 days'));
															  $NroCuotas=39; break;
													case 60 : $MontoCuota = round($montoTotal/52,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +60 days'));
															  $NroCuotas=52; break;
													case 75 : $MontoCuota = round($montoTotal/65,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +75 days'));
															  $NroCuotas=65; break;
													case 90 : $MontoCuota = round($montoTotal/88,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +90 days'));
															  $NroCuotas=88; break;
												}
												break;
										case "S":
												switch ($duracion){
													/**********************/
													case 7 :  $MontoCuota = round($montoTotal/1,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +7 days'));
															  $NroCuotas=1; break;
													/*********************/
													case 15 : $MontoCuota = round($montoTotal/2,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +15 days'));
															  $NroCuotas=2; break;
													case 30 : $MontoCuota = round($montoTotal/4,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +30 days'));
															  $NroCuotas=4; break;
													case 45 : $MontoCuota = round($montoTotal/6,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +45 days'));
															  $NroCuotas=6; break;
													case 60 : $MontoCuota = round($montoTotal/8,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +60 days'));
															  $NroCuotas=8; break;
													case 75 : $MontoCuota = round($montoTotal/10,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +75 days'));
															  $NroCuotas=10; break;
													case 90 : $MontoCuota = round($montoTotal/12,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +90 days'));
															  $NroCuotas=12; break;
												}
												break;
										case "Q":
												switch ($duracion){	
													case 15 : $MontoCuota = round($montoTotal/1,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +15 days')); 
															  $NroCuotas=1; break;
													case 30 : $MontoCuota = round($montoTotal/2,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +30 days'));  				
															  $NroCuotas=2; break;
													case 45 : $MontoCuota = round($montoTotal/3,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +45 days'));
															  $NroCuotas=3; break;
													case 60 : $MontoCuota = round($montoTotal/4,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +60 days'));
															  $NroCuotas=4; break;
													case 75 : $MontoCuota = round($montoTotal/5,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +75 days'));  				
															  $NroCuotas=5; break;
													case 90 : $MontoCuota = round($montoTotal/6,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +90 days'));
															  $NroCuotas=6; break;
												}
												break;
										case "M":
												switch ($duracion){	
													
													case 30 : $MontoCuota = round($montoTotal/1,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +30 days'));
															  $NroCuotas=1; break;
													case 60 : $MontoCuota = round($montoTotal/2,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +60 days'));
															  $NroCuotas=2; break;
													case 90 : $MontoCuota = round($montoTotal/3,2);
															  $fechaVencimiento = date('Y-m-d',strtotime($fecha_ini.' +90 days'));
															  $NroCuotas=3; break;
												}
												break;
									}
									
									if($duracion){
										$o_PrestamoBean->setCuotaPago($MontoCuota);
										$o_PrestamoBean->setFechaVencimiento($fechaVencimiento);
										$InteresMonto = (round($monto)*$interes)/100;
										$o_PrestamoBean->setInteresMonto($InteresMonto);
										$o_PrestamoBean->setNroCuotas($NroCuotas);
										 
										$o_PrestamoBean->setEstado("P");
										$o_PrestamoBean->setFechaCreacion(date("Y-m-d H:i:s"));
										$o_PrestamoBean->setUsuarioCreacion($idusuario);
										
										$idColaboradorP = getColaboradorxCliente($idcliente);  	
										
										
										
											$o_PrestamoBean->setIdColaborador($idColaboradorP);
											//
											$o_PrestamoBean->setGastoAdministrativo($gastos_administrativos);
											$o_PrestamoBean->setRegistroLatitud($ubicacion_registro_latitud);
											$o_PrestamoBean->setRegistroLongitud($ubicacion_registro_longitud);
											 
											$o_PrestamoBL = new PrestamoBL();
											$bResult = $o_PrestamoBL->insertarPrestamo($o_PrestamoBean);
											
											
											if($bResult){
																
												$o_newPrestamoBean = new PrestamoBean();
												$o_newPrestamoBean->setIdPrestamo($bResult);
												
												$o_newPrestamoDP = new PrestamoDP($o_newPrestamoBean);
												$a_newPrestamoBean =$o_newPrestamoDP->select();
												$o_newPrestamo = $a_newPrestamoBean[0];
												
												$a_prestamoNuevo['idprestamo'] 	= $o_newPrestamo->getIdPrestamo();
												$a_prestamoNuevo['monto_total']	= (float)$o_newPrestamo->getMontoTotal();
												$a_prestamoNuevo['capital']	= 	(float)$o_newPrestamo->getMontoPrestado();
												$a_prestamoNuevo['monto_interes']	= (float)$o_newPrestamo->getInteresMonto();
												$a_prestamoNuevo['saldo']	= (float)$o_newPrestamo->getSaldoPrestamo();
												$a_prestamoNuevo['interes']	= (float)$o_newPrestamo->getInteresPorcentaje();
												$a_prestamoNuevo['gastos_administrativos']	= (float)$o_newPrestamo->getGastoAdministrativo();
												$a_prestamoNuevo['fecha_prestamo']	= $o_newPrestamo->getFechaInicio();
												$a_prestamoNuevo['fecha_vencimiento']	= $o_newPrestamo->getFechaVencimiento();
												$a_prestamoNuevo['estado']	= $o_newPrestamo->getEstado();
												
											
												$a_resultado['estado'] = "1";
												$a_resultado['mensaje'] = "Exito";
												$a_resultado['nuevo_prestamo'] = $a_prestamoNuevo;
											}
										
									}
								
								}else{
									$a_resultado['estado'] = "2";
									$a_resultado['mensaje'] = "Fallo, no se encontro el usuario";
								}
							}else{
								
							}
						}else{
							$a_resultado['estado'] = "2";
							$a_resultado['mensaje'] = "Fallo, debe de ingresar el usuario";
						}
						break;
						
					 case "historial_prestamos":
						$idusuario 						=  $o_datos['idusuario'];
						$idcliente 						=  $o_datos['idcliente'];
						
						/*
						$o_ClienteBean = new ClienteBean();
						$o_ClienteBean->setIdCliente($idcliente);
						
						$o_ClienteDP = new ClienteDP($o_ClienteBean);
						$a_clientes = $o_ClienteDP->select();
						if(is_array($a_clientes)){
							foreach ($a_clientes as $key => $o_cliente){
								$idMercado = $o_cliente->getIdMercado();
								$o_MercadoBean = new MercadoBean();
								$o_MercadoBean->setIdMercado($idMercado);
								$o_MercadoDP = new MercadoDP($o_MercadoBean);
								$a_MercadoDP = $o_MercadoDP->select();
								foreach ($a_MercadoDP as $key => $o_MercadoDP){
									$nombre_mercado		= $o_MercadoDP->getDescripcion();	
								}
								$nombre_completo = $o_cliente->getNombres()." ".$o_cliente->getApellidoPaterno()." ".$o_cliente->getApellidoMaterno();
							}
						}
						$a_cliente[]
						*/
						$o_ObjectBean = new PrestamoBean();				
						if($idcliente){
							$o_ObjectBean->setIdCliente($idcliente); 
						}
						$o_ObjectBean->page 	= 1;
						$o_ObjectBean->tamPag 	= 5;
						
						$o_classDP = new PrestamoDP($o_ObjectBean);
						
						$a_ObjectBean = $o_classDP->select(); 
						if(count($a_ObjectBean)>0){
							$i = 1;
							foreach ($a_ObjectBean as $iKey => $o_objBean){ 	
								if(!$o_objBean->getSemaforo()) $semaforo = "verde";
								else $semaforo = $o_objBean->getSemaforo();
								$a_prestamos[$i]['idprestamo'] = $o_objBean->getIdPrestamo();
								$a_prestamos[$i]['monto_total'] = (float)$o_objBean->getMontoTotal();
								$a_prestamos[$i]['capital'] = (float)$o_objBean->getMontoPrestado();
								$a_prestamos[$i]['estado'] = (string)$o_objBean->getEstado();
								$a_prestamos[$i]['saldo'] = (float)$o_objBean->getSaldoPrestamo();
								$a_prestamos[$i]['interes'] = (float)$o_objBean->getInteresPorcentaje();
								$o_PagoBean = new PagoBean();
								$o_PagoBean->setIdPrestamo($o_objBean->getIdPrestamo());
								$o_PagoBean->setTipo('2');
								$o_PagoDP = new PagoDP($o_PagoBean);
								$MontoPago = '0';
								$a_o_PagoDP = $o_PagoDP->select();
								if(is_array($a_o_PagoDP)){
									foreach ($a_o_PagoDP as $key => $o_PagoDP){
										$MontoPago += $o_PagoDP->getMontoPago();
									}
									
								}
								$a_prestamos[$i]['mora'] = (float)$MontoPago;
								$a_prestamos[$i]['gastos_administrativos'] = (float)$o_objBean->getGastoAdministrativo();
								$a_prestamos[$i]['fecha_prestamo'] 		= (String)$o_objBean->getFechaInicio();
								$a_prestamos[$i]['semaforo'] 			= (String)$o_objBean->getSemaforo();;
								$a_prestamos[$i]['fecha_vencimiento'] 	= $o_objBean->getFechaVencimiento();
								$i++;
							}
							$a_resultado['estado'] = "1";
							$a_resultado['mensaje'] = "Exito";
							$a_resultado['prestamos'] = $a_prestamos;
						}
						
						
						break;	 	 
					
					  case "registrar_presencia":
						$idusuario 						=  $o_datos['idusuario'];
						$idcliente 						=  $o_datos['idcliente'];
						$idprestamo 					=  $o_datos['idprestamo'];
						$ubicacion_registro_latitud		=  $o_datos['ubicacion_registro_latitud'];
						$ubicacion_registro_longitud	=  $o_datos['ubicacion_registro_longitud'];
						$huella							=  $o_datos['huella'];
						
						if(validarHuellaColaborador($idusuario,$huella)){
							$fechatransaccion 	= fechaDiaAbierto($idusuario);
							$o_PrestamoPresenciaBean = new PrestamoPresenciaBean();					
							$o_PrestamoPresenciaBean->setFecha($fechatransaccion);
							$o_PrestamoPresenciaBean->setFechaCreacion(date('Y-m-d H:i:s'));
							$o_PrestamoPresenciaBean->setUsuarioCreacion($idusuario);
							$o_PrestamoPresenciaBean->setIdCliente($idcliente);
							$o_PrestamoPresenciaBean->setIdPrestamo($idprestamo);
							$o_PrestamoPresenciaBean->setRegistroLatitud($ubicacion_registro_latitud);
							$o_PrestamoPresenciaBean->setRegistroLongitud($ubicacion_registro_longitud);
							$o_PrestamoPresenciaDP = new PrestamoPresenciaDP($o_PrestamoPresenciaBean);
							$o_PrestamoPresenciaDP->save();
							
							$a_resultado['estado'] = "1";
							$a_resultado['mensaje'] = "Exito";
						}else{
							$a_resultado['estado'] 		= "0";
							$a_resultado['mensaje'] 	= "La huella digital no corresponde al usuario ".$idusuario;
						}
						
						break;	 	
					 case "consulta_deudores" 	:
						
						$ruta = "/images/uploadFiles/";
						$idusuario 		=  $o_datos['idusuario'];
						$dni 			=  $o_datos['dni'];
						
										 
						$o_user 		= new user_class();
						if ($o_user->findUser($idusuario)){	
							
							
							
							$o_ObjectBean = new ClienteBean();
											
								
							
							if($idusuario){
								
								$o_ObjectBean->tamPag 	= 1;
												
								$o_ObjectBean->setDni($dni);
															
								$o_class 					= new ClienteDP($o_ObjectBean);
								$a_ObjectBean 				= $o_class->select();
														
								
								if(count($a_ObjectBean)>0){

									foreach ($a_ObjectBean as $iKey => $o_objBean){
										$a_datos["IdCliente"] 		= $o_objBean->getIdCliente();
										$codigo_cliente 			= $a_datos["IdCliente"];
										
										// Foto de Negocio
										$i_IdTipoFile = "8";
										$s_Destino_Negocio = getClienteFile($codigo_cliente,$i_IdTipoFile,$url_base.$ruta);
											
										 // Foto de Domicilio
										$i_IdTipoFile = "6";
										$s_Destino_Domicilio = getClienteFile($codigo_cliente,$i_IdTipoFile,$url_base.$ruta);
										
										
										$a_datos["NombreCompleto"] 	= (string)ucwords(utf8_encode(mb_strtolower ($o_objBean->getNombreCompleto())));
										$a_datos["Dni"] 			= (string)$o_objBean->getDni();
										$a_datos["Telefono"] 		= (string)$o_objBean->getTelefono();
										$a_datos["Celular"] 		= (string)$o_objBean->getCelular();
										$a_datos["ruta_foto_negocio"]	= (string)$s_Destino_Negocio;
										$a_datos["ruta_foto_domicilio"]	= (string)$s_Destino_Domicilio;
										$a_datos["ubicacion_domicilio_longitud"] = (string)$o_objBean->getLongitudDomicilio();
										$a_datos["ubicacion_domicilio_latitud"] = (string)$o_objBean->getLatitudDomicilio();
										
										$a_datos["ubicacion_negocio_longitud"] = (string)$o_objBean->getLongitudNegocio();
										$a_datos["ubicacion_negocio_latitud"] = (string)$o_objBean->getLatitudNegocio();
										
										$a_loadPrestamoDeudor		= loadPrestamoDeudor($o_objBean->getIdCliente());
										$a_datos["Tipo"] 			= $a_loadPrestamoDeudor['Tipo'];
										$a_datos["SaldoDeuda"] 		= $a_loadPrestamoDeudor['SaldoPrestamo'];
										$a_datos["FechaInicio"] 	= $a_loadPrestamoDeudor['FechaInicio'];
										$a_datos["FechaVencimiento"]= $a_loadPrestamoDeudor['FechaVencimiento'];
										$a_datos["Interes"] 		= $a_loadPrestamoDeudor['InteresPorcentaje'];
										$a_datos["Mora"] 			= $a_loadPrestamoDeudor['Mora'];
										
										
										
										
									}
									$a_resultado['datos'] 		= $a_datos;
									$a_resultado['estado'] = "1";
									$a_resultado['mensaje'] = "Exito";
								}else{
									
									$a_datos["IdCliente"] 		= "";
									$a_datos["NombreCompleto"] 	= "";
									$a_datos["Dni"] 			= "";
									$a_datos["Telefono"] 		= "";
									$a_datos["Celular"] 		= "";
									$a_datos["ruta_foto_negocio"]	= "";
									$a_datos["ruta_foto_domicilio"]	= "";
									$a_datos["ubicacion_domicilio_longitud"] = "";
									$a_datos["ubicacion_domicilio_latitud"] = "";
									$a_datos["ubicacion_negocio_longitud"] = "";
									$a_datos["ubicacion_negocio_latitud"] = "";
									$a_datos["Tipo"] 			= "No es cliente de sinergia";
									$a_datos["SaldoDeuda"] 		= "";
									$a_datos["FechaInicio"] 	= "";
									$a_datos["FechaVencimiento"]= "";
									$a_datos["Interes"] 		= "";
									$a_datos["Mora"] 			= "";
									
									$a_resultado['datos'] 		= $a_datos;
									$a_resultado['estado'] = "1";
									$a_resultado['mensaje'] = "Exito";
								}
								
							}
							
						}else{
							$a_resultado['estado'] 		= "0";
							$a_resultado['mensaje'] 	= "Usuario no permitido".$idusuario;	
						}
						
							
						
						break; 
					 case "clientes":
						
						$ruta = "/images/uploadFiles/";
						$idusuario 						=  $o_datos['idusuario'];
						
						$idsucursal 					=  $o_datos['idsucursal'];
						$idmercado	 					=  $o_datos['idmercado'];
						
						
						$codigo_cliente 				=  $o_datos['idcliente'];
						$apellido_paterno 				=  $o_datos['apellido_paterno'];
						
						
						 
						$o_user 		= new user_class();
						if ($o_user->findUser($idusuario)){	
							
							/*
							// Foto de Negocio
							 $i_IdTipoFile = "8";
							
							 $o_ObjectFN_TN = new Cr_cliente_fileFN();
							 $o_ObjectFN_TN->setIdCliente($codigo_cliente);
							 $o_ObjectFN_TN->setEliminado( -1 );
							 $o_ObjectFN_TN->setIdtipofile($i_IdTipoFile);
							 $o_ObjectFN_TN->addOrderBy(Cr_cliente_fileFN::IdClienteFile ,false);
							 $o_ObjectBN_TN = $o_ObjectFN_TN->select( 0, 1);
							 
							 if( is_array($o_ObjectBN_TN))
							{
								$s_NombreFile = $o_ObjectBN_TN[0]->getNombreFile();
								$s_Destino_Negocio = $url_base.$ruta.$s_NombreFile;
							}
							
													
							 // Foto de Domicilio
							 $i_IdTipoFile = "6";
							
							 $o_ObjectFN_TC = new Cr_cliente_fileFN();
							 $o_ObjectFN_TC->setIdCliente($codigo_cliente);
							 $o_ObjectFN_TC->setEliminado( -1 );
							 $o_ObjectFN_TC->setIdtipofile($i_IdTipoFile);
							 $o_ObjectFN_TC->addOrderBy(Cr_cliente_fileFN::IdClienteFile ,false);
							 $o_ObjectBN_TC = $o_ObjectFN_TC->select( 0, 1);
							 
							 if( is_array($o_ObjectBN_TC) )
							{
								$s_NombreFile = $o_ObjectBN_TC[0]->getNombreFile();
								$s_Destino_Domicilio = $url_base.$ruta.$s_NombreFile;
							}
							 */						
							
							 
							$o_ObjectBean = new ClienteBean();
							
							
							
								
							
							if($idusuario){
								sucursalMercado($o_user);
								$a_SucursalMercado 			= sucursalMercado($o_user);
								/*
								echo "<pre>";
								
								print_r($a_SucursalMercado);
								echo "</pre>";
								*/
								
								
								if(($o_user->getUserRoleId() == "sys.sup" || $o_user->getUserRoleId() == "sys.res" ) && !$idmercado){
									if($codigo_cliente !="" || $apellido_paterno !="")		{ 
										$o_ObjectBean->setIdCliente($codigo_cliente); 
										$o_ObjectBean->setApellidoPaterno(utf8_decode($apellido_paterno));
									}
								}
								
								$a_resultado["idmercado"] 	= (string)$a_SucursalMercado["idmercado"];
								//$a_resultado["idsmercados"]	= $a_SucursalMercado["idsmercados"];
								$a_resultado["idsucursal"] 	= (string)$a_SucursalMercado["idsucursal"];	 						
								
								
								
								$o_ObjectBean->tamPag 	= 5;
								
								if($codigo_cliente !="")		{ $o_ObjectBean->setIdCliente($codigo_cliente); }
								if($apellido_paterno !="")		{ $o_ObjectBean->setApellidoPaterno(utf8_decode($apellido_paterno)); }
													
								$o_ObjectBean->setFiltroMercado($a_SucursalMercado["idsmercados"]);
								
								if($o_user->getUserRoleId() == "sys.ope"){
									$o_ObjectBean->setIdMercado($a_SucursalMercado["idmercado"]);
								}else{
									$o_ObjectBean->setIdMercado($idmercado);
								}
								
								
								
								
								$o_class 					= new ClienteDP($o_ObjectBean);
								$a_ObjectBean 				= $o_class->select();
								
								/*
								echo "<pre>";
								print_r($a_ObjectBean);
								echo "</pre>";
								*/
								if(count($a_ObjectBean)>0){
									$i = 1;
									foreach ($a_ObjectBean as $iKey => $o_objBean){
										
										// Foto de Negocio
										$i_IdTipoFile = "8";
										$s_Destino_Negocio = getClienteFile($o_objBean->getIdCliente(),$i_IdTipoFile,$url_base.$ruta);
											
										// Foto de Domicilio
										$i_IdTipoFile = "6";
										$s_Destino_Domicilio = getClienteFile($o_objBean->getIdCliente(),$i_IdTipoFile,$url_base.$ruta);
										
										$a_datos[$i]["IdCliente"] 		= $o_objBean->getIdCliente();
										$a_datos[$i]["NombreCompleto"] 	= (string)utf8_encode($o_objBean->getNombreCompleto());
										$a_datos[$i]["Sexo"] 			= (string)$o_objBean->getSexo();
										$a_datos[$i]["Dni"] 			= (string)$o_objBean->getDni();
										$a_datos[$i]["EstadoCivil"] 	= (string)$o_objBean->getEstadoCivil();
										$a_datos[$i]["IdMercado"] 		= $o_objBean->getIdMercado();
										$a_datos[$i]["Telefono"] 		= (string)$o_objBean->getCelular();
										$a_datos[$i]["Celular"] 		= (string)$o_objBean->getTelefono();
										$a_datos[$i]["gasto_administrativo"] = (float)$o_objBean->getGastoAdministrativoPorcentaje();
										
										$a_datos[$i]["ruta_foto_negocio"]	= (string)$s_Destino_Negocio;
										$a_datos[$i]["ruta_foto_domicilio"]	= (string)$s_Destino_Domicilio;
										
										$a_datos[$i]["ubicacion_domicilio_longitud"] = (string)$o_objBean->getLongitudDomicilio();
										$a_datos[$i]["ubicacion_domicilio_latitud"] = (string)$o_objBean->getLatitudDomicilio();
										
										$a_datos[$i]["ubicacion_negocio_longitud"] = (string)$o_objBean->getLongitudNegocio();
										$a_datos[$i]["ubicacion_negocio_latitud"] = (string)$o_objBean->getLatitudNegocio();
										
										$a_datos[$i]["huella"] 					= (string)$o_objBean->getFlagConHuella();
										
										
										$i++;
									}
									$a_resultado['datos'] 		= $a_datos;
									$a_resultado['estado'] = "1";
									$a_resultado['mensaje'] = "Exito";
								}else{
									$a_resultado['datos'] 		= "0";
									$a_resultado['estado'] = "40";
									$a_resultado['mensaje'] = "No hay clientes que mostrar";
								}
								
							}else{
								$a_resultado['estado'] 		= "0";
								$a_resultado['mensaje'] 	= "La huella digital no corresponde al usuario ".$idusuario;	
							}
							
						}else{
							$a_resultado['estado'] = "4";
							$a_resultado['mensaje'] = "No existe el usuario";
						}
					break;
					case "pedido":
						$idusuario 						=  $o_datos['idusuario'];
						$idcliente 						=  $o_datos['idcliente'];
						$idprestamo 					=  $o_datos['idprestamo'];
						$monto			 				=  $o_datos['monto'];
						$interes	 					=  $o_datos['interes'];
						$mora		 					=  $o_datos['mora'];
						
						$fecha_pedido	 				=  $o_datos['fecha_pedido'];
						
						$periodo	 					=  $o_datos['periodo'];
						$duracion	 					=  $o_datos['duracion'];
						$hora		 					=  $o_datos['hora'];
						$observacion 					=  $o_datos['comentario'];
						$telefono_contacto				=  $o_datos['telefono_contacto'];
						$hora_atencion	 				=  $o_datos['hora_atencion'];
						
						
						$gastos_administrativos	 		=  $o_datos['gastos_administrativos'];
						$ubicacion_registro_latitud		=  $o_datos['ubicacion_registro_latitud'];
						$ubicacion_registro_longitud	=  $o_datos['ubicacion_registro_longitud'];
						
						
						
						$o_user 		= new user_class();
						if ($o_user->findUser($idusuario)){
							
							$fechaDiaAbierto = fechaDiaAbierto($idusuario);
							
							if($fecha_pedido && $fecha_pedido < $fechaDiaAbierto){
								
								$a_resultado['estado'] = "100";
								$a_resultado['mensaje'] = "La Fecha ".$fecha_pedido." de Pedido fuera de rango de fecha  dia abierto ".$fechaDiaAbierto;
								
							}else{
								if(!$fecha_pedido){
									$a_resultado['estado'] = "101";
									$a_resultado['mensaje'] = "No hay fecha para registrar el pedido";
								}else{
											
							
									$a_SucursalMercado 	= sucursalMercado($o_user);
						
									$fecha			 	= fechaDiaAbierto($idusuario);
									$idColaboradorP 	= getColaboradorxCliente($idcliente);
									
									$o_ClienteBean = new ClienteBean();
									$o_ClienteBean->setIdCliente($idcliente);
									
									$o_ClienteDP = new ClienteDP($o_ClienteBean);
									$a_clientes = $o_ClienteDP->select();
									if(is_array($a_clientes)){
										foreach ($a_clientes as $key => $o_cliente){
											$idMercado = $o_cliente->getIdMercado();
										}
									}
									
									
									//$dia = date('w',strtotime($fecha));
									//if($dia  == '6') $FechaTransaccion = date('Y-m-d', strtotime($fecha ." +2 days"));
									//else  $FechaTransaccion = date('Y-m-d', strtotime($fecha ." +1 days"));
									
									$o_Cr_pedido_prestamoDP = new Cr_pedido_prestamoDP();
									$o_Cr_pedido_prestamoDP->setIdCliente( ( int ) $idcliente );
									
									$o_Cr_pedido_prestamoDP->setIidMercado( ( int ) $idMercado );
									
									$o_Cr_pedido_prestamoDP->setIdColaborador( (int) $idColaboradorP );
									
									$o_Cr_pedido_prestamoDP->setMonto( floatval( $monto ) );
									$o_Cr_pedido_prestamoDP->setTelefonoContacto( $TelefonoContacto );
									$o_Cr_pedido_prestamoDP->setInteresPorcentaje( ( float ) $interes );
									$o_Cr_pedido_prestamoDP->setDuracion	( ( int ) $duracion );
									$o_Cr_pedido_prestamoDP->setPeridiocidadPago( $periodo );
									$o_Cr_pedido_prestamoDP->setTelefonoContacto( $telefono_contacto );
									$o_Cr_pedido_prestamoDP->setHoraAtencion	( $hora_atencion );
									$o_Cr_pedido_prestamoDP->setGastoAdministrativo((float)$gastos_administrativos);
									$o_Cr_pedido_prestamoDP->setEliminado( -1 );
									$o_Cr_pedido_prestamoDP->setObservacion( $observacion );
								
									
									//SAVE
									$o_Cr_pedido_prestamoDP->setFechaTransaccion( $fecha_pedido );
									$o_Cr_pedido_prestamoDP->setFechaEntrega( $fecha_pedido );
									$o_Cr_pedido_prestamoDP->setEstado( "P" );
									$i_IdPedido = Cr_pedido_prestamoDP::getNextId();
									$o_Cr_pedido_prestamoDP->setIdpedido( ( int ) $i_IdPedido );
									$o_Cr_pedido_prestamoDP->setFechaCreacion( date( "Y-m-d H:i:s" ) );
									$o_Cr_pedido_prestamoDP->setUsuarioCreacion( $idusuario );
									$b_Result = $o_Cr_pedido_prestamoDP->save();
									
									if($b_Result){
										
										$o_Cr_pedido_prestamoFN = new Cr_pedido_prestamoFN();
										$o_Cr_pedido_prestamoBN = $o_Cr_pedido_prestamoFN->selectByPK($i_IdPedido);
										
										$a_pedidoNuevo['idpedido'] 	= $o_Cr_pedido_prestamoBN->getIdpedido();
										$a_pedidoNuevo['capital'] 	= $o_Cr_pedido_prestamoBN->getMonto();
										$a_pedidoNuevo['interes'] 	= $o_Cr_pedido_prestamoBN->getInteresPorcentaje();
										$a_pedidoNuevo['estado'] 	= $o_Cr_pedido_prestamoBN->getEstado();
													
										$a_resultado['estado'] = "1";
										$a_resultado['mensaje'] = "Exito";
										$a_resultado['nuevo_prestamo'] = $a_pedidoNuevo;
										
									}else{
										$a_resultado['estado'] = "2";
										$a_resultado['mensaje'] = "No se registro el pedido";
									}
								}
							}
							
						}else{
							$a_resultado['estado'] = "4";
							$a_resultado['mensaje'] = "No existe el usuario";
						}
						
						
						
					break;
					case "registrar_cliente":
						
						
						$idusuario 						= $o_datos['idusuario'];
						$sexo 							= $o_datos['sexo'];
						
						$idmercado 						= $o_datos['idmercado'];
						
						$nombres 						= $o_datos['nombres'];
						$apellido_paterno 				= $o_datos['apellido_paterno'];
						$apellido_materno 				= $o_datos['apellido_materno'];
						$fecha_nacimiento				= $o_datos['fecha_nacimiento'];
						$dni			 				= $o_datos['dni'];
						$estado_civil			 		= $o_datos['estado_civil'];
						$direccion		 				= $o_datos['direccion'];
						$telefono		 				= $o_datos['telefono'];
						$celular		 				= $o_datos['celular'];
						$huella		 					= $o_datos['huella'];
						$tipo_negocio 					= $o_datos['tipo_negocio'];
						$otrotipo_negocio 				= $o_datos['otrotipo_negocio'];
						
						$ubicacion_registro_latitud 	= $o_datos['ubicacion_registro_latitud'];
						$ubicacion_registro_longitud 	= $o_datos['ubicacion_registro_longitud'];
						
						$o_user = new user_class();
						if ($o_user->findUser($idusuario)){	
							if(!$idmercado){
								
								$a_SucursalMercado 			= sucursalMercado($o_user);
								$idmercado 	= $a_SucursalMercado["idmercado"];
							}
							
							$o_ClienteBean = new ClienteBean();
							
							$o_ClienteBean->setIdMercado($idmercado);
							$o_ClienteBean->setIdTipoNegocio($tipo_negocio);
							$o_ClienteBean->setDni($dni);
							$o_ClienteBean->setCelular($celular);
							$o_ClienteBean->setNombres($nombres);
							$o_ClienteBean->setApellidoPaterno($apellido_paterno);
							$o_ClienteBean->setApellidoMaterno($apellido_materno);
							$nombrecompleto = $apellido_paterno." ".$apellido_materno.", ".$nombres;
							$o_ClienteBean->setNombreCompleto($nombrecompleto);
							$o_ClienteBean->setTelefono($telefono);
							$o_ClienteBean->setDireccion($direccion);
							
							$o_ClienteBean->setLongitudNegocio($ubicacion_registro_longitud);
							$o_ClienteBean->setLatitudNegocio($ubicacion_registro_latitud);
							
							$o_ClienteBean->setFechaNacimiento($fecha_nacimiento);
							$o_ClienteBean->setSexo($sexo); 
							$o_ClienteBean->setEstadoCivil($estado_civil);
							$o_ClienteBean->setEstado("A");   
							$o_ClienteBean->setFechaCreacion(date("Y-m-d H:i:s"));
							$o_ClienteBean->setOtroTipoNegocio($otrotipo_negocio);
							$o_ClienteBean->setUsuarioCreacion($idusuario);
							$o_ClienteBean->setFlagConHuella('S');
							$o_ClienteSystemClass = new ClienteSystemClass($o_ClienteBean);
									  
							
							
							$bResult = $o_ClienteSystemClass->insertCliente($chek_documento);
							if($bResult){
								//Registrar Huella
								registrarHuella($bResult,$idusuario);
								//--------------------------
								$a_resultado['estado'] = "1";
								$a_resultado['mensaje'] = "Exito";
								$a_resultado['idcliente'] = $bResult;
							 }else{
								$a_resultado['estado'] 		= "0";
								$a_resultado['mensaje'] 	= "La huella digital no corresponde al usuario ".$idusuario;		
							 }
						}else{
							$a_resultado['estado'] = "40";
							$a_resultado['mensaje'] = "No existe el usuario";
						}					
					break;
					
					case "cierre_caja":
						
						$idusuario 				= $o_datos['idusuario'];
						$idmercado 				= $o_datos['idmercado'];
						
						$o_user 		= new user_class();
						if ($o_user->findUser($idusuario)){
							
							if( ($o_user->getUserRoleId() == "sys.sup" || $o_user->getUserRoleId() == "sys.res" ) && !$idmercado){
								$a_resultado['estado'] = "0";
								$a_resultado['mensaje'] = "Seleccione un mercado";
								$a_respuesta["resultado"] = $a_resultado;
							}else{
						
								$a_SucursalMercado 	= sucursalMercado($o_user);
								
								$a_idColaborador 	= $a_SucursalMercado["idcolaboradores"];	
								$a_idsmercados 		= $a_SucursalMercado["idsmercados"];	
								
								
								if($idmercado){
									$o_MercadoRepresentante = new MercadoRepresentanteBean();
									$o_MercadoRepresentante->setIdMercado($idmercado);
									$o_MercadoRepresentanteBL = new MercadoRepresentanteBL();
									$a_o_repmer = $o_MercadoRepresentanteBL->busquedaMercadoRepresentanteDetalle($o_MercadoRepresentante);
									
									
									
									foreach ($a_o_repmer as $key => $o_repmer){
										
										$o_ColaboradorBean = new ColaboradorBean();
										$o_ColaboradorBean->setIdColaborador($o_repmer->getIdColaborador());
										$o_ColabradorDP = new ColaboradorDP($o_ColaboradorBean);
										$a_o_ColabradorDP = $o_ColabradorDP->select();
										
										foreach ($a_o_ColabradorDP as $key => $o_ColabradorDP){
									
											
											$idColaborador 		= $o_ColabradorDP->getIdColaborador();
											$Asesor 			= $o_ColabradorDP->getNombres()." ".$o_ColabradorDP->getApellidoPaterno()." ".$o_ColabradorDP->getApellidoMaterno();
									
										}
									}
								}else{
									
									$o_MercadoRepresentante = new MercadoRepresentanteBean();
									$o_MercadoRepresentante->setIdColaborador($o_user->getIdColaborador());
									$o_MercadoRepresentanteBL = new MercadoRepresentanteBL();
									$a_o_repmer = $o_MercadoRepresentanteBL->busquedaMercadoRepresentanteDetalle($o_MercadoRepresentante);
									foreach ($a_o_repmer as $key => $o_repmer){
										$idmercado = $o_repmer->getIdMercado();
										
									}
								
									$o_ColaboradorBean = new ColaboradorBean();
									$o_ColaboradorBean->setIdColaboradores($a_idColaborador);
									$o_ColabradorDP = new ColaboradorDP($o_ColaboradorBean);
									
									$sumaGasto = $o_ColaboradorBean->getPagoRpm();
									
									$a_o_ColabradorDP = $o_ColabradorDP->select();
									foreach ($a_o_ColabradorDP as $key => $o_ColabradorDP){
									
										$idColaborador 		= $o_ColabradorDP->getIdColaborador();
										$Asesor 			= $o_ColabradorDP->getNombres()." ".$o_ColabradorDP->getApellidoPaterno()." ".$o_ColabradorDP->getApellidoMaterno();
									}
								}
								
								//print_r($a_idColaborador);
								
								
								$fechaDiaAbierto = fechaDiaAbierto($idusuario);
								
								//echo $fechaDiaAbierto;
								
								$o_crMercadoBean = new MercadoBean();
								$o_crMercadoBean->setIdMercado($idmercado);
								$o_crMercadoBean->setIdMercados($a_idsmercados);
								
								$o_MercadoDP = new MercadoDP($o_crMercadoBean);
								$a_o_MercadoDP = $o_MercadoDP->select();
								
								if(is_array($a_o_MercadoDP) && count($a_o_MercadoDP)){
									$o_crMercadoBN 	= $a_o_MercadoDP[0];
									$nombreMercado 	= $o_crMercadoBN->getDescripcion();
								}
								
								
								
								//Sumar el capital inicial
								
								$o_ObjectBean = new CapitalInicialBean();
								$o_ObjectBean->setFecha($fechaDiaAbierto);
								$o_ObjectBean->setIdColaborador($idColaborador);
								$o_ObjectBean->tamPag = 10;
								
								$o_class = new CapitalInicialBL();
								$a_ObjectBean = $o_class->busquedaCapitalInicial($o_ObjectBean);
								$sumaCapitalIncial = 0;
								if(count($a_ObjectBean)>0){
									foreach ($a_ObjectBean as $iKey => $o_objBean){
										$sumaCapitalIncial += $o_objBean->getMonto();
									}
								}
								//Detalle y suma de los prestamos registrados por el colaborador
								$o_ObjectBean = new PrestamoBean();
								$o_ObjectBean->setFechaInicio($fechaDiaAbierto);
								$o_ObjectBean->setFechaFinal($fechaDiaAbierto);
								$o_ObjectBean->setIdColaboradorPrestamo($idColaborador);
								$o_ObjectBean->setEstado('P');
								$o_ObjectBean->tamPag = 9999;		 			
								$o_ObjectDP = new PrestamoDP($o_ObjectBean);
								$a_o_ObjectDP = $o_ObjectDP->select();
								
								//echo "count".count($a_o_ObjectDP);
								
								if(is_array($a_o_ObjectDP) && count($a_o_ObjectDP)){
									$j=1;
									foreach ($a_o_ObjectDP as $key => $o_ObjectDP) {
										$idCliente = $o_ObjectDP->getIdCliente();
										$o_ClienteBean = new ClienteBean();
										$o_ClienteBean->setIdCliente($idCliente);
										$o_clieneteDP = new ClienteDP($o_ClienteBean);
										$a_cliente = $o_clieneteDP->selectByPk();
										$o_cliente = $a_cliente[0];
										$nombrecompleto = $o_cliente->getNombreCompleto();
										$a_transacciones[$j]['tipo_transaccion'] = "Prestamo";
										
										if($o_ObjectDP->getOrigen()=="F"){
											if($o_ObjectDP->getMontoExtra() > 0 ){
												$a_transacciones[$j]['tipo_transaccion'] .="-renovacion";
												$sumaMontoPrestado += $o_ObjectDP->getMontoExtra();
											}else{
												$a_transacciones[$j]['tipo_transaccion'] .="-refinanciacion";
											}
										}else{
											$sumaMontoPrestado += $o_ObjectDP->getMontoPrestado();
										}
										$a_transacciones[$j]['idcliente'] 		= (string)$idCliente;
										$a_transacciones[$j]['nombrecompleto'] 		= (string)utf8_encode($nombrecompleto);
										$a_transacciones[$j]['gastoadministrativo'] = (float)$o_ObjectDP->getGastoAdministrativo();
										
										$a_transacciones[$j]['monto'] 				= (float)$o_ObjectDP->getMontoPrestado();
										$a_transacciones[$j]['hora_registro'] 		= (string)$o_ObjectDP->getFechaCreacion();
										
										$sumaMontoGA 								+= $o_ObjectDP->getGastoAdministrativo();
										$j++;
									}
								}
								
								//Detalle y Suma de Pagos
								
								//echo $idColaborador."----";
								
								$o_ObjectBean = new PagoBean();
								$o_ObjectBean->setFechaPago($fechaDiaAbierto);
								$o_ObjectBean->setFechaFinal($fechaDiaAbierto);
								$o_ObjectBean->setIdColaborador($idColaborador);
								$o_ObjectBean->tamPag = 9999;		 			
								
								$o_ObjectDP = new PagoDP($o_ObjectBean);
								$a_o_ObjectDP = $o_ObjectDP->select();
								
								if(is_array($a_o_ObjectDP) && count($a_o_ObjectDP)){
									$i = $j;
									foreach ($a_o_ObjectDP as $key => $o_ObjectDP) {
										if($o_ObjectDP->getMontoPago() > 0){
											
											$idprestamo = $o_ObjectDP->getIdPrestamo();
											$o_PrestamoBean = new PrestamoBean();
											$o_PrestamoBean->setIdPrestamo($idprestamo);
											$o_PrestamoDP = new PrestamoDP($o_PrestamoBean);
											$a_o_PrestamoDP = $o_PrestamoDP->select();
											$o_Prestamo = $a_o_PrestamoDP[0];
											$idcliente = $o_Prestamo->getIdCliente();
											
											$idCliente = $o_ObjectDP->getIdCliente();
											$o_ClienteBean = new ClienteBean();
											$o_ClienteBean->setIdCliente($idcliente);
											$o_clieneteDP = new ClienteDP($o_ClienteBean);
											$a_cliente = $o_clieneteDP->selectByPk();
											$o_cliente = $a_cliente[0];
											$nombrecompleto = $o_cliente->getNombreCompleto();
											$a_transacciones[$i]['tipo_transaccion'] = "pago";
											
											if($o_ObjectDP->getTipoPago() == "2"){
												$a_transacciones[$i]['tipo_transaccion'] .="-mora";
												$sumaPagoMora 	+= $o_ObjectDP->getMontoPago();
											}else{
												$sumaMontoPagado 		+= $o_ObjectDP->getMontoPago();
											}
											$a_transacciones[$i]['idcliente'] 	= (string)$idcliente;
											$a_transacciones[$i]['nombrecompleto'] 	= (string)utf8_encode($nombrecompleto);
											$a_transacciones[$i]['monto'] 			= (float)$o_ObjectDP->getMontoPago();
											$a_transacciones[$i]['hora_registro'] 	= $o_ObjectDP->getFechaCreacion();
											$i++;
										}
									}
								}
								//$o_user = new user_class();
								//if ($o_user->findUser($idusuario)){
								
								//sort by parent_id in descending order
								if(is_array($a_transacciones)){
									$a_transacciones = multi_sort($a_transacciones, "hora_registro", false);
								}else{
									$a_transacciones = 0;
								}
								
								$a_resultado["nombre_mercado"] 	= $nombreMercado;
								$a_resultado["asesor"]			= (string)$Asesor;
								
								$a_resultado["caja_asignada"]	= (float)$sumaCapitalIncial;
								
								$a_resultado["total_pagos"]	= (float)$sumaMontoPagado;
								$a_resultado["total_mora"]			= (float)$sumaPagoMora;
								$a_resultado["total_gastos_administrativos"]	= (float)$sumaMontoGA;
								$a_resultado["total_gastos"]					= (float)getGastoOperativo($fechaDiaAbierto,$idColaborador);
								$a_resultado["total_prestamos"]					= (float)$sumaMontoPrestado;
														
								
								$a_resultado["total_registros"] = (int)count($a_transacciones);
								
								$a_resultado["registros"]  		= $a_transacciones;
								
								$a_resultado['estado'] = "1";
								$a_resultado['mensaje'] = "Exito";
								
							}
						}
						
					break;
					case "estado_cuenta":	
						$idusuario 				= $o_datos['idusuario'];
						$idprestamo 			= $o_datos['idprestamo'];		
						
						if($idprestamo){
							
							$o_Pago = new PagoBean();
							$o_Pago->setIdPrestamo($idprestamo);
							
							$o_PagoBL = new PagoBL();
							$a_o_pagos = $o_PagoBL->busquedaPago($o_Pago);
							if(is_array($a_o_pagos)){
								foreach ($a_o_pagos as $key => $o_pago){
									if($o_pago->getMontoPago() > 0){
										$a_cuota['idcuota'] 	= $o_pago->getIdPago();
										$a_cuota['tipopago'] 	= $o_pago->getTipo();
										$a_cuota['monto'] 		= $o_pago->getMontoPago();
										$a_cuota['fecha'] 		= substr($o_pago->getFechaPago(),0,10);
										$a_listapagos[] 		= $a_cuota;
										$cont_cuotas_pagadas[$a_cuota['fecha']]++;
									}else{
										$cont_cuotas_no_pagadas++;
									}
								}
							}
							$a_resultado['CP'] = (int)count($cont_cuotas_pagadas);
							$a_resultado['CNP'] = (int)$cont_cuotas_no_pagadas;
							$a_resultado['cuota'] = $a_listapagos;
							$a_resultado['estado'] = "1";
							$a_resultado['mensaje'] = "Exito";
						}else{
							$a_resultado['estado'] = "40";
							$a_resultado['mensaje'] = "No existe el prestamo";
						}					
					break;
					case "caja_tiempo_real":	
						$idusuario 				= $o_datos['idusuario'];
						$idsucursal				= $o_datos['idsucursal'];		
						$idmercado				= $o_datos['idmercado'];	
						//Minimo debe pasar una sucursal
						
						if(!$idsucursal){
							$a_resultado = mostrar_error("SUCURSAL_OBLIGATORIO",$mensaje);
						}else{
						
							$o_user 		= new user_class();
							if ($o_user->findUser($idusuario)){
								$o_ObjectBean 		= new SucursalBean();
								if($idsucursal)		$o_ObjectBean->setIdSucursal($idsucursal);
								
								$o_class 					= new SucursalBL();
								$a_ObjectBean 				= $o_class->busquedaSucursal($o_ObjectBean);
								
								if(count($a_ObjectBean)>0){
									
									foreach ($a_ObjectBean as $iKey => $o_objBean){
										$idsucursal 		= $o_objBean->getIdSucursal();
										$idadministrador 	= $o_objBean->getIdAdministrador();
										$descripcionsucursal= $o_objBean->getDescripcion();
										$a_Colaborador 		= null;
										$o_ColaboradorBean = new ColaboradorBean();
										$o_ColaboradorBean->setIdPadre($idadministrador);
										$o_ColaboradorBL = new ColaboradorBL();	
										
										
										if($idmercado){
											$o_MercadoRepresentanteBean = new MercadoRepresentanteBean();
											$o_MercadoRepresentanteBean->setIdMercado($idmercado);
											$o_MercadoRepresentanteDP = new MercadoRepresentanteDP($o_MercadoRepresentanteBean);
											$a_o_MercadoRepresentanteDP = $o_MercadoRepresentanteDP->select();
											if(is_array($a_o_MercadoRepresentanteDP)){
												foreach ($a_o_MercadoRepresentanteDP as $key => $o_MercadoRepresentanteBean){
													$a_Colaborador[] = $o_MercadoRepresentanteBean->getIdColaborador();
												}
											}
											
										}else{
											$a_o_Colaborador = $o_ColaboradorBL->busquedaColaborador($o_ColaboradorBean);
										
											if(is_array($a_o_Colaborador)){
												foreach ($a_o_Colaborador as $key => $o_colaborador){
													$a_Colaborador[] = $o_colaborador->getIdColaborador();
												}
											}
										}
										
										$o_BalanceDiaNew = new BalanceDiaBean();
										$o_BalanceDiaNew->setIdColaboradorPermitido($a_Colaborador); 
										$o_BalanceDiaNew->setIdAdministrador($idadministrador); 
										$o_BalanceDiaNew->setIdSucursal($idsucursal); 
										
										
										
										$o_BalanceDiaNewDP 		= new BalanceDiaDP($o_BalanceDiaNew);
										$fechaBalanceAbierto  	= $o_BalanceDiaNewDP->ObtenerDiaAbierto();
										$a_ResumenColaborador 	= $o_BalanceDiaNewDP->ObtenerColaboradoresNewBalance($fechaBalanceAbierto);	
										
										if(is_array($a_ResumenColaborador)){
											$Total = 0;
											$a_caja_real = null;
											foreach ($a_ResumenColaborador as $key => $a_ResesumenDiario) {
												$o_MercadoRepresentante = new MercadoRepresentanteBean();
												$o_MercadoRepresentante->setIdColaborador($a_ResesumenDiario['IdColaborador']);
												$o_MercadoRepresentanteBL = new MercadoRepresentanteBL();
												$a_o_repmer = $o_MercadoRepresentanteBL->busquedaMercadoRepresentanteDetalle($o_MercadoRepresentante);
												foreach ($a_o_repmer as $key => $o_repmer){
													$o_MercadoBean = new MercadoBean();
													$o_MercadoBean->setIdMercado($o_repmer->getIdMercado());
													$o_MercadoDP = new MercadoDP($o_MercadoBean);
													$a_MercadoDP = $o_MercadoDP->select();
													foreach ($a_MercadoDP as $key => $o_MercadoDP){
														$idmercado 				= $o_MercadoDP->getIdMercado();	
														$descripcionmercado 	= $o_MercadoDP->getDescripcion();	
													}
												}
												
												
												//$a_ResesumenDiario['NombreCompleto'];
													
												$a_caja_real[$idmercado]['descripcion_sucursal'] 	= (string)$descripcionsucursal; 
												$a_caja_real[$idmercado]['descripcion_mercado'] 	= (string)$descripcionmercado; 
												$a_caja_real[$idmercado]['balance'] 				+= round($a_ResesumenDiario['TotalCaja'],2) + round($a_ResesumenDiario['TotalPago']['PA'],2)+ round($a_ResesumenDiario['TotalPago']['PAM'],2) - round($a_ResesumenDiario['TotalPrestamo'],2) + round($a_ResesumenDiario['TotalGastoAdmin'],2)+round($a_ResesumenDiario['TotalSobrantes'],2)-round($a_ResesumenDiario['TotalFaltantes'],2)-round($a_ResesumenDiario['TotalGastoMovilidad'],2);
												$Total 												+= round($a_ResesumenDiario['TotalCaja'],2) + round($a_ResesumenDiario['TotalPago']['PA'],2)+ round($a_ResesumenDiario['TotalPago']['PAM'],2) - round($a_ResesumenDiario['TotalPrestamo'],2) + round($a_ResesumenDiario['TotalGastoAdmin'],2)+round($a_ResesumenDiario['TotalSobrantes'],2)-round($a_ResesumenDiario['TotalFaltantes'],2)-round($a_ResesumenDiario['TotalGastoMovilidad'],2);
											}
											
										}
										
										$a_resulta_pre[$idsucursal]['totalsucursal']	= $Total;
										$a_resulta_pre[$idsucursal]['mercados'] 		= $a_caja_real;
										
									}
									$a_resultado['caja_tiempo_real'] = $a_resulta_pre;
									$a_resultado['estado'] = "1";
									$a_resultado['mensaje'] = "Exito";
								}
							}else{
								$a_resultado['estado'] = "40";
								$a_resultado['mensaje'] = "No existe el usuario";
							}			
						}		
					break;
					
					case "lista_pedidos":	
						$ruta = "/images/uploadFiles/";
						$idusuario 			= $o_datos['idusuario'];
						
						$idsucursal 		=  $o_datos['idsucursal'];
						$idmercado	 		=  $o_datos['idmercado'];
						
						$idcliente 			= $o_datos['idcliente'];
						$apellido_paterno	= $o_datos['apellido_paterno'];
						
						
						
						$o_user 		= new user_class();
						if ($o_user->findUser($idusuario)){
							$a_SucursalMercado 	= sucursalMercado($o_user);
							/*
							echo "<pre>";
							
							print_r($a_SucursalMercado);
							echo "</pre>";
							*/
							$a_idColaborador 	= $a_SucursalMercado["idcolaboradores"];	
							
							$o_class = new Cr_pedido_prestamoFN(); 
							
							// Foto de Negocio
							 $i_IdTipoFile = "8";
							 $s_Destino_Negocio = getClienteFile($idcliente,$i_IdTipoFile,$url_base.$ruta);
								
							 // Foto de Domicilio
							 $i_IdTipoFile = "6";
							 $s_Destino_Domicilio = getClienteFile($idcliente,$i_IdTipoFile,$url_base.$ruta);
							 
													
							if(is_array($a_idColaborador)){
								$o_class->addCondition( Cr_pedido_prestamoFN::IdColaborador, "in", "('".implode("','",$a_idColaborador)."')" );
							}
							if( $idColaborador != "" )  { $o_class->setIdColaborador( $idColaborador );}
							
							if($idsucursal){
								$o_ObjectBeanSuc = new SucursalMercadoBean();
								
								$cboSucursal = (int)$idsucursal;
								$o_ObjectBeanSuc->setIdSucursal($idsucursal);
							  
								$o_classS = new SucursalMercadoBL();
								$a_ObjectSucursalMercadoBean = $o_classS->busquedaSucursalMercadoDetalle($o_ObjectBeanSuc);
								
								
								if(array($a_ObjectSucursalMercadoBean)){
									foreach ($a_ObjectSucursalMercadoBean as $key => $ObjectSucursalMercadoBean){
										$a_IdMercados[] = $ObjectSucursalMercadoBean->getIdMercado();
									}
									$o_class->addCondition( Cr_pedido_prestamoFN::IidMercado, "in", "('".implode("','",$a_IdMercados)."')" );
								}
							}
							if($idcliente)$o_class->setIdCliente($idcliente);
							
							if($idmercado) $o_class->setIidMercado($idmercado);
							
							$o_class->setEstado("A"); 
							
							$a_pedidos = $o_class->select();
							if(is_array($a_pedidos)){
								
								
								
								foreach ($a_pedidos as $key => $pedido){
									
									
							
									$o_ClienteBeantemp = new ClienteBean();
									$o_ClienteBeantemp->setIdCliente($pedido->getIdCliente());
									$o_ClienteBLtemp = new ClienteBL();
									$o_ClienteBean = $o_ClienteBLtemp->busquedaCliente( $o_ClienteBeantemp );
																	
									
									$IdCliente 		= $o_ClienteBean[0]->getIdCliente();
									$Semaforo 		= $o_ClienteBean[0]->getSemaforo();
									
									$NombreCompleto = $o_ClienteBean[0]->getNombreCompleto();
									$Telefono	 	= $o_ClienteBean[0]->getCelular();
									$Celular	 	= $o_ClienteBean[0]->getTelefono();
									$Direccion	 	= $o_ClienteBean[0]->getDireccion();
									
									$LongitudDomicilio	 	= $o_ClienteBean[0]->getLongitudDomicilio();
									$LatitudDomicilio	 	= $o_ClienteBean[0]->getLatitudDomicilio();
									$LongitudNegocio	 	= $o_ClienteBean[0]->getLongitudNegocio();
									$LatitudNegocio		 	= $o_ClienteBean[0]->getLatitudNegocio();
									
									$a_clientes[$pedido->getIdCliente()]["nombre_completo"] 	= (string)utf8_encode(ucwords(mb_strtolower($NombreCompleto)));
									$a_clientes[$pedido->getIdCliente()]["telefono"] 			= (string)$Telefono;
									$a_clientes[$pedido->getIdCliente()]["celular"] 			= (string)$Celular;
									$a_clientes[$pedido->getIdCliente()]["direccion"] 			= (string)$Direccion;
									$a_clientes[$pedido->getIdCliente()]["gasto_administrativo"] 	= 2;
									
									$a_clientes[$pedido->getIdCliente()]["ruta_foto_negocio"]	= (string) $s_Destino_Negocio;
									$a_clientes[$pedido->getIdCliente()]["ruta_foto_domicilio"]	= (string) $s_Destino_Domicilio;
									$a_clientes[$pedido->getIdCliente()]["ubicacion_domicilio_longitud"]= (string)$LongitudDomicilio;
									$a_clientes[$pedido->getIdCliente()]["ubicacion_domicilio_latitud"]	= (string)$LatitudDomicilio;
									$a_clientes[$pedido->getIdCliente()]["ubicacion_negocio_longitud"]	= (string)$LongitudNegocio;
									$a_clientes[$pedido->getIdCliente()]["ubicacion_negocio_latitud"]	= (string)$LatitudNegocio;
									$a_clientes[$pedido->getIdCliente()]["idcliente"] 		= $IdCliente;
									$a_clientes[$pedido->getIdCliente()]["semaforo"] 		= $Semaforo;
									
									
									
									$a_pedido[$pedido->getIdCliente()][$pedido->getidpedido()]['idpedido'] 	= $pedido->getidpedido();	
									
									$a_pedido[$pedido->getIdCliente()][$pedido->getidpedido()]['monto_pedido'] = $pedido->getMontoFinal();	
									
									$a_pedido[$pedido->getIdCliente()][$pedido->getidpedido()]['saldo'] 		= (float)$pedido->getSaldoAnterior();	
									$a_pedido[$pedido->getIdCliente()][$pedido->getidpedido()]['monto_extra']	= (float)$pedido->getMontoExtraFinal();	
									$a_pedido[$pedido->getIdCliente()][$pedido->getidpedido()]['interes']	= $pedido->getInteresPorcentajeFinal()."%";	
									
									$a_pedido[$pedido->getIdCliente()][$pedido->getidpedido()]['duracion']			= $pedido->getDuracionFinal()." "."dias";	
									
									$a_pedido[$pedido->getIdCliente()][$pedido->getidpedido()]['monto_a_dejar']	= (float)(($pedido->getMontoFinal() -  $pedido->getSaldoAnterior()) - $pedido->getGastoAdministrativoFinal() - $pedido->getMoraFinal());	
									if($pedido->getPeridiocidadPagoFinal()){
										switch ($pedido->getPeridiocidadPagoFinal()){
											case "D": $periodofinal = "Diario";break;
											case "S": $periodofinal = "Semanal";break;
											case "M": $periodofinal = "Mensual";break;
										}
									}
									$a_pedido[$pedido->getIdCliente()][$pedido->getidpedido()]['periodo']				= (string)$periodofinal;	
									$a_pedido[$pedido->getIdCliente()][$pedido->getidpedido()]['gastos_administrativos']= (float)$pedido->getGastoAdministrativoFinal();	
									$a_pedido[$pedido->getIdCliente()][$pedido->getidpedido()]['fecha_pedido']= $pedido->getFechaTransaccion();	
									
									$a_pedido[$pedido->getIdCliente()][$pedido->getidpedido()]['estado']			= (string)$pedido->getEstado();	
									$a_pedido[$pedido->getIdCliente()][$pedido->getidpedido()]['tipo']			= (string)$pedido->getTipo();	
									
									$a_clientes[$pedido->getIdCliente()]['pedido'] 						= $a_pedido[$pedido->getIdCliente()];		    			
							
								}
								
								$a_resultado['clientes'] 		= $a_clientes;		
								$a_resultado['estado'] = "1";
								$a_resultado['mensaje'] = "Exito";
							}else{
								$a_resultado['estado'] = "40";
								$a_resultado['mensaje'] = "No hay pedidos";
							}
						}else{
							$a_resultado['estado'] = "40";
							$a_resultado['mensaje'] = "No existe el usuario";
						}
					break;
					case "pedido_renovacion":	
						$idusuario 						=  $o_datos['idusuario'];
						$idprestamo 					=  $o_datos['idprestamo'];
						
						$idcliente 						=  $o_datos['idcliente'];
						$idprestamo 					=  $o_datos['idprestamo'];
						
						
						$interes	 					=  $o_datos['interes'];
						$mora		 					=  $o_datos['mora'];
						
						$monto			 				=  $o_datos['monto'];
						
						$saldo			 				=  $o_datos['saldo'];
						
						$monto_extra	 				=  $o_datos['monto_extra'];
						
						$fecha_pedido 					=  $o_datos['fecha_pedido'];
						$interes	 					=  $o_datos['interes'];
						
						$periodo	 					=  $o_datos['periodo'];
						$duracion	 					=  $o_datos['duracion'];
						$hora		 					=  $o_datos['hora'];
						$minuto		 					=  $o_datos['minuto'];
						$observacion 					=  $o_datos['comentario'];
						$telefono_contacto 				=  $o_datos['telefono_contacto'];
						$hora_atencion	 				=  $o_datos['hora_atencion'];
						
						
						$gastos_administrativos	 		=  $o_datos['gastos_administrativos'];
						
						$ubicacion_registro_latitud		=  $o_datos['ubicacion_registro_latitud'];
						$ubicacion_registro_longitud	=  $o_datos['ubicacion_registro_longitud'];
						
						$o_user 		= new user_class();
						if ($o_user->findUser($idusuario)){
							
							//Consultar el prestamo si cumple la el pedido de renovacion
							$o_PrestamoBean = new PrestamoBean();
							$o_PrestamoBean->setIdPrestamo($idprestamo);
							
							$o_PrestamoDP = new PrestamoDP($o_PrestamoBean);
							$a_o_PrestamoDP = $o_PrestamoDP->select();
							
							if(is_array($a_o_PrestamoDP)){
								
								foreach ($a_o_PrestamoDP as $key => $o_Prestamo){
									$SaldoPrestamo 	= $o_Prestamo->getSaldoPrestamo();
									$Estado 		= $o_Prestamo->getEstado();
									$IdPedidoReferencia = $o_Prestamo->getIdPedidoReferencia();
									
									if(!$IdPedidoReferencia){
										$permitirProceso = 1;
									}else{
										
										$a_pedido = loadPedido($IdPedidoReferencia);
										
										$estadoPedido 		= $a_pedido['estado'];
										$eliminadoPedido 	= $a_pedido['eliminado'];
										
										
										$permitirProceso = 0;
										if($eliminadoPedido == -1 && $estadoPedido == "G"){
											$permitirProceso = 1;
										}
									}
									if($permitirProceso){
										if($Estado == "P"){
											$saldo = $SaldoPrestamo;
											$monto = $saldo + $monto_extra;
									
											$fechaDiaAbierto 	= fechaDiaAbierto($idusuario);
											   
											if($fecha_pedido && $fecha_pedido <= $fechaDiaAbierto){
												$a_resultado['estado'] = "100";
												$a_resultado['mensaje'] = "La Fecha ".$fecha_pedido." de Pedido fuera de rango de fecha dia abierto ".$fechaDiaAbierto;
											}else{
												
												$a_SucursalMercado 	= sucursalMercado($o_user);
																
												$idColaboradorP 	= getColaboradorxCliente($idcliente);
												
												$o_ClienteBean = new ClienteBean();
												$o_ClienteBean->setIdCliente($idcliente);
												
												$o_ClienteDP = new ClienteDP($o_ClienteBean);
												$a_clientes = $o_ClienteDP->select();
												if(is_array($a_clientes)){
													foreach ($a_clientes as $key => $o_cliente){
														$idMercado = $o_cliente->getIdMercado();
													}
												}
																	
												$o_Cr_pedido_prestamoDP = new Cr_pedido_prestamoDP();
												$o_Cr_pedido_prestamoDP->setTipo('R' );
												$o_Cr_pedido_prestamoDP->setMontoExtra((float)$monto_extra );
												$o_Cr_pedido_prestamoDP->setSaldoAnterior((float)$saldo);
												$o_Cr_pedido_prestamoDP->setIdCliente( ( int ) $idcliente );
												
												$o_Cr_pedido_prestamoDP->setIdPrestamo( ( int ) $idprestamo);
												
												$o_Cr_pedido_prestamoDP->setIidMercado( ( int ) $idMercado );
												
												$o_Cr_pedido_prestamoDP->setIdColaborador( (int) $idColaboradorP );
												
												$o_Cr_pedido_prestamoDP->setMonto( floatval( $monto ) );
												$o_Cr_pedido_prestamoDP->setMora( floatval( $mora ) );
												$o_Cr_pedido_prestamoDP->setTelefonoContacto( $telefono_contacto );
												$o_Cr_pedido_prestamoDP->setInteresPorcentaje( ( int ) $interes );
												$o_Cr_pedido_prestamoDP->setDuracion	( ( int ) $duracion );
												$o_Cr_pedido_prestamoDP->setPeridiocidadPago( $periodo );
												$o_Cr_pedido_prestamoDP->setHoraAtencion	( $hora_atencion );
												$o_Cr_pedido_prestamoDP->setRegistroLatitud	( (string)$ubicacion_registro_latitud );
												$o_Cr_pedido_prestamoDP->setRegistroLongitud	( (string)$ubicacion_registro_longitud );
												$o_Cr_pedido_prestamoDP->setEliminado( -1 );
												$o_Cr_pedido_prestamoDP->setObservacion( $observacion );
												$o_Cr_pedido_prestamoDP->setGastoAdministrativo((float)$gastos_administrativos);
												$o_Cr_pedido_prestamoDP->setInteresPorcentaje((float)$interes);
												
												
												//SAVE
												$o_Cr_pedido_prestamoDP->setFechaTransaccion( $fecha_pedido );
												//$o_Cr_pedido_prestamoDP->setFechaEntrega(  );
												$o_Cr_pedido_prestamoDP->setEstado( "P" );
												$i_IdPedido = Cr_pedido_prestamoDP::getNextId();
												$o_Cr_pedido_prestamoDP->setIdpedido( ( int ) $i_IdPedido );
												$o_Cr_pedido_prestamoDP->setFechaCreacion( date( "Y-m-d H:i:s" ) );
												$o_Cr_pedido_prestamoDP->setUsuarioCreacion( $idusuario );
												$b_Result = $o_Cr_pedido_prestamoDP->save();
												
												if($b_Result){
													
													//Actualizar el prestamo con el idpedidoreferencia
													$o_PrestamoBean = new PrestamoBean();
													$o_PrestamoBean->setIdPrestamo($idprestamo);
													$o_PrestamoBean->setIdPedidoReferencia($i_IdPedido);
													
													$o_PrestamoDP = new PrestamoDP($o_PrestamoBean);
													$o_PrestamoDP->update();
													
													$o_Cr_pedido_prestamoFN = new Cr_pedido_prestamoFN();
													$o_Cr_pedido_prestamoBN = $o_Cr_pedido_prestamoFN->selectByPK($i_IdPedido);
													
													$a_pedidoNuevo['idpedido'] 	= $o_Cr_pedido_prestamoBN->getIdpedido();
													$a_pedidoNuevo['capital'] 	= (float)$o_Cr_pedido_prestamoBN->getMonto();
													$a_pedidoNuevo['interes'] 	= (float)$o_Cr_pedido_prestamoBN->getInteresPorcentaje();
													$a_pedidoNuevo['estado'] 	= $o_Cr_pedido_prestamoBN->getEstado();
																
													$a_resultado['estado'] = "1";
													$a_resultado['mensaje'] = "Exito";
													$a_resultado['nuevo_prestamo'] = $a_pedidoNuevo;
													
												}else{
													$a_resultado['estado'] = "2";
													$a_resultado['mensaje'] = "No se registro el pedido";
												}	
											
											}
										}else{
											$a_resultado['estado'] = "70";
											$a_resultado['mensaje'] = "No se permite, Prestamo no esta en estado Pendiente";
										}
									}else{
										$a_resultado['estado'] = "80";
										$a_resultado['mensaje'] = "Acción no permitida, prÃ©stamo con pedido realizado: ".$IdPedidoReferencia;
									}
								}
							
								
							}else{
								$a_resultado['estado'] = "10";
								$a_resultado['mensaje'] = "No existe el prestamo";
							}
							
						}else{
							$a_resultado['estado'] = "4";
							$a_resultado['mensaje'] = "No existe el usuario";
						}
					break;
					case "generar_prestamo_sobre_pedido":	
						$idusuario 	= $o_datos['idusuario'];
						$idpedido 	= $o_datos['idpedido'];
						$huella 	= $o_datos['huella'];
						$ubicacion_registro_latitud		=  $o_datos['ubicacion_registro_latitud'];
						$ubicacion_registro_longitud	=  $o_datos['ubicacion_registro_longitud'];
						$o_user 		= new user_class();
						if ($o_user->findUser($idusuario)){
							
							
							$o_Cr_pedido_prestamoFN = new Cr_pedido_prestamoFN();

							$o_Cr_pedido_prestamoBN = $o_Cr_pedido_prestamoFN->selectByPK( $idpedido );
							
							if( $o_Cr_pedido_prestamoBN )
							{
								
								//echo "<pre>"; print_r( $o_Cr_pedido_prestamoBN ); echo "</pre>";
								$Tipo   				= $o_Cr_pedido_prestamoBN->getTipo();
								$FechaTransaccion   	= $o_Cr_pedido_prestamoBN->getFechaTransaccion();
								$Estado   				= $o_Cr_pedido_prestamoBN->getEstado();
								$IdCliente 				= $o_Cr_pedido_prestamoBN->getIdCliente();
								
								$idColaborador 	= getColaboradorxCliente($IdCliente);
															
								$fechaDiaAbierto= fechaDiaAbierto($idusuario);
								
								$SaldoAnteriorPedido = $o_Cr_pedido_prestamoBN->getSaldoAnterior();
								
								//Verificar que el pedido este en estado A (Aprobado) para que pueda hacer todo el procedimiento 
								
								if($Estado == "A"){
									
									if($Tipo == "R"){
										
										//Verificar que prestamo le corresponde el id del pedido
										
										$o_PrestamoBean = new PrestamoBean();
										$o_PrestamoBean->setIdPedidoReferencia($idpedido);
										
										$o_PrestamoDP = new PrestamoDP($o_PrestamoBean);
										$a_o_PrestamoDP = $o_PrestamoDP->select();
										
										if(is_array($a_o_PrestamoDP)){
											foreach ($a_o_PrestamoDP as $key => $o_Prestamo){
												$IdPrestamo 	= $o_Prestamo->getIdPrestamo();	
												$SaldoAnterior 	= $o_Prestamo->getSaldoPrestamo();
												$Estado 		= $o_Prestamo->getEstado();
												$IdCliente 		= $o_Prestamo->getIdCliente();
												
											}
										}
										
										$o_PrestamoBeanT = new PrestamoBean();
										$o_PrestamoBeanT->setIdPrestamoReferencia($IdPrestamo);
										
										$o_PrestamoDPT = new PrestamoDP($o_PrestamoBeanT);
										$a_o_PrestamoDPT = $o_PrestamoDPT->select();
										
										if(is_array($a_o_PrestamoDPT)){
											foreach ($a_o_PrestamoDPT as $key => $o_Prestamo){
												$IdPrestamoG 	= $o_Prestamo->getIdPrestamo();	
											}
										}
										
										$MontoFinal         = $SaldoAnterior + $o_Cr_pedido_prestamoBN->getMontoExtraFinal();
									}elseif($Tipo == "N"){
										
										$MontoFinal         = $o_Cr_pedido_prestamoBN->getMontoFinal();	
									}
									
									if($SaldoAnteriorPedido != $SaldoAnterior && $Tipo == "R"){
										$add_observacion = "El saldo del prestamo ha variado desde que fue emitido el pedido hasta hoy.";
									}
									
								  if(!is_array($a_o_PrestamoDPT)){
									  
										
										
										$TelefonoContacto   = $o_Cr_pedido_prestamoBN->getTelefonoContacto();
										$IdCliente          = $o_Cr_pedido_prestamoBN->getIdCliente();
										$GastoAdministrativo = $o_Cr_pedido_prestamoBN->getGastoAdministrativoFinal();
										$cboInteres			= $o_Cr_pedido_prestamoBN->getInteresPorcentajeFinal();
										$MontoExtra			= $o_Cr_pedido_prestamoBN->getMontoExtraFinal();
										$cboFormaPago	 	= $o_Cr_pedido_prestamoBN->getPeridiocidadPagoFinal();
										$mora				= $o_Cr_pedido_prestamoBN->getMoraFinal();
										$cboDuracion		= $o_Cr_pedido_prestamoBN->getDuracionFinal();
										$Estado        		= $o_Cr_pedido_prestamoBN->getEstado();
										$HoraAtencion       = $o_Cr_pedido_prestamoBN->getHoraAtencion();
										$ObservacionFinal   = $o_Cr_pedido_prestamoBN->getObservacionFinal();
										$FechaModificacion  = $o_Cr_pedido_prestamoBN->getFechaModificacion();
										$ObservacionFinal  = $o_Cr_pedido_prestamoBN->getObservacionFinal();
										
															
										$txtCapital 		= $MontoFinal;
										$o_PrestamoBean 	= new PrestamoBean();
										$o_PrestamoBean->setIdCliente($IdCliente);
										$o_PrestamoBean->setMontoPrestado($txtCapital);
										$o_PrestamoBean->setFechaInicio($fechaDiaAbierto);
										$o_PrestamoBean->setInteresPorcentaje($cboInteres);
										$montoTotal 	= round($txtCapital*($cboInteres/100+1),1);
										$SaldoPrestamo 	= $montoTotal;
										$o_PrestamoBean->setMontoTotal($montoTotal);
										$o_PrestamoBean->setGastoAdministrativo($GastoAdministrativo);
										$o_PrestamoBean->setPeriodicidadPago($cboFormaPago);
										$o_PrestamoBean->setSaldoPrestamo($SaldoPrestamo);
										$o_PrestamoBean->setDuracion($cboDuracion);
										$o_PrestamoBean->setFlagReporte("2");
										$o_PrestamoBean->setIdPedidoReferencia($i_Id);
										$o_PrestamoBean->setRegistroLatitud($ubicacion_registro_latitud);
										$o_PrestamoBean->setRegistroLongitud($ubicacion_registro_longitud);
										
													
										switch ($cboFormaPago){
											case "D" : 
													switch ($cboDuracion){
														/**********************/
														case 7 :  $MontoCuota = round($montoTotal/5,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +7 days'));
																  $NroCuotas=5; break;
														/*********************/
														case 15 : $MontoCuota = round($montoTotal/13,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +15 days'));
																  $NroCuotas=13; break;
														case 30 : $MontoCuota = round($montoTotal/26,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +30 days'));
																  $NroCuotas=26; break;
														case 45 : $MontoCuota = round($montoTotal/39,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +45 days'));
																  $NroCuotas=39; break;
														case 60 : $MontoCuota = round($montoTotal/52,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +60 days'));
																  $NroCuotas=52; break;
														case 75 : $MontoCuota = round($montoTotal/65,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +75 days'));
																  $NroCuotas=65; break;
														case 90 : $MontoCuota = round($montoTotal/88,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +90 days'));
																  $NroCuotas=88; break;
													}
													break;
											case "S":
													switch ($cboDuracion){
														/**********************/
														case 7 :  $MontoCuota = round($montoTotal/1,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +7 days'));
																  $NroCuotas=1; break;
														/*********************/
														case 15 : $MontoCuota = round($montoTotal/2,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +15 days'));
																  $NroCuotas=2; break;
														case 30 : $MontoCuota = round($montoTotal/4,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +30 days'));
																  $NroCuotas=4; break;
														case 45 : $MontoCuota = round($montoTotal/6,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +45 days'));
																  $NroCuotas=6; break;
														case 60 : $MontoCuota = round($montoTotal/8,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +60 days'));
																  $NroCuotas=8; break;
														case 75 : $MontoCuota = round($montoTotal/10,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +75 days'));
																  $NroCuotas=10; break;
														case 90 : $MontoCuota = round($montoTotal/12,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +90 days'));
																  $NroCuotas=12; break;
													}
													break;
											case "Q":
													switch ($cboDuracion){	
														case 15 : $MontoCuota = round($montoTotal/1,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +15 days'));
																  $NroCuotas=1; break;
														case 30 : $MontoCuota = round($montoTotal/2,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +30 days'));
																  $NroCuotas=2; break;
														case 45 : $MontoCuota = round($montoTotal/3,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +45 days'));
																  $NroCuotas=3; break;
														case 60 : $MontoCuota = round($montoTotal/4,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +60 days'));
																  $NroCuotas=4; break;
														case 75 : $MontoCuota = round($montoTotal/5,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +75 days'));
																  $NroCuotas=5; break;
														case 90 : $MontoCuota = round($montoTotal/6,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +90 days'));
																  $NroCuotas=6; break;
													}
													break;
											case "M":
													switch ($cboDuracion){	
														
														case 30 : $MontoCuota = round($montoTotal/1,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +30 days'));
																  $NroCuotas=1; break;
														case 60 : $MontoCuota = round($montoTotal/2,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +60 days'));
																  $NroCuotas=2; break;
														case 90 : $MontoCuota = round($montoTotal/3,2);
																  $fechaVencimiento = date('Y-m-d',strtotime($fecha.' +90 days'));
																  $NroCuotas=3; break;
													}
													break;
										}
										
										if($cboDuracion){
											$o_PrestamoBean->setCuotaPago($MontoCuota);
											$o_PrestamoBean->setFechaVencimiento($fechaVencimiento);
											$InteresMonto=$montoTotal-$txtCapital;
											$o_PrestamoBean->setInteresMonto($InteresMonto);
											$o_PrestamoBean->setNroCuotas($NroCuotas);
											$o_PrestamoBean->setObservacion($txtObservacion);
											$o_PrestamoBean->setIdPedidoReferencia($idpedido);
											if($Tipo == "R"){
												$o_PrestamoBean->setOrigen("F");
												$o_PrestamoBean->setMontoExtra($MontoExtra);
												$o_PrestamoBean->setIdPrestamoReferencia($IdPrestamo);
											}else{
												$o_PrestamoBean->setOrigen("R");
											}
											//$o_PrestamoBean->setLimiteCredito($LineaCredito);
											
											$o_PrestamoBean->setFechaCreacion(date("Y-m-d H:i:s"));
											$o_PrestamoBean->setUsuarioCreacion($idusuario);
											$o_PrestamoBean->setIdColaborador($idColaborador);
											
											$o_PrestamoBL = new PrestamoBL();
											$bResult = $o_PrestamoBL->insertarPrestamo($o_PrestamoBean);
											
											 if($bResult){
												
												$o_PrestamoBeanAnt = new PrestamoBean();
												$o_PrestamoBeanAnt->setIdPrestamo($IdPrestamo);
												$o_PrestamoBeanAnt->setEstado("C");
												$o_PrestamoBeanAnt->setFechaCancelacion($fechaDiaAbierto);
												$o_PrestamoBeanAnt->setFechaModificacion(date("Y-m-d H:i:s"));
												$o_PrestamoBeanAnt->setUsuarioModificacion($idusuario);
												$o_class = new PrestamoBL();
												$a_ObjectBeanAnt = $o_class->modificarPrestamo($o_PrestamoBeanAnt);
												
												if($mora){
													$o_PagoBean = new PagoBean();
													$o_PagoBean->setIdPrestamo($IdPrestamo);
													$o_PagoBean->setFechaPago($fechaDiaAbierto);
													$o_PagoBean->setTipopago('2');
													$o_PagoBean->setMontoPago($mora);
													$o_PagoBean->setIdColaborador($idColaborador);
													$o_PagoBean->setFechaCreacion(date("Y-m-d H:i:s"));
													$o_PagoBean->setUsuarioCreacion($idusuario);
													$o_PagoDP = new PagoDP($o_PagoBean);
													$o_PagoDP->save();
												}
																																	
												$o_newPrestamoBean = new PrestamoBean();
												$o_newPrestamoBean->setIdPrestamo($bResult);
												
												$o_newPrestamoDP = new PrestamoDP($o_newPrestamoBean);
												$a_newPrestamoBean = $o_newPrestamoDP->select();
												//echo "-----------*****-------------------";
												$cadena = $o_newPrestamoDP->updatePedidoGenerado($fechaDiaAbierto,$idpedido,$bResult,$ObservacionFinal." ".$add_observacion);
												//echo "-----------*****-------------------";
												guardar_log($cadena);
												
												
												$o_newPrestamo = $a_newPrestamoBean[0];
												
												$a_prestamoNuevo['idprestamo'] 			= $o_newPrestamo->getIdPrestamo();
												$a_prestamoNuevo['monto_total']			= (float)$o_newPrestamo->getMontoTotal();
												$a_prestamoNuevo['capital']				= (float)$o_newPrestamo->getMontoPrestado();
												$a_prestamoNuevo['monto_interes']		= (float)$o_newPrestamo->getInteresMonto();
												$a_prestamoNuevo['saldo']				= (float)$o_newPrestamo->getSaldoPrestamo();
												$a_prestamoNuevo['interes']				= (float)$o_newPrestamo->getInteresPorcentaje();
												$a_prestamoNuevo['gastos_administrativos']	= (float)$o_newPrestamo->getGastoAdministrativo();
												$a_prestamoNuevo['fecha_prestamo']		= $o_newPrestamo->getFechaInicio();
												$a_prestamoNuevo['fecha_vencimiento']	= $o_newPrestamo->getFechaVencimiento();
												$a_prestamoNuevo['estado']				= $o_newPrestamo->getEstado();
												
												
												$a_resultado['nuevo_prestamo'] = $a_prestamoNuevo;
												$a_resultado['estado'] = "1";
												$a_resultado['mensaje'] = "Exito";
											}
										
										}else{
											$a_resultado['estado'] = "140";
											$a_resultado['mensaje'] = "No hay Forma de Pago determinado para este pedido ".$idpedido;
										}
										
									}else{
										$a_resultado['estado'] = "100";
										$a_resultado['mensaje'] = "Acción no permitida, pedido ya genero prestamo: ".$IdPrestamoG;
									}
								}else{
									
									$a_resultado['estado'] = "90";
									if($Estado == "R"){
										$a_resultado['mensaje'] = "Acción no permitida, el pedido fue rechazado ".$Estado;
									}elseif($Estado == "G"){
										$a_resultado['mensaje'] = "Acción no permitida, el pedido ya fue generado ".$Estado;
									}elseif($Estado == "P"){									
										$a_resultado['mensaje'] = "Acción no permitida, el pedido esta en estado Pendiente.";
									}else{
										; 	
										$a_resultado['mensaje'] = "No existe el pedido ";
									}
								}
									
							}else{
								
								$a_resultado['estado'] = "110";
								$a_resultado['mensaje'] = "No existe el pedido ";
							}
							
							
							
						}else{
							$a_resultado['estado'] = "40";
							$a_resultado['mensaje'] = "No existe el usuario";
						}
					break;
					case "actualizacion_foto_negocio":
						$idusuario 		= $o_datos['idusuario'];
						$idcliente 		= $o_datos['idcliente'];
						$foto_archivo 	= $_POST['foto_archivo'];
						$ubicacion_registro_latitud		=  $o_datos['ubicacion_registro_latitud'];
						$ubicacion_registro_longitud	=  $o_datos['ubicacion_registro_longitud'];
						$o_user 		= new user_class();
						if ($o_user->findUser($idusuario)){
							
							$CodTipoDocumento = '8';
							
							subirImagen($CodTipoDocumento,$foto_archivo,$idcliente,$idusuario,$ubicacion_registro_latitud,$ubicacion_registro_longitud);
													
							$a_resultado['estado'] = "1";
							$a_resultado['mensaje'] = "Exito";
					
							
						}else{
							$a_resultado['estado'] = "40";
							$a_resultado['mensaje'] = "No existe el usuario";
						}
					break;
					case "actualizacion_foto_domicilio":
						$idusuario 		= $o_datos['idusuario'];
						$idcliente 		= $o_datos['idcliente'];
						$foto_archivo 	= $_POST['foto_archivo'];
						$ubicacion_registro_latitud		=  $o_datos['ubicacion_registro_latitud'];
						$ubicacion_registro_longitud	=  $o_datos['ubicacion_registro_longitud'];
						$o_user 		= new user_class();
						if ($o_user->findUser($idusuario)){
							
							$CodTipoDocumento = '6';
							
							subirImagen($CodTipoDocumento,$foto_archivo,$idcliente,$idusuario,$ubicacion_registro_latitud,$ubicacion_registro_longitud);
						   
							$a_resultado['estado'] = "1";
							$a_resultado['mensaje'] = "Exito";
							
						}else{
							$a_resultado['estado'] = "40";
							$a_resultado['mensaje'] = "No existe el usuario";
						}
					break;
					case "actualizacion_gps_negocio":
						$idusuario 		= $o_datos['idusuario'];
						$idcliente 		= $o_datos['idcliente'];
						$ubicacion_registro_latitud		=  $o_datos['ubicacion_registro_latitud'];
						$ubicacion_registro_longitud	=  $o_datos['ubicacion_registro_longitud'];
						$o_user 		= new user_class();
						if ($o_user->findUser($idusuario)){
							$o_CrClienteBean = new ClienteBean();
							$o_CrClienteBean->setIdCliente($idcliente);
							$o_CrClienteBean->setLongitudNegocio($ubicacion_registro_longitud);
							$o_CrClienteBean->setLatitudNegocio($ubicacion_registro_latitud);
							$o_CrClienteBean->setUsuarioModificacion($idusuario);
							$o_CrClienteBean->setFechaModificacion(date('Y-m-d H:i:s'));
							$o_CrClienteDP = new ClienteDP($o_CrClienteBean);
							$resultado = $o_CrClienteDP->update();
							if($resultado){
								$a_resultado['estado'] = "1";
								$a_resultado['mensaje'] = "Exito";
							}else{
								$a_resultado['estado'] = "101";
								$a_resultado['mensaje'] = "No se pudo actualizar";
							}
							
							
						}else{
							$a_resultado['estado'] = "40";
							$a_resultado['mensaje'] = "No existe el usuario";
						}
					break;
					case "actualizacion_gps_domicilio":
						$idusuario 		= $o_datos['idusuario'];
						$idcliente 		= $o_datos['idcliente'];
						$ubicacion_registro_latitud		=  $o_datos['ubicacion_registro_latitud'];
						$ubicacion_registro_longitud	=  $o_datos['ubicacion_registro_longitud'];
						$o_user 		= new user_class();
						if ($o_user->findUser($idusuario)){
							$o_CrClienteBean = new ClienteBean();
							$o_CrClienteBean->setIdCliente($idcliente);
							$o_CrClienteBean->setLongitudDomicilio($ubicacion_registro_longitud);
							$o_CrClienteBean->setLatitudDomicilio($ubicacion_registro_latitud);
							$o_CrClienteBean->setUsuarioModificacion($idusuario);
							$o_CrClienteBean->setFechaModificacion(date('Y-m-d H:i:s'));
							$o_CrClienteDP = new ClienteDP($o_CrClienteBean);
							$resultado = $o_CrClienteDP->update();
							if($resultado){
								$a_resultado['estado'] = "1";
								$a_resultado['mensaje'] = "Exito";
							}else{
								$a_resultado['estado'] = "101";
								$a_resultado['mensaje'] = "No se pudo actualizar";
							}
							
						}else{
							$a_resultado['estado'] = "40";
							$a_resultado['mensaje'] = "No existe el usuario";
						}
					break;
					case "error_tarjeta":
						$idusuario 		= $o_datos['idusuario'];
						$idcliente 		= $o_datos['idcliente'];
						$foto_archivo 	= $o_datos['foto_archivo'];
						$idprestamo 	= $o_datos['idprestamo'];
						$ubicacion_registro_latitud		=  $o_datos['ubicacion_registro_latitud'];
						$ubicacion_registro_longitud	=  $o_datos['ubicacion_registro_longitud'];
						$o_user 		= new user_class();
						if ($o_user->findUser($idusuario)){
							
							$CodTipoDocumento = '9';
											
							subirImagen($CodTipoDocumento,$foto_archivo,$idcliente,$idusuario,$ubicacion_registro_latitud,$ubicacion_registro_longitud,$referencia);
												   
							$a_resultado['estado'] = "1";
							$a_resultado['mensaje'] = "Exito";
							
						}else{
							$a_resultado['estado'] = "40";
							$a_resultado['mensaje'] = "No existe el usuario";
						}
					break;
					
					case "seguimiento_personal":
						$con = Conexion::getConexion();
						mysql_db_query(Conexion::getNameDb(), "SET NAMES 'utf8'", $con);
						
						$idusuario 				= $o_datos['idusuario'];
						$idsucursal 			= $o_datos['idsucursal'];
						$idmercado 				= $o_datos['idmercado'];
						
						if(!$idsucursal){
							$a_resultado = mostrar_error("SUCURSAL_OBLIGATORIO",$mensaje);
						}else{
						
							$o_user 		= new user_class();
							if ($o_user->findUser($idusuario)){
								$idcolaborador = $o_user->getIdColaborador();
								if( $o_user->getUserRoleId() == "sys.ope" ){
									$a_resultado['estado'] = "0";
									$a_resultado['mensaje'] = "Operacion no permitida";
									$a_respuesta["resultado"] = $a_resultado;
									
								}elseif( $o_user->getUserRoleId() == "sys.gen" && !$idsucursal){
									$a_resultado['estado'] = "0";
									$a_resultado['mensaje'] = "Seleccione una sucursal";
									$a_respuesta["resultado"] = $a_resultado;
								}else{
							
									$a_SucursalMercado 	= sucursalMercado($o_user,$idmercado,$idcolaborador);
									/*
									echo "<pre>";
									
									print_r($a_SucursalMercado);
									echo "</pre>";
									*/
									$a_idColaborador 	= $a_SucursalMercado["idcolaboradores"];	
									$a_idsmercados 		= $a_SucursalMercado["idsmercados"];	
									/*
									echo "<pre>";
									print_r($a_idColaborador);
									echo "</pre>";
										*/					
									
										if($o_user->getUserRoleId() == "sys.gen"){
											
										}elseif($o_user->getUserRoleId() == "sys.res"){
											$idcolaborador = obternerColaboradorxUsuario($idusuario);
											$o_SucursalBean = new SucursalBean();
											$o_SucursalBean->setIdAdministrador($idcolaborador);
											$o_SucursalDP = new SucursalDP($o_SucursalBean);
											$a_o_SucursalDP = $o_SucursalDP->select();
											foreach ($a_o_SucursalDP as $key => $o_SucursalDP){
												$idsucursal = $o_SucursalDP->getIdSucursal();
											}
										}elseif($o_user->getUserRoleId() == "sys.sup"){
											$idcolaborador = obternerColaboradorxUsuario($idusuario);
											$o_ColaboradorBean = new ColaboradorBean();
											$o_ColaboradorBean->setIdColaborador($idcolaborador);
											$o_ColabradorDP = new ColaboradorDP($o_ColaboradorBean);
											$a_o_ColabradorDP = $o_ColabradorDP->select();
											
											foreach ($a_o_ColabradorDP as $key => $o_ColabradorDP){
										
												$idpadre = $o_ColabradorDP->getPadre();	
												$o_SucursalBean = new SucursalBean();
												$o_SucursalBean->setIdAdministrador($idpadre);
												$o_SucursalDP = new SucursalDP($o_SucursalBean);
												$a_o_SucursalDP = $o_SucursalDP->select();
												foreach ($a_o_SucursalDP as $key => $o_SucursalDP){
													$idsucursal = $o_SucursalDP->getIdSucursal();
												}
										
											}
										}
									
										if($idsucursal){
										
										
											$o_SucursalMercadoBean = new SucursalMercadoBean();
											$o_SucursalMercadoBean->setIdSucursal($idsucursal);
											$o_SucursalMercadoBean->setIdMercado($idmercado);
											$o_SucursalMercadoDP = new SucursalMercadoDP($o_SucursalMercadoBean);
											$a_o_SucursalMercadoDP = $o_SucursalMercadoDP->select();
											
											if(is_array($a_o_SucursalMercadoDP)){
												foreach ($a_o_SucursalMercadoDP as $key => $o_SucursalMercadoDP){
													$a_idsmercados[] = $o_SucursalMercadoDP->getIdMercado();
													
													$o_crMercadoBean = new MercadoBean();
													$o_crMercadoBean->setIdMercado($o_SucursalMercadoDP->getIdMercado());
													$o_MercadoDP = new MercadoDP($o_crMercadoBean);
													$a_o_MercadoDP = $o_MercadoDP->select();
													
													if(is_array($a_o_MercadoDP) && count($a_o_MercadoDP)){
														foreach ($a_o_MercadoDP as $key => $o_MercadoDP){
															$nombreMercadoT[$o_MercadoDP->getIdMercado()] = utf8_encode($o_MercadoDP->getDescripcion());
														}
													}
													
													
													$o_MercadoRepresentante = new MercadoRepresentanteBean();
													$o_MercadoRepresentante->setIdMercado($o_SucursalMercadoDP->getIdMercado());
													$o_MercadoRepresentanteBL = new MercadoRepresentanteBL();
													$a_o_repmer = $o_MercadoRepresentanteBL->busquedaMercadoRepresentanteDetalle($o_MercadoRepresentante);
													
																					
													foreach ($a_o_repmer as $key => $o_repmer){
														
														$o_ColaboradorBean = new ColaboradorBean();
														$o_ColaboradorBean->setIdColaborador($o_repmer->getIdColaborador());
														$o_ColabradorDP = new ColaboradorDP($o_ColaboradorBean);
														$a_o_ColabradorDP = $o_ColabradorDP->select();
														
														foreach ($a_o_ColabradorDP as $key => $o_ColabradorDP){
															$idusuario 									= $o_ColabradorDP->getUsuario();
															$a_idColaborador[] 							= $o_ColabradorDP->getIdColaborador();	
															$Asesor[$o_ColabradorDP->getIdColaborador()]= utf8_decode($o_ColabradorDP->getNombres())." ".utf8_decode($o_ColabradorDP->getApellidoPaterno())." ".utf8_decode($o_ColabradorDP->getApellidoMaterno());
															$nombreMercado[$o_ColabradorDP->getIdColaborador()]= $nombreMercadoT[$o_SucursalMercadoDP->getIdMercado()];
													
														}
													}
													
													
												}
											}else{
												$a_resultado['estado'] = "0";
												$a_resultado['mensaje'] = "No hay";
												$a_respuesta["resultado"] = $a_resultado;
											}
										
										
										}
									
									
									//print_r($a_idColaborador);
									if($o_user->getUserRoleId() == "sys.gen"){
										
									}elseif($o_user->getUserRoleId() == "sys.res"){
										
									}elseif($o_user->getUserRoleId() == "sys.sup"){
										
									}
									
									$fechaDiaAbierto = fechaDiaAbierto($idusuario);
									//$fechaDiaAbierto = "2019-01-21";
									
									
									
									
									//Detalle y suma de los prestamos registrados por el colaborador
									$o_ObjectBean = new PrestamoBean();
									$o_ObjectBean->setFechaInicio($fechaDiaAbierto);
									$o_ObjectBean->setFechaFinal($fechaDiaAbierto);
									$o_ObjectBean->setFiltroSucursal($a_idColaborador);
									$o_ObjectBean->setEstado('P');
									$o_ObjectBean->tamPag = 9999;		 			
									$o_ObjectDP = new PrestamoDP($o_ObjectBean);
									$a_o_ObjectDP = $o_ObjectDP->select();
									
									if(is_array($a_o_ObjectDP) && count($a_o_ObjectDP)){
										$j=1;
										foreach ($a_o_ObjectDP as $key => $o_ObjectDP) {
											$idCliente = $o_ObjectDP->getIdCliente();
											$o_ClienteBean = new ClienteBean();
											$o_ClienteBean->setIdCliente($idCliente);
											$o_clieneteDP = new ClienteDP($o_ClienteBean);
											$a_cliente = $o_clieneteDP->selectByPk();
											$o_cliente = $a_cliente[0];
											$nombrecompleto = utf8_decode($o_cliente->getNombreCompleto());
											$a_transacciones[$j]['tipo_transaccion'] = "Prestamo";
											
											if($o_ObjectDP->getOrigen()=="F"){
												if($o_ObjectDP->getMontoExtra() > 0 ){
													$a_transacciones[$j]['tipo_transaccion'] ="Renovacion";
												}else{
													$a_transacciones[$j]['tipo_transaccion'] ="Refinanciacion";
												}
											}
											$a_transacciones[$j]['registro_latitud'] 		= (string)$o_ObjectDP->getRegistroLatitud();
											$a_transacciones[$j]['registro_longitud'] 		= (string)$o_ObjectDP->getRegistroLongitud();
											$a_transacciones[$j]['idcolaborador'] 			= (string)$o_ObjectDP->getIdColaborador();
											$a_transacciones[$j]['nombre_asesor'] 			= (string)$idCliente."-".substr($nombrecompleto,0,18);
											
											//$a_transacciones[$j]['nombre_asesor2'] 			= (string)$Asesor[$o_ObjectDP->getIdColaborador()];
											$a_transacciones[$j]['nombre_mercado'] 			= (string)$nombreMercado[$o_ObjectDP->getIdColaborador()];
											
											$a_transacciones[$j]['monto'] 				= (float)$o_ObjectDP->getMontoPrestado();
											$a_transacciones[$j]['hora_registro'] 			= (string)$o_ObjectDP->getFechaCreacion();
											$a_transacciones[$j]['hora_ingreso'] 			= (string)substr($o_ObjectDP->getFechaCreacion(),11,5);
											$j++;
										}
									}
									
									//Detalle y Suma de Pagos
									
									//echo $idColaborador."----";
									
									$o_ObjectBean = new PagoBean();
									$o_ObjectBean->setFechaPago($fechaDiaAbierto);
									$o_ObjectBean->setFechaFinal($fechaDiaAbierto);
									$o_ObjectBean->setIdColaborador($idColaborador);
									$o_ObjectBean->setIdColaboradores($a_idColaborador);
									$o_ObjectBean->tamPag = 9999;		 			
									
									$o_ObjectDP = new PagoDP($o_ObjectBean);
									$a_o_ObjectDP = $o_ObjectDP->select();
									
									if(is_array($a_o_ObjectDP) && count($a_o_ObjectDP)){
										$i = $j;
										
										foreach ($a_o_ObjectDP as $key => $o_ObjectDP) {
											/*
											echo "<pre>";
											print_r($o_ObjectDP);
											echo "</pre>";
											*/
											if($o_ObjectDP->getMontoPago() > 0){
												//print_r($o_ObjectDP);
												$idprestamo = $o_ObjectDP->getIdPrestamo();
												$o_PrestamoBean = new PrestamoBean();
												$o_PrestamoBean->setIdPrestamo($idprestamo);
												$o_PrestamoDP = new PrestamoDP($o_PrestamoBean);
												$a_o_PrestamoDP = $o_PrestamoDP->select();
												$o_Prestamo = $a_o_PrestamoDP[0];
												$idcliente = $o_Prestamo->getIdCliente();
												
												$idCliente = $o_ObjectDP->getIdCliente();
												$o_ClienteBean = new ClienteBean();
												$o_ClienteBean->setIdCliente($idcliente);
												$o_clieneteDP = new ClienteDP($o_ClienteBean);
												$a_cliente = $o_clieneteDP->selectByPk();
												$o_cliente = $a_cliente[0];
												$nombrecompleto = utf8_decode($o_cliente->getNombreCompleto());
												
												$a_transacciones[$i]['tipo_transaccion'] = "Pago";
												$sumaMontoPagado 	+= $o_ObjectDP->getMontoPago();
												
												$a_transacciones[$i]['idpago'] 			= (string)$o_ObjectDP->getIdPago();
												$a_transacciones[$i]['registro_latitud'] 		= (string)$o_ObjectDP->getRegistroLatitud();
												$a_transacciones[$i]['registro_longitud'] 		= (string)$o_ObjectDP->getRegistroLongitud();
												$a_transacciones[$i]['idcolaborador'] 			= (string)$o_ObjectDP->getIdColaborador();
												$a_transacciones[$i]['nombre_mercado'] 			= (string)$nombreMercado[$o_ObjectDP->getIdColaborador()];
												$a_transacciones[$i]['nombre_asesor'] 			= (string)$idcliente."-".substr($nombrecompleto,0,18);
												//$a_transacciones[$i]['nombre_asesor2'] 			= (string)$Asesor[$o_ObjectDP->getIdColaborador()];
												$a_transacciones[$i]['monto'] 					= $o_ObjectDP->getMontoPago();
												
												$a_transacciones[$i]['hora_registro'] 			= $o_ObjectDP->getFechaCreacion();
												$a_transacciones[$i]['hora_ingreso'] 			= (string)substr($o_ObjectDP->getFechaCreacion(),11,5);
												$i++;
											}
										}
									}
									//$o_user = new user_class();
									//if ($o_user->findUser($idusuario)){
									
									//sort by parent_id in descending order
									if(is_array($a_transacciones)){
										$a_transacciones = multi_sort($a_transacciones, "hora_registro", false);
									}else{
										$a_transacciones = 0;
									}
									/*
									echo "<pre>";
									print_r($a_transacciones);
									echo "</pre>";
									*/
									$a_resultado["registros"]  		= $a_transacciones;
									
									$a_resultado['estado'] = "1";
									$a_resultado['mensaje'] = "Exito";
								}
							}else{
								$a_resultado['estado'] = "40";
								$a_resultado['mensaje'] = "No existe el usuario";
							}
						}
					break;	
					default:
						$a_resultado['estado'] = "80";
						$a_resultado['mensaje'] = "jjjjjjjjj";
			}
	
		}else{
			$a_resultado['estado'] = "33";
			$a_resultado['mensaje'] = "Usuario no permitido";
		}		
	}
	else
	{
		$a_resultado['estado'] = "3";
		$a_resultado['mensaje'] = "Token No valido";
		
	}
	if(is_array($a_resultado)){
		$a_respuesta["resultado"] = $a_resultado;
		//echo "<pre>";	
		//print_r($a_resultado);
		
		print json_encode($a_respuesta,JSON_UNESCAPED_UNICODE);
		
		$cadena_log = json_encode($a_respuesta);

		guardar_log($cadena_log);
		
		//echo "</pre>";
	}		



?>