<?php
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"));
 
//Attempt to decode the incoming RAW post data from JSON.
$decoded = json_decode($content, true);
 
$_POST = $decoded;


$_POST['datos']['metodo'] 		= "cobranzas";
$_POST['datos']['idusuario'] 		= "centrolima";
$_POST['datos']['codigo_cliente'] 		= "206";
$_POST['datos']['apellido_paterno'] 		= "jan";
$_POST['datos']['idmercado'] 		= "";
$_POST['datos']['token'] 		= "89nm75nh788";


/*

$_POST['datos']['metodo'] 		= "caja_tiempo_real";
$_POST['datos']['idusuario'] 		= "centrolima";
$_POST['datos']['idprestamo'] 		= "9";
$_POST['datos']['token'] 		= "89nm75nh788";


$_POST['datos']['metodo'] 		= "estado_cuenta";
$_POST['datos']['idusuario'] 		= "centrolima";
$_POST['datos']['idprestamo'] 		= "9";
$_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'] 	= "mariategui";
$_POST['datos']['idmercado'] 	= "7";
$_POST['datos']['token'] 		= "89nm75nh788";
*/
/*
$_POST['datos']['metodo'] 		= "pedido";
$_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']['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'] 		= "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']['idprestamo'] 	= "536";
$_POST['datos']['codigo_cliente'] 	= "206";
$_POST['datos']['apellido_paterno']	= "1000";
$_POST['datos']['ubicacion_registro_latitud'] 		= "-73.1125554";
$_POST['datos']['ubicacion_registro_longitud'] 		= "-73.5525554";
$_POST['datos']['huella'] 		= "576576575757576575";
$_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;
}


//Para cobranzas
//$j_datos = '{"datos":{"metodo":"cobranzas","idusuario":"centrolima","codigo_cliente":"","apellido_paterno":"janam","idmercado":"","token":"89nm75nh788yyghxz","ubicacion_registro_latitud":"-73.1125554","ubicacion_registro_longitud":"-73.1125554"}}';
//$j_datos = '{"datos":{"metodo":"cobranzas","idusuario":"sup.sucursal","codigo_cliente":"","apellido_paterno":"","idmercado":"","token":"89nm75nh788yyghxz","ubicacion_registro_latitud":"-73.1125554","ubicacion_registro_longitud":"-73.1125554"}}';
//$j_datos = '{"datos":{"metodo":"cobranzas","idusuario":"admin.sucursal","codigo_cliente":"","apellido_paterno":"janam","idmercado":"","token":"89nm75nh788yyghxz","ubicacion_registro_latitud":"-73.1125554","ubicacion_registro_longitud":"-73.1125554"}}';


//Para pago
//$j_datos = '{"datos":{"metodo":"pago","idusuario":"sup.sucursal","idcliente":"215","idprestamo":"3795","monto":"30","token":"89nm75nh789788uhjyrt","ubicacion_registro_latitud":"-73.1125554","ubicacion_registro_longitud":"-73.1125554","huella":"576576575757576575"}}';
//$j_datos = '{"datos":{"metodo":"pago","idusuario":"centrolima","idcliente":"206","idprestamo":"3790","monto":"20","token":"89nm75nh789788uhjyrt","ubicacion_registro_latitud":"-73.1125554","ubicacion_registro_longitud":"-73.1125554","huella":"576576575757576575"}}';
//$j_datos = '{"datos":{"metodo":"pago","idusuario":"sup.sucursal","idcliente":"206","idprestamo":"3790","monto":"25","token":"89nm75nh789788uhjyrt","ubicacion_registro_latitud":"-73.1125554","ubicacion_registro_longitud":"-73.1125554","huella":"576576575757576575"}}';

//registrar_asistencia


//Para Renovacion y refinanciacion
//Operador
//el monto es el monto extra
//$j_datos = '{"datos":{"metodo":"refinanciacion","idusuario":"centrolima","idcliente":"206","gastos_administrativos":"20","idprestamo":"3681","interes":"10","periodo":"D","mora":"10","duracion":"30","token":"89nm75nh789788uhjyrttreoi","ubicacion_registro_latitud":"-73.1125554","ubicacion_registro_longitud":"-73.1125554","huella":"576576575757576575"}}';
//$j_datos = '{"datos":{"metodo":"renovacion","iduuario":"centrolima","idcliente":"215","gastos_administrativos":"20","idprestamo":"3795","monto":"500","interes":"10","periodo":"D","mora":"10","duracion":"30","token":"89nm75nh789788uhjyrttreoi","ubicacion_registro_latitud":"-73.1125554","ubicacion_registro_longitud":"-73.1125554","huella":"576576575757576575"}}';
//$j_datos = '{"datos":{"metodo":"refinanciacion","idusuario":"sup.sucursal","idcliente":"207","gastos_administrativos":"20","idprestamo":"536","interes":"10","periodo":"D","mora":"10","duracion":"30","token":"89nm75nh789788uhjyrttreoi","ubicacion_registro_latitud":"-73.1125554","ubicacion_registro_longitud":"-73.1125554","huella":"576576575757576575"}}';

//Para Prestamo
//Operador 
//el monto es el monto extra
//$j_datos = {"datos":{"metodo":"prestamo","idusuario":"centrolima","idcliente":"206","monto":"1000","gastos_administrativos":"20","interes":"10","periodo":"D","duracion":"30","token":"89nm75nh789788uhjyrttreoi","ubicacion_registro_latitud":"-73.1125554","ubicacion_registro_longitud":"-73.1125554","huella":"576576575757576575"}}';
//Supervisor de sucursal 
//$j_datos = {"datos":{"metodo":"prestamo","idusuario":"sup.sucursal","idcliente":"206","monto":"1000","gastos_administrativos":"20","interes":"10","periodo":"D","duracion":"30","token":"89nm75nh789788uhjyrttreoi","ubicacion_registro_latitud":"-73.1125554","ubicacion_registro_longitud":"-73.1125554","huella":"576576575757576575"}}';

//Para Historial de Prestamos
//$j_datos = {"datos":{"metodo":"historial_prestamos","idusuario":"centrolima","idcliente":"206","token":"89nm75nh789788uhjyrttreoi"}}';

//Para Presencia en el local
//$j_datos = {"datos":{"metodo":"registrar_presencia","idusuario":"centrolima","idprestamo":"536","idcliente":"206","ubicacion_registro_longitud":"-73.1125554","ubicacion_registro_latitud":"-.781125554","huella":"576576575757576575","token":"89nm75nh789788uhjyrttreoi"}}';

//Para listado de clientes
//$j_datos = {"datos":{"metodo":"clientes","idusuario":"centrolima","codigo_cliente":"","apellido_paterno":"Janampa","ubicacion_registro_longitud":"-73.1125554","ubicacion_registro_latitud":"-.781125554","huella":"576576575757576575","token":"89nm75nh789788uhjyrttreoi"}}';

//Insertar clientes
//$j_datos = '{"datos":{"metodo":"registrar_cliente","idusuario":"centrolima","idmercado":"2","nombres":"Jonas","apellido_paterno":"Zarate","apellido_materno":"Torres","dni":"08998778","fecha_nacimiento":"2018-01-10","estado_civil":"S","sexo":"F","tipo_negocio":"2","otrotipo_negocio":"","telefono":"497768788","direccion":"Av jose galvez 135 LA victoria","celular":"96677676","ubicacion_registro_longitud":"-73.1125554","ubicacion_registro_latitud":"-.781125554","huella":"576576575757576575","token":"89nm75nh789788uhjyrttreoi"}}';



$j_datos = $_POST;

//$o_datos_post = json_decode($j_datos);

$o_datos = $j_datos['datos'];

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





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 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 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;
	  	
	    $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;
	    }

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

function sucursalMercado($o_user){
	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();	
			}
		}
	}elseif($o_user->getUserRoleId() == "sys.res"){ // Detectar Sucursal y Mercado si es Administrador de Sucursal
		$IdAdministrador	  		= $o_user->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_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;
	}elseif($o_user->getUserRoleId() == "sys.sup"){ // Detectar Sucursal y Mercado si es Administrador de Sucursal
		$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_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;
	}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)){
			$fechaDiaAbierto 	= $o_crColaboradorDP->getFechaTransaccion($idColaborador);
	}
	return $fechaDiaAbierto;
}

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

	if($s_token == $o_datos['token'])
	{
		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['estado'] = "0";
						$a_resultado['mensaje'] = "Login fue rechazado";
					}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['nombre_completo']  = $o_user->getUserName();
							$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"] 	= $a_SucursalMercado["mercado"];
							$a_user["idmercado"]= $a_SucursalMercado["idmercado"];
							$a_user["sucursal"] = $a_SucursalMercado["sucursal"];
							$a_user["idsucursal"] = $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)){
								$fechatransaccion 	= $o_crColaboradorDP->getFechaTransaccion($a_user['idusuario']);
								$a_user['fecha_abierta'] 	= $fechatransaccion;
							}
							
							
							$o_asistenciaFNTemp = new CrAsistenciaFN();
							$o_asistenciaFNTemp->setIdColaborador($idColaborador);
							$o_asistenciaFNTemp->setEliminado('-1');
							$o_asistenciaFNTemp->setFecha(date('Y-m-d'));
							//$o_asistenciaFNTemp->setFecha($fechatransaccion);
							$a_o_asistenciaFNTemp = $o_asistenciaFNTemp->select();
							if(is_array($a_o_asistenciaFNTemp) && count($a_o_asistenciaFNTemp)>0){
								$a_user["registro_asistencia"] = 'S';
							}else{
								$a_user["registro_asistencia"] = 'N';
							}
							
							
							$a_resultado['usuario'] = $a_user;
						}
					}	
					 
				break;
			 
			 case "registrar_asistencia": 
			 	
					$idusuario 	= $o_datos['idusuario'];
					$huella 	= $o_datos['huella'];
					
					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)){
							
								$o_crColaboradorBN 	= $a_o_crColaboradorDP[0];
								$idColaborador 		= $o_crColaboradorBN->getIdColaborador();
								$HoraIngreso		= $o_crColaboradorBN->getHoraIngreso();
								$MinutoIngreso		= $o_crColaboradorBN->getMinutoIngreso();
								$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(date('Y-m-d'));
								$a_o_asistenciaFNTemp = $o_asistenciaFNTemp->select();
								
								if(!is_array($a_o_asistenciaFNTemp)){
								
								  $o_asistenciaDP = new CrAsistenciaDP();
								   
								  $o_asistenciaDP->setIdColaborador($idColaborador);
								  $o_asistenciaDP->setTipoAsistencia('A');
								  
								  if($HoraMinutoActual > $HoraMinutoIngreso){
								  	$o_asistenciaDP->setTipoAsistencia('T');
								  }
								  $o_asistenciaDP->setEstado('A');
								  
								  //$o_asistenciaDP->setFecha($fechatransaccion);
								  $o_asistenciaDP->setFecha(date('Y-m-d'));
								  
								  
								  $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'] = "1";
									$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 "cobranzas": 
		 				$ruta = "/images/uploadFiles/";
		 				
		 				 // Foto de Negocio
		 				 $i_IdTipoFile = "8";
		 				
		 				 $o_ObjectFN_TN = new Cr_cliente_fileFN();
    					 $o_ObjectBN_TN = $o_ObjectFN_TN->selectByPK( $i_IdTipoFile );
    					 
    					 if( $o_ObjectBN_TN)
						{
						    $s_NombreFile = $o_ObjectBN_TN->getNombreFile();
						    $s_Destino_Negocio = $ruta.$s_NombreFile;
						}
		 				
						 // Foto de Negocio
		 				 $i_IdTipoFile = "6";
		 				
		 				 $o_ObjectFN_TC = new Cr_cliente_fileFN();
    					 $o_ObjectBN_TC = $o_ObjectFN_TC->selectByPK( $i_IdTipoFile );
    					 
    					 if( $o_ObjectBN_TC )
						{
						    $s_NombreFile = $o_ObjectBN_TC->getNombreFile();
						    $s_Destino_Domicilio = $ruta.$s_NombreFile;
						}
		 				
						
		 				$idusuario 			= $o_datos['idusuario'];
		 				$codigo_cliente 	= $o_datos['codigo_cliente'];
		 				$apellido_paterno 	= $o_datos['apellido_paterno'];
		 				$idmercado		 	= $o_datos['idmercado'];
		 					 				
		 				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>";
								*/
								$a_resultado["idmercado"] 	= $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);
															
								if($a_filtroCobranza["idcolaborador"])	$o_ObjectBean->setIdColaboradorPrestamo($a_filtroCobranza["idcolaborador"]);
								if($a_filtroCobranza["idprestamos"])	$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_class = new PrestamoBL();
								$a_ObjectBean = $o_class->busquedaPrestamo($o_ObjectBean);
							
								if(count($a_ObjectBean)>0){
									$i = 1;
							    	foreach ($a_ObjectBean as $iKey => $o_objBean){
							    	
							    		$a_clientes[$o_objBean->getIdCliente()]["nombre_completo"] 	= utf8_encode(ucwords(mb_strtolower ($o_objBean->getObjectCliente()->getNombres()." ".$o_objBean->getObjectCliente()->getApellidoPaterno()." ".$o_objBean->getObjectCliente()->getApellidoMaterno())));
							    		$a_clientes[$o_objBean->getIdCliente()]["hora_visita"] 		= $o_objBean->getObjectCliente()->getSexo();
							    		$a_clientes[$o_objBean->getIdCliente()]["telefono"] 		= $o_objBean->getObjectCliente()->getTelefono();
							    		$a_clientes[$o_objBean->getIdCliente()]["celular"] 			= $o_objBean->getObjectCliente()->getCelular();
							    		$a_clientes[$o_objBean->getIdCliente()]["direccion"] 		= $o_objBean->getObjectCliente()->getDireccion();
							    		$a_clientes[$o_objBean->getIdCliente()]["gasto_administrativo"] 	= 2;
							    		$a_clientes[$o_objBean->getIdCliente()]["ruta_foto_negocio"]	= $s_Destino_Negocio;
							    		$a_clientes[$o_objBean->getIdCliente()]["ruta_foto_domicilio"]	= $s_Destino_Domicilio;
							    		$a_clientes[$o_objBean->getIdCliente()]["ubicacion_domicilio_longitud"]	= $o_objBean->getObjectCliente()->getLongitudDomicilio();
							    		$a_clientes[$o_objBean->getIdCliente()]["ubicacion_domicilio_latitud"]	= $o_objBean->getObjectCliente()->getLatitudDomicilio();;
							    		$a_clientes[$o_objBean->getIdCliente()]["ubicacion_negocio_longitud"]	= $o_objBean->getObjectCliente()->getLongitudNegocio();;
							    		$a_clientes[$o_objBean->getIdCliente()]["ubicacion_negocio_latitud"]	= $o_objBean->getObjectCliente()->getLatitudNegocio();
							    		$a_clientes[$o_objBean->getIdCliente()]["idcliente"] 		= $o_objBean->getIdCliente();
							    		$a_clientes[$o_objBean->getIdCliente()]["semaforo"] 		= $o_objBean->getSemaforo();
							    		
							    		
						    			$o_PrestamoDPT = new PrestamoDP(new PrestamoBean());
						    			$cobro_realizado = $o_PrestamoDPT->getTotalDiaAbierto($o_objBean->getIdPrestamo(),$fechaDiaAbierto);
						    			
						    			$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['idprestamo'] 	= $o_objBean->getIdPrestamo();	
						    			$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['monto_total'] 	= $o_objBean->getMontoTotal();	
						    			$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['capital'] 		= $o_objBean->getMontoPrestado();	
						    			$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['monto_interes']= $o_objBean->getInteresMonto();	
						    			$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['saldo']		= $o_objBean->getSaldoPrestamo();	
						    			$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['monto_interes']= $o_objBean->getInteresPorcentaje();	
						    			$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['gastos_administrativos']= $o_objBean->getGastoAdministrativo();	
						    			$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['fecha_prestamo']= $o_objBean->getFechaInicio();	
						    			$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['fecha_vencimiento']= $o_objBean->getFechaVencimiento();	
						    			$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['estado']			= $o_objBean->getEstado();	
						    			$a_prestamo[$o_objBean->getIdCliente()][$o_objBean->getIdPrestamo()]['cobro_realizado']	= $cobro_realizado;	//Suma de los cobros del dia del prestamo
						    			
							    		$a_clientes[$o_objBean->getIdCliente()]['prestamo'] = $a_prestamo[$o_objBean->getIdCliente()];
							    		$i++;
							    		
							    	}
							    	$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'];
		 					 		
		 			if($idusuario){
						if($idcliente){
							
							//////////////////////////////////////////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();
								
								$fechaDiaAbierto = fechaDiaAbierto($idusuario);
								
								$o_PrestamoBeanTemp = new PrestamoBean();
								$o_PrestamoBeanTemp->setIdPrestamo($idprestamo);
								
								$o_PrestamoDP = new PrestamoDP($o_PrestamoBeanTemp);
								$a_o_Prestamo = $o_PrestamoDP->select();
								foreach ($a_o_Prestamo as $key =>$o_Prestamo){
									$SaldoAnterior = $o_Prestamo->getSaldoPrestamo();
									$IdColaboradorPrestamo = $o_Prestamo->getIdColaborador();
									$EstadoPrestamo = $o_Prestamo->getEstado();
								}
								
								if($EstadoPrestamo == "C"){
									$a_resultado['estado'] = "2";
									$a_resultado['mensaje'] = "Fallo, no se puede ingresar un pago al prestamo ".$idprestamo." porque esta Cancelado.";
								}
								
								$id_pago_update = "";
								$o_PagoBean = new PagoBean();
								$o_PagoBean->setIdPrestamo($idprestamo);
								$o_PagoBean->setFechaPago($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'));
									}
									//Enviar correo
														
									
								}else{//Descuento de saldo Normal
									$o_PrestamoBean->setSaldoPrestamo($NuevoSaldo);	
								}
								$o_PrestamoBL = new PrestamoBL();
								$bResult = $o_PrestamoBL->modificarPrestamo($o_PrestamoBean);		
								if($bResult){
								  	$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'];
						$montoextra		 				=  $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'];
						
						$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){
								
								//////////////////////////////////////////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($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($montoextra);
									    $montoTotal 	= round(($montoextra + $SaldoPrestamo)*(1+$interes/100),1);
									    $o_PrestamoBean->setMontoPrestado($montoextra + $SaldoPrestamo);
									    $o_PrestamoBean->setMontoTotal(round(($montoextra + $SaldoPrestamo)*(1+$interes/100),1));
									    $o_PrestamoBean->setSaldoPrestamo(round(($montoextra + $SaldoPrestamo)*(1+$interes/100),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($montoextra + $SaldoPrestamo)*$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);
										  	$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_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']	= $o_newPrestamo->getMontoTotal();
												$a_prestamoNuevo['capital']	= $o_newPrestamo->getMontoPrestado();
												$a_prestamoNuevo['monto_interes']	= $o_newPrestamo->getInteresMonto();
												$a_prestamoNuevo['saldo']	= $o_newPrestamo->getSaldoPrestamo();
												$a_prestamoNuevo['interes']	= $o_newPrestamo->getInteresPorcentaje();
												$a_prestamoNuevo['gastos_administrativos']	= $o_newPrestamo->getGastoAdministrativo();
												$a_prestamoNuevo['fecha_prestamo']	= $o_newPrestamo->getFechaInicio();
												$a_prestamoNuevo['fecha_vencimiento']	= $o_newPrestamo->getFechaVencimiento();
												$a_prestamoNuevo['estado']	= $o_newPrestamo->getEstado();
												$a_prestamoNuevo['monto_extra']	= $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']	= $o_newPrestamo->getMontoTotal();
										$a_prestamoNuevo['capital']	= $o_newPrestamo->getMontoPrestado();
										$a_prestamoNuevo['monto_interes']	= $o_newPrestamo->getInteresMonto();
										$a_prestamoNuevo['saldo']	= $o_newPrestamo->getSaldoPrestamo();
										$a_prestamoNuevo['interes']	= $o_newPrestamo->getInteresPorcentaje();
										$a_prestamoNuevo['gastos_administrativos']	= $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'] = $o_objBean->getMontoTotal();
	              			$a_prestamos[$i]['capital'] = $o_objBean->getMontoPrestado();
	              			$a_prestamos[$i]['estado'] = $o_objBean->getEstado();
	              			$a_prestamos[$i]['saldo'] = $o_objBean->getSaldoPrestamo();
	              			$a_prestamos[$i]['interes'] = $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'] = $MontoPago;
	              			$a_prestamos[$i]['gastos_administrativos'] = $o_objBean->getGastoAdministrativo();
	              			$a_prestamos[$i]['fecha_prestamo'] 		= $o_objBean->getFechaInicio();
	              			$a_prestamos[$i]['semaforo'] 			= $o_objBean->getSemoforo();;
	              			$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 "clientes":
		 			$idusuario 						=  $o_datos['idusuario'];
					$codigo_cliente 				=  $o_datos['idcliente'];
					$apellido_paterno 				=  $o_datos['apellido_paterno'];
					 
					$o_user 		= new user_class();
					if ($o_user->findUser($idusuario)){	
		 		 		if($idusuario){
							sucursalMercado($o_user);
							$a_SucursalMercado 			= sucursalMercado($o_user);
							/*
							echo "<pre>";
							
							print_r($a_SucursalMercado);
							echo "</pre>";
							*/
							$a_resultado["idmercado"] 	= $a_SucursalMercado["idmercado"];
							$a_resultado["idsmercados"]	= $a_SucursalMercado["idsmercados"];
							$a_resultado["idsucursal"] 	= $a_SucursalMercado["idsucursal"];	 						
							
							$o_ObjectBean = new ClienteBean();
												
						  	$o_ObjectBean->setFiltroMercado($a_resultado["idsmercados"]);
						  	
						  	
						  	if($codigo_cliente !="")		{ $o_ObjectBean->setIdCliente($codigo_cliente); }
						  	if($apellido_paterno !="")		{ $o_ObjectBean->setApellidoPaterno(utf8_decode($apellido_paterno)); }
						  	
						  	$o_class 					= new ClienteBL();
							$a_ObjectBean 				= $o_class->busquedaCliente($o_ObjectBean);
							/*
							echo "<pre>";
							print_r($a_ObjectBean);
							echo "</pre>";
							*/
							if(count($a_ObjectBean)>0){
								$i = 1;
						    	foreach ($a_ObjectBean as $iKey => $o_objBean){
						    		$a_datos[$i]["IdCliente"] 		= $o_objBean->getIdCliente();
						    		$a_datos[$i]["NombreCompleto"] 	= utf8_encode($o_objBean->getNombreCompleto());
						    		$a_datos[$i]["Sexo"] 			= $o_objBean->getSexo();
						    		$a_datos[$i]["Dni"] 			= $o_objBean->getDni();
						    		$a_datos[$i]["EstadoCivil"] 	= $o_objBean->getEstadoCivil();
						    		$a_datos[$i]["IdMercado"] 		= $o_objBean->getIdMercado();
						    		$a_datos[$i]["Telefono"] 		= $o_objBean->getTelefono();
						    		$a_datos[$i]["Celular"] 		= $o_objBean->getCelular();
						    		$a_datos[$i]["gasto_administrativo"] 		= "2";
						    		$i++;
						    	}
						    	$a_resultado['datos'] 		= $a_datos;
						    }
						    $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 "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'];
					
					$periodo	 					=  $o_datos['periodo'];
					$duracion	 					=  $o_datos['duracion'];
					$hora		 					=  $o_datos['hora'];
					$observacion 					=  $o_datos['observacion'];
					
					$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)){
 						
						$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( ( int ) $interes );
					    $o_Cr_pedido_prestamoDP->setDuracion	( ( int ) $duracion );
					    $o_Cr_pedido_prestamoDP->setPeridiocidadPago( $periodo );
					    $o_Cr_pedido_prestamoDP->setHoraAtencion	( $horaatencion );
					    $o_Cr_pedido_prestamoDP->setEliminado( -1 );
					    $o_Cr_pedido_prestamoDP->setObservacion( $observacion );
					
					    
				        //SAVE
				        $o_Cr_pedido_prestamoDP->setFechaTransaccion( $FechaTransaccion );
				        $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'] = "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'];
					
					$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->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_ClienteSystemClass = new ClienteSystemClass($o_ClienteBean);
				  			  
					
				  	$bResult = $o_ClienteSystemClass->insertCliente($chek_documento);
				  	if($bResult){
						//Registrar Huella
						
						//--------------------------
			 			$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 "cierre_caja":
		 			
		 			$idusuario 				= $o_datos['idusuario'];
					$idmercado 				= $o_datos['idmercado'];
					
		 			$fechaDiaAbierto = fechaDiaAbierto($idusuario);
		 			
		 			$o_crMercadoBean = new MercadoBean();
					$o_crMercadoBean->setIdMercado($idmercado);
					
					$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();
					}
		 			
		 			
              		$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();
						$Asesor 			= $o_crColaboradorBN->getNombres()." ".$o_crColaboradorBN->getApellidoPaterno()." ".$o_crColaboradorBN->getApellidoMaterno();
					}
		 			
		 			//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->setIdColaborador($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) {
		 					$a_transacciones[$j]['tipo_transaccion'] = "Prestamo";
		 					$sumaMontoPrestado 	+= $o_ObjectDP->getMontoPrestado();
		 					$sumaMontoGA 		+= $o_ObjectDP->getGastoAdministrativo();
		 					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]['gastoadministrativo'] = $o_ObjectDP->getGastoAdministrativo();
		 					$a_transacciones[$j]['monto'] = $o_ObjectDP->getMontoPrestado();
		 					$a_transacciones[$j]['hora_registro'] = $o_ObjectDP->getFechaCreacion();
		 					$j++;
		 				}
					}
					
					//Detalle y Suma de Pagos
					
					$o_ObjectBean = new PagoBean();
              		$o_ObjectBean->setFechaPago($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){
			 					$a_transacciones[$i]['tipo_transaccion'] = "pago";
			 					$sumaMontoPagado 	+= $o_ObjectDP->getMontoPago();
			 					if($o_ObjectDP->getTipoPago()=="2"){
			 						$a_transacciones[$i]['tipo_transaccion'] .="-mora";
			 					}
			 					$a_transacciones[$i]['monto'] = $o_ObjectDP->getMontoPago();
			 					$a_transacciones[$i]['hora_registro'] = $o_ObjectDP->getFechaCreacion();
			 					$i++;
		 					}
		 				}
					}
					
					function multi_sort(&$array, $key, $asc=true)
				    {
				        $sorter = new array_sorter($array, 'hora_registro', false);
				        return $sorter->sortit();
				    }
				    //sort by parent_id in descending order
				    $a_transacciones = multi_sort($a_transacciones, "parent_id", false);
				    
					$a_resultado["nombre_mercado"] 	= $nombreMercado;
					$a_resultado["asesor"]			= $Asesor;
					$a_resultado["caja_asignada"]	= $sumaCapitalIncial;	 						
					$a_resultado["balance_caja"]	= $sumaCapitalIncial - $sumaMontoPrestado + $sumaMontoGA + $sumaMontoPagado;	 						
					$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){
								$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;
							}
						}
						$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'];
					$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){
								$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;
							}
						}
						$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;
		}
	
			
	}
	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);
		//echo "</pre>";
	}		



?>
