Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
File Manager
/
INVENTALMACEN
/
controller
:
controlPesoProm.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php include_once('../models/modelo_conexion.php'); session_start(); $objeto = new Conexion(); $conexion = $objeto->Conectar(); // Obtener y sanitizar inputs $listLinea = $_POST['listLinea'] ?? ''; $listItem = $_POST['listItem'] ?? ''; $tpRegistro = $_POST['tpRegistro'] ?? ''; //$inpPeso = str_replace(',', '.', $_POST['inpPeso'] ?? ''); $inpUnidad = $_POST['inpUnidad'] ?? ''; $inpLote = $_POST['inpLote'] ?? ''; //$inpPesoProm = $_POST['inpPesoProm'] ?? ''; //$listTara = $_POST['listTara'] ?? ''; //$inpTara = $_POST['inpTara'] ?? ''; //$inpBase = $_POST['inpBase'] ?? ''; $ubicacion = $_SESSION['ubicacion'] ?? ''; $usuario = $_SESSION['nomUser'] ?? ''; $planillador = $_SESSION['planilla'] ?? ''; $doc = $_SESSION['dcto'] ?? ''; /* $checSkin = isset($_POST['checSkin']) && $_POST['checSkin'] === 'on'; $checMap = isset($_POST['checMap']) && $_POST['checMap'] === 'on'; */ // Consultar rango de peso $consulta = $conexion->prepare("SELECT * FROM `lineaxitem` WHERE codItem = ?"); $consulta->execute([$listItem]); $data = $consulta->fetch(PDO::FETCH_ASSOC); $nprod = $data['nomItem'] ?? ''; // Asignar valores por defecto a los campos numéricos $empacado = floatval($inpUnidad) ?: 0; $bultos = 0; $cajas = 0; $cnastaPll = 0; $cnastaPv = 0; $ctillaPll = 0; $ctillaPv = 0; // Insertar registro tipo contado $sql = "INSERT INTO `mvdcto`( `TPDCTO`, `CODUBI`, `FECHA`, `ESTADO`, `USUARIO`, `CODPROD`, `NPROD`, `CANTEMPAQ`, `BULTOS`, `CAJAS`, `CNASTAPLL`, `CNASTAPV`, `CNASTILLAPLL`, `CNASTILLAPV`, `PLANILLADOR`, `LOTE` ) VALUES (?, ?, CURRENT_DATE(), 'NORMAL', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, UPPER(?))"; $stmt = $conexion->prepare($sql); $success = $stmt->execute([ $doc, $ubicacion, $usuario, $listItem, $nprod, $empacado, $bultos, $cajas, $cnastaPll, $cnastaPv, $ctillaPll, $ctillaPv, $planillador, $inpLote ]); echo json_encode([ 'estado' => $success ? 'ok' : 'error_sql', 'mensaje' => $success ? 'Registro Contado realizado exitosamente' : $stmt->errorInfo()[2] ]); exit; /* $pesoMin = $data['minimo'] ?? 0; $pesoMax = $data['maximo'] ?? 0; $nprod = $data['nomItem'] ?? ''; // Definir valores por tipo de tara $pesoTara = 0; $bultos = 0; $cajas = 0; $cnastaPll = 0; $cnastaPv = 0; $ctillaPll = 0; $ctillaPv = 0; switch ($listTara) { case 0: $pesoTara = 0.06; $bultos = $inpTara; break; case 1: $pesoTara = 0.055; $cajas = $inpTara; break; case 2: $pesoTara = 2; $cnastaPll = $inpTara; break; case 3: $pesoTara = 2.5; $cnastaPv = $inpTara; break; case 4: $pesoTara = 1.5; $ctillaPll = $inpTara; break; case 5: $pesoTara = 2.3; $ctillaPv = $inpTara; break; } $taraCalculada = floatval($inpTara) * $pesoTara; $descuentoBandeja = 0; if ($checSkin) { $descuentoBandeja = $taraCalculada * 0.038; } elseif ($checMap) { $descuentoBandeja = $taraCalculada * 0.030; } $empacado = floatval($inpUnidad) * floatval($inpTara); // Inicializar valores $pesoNeto = null; $valorProm = null; $base = ($inpBase === '') ? 0 : floatval($inpBase) * 1.5; // Solo calcular peso si es tipo peso if ($tpRegistro == 3) { $inpPesoFloat = floatval($inpPeso); if ($inpPesoFloat <= 0 || $empacado == 0) { echo json_encode([ 'estado' => 'error_datos', 'mensaje' => 'Peso o unidades no válidos para tipo peso.' ]); exit; } $pesoNeto = $inpPesoFloat - (($inpTara * $pesoTara) + $base) - $descuentoBandeja; $valorProm = $pesoNeto / $empacado; if ($valorProm >= $pesoMin && $valorProm <= $pesoMax) { $sql = "INSERT INTO `mvdcto`(`TPDCTO`, `CODUBI`, `FECHA`, `ESTADO`, `USUARIO`, `CODPROD`, `NPROD`, `CANTIDAD`, `CANTEMPAQ`, `BULTOS`, `CAJAS`, `CNASTAPLL`, `CNASTAPV`, `CNASTILLAPLL`, `CNASTILLAPV`, `BASES`, `PLANILLADOR`, `LOTE`, `PESOPROM`) VALUES (?, ?, CURRENT_DATE(), 'NORMAL', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, UPPER(?), ?, ?)"; $stmt = $conexion->prepare($sql); $success = $stmt->execute([ $doc, $ubicacion, $usuario, $listItem, $nprod, $pesoNeto, $empacado, $bultos, $cajas, $cnastaPll, $cnastaPv, $ctillaPll, $ctillaPv, $inpBase, $planillador, $inpLote, $valorProm ]); echo json_encode(['estado' => $success ? 'ok' : 'error_sql']); } else { echo json_encode([ 'estado' => 'error_peso_promedio', 'valorProm' => round($valorProm, 3), 'rangoMin' => $pesoMin, 'rangoMax' => $pesoMax ]); } exit; } // Tipo Contado elseif ($tpRegistro == 2) { // Normalizar inpPesoProm if ($inpPesoProm === '' || $inpPesoProm === null) { $inpPesoProm = null; // si quieres permitir NULL en la BD } else { $inpPesoProm = str_replace(',', '.', $inpPesoProm); // coma → punto $inpPesoProm = (float)$inpPesoProm; } $sql = "INSERT INTO `mvdcto`(`TPDCTO`, `CODUBI`, `FECHA`, `ESTADO`, `USUARIO`, `CODPROD`, `NPROD`, `CANTEMPAQ`, `BULTOS`, `CAJAS`, `CNASTAPLL`, `CNASTAPV`, `CNASTILLAPLL`, `CNASTILLAPV`, `BASES`, `PLANILLADOR`, `LOTE`, `PESOPROM`) VALUES (?, ?, CURRENT_DATE(), 'NORMAL', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, UPPER(?), ?, ?)"; $stmt = $conexion->prepare($sql); $stmt->bindValue(17, $inpPesoProm, is_null($inpPesoProm) ? PDO::PARAM_NULL : PDO::PARAM_STR); $success = $stmt->execute([ $doc, $ubicacion, $usuario, $listItem, $nprod, $empacado, $bultos, $cajas, $cnastaPll, $cnastaPv, $ctillaPll, $ctillaPv, $inpBase, $planillador, $inpLote, $inpPesoProm ]); echo json_encode([ 'estado' => $success ? 'ok' : 'error_sql', 'tipo' => 'contado', 'mensaje' => $success ? 'Registro Contado realizado exitosamente' : $stmt->errorInfo()[2] ]); exit; } // Tipo Granel else { $pesoNeto = floatval($inpPeso) - (($inpTara * $pesoTara) + $base) - $descuentoBandeja; $sql = "INSERT INTO `mvdcto`(`TPDCTO`, `CODUBI`, `FECHA`, `ESTADO`, `USUARIO`, `CODPROD`, `NPROD`, `CANTIDAD`, `BULTOS`, `CAJAS`, `CNASTAPLL`, `CNASTAPV`, `CNASTILLAPLL`, `CNASTILLAPV`, `BASES`, `PLANILLADOR`, `LOTE`) VALUES (?, ?, CURRENT_DATE(), 'NORMAL', ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, UPPER(?), ?)"; $stmt = $conexion->prepare($sql); $success = $stmt->execute([ $doc, $ubicacion, $usuario, $listItem, $nprod, $pesoNeto, $bultos, $cajas, $cnastaPll, $cnastaPv, $ctillaPll, $ctillaPv, $inpBase, $planillador, $inpLote ]); if ($success) { $_SESSION['mensaje'] = 'Registro Granel realizado de manera exitosa!'; $_SESSION['tipo'] = 'success'; } else { $_SESSION['mensaje'] = $stmt->errorInfo()[2]; $_SESSION['tipo'] = 'danger'; } header('location:../views/registro.php'); exit; } */