diff --git a/ci4/app/Config/Routes.php b/ci4/app/Config/Routes.php
index e9590f5c..58bba4ba 100644
--- a/ci4/app/Config/Routes.php
+++ b/ci4/app/Config/Routes.php
@@ -330,7 +330,7 @@ $routes->group('maquinas', ['namespace' => 'App\Controllers\Configuracion'], fun
$routes->post('allmenuitems', 'Maquinas::allItemsSelect', ['as' => 'select2ItemsOfMaquinas']);
$routes->post('menuitems', 'Maquinas::menuItems', ['as' => 'menuItemsOfMaquinas']);
$routes->post('duplicate/(:num)', 'Maquinas::duplicate/$1', ['as' => 'duplicateMaquina']);
-
+ $routes->get('(:num)','Maquinas::find_maquina/$1',['as' => 'findMaquina']);
$routes->get('select', 'Maquinas::select', ['as' => 'selectMaquinas']);
});
$routes->resource('maquinas', ['namespace' => 'App\Controllers\Configuracion', 'controller' => 'Maquinas', 'except' => 'show,new,create,update']);
@@ -659,6 +659,9 @@ $routes->group('presupuestoadmin', ['namespace' => 'App\Controllers\Presupuestos
$routes->get('maquinas', 'Presupuestoadmin::getMaquinas');
$routes->post('getlinea', 'Presupuestoadmin::getLineaPresupuesto');
$routes->post('clone', 'Presupuestoadmin::datatable_2');
+
+ $routes->get('presupuestosCliente', 'Presupuestoadmin::tablaClienteForm');
+ $routes->get('getSumCliente/(:num)', 'Presupuestoadmin::obtenerTotalPresupuestosCliente/$1');
});
$routes->resource('presupuestoadmin', ['namespace' => 'App\Controllers\Presupuestos', 'controller' => 'Presupuestoadmin', 'except' => 'show,new,create,update']);
@@ -757,6 +760,8 @@ $routes->group('pedidos', ['namespace' => 'App\Controllers\Pedidos'], function (
$routes->post('insertfactura', 'Pedido::addFactura');
$routes->get('xml/(:num)', 'Pedido::get_xml_pedido/$1', ['as' => 'getXMLPedido']);
$routes->post('produccion/(:num)', 'Pedido::to_produccion/$1', ['as' => 'toProduccion']);
+ $routes->get('pedidosCliente', 'Pedido::tablaClienteForm');
+ $routes->get('getSumCliente/(:num)', 'Pedido::obtenerTotalPedidosCliente/$1');
});
$routes->resource('pedidos', ['namespace' => 'App\Controllers\Pedidos', 'controller' => 'Pedido', 'except' => 'show,new,create,update']);
@@ -797,6 +802,7 @@ $routes->group('facturas', ['namespace' => 'App\Controllers\Facturacion'], funct
$routes->post('datatablePagos/(:any)', 'FacturasPagos::datatable/$1', ['as' => 'dataTableOfPagosFacturas']);
$routes->post('editorPagos', 'FacturasPagos::datatable_editor', ['as' => 'editorOfPagosFacturas']);
$routes->post('datatablePedidos', 'Facturas::datatablePedidos', ['as' => 'dataTableOfFacturasPedido']);
+ $routes->get('getdatoscliente/(:any)', 'Facturas::getDatosFacturacionClienteForm/$1');
});
@@ -992,6 +998,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,11 +1006,17 @@ $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');
$routes->get('rotativa/datatable', 'Ordentrabajo::planning_rotativa_datatable');
$routes->get('plana/datatable', 'Ordentrabajo::planning_plana_datatable');
+ $routes->post('tarea/toggle/corte/(:num)', 'Ordentrabajo::tarea_toggle_corte/$1');
+
});
});
diff --git a/ci4/app/Controllers/Configuracion/Maquinas.php b/ci4/app/Controllers/Configuracion/Maquinas.php
index bb7fb49b..70dfce67 100755
--- a/ci4/app/Controllers/Configuracion/Maquinas.php
+++ b/ci4/app/Controllers/Configuracion/Maquinas.php
@@ -363,6 +363,7 @@ class Maquinas extends \App\Controllers\BaseResourceController
$r = $this->model->getSelectQuery($this->request->getGet("q"));
return $this->response->setJSON($r);
}
+
protected function getMaquinaListItems($selId = null)
{
$data = ['' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Maquinas.maquina'))])];
@@ -402,5 +403,9 @@ class Maquinas extends \App\Controllers\BaseResourceController
}
}
+ public function find_maquina(int $maquina_id){
+ $maquinaEntity = $this->model->find($maquina_id);
+ return $this->response->setJSON($maquinaEntity);
+ }
}
diff --git a/ci4/app/Controllers/Facturacion/Facturas.php b/ci4/app/Controllers/Facturacion/Facturas.php
index fd5416c4..3d914183 100755
--- a/ci4/app/Controllers/Facturacion/Facturas.php
+++ b/ci4/app/Controllers/Facturacion/Facturas.php
@@ -236,13 +236,16 @@ class Facturas extends \App\Controllers\BaseResourceController
public function datatable()
{
+ $dataForClienteForm = false;
if (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) {
// Se obtiene el cliente ID a partir del usuario de la sesion
$model_user = model('App\Models\Usuarios\UserModel');
$user = $model_user->find(auth()->user()->id);
$clienteId = $user->cliente_id;
} else {
- $clienteId = -1;
+ $temp = $this->request->getGet('cliente_id');
+ $clienteId = ($temp && $temp != null && $temp != "") ? $temp : -1;
+ $dataForClienteForm = ($temp && $temp != null && $temp != "") ? true : false;
}
$model = model(FacturaModel::class);
@@ -342,8 +345,10 @@ class Facturas extends \App\Controllers\BaseResourceController
if ($clienteId != -1) {
$result->hide('cliente');
$result->hide('creditoAsegurado');
- $result->hide('estado');
- $result->hide('estado_pago');
+ if(!$dataForClienteForm){
+ $result->hide('estado');
+ $result->hide('estado_pago');
+ }
$result->hide('forma_pago');
$result->hide('vencimiento');
$result->hide('dias_vencimiento');
@@ -352,6 +357,11 @@ class Facturas extends \App\Controllers\BaseResourceController
return $result->toJson(returnAsObject: true);
}
+ public function getDatosFacturacionClienteForm($cliente_id){
+
+ return $this->respond($this->model->getSumatoriosFacturacionCliente($cliente_id));
+ }
+
public function datatablePedidos()
{
diff --git a/ci4/app/Controllers/Pedidos/Pedido.php b/ci4/app/Controllers/Pedidos/Pedido.php
index e17c26ef..bf4ddc9d 100755
--- a/ci4/app/Controllers/Pedidos/Pedido.php
+++ b/ci4/app/Controllers/Pedidos/Pedido.php
@@ -8,6 +8,8 @@ use App\Models\Collection;
use App\Models\Pedidos\PedidoModel;
use App\Services\PedidoXMLService;
use App\Services\ProductionService;
+use Hermawan\DataTables\DataTable;
+use CodeIgniter\I18n\Time;
class Pedido extends \App\Controllers\BaseResourceController
{
@@ -34,6 +36,7 @@ class Pedido extends \App\Controllers\BaseResourceController
$this->viewData['breadcrumb'] = [
['title' => lang("App.menu_pedidos"), 'route' => "javascript:void(0);", 'active' => false],
];
+ helper("time");
parent::initController($request, $response, $logger);
@@ -371,6 +374,96 @@ class Pedido extends \App\Controllers\BaseResourceController
}
}
+ public function tablaClienteForm()
+ {
+
+ $clienteId = $this->request->getGet('cliente_id') ?? -1;
+
+ $q = $this->model->getPedidosClienteForm($clienteId);
+
+ $searchValue = $this->request->getGet('fecha') ?? '';
+ if (!empty($searchValue)) {
+ // Extraer las fechas del formato "YYYY-MM-DD|YYYY-MM-DD"
+ $dates = explode('|', $searchValue);
+ if (count($dates) == 2) {
+ $q->where('p.created_at >=', $dates[0] . ' 00:00:00')
+ ->where('p.created_at <=', $dates[1] . ' 23:59:59');
+ }
+ }
+ $searchValue = $this->request->getGet('fecha_entrega') ?? '';
+ if (!empty($searchValue)) {
+ // Extraer las fechas del formato "YYYY-MM-DD|YYYY-MM-DD"
+ $dates = explode('|', $searchValue);
+ if (count($dates) == 2) {
+ $q->where('p.fecha_entrega_real >=', $dates[0] . ' 00:00:00')
+ ->where('p.fecha_entrega_real <=', $dates[1] . ' 23:59:59');
+ }
+ }
+
+
+ $result = DataTable::of($q)
+ ->edit(
+ 'fecha',
+ fn($q) => $q->fecha?Time::createFromFormat("Y-m-d H:i:s", $q->fecha)->format("d/m/Y"):""
+ )
+ ->edit(
+ 'fecha_entrega',
+ fn($q) => $q->fecha_entrega?Time::createFromFormat("Y-m-d H:i:s", $q->fecha_entrega)->format("d/m/Y"):""
+ )
+ ->edit(
+ "estado",
+ function ($row, $meta) {
+ switch ($row->estado) {
+ case "validacion":
+ return lang('Pedidos.validacion');
+ case "produccion":
+ return lang('Pedidos.produccion');
+ case "finalizado":
+ return lang('Pedidos.finalizado');
+ case "enviado":
+ return lang('Pedidos.enviado');
+ case "cancelado":
+ return lang('Pedidos.cancelado');
+ default:
+ return '--'; // Debug
+ }
+ }
+ )
+ ->add("action", callback: function ($q) {
+ return '
+
+ ';
+
+ });
+
+ return $result->toJson(returnAsObject: true) ;
+ }
+
+ public function obtenerTotalPedidosCliente($cliente_id){
+
+ $error = false;
+ $result = [
+ 'total_impresion' => 0,
+ 'total_maquetacion' => 0,
+ ];
+ $data = $this->model
+ ->where('presupuestos.cliente_id', $cliente_id)->whereNotIn('pedidos.estado', ['cancelado'])
+ ->select('SUM(pedidos.total_precio) as total')
+ ->join('pedidos_linea', 'pedidos_linea.pedido_id = pedidos.id')
+ ->join('presupuestos', 'presupuestos.id = pedidos_linea.presupuesto_id')
+ ->groupBy('presupuestos.cliente_id')->get()->getResultObject();
+ if(count($data) > 0){
+ $result['total_impresion'] = round(floatval($data[0]->total), 2);
+ }
+ else{
+ $error = true;
+ }
+ $result['total'] = $result['total_impresion'] + $result['total_maquetacion'];
+ return $this->respond(['status' => $error?'error':'success', 'totales' => $result]);
+ }
+
public function obtenerPedidosForFacturas(){
if ($this->request->isAJAX()) {
diff --git a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php
index 35b372c2..d056e955 100644
--- a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php
+++ b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php
@@ -20,6 +20,8 @@ use App\Models\Presupuestos\PresupuestoPreimpresionesModel;
use App\Models\Presupuestos\PresupuestoServiciosExtraModel;
use App\Services\PresupuestoService;
use App\Services\PresupuestoClienteService;
+use Hermawan\DataTables\DataTable;
+use CodeIgniter\I18n\Time;
use Exception;
class Presupuestoadmin extends \App\Controllers\BaseResourceController
@@ -1684,6 +1686,91 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController
}
+ public function tablaClienteForm()
+ {
+
+ $clienteId = $this->request->getGet('cliente_id') ?? -1;
+
+ $q = $this->model->getPresupuestosClienteForm($clienteId);
+
+ $searchValue = $this->request->getGet('fecha') ?? '';
+ if (!empty($searchValue)) {
+ // Extraer las fechas del formato "YYYY-MM-DD|YYYY-MM-DD"
+ $dates = explode('|', $searchValue);
+ if (count($dates) == 2) {
+ $q->where('p.created_at >=', $dates[0] . ' 00:00:00')
+ ->where('p.created_at <=', $dates[1] . ' 23:59:59');
+ }
+ }
+
+ $result = DataTable::of($q)
+ ->edit(
+ 'fecha',
+ fn($q) => $q->fecha?Time::createFromFormat("Y-m-d H:i:s", $q->fecha)->format("d/m/Y"):""
+ )
+ ->edit(
+ 'estado', fn($q) => match ($q->estado) {
+ "1" => lang('Presupuestos.borrador'),
+ "2" => lang('Presupuestos.confirmado'),
+ default => '--'
+ }
+ )->add("action", callback: function ($q) {
+ return '
+
+ ';
+
+ });
+
+ return $result->toJson(returnAsObject: true) ;
+ }
+
+ public function obtenerTotalPresupuestosCliente($cliente_id){
+
+ $error = false;
+ $result = [
+ 'total_impresion' => 0,
+ 'total_maquetacion' => 0,
+ ];
+ $data = $this->model
+ ->where('presupuestos.cliente_id', $cliente_id)
+ ->select('SUM(presupuestos.total_aceptado) as total')
+ ->groupBy('presupuestos.cliente_id')->get()->getResultObject();
+ if(count($data) > 0){
+ $result['total_impresion'] = round(floatval($data[0]->total), 2);
+ }
+ else{
+ $error = true;
+ }
+ $result['total'] = $result['total_impresion'] + $result['total_maquetacion'];
+ return $this->respond(['status' => $error?'error':'success', 'totales' => $result]);
+ }
+
+ public function obtenerTotalPedidosCliente($cliente_id){
+
+ $error = false;
+ $result = [
+ 'total_impresion' => 0,
+ 'total_maquetacion' => 0,
+ ];
+ $data = $this->model
+ ->where('presupuestos.cliente_id', $cliente_id)->whereNotIn('pedidos.estado', ['cancelado'])
+ ->select('SUM(pedidos.total_precio) as total')
+ ->join('pedidos_linea', 'pedidos_linea.pedido_id = pedidos.id')
+ ->join('presupuestos', 'presupuestos.id = pedidos_linea.presupuesto_id')
+ ->groupBy('presupuestos.cliente_id')->get()->getResultObject();
+ if(count($data) > 0){
+ $result['total_impresion'] = round(floatval($data[0]->total), 2);
+ }
+ else{
+ $error = true;
+ }
+ $result['total'] = $result['total_impresion'] + $result['total_maquetacion'];
+ return $this->respond(['status' => $error?'error':'success', 'totales' => $result]);
+ }
+
+
protected function getClienteListItems($selId = null)
{
$data = ['' => lang('Basic.global.pleaseSelectA', [mb_strtolower(lang('Clientes.cliente'))])];
diff --git a/ci4/app/Controllers/Produccion/Ordentrabajo.php b/ci4/app/Controllers/Produccion/Ordentrabajo.php
index 44f5ebd9..0fef800c 100755
--- a/ci4/app/Controllers/Produccion/Ordentrabajo.php
+++ b/ci4/app/Controllers/Produccion/Ordentrabajo.php
@@ -138,7 +138,7 @@ class Ordentrabajo extends BaseController
->add("logo", fn($q) => site_url($logo->get_logo_path($q->presupuesto_linea_tipo)))
->edit(
"fecha_encuadernado_at",
- fn($q) => Time::createFromFormat("Y-m-d", $q->fecha_encuadernado_at)->format("d/m/Y")
+ fn($q) => $q->fecha_encuadernado_at ? Time::createFromFormat("Y-m-d", $q->fecha_encuadernado_at)->format("d/m/Y") : ""
)
->add("action", fn($q) => $q->id)
->toJson(true);
@@ -153,7 +153,7 @@ class Ordentrabajo extends BaseController
->add("logo", fn($q) => site_url($logo->get_logo_path($q->presupuesto_linea_tipo)))
->edit(
"fecha_encuadernado_at",
- fn($q) => $q->fecha_encuadernado_at? Time::createFromFormat("Y-m-d", $q->fecha_encuadernado_at)->format("d/m/Y"):""
+ fn($q) => $q->fecha_encuadernado_at ? Time::createFromFormat("Y-m-d", $q->fecha_encuadernado_at)->format("d/m/Y") : ""
)
->add("action", fn($q) => $q->id)
->toJson(true);
@@ -168,7 +168,7 @@ class Ordentrabajo extends BaseController
->add("logo", fn($q) => site_url($logo->get_logo_path($q->presupuesto_linea_tipo)))
->edit(
"fecha_encuadernado_at",
- fn($q) => $q->fecha_encuadernado_at?Time::createFromFormat("Y-m-d", $q->fecha_encuadernado_at)->format("d/m/Y"):""
+ fn($q) =>$q->fecha_encuadernado_at ? Time::createFromFormat("Y-m-d", $q->fecha_encuadernado_at)->format("d/m/Y") : ""
)
->add("action", fn($q) => $q->id)
->toJson(true);
@@ -183,7 +183,7 @@ class Ordentrabajo extends BaseController
->add("logo", fn($q) => site_url($logo->get_logo_path($q->presupuesto_linea_tipo)))
->edit(
"fecha_encuadernado_at",
- fn($q) => Time::createFromFormat("Y-m-d", $q->fecha_encuadernado_at)->format("d/m/Y")
+ fn($q) => $q->fecha_encuadernado_at ? Time::createFromFormat("Y-m-d", $q->fecha_encuadernado_at)->format("d/m/Y") : ""
)
->add("action", fn($q) => $q->id)
->toJson(true);
@@ -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);
@@ -273,8 +289,7 @@ class Ordentrabajo extends BaseController
return DataTable::of($q)
->edit("fecha_entrega_real_at", fn($q) => $q->fecha_entrega_real_at ? Time::createFromFormat("Y-m-d", $q->fecha_entrega_real_at)->format("d/m/Y") : "")
->add("metros_check", fn($q) => $q->otId)
- ->add("corte", fn($q) => $q->otId)
-
+ ->add("corte", fn($q) => ["otId" => $q->otId,"tipo_corte" => $this->produccionService->ordenTrabajoTareaCorte($q->otId)])
->add("action", fn($q) => $q)
->toJson(true);
}
@@ -287,4 +302,30 @@ 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);
+ }
+ public function tarea_toggle_corte($orden_trabajo_id)
+ {
+ $status = $this->produccionService->tareaUpdateMaquinaCorte($orden_trabajo_id);
+ return $this->response->setJSON(["message" => lang("App.global_alert_save_success"), "status" => $status ]);
+ }
+
}
diff --git a/ci4/app/Database/Migrations/2025-03-31-080000_AddColumnIsCorteOrdenTrabajoTarea.php b/ci4/app/Database/Migrations/2025-03-31-080000_AddColumnIsCorteOrdenTrabajoTarea.php
new file mode 100644
index 00000000..2c0343c7
--- /dev/null
+++ b/ci4/app/Database/Migrations/2025-03-31-080000_AddColumnIsCorteOrdenTrabajoTarea.php
@@ -0,0 +1,51 @@
+ [
+ 'type' => 'TINYINT',
+ 'constraint' => 1,
+ 'null' => false,
+ 'default' => 0,
+ ],
+ 'tipo_corte' => [
+ 'type' => 'ENUM',
+ 'constraint' => ['bobina','guillotina'],
+ 'default' => 'bobina',
+ ],
+ ];
+ $this->forge->addColumn('orden_trabajo_tareas', $fields);
+ $m = model(OrdenTrabajoTarea::class);
+ $m->where('nombre','Corte')->set(['is_corte' => true,'tipo_corte' => 'bobina'])->update();
+ $cvm = model(ConfigVariableModel::class);
+ $cvm->insert([
+ "name" => "id_maquina_bobina_corte_ot_tarea",
+ "value" => 61,
+ "description" => "Id de máquina por defecto para corte en bobina rotativa. (Asignación máquina orden trabajo tarea)"
+ ]);
+ $cvm->insert([
+ "name" => "id_maquina_guillotina_corte_ot_tarea",
+ "value" => 31,
+ "description" => "Id de máquina por defecto para corte guillotina rotativa. (Asignación máquina orden trabajo tarea)"
+ ]);
+ }
+
+ public function down()
+ {
+ $this->forge->dropColumn('orden_trabajo_tareas', 'is_corte');
+ $this->forge->dropColumn('orden_trabajo_tareas', 'tipo_corte');
+ $cvm = model(ConfigVariableModel::class);
+ $cvm->whereIn('name',["id_maquina_bobina_corte_ot_tarea","id_maquina_guillotina_corte_ot_tarea"])->delete(purge:true);
+
+
+ }
+}
diff --git a/ci4/app/Entities/Presupuestos/PresupuestoEncuadernacionesEntity.php b/ci4/app/Entities/Presupuestos/PresupuestoEncuadernacionesEntity.php
index 81e257f8..a586f2c1 100755
--- a/ci4/app/Entities/Presupuestos/PresupuestoEncuadernacionesEntity.php
+++ b/ci4/app/Entities/Presupuestos/PresupuestoEncuadernacionesEntity.php
@@ -2,6 +2,7 @@
namespace App\Entities\Presupuestos;
use App\Entities\Tarifas\TarifaEncuadernacionEntity;
+use App\Models\Configuracion\MaquinaModel;
use App\Models\Tarifas\Maquinas\TarifaEncuadernacionMaquinaModel;
use App\Models\Tarifas\TarifaEncuadernacionModel;
use CodeIgniter\Entity;
@@ -34,7 +35,13 @@ class PresupuestoEncuadernacionesEntity extends \CodeIgniter\Entity\Entity
public function maquinas() : array
{
$m = model(TarifaEncuadernacionMaquinaModel::class);
- return $m->where("tarifa_encuadernacion_id",$this->attributes["tarifa_encuadernado_id"])->findAll();
+ $tarifa_maquinas = $m->where("tarifa_encuadernacion_id",$this->attributes["tarifa_encuadernado_id"])->findAll();
+ $maquinaModel = model(MaquinaModel::class);
+ $maquinas = [];
+ foreach ($tarifa_maquinas as $key => $tarifa_maquina) {
+ $maquinas[] = $maquinaModel->find($tarifa_maquina->maquina_id);
+ }
+ return $maquinas;
}
public function tarifa() : TarifaEncuadernacionEntity
{
diff --git a/ci4/app/Entities/Presupuestos/PresupuestoManipuladosEntity.php b/ci4/app/Entities/Presupuestos/PresupuestoManipuladosEntity.php
index 2fec8009..5c880ec4 100644
--- a/ci4/app/Entities/Presupuestos/PresupuestoManipuladosEntity.php
+++ b/ci4/app/Entities/Presupuestos/PresupuestoManipuladosEntity.php
@@ -2,6 +2,7 @@
namespace App\Entities\Presupuestos;
use App\Entities\Tarifas\TarifaManipuladoEntity;
+use App\Models\Configuracion\MaquinaModel;
use App\Models\Tarifas\Maquinas\TarifaManipuladoMaquinaModel;
use App\Models\Tarifas\TarifaManipuladoModel;
use CodeIgniter\Entity;
@@ -28,7 +29,13 @@ class PresupuestoManipuladosEntity extends \CodeIgniter\Entity\Entity
public function maquinas() : array
{
$m = model(TarifaManipuladoMaquinaModel::class);
- return $m->where("tarifa_manipulado_id",$this->attributes["tarifa_manipulado_id"])->findAll();
+ $tarifa_maquinas = $m->where("tarifa_manipulado_id",$this->attributes["tarifa_manipulado_id"])->findAll();
+ $maquinaModel = model(MaquinaModel::class);
+ $maquinas = [];
+ foreach ($tarifa_maquinas as $key => $tarifa_maquina) {
+ $maquinas[] = $maquinaModel->find($tarifa_maquina->maquina_id);
+ }
+ return $maquinas;
}
public function tarifa() : TarifaManipuladoEntity
{
diff --git a/ci4/app/Entities/Presupuestos/PresupuestoPreimpresionesEntity.php b/ci4/app/Entities/Presupuestos/PresupuestoPreimpresionesEntity.php
index 9a0fef88..81de17f5 100755
--- a/ci4/app/Entities/Presupuestos/PresupuestoPreimpresionesEntity.php
+++ b/ci4/app/Entities/Presupuestos/PresupuestoPreimpresionesEntity.php
@@ -2,6 +2,7 @@
namespace App\Entities\Presupuestos;
use App\Entities\Tarifas\TarifapreimpresionEntity;
+use App\Models\Configuracion\MaquinaModel;
use App\Models\Tarifas\Maquinas\TarifaPreimpresionMaquinaModel;
use App\Models\Tarifas\TarifapreimpresionModel;
use CodeIgniter\Entity;
@@ -26,7 +27,13 @@ class PresupuestoPreimpresionesEntity extends \CodeIgniter\Entity\Entity
public function maquinas() : array
{
$m = model(TarifaPreimpresionMaquinaModel::class);
- return $m->where("tarifa_preimpresion_id",$this->attributes["tarifa_preimpresion_id"])->findAll();
+ $tarifa_maquinas = $m->where("tarifa_preimpresion_id",$this->attributes["tarifa_preimpresion_id"])->findAll();
+ $maquinaModel = model(MaquinaModel::class);
+ $maquinas = [];
+ foreach ($tarifa_maquinas as $key => $tarifa_maquina) {
+ $maquinas[] = $maquinaModel->find($tarifa_maquina->maquina_id);
+ }
+ return $maquinas;
}
public function tarifa() : TarifapreimpresionEntity
{
diff --git a/ci4/app/Entities/Presupuestos/PresupuestoServiciosExtraEntity.php b/ci4/app/Entities/Presupuestos/PresupuestoServiciosExtraEntity.php
index b68f6c2f..ebd82bab 100755
--- a/ci4/app/Entities/Presupuestos/PresupuestoServiciosExtraEntity.php
+++ b/ci4/app/Entities/Presupuestos/PresupuestoServiciosExtraEntity.php
@@ -2,6 +2,7 @@
namespace App\Entities\Presupuestos;
use App\Entities\Tarifas\TarifaextraEntity;
+use App\Models\Configuracion\MaquinaModel;
use App\Models\Tarifas\Maquinas\TarifaExtraMaquinaModel;
use App\Models\Tarifas\TarifaextraModel;
use CodeIgniter\Entity;
@@ -27,7 +28,13 @@ class PresupuestoServiciosExtraEntity extends \CodeIgniter\Entity\Entity
public function maquinas() : array
{
$m = model(TarifaExtraMaquinaModel::class);
- return $m->where("tarifa_extra_id",$this->attributes["tarifa_extra_id"])->findAll();
+ $tarifa_maquinas = $m->where("tarifa_extra_id",$this->attributes["tarifa_extra_id"])->findAll();
+ $maquinaModel = model(MaquinaModel::class);
+ $maquinas = [];
+ foreach ($tarifa_maquinas as $key => $tarifa_maquina) {
+ $maquinas[] = $maquinaModel->find($tarifa_maquina->maquina_id);
+ }
+ return $maquinas;
}
public function tarifa() : TarifaextraEntity
{
diff --git a/ci4/app/Entities/Produccion/OrdenTrabajoEntity.php b/ci4/app/Entities/Produccion/OrdenTrabajoEntity.php
index f59678fd..329a3e3f 100644
--- a/ci4/app/Entities/Produccion/OrdenTrabajoEntity.php
+++ b/ci4/app/Entities/Produccion/OrdenTrabajoEntity.php
@@ -10,7 +10,8 @@ use App\Models\OrdenTrabajo\OrdenTrabajoTarea;
use App\Models\OrdenTrabajo\OrdenTrabajoUser;
use App\Models\Pedidos\PedidoModel;
use CodeIgniter\Entity\Entity;
-
+use Picqer\Barcode\Renderers\PngRenderer;
+use Picqer\Barcode\Types\TypeCode128;
class OrdenTrabajoEntity extends Entity
{
@@ -101,4 +102,11 @@ class OrdenTrabajoEntity extends Entity
$this->attributes["dates"] = $ot_dates->fill($data);
return $this;
}
+ public function getBarCode() : string
+ {
+ $barcode = new TypeCode128();
+ $renderer = new PngRenderer();
+ $barcodeData = $barcode->getBarcode($this->pedido()->presupuesto()->id);
+ return base64_encode($renderer->render($barcodeData,200, 50));
+ }
}
diff --git a/ci4/app/Entities/Produccion/OrdenTrabajoTareaEntity.php b/ci4/app/Entities/Produccion/OrdenTrabajoTareaEntity.php
index c7826985..b11c9812 100644
--- a/ci4/app/Entities/Produccion/OrdenTrabajoTareaEntity.php
+++ b/ci4/app/Entities/Produccion/OrdenTrabajoTareaEntity.php
@@ -25,6 +25,8 @@ class OrdenTrabajoTareaEntity extends Entity
"imposicion_id" => null,
"tiempo_estimado" => null,
"tiempo_real" => null,
+ "is_corte" => null,
+ "tipo_corte" => null,
"comment" => null,
];
protected $datamap = [];
@@ -39,6 +41,8 @@ class OrdenTrabajoTareaEntity extends Entity
"imposicion_id" => "?integer",
"tiempo_estimado" => "?float",
"tiempo_real" => "?float",
+ "is_corte" => "boolean",
+ "tipo_corte" => "string",
"comment" => "?string"
];
diff --git a/ci4/app/Entities/Produccion/OrdenTrabajoUserEntity.php b/ci4/app/Entities/Produccion/OrdenTrabajoUserEntity.php
index 6eaf08c6..c03df33a 100644
--- a/ci4/app/Entities/Produccion/OrdenTrabajoUserEntity.php
+++ b/ci4/app/Entities/Produccion/OrdenTrabajoUserEntity.php
@@ -2,6 +2,8 @@
namespace App\Entities\Produccion;
+use App\Entities\Usuarios\UserEntity;
+use App\Models\Usuarios\UserModel;
use CodeIgniter\Entity\Entity;
class OrdenTrabajoUserEntity extends Entity
@@ -10,30 +12,30 @@ class OrdenTrabajoUserEntity extends Entity
protected $dates = ['created_at', 'updated_at', 'deleted_at'];
protected $attributes = [
- "orden_trabajo_id"=> null,
- "user_created_id"=> null,
- "user_update_id"=> null,
- "inaplazable_revised_change_user_id"=> null,
- "ferro_disponible_hecho_user_id"=> null,
- "ferro_disponible_ok_user_id"=> null,
- "ferro_entregado_user_id"=> null,
- "pendiente_ferro_user_id"=> null,
- "ferro_en_cliente_user_id"=> null,
- "ferro_ok_user_id"=> null,
- "interior_bn_user_id"=> null,
- "interior_color_user_id"=> null,
- "preparacion_interior_user_id"=> null,
- "cubierta_user_id"=> null,
- "plastificado_user_id"=> null,
- "encuadernacion_user_id"=> null,
- "corte_user_id"=> null,
- "embalaje_user_id"=> null,
- "entrada_manipulado_user_id"=> null,
- "pre_formato_user_id"=> null,
- "pre_lomo_user_id"=> null,
- "pre_solapa_user_id"=> null,
- "pre_codbarras_user_id"=> null,
- "pre_imposicion_user_id"=> null,
+ "orden_trabajo_id" => null,
+ "user_created_id" => null,
+ "user_update_id" => null,
+ "inaplazable_revised_change_user_id" => null,
+ "ferro_disponible_hecho_user_id" => null,
+ "ferro_disponible_ok_user_id" => null,
+ "ferro_entregado_user_id" => null,
+ "pendiente_ferro_user_id" => null,
+ "ferro_en_cliente_user_id" => null,
+ "ferro_ok_user_id" => null,
+ "interior_bn_user_id" => null,
+ "interior_color_user_id" => null,
+ "preparacion_interior_user_id" => null,
+ "cubierta_user_id" => null,
+ "plastificado_user_id" => null,
+ "encuadernacion_user_id" => null,
+ "corte_user_id" => null,
+ "embalaje_user_id" => null,
+ "entrada_manipulado_user_id" => null,
+ "pre_formato_user_id" => null,
+ "pre_lomo_user_id" => null,
+ "pre_solapa_user_id" => null,
+ "pre_codbarras_user_id" => null,
+ "pre_imposicion_user_id" => null,
"pre_imprimir_user_id" => null
];
// protected array $casts = [
@@ -63,4 +65,21 @@ class OrdenTrabajoUserEntity extends Entity
// "pre_imposicion_user_id" => "?integer",
// "pre_imprimir_user_id" => "?integer"
// ];
+
+ protected function userBy(string $key): ?UserEntity
+ {
+ $user = null;
+ if (isset($this->attributes[$key])) {
+
+ if ($this->attributes[$key]) {
+ $m = model(UserModel::class);
+ $user = $m->find($this->attributes[$key]);
+ }
+ }
+ return $user;
+ }
+ public function getPlastificadoBy() : ?UserEntity
+ {
+ return $this->userBy('plastificado_user_id');
+ }
}
diff --git a/ci4/app/Entities/Tarifas/Acabados/TarifaAcabadoEntity.php b/ci4/app/Entities/Tarifas/Acabados/TarifaAcabadoEntity.php
index 0e384c7f..818d42e1 100644
--- a/ci4/app/Entities/Tarifas/Acabados/TarifaAcabadoEntity.php
+++ b/ci4/app/Entities/Tarifas/Acabados/TarifaAcabadoEntity.php
@@ -1,6 +1,8 @@
"int",
"is_deleted" => "int",
];
+ /**
+ * Devuelve las maquinas asociadas a esta tarifa de acabado
+ *
+ * @return array
+ */
+ public function maquinas() : array
+ {
+ $m = model(TarifaAcabadoMaquinaModel::class);
+ $ta_maquinas = $m->where('tarifa_acabado_id',$this->attributes['id'])->findAll();
+ return array_map(fn(TarifaAcabadoMaquinaEntity $ta_maquina) => $ta_maquina->maquina(),$ta_maquinas);
+ }
}
diff --git a/ci4/app/Entities/Tarifas/Maquinas/TarifaAcabadoMaquinaEntity.php b/ci4/app/Entities/Tarifas/Maquinas/TarifaAcabadoMaquinaEntity.php
index 107370f6..a5b97709 100644
--- a/ci4/app/Entities/Tarifas/Maquinas/TarifaAcabadoMaquinaEntity.php
+++ b/ci4/app/Entities/Tarifas/Maquinas/TarifaAcabadoMaquinaEntity.php
@@ -2,6 +2,8 @@
namespace App\Entities\Tarifas\Maquinas;
use App\Entities\Tarifas\Acabados\TarifaAcabadoEntity;
+use App\Entities\Configuracion\Maquina;
+use App\Models\Configuracion\MaquinaModel;
use App\Models\Tarifas\Acabados\TarifaAcabadoModel;
use CodeIgniter\Entity\Entity;
@@ -27,4 +29,10 @@ class TarifaAcabadoMaquinaEntity extends Entity
$m = model(TarifaAcabadoModel::class);
return $m->find($this->attributes["tarifa_acabado_id"]);
}
+ public function maquina() : Maquina
+ {
+ $m = model(MaquinaModel::class);
+ return $m->find($this->attributes["maquina_id"]);
+
+ }
}
diff --git a/ci4/app/Entities/Tarifas/Maquinas/TarifaEncuadernacionMaquinaEntity.php b/ci4/app/Entities/Tarifas/Maquinas/TarifaEncuadernacionMaquinaEntity.php
index f0d9ee92..71fcae28 100644
--- a/ci4/app/Entities/Tarifas/Maquinas/TarifaEncuadernacionMaquinaEntity.php
+++ b/ci4/app/Entities/Tarifas/Maquinas/TarifaEncuadernacionMaquinaEntity.php
@@ -2,7 +2,9 @@
namespace App\Entities\Tarifas\Maquinas;
+use App\Entities\Configuracion\Maquina;
use App\Entities\Tarifas\TarifaEncuadernacionEntity;
+use App\Models\Configuracion\MaquinaModel;
use App\Models\Tarifas\TarifaEncuadernacionModel;
use CodeIgniter\Entity\Entity;
@@ -31,4 +33,9 @@ class TarifaEncuadernacionMaquinaEntity extends Entity
$m = model(TarifaEncuadernacionModel::class);
return $m->find($this->attributes["tarifa_encuadernacion_id"]);
}
+ public function maquina(): ?Maquina
+ {
+ $m = model(MaquinaModel::class);
+ return $m->find($this->attributes['maquina_id']);
+ }
}
diff --git a/ci4/app/Entities/Tarifas/Maquinas/TarifaExtraMaquinaEntity.php b/ci4/app/Entities/Tarifas/Maquinas/TarifaExtraMaquinaEntity.php
index 9532f153..af6fe49b 100644
--- a/ci4/app/Entities/Tarifas/Maquinas/TarifaExtraMaquinaEntity.php
+++ b/ci4/app/Entities/Tarifas/Maquinas/TarifaExtraMaquinaEntity.php
@@ -6,7 +6,8 @@ use App\Entities\Tarifas\TarifaextraEntity;
use App\Models\Tarifas\Acabados\TarifaAcabadoModel;
use App\Models\Tarifas\TarifaextraModel;
use CodeIgniter\Entity\Entity;
-
+use App\Entities\Configuracion\Maquina;
+use App\Models\Configuracion\MaquinaModel;
class TarifaExtraMaquinaEntity extends Entity
{
@@ -29,4 +30,9 @@ class TarifaExtraMaquinaEntity extends Entity
$m = model(TarifaextraModel::class);
return $m->find($this->attributes["tarifa_extra_id"]);
}
+ public function maquina(): ?Maquina
+ {
+ $m = model(MaquinaModel::class);
+ return $m->find($this->attributes['maquina_id']);
+ }
}
diff --git a/ci4/app/Entities/Tarifas/Maquinas/TarifaManipuladoMaquinaEntity.php b/ci4/app/Entities/Tarifas/Maquinas/TarifaManipuladoMaquinaEntity.php
index ed8fb93c..341ab7f6 100644
--- a/ci4/app/Entities/Tarifas/Maquinas/TarifaManipuladoMaquinaEntity.php
+++ b/ci4/app/Entities/Tarifas/Maquinas/TarifaManipuladoMaquinaEntity.php
@@ -4,7 +4,8 @@ namespace App\Entities\Tarifas\Maquinas;
use App\Entities\Tarifas\TarifaManipuladoEntity;
use App\Models\Tarifas\TarifaManipuladoModel;
use CodeIgniter\Entity\Entity;
-
+use App\Entities\Configuracion\Maquina;
+use App\Models\Configuracion\MaquinaModel;
class TarifaManipuladoMaquinaEntity extends Entity
{
@@ -28,4 +29,9 @@ class TarifaManipuladoMaquinaEntity extends Entity
$m = model(TarifaManipuladoModel::class);
return $m->find($this->attributes["tarifa_manipulado_id"]);
}
+ public function maquina(): ?Maquina
+ {
+ $m = model(MaquinaModel::class);
+ return $m->find($this->attributes['maquina_id']);
+ }
}
diff --git a/ci4/app/Entities/Tarifas/Maquinas/TarifaPreimpresionMaquinaEntity.php b/ci4/app/Entities/Tarifas/Maquinas/TarifaPreimpresionMaquinaEntity.php
index 2eb4f991..a73a155c 100644
--- a/ci4/app/Entities/Tarifas/Maquinas/TarifaPreimpresionMaquinaEntity.php
+++ b/ci4/app/Entities/Tarifas/Maquinas/TarifaPreimpresionMaquinaEntity.php
@@ -4,7 +4,8 @@ namespace App\Entities\Tarifas\Maquinas;
use App\Entities\Tarifas\TarifapreimpresionEntity;
use App\Models\Tarifas\TarifapreimpresionModel;
use CodeIgniter\Entity\Entity;
-
+use App\Entities\Configuracion\Maquina;
+use App\Models\Configuracion\MaquinaModel;
class TarifaPreimpresionMaquinaEntity extends Entity
{
@@ -28,4 +29,9 @@ class TarifaPreimpresionMaquinaEntity extends Entity
$m = model(TarifapreimpresionModel::class);
return $m->find($this->attributes["tarifa_preimpresion_id"]);
}
+ public function maquina(): ?Maquina
+ {
+ $m = model(MaquinaModel::class);
+ return $m->find($this->attributes['maquina_id']);
+ }
}
diff --git a/ci4/app/Language/es/Facturas.php b/ci4/app/Language/es/Facturas.php
index 9be71bb4..fd058b51 100644
--- a/ci4/app/Language/es/Facturas.php
+++ b/ci4/app/Language/es/Facturas.php
@@ -74,6 +74,9 @@ return [
"ejemplares" => "Ejemplares",
"addPago" => "Añadir Pago",
"facturaPagada" => "Factura rectificativa ya abonada",
+
+ "acumuladoFacturacion" => "Acumulado Facturación",
+ "totalPendientePago" => "Pendiente de pago",
'errors' => [
'requiredFields' => 'Los campos marcados con * son obligatorios',
diff --git a/ci4/app/Language/es/Pedidos.php b/ci4/app/Language/es/Pedidos.php
index aa9c20e2..6afcd3ef 100644
--- a/ci4/app/Language/es/Pedidos.php
+++ b/ci4/app/Language/es/Pedidos.php
@@ -16,6 +16,7 @@ return [
'estado' => 'Estado',
'importePendiente' => 'Importe Pendiente',
+ 'todos' => 'Todos',
'validacion' => 'Validación',
'produccion' => 'Producción',
'finalizado' => 'Finalizado',
@@ -82,6 +83,10 @@ return [
'showTotal' => 'Mostrar totales',
+ 'pedidosImpresion' => 'Pedidos impresión',
+ 'pedidosMaquetacion' => 'Pedidos maquetación',
+ 'pedidosTotal' => 'Total en pedidos',
+
'validation' => [
'errorCantidadAlbaranes' => 'Total en albaranes {0} no coincide con la tirada {1}',
diff --git a/ci4/app/Language/es/Presupuestos.php b/ci4/app/Language/es/Presupuestos.php
index b347eebe..cd19b536 100755
--- a/ci4/app/Language/es/Presupuestos.php
+++ b/ci4/app/Language/es/Presupuestos.php
@@ -349,6 +349,16 @@ return [
'cubiertaSinAcabado' => 'Cubierta sin acabado',
'cubiertaSinAcabadoText' => 'La falta de plastificado en la cubierta puede comprometer su calidad, ya que aumenta el riesgo de agrietamiento en los pliegues o hendidos, afectando su apariencia y resistencia',
+
+ 'presupuestosImpresion' => 'Presupuestos impresión',
+ 'presupuestosMaquetacion' => 'Presupuestos maquetación',
+ 'presupuestosTotal' => 'Total presupuestos',
+ 'fecha' => 'Fecha',
+ 'estado' => 'Estado',
+ 'todos' => 'Todos',
+ 'borrador' => 'Borrador',
+ 'confirmado' => 'Confirmado',
+
'files' => 'Ficheros',
'titulos' => [
'libroFresadoTapaDura' => 'Rústica Fresado tapa dura',
diff --git a/ci4/app/Models/Facturas/FacturaModel.php b/ci4/app/Models/Facturas/FacturaModel.php
index 718f94f6..dc11b5e2 100644
--- a/ci4/app/Models/Facturas/FacturaModel.php
+++ b/ci4/app/Models/Facturas/FacturaModel.php
@@ -145,6 +145,40 @@ class FacturaModel extends \App\Models\BaseModel
return $builder;
}
+ public function getSumatoriosFacturacionCliente($cliente_id = -1){
+
+ if($cliente_id == -1){
+ return [
+ 'total_facturacion' => 0,
+ 'total_pendiente' => 0
+ ];
+ }
+
+ $result = [];
+ $data = $this->db->table('facturas f')
+ ->select('sum(f.total) as total')
+ ->where('f.cliente_id', $cliente_id)
+ ->where('f.deleted_at IS NULL')
+ ->where('f.estado', 'validada')
+ ->get()
+ ->getResultObject();
+ $result['total_facturacion'] =
+ round(floatval(($data && $data[0]->total != null) ? $data[0]->total : 0), 2);
+
+ $data = $this->db->table('facturas f')
+ ->select('sum(f.pendiente) as pendiente')
+ ->where('f.cliente_id', $cliente_id)
+ ->where('f.deleted_at IS NULL')
+ ->where('f.estado', 'validada')
+ ->where('f.estado_pago', 'pendiente')
+ ->get()
+ ->getResultObject();
+ $result['total_pendiente'] =
+ round(floatval(($data && $data[0]->pendiente != null) ? $data[0]->pendiente : 0), 2);
+
+ return $result;
+ }
+
/**
* Get resource data for creating PDFs.
diff --git a/ci4/app/Models/OrdenTrabajo/OrdenTrabajoTarea.php b/ci4/app/Models/OrdenTrabajo/OrdenTrabajoTarea.php
index 3c6d1e84..1b40b699 100644
--- a/ci4/app/Models/OrdenTrabajo/OrdenTrabajoTarea.php
+++ b/ci4/app/Models/OrdenTrabajo/OrdenTrabajoTarea.php
@@ -28,6 +28,8 @@ class OrdenTrabajoTarea extends Model
"imposicion_id",
"tiempo_estimado",
"tiempo_real",
+ "is_corte",
+ "tipo_corte",
"comment"
];
diff --git a/ci4/app/Models/Pedidos/PedidoModel.php b/ci4/app/Models/Pedidos/PedidoModel.php
index d5957dce..1ab7dea5 100644
--- a/ci4/app/Models/Pedidos/PedidoModel.php
+++ b/ci4/app/Models/Pedidos/PedidoModel.php
@@ -232,6 +232,20 @@ class PedidoModel extends \App\Models\BaseModel
return $presupuesto_ficheros;
}
+
+ public function getPedidosClienteForm($cliente_id = -1){
+ $builder = $this->db
+ ->table($this->table . " p")
+ ->select('p.id, p.created_at as fecha, p.fecha_entrega_real as fecha_entrega,
+ pr.paginas as paginas, p.total_tirada, p.total_precio, p.estado')
+ ->join('pedidos_linea pl', 'pl.pedido_id = p.id', 'left')
+ ->join('presupuestos pr', 'pr.id = pl.presupuesto_id', 'left')
+ //->where('pr.deleted_at IS NULL')
+ ->where('pr.cliente_id', $cliente_id)
+ ->groupBy('p.id');
+ return $builder;
+ }
+
/**
* Crea una orden de trabajo asociada al pedido
*
diff --git a/ci4/app/Models/Presupuestos/PresupuestoModel.php b/ci4/app/Models/Presupuestos/PresupuestoModel.php
index de3a817b..38f9aada 100755
--- a/ci4/app/Models/Presupuestos/PresupuestoModel.php
+++ b/ci4/app/Models/Presupuestos/PresupuestoModel.php
@@ -713,6 +713,19 @@ class PresupuestoModel extends \App\Models\BaseModel
$servicios['extra'] = $queryExtras->get()->getResultObject();
return $servicios;
}
+
+ public function getPresupuestosClienteForm($cliente_id = -1){
+ $builder = $this->db
+ ->table($this->table . " pr")
+ ->select('pr.id, pr.created_at as fecha, CONCAT(u.first_name, " ", u.last_name) AS comercial, pr.titulo,
+ pr.paginas as paginas, pr.tirada, pr.total_aceptado as total, pr.estado_id as estado')
+ ->join ("clientes c", "pr.cliente_id = c.id", "left")
+ ->join("users u", "c.comercial_id= u.id", "left")
+ ->where('pr.cliente_id', $cliente_id)
+ ->groupBy('pr.id');
+ return $builder;
+ }
+
private function generarConceptoLineasPresupuestoLibro($lineas, $presupuesto)
{
diff --git a/ci4/app/Models/Tarifas/Maquinas/TarifaEncuadernacionMaquinaModel.php b/ci4/app/Models/Tarifas/Maquinas/TarifaEncuadernacionMaquinaModel.php
index 6673625f..1795aca3 100644
--- a/ci4/app/Models/Tarifas/Maquinas/TarifaEncuadernacionMaquinaModel.php
+++ b/ci4/app/Models/Tarifas/Maquinas/TarifaEncuadernacionMaquinaModel.php
@@ -2,8 +2,9 @@
namespace App\Models\Tarifas\Maquinas;
-
+use App\Entities\Configuracion\Maquina;
use App\Entities\Tarifas\Maquinas\TarifaEncuadernacionMaquinaEntity;
+use App\Models\Configuracion\MaquinaModel;
use CodeIgniter\Database\BaseBuilder;
use CodeIgniter\Model;
@@ -71,4 +72,5 @@ class TarifaEncuadernacionMaquinaModel extends Model
$query->where("tarifa_encuadernacion_maquinas.tarifa_encuadernacion_id", $tarifa_encuadernacion_id);
return $query;
}
+
}
diff --git a/ci4/app/Services/ProductionService.php b/ci4/app/Services/ProductionService.php
index 6f9ea0c6..15b8b2a8 100644
--- a/ci4/app/Services/ProductionService.php
+++ b/ci4/app/Services/ProductionService.php
@@ -2,6 +2,7 @@
namespace App\Services;
+use App\Database\Migrations\ConfigVariablesApp;
use App\Entities\Clientes\ClienteEntity;
use App\Entities\Pedidos\PedidoEntity;
use App\Entities\Presupuestos\PresupuestoEntity;
@@ -15,6 +16,7 @@ use App\Models\Usuarios\UserModel;
use CodeIgniter\Config\BaseService;
use App\Entities\Configuracion\Maquina as MaquinaEntity;
use App\Entities\Produccion\OrdenTrabajoTareaEntity;
+use App\Models\Configuracion\ConfigVariableModel;
use App\Models\Configuracion\MaquinaModel;
use CodeIgniter\Database\BaseBuilder;
use CodeIgniter\Database\BaseResult;
@@ -28,8 +30,8 @@ use Dompdf\Dompdf;
*/
class ProductionService extends BaseService
{
- public array $TIPOS_PLANA = ['lp_bn','lp_color','lp_colorhq'];
- public array $TIPOS_ROTATIVA = ['lp_rot_bn','lp_rot_color'];
+ public array $TIPOS_PLANA = ['lp_bn', 'lp_color', 'lp_colorhq'];
+ public array $TIPOS_ROTATIVA = ['lp_rot_bn', 'lp_rot_color'];
protected OrdenTrabajoModel $otModel;
@@ -86,7 +88,7 @@ class ProductionService extends BaseService
$this->ot = $this->otModel->find($orden_trabajo_id);
$pedido = $this->ot->pedido();
$this->setPedido($pedido);
- $this->defaultMaquinaCorte = $this->maquinaModel->where('nombre',$this->defaultMaquinaCorteName)->first();
+ $this->defaultMaquinaCorte = $this->maquinaModel->where('nombre', $this->defaultMaquinaCorteName)->first();
return $this;
}
/**
@@ -162,7 +164,7 @@ class ProductionService extends BaseService
"fecha_entrega_externo" => $this->pedido->fecha_entrega_externo,
];
$otDateId = $this->otDate->insert($data);
- $this->otDate->updateUserDateMap($this->ot->id,$data);
+ $this->otDate->updateUserDateMap($this->ot->id, $data);
return $otDateId;
}
protected function storeOrdenTrabajoUsers(): int|bool|string
@@ -176,9 +178,9 @@ class ProductionService extends BaseService
$this->storeOrdenTrabajoTareas();
$this->storeOrdenTrabajoAcabadoTareas();
$this->storeOrdenTrabajoManipuladoTareas();
- $this->storeOrdenTrabajoPreimpresionTareas();
+ // $this->storeOrdenTrabajoPreimpresionTareas();
$this->storeOrdenTrabajoEncuadernacionTareas();
- $this->storeOrdenTrabajoExtraTareas();
+ // $this->storeOrdenTrabajoExtraTareas();
}
public function resetAllTareas(): BaseResult|bool
{
@@ -208,8 +210,8 @@ class ProductionService extends BaseService
$ot_tareas["orden"] = $p_linea_maquina->orden_planning ?? 0;
$ot_tareas["maquina_id"] = $p_linea_maquina->id;
$ot_tareas["imposicion_id"] = null;
- $ot_tareas["tiempo_estimado"] = $p_linea->horas_maquina;
- $ot_tareas["tiempo_real"] = $p_linea->horas_maquina; //? Tiempo real se inserta manual?
+ $ot_tareas["tiempo_estimado"] = $p_linea->horas_maquina * 3600;
+ $ot_tareas["tiempo_real"] = $p_linea->horas_maquina * 3600; //? Tiempo real se inserta manual?
$insert_query_result = $this->otTarea->insert($ot_tareas);
$ot_tareas = [];
$this->storeTareaCorte($p_linea);
@@ -219,15 +221,17 @@ class ProductionService extends BaseService
protected function storeTareaCorte(PresupuestoLineaEntity $pLinea): ?OrdenTrabajoTareaEntity
{
$otCorte = null;
- if($pLinea->isRotativa()){
+ if ($pLinea->isRotativa()) {
$tareaId = $this->otTarea->insert([
'orden_trabajo_id' => $this->ot->id,
'presupuesto_linea_id' => $pLinea->id,
'nombre' => 'Corte',
'maquina_id' => $this->defaultMaquinaCorte->id,
'orden' => $this->defaultMaquinaCorte->orden_planning,
- 'tiempo_estimado' => $pLinea->rotativa_tiempo_corte,
- 'tiempo_real' => $pLinea->rotativa_tiempo_corte
+ 'tiempo_estimado' => $pLinea->rotativa_tiempo_corte * 60,
+ 'tiempo_real' => $pLinea->rotativa_tiempo_corte * 60,
+ 'is_corte' => true,
+ 'tipo_corte' => "bobina",
]);
$otCorte = $this->otTarea->find($tareaId);
}
@@ -241,20 +245,20 @@ class ProductionService extends BaseService
$p_linea_maquinas = $p_linea->maquinas();
$ot_tareas = [];
if (count($p_linea_maquinas) > 0) {
- foreach ($p_linea_maquinas as $key => $linea) {
- $ot_tareas["orden_trabajo_id"] = $this->ot->id;
- $ot_tareas["presupuesto_acabado_id"] = $p_linea->id;
- $ot_tareas["nombre"] = $p_linea->tarifa()->nombre;
- $ot_tareas["orden"] = $linea->orden_planning ?? 0;
- $ot_tareas["maquina_id"] = $linea->id;
- $ot_tareas["imposicion_id"] = null;
- $this->otTarea->insert($ot_tareas);
- $ot_tareas = [];
- }
+ $linea_maquina = $p_linea_maquinas[0]; //Se obtiene la primera máquina aunque tenga varias
+ $ot_tareas["orden_trabajo_id"] = $this->ot->id;
+ $ot_tareas["presupuesto_acabado_id"] = $p_linea->id;
+ $ot_tareas["nombre"] = $p_linea->tarifa()->nombre;
+ $ot_tareas["orden"] = $linea_maquina->orden_planning ?? 100;
+ $ot_tareas["maquina_id"] = $linea_maquina->id;
+ $ot_tareas["imposicion_id"] = null;
+ $this->otTarea->insert($ot_tareas);
+ $ot_tareas = [];
} else {
$ot_tareas["orden_trabajo_id"] = $this->ot->id;
$ot_tareas["presupuesto_acabado_id"] = $p_linea->id;
$ot_tareas["nombre"] = $p_linea->tarifa()->nombre ?? "";
+ $ot_tareas["orden"] = 100;
$this->otTarea->insert($ot_tareas);
}
}
@@ -267,20 +271,20 @@ class ProductionService extends BaseService
$p_linea_maquinas = $p_linea->maquinas();
$ot_tareas = [];
if (count($p_linea_maquinas) > 0) {
- foreach ($p_linea_maquinas as $key => $linea) {
- $ot_tareas["orden_trabajo_id"] = $this->ot->id;
- $ot_tareas["presupuesto_manipulado_id"] = $p_linea->id;
- $ot_tareas["nombre"] = $p_linea->tarifa()->nombre;
- $ot_tareas["orden"] = $linea->orden_planning ?? 0;
- $ot_tareas["maquina_id"] = $linea->id;
- $ot_tareas["imposicion_id"] = null;
- $this->otTarea->insert($ot_tareas);
- $ot_tareas = [];
- }
+ $linea_maquina = $p_linea_maquinas[0]; //Se obtiene la primera máquina aunque tenga varias
+ $ot_tareas["orden_trabajo_id"] = $this->ot->id;
+ $ot_tareas["presupuesto_manipulado_id"] = $p_linea->id;
+ $ot_tareas["nombre"] = $p_linea->tarifa()->nombre;
+ $ot_tareas["orden"] = $linea_maquina->orden_planning ?? 100;
+ $ot_tareas["maquina_id"] = $linea_maquina->id;
+ $ot_tareas["imposicion_id"] = null;
+ $this->otTarea->insert($ot_tareas);
+ $ot_tareas = [];
} else {
$ot_tareas["orden_trabajo_id"] = $this->ot->id;
$ot_tareas["presupuesto_manipulado_id"] = $p_linea->id;
$ot_tareas["nombre"] = $p_linea->tarifa()->nombre ?? "";
+ $ot_tareas["orden"] = 100;
$this->otTarea->insert($ot_tareas);
}
}
@@ -293,20 +297,20 @@ class ProductionService extends BaseService
$p_linea_maquinas = $p_linea->maquinas();
$ot_tareas = [];
if (count($p_linea_maquinas) > 0) {
- foreach ($p_linea_maquinas as $key => $linea) {
- $ot_tareas["orden_trabajo_id"] = $this->ot->id;
- $ot_tareas["presupuesto_preimpresion_id"] = $p_linea->id;
- $ot_tareas["nombre"] = $p_linea->tarifa()->nombre;
- $ot_tareas["orden"] = $linea->orden_planning ?? 0;
- $ot_tareas["maquina_id"] = $linea->id;
- $ot_tareas["imposicion_id"] = null;
- $this->otTarea->insert($ot_tareas);
- $ot_tareas = [];
- }
+ $linea_maquina = $p_linea_maquinas[0]; //Se obtiene la primera máquina aunque tenga varias
+ $ot_tareas["orden_trabajo_id"] = $this->ot->id;
+ $ot_tareas["presupuesto_preimpresion_id"] = $p_linea->id;
+ $ot_tareas["nombre"] = $p_linea->tarifa()->nombre;
+ $ot_tareas["orden"] = $linea_maquina->orden_planning ?? 100;
+ $ot_tareas["maquina_id"] = $linea_maquina->id;
+ $ot_tareas["imposicion_id"] = null;
+ $this->otTarea->insert($ot_tareas);
+ $ot_tareas = [];
} else {
$ot_tareas["orden_trabajo_id"] = $this->ot->id;
$ot_tareas["presupuesto_preimpresion_id"] = $p_linea->id;
$ot_tareas["nombre"] = $p_linea->tarifa()->nombre ?? "";
+ $ot_tareas["orden"] = 100;
$this->otTarea->insert($ot_tareas);
}
}
@@ -319,20 +323,20 @@ class ProductionService extends BaseService
$p_linea_maquinas = $p_linea->maquinas();
$ot_tareas = [];
if (count($p_linea_maquinas) > 0) {
- foreach ($p_linea_maquinas as $key => $linea) {
- $ot_tareas["orden_trabajo_id"] = $this->ot->id;
- $ot_tareas["presupuesto_encuadernado_id"] = $p_linea->id;
- $ot_tareas["nombre"] = $p_linea->tarifa()->nombre;
- $ot_tareas["orden"] = $linea->orden_planning ?? 0;
- $ot_tareas["maquina_id"] = $linea->id;
- $ot_tareas["imposicion_id"] = null;
- $this->otTarea->insert($ot_tareas);
- $ot_tareas = [];
- }
+ $linea_maquina = $p_linea_maquinas[0]; //Se obtiene la primera máquina aunque tenga varias
+ $ot_tareas["orden_trabajo_id"] = $this->ot->id;
+ $ot_tareas["presupuesto_encuadernado_id"] = $p_linea->id;
+ $ot_tareas["nombre"] = $p_linea->tarifa()->nombre;
+ $ot_tareas["orden"] = $linea_maquina->orden_planning ?? 110;
+ $ot_tareas["maquina_id"] = $linea_maquina->id;
+ $ot_tareas["imposicion_id"] = null;
+ $this->otTarea->insert($ot_tareas);
+ $ot_tareas = [];
} else {
$ot_tareas["orden_trabajo_id"] = $this->ot->id;
$ot_tareas["presupuesto_encuadernado_id"] = $p_linea->id;
$ot_tareas["nombre"] = $p_linea->tarifa()->nombre ?? "";
+ $ot_tareas["orden"] = 110;
$this->otTarea->insert($ot_tareas);
}
}
@@ -345,16 +349,15 @@ class ProductionService extends BaseService
$p_linea_maquinas = $p_linea->maquinas();
$ot_tareas = [];
if (count($p_linea_maquinas) > 0) {
- foreach ($p_linea_maquinas as $key => $linea) {
- $ot_tareas["orden_trabajo_id"] = $this->ot->id;
- $ot_tareas["presupuesto_extra_id"] = $p_linea->id;
- $ot_tareas["nombre"] = $p_linea->tarifa()->nombre;
- $ot_tareas["orden"] = $linea->orden_planning;
- $ot_tareas["maquina_id"] = $linea->id;
- $ot_tareas["imposicion_id"] = null;
- $this->otTarea->insert($ot_tareas);
- $ot_tareas = [];
- }
+ $linea_maquina = $p_linea_maquinas[0]; //Se obtiene la primera máquina aunque tenga varias
+ $ot_tareas["orden_trabajo_id"] = $this->ot->id;
+ $ot_tareas["presupuesto_extra_id"] = $p_linea->id;
+ $ot_tareas["nombre"] = $p_linea->tarifa()->nombre;
+ $ot_tareas["orden"] = $linea_maquina->orden_planning ?? 0;
+ $ot_tareas["maquina_id"] = $linea_maquina->id;
+ $ot_tareas["imposicion_id"] = null;
+ $this->otTarea->insert($ot_tareas);
+ $ot_tareas = [];
} else {
$ot_tareas["orden_trabajo_id"] = $this->ot->id;
$ot_tareas["presupuesto_extra_id"] = $p_linea->id;
@@ -459,12 +462,12 @@ class ProductionService extends BaseService
->join("lg_imposiciones", "lg_imposiciones.id = orden_trabajo_tareas.imposicion_id", "left")
// ->where("orden_trabajo_tareas.orden_trabajo_id", $this->ot->id)
->whereIn("presupuesto_linea.tipo", $this->TIPOS_ROTATIVA)
- ->where('lg_maquinas.is_rotativa',true)
+ ->where('lg_maquinas.is_rotativa', true)
->where("orden_trabajo_tareas.deleted_at", null)
->orderBy("orden_trabajo_tareas.orden", "ASC");
return $q;
}
- /**
+ /**
* Query para mostrar en datatable
*
* @return BaseBuilder
@@ -500,7 +503,7 @@ class ProductionService extends BaseService
->join("lg_imposiciones", "lg_imposiciones.id = orden_trabajo_tareas.imposicion_id", "left")
// ->where("orden_trabajo_tareas.orden_trabajo_id", $this->ot->id)
->whereIn("presupuesto_linea.tipo", $this->TIPOS_PLANA)
- ->where('lg_maquinas.is_rotativa',false)
+ ->where('lg_maquinas.is_rotativa', false)
->where("orden_trabajo_tareas.deleted_at", null)
->orderBy("orden_trabajo_tareas.orden", "ASC");
return $q;
@@ -716,6 +719,10 @@ class ProductionService extends BaseService
public function updateOrdenTrabajoTarea($tarea_id, $data): bool
{
+ if (isset($data['maquina_id'])) {
+ $maquina = model(MaquinaModel::class)->find($data['maquina_id']);
+ $data['orden'] = $maquina->orden_planning;
+ }
return $this->otTarea->update($tarea_id, $data);
}
@@ -725,16 +732,16 @@ class ProductionService extends BaseService
$otDate = $this->otDate->where('orden_trabajo_id', $this->ot->id)
->set([$data['name'] => $data[$data['name']]])
->update($data);
- $this->otDate->updateUserDateMap($this->ot->id,$data);
+ $this->otDate->updateUserDateMap($this->ot->id, $data);
$ot_users = $this->ot->users();
- if(isset($this->MAPPING_DATE_USER[$data["name"]])){
+ if (isset($this->MAPPING_DATE_USER[$data["name"]])) {
$user_id = $ot_users->{$this->MAPPING_DATE_USER[$data["name"]]};
$user = $this->userModel->find($user_id);
- if($user_id){
+ if ($user_id) {
$result = ["user" => null, "status" => false];
}
$result = ["user" => $user, "status" => $otDate];
- }else{
+ } else {
$result = ["user" => null, "status" => false];
}
return $result;
@@ -817,4 +824,106 @@ 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();
+ }
+ public function tareaUpdateMaquinaCorte($orden_trabajo_id): bool
+ {
+ $cvm = model(ConfigVariableModel::class);
+ $otTarea = $this->otTarea->where('orden_trabajo_id', $orden_trabajo_id)->where('is_corte', true)->first();
+ $toggleCorte = "bobina";
+ if ($otTarea->tipo_corte == "bobina") {
+ $maquina_id = $cvm->where('name', "id_maquina_guillotina_corte_ot_tarea")->first()["value"];
+ $toggleCorte = "guillotina";
+ } elseif ($otTarea->tipo_corte == "guillotina") {
+ $maquina_id = $cvm->where('name', "id_maquina_bobina_corte_ot_tarea")->first()["value"];
+ $toggleCorte = "bobina";
+ } else {
+ $maquina_id = null;
+ }
+ return $this->otTarea
+ ->where('orden_trabajo_id', $orden_trabajo_id)
+ ->where('is_corte', true)
+ ->set(["maquina_id" => $maquina_id, "tipo_corte" => $toggleCorte])
+ ->update();
+ }
+ public function ordenTrabajoTareaCorte(int $ot_id): ?string
+ {
+ return $this->otTarea->where('orden_trabajo_id', $ot_id)->where('is_corte', true)?->first()->tipo_corte ?? null;
+ }
}
diff --git a/ci4/app/Views/themes/vuexy/form/clientes/cliente/_clienteFormItems.php b/ci4/app/Views/themes/vuexy/form/clientes/cliente/_clienteFormItems.php
index 6c67d6a6..56654f74 100644
--- a/ci4/app/Views/themes/vuexy/form/clientes/cliente/_clienteFormItems.php
+++ b/ci4/app/Views/themes/vuexy/form/clientes/cliente/_clienteFormItems.php
@@ -56,19 +56,19 @@
+
+
+