File "LegalModel.php"
Full Path: C:/wamp64/www/AVIDOTAPP/models/LegalModel.php
File size: 3.65 KB
MIME-type: text/x-php
Charset: utf-8
<?php
class LegalModel {
private $conexion;
public function __construct() {
$database = new Database();
$this->conexion = $database->connect();
}
public function insertarEmpleadoConDotacion($datosEmpleado, $dotaciones) {
mysqli_autocommit($this->conexion, FALSE);
try {
// Escapar datos de empleado
$fingreso = mysqli_real_escape_string($this->conexion, $datosEmpleado['fingreso']);
$ident = mysqli_real_escape_string($this->conexion, $datosEmpleado['ident']);
$nombre = mysqli_real_escape_string($this->conexion, $datosEmpleado['nombre']);
$ccosto = mysqli_real_escape_string($this->conexion, $datosEmpleado['ccosto']);
$area = mysqli_real_escape_string($this->conexion, $datosEmpleado['area']);
$cargo = mysqli_real_escape_string($this->conexion, $datosEmpleado['cargo']);
$tallas = [ $datosEmpleado['tallaPant'], $datosEmpleado['tallaCami'], $datosEmpleado['tallaBot'],
$datosEmpleado['tallaChaq'], $datosEmpleado['tallaImp'] ];
$tpContrato = mysqli_real_escape_string($this->conexion, $datosEmpleado['tpContrato']);
$tpEntrega = mysqli_real_escape_string($this->conexion, $datosEmpleado['tpEntrega']);
// 1. Insertar en tabla empleado
$q = "INSERT INTO empleado (fingreso, cedula, nombre, ccosto, area, cargo, tallaPant, tallaCami,
tallaBot, tallaChaq, tallaImp, tpContrato, ESTADO, tpEntrega)
VALUES ('$fingreso', '$ident', '$nombre', '$ccosto', '$area', '$cargo', '$tallas[0]', '$tallas[1]',
'$tallas[2]', '$tallas[3]', '$tallas[4]', '$tpContrato', 'Pendiente', '$tpEntrega')";
if (!mysqli_query($this->conexion, $q)) throw new Exception(mysqli_error($this->conexion));
$empleado_id = mysqli_insert_id($this->conexion); // Obtener ID generado
// 2. Insertar en tabla dotación
foreach ($dotaciones as $dot) {
$codigo_epp = mysqli_real_escape_string($this->conexion, $dot['codigo']);
$cant = intval($dot['cantidad']);
// Buscar descripción en inventario usando el código
$q_inv = "SELECT DESCRIPCION FROM inventario WHERE CODIGO = '$codigo_epp' LIMIT 1";
$result_inv = mysqli_query($this->conexion, $q_inv);
if (!$result_inv || mysqli_num_rows($result_inv) == 0) {
throw new Exception("Código EPP '$codigo_epp' no encontrado en inventario");
}
$row_inv = mysqli_fetch_assoc($result_inv);
$nombre_epp = mysqli_real_escape_string($this->conexion, $row_inv['DESCRIPCION']);
// Insertar en dotacion con codigo_epp y nombre_epp
$qd = "INSERT INTO dotacion (empleado_id, codigo_epp, nombre_epp, cantidad, fecha_entrega)
VALUES ($empleado_id, '$codigo_epp', '$nombre_epp', $cant, NOW())";
if (!mysqli_query($this->conexion, $qd)) throw new Exception(mysqli_error($this->conexion));
}
mysqli_commit($this->conexion);
return ['success' => true, 'empleado_id' => $empleado_id, 'nombre' => $nombre];
} catch (Exception $e) {
mysqli_rollback($this->conexion);
return ['success' => false, 'error' => $e->getMessage()];
} finally {
mysqli_autocommit($this->conexion, TRUE);
}
}
}