<?php namespace App\Http\Controllers;

use App\Http\Controllers\OpenAiController;
use App\Http\Controllers\MainController;
use Illuminate\Support\Facades\Response;
use Illuminate\Support\Facades\Session;
use Illuminate\Support\Facades\Request;
use App\Custom\SQLConnection;
use App\Custom\Misc;
use Exception;
use stdClass;

class BalancesController extends Controller  {
    public static $monedas;
	public static $secciones; 
	public static $titulos; 

    public static function obtenerBalances(){		
		$token_id_usuario 	 = MainController::obtenerParametrosInformeComercial();
		$token_por_secciones = Misc::obtenerTokenSeccion('contables');
		$menu = Misc::obtenerPermisosNavigator();
		$task_id = Request::Input('task_id');
    	$user_id 		= Session::get("usuario")->user_id;
        $valido =  Misc::restriccionPermiso('BALANCE');
        if(!$valido && !$task_id){ return redirect('/menu'); }
		$cuit = Request::Input('cuit');
		$nombre_persona = Request::Input('nombre_persona');
		$anios= 50;
		$visible = 1;
		

		$balances = SQLConnection::backendStoreProcedure('backend_balances_contables',array(null,$cuit,$anios,$visible,$task_id,$user_id),"select");

		self::$monedas  = SQLConnection::obtenerMonedas();
		$monedas = self::$monedas;
		$ruta_archivo = ENV('RUTA_ARCHIVO_PDF').'/balances/'.$cuit; 
		$balances2 = [];
		
		if ($task_id != null && $task_id != 0 && isset($menu['BALANCE'])){
			$balances2 = SQLConnection::backendStoreProcedure('backend_balances_contables',array(null,$cuit,$anios,$visible,'',$user_id),"select");
		}
		
		$datos = array('seleccionar',null,null,null,null,null,null,null,null); 
        $datos_prompt = SQLConnection::backendStoreProcedure('gestor_prompts',$datos);        
		//		
		$balanceSinCarga = false;

		foreach ($balances as $item) {
			if (isset($item->cargar_datos) && $item->cargar_datos == 0) {
				$balanceSinCarga = true;
		        break; 
		    }
		}
		return view('/balances/balances')->with(compact('balances','balances2','anios','visible','monedas','ruta_archivo','menu','cuit','nombre_persona','token_por_secciones','token_id_usuario','task_id','user_id','datos_prompt', 'balanceSinCarga'));
	}

    public function modificarBalanceDirecto(){
		$nombre_persona = Request::Input('nombre_persona');
		$cuit = Request::Input('cuit');
		$id_balance = Request::input('id_balance');
		$task_id = Request::Input('task_id');
		$task_id1 = Request::Input('task_id1');
		$fecha_inicio = Request::Input('fecha_inicio_tarea');
		$usuario_tarea  = Request::Input('usuario_tarea');
		$user_id 		    = Session::get("usuario")->user_id;
		
		if ($fecha_inicio == ''){ 
			$fecha_inicio = null; 
		}
		$balances = SQLConnection::backendStoreProcedure('backend_balances_contables',array($id_balance,null,null,null,null,$user_id),"selectOne");
		$monedas  = (self::$monedas) ? self::$monedas : SQLConnection::obtenerMonedas();
				
		$archivo = ENV('PATH_COMPARTIDO').$balances->ruta_archivo; 
		$existe_pdf = false;
		
		if (file_exists($archivo)){
			$archivo = ENV('RUTA_ARCHIVO_PDF').$balances->ruta_archivo;
			$existe_pdf = true; 
		}

		if ($task_id != null && $task_id != 0 && $fecha_inicio == null && $usuario_tarea == $user_id){
			$fecha_inicio = SQLConnection::backendStoreProcedure('backend_iniciar_tarea',array($task_id),"selectOne");
		}
		
		return view('/balances/modal_balances')->with(compact('balances','monedas','existe_pdf','cuit','nombre_persona','task_id','archivo'));
	}
}