File "controlPesoProm.php"
Full Path: C:/wamp64/www/INVENTAPP/js/controlPesoProm.php
File size: 14.21 KB
MIME-type: text/x-php
Charset: utf-8
<?php
/*include_once('../models/modelo_conexion.php');
session_start();
$objeto = new Conexion();
$conexion = $objeto->Conectar();
$listLinea = (isset($_POST['listLinea'])) ? $_POST['listLinea'] : '';
$listItem = (isset($_POST['listItem'])) ? $_POST['listItem'] : '';
$tpRegistro = (isset($_POST['tpRegistro'])) ? $_POST['tpRegistro'] : '';
$inpPeso = (isset($_POST['inpPeso'])) ? $_POST['inpPeso'] : '';
$inpPeso = str_replace(',', '.', $inpPeso); // esta linea reemplaza las posibles comas a puntos del campo inpPeso para que puedan ser leidos en el php
$inpUnidad = (isset($_POST['inpUnidad'])) ? $_POST['inpUnidad'] : '';
$inpLote = (isset($_POST['inpLote'])) ? $_POST['inpLote'] : '';
$inpPesoProm = (isset($_POST['inpPesoProm'])) ? $_POST['inpPesoProm'] : '';
$listTara = (isset($_POST['listTara'])) ? $_POST['listTara'] : '';
$inpTara = (isset($_POST['inpTara'])) ? $_POST['inpTara'] : '';
$inpBase = (isset($_POST['inpBase'])) ? $_POST['inpBase'] : '';
$ubicacion = $_SESSION['ubicacion'];
$usuario = $_SESSION['nomUser'];
$planillador = $_SESSION['planilla'];
$doc = $_SESSION['dcto'];
$checSkin = isset($_POST['checSkin']) ? true : false;
$checMap = isset($_POST['checMap']) ? true : false;
$consulta = "SELECT * FROM `lineaxitem` where codItem = '$listItem'";
$resultado = $conexion->prepare($consulta);
$resultado->execute();
if ($resultado->rowCount() >= 1) {
$data = $resultado->fetchAll(PDO::FETCH_ASSOC);
$pesoMin = $data[0]['minimo'];
$pesoMax = $data[0]['maximo'];
$nprod = $data[0]['nomItem'];
}
switch ($listTara) {
case 0:
$pesoTara = 0.06;
$bultos = $inpTara;
$cajas = 0;
$cnastaPll = 0;
$cnastaPv = 0;
$ctillaPll = 0;
$ctillaPv = 0;
break;
case 1:
$pesoTara = 0.055;
$bultos = 0;
$cajas = $inpTara;
$cnastaPll = 0;
$cnastaPv = 0;
$ctillaPll = 0;
$ctillaPv = 0;
break;
case 2:
$pesoTara = 2;
$bultos = 0;
$cajas = 0;
$cnastaPll = $inpTara;
$cnastaPv = 0;
$ctillaPll = 0;
$ctillaPv = 0;
break;
case 3:
$pesoTara = 2.5;
$bultos = 0;
$cajas = 0;
$cnastaPll = 0;
$cnastaPv = $inpTara;
$ctillaPll = 0;
$ctillaPv = 0;
break;
case 4:
$pesoTara = 1.5;
$bultos = 0;
$cajas = 0;
$cnastaPll = 0;
$cnastaPv = 0;
$ctillaPll = $inpTara;
$ctillaPv = 0;
break;
case 5:
$pesoTara = 2.3;
$bultos = 0;
$cajas = 0;
$cnastaPll = 0;
$cnastaPv = 0;
$ctillaPll = 0;
$ctillaPv = $inpTara;
break;
}
$empacado = $inpUnidad * $inpTara;
$descuentoBandeja = 0;
if (isset($_POST['checSkin']) && $_POST['checSkin'] === 'on') {
$descuentoBandeja = $empacado * 0.038;
} elseif (isset($_POST['checMap']) && $_POST['checMap'] === 'on') {
$descuentoBandeja = $empacado * 0.030;
}
if ($inpBase === '') {
$pesoNeto = $inpPeso - ($inpTara * $pesoTara) - $descuentoBandeja;
} else {
$base = $inpBase * 1.5;
$pesoNeto = $inpPeso - (($inpTara * $pesoTara) + $base) - $descuentoBandeja;
}
$valorProm = $pesoNeto / $empacado;
if ($tpRegistro == 3) {
if ($valorProm <= $pesoMax and $valorProm >= $pesoMin) {
$consulta = "INSERT INTO `mvdcto`(`TPDCTO`, `CODUBI`, `FECHA`, `ESTADO`, `USUARIO`, `CODPROD`, `NPROD`,
`CANTIDAD`,`CANTEMPAQ`, `BULTOS`, `CAJAS`, `CNASTAPLL`, `CNASTAPV`, `CNASTILLAPLL`, `CNASTILLAPV`, `BASES`,
`PLANILLADOR`, `LOTE`, `PESOPROM`) VALUES ('$doc','$ubicacion',CURRENT_DATE(),'NORMAL','$usuario','$listItem','$nprod',
'$pesoNeto','$empacado','$bultos','$cajas','$cnastaPll','$cnastaPv','$ctillaPll','$ctillaPv','$inpBase',
UPPER('$planillador'),'$inpLote','$valorProm')";
$resultado = $conexion->prepare($consulta);
if ($resultado->execute()) {
echo json_encode(['estado' => 'ok']);
} else {
echo json_encode([
'estado' => 'error_sql',
'codigo' => $conexion->errorCode(),
'mensaje' => $conexion->errorInfo()[2]
]);
}
} else {
echo json_encode([
'estado' => 'error_peso_promedio',
'valorProm' => round($valorProm, 3),
'rangoMin' => $pesoMin,
'rangoMax' => $pesoMax
]);
exit;
}
} elseif ($tpRegistro == 2) {
$consulta = "INSERT INTO `mvdcto`(`TPDCTO`, `CODUBI`, `FECHA`, `ESTADO`, `USUARIO`, `CODPROD`, `NPROD`, `CANTEMPAQ`, `BULTOS`, `CAJAS`, `CNASTAPLL`, `CNASTAPV`, `CNASTILLAPLL`, `CNASTILLAPV`, `BASES`, `PLANILLADOR`, `LOTE`, `PESOPROM`) VALUES ('$doc','$ubicacion',CURRENT_DATE(),'NORMAL','$usuario','$listItem','$nprod','$empacado','$bultos','$cajas','$cnastaPll','$cnastaPv','$ctillaPll','$ctillaPv','$inpBase',UPPER('$planillador'),'$inpLote','$valorProm')";
$resultado = $conexion->prepare($consulta);
if ($resultado->execute()) {
echo json_encode([
'estado' => 'ok',
'tipo' => 'contado',
'mensaje' => 'Registro Contado realizado exitosamente'
]);
/* header('location:../views/registro.php'); */
/* } else {
$_SESSION['mensaje'] = $conexion->errorCode() . '-' . $conexion->errorInfo()[2];
$_SESSION['tipo'] = 'danger';
print " <p class=\"aviso\">Error al ejecutar la consulta. SQLSTATE[{$conexion->errorCode()}]: {$conexion->errorInfo()[2]}</p>\n";
}
} else {
$consulta = "INSERT INTO `mvdcto`(`TPDCTO`, `CODUBI`, `FECHA`, `ESTADO`, `USUARIO`, `CODPROD`, `NPROD`, `CANTIDAD`, `BULTOS`, `CAJAS`, `CNASTAPLL`, `CNASTAPV`, `CNASTILLAPLL`, `CNASTILLAPV`, `BASES`, `PLANILLADOR`, `LOTE`) VALUES ('$doc','$ubicacion',CURRENT_DATE(),'NORMAL','$usuario','$listItem','$nprod','$pesoNeto','$bultos','$cajas','$cnastaPll','$cnastaPv','$ctillaPll','$ctillaPv','$inpBase',UPPER('$planillador'),'$inpLote')";
$resultado = $conexion->prepare($consulta);
if ($resultado->execute()) {
$_SESSION['mensaje'] = 'Registro Granel realizado de manera exitosa!!!' . $cantidad;
$_SESSION['tipo'] = 'success';
header('location:../views/registro.php');
} else {
$_SESSION['mensaje'] = $conexion->errorCode() . '-' . $conexion->errorInfo()[2];
$_SESSION['tipo'] = 'danger';
print " <p class=\"aviso\">Error al ejecutar la consulta. SQLSTATE[{$conexion->errorCode()}]: {$conexion->errorInfo()[2]}</p>\n";
}
}
*/
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);
$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);
$_SESSION['empacado'] = $empacado;
// 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;
$_SESSION['listItem'] = $listItem;
$_SESSION['nprod'] = $nprod;
$_SESSION['pesoNeto'] = $pesoNeto;
$_SESSION['empacado'] = $empacado;
$_SESSION['inpLote'] = $inpLote;
$_SESSION['bultos'] = $bultos;
$_SESSION['cajas'] = $cajas;
$_SESSION['cnastaPll'] = $cnastaPll;
$_SESSION['cnastaPv'] = $cnastaPv;
$_SESSION['ctillaPll'] = $ctillaPll;
$_SESSION['ctillaPv'] = $ctillaPv;
$_SESSION['inpBase'] = $inpBase;
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) {
// 🔹 Guardar en sesión
$_SESSION['listItem'] = $listItem;
$_SESSION['nprod'] = $nprod;
$_SESSION['pesoNeto'] = null; // no aplica
$_SESSION['empacado'] = $empacado;
$_SESSION['inpLote'] = $inpLote;
$_SESSION['bultos'] = $bultos;
$_SESSION['cajas'] = $cajas;
$_SESSION['cnastaPll'] = $cnastaPll;
$_SESSION['cnastaPv'] = $cnastaPv;
$_SESSION['ctillaPll'] = $ctillaPll;
$_SESSION['ctillaPv'] = $ctillaPv;
$_SESSION['inpBase'] = $inpBase;
$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);
$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;
// 🔹 Guardar en sesión
$_SESSION['listItem'] = $listItem;
$_SESSION['nprod'] = $nprod;
$_SESSION['pesoNeto'] = $pesoNeto;
$_SESSION['empacado'] = null;
$_SESSION['inpLote'] = $inpLote;
$_SESSION['bultos'] = $bultos;
$_SESSION['cajas'] = $cajas;
$_SESSION['cnastaPll'] = $cnastaPll;
$_SESSION['cnastaPv'] = $cnastaPv;
$_SESSION['ctillaPll'] = $ctillaPll;
$_SESSION['ctillaPv'] = $ctillaPv;
$_SESSION['inpBase'] = $inpBase;
$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;
}