diff --git a/ci4/app/Controllers/Tarifas/Acabados/TarifaAcabados.php b/ci4/app/Controllers/Tarifas/Acabados/TarifaAcabados.php index 3c1c7236..776be153 100644 --- a/ci4/app/Controllers/Tarifas/Acabados/TarifaAcabados.php +++ b/ci4/app/Controllers/Tarifas/Acabados/TarifaAcabados.php @@ -5,6 +5,9 @@ use App\Entities\Tarifas\Acabados\TarifaAcabadoEntity; use App\Models\Collection; use App\Models\Tarifas\Acabados\TarifaAcabadoModel; +use App\Models\Compras\ProveedorModel; +use App\Models\Compras\ProveedorTipoModel; + class TarifaAcabados extends BaseResourceController { @@ -219,6 +222,7 @@ class TarifaAcabados extends BaseResourceController $this->viewData['tarifaacabadoEntity'] = $tarifaacabadoEntity; $this->viewData['formAction'] = route_to('updateTarifaAcabado', $id); + $this->viewData['proveedores'] = $this->getProveedores(); $this->viewData['boxTitle'] = lang('Basic.global.edit2') . ' ' . lang('Tarifaacabado.moduleTitle') . ' ' . lang('Basic.global.edit3'); @@ -305,4 +309,12 @@ class TarifaAcabados extends BaseResourceController } } + private function getProveedores(){ + $provTipoModel = new ProveedorTipoModel(); + $provModel = new ProveedorModel(); + + $tipoId = $provTipoModel->getTipoId("Acabados"); + return $provModel->getProvList($tipoId); + } + } diff --git a/ci4/app/Controllers/Tarifas/Acabados/TarifaAcabadosLineas.php b/ci4/app/Controllers/Tarifas/Acabados/TarifaAcabadosLineas.php index 15f7e901..b5e89b96 100644 --- a/ci4/app/Controllers/Tarifas/Acabados/TarifaAcabadosLineas.php +++ b/ci4/app/Controllers/Tarifas/Acabados/TarifaAcabadosLineas.php @@ -213,13 +213,14 @@ class TarifaAcabadosLineas extends \App\Controllers\BaseResourceController $id_TA = $reqData['id_tarifaacabado'] ?? -1; + $searchValues = get_filter_datatables_columns($reqData); - $resourceData = $this->model->getResource("", $id_TA)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject(); + $resourceData = $this->model->getResource($searchValues, $id_TA)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject(); return $this->respond(Collection::datatable( $resourceData, $this->model->getResource()->countAllResults(), - $this->model->getResource($search, $id_TA)->countAllResults() + $this->model->getResource($searchValues, $id_TA)->countAllResults() )); } else { return $this->failUnauthorized('Invalid request', 403); @@ -280,6 +281,7 @@ class TarifaAcabadosLineas extends \App\Controllers\BaseResourceController ->validator('Validate::notEmpty', array( 'message' => lang('TarifaAcabadoLineas.validation.margen.required')) ), + Field::inst('proveedor_id'), Field::inst('tarifa_acabado_id'), Field::inst('user_created_id'), Field::inst('created_at'), @@ -297,6 +299,7 @@ class TarifaAcabadosLineas extends \App\Controllers\BaseResourceController $process_data['tirada_min'] = $data['data'][$pkey]['tirada_min']; $process_data['tirada_max'] = $data['data'][$pkey]['tirada_max']; + $process_data['proveedor_id'] = $data['data'][$pkey]['proveedor_id']; $response = $this->model->checkIntervals($process_data, $pkey, $data['data'][$pkey]['tarifa_acabado_id']); // No se pueden duplicar valores al crear o al editar if (!empty($response)) { diff --git a/ci4/app/Entities/Tarifas/Acabados/TarifaAcabadoLineaEntity.php b/ci4/app/Entities/Tarifas/Acabados/TarifaAcabadoLineaEntity.php index fb9ad299..b50a8c7f 100644 --- a/ci4/app/Entities/Tarifas/Acabados/TarifaAcabadoLineaEntity.php +++ b/ci4/app/Entities/Tarifas/Acabados/TarifaAcabadoLineaEntity.php @@ -8,6 +8,7 @@ class TarifaAcabadoLineaEntity extends \CodeIgniter\Entity\Entity protected $attributes = [ "id" => null, "tarifa_acabado_id" => 0, + "proveedor_id" => 0, "tirada_min" => 0, "tirada_max" => 0, "precio_min" => 0, @@ -21,6 +22,7 @@ class TarifaAcabadoLineaEntity extends \CodeIgniter\Entity\Entity ]; protected $casts = [ "tarifa_acabado_id" => "int", + "proveedor_id" => "int", "tirada_min" => "int", "tirada_max" => "int", "precio_min" => "float", diff --git a/ci4/app/Language/en/TarifaAcabadoLineas.php b/ci4/app/Language/en/TarifaAcabadoLineas.php index 35361c39..71c6e647 100755 --- a/ci4/app/Language/en/TarifaAcabadoLineas.php +++ b/ci4/app/Language/en/TarifaAcabadoLineas.php @@ -6,6 +6,7 @@ return [ 'id' => 'ID', 'moduleTitle' => 'Finish rates Lines', 'deleteLine' => 'the selected register', + 'proveedor' => 'Provider', 'precioMax' => 'Max Price', 'precioMin' => 'Min Price', 'precioUnidad' => 'Price Unit', diff --git a/ci4/app/Language/es/TarifaAcabadoLineas.php b/ci4/app/Language/es/TarifaAcabadoLineas.php index 47b1b295..29b7ce58 100755 --- a/ci4/app/Language/es/TarifaAcabadoLineas.php +++ b/ci4/app/Language/es/TarifaAcabadoLineas.php @@ -6,6 +6,7 @@ return [ 'id' => 'ID', 'moduleTitle' => 'Tarifa Acabado Líneas', 'deleteLine' => 'el registro seleccionado', + 'proveedor' => 'Proveedor', 'precioMax' => 'Precio T. Mín', 'precioMin' => 'Precio T. Máx', 'precioUnidad' => 'Precio Unidad', diff --git a/ci4/app/Language/es/Tarifaencuadernacion.php b/ci4/app/Language/es/Tarifaencuadernacion.php index 6627cc2d..34c01087 100755 --- a/ci4/app/Language/es/Tarifaencuadernacion.php +++ b/ci4/app/Language/es/Tarifaencuadernacion.php @@ -13,6 +13,7 @@ return [ 'precioMax' => 'Precio T. Mín', 'precioMin' => 'Precio T. Máx', 'importeFijo' => 'Importe Fijo', + 'importeMin' => 'Importe mínimo', 'tarifaencuadernacion' => 'Tarifa Encuadernación', 'tarifaencuadernacionList' => 'Lista Tarifas Encuadernación', 'tarifasencuadernacion' => 'Tarifas Encuadernación', diff --git a/ci4/app/Models/Tarifas/Acabados/TarifaAcabadoLineaModel.php b/ci4/app/Models/Tarifas/Acabados/TarifaAcabadoLineaModel.php index 84e890cc..613fcd9f 100644 --- a/ci4/app/Models/Tarifas/Acabados/TarifaAcabadoLineaModel.php +++ b/ci4/app/Models/Tarifas/Acabados/TarifaAcabadoLineaModel.php @@ -1,6 +1,9 @@ "t1.tirada_min", - 1 => "t1.tirada_max", + 0 => "t3.nombre", + 1 => "t1.tirada_min", 2 => "t1.precio_min", - 3 => "t1.precio_max", - 4 => "t1.margen", + 3 => "t1.tirada_max", + 4 => "t1.precio_max", + 5 => "t1.margen", ]; protected $allowedFields = [ + "proveedor_id", "tirada_min", "tirada_max", "precio_min", @@ -126,12 +131,12 @@ class TarifaAcabadoLineaModel extends \App\Models\BaseModel * * @return \CodeIgniter\Database\BaseBuilder */ - public function getResource(string $search = "", $tarifa_acabado_id = -1) + public function getResource($search = [], $tarifa_acabado_id = -1) { $builder = $this->db ->table($this->table . " t1") ->select( - "t1.id AS id, t1.tirada_min AS tirada_min, t1.tirada_max AS tirada_max, t1.precio_min AS precio_min, t1.precio_max AS precio_max, t1.margen AS margen, t2.id AS tarifa_acabado" + "t1.id AS id, t1.proveedor_id AS proveedor_id, t3.nombre AS proveedor_nombre, t1.tirada_min AS tirada_min, t1.tirada_max AS tirada_max, t1.precio_min AS precio_min, t1.precio_max AS precio_max, t1.margen AS margen, t2.id AS tarifa_acabado" ); //JJO @@ -139,21 +144,42 @@ class TarifaAcabadoLineaModel extends \App\Models\BaseModel $builder->where("t1.is_deleted", 0); $builder->join("lg_tarifa_acabado t2", "t1.tarifa_acabado_id = t2.id", "left"); + $builder->join("lg_proveedores t3", "t1.proveedor_id = t3.id", "left"); - return empty($search) - ? $builder - : $builder - ->groupStart() - ->like("t1.tirada_min", $search) - ->orLike("t1.tirada_max", $search) - ->orLike("t1.precio_min", $search) - ->orLike("t1.precio_max", $search) - ->orLike("t1.tirada_min", $search) - ->orLike("t1.tirada_max", $search) - ->orLike("t1.precio_min", $search) - ->orLike("t1.precio_max", $search) - ->groupEnd(); + if (empty($search)) + return $builder; + else { + $builder->groupStart(); + foreach ($search as $col_search) { + if($col_search[0] != 0){ + $values = explode(",",$col_search[2]); + $min_val = floatval($values[0]); + $max_val = floatval($values[1]); + if(!is_nan($min_val) && !is_null($min_val) && strlen($values[0]) > 0){ + $builder->where(self::SORTABLE[$col_search[0]] . " >=", $min_val); + } + if(!is_nan($max_val) && !is_null($max_val) && strlen($values[1]) > 0){ + $builder->where(self::SORTABLE[$col_search[0]] . " <", $max_val); + } + } + else{ + $values = explode(",",$col_search[2]); + if(count($values) > 1){ + foreach ($values as $value) { + $builder->orWhere("t1.proveedor_id", $value); + } + } + else{ + $builder->where("t1.proveedor_id", $col_search[2]); + } + } + + } + $builder->groupEnd(); + + return $builder; + } } public function findLineasForTarifaAcabado(int $tarifaacabado_id){ @@ -181,6 +207,7 @@ class TarifaAcabadoLineaModel extends \App\Models\BaseModel ->select("id, tirada_min, tirada_max") ->where("is_deleted", 0) ->where("tarifa_acabado_id", $id_tarifa_acabado) + ->where("proveedor_id", $data["proveedor_id"]) ->get()->getResultObject(); diff --git a/ci4/app/Views/themes/vuexy/form/tarifas/acabado/viewTarifaAcabadoForm.php b/ci4/app/Views/themes/vuexy/form/tarifas/acabado/viewTarifaAcabadoForm.php index 658d1510..95c42367 100644 --- a/ci4/app/Views/themes/vuexy/form/tarifas/acabado/viewTarifaAcabadoForm.php +++ b/ci4/app/Views/themes/vuexy/form/tarifas/acabado/viewTarifaAcabadoForm.php @@ -45,12 +45,13 @@
| = lang('TarifaAcabadoLineas.proveedor') ?> | = lang('TarifaAcabadoLineas.tiradaMin') ?> | = lang('TarifaAcabadoLineas.precioMax') ?> | = lang('TarifaAcabadoLineas.tiradaMax') ?> | = lang('TarifaAcabadoLineas.precioMin') ?> | = lang('TarifaAcabadoLineas.margen') ?> | -+ | = lang('TarifaEncuadernacionTiradas.proveedor') ?> | = lang('TarifaEncuadernacionTiradas.tiradaMin') ?> | = lang('TarifaEncuadernacionTiradas.tiradaMax') ?> | -= lang('Tarifaencuadernacion.precioMin') ?> | += lang('Tarifaencuadernacion.importeMin') ?> | = lang('Tarifaencuadernacion.importeFijo') ?> | - + |
|---|