diff --git a/ci4/app/Controllers/Tarifas/Tarifasenviosprecios.php b/ci4/app/Controllers/Tarifas/Tarifasenviosprecios.php index 6284a4a4..0f88a868 100644 --- a/ci4/app/Controllers/Tarifas/Tarifasenviosprecios.php +++ b/ci4/app/Controllers/Tarifas/Tarifasenviosprecios.php @@ -253,7 +253,7 @@ class Tarifasenviosprecios extends \App\Controllers\GoBaseResourceController { ->validator('Validate::numeric', array( 'message' => lang('TarifasEnviosPrecios.validation.precio_adicional.decimal')) ), - Field::inst('zona_envio_id'), + Field::inst('tarifa_envio_id'), Field::inst('proveedor_id'), Field::inst('user_created_id'), Field::inst('created_at'), @@ -272,7 +272,7 @@ class Tarifasenviosprecios extends \App\Controllers\GoBaseResourceController { $process_data['peso_max'] = $data['data'][$pkey]['peso_max']; $process_data['proveedor_id'] = $data['data'][$pkey]['proveedor_id']; $process_data['tipo_envio'] = $data['data'][$pkey]['tipo_envio']; - $response = $this->model->checkIntervals($process_data, $pkey, $data['data'][$pkey]['zona_envio_id']); + $response = $this->model->checkIntervals($process_data, $pkey, $data['data'][$pkey]['tarifa_envio_id']); // No se pueden duplicar valores al crear o al editar if (!empty($response)) { return $response; @@ -333,14 +333,14 @@ class Tarifasenviosprecios extends \App\Controllers\GoBaseResourceController { $order = TarifaEnvioPrecioModel::SORTABLE[$requestedOrder > 0 ? $requestedOrder : 1]; $dir = $reqData['order']['0']['dir'] ?? 'asc'; - $zona_envio_id = $reqData['zona_envio_id'] ?? -1; + $tarifa_envio_id = $reqData['tarifa_envio_id'] ?? -1; - $resourceData = $this->model->getResource($search, $zona_envio_id)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject(); + $resourceData = $this->model->getResource($search, $tarifa_envio_id)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject(); return $this->respond(Collection::datatable( $resourceData, $this->model->getResource()->countAllResults(), - $this->model->getResource($search, $zona_envio_id)->countAllResults() + $this->model->getResource($search, $tarifa_envio_id)->countAllResults() )); } else { return $this->failUnauthorized('Invalid request', 403); @@ -427,7 +427,6 @@ class Tarifasenviosprecios extends \App\Controllers\GoBaseResourceController { protected function getTipoEnvioOptions() { $tipoEnvioOptions = [ '' => lang('Basic.global.pleaseSelect'), - 'a domicilio' => 'a domicilio', 'cajas' => 'cajas', 'palets' => 'palets', ]; diff --git a/ci4/app/Entities/Tarifas/TarifaEnvioPrecioEntity.php b/ci4/app/Entities/Tarifas/TarifaEnvioPrecioEntity.php index 2b52b4ca..097d70bf 100644 --- a/ci4/app/Entities/Tarifas/TarifaEnvioPrecioEntity.php +++ b/ci4/app/Entities/Tarifas/TarifaEnvioPrecioEntity.php @@ -14,6 +14,7 @@ class TarifaEnvioPrecioEntity extends \CodeIgniter\Entity\Entity "peso_max" => null, "precio" => null, "precio_adicional" => 0, + "margen" => 0, "user_created_id" => 0, "user_updated_id" => 0, "is_deleted" => 0, @@ -27,6 +28,7 @@ class TarifaEnvioPrecioEntity extends \CodeIgniter\Entity\Entity "peso_max" => "float", "precio" => "float", "precio_adicional" => "float", + "margen" => "float", "user_created_id" => "int", "user_updated_id" => "int", "is_deleted" => "int", diff --git a/ci4/app/Entities/Tarifas/TarifaEnvioZonaEntity.php b/ci4/app/Entities/Tarifas/TarifaEnvioZonaEntity.php index 85907228..3de29e0b 100644 --- a/ci4/app/Entities/Tarifas/TarifaEnvioZonaEntity.php +++ b/ci4/app/Entities/Tarifas/TarifaEnvioZonaEntity.php @@ -8,6 +8,7 @@ class TarifaEnvioZonaEntity extends \CodeIgniter\Entity\Entity protected $attributes = [ "id" => null, "tarifa_envio_id" => null, + "nombre" => "", "cp_inicial" => null, "cp_final" => null, "importe_fijo" => 0, diff --git a/ci4/app/Language/en/TarifasEnviosPrecios.php b/ci4/app/Language/en/TarifasEnviosPrecios.php index e58a12c2..626e62cc 100644 --- a/ci4/app/Language/en/TarifasEnviosPrecios.php +++ b/ci4/app/Language/en/TarifasEnviosPrecios.php @@ -15,6 +15,7 @@ return [ 'pesoMin' => 'Min Weight', 'precio' => 'Price', 'precioAdicional' => 'Additional Price', + 'margen' => 'Margin', 'proveedorId' => 'Provider', 'tarifaEnvioId' => 'Shipping Rate', 'tarifaEnvioPrecio' => 'Weight and Cost', @@ -52,6 +53,12 @@ return [ ], + 'margen' => [ + 'decimal' => 'The field must contain a decimal number.', + 'required' => 'The field is required.', + + ], + 'tipo_envio' => [ 'in_list' => 'The field must be one of the are included in the list.', 'required' => 'The field is required.', diff --git a/ci4/app/Language/en/TarifasEnviosZonas.php b/ci4/app/Language/en/TarifasEnviosZonas.php index 137ae7cd..6966ba4c 100644 --- a/ci4/app/Language/en/TarifasEnviosZonas.php +++ b/ci4/app/Language/en/TarifasEnviosZonas.php @@ -3,6 +3,7 @@ return [ + 'nombre' => 'Name', 'cpFinal' => 'Final Postcode', 'cpInicial' => 'Initial Postcode', 'createdAt' => 'Created At', @@ -20,6 +21,12 @@ return [ 'userCreatedId' => 'User Created ID', 'userUpdatedId' => 'User Updated ID', 'validation' => [ + 'nombre' => [ + 'max_length' => 'The field cannot exceed 50 characters in length.', + 'required' => 'The field is required.', + + ], + 'cp_final' => [ 'max_length' => 'The field cannot exceed 10 characters in length.', 'required' => 'The field is required.', diff --git a/ci4/app/Language/es/TarifasEnviosPrecios.php b/ci4/app/Language/es/TarifasEnviosPrecios.php index c2af4492..737b6951 100644 --- a/ci4/app/Language/es/TarifasEnviosPrecios.php +++ b/ci4/app/Language/es/TarifasEnviosPrecios.php @@ -3,7 +3,6 @@ return [ - 'aDomicilio' => 'A domicilio', 'cajas' => 'Cajas', 'createdAt' => 'Created At', 'deletedAt' => 'Deleted At', @@ -15,6 +14,7 @@ return [ 'pesoMin' => 'Peso Min', 'precio' => 'Precio peso mín.', 'precioAdicional' => 'Precio Kg Adicional', + 'margen' => 'Margen', 'proveedorId' => 'Proveedor', 'tarifaEnvioId' => 'Tarifa Envío', 'tarifaEnvioPrecio' => 'Peso y Precio', @@ -52,6 +52,12 @@ return [ ], + 'margen' => [ + 'decimal' => 'El campo debe contener un número decimal.', + 'required' => 'El campo es obligatorio.', + + ], + 'tipo_envio' => [ 'in_list' => 'El campo debe ser uno de la lista.', 'required' => 'El campo es obligatorio.', diff --git a/ci4/app/Language/es/TarifasEnviosZonas.php b/ci4/app/Language/es/TarifasEnviosZonas.php index 9421c1df..02df8c01 100644 --- a/ci4/app/Language/es/TarifasEnviosZonas.php +++ b/ci4/app/Language/es/TarifasEnviosZonas.php @@ -3,6 +3,7 @@ return [ + 'nombre' => 'Nombre', 'cpFinal' => 'CP Final', 'cpInicial' => 'CP Inicial', 'createdAt' => 'Created At', @@ -20,6 +21,12 @@ return [ 'userCreatedId' => 'User Created ID', 'userUpdatedId' => 'User Updated ID', 'validation' => [ + 'nombre' => [ + 'max_length' => 'El campo no puede exceder 50 caracteres en longitud.', + 'required' => 'El campo es obligatorio.', + + ], + 'cp_final' => [ 'max_length' => 'El campo no puede exceder 10 caracteres en longitud.', 'required' => 'El campo es obligatorio.', diff --git a/ci4/app/Models/Tarifas/TarifaEnvioPrecioModel.php b/ci4/app/Models/Tarifas/TarifaEnvioPrecioModel.php index b7cb9f50..8d76bbd4 100644 --- a/ci4/app/Models/Tarifas/TarifaEnvioPrecioModel.php +++ b/ci4/app/Models/Tarifas/TarifaEnvioPrecioModel.php @@ -18,7 +18,8 @@ class TarifaEnvioPrecioModel extends \App\Models\GoBaseModel 2 => "t1.peso_min", 3 => "t1.peso_max", 4 => "t1.precio", - 5 => "t1.precio_adicional" + 5 => "t1.precio_adicional", + 5 => "t1.margen" ]; protected $allowedFields = [ @@ -29,6 +30,7 @@ class TarifaEnvioPrecioModel extends \App\Models\GoBaseModel "peso_max", "precio", "precio_adicional", + "margen", "deleted_at", "is_deleted", ]; @@ -60,9 +62,13 @@ class TarifaEnvioPrecioModel extends \App\Models\GoBaseModel "label" => "TarifasEnviosPrecios.precioAdicional", "rules" => "required|decimal", ], + "margen" => [ + "label" => "TarifasEnviosPrecios.margen", + "rules" => "required|decimal", + ], "tipo_envio" => [ "label" => "TarifasEnviosPrecios.tipoEnvio", - "rules" => "required|in_list[a domicilio,cajas,palets]", + "rules" => "required|in_list[cajas,palets]", ], ]; @@ -83,6 +89,10 @@ class TarifaEnvioPrecioModel extends \App\Models\GoBaseModel "decimal" => "TarifasEnviosPrecios.validation.precio_adicional.decimal", "required" => "TarifasEnviosPrecios.validation.precio_adicional.required", ], + "margen" => [ + "decimal" => "TarifasEnviosPrecios.margen.margen.decimal", + "required" => "TarifasEnviosPrecios.margen.margen.required", + ], "tipo_envio" => [ "in_list" => "TarifasEnviosPrecios.validation.tipo_envio.in_list", "required" => "TarifasEnviosPrecios.validation.tipo_envio.required", @@ -116,17 +126,17 @@ class TarifaEnvioPrecioModel extends \App\Models\GoBaseModel * * @return \CodeIgniter\Database\BaseBuilder */ - public function getResource(string $search = "", $zona_envio_id = -1) + public function getResource(string $search = "", $tarifa_envio_id = -1) { $builder = $this->db ->table($this->table . " t1") ->select( "t1.id AS id, t1.tipo_envio AS tipo_envio, t1.peso_min AS peso_min, t1.peso_max AS peso_max, t1.precio AS precio, - t1.precio_adicional AS precio_adicional, t2.id AS tarifa_envio, t3.id AS proveedor_id, t3.nombre AS proveedor" + t1.precio_adicional AS precio_adicional, t1.margen AS margen, t2.id AS tarifa_envio, t3.id AS proveedor_id, t3.nombre AS proveedor" ); - $builder->join("tarifas_envios_zonas t2", "t1.zona_envio_id = t2.id", "left"); + $builder->join("tarifas_envios_zonas t2", "t1.tarifa_envio_id = t2.id", "left"); $builder->join("lg_proveedores t3", "t1.proveedor_id = t3.id", "left"); - $builder->where("t1.zona_envio_id", $zona_envio_id); + $builder->where("t1.tarifa_envio_id", $tarifa_envio_id); //JJO $builder->where("t1.is_deleted", 0); @@ -140,12 +150,14 @@ class TarifaEnvioPrecioModel extends \App\Models\GoBaseModel ->orLike("t1.peso_max", $search) ->orLike("t1.precio", $search) ->orLike("t1.precio_adicional", $search) + ->orLike("t1.margen", $search) ->orLike("t3.nombre", $search) ->orLike("t1.tipo_envio", $search) ->orLike("t1.peso_min", $search) ->orLike("t1.peso_max", $search) ->orLike("t1.precio", $search) ->orLike("t1.precio_adicional", $search) + ->orLike("t1.margen", $search) ->orLike("t3.nombre", $search) ->groupEnd(); } @@ -163,7 +175,7 @@ class TarifaEnvioPrecioModel extends \App\Models\GoBaseModel ->table($this->table) ->select("id, proveedor_id, tipo_envio, peso_min, peso_max") ->where("is_deleted", 0) - ->where("zona_envio_id", $zona_id) + ->where("tarifa_envio_id", $zona_id) ->get()->getResultObject(); @@ -190,7 +202,7 @@ class TarifaEnvioPrecioModel extends \App\Models\GoBaseModel ->table($this->table) ->set(['deleted_at' => $datetime->format('Y-m-d H:i:s'), 'is_deleted' => $delete_flag]) - ->where('zona_envio_id',$zona_id) + ->where('tarifa_envio_id',$zona_id) ->update(); return $builder; diff --git a/ci4/app/Models/Tarifas/TarifaEnvioZonaModel.php b/ci4/app/Models/Tarifas/TarifaEnvioZonaModel.php index f6c8e6d4..e2da9b9b 100644 --- a/ci4/app/Models/Tarifas/TarifaEnvioZonaModel.php +++ b/ci4/app/Models/Tarifas/TarifaEnvioZonaModel.php @@ -13,12 +13,13 @@ class TarifaEnvioZonaModel extends \App\Models\GoBaseModel protected $useAutoIncrement = true; const SORTABLE = [ - 0 => "t1.cp_inicial", - 1 => "t1.cp_final", - 2 => "t1.importe_fijo", + 0 => "t1.nombre", + 1 => "t1.cp_inicial", + 2 => "t1.cp_final", + 3 => "t1.importe_fijo", ]; - protected $allowedFields = ["tarifa_envio_id", "cp_inicial", "cp_final", "importe_fijo", "is_deleted", "deleted_at"]; + protected $allowedFields = ["tarifa_envio_id", "nombre", "cp_inicial", "cp_final", "importe_fijo", "is_deleted", "deleted_at"]; protected $returnType = "App\Entities\Tarifas\TarifaEnvioZonaEntity"; protected $useTimestamps = true; @@ -31,6 +32,11 @@ class TarifaEnvioZonaModel extends \App\Models\GoBaseModel public static $labelField = "tarifa_envio_id"; protected $validationRules = [ + "nombre" => [ + "label" => "TarifasEnviosZonas.nombre", + "rules" => "trim|required|max_length[50]", + ], + "cp_final" => [ "label" => "TarifasEnviosZonas.cpFinal", "rules" => "trim|required|max_length[10]", @@ -46,6 +52,10 @@ class TarifaEnvioZonaModel extends \App\Models\GoBaseModel ]; protected $validationMessages = [ + "nombre" => [ + "max_length" => "TarifasEnviosZonas.validation.nombre.max_length", + "required" => "TarifasEnviosZonas.validation.nombre.required", + ], "cp_final" => [ "max_length" => "TarifasEnviosZonas.validation.cp_final.max_length", "required" => "TarifasEnviosZonas.validation.cp_final.required", @@ -93,7 +103,7 @@ class TarifaEnvioZonaModel extends \App\Models\GoBaseModel $builder = $this->db ->table($this->table . " t1") ->select( - "t1.id as id, t1.cp_inicial AS cp_inicial, t1.cp_final AS cp_final, t1.importe_fijo AS importe_fijo, t2.id AS tarifa_envio" + "t1.id as id, t1.nombre AS nombre, t1.cp_inicial AS cp_inicial, t1.cp_final AS cp_final, t1.importe_fijo AS importe_fijo, t2.id AS tarifa_envio" ); $builder->join("lg_tarifas_envios t2", "t1.tarifa_envio_id = t2.id", "left"); $builder->where("t1.tarifa_envio_id", $tarifa_envio_id); @@ -105,9 +115,11 @@ class TarifaEnvioZonaModel extends \App\Models\GoBaseModel ? $builder : $builder ->groupStart() - ->like("t1.cp_inicial", $search) + ->like("t1.nombre", $search) + ->orLike("t1.cp_inicial", $search) ->orLike("t1.cp_final", $search) ->orLike("t1.importe_fijo", $search) + ->orLike("t1.nombre", $search) ->orLike("t1.cp_inicial", $search) ->orLike("t1.cp_final", $search) ->orLike("t1.importe_fijo", $search) diff --git a/ci4/app/Views/themes/backend/vuexy/form/tarifas/envios/_tarifaEnvioFormItems.php b/ci4/app/Views/themes/backend/vuexy/form/tarifas/envios/_tarifaEnvioFormItems.php index 3950f782..a8bcbd97 100644 --- a/ci4/app/Views/themes/backend/vuexy/form/tarifas/envios/_tarifaEnvioFormItems.php +++ b/ci4/app/Views/themes/backend/vuexy/form/tarifas/envios/_tarifaEnvioFormItems.php @@ -1,8 +1,16 @@