<?php 
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
if (strlen(session_id()) < 1) session_start();

// Verifica que la sesión esté iniciada correctamente
if (!isset($_SESSION["idusuario"])) {
    echo json_encode(["error" => "Sesión no válida o no iniciada."]);
    exit;
}
require_once('../modelos/Contrato.php');
$contrato=new Contrato();

$idusuario=$_SESSION["idusuario"];
$idcontrato=isset($_POST["idcontrato"])? limpiarCadena($_POST["idcontrato"]):"";
$idpersona=isset($_POST["idpersona"])? limpiarCadena($_POST["idpersona"]):"";
$iddifunto=isset($_POST["iddifunto"])? limpiarCadena($_POST["iddifunto"]):"";
$fecha_hora=isset($_POST["fecha_hora"])? limpiarCadena($_POST["fecha_hora"]):"";
$descripcion=isset($_POST["descripcion"])? limpiarCadena($_POST["descripcion"]):"";
$tipo_contrato=isset($_POST["tipo_contrato"])? limpiarCadena($_POST["tipo_contrato"]):"";
$tipo_ingreso=isset($_POST["tipo_ingreso"])? limpiarCadena($_POST["tipo_ingreso"]):"";
$total_venta=isset($_POST["total_venta"])? limpiarCadena($_POST["total_venta"]):"";
$descripcion_fallecimiento=isset($_POST["descripcion_fallecimiento"])? limpiarCadena($_POST["descripcion_fallecimiento"]):"";
$idfuneraria=isset($_POST["idfuneraria"])? limpiarCadena($_POST["idfuneraria"]):"";
$fecha_fallecimiento=isset($_POST["fecha_fallecimiento"])? limpiarCadena($_POST["fecha_fallecimiento"]):"";
$fecha_entierro=isset($_POST["fecha_entierro"])? limpiarCadena($_POST["fecha_entierro"]):"";

$nro_comprobante= isset($_POST['nro_comprobante'])?$_POST['nro_comprobante']:[];
$descripcion_pago= isset($_POST['descripcion_pago'])?$_POST['descripcion_pago']:[];
$monto_pago= isset($_POST['monto_pago'])?$_POST['monto_pago']:[];
$metodo_pago= isset($_POST['metodo_pago'])?$_POST['metodo_pago']:[];
$fecha_pago= isset($_POST['fecha_pago'])?$_POST['fecha_pago']:[];

$nrorecibo_acuenta=isset($_POST["nrorecibo_acuenta"])? limpiarCadena($_POST["nrorecibo_acuenta"]):"";
$descripcion_acuenta=isset($_POST["descripcion_acuenta"])? limpiarCadena($_POST["descripcion_acuenta"]):"";
$monto_acuenta=isset($_POST["monto_acuenta"])? limpiarCadena($_POST["monto_acuenta"]):"";
$metodo_acuenta=isset($_POST["metodo_acuenta"])? limpiarCadena($_POST["metodo_acuenta"]):"";
$fecha_acuenta=isset($_POST["fecha_acuenta"])? limpiarCadena($_POST["fecha_acuenta"]):"";
$iddetalle_difunto=isset($_POST["iddetalle_difunto"])? limpiarCadena($_POST["iddetalle_difunto"]):"";
$intereses_total=isset($_POST["intereses_total"])? limpiarCadena($_POST["intereses_total"]):"";
$estado_contrato=isset($_POST["estado_contrato"])? limpiarCadena($_POST["estado_contrato"]):"";
$idempleado=isset($_POST["idempleado"])? limpiarCadena($_POST["idempleado"]):"";
$estado_vendedor=isset($_POST["estado_vendedor"])? limpiarCadena($_POST["estado_vendedor"]):"";

switch ($_GET["op"])
{

    case 'guardaryeditar':
      if(empty($idcontrato))
      {
        $rspta=$contrato->insertar($idusuario,$idpersona,$fecha_hora,$descripcion,$tipo_contrato,$tipo_ingreso,$total_venta,$intereses_total,$estado_vendedor,$idempleado,
                                  $_POST['iddetalle_pabellon'],$_POST['precio_venta'],$_POST['precio_adicional'],$nro_comprobante,$descripcion_pago,$monto_pago,$metodo_pago,$fecha_pago);
        echo $rspta ? "Contrato Registrado" : "Contrato no se pudo registrar";
      }
      else {
        {
          $rspta=$contrato->editar($idcontrato,$idusuario,$idpersona,$fecha_hora,$descripcion,$tipo_contrato,$tipo_ingreso,$total_venta,$intereses_total,$estado_contrato,$estado_vendedor,$idempleado,
                                  $_POST['iddetalle_pabellon'],$_POST['precio_venta'],$_POST['precio_adicional'],$nro_comprobante,$descripcion_pago,$monto_pago,$metodo_pago,$fecha_pago);
          echo $rspta ? "Contrato Actualizada" : "Contrato no se pudo actualizar";
        }
      }
    break;

    case 'guardar_pago':
        $rspta=$contrato->guardar_pago($idcontrato,$idusuario,$nrorecibo_acuenta,$descripcion_acuenta,$monto_acuenta,$metodo_acuenta,$fecha_acuenta,$total_venta);
          echo $rspta ? "Pago Registrado" : "Pago no se pudo registrar";
    break;

    case 'guardarDetalle':
        $rspta=$contrato->guardarDetalle($iddetalle_difunto,$iddifunto,$descripcion_fallecimiento,$idfuneraria,$fecha_fallecimiento,$fecha_entierro);
          echo $rspta ? "Registro Actualizado" : "No se pudo registrar";
    break;

    case 'mostrar':
      $rspta=$contrato->mostrar($idcontrato);
       //Codificar el resultado utilizando json
       echo json_encode($rspta);
    break;

    case 'mostrar_contrato':
        //$idventa = isset($_GET['id']) ? intval($_GET['id']) : 0;
        $rspta = $contrato->mostrar_contrato($idcontrato);
        echo json_encode($rspta);
      break;

    case 'mostrar_acuenta':
        //$idventa = isset($_GET['id']) ? intval($_GET['id']) : 0;
        $rspta = $contrato->mostrar_acuenta($idcontrato);
        echo json_encode($rspta);
    break;

    case 'mostrar_difunto':
      $detalle_pabellonid = isset($_POST['detalle_pabellonid']) ? intval($_POST['detalle_pabellonid']) : 0;
      $rspta = $contrato->mostrar_difunto($detalle_pabellonid);
      echo json_encode($rspta);
    break;

    case 'eliminarDetalle':
        $idingreso=$_REQUEST["idingreso"];
        $rspta=$venta->eliminarDetalle($idingreso);
         //Codificar el resultado utilizando json
         echo json_encode($rspta);
      break;


    case 'eliminar':
      $rspta=$contrato->eliminar($idcontrato);
       //Codificar el resultado utilizando json
       echo json_encode($rspta);
    break;

    case 'listar_venta':
      $rspta=$contrato->listar_venta();
      //Vamos a declarar un array
      $data=Array();
      while($reg=$rspta->fetch_object())
      {
        $contador = 1;
        $data[]=array(
          "0"=>$contador, // contador incremental
          "1"=>$reg->nombre_vendedor,
          "2"=>$reg->cantidad
        );
        $contador++;
      }
      $results= array(
        "sEcho"=>1, //Informacion para el datatable
        "iTotalRecords"=>count($data),//Enviamos el total de registtros en el datatable
        "iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
        "aaData"=>$data);
      echo json_encode($results);

    break;

     case 'listarcontrato':
      $rspta=$contrato->listarcontrato();
      //Vamos a declarar un array
      $data=Array();
      while($reg=$rspta->fetch_object())
      {
        $url='../contrato/contrato_contado.php?idcontrato=';
         $url1='../contrato/contrato_credito.php?idcontrato=';
        if($reg->tipo_contrato == 1){
        $tipo='<button class="btn btn-primary btn-xs btn-flat">Contado</buton>';
        }else if($reg->tipo_contrato == 2){
        $tipo='<button class="btn btn-danger btn-xs btn-flat">Credito</buton>';
        }else if($reg->tipo_contrato == 3){
        $tipo='<button class="btn btn-warning btn-xs btn-flat">Futuro</buton>';
        }else if($reg->tipo_contrato == 4){
        $tipo='<button class="btn btn-dark btn-xs btn-flat">Donacion</buton>';
        }else{
        $tipo='<button class="btn btn-dark btn-xs btn-flat">Desconocido</buton>';
        }

        if($reg->nombre_vendedor > 0){
          $vendedor = $reg->nombre_vendedor;
        }else{
          $vendedor = '-';
        }

        if($reg->estado_contrato == 2 && ($reg->tipo_contrato == 2 || $reg->tipo_contrato == 3 )){
         $estado='<button class="btn btn-primary btn-xs btn-flat">Cancelado</buton>';
         $opcion='<a href="acuenta.php?idcontrato=' . $reg->idcontrato . '" class="btn btn-dark btn-xs btn-flat">Ver</i></a>
                  <a href="create.php?idcontrato=' . $reg->idcontrato . '" class="btn btn-warning btn-xs btn-flat"><i class="fa fa-edit"></i></a>' .
                  ' <a target="_blank" href="'.$url.$reg->idcontrato.'"> <button class="btn btn-info btn-xs btn-flat"><i class="fa fa-file"></i> </button></a> ' .
                  ' <button class="btn btn-danger btn-xs btn-flat" onclick="eliminar(' . $reg->idcontrato . ')"><i class="fas fa-trash-alt"></i></button>';
        }else if($reg->estado_contrato == 1 && ($reg->tipo_contrato == 2 || $reg->tipo_contrato == 3 )){
         $estado='<button class="btn btn-danger btn-xs btn-flat">Pendiente</buton>';
         $opcion='<a href="acuenta.php?idcontrato=' . $reg->idcontrato . '" class="btn btn-dark btn-xs btn-flat">Ver Acuenta</i></a>
                  <a href="create.php?idcontrato=' . $reg->idcontrato . '" class="btn btn-warning btn-xs btn-flat"><i class="fa fa-edit"></i></a>' .
                  ' <a target="_blank" href="'.$url1.$reg->idcontrato.'"> <button class="btn btn-info btn-xs btn-flat"><i class="fa fa-file"></i> </button></a> '.
                  ' <button class="btn btn-danger btn-xs btn-flat" onclick="eliminar(' . $reg->idcontrato . ')"><i class="fas fa-trash-alt"></i></button>'
                  ;
        }else{
         $estado='<button class="btn btn-primary btn-xs btn-flat">Cancelado</buton>';
        $opcion='<a href="create.php?idcontrato=' . $reg->idcontrato . '" class="btn btn-warning btn-xs btn-flat"><i class="fa fa-edit"></i></a>' .
                   ' <a target="_blank" href="'.$url.$reg->idcontrato.'"> <button class="btn btn-info btn-xs btn-flat"><i class="fa fa-file"></i> </button></a> '.
                  ' <button class="btn btn-danger btn-xs btn-flat" onclick="eliminar(' . $reg->idcontrato . ')"><i class="fas fa-trash-alt"></i></button>'
                   ; 
        }
        $data[]=array(
          "0"=>$reg->fecha_hora,
          "1"=>$reg->nombre_cliente,
          "2"=>$reg->responsable,
          "3"=>$tipo,
          "4"=>$vendedor,
          "5"=>$reg->nrocontrato,
          "6"=>number_format($reg->total_contrato,2),
          "7"=>$estado,
          "8"=>$opcion
        );
      }
      $results= array(
        "sEcho"=>1, //Informacion para el datatable
        "iTotalRecords"=>count($data),//Enviamos el total de registtros en el datatable
        "iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
        "aaData"=>$data);
      echo json_encode($results);

    break;

    case 'listar_stock':
      $rspta=$contrato->listar_stock();
      //Vamos a declarar un array
      $data=Array();
      while($reg=$rspta->fetch_object())
      {
        $nombrePabellon = json_encode($reg->nombre_pabellon);
        $nombreDifunto = json_encode($reg->nombre_difunto); // Escapado correctamente
       $data[] = array(
            "0" => $reg->nombre_pabellon,
            "1" => $reg->fila,
            "2" => $reg->columna,
            "3" => $reg->abc,
            "4" => number_format($reg->precio_venta, 2),
            "5" => '<button class="btn btn-success btn-xs btn-flat" onclick=\'agregarDetalle('
                . $reg->iddetalle_pabellon . ', '
                . $reg->fila . ', '
                . $reg->columna . ', '
                . $reg->precio_venta . ', '
                . $nombrePabellon . ','
                . $nombreDifunto . ', this)\'><span class="fa fa-plus"></span></button>'
            );
      }
      $results= array(
        "sEcho"=>1, //Informacion para el datatable
        "iTotalRecords"=>count($data),//Enviamos el total de registtros en el datatable
        "iTotalDisplayRecords"=>count($data),//enviamos el total de registros a visualizar
        "aaData"=>$data);
      echo json_encode($results);
    break;

    case 'selectContrato':
          $rspta = $contrato->selectContrato();
          if ($rspta) {
            while ($reg = $rspta->fetch_object()) {
                //echo "<option value='" . htmlspecialchars($reg->idpersona, ENT_QUOTES, 'UTF-8') . "'>" . htmlspecialchars($reg->nombre, ENT_QUOTES, 'UTF-8') . "</option>";
                echo "<option value='" . htmlspecialchars($reg->idcontrato, ENT_QUOTES, 'UTF-8') . "'>" . htmlspecialchars($reg->nombre_persona . " - " . $reg->nrocontrato, ENT_QUOTES, 'UTF-8') . "</option>";
            }
        } else {
            echo "<option value=''>No hay contrato disponibles</option>";
        }
        break;

        case 'grafico_contrato':
          $rspta=$contrato->grafico_contrato();
          echo json_encode($rspta);
        break;

}