<?php
date_default_timezone_set('America/Lima');
session_start();
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token, Authorization');
try{
	$response_json	=array('success'=>false, 'num_rows'=>-1, 'rows'=>array(), "messages"=>"Estas intentando algo inusual en el sistema");
	require_once("./class/GLibfunciones.php");
	$OConex = new GConector();
	$init_stmt=$OConex->stmt_init();
	$ORrhh = new GRrhh();
	$data = json_decode(file_get_contents('php://input'));
	$response = "";
	switch($_GET['oper']){
		case 'listar':
			$sql=$ORrhh->listar();
			if(!$init_stmt->prepare($sql))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);		
			$init_stmt->execute();
			$result=$init_stmt->get_result();
			$response_json['success']=true;
			$response_json['totalItemCount']=$result->num_rows;
			if($response_json['totalItemCount']==0)
				break;			
			$i=0;
			while($rows=$result->fetch_assoc()){
				array_push($response_json['rows'], array_merge($rows, array("item"=>++$i)));
			}
            $response = $response_json['rows'];  
		break;					
		case 'guardar':
			if(!isset($data->idTipoDocumento, $data->nuDocumento, $data->noEmpleado, $data->noApepat))
			break;		
			$OConex->setAutocommit(FALSE);
			$init_commit=$OConex->stmt_init();			
			$method=(empty($data->id))?'agregar':'actualizar';
			$data->noEmpleado=strtoupper($data->noEmpleado);
			$data->noApepat=strtoupper($data->noApepat);
			$data->noApemat=strtoupper($data->noApemat);
			$sql=call_user_func(array($ORrhh, $method));			
			if(!$init_commit->prepare($sql))
				throw new GException("Vaya! ocurrio un problema en el sistema2.<br/>Consulte con el Soporte Tecnico<br/>", $OConex->error, $OConex->errno);							
			if(!$init_commit->bind_param('sssiiissiisssssssssi',$data->noEmpleado,$data->noApepat,$data->noApemat,$data->idTipoDocumento,$data->idArea,$data->idCargo,$data->codCuspp, $data->nuDocumento,$data->idEstadoCivil,$data->idSexo,$data->feNacimiento, $data->noDireccion,$data->noRefDireccion,$data->idUbigeo,$data->nuCelular,$data->nuTelefono,$data->noCorreo, $data->feIngreso, $data->feCese ,$data->id))
				throw new GException("Vaya! ocurrio un problema en el sistema3.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);
							
			$init_commit->execute();  
			$response_json['success']=true;
			$response_json['affected_rows']=$init_commit->affected_rows;
			$response_json['messages']="El registro fue guardaron satisfactoriamente";
			$OConex->commit();
			$response = $response_json;  
        break;
		case 'eliminar':
			if(!isset($data) || empty($data))
				break;
			$sql=$ORrhh->eliminar();
			if(!$init_stmt->prepare($sql))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico<br/>", $OConex->error, $OConex->errno);
			if(!$init_stmt->bind_param('i', $data))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);
			$init_stmt->execute();
			$response_json['success']=TRUE;
			$response_json['affected_rows']=$init_stmt->affected_rows;
			$response_json['messages']=($init_stmt->affected_rows==1)?"Se elimino con éxito el registro":"";
			if($init_stmt->affected_rows!=1 && $init_stmt->errno!=0)
				$response_json['messages']=errorMySQL($init_stmt->errno);

			$response = $response_json;  
		break;	

		case 'listarTipoDocumento':
            $item=1; 
            $sql=$ORrhh->listarTipoDocumento();
            if(!$init_stmt->prepare($sql))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);		
			$init_stmt->execute();
			$result=$init_stmt->get_result();
			$response_json['success']=true;
			$response_json['totalItemCount']=$result->num_rows;
			if($response_json['totalItemCount']==0)
				break;			
			$i=0;
			while($rows=$result->fetch_assoc()){
				array_push($response_json['rows'], array_merge($rows, array("item"=>++$i)));
			}
            $response = $response_json['rows'];  
		break;
		case 'listarTipoEstadoCivil':
            $item=1; 
            $sql=$ORrhh->listarTipoEstadoCivil();
            if(!$init_stmt->prepare($sql))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);		
			$init_stmt->execute();
			$result=$init_stmt->get_result();
			$response_json['success']=true;
			$response_json['totalItemCount']=$result->num_rows;
			if($response_json['totalItemCount']==0)
				break;			
			$i=0;
			while($rows=$result->fetch_assoc()){
				array_push($response_json['rows'], array_merge($rows, array("item"=>++$i)));
			}
            $response = $response_json['rows'];  
		break;
		case 'listarTipoSexo':
            $item=1; 
            $sql=$ORrhh->listarTipoSexo();
            if(!$init_stmt->prepare($sql))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);		
			$init_stmt->execute();
			$result=$init_stmt->get_result();
			$response_json['success']=true;
			$response_json['totalItemCount']=$result->num_rows;
			if($response_json['totalItemCount']==0)
				break;			
			$i=0;
			while($rows=$result->fetch_assoc()){
				array_push($response_json['rows'], array_merge($rows, array("item"=>++$i)));
			}
            $response = $response_json['rows'];  
		break;
		case 'listarCargo':
            $item=1; 
            $sql=$ORrhh->listarCargo();
            if(!$init_stmt->prepare($sql))
                throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);
            if(!$init_stmt->bind_param('i', $_GET['idCargo']))
				throw new GException("Vaya! ocurrio un problema en el sistema.<br/>Consulte con el Soporte Tecnico", $OConex->error, $OConex->errno);
			$init_stmt->execute();
            $result=$init_stmt->get_result();   
			$i=0;       
            while($rows=$result->fetch_assoc()){
				array_push($response_json['rows'], array_merge($rows, array("item"=>++$i)));
			}
			$response = $response_json['rows'];  
		break;
		
	}
	echo json_encode($response);
}catch(Exception $e){
	echo $e->getOutMsg();
}
?>