mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
feat delete portada and remove loader
This commit is contained in:
@ -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');
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -10,7 +10,7 @@
|
||||
<div class="sk-wave-rect"></div>
|
||||
<div class="sk-wave-rect"></div>
|
||||
</div>
|
||||
<img class="card-img card-img-left img-thumbnail" id="portada-orden-trabajo" src="" hidden>
|
||||
<img class="card-img card-img-left img-thumbnail" id="portada-orden-trabajo" src="<?=site_url('assets/img/portada_not_found.png')?>" hidden>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<div class="card-body">
|
||||
|
||||
@ -16,7 +16,11 @@
|
||||
<input class="form-control" type="file" id="portada-file-input">
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<button type="button" class="btn btn-primary w-100" id="btn-upload-portada"><i class="ti ti-md ti-upload"></i>Subir portada </button>
|
||||
<div class="d-flex flex-row align-items-center justify-content-start gap-2">
|
||||
<button type="button" class="btn btn-primary" id="btn-upload-portada"><i class="ti ti-md ti-upload"></i>Subir portada </button>
|
||||
<button type="button" class="btn btn-danger" id="btn-delete-portada"><i class="ti ti-md ti-trash"></i>Eliminar </button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -5,6 +5,7 @@
|
||||
<?= $this->extend('themes/vuexy/main/defaultlayout') ?>
|
||||
<?= $this->section('content'); ?>
|
||||
<div id="ot-edit" data-id="<?= $modelId ?>">
|
||||
<?= view('themes/_commonPartialsBs/_alertBoxes'); ?>
|
||||
<?= view("themes/vuexy/form/produccion/ot/otHeader") ?>
|
||||
|
||||
<div class="row">
|
||||
|
||||
BIN
httpdocs/assets/img/portada_not_found.png
Normal file
BIN
httpdocs/assets/img/portada_not_found.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
@ -95,6 +95,7 @@ class OrdenTrabajo {
|
||||
this.tareasTableItem.on("draw.dt", this.createSelectMaquinaTarea.bind(this))
|
||||
this.tareasTableItem.on("xhr.dt", this.unbindEventTareas.bind(this))
|
||||
this.otForm.on("click", "#btn-upload-portada", this.handleUploadPortada.bind(this))
|
||||
this.otForm.on("click", "#btn-delete-portada", this.handleDeletePortada.bind(this))
|
||||
this.otForm.on("click", "#btn-finalizar-orden-pedido", this.handleFinalizarPedido.bind(this))
|
||||
this.tareasTableItem.on("click", ".ot-tarea-btn-delete", this.handleTareaDeleteConfirmation.bind(this))
|
||||
this.item.on("click", "#btn-reset-tareas", this.handleResetTareasDeleteConfirmation.bind(this))
|
||||
@ -350,6 +351,7 @@ class OrdenTrabajo {
|
||||
|
||||
}
|
||||
handlePreimpresionReviewChangeSuccess(response) {
|
||||
alertSuccess(response.message).fire()
|
||||
|
||||
}
|
||||
handlePreimpresionReviewChangeError(error) {
|
||||
@ -373,9 +375,38 @@ class OrdenTrabajo {
|
||||
}
|
||||
handleUploadPortadaSuccess(response) {
|
||||
this.handleGetPortada()
|
||||
popSuccessAlert(response.message)
|
||||
this.otForm.find("#portada-file-input").val(null)
|
||||
}
|
||||
handleUploadPortadaError(errors) { }
|
||||
handleUploadPortadaError(errors) {
|
||||
popSuccessAlert(errors?.message)
|
||||
}
|
||||
handleDeletePortada(){
|
||||
this.item.find(".portada-loader").prop("hidden", true);
|
||||
this.item.find("#portada-orden-trabajo").prop("hidden", false);
|
||||
let ajax = new Ajax('/produccion/ordentrabajo/portada/' + this.modelId,
|
||||
null,
|
||||
null,
|
||||
this.handleDeletePortadaSuccess.bind(this),
|
||||
this.handleGetPortadaError.bind(this),
|
||||
)
|
||||
alertConfirmationDelete("¿Estás seguro de realizar esta acción?")
|
||||
.then(result => {
|
||||
if (result.isConfirmed) {
|
||||
ajax.delete();
|
||||
}
|
||||
})
|
||||
}
|
||||
handleDeletePortadaSuccess(response){
|
||||
$('#portada-orden-trabajo').attr('src', '/assets/img/portada_not_found.png');
|
||||
this.item.find(".portada-loader").prop("hidden", true);
|
||||
this.item.find("#portada-orden-trabajo").prop("hidden", false);
|
||||
popSuccessAlert(response.message)
|
||||
}
|
||||
handleDeletePortadaError(response){
|
||||
popErrorAlert(response.error)
|
||||
}
|
||||
|
||||
handleGetPortada() {
|
||||
this.item.find(".portada-loader").prop("hidden", false);
|
||||
this.item.find("#portada-orden-trabajo").prop("hidden", true);
|
||||
@ -385,7 +416,7 @@ class OrdenTrabajo {
|
||||
xhrFields: {
|
||||
responseType: 'blob' // Expect binary data
|
||||
},
|
||||
success: this.handleGetPortadaSuccess.bind(this),
|
||||
success:this.handleGetPortadaSuccess.bind(this),
|
||||
error: this.handleGetPortadaError.bind(this)
|
||||
});
|
||||
}
|
||||
@ -395,7 +426,11 @@ class OrdenTrabajo {
|
||||
this.item.find(".portada-loader").prop("hidden", true);
|
||||
this.item.find("#portada-orden-trabajo").prop("hidden", false);
|
||||
}
|
||||
handleGetPortadaError(errors) { }
|
||||
handleGetPortadaError() {
|
||||
this.item.find(".portada-loader").prop("hidden", true);
|
||||
this.item.find("#portada-orden-trabajo").prop("hidden", false);
|
||||
|
||||
}
|
||||
handleFinalizarPedido() {
|
||||
const ajax = new Ajax(
|
||||
"/produccion/ordentrabajo/update",
|
||||
@ -409,7 +444,8 @@ class OrdenTrabajo {
|
||||
);
|
||||
ajax.post()
|
||||
}
|
||||
handleEstadoChangeSuccess() {
|
||||
handleEstadoChangeSuccess(response) {
|
||||
popSuccessAlert(response.message)
|
||||
this.alertOrdenTrabajo.removeClass("alert-info").addClass("alert-success")
|
||||
this.btnFinalizarPedido.prop("disabled", true);
|
||||
}
|
||||
|
||||
@ -78,14 +78,14 @@ class PlanningRotativa {
|
||||
]
|
||||
this.maquinaSelectFilter = new ClassSelect(
|
||||
this.tablePlanningRot.find(".planning-maquina-select"),
|
||||
`/maquinas/select`,
|
||||
`/produccion/ordentrabajo/planning/select/maquina/rotativa`,
|
||||
"Seleccione una maquina",
|
||||
true, {
|
||||
dropdownCssClass: "h-2"
|
||||
}, $('body'));
|
||||
this.papelImpresionFilter = new ClassSelect(this.tablePlanningRot.find(".planning-papel-select"), `/papelesimpresion/select`, "Seleccione un papel", true, {}, $('body'));
|
||||
this.maquinaSelectFilterPlana = new ClassSelect(this.tablePlanningPlana.find(".planning-maquina-select"), `/maquinas/select`, "Seleccione una maquina", true, {}, $('body'));
|
||||
this.papelImpresionFilterPlana = new ClassSelect(this.tablePlanningPlana.find(".planning-papel-select"), `/papelesimpresion/select`, "Seleccione un papel", true, {}, $('body'));
|
||||
this.papelImpresionFilter = new ClassSelect(this.tablePlanningRot.find(".planning-papel-select"), `/produccion/ordentrabajo/planning/select/papel/rotativa`, "Seleccione un papel", true, {}, $('body'));
|
||||
this.maquinaSelectFilterPlana = new ClassSelect(this.tablePlanningPlana.find(".planning-maquina-select"), `/produccion/ordentrabajo/planning/select/maquina/plana`, "Seleccione una maquina", true, {}, $('body'));
|
||||
this.papelImpresionFilterPlana = new ClassSelect(this.tablePlanningPlana.find(".planning-papel-select"), `/produccion/ordentrabajo/planning/select/papel/plana`, "Seleccione un papel", true, {}, $('body'));
|
||||
this.maquinaSelectFilter.config.dropdownParent = this.item
|
||||
}
|
||||
init() {
|
||||
|
||||
Reference in New Issue
Block a user