diff --git a/ci4/app/Config/RBAC/permissionMatrix.php b/ci4/app/Config/RBAC/permissionMatrix.php index 8b39825f..34d9b554 100644 --- a/ci4/app/Config/RBAC/permissionMatrix.php +++ b/ci4/app/Config/RBAC/permissionMatrix.php @@ -9,10 +9,18 @@ const SK_PERMISSION_MATRIX = [ "plantilla-tarifa.edit", "plantilla-tarifa.delete", "plantilla-tarifa.menu", + "perfil.create", + "perfil.edit", + "perfil.delete", + "perfil.menu", "presupuesto.create", "presupuesto.edit", "presupuesto.delete", "presupuesto.menu", + "presupuesto-cliente.create", + "presupuesto-cliente.edit", + "presupuesto-cliente.delete", + "presupuesto-cliente.menu", "tarifa-preimpresion.create", "tarifa-preimpresion.edit", "tarifa-preimpresion.delete", @@ -73,22 +81,28 @@ const SK_PERMISSION_MATRIX = [ "roles-permisos.edit", "roles-permisos.delete", "roles-permisos.menu", + "ubicaciones.create", + "ubicaciones.edit", + "ubicaciones.delete", + "ubicaciones.menu", + "series-facturas.create", + "series-facturas.edit", + "series-facturas.delete", + "series-facturas.menu", ], "cliente-admin" => [ + "perfil.edit", + "perfil.menu", "presupuesto-cliente.create", "presupuesto-cliente.edit", "presupuesto-cliente.delete", "presupuesto-cliente.menu", - "usuarios.create", - "usuarios.edit", - "usuarios.delete", - "usuarios.menu", ], "cliente-editor" => [ - "presupuesto.create", - "presupuesto.edit", - "presupuesto.delete", - "presupuesto.menu", + "presupuesto-cliente.create", + "presupuesto-cliente.edit", + "presupuesto-cliente.delete", + "presupuesto-cliente.menu", ], "comercial" => [ "token.token", diff --git a/ci4/app/Config/RBAC/permissions.php b/ci4/app/Config/RBAC/permissions.php index 8f81b5e5..eb5f7f39 100644 --- a/ci4/app/Config/RBAC/permissions.php +++ b/ci4/app/Config/RBAC/permissions.php @@ -9,6 +9,10 @@ const SK_PERMISSIONS = [ 'plantilla-tarifa.edit' => 'Can edit', 'plantilla-tarifa.delete' => 'Can delete', 'plantilla-tarifa.menu' => 'Menu shall be visualize', + 'perfil.create' => 'Can create', + 'perfil.edit' => 'Can edit', + 'perfil.delete' => 'Can delete', + 'perfil.menu' => 'Menu shall be visualize', 'presupuesto.create' => 'Can create', 'presupuesto.edit' => 'Can edit', 'presupuesto.delete' => 'Can delete', @@ -77,4 +81,12 @@ const SK_PERMISSIONS = [ 'roles-permisos.edit' => 'Can edit', 'roles-permisos.delete' => 'Can delete', 'roles-permisos.menu' => 'Menu shall be visualize', + 'ubicaciones.create' => 'Can create', + 'ubicaciones.edit' => 'Can edit', + 'ubicaciones.delete' => 'Can delete', + 'ubicaciones.menu' => 'Menu shall be visualize', + 'series-facturas.create' => 'Can create', + 'series-facturas.edit' => 'Can edit', + 'series-facturas.delete' => 'Can delete', + 'series-facturas.menu' => 'Menu shall be visualize', ]; diff --git a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php index 6218c09d..dd0b609c 100755 --- a/ci4/app/Controllers/Presupuestos/Presupuestocliente.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestocliente.php @@ -72,9 +72,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController 'pageTitle' => lang('Presupuestos.presupuestos'), ]; - if (auth()->user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor')) { - $clienteId = 999; // Fijo hasta desarollar clientes usuarios + // 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 = 0; } @@ -87,8 +89,10 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController public function add() { // Se obtiene el cliente ID a partir del usuario de la sesion - $clienteId = 999; // Fijo hasta desarollar clientes usuarios - + $model_user = model('App\Models\Usuarios\UserModel'); + $user = $model_user->find(auth()->user()->id); + $clienteId = $user->cliente_id; + $presupuestoEntity = isset($sanitizedData) ? new PresupuestoEntity($sanitizedData) : new PresupuestoEntity(); $presupuestoEntity->clienteId = $clienteId; @@ -111,10 +115,9 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $datosPresupuesto->tipo_libro = ""; $datosPresupuesto->color_impresion = 'negro'; - $datosPresupuesto->calidad_impresion = 'estandar'; $datosPresupuesto->tapa = 'blanda'; - $datosPresupuesto->clienteList = $this->getClienteListItems($presupuestoEntity->cliente_id ?? null); + $datosPresupuesto->clienteList = $this->getClienteListItems($clienteId ?? null); $presupuestoEntity->estado_id = 1; $this->viewData['formAction'] = 'add'; @@ -123,6 +126,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $this->viewData['presupuestoEntity'] = $presupuestoEntity; $this->viewData['datosPresupuesto'] = $datosPresupuesto; + $this->viewData['clienteId'] = $clienteId; $this->viewData['boxTitle'] = lang('Basic.global.addNew') . ' ' . $this->viewData['pageTitle'] . ' ' . lang('Basic.global.addNewSuffix'); @@ -132,7 +136,6 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController public function edit($requestedId = null) { - if ($requestedId == null) : return $this->redirect2listView(); endif; @@ -144,6 +147,11 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController return $this->redirect2listView('sweet-error', $message); endif; + // 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; + $datosPresupuesto = (object)array(); $datosPresupuesto->POD = model('App\Models\Configuracion\ConfiguracionSistemaModel')->getPOD(); $datosPresupuesto->paisList = model('App\Models\Configuracion\PaisModel')->getAllForMenu('id, nombre', 'nombre', true); @@ -162,7 +170,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $datosPresupuesto->acabadosSobrecubierta = $this->getAcabadosSobrecubierta(); $datosPresupuesto->tipo_libro = $this->getTipoLibro($presupuestoEntity->tipo_impresion_id ?? null); - [$datosPresupuesto->color_impresion, $datosPresupuesto->calidad_impresion] = + $datosPresupuesto->color_impresion = $this->getTipoInterior($presupuestoEntity->id ?? null); $datosPresupuesto->tapa = $this->getTapa($presupuestoEntity->tipo_impresion_id ?? null); @@ -184,6 +192,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $this->viewData['presupuestoEntity'] = $presupuestoEntity; $this->viewData['datosPresupuesto'] = $datosPresupuesto; + $this->viewData['clienteId'] = $clienteId; // Si se ha llamado a esta funcion porque se ha duplicado el presupuesto // se actualiza la bbdd para que sólo ejecute algunas funciones una vez @@ -280,7 +289,7 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController if ($this->request->isAJAX()) { $reqData = $this->request->getPost(); - $clienteId = $reqData['clienteId'] ?? 0; + $clienteId = $reqData['cliente'] ?? 0; if (!isset($reqData['draw']) || !isset($reqData['columns'])) { $errstr = 'No data available in response to this specific request.'; @@ -684,6 +693,14 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $unidades_calculo, $direccion['tipo'] == 'cajas' ? 0 : 1 ); + + if (count($coste_envio) > 0) { + $coste = floatval($coste_envio[0]->coste); + $margen = ($coste * floatval($coste_envio[0]->margen)) / 100.0; + $coste -= $margen; + $resultado_presupuesto['info']['totales'][$i]['coste_envio'] += $coste; + $resultado_presupuesto['info']['totales'][$i]['margen_envio'] += $margen; + } } catch(Exception $e){ return $this->respond([ @@ -692,14 +709,6 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $csrfTokenName => $newTokenHash ]); } - - if (count($coste_envio) > 0) { - $coste = floatval($coste_envio[0]->coste); - $margen = ($coste * floatval($coste_envio[0]->margen)) / 100.0; - $coste -= $margen; - $resultado_presupuesto['info']['totales'][$i]['coste_envio'] += $coste; - $resultado_presupuesto['info']['totales'][$i]['margen_envio'] += $margen; - } } } @@ -773,10 +782,14 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController if ($servicio->tarifa_id == 3 || $servicio->tarifa_id == 5 || $servicio->tarifa_id == 16) { // Servicios acabado $this->guardarServicio($id, $servicio, 'acabado'); - } else if ($servicio->tarifa_id == 24 || $servicio->tarifa_id == 9) { + } else if ($servicio->tarifa_id == 24 ) { + // Servicios preimpresion + $this->guardarServicio($id, $servicio, 'preimpresion'); + } else if ($servicio->tarifa_id == 9) { // Servicios extra $this->guardarServicio($id, $servicio, 'extra'); - } else if ($servicio->tarifa_id == 62) { + } + else if ($servicio->tarifa_id == 62) { // Servicios manipulado $this->guardarServicio($id, $servicio, 'manipulado'); } @@ -1466,7 +1479,22 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $totalServicios += floatval($resultado[0]->total); $margenServicios += floatval($resultado[0]->total) * floatval($resultado[0]->margen) / 100.0; } - } else if (intval($servicio) == 24 || intval($servicio) == 9) { + } else if (intval($servicio) == 24) { + // Servicios preimpresion (Ferro) + $resultado = PresupuestoCLienteService::getServiciosPreimpresion([ + 'tarifa_id' => $servicio, + ]); + array_push($serviciosAutomaticos, $resultado[0]); + if ($resultado[0]->precio <= 0) + $error->servicios = lang('Presupuestos.errores.errorPresupuesto'); + + $coste_servicios += floatval($resultado[0]->precio); + if ($extra_info) { + $totalServicios += floatval($resultado[0]->precio); + $margenServicios += floatval($resultado[0]->precio) * floatval($resultado[0]->margen) / 100.0; + } + } + if(intval($servicio) == 9) { // Servicios preimpresion $resultado = PresupuestoCLienteService::getServiciosExtra([ 'tarifa_id' => $servicio, @@ -1743,7 +1771,17 @@ class Presupuestocliente extends \App\Controllers\BaseResourceController $color = 'color'; } } - return [$color, $calidad]; + + $tipo = "negro"; + + if($calidad == 'premium' && $color=='negro') + $tipo = "negroHq"; + else if ($calidad == 'estandar' && $color=='color') + $tipo = "color"; + else if ($calidad == 'premium' && $color=='color') + $tipo = "colorHq"; + + return $tipo; } protected function getTapa($tipo_impresion_id) diff --git a/ci4/app/Language/es/Presupuestos.php b/ci4/app/Language/es/Presupuestos.php index 9e8b5c4e..5fc672eb 100755 --- a/ci4/app/Language/es/Presupuestos.php +++ b/ci4/app/Language/es/Presupuestos.php @@ -59,6 +59,7 @@ return [ 'numeroEdicion' => 'Número de edición', 'isbn' => 'ISBN', 'referenciaCliente' => 'Referencia del cliente', + 'referenciaCliente2' => 'Referencia', 'papelFormatoId' => "Tamaño", 'papelFormatoPersonalizado' => 'Tamaño personalizado', 'papelFormatoAncho' => 'Ancho', diff --git a/ci4/app/Models/Presupuestos/PresupuestoModel.php b/ci4/app/Models/Presupuestos/PresupuestoModel.php index 7d690433..b9e48761 100755 --- a/ci4/app/Models/Presupuestos/PresupuestoModel.php +++ b/ci4/app/Models/Presupuestos/PresupuestoModel.php @@ -34,7 +34,6 @@ class PresupuestoModel extends \App\Models\BaseModel 0 => "t1.id", 1 => "t1.updated_at", 2 => "t7.codigo", - 3 => "t2.nombre", 4 => "t1.titulo", 5 => "t1.paginas", 6 => "t1.tirada", diff --git a/ci4/app/Models/Presupuestos/PresupuestoServiciosExtraModel.php b/ci4/app/Models/Presupuestos/PresupuestoServiciosExtraModel.php index e161455e..60927b0e 100755 --- a/ci4/app/Models/Presupuestos/PresupuestoServiciosExtraModel.php +++ b/ci4/app/Models/Presupuestos/PresupuestoServiciosExtraModel.php @@ -63,7 +63,7 @@ class PresupuestoServiciosExtraModel extends \App\Models\BaseModel else{ $ret_array[] = (object)[ 'tarifa_id'=> $tarifa_extra_id, - 'tarifa_nombre'=> $modelTarifa->getNombreTarifaPreimpresion($tarifa_extra_id)[0]->nombre, + 'tarifa_nombre'=> $modelTarifa->getNombreTarifaExtra($tarifa_extra_id)[0]->nombre, 'precio' => 0, 'margen' => 0, ]; diff --git a/ci4/app/Models/Usuarios/UserModel.php b/ci4/app/Models/Usuarios/UserModel.php index 0de24e85..56b34f77 100755 --- a/ci4/app/Models/Usuarios/UserModel.php +++ b/ci4/app/Models/Usuarios/UserModel.php @@ -3,7 +3,7 @@ namespace App\Models\Usuarios; class UserModel extends \App\Models\BaseModel { - protected $table = "auth_user"; + protected $table = "users"; /** * Whether primary key uses auto increment. @@ -16,29 +16,21 @@ class UserModel extends \App\Models\BaseModel protected $createdField = 'created_at'; protected $updatedField = 'updated_at'; - protected $primaryKey = "id_user"; + protected $primaryKey = "id"; protected $allowedFields = [ - "group", + "username", "first_name", "last_name", - "date_birth", - "address", - "city", - "state", - "country", - "zip_code", - "mobile", - "email", - "password", - "last_ip", - "last_access", - "picture", - "language", - "blocked", - "email_confirmed", + "client_id", "status", - "token", + "status_message", + "active", + "country", + "last_active", + "created_at", + "updated_at", + "deleted_at", ]; protected $returnType = "App\Entities\Usuarios\UserEntity"; diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/_disenioLibroItems.php b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/_disenioLibroItems.php index 23afd514..66de6299 100644 --- a/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/_disenioLibroItems.php +++ b/ci4/app/Views/themes/vuexy/form/presupuestos/cliente/_disenioLibroItems.php @@ -16,7 +16,7 @@