finalizar envio ok

This commit is contained in:
2025-04-22 22:20:03 +02:00
parent 2cfe03b2ec
commit 5ac1e3d4c1
10 changed files with 481 additions and 116 deletions

View File

@ -29,7 +29,7 @@ class LogisticaController extends BaseController
// Breadcrumbs
$this->viewData['breadcrumb'] = [
['title' => lang("App.menu_logistica"), 'route' => "javascript:void(0);", 'active' => false],
['title' => lang("App.menu_logistica"), 'route' => route_to("LogisticaPanel"), 'active' => false],
];
@ -56,13 +56,12 @@ class LogisticaController extends BaseController
return view(static::$viewPath . 'viewPanelLogistica', $viewData);
}
public function selectorEnvios($tipoEnvio = null)
public function gestionEnvios()
{
$viewData = [
'currentModule' => static::$controllerSlug,
'boxTitle' => lang('Logistica.envioSimpleMultiple'),
'boxTitle' => lang('Logistica.gestionEnvios'),
'usingServerSideDataTable' => true,
'tipoEnvio' => $tipoEnvio,
];
$viewData = array_merge($this->viewData, $viewData); // merge any possible values from the parent controller class
@ -164,6 +163,16 @@ class LogisticaController extends BaseController
return redirect()->to(base_url('logistica/selectEnvios/simple'))->with('error', lang('Logistica.errors.noEnvio'));
}
$modelProveedor = model('App\Models\Compras\ProveedorModel');
$proveedor = $modelProveedor->select('id, nombre')
->where('deleted_at', null)
->where('id', $envioEntity->proveedor_id)
->orderBy('nombre', 'asc')
->first();
if(!empty($proveedor)){
$envioEntity->proveedor_nombre = $proveedor->nombre;
}
$viewData = [
'currentModule' => static::$controllerSlug,
'boxTitle' => '<i class="ti ti-truck ti-xl"></i>' . ' ' . lang('Logistica.envio') . ' [' . $envioEntity->id . ']: ' . $envioEntity->direccion,
@ -193,6 +202,19 @@ class LogisticaController extends BaseController
}
}
public function finalizarEnvio()
{
if ($this->request->isAJAX()) {
$id = $this->request->getPost('id');
$result = LogisticaService::finalizarEnvio($id);
return $this->response->setJSON($result);
} else {
return $this->failUnauthorized('Invalid request', 403);
}
}
public function datatable_enviosEdit($idEnvio)
{
$model = model('App\Models\Logistica\EnvioLineaModel');
@ -217,23 +239,16 @@ class LogisticaController extends BaseController
function ($row, $meta) {
return '<a href="' . base_url('presupuestoadmin/edit/' . $row->presupuesto) . '" target="_blank">' . $row->presupuesto . '</a>';
}
)
->edit(
"cajas",
function ($row, $meta) {
return '<input type="number" class="form-control input-lineas input-cajas text-center"
data-id="'. $row->id.'" data-name="cajas" value="' . $row->cajas . '">';
}
)->edit(
"unidadesEnvio",
function ($row, $meta) {
if($row->finalizado == 1){
return $row->unidadesEnvio;
}
return '<input type="number" class="form-control input-lineas input-unidades text-center"
data-id="'. $row->id.'" data-name="unidades_envio" value="' . $row->unidadesEnvio . '">';
}
)
->edit('cajasRaw', function ($row) {
return is_null($row->cajas) ? '__SIN__ASIGNAR__' : $row->cajas;
});
);
return $result->toJson(returnAsObject: true);
}
@ -296,6 +311,52 @@ class LogisticaController extends BaseController
]);
}
public function updateCodigoSeguimiento()
{
$id = $this->request->getPost('id');
$fieldValue = $this->request->getPost('codigo_seguimiento');
if (!$id) {
return $this->response->setJSON([
'status' => false,
'message' => 'Datos inválidos'
]);
}
$model = model('App\Models\Logistica\EnvioModel');
$updated = $model->update($id, [
"codigo_seguimiento" => $fieldValue==""? null: $fieldValue,
]);
return $this->response->setJSON([
'status' => $updated,
'message' => $updated ? 'Actualizado' : 'Error al actualizar'
]);
}
public function updateProveedorEnvio()
{
$id = $this->request->getPost('id');
$fieldValue = $this->request->getPost('proveedor_id');
if (!$id) {
return $this->response->setJSON([
'status' => false,
'message' => 'Datos inválidos'
]);
}
$model = model('App\Models\Logistica\EnvioModel');
$updated = $model->update($id, [
"proveedor_id" => $fieldValue==""? null: $fieldValue,
]);
return $this->response->setJSON([
'status' => $updated,
'message' => $updated ? 'Actualizado' : 'Error al actualizar'
]);
}
public function saveComments()
{
$id = $this->request->getPost('id');