Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
AVIDOTAPP
/
models
:
LegalModel.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?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); } } }