<?php
date_default_timezone_set('America/Lima');
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');
session_start();
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();
	$OArea = new GArea();

	$data = json_decode(file_get_contents('php://input'));

    $response = "";

	switch($_GET['oper']){
		case 'listar':
			$sql=$OArea->lista();
			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->noArea))
				break;
			$data->noArea=strtoupper($data->noArea);
			if(empty($data->id)){
				$sql=$OArea->guardar();
			}else
				$sql=$OArea->modificar();
			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('si', $data->noArea,$data->id))
				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']=($response_json['affected_rows']==1)?"Se registro con éxito los datos del correctamente":"No se realizaron cambios en el registro Departamento";
            $response = $response_json;  
		break;		
		case 'eliminar':
			if(!isset($data) || empty($data))
				break;
			$sql=$OArea->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;
    }
	echo json_encode($response);
}catch(Exception $e){
	echo $e->getOutMsg();
}
?>