diff --git a/ci4/app/Config/Routes.php b/ci4/app/Config/Routes.php index e9590f5c..182565aa 100644 --- a/ci4/app/Config/Routes.php +++ b/ci4/app/Config/Routes.php @@ -992,6 +992,7 @@ $routes->group('produccion', ['namespace' => 'App\Controllers\Produccion'], func $routes->post("update/user", 'Ordentrabajo::update_orden_trabajo_user'); $routes->post("update", 'Ordentrabajo::update_orden_trabajo'); $routes->post("upload/portada", 'Ordentrabajo::upload_orden_trabajo_portada'); + $routes->delete("portada/(:num)", 'Ordentrabajo::delete_orden_trabajo_portada/$1'); /**====================== * PDF @@ -999,6 +1000,10 @@ $routes->group('produccion', ['namespace' => 'App\Controllers\Produccion'], func $routes->get('pdf/(:num)', 'Ordentrabajo::get_pdf/$1'); $routes->get('portada/(:num)', 'Ordentrabajo::get_portada_img/$1'); $routes->group('planning', ['namespace' => 'App\Controllers\Produccion'], function ($routes) { + $routes->get('select/maquina/rotativa','Ordentrabajo::select_maquina_planning_rot'); + $routes->get('select/papel/rotativa','Ordentrabajo::select_papel_planning_rot'); + $routes->get('select/maquina/plana','Ordentrabajo::select_maquina_planning_plana'); + $routes->get('select/papel/plana','Ordentrabajo::select_papel_planning_plana'); $routes->get('rotativa', 'Ordentrabajo::index_planning_rotativa'); $routes->get('papel/datatable', 'Ordentrabajo::papel_gramaje_datatable'); $routes->get('papel/plana/datatable', 'Ordentrabajo::papel_pliego_datatable'); diff --git a/ci4/app/Controllers/Produccion/Ordentrabajo.php b/ci4/app/Controllers/Produccion/Ordentrabajo.php index cfb354c7..1fe96731 100755 --- a/ci4/app/Controllers/Produccion/Ordentrabajo.php +++ b/ci4/app/Controllers/Produccion/Ordentrabajo.php @@ -253,6 +253,22 @@ class Ordentrabajo extends BaseController return $this->response->setJSON(["message" => "Portada error", "error" => $th->getMessage()])->setStatusCode($th->getCode()); } } + public function delete_orden_trabajo_portada($orden_trabajo_id) + { + try { + helper('filesystem'); + $otEntity = $this->otModel->find($orden_trabajo_id); + $pathActualFile = $otEntity->portada_path; + $fullPath = WRITEPATH . 'uploads/' . $pathActualFile; + if(file_exists($fullPath)){ + delete_files($fullPath); + } + $r = $this->otModel->update($otEntity->id, ["portada_path" => null]); + return $this->response->setJSON(["message" => "Portada eliminada", "data" => $r]); + } catch (\Throwable $th) { + return $this->response->setStatusCode(500)->setJSON(["message" => "Portada error", "error" => $th->getMessage()]); + } + } public function get_portada_img($orden_trabajo_id) { $ot = $this->otModel->find($orden_trabajo_id); @@ -287,4 +303,25 @@ class Ordentrabajo extends BaseController ->add("action", fn($q) => $q) ->toJson(true); } + public function select_maquina_planning_rot(){ + $q = $this->request->getGet('q'); + $result = $this->produccionService->querySelectMaquinaPlanningRotativa($q); + return $this->response->setJSON($result); + } + public function select_papel_planning_rot(){ + $q = $this->request->getGet('q'); + $result = $this->produccionService->querySelectPapelPlanningRot($q); + return $this->response->setJSON($result); + } + public function select_maquina_planning_plana(){ + $q = $this->request->getGet('q'); + $result = $this->produccionService->querySelectMaquinaPlanningPlana($q); + return $this->response->setJSON($result); + } + public function select_papel_planning_plana(){ + $q = $this->request->getGet('q'); + $result = $this->produccionService->querySelectPapelPlanningPlana($q); + return $this->response->setJSON($result); + } + } diff --git a/ci4/app/Services/ProductionService.php b/ci4/app/Services/ProductionService.php index 60de7e20..07d77075 100644 --- a/ci4/app/Services/ProductionService.php +++ b/ci4/app/Services/ProductionService.php @@ -812,4 +812,80 @@ class ProductionService extends BaseService { return ["title" => lang('ot.filter_by_task'), 'id' => $id]; } + + public function querySelectMaquinaPlanningRotativa($q){ + $query = $this->otModel->builder()->select([ + "orden_trabajo_tareas.maquina_id as id", + "lg_maquinas.nombre as name", + ]) + ->join("orden_trabajo_tareas", "orden_trabajo_tareas.orden_trabajo_id = ordenes_trabajo.id", "left") + ->join("presupuesto_linea", "presupuesto_linea.id = orden_trabajo_tareas.presupuesto_linea_id", "left") + ->join("lg_maquinas", "lg_maquinas.id = orden_trabajo_tareas.maquina_id", "left") + ->whereIn("presupuesto_linea.tipo", $this->TIPOS_ROTATIVA) + ->where('lg_maquinas.is_rotativa', true) + ->where("orden_trabajo_tareas.deleted_at", null) + ->orderBy("orden_trabajo_tareas.orden", "ASC"); + if($q){ + $query->like('lg_maquinas.nombre',$q); + } + return $query->get()->getResultArray(); + } + public function querySelectMaquinaPlanningPlana($q){ + $query = $this->otModel->builder()->select([ + "orden_trabajo_tareas.maquina_id as id", + "lg_maquinas.nombre as name", + ]) + ->join("orden_trabajo_tareas", "orden_trabajo_tareas.orden_trabajo_id = ordenes_trabajo.id", "left") + ->join("orden_trabajo_dates", "orden_trabajo_dates.orden_trabajo_id = ordenes_trabajo.id", "left") + ->join("presupuesto_linea", "presupuesto_linea.id = orden_trabajo_tareas.presupuesto_linea_id", "left") + ->join("lg_maquinas", "lg_maquinas.id = orden_trabajo_tareas.maquina_id", "left") + ->whereIn("presupuesto_linea.tipo", $this->TIPOS_PLANA) + ->where('lg_maquinas.is_rotativa', false) + ->where("orden_trabajo_tareas.deleted_at", null) + ->orderBy("orden_trabajo_tareas.orden", "ASC"); + if($q){ + $query->like('lg_maquinas.nombre',$q); + } + return $query->get()->getResultArray(); + } + public function querySelectPapelPlanningRot(string $q){ + $query = $this->otModel->builder()->select([ + "lg_papel_impresion.id", + "lg_papel_impresion.nombre as name", + ]) + ->join("orden_trabajo_tareas", "orden_trabajo_tareas.orden_trabajo_id = ordenes_trabajo.id", "left") + ->join("presupuesto_linea", "presupuesto_linea.id = orden_trabajo_tareas.presupuesto_linea_id", "left") + ->join("presupuestos", "presupuestos.id = presupuesto_linea.presupuesto_id", "right") + ->join("lg_papel_impresion", "presupuesto_linea.papel_impresion_id = lg_papel_impresion.id", "left") + ->join("lg_papel_formato", "lg_papel_formato.id = presupuestos.papel_formato_id", "left") + ->where("orden_trabajo_tareas.deleted_at", null) + ->where("orden_trabajo_tareas.presupuesto_linea_id IS NOT NULL", NULL, FALSE) + ->whereIn("presupuesto_linea.tipo", $this->TIPOS_ROTATIVA) + ->groupBy('lg_papel_impresion.id'); + if($q){ + $query->like('lg_papel_impresion.nombre',$q); + } + return $query->get()->getResultArray(); + } + public function querySelectPapelPlanningPlana($q){ + $query = $this->otModel->builder()->select([ + "lg_papel_impresion.id", + "lg_papel_impresion.nombre as name", + ]) + ->join("orden_trabajo_tareas", "orden_trabajo_tareas.orden_trabajo_id = ordenes_trabajo.id", "left") + ->join("presupuesto_linea", "presupuesto_linea.id = orden_trabajo_tareas.presupuesto_linea_id", "left") + ->join("presupuestos", "presupuestos.id = presupuesto_linea.presupuesto_id", "right") + ->join("lg_papel_impresion", "presupuesto_linea.papel_impresion_id = lg_papel_impresion.id", "left") + ->join("lg_papel_formato", "lg_papel_formato.id = presupuestos.papel_formato_id", "left") + ->where("orden_trabajo_tareas.deleted_at", null) + ->where("orden_trabajo_tareas.presupuesto_linea_id IS NOT NULL", NULL, FALSE) + ->whereIn("presupuesto_linea.tipo", $this->TIPOS_PLANA) + ->groupBy('lg_papel_impresion.id'); + if($q){ + $query->like('lg_papel_impresion.nombre',$q); + } + return $query->get()->getResultArray(); + } + + } diff --git a/ci4/app/Views/themes/vuexy/form/produccion/ot/otHeader.php b/ci4/app/Views/themes/vuexy/form/produccion/ot/otHeader.php index 08c29f9a..f5d2476f 100644 --- a/ci4/app/Views/themes/vuexy/form/produccion/ot/otHeader.php +++ b/ci4/app/Views/themes/vuexy/form/produccion/ot/otHeader.php @@ -10,7 +10,7 @@
-