diff --git a/ci4/app/Controllers/Facturacion/Facturas.php b/ci4/app/Controllers/Facturacion/Facturas.php index d21c2bf2..b12c6506 100755 --- a/ci4/app/Controllers/Facturacion/Facturas.php +++ b/ci4/app/Controllers/Facturacion/Facturas.php @@ -41,6 +41,17 @@ class Facturas extends \App\Controllers\BaseResourceController public function index() { + 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 = 0; + } + + $this->viewData['cliente_id'] = $clienteId; + $this->viewData['usingClientSideDataTable'] = true; $this->viewData['pageSubTitle'] = lang('Basic.global.ManageAllRecords', [lang('Tarifaextra.tarifaextra')]); @@ -64,6 +75,17 @@ class Facturas extends \App\Controllers\BaseResourceController ['title' => lang("Facturas.facturaList"), 'route' => "javascript:void(0);", 'active' => true] ]; + 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 = 0; + } + + $viewData['cliente_id'] = $clienteId; + return view(static::$viewPath . 'viewFacturasList', $viewData); } @@ -105,6 +127,10 @@ class Facturas extends \App\Controllers\BaseResourceController $sanitizedData['user_updated_id'] = auth()->user()->id; $sanitizedData['user_created_id'] = auth()->user()->id; + + if(!$sanitizedData['creditoAsegurado']){ + $sanitizedData['creditoAsegurado'] = 0; + } if ($allData && $successfulResult = $this->canValidate()) : // if ($successfulResult = $this->validate($this->formValidationRules) ) : @@ -205,13 +231,14 @@ class Facturas extends \App\Controllers\BaseResourceController $requestedOrder = $reqData['order']['0']['column'] ?? 0; $order = FacturaModel::SORTABLE[$requestedOrder >= 0 ? $requestedOrder : 0]; $dir = $reqData['order']['0']['dir'] ?? 'asc'; + $cliente_id = $reqData['cliente_id'] ?? -1; - $resourceData = $this->model->getResource($search)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject(); + $resourceData = $this->model->getResource($search, $cliente_id)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject(); return $this->respond(Collection::datatable( $resourceData, - $this->model->getResource("")->countAllResults(), - $this->model->getResource($search)->countAllResults() + $this->model->getResource("", $cliente_id)->countAllResults(), + $this->model->getResource($search, $cliente_id)->countAllResults() )); } else { return $this->failUnauthorized('Invalid request', 403); diff --git a/ci4/app/Controllers/Pedidos/Pedido.php b/ci4/app/Controllers/Pedidos/Pedido.php index 6ff1ca79..5c499b73 100755 --- a/ci4/app/Controllers/Pedidos/Pedido.php +++ b/ci4/app/Controllers/Pedidos/Pedido.php @@ -40,6 +40,17 @@ class Pedido extends \App\Controllers\BaseResourceController public function index() { + 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; + } + + $this->viewData['cliente_id'] = $clienteId; + $this->viewData['usingClientSideDataTable'] = true; $this->viewData['pageSubTitle'] = lang('Basic.global.ManageAllRecords', [lang('Tarifaextra.tarifaextra')]); @@ -52,13 +63,24 @@ class Pedido extends \App\Controllers\BaseResourceController $viewData = [ 'currentModule' => static::$controllerSlug, 'pageSubTitle' => lang('Basic.global.ManageAllRecords', [lang('Pedidos.pedido')]), - 'presupuestoEntity' => new PedidoEntity(), + 'pedidoEntity' => new PedidoEntity(), 'usingServerSideDataTable' => true, 'pageTitle' => lang('Pedidos.Pedidos'), 'estadoPedidos' => 'activo', ['title' => lang("App.menu_pedidos"), 'route' => site_url('pedidos/todos'), 'active' => true] ]; + 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; + } + + $viewData['cliente_id'] = $clienteId; + return view(static::$viewPath . 'viewPedidosList', $viewData); } @@ -67,13 +89,24 @@ class Pedido extends \App\Controllers\BaseResourceController $viewData = [ 'currentModule' => static::$controllerSlug, 'pageSubTitle' => lang('Basic.global.ManageAllRecords', [lang('Pedidos.pedido')]), - 'presupuestoEntity' => new PedidoEntity(), + 'pedidoEntity' => new PedidoEntity(), 'usingServerSideDataTable' => true, 'pageTitle' => lang('Pedidos.Pedidos'), 'estadoPedidos' => 'finalizado', ['title' => lang("App.menu_pedidos"), 'route' => site_url('pedidos/todos'), 'active' => true] ]; + 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; + } + + $viewData['cliente_id'] = $clienteId; + return view(static::$viewPath . 'viewPedidosList', $viewData); } @@ -82,13 +115,24 @@ class Pedido extends \App\Controllers\BaseResourceController $viewData = [ 'currentModule' => static::$controllerSlug, 'pageSubTitle' => lang('Basic.global.ManageAllRecords', [lang('Pedidos.pedido')]), - 'presupuestoEntity' => new PedidoEntity(), + 'pedidoEntity' => new PedidoEntity(), 'usingServerSideDataTable' => true, 'pageTitle' => lang('Pedidos.Pedidos'), 'estadoPedidos' => 'cancelado', ['title' => lang("App.menu_pedidos"), 'route' => site_url('pedidos/todos'), 'active' => true] ]; + 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; + } + + $viewData['cliente_id'] = $clienteId; + return view(static::$viewPath . 'viewPedidosList', $viewData); } @@ -98,13 +142,24 @@ class Pedido extends \App\Controllers\BaseResourceController $viewData = [ 'currentModule' => static::$controllerSlug, 'pageSubTitle' => lang('Basic.global.ManageAllRecords', [lang('Pedidos.pedido')]), - 'presupuestoEntity' => new PedidoEntity(), + 'pedidoEntity' => new PedidoEntity(), 'usingServerSideDataTable' => true, 'pageTitle' => lang('Pedidos.Pedidos'), 'estadoPedidos' => 'todos', ['title' => lang("App.menu_pedidos"), 'route' => site_url('pedidos/todos'), 'active' => true] ]; + 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; + } + + $viewData['cliente_id'] = $clienteId; + return view(static::$viewPath . 'viewPedidosList', $viewData); } @@ -242,6 +297,7 @@ class Pedido extends \App\Controllers\BaseResourceController $order = PedidoModel::SORTABLE_TODOS[$requestedOrder >= 0 ? $requestedOrder : 0]; $dir = $reqData['order']['0']['dir'] ?? 'asc'; $estado = $reqData['estado'] ?? 'todos'; + $cliente_id = $reqData['cliente_id'] ?? -1; if($estado == 'todos') $estado = ''; $showTotal = $reqData['showTotal'] ?? false; @@ -249,9 +305,9 @@ class Pedido extends \App\Controllers\BaseResourceController $searchValues = get_filter_datatables_columns($reqData); $model_linea = model('\App\Models\Pedidos\PedidoLineaModel'); - $resourceData = $model_linea->getResource($searchValues, $estado)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject(); - $totalTirada = $model_linea->getSumOfTirada($searchValues, $estado, $start, $length); - $total = $model_linea->getSumOfTotalAceptado($searchValues, $estado, $start, $length); + $resourceData = $model_linea->getResource($searchValues, $estado, $cliente_id)->orderBy($order, $dir)->limit($length, $start)->get()->getResultObject(); + $totalTirada = $model_linea->getSumOfTirada($searchValues, $estado, $cliente_id, $start, $length); + $total = $model_linea->getSumOfTotalAceptado($searchValues, $estado, $cliente_id, $start, $length); $total2 = 0; if($showTotal){ $total2 = $model_linea->getTotalOfTotalAceptado(); diff --git a/ci4/app/Models/Facturas/FacturaModel.php b/ci4/app/Models/Facturas/FacturaModel.php index f79d5044..80cc59e6 100644 --- a/ci4/app/Models/Facturas/FacturaModel.php +++ b/ci4/app/Models/Facturas/FacturaModel.php @@ -72,7 +72,7 @@ class FacturaModel extends \App\Models\BaseModel { public static $labelField = "id"; - public function getResource(string $search = "") + public function getResource(string $search = "", $cliente_id=-1) { $builder = $this->db ->table($this->table . " t1") @@ -90,8 +90,16 @@ class FacturaModel extends \App\Models\BaseModel { $builder->join("formas_pago t4", "t3.forma_pago_id = t4.id", "left"); $builder->where("t1.deleted_at IS NULL"); + if(auth()->user()->inGroup("cliente-admin") || auth()->user()->inGroup("cliente-editor")) { + $builder->where("t1.estado", "validada"); + } + + if($cliente_id != -1) { + $builder->where("t1.cliente_id", $cliente_id); + } + $builder->groupBy("t1.id"); // Agrupa por id de la factura - + return empty($search) ? $builder : $builder diff --git a/ci4/app/Models/Pedidos/PedidoLineaModel.php b/ci4/app/Models/Pedidos/PedidoLineaModel.php index 44a9f946..19eef0d0 100644 --- a/ci4/app/Models/Pedidos/PedidoLineaModel.php +++ b/ci4/app/Models/Pedidos/PedidoLineaModel.php @@ -48,7 +48,7 @@ class PedidoLineaModel extends \App\Models\BaseModel public static $labelField = "id"; - public function getResource($search = [], $estado="") + public function getResource($search = [], $estado="", $cliente_id = -1) { $builder = $this->db ->table($this->table . " t1") @@ -75,6 +75,10 @@ class PedidoLineaModel extends \App\Models\BaseModel } } + if($cliente_id != -1) { + $builder->where("t3.cliente_id", $cliente_id); + } + if (empty($search)) return $builder; else { @@ -93,7 +97,7 @@ class PedidoLineaModel extends \App\Models\BaseModel } } - public function getSumOfTirada(array $search, $estado = '', $start = 0, $length = 5) + public function getSumOfTirada(array $search, $estado = '', $cliente_id=-1, $start = 0, $length = 5) { $builder = $this->db @@ -104,6 +108,9 @@ class PedidoLineaModel extends \App\Models\BaseModel $builder->join("presupuestos t3", "t1.presupuesto_id = t3.id", "left"); + if($cliente_id != -1) { + $builder->where("t3.cliente_id", $cliente_id); + } // Aplica los filtros de búsqueda y estado if (!empty($search)) { @@ -130,7 +137,7 @@ class PedidoLineaModel extends \App\Models\BaseModel return $builder->get()->getRow()->total_tirada; } - public function getSumOfTotalAceptado(array $search, $estado = '', $start = 0, $length = 5) + public function getSumOfTotalAceptado(array $search, $estado = '', $cliente_id=-1, $start = 0, $length = 5) { $builder = $this->db @@ -140,7 +147,9 @@ class PedidoLineaModel extends \App\Models\BaseModel $builder->join("pedidos t2", "t2.id = t1.pedido_id", "left"); $builder->join("presupuestos t3", "t1.presupuesto_id = t3.id", "left"); - + if($cliente_id != -1) { + $builder->where("t3.cliente_id", $cliente_id); + } // Aplica los filtros de búsqueda y estado if (!empty($search)) { diff --git a/ci4/app/Models/Presupuestos/BuscadorModel.php b/ci4/app/Models/Presupuestos/BuscadorModel.php index b6ca2f10..99caa4f5 100644 --- a/ci4/app/Models/Presupuestos/BuscadorModel.php +++ b/ci4/app/Models/Presupuestos/BuscadorModel.php @@ -139,6 +139,7 @@ class BuscadorModel extends \App\Models\BaseModel $builder->where("t1.is_deleted", 0); + if (empty($search)) return $builder; else { diff --git a/ci4/app/Views/themes/vuexy/form/facturas/_facturaCabeceraItems.php b/ci4/app/Views/themes/vuexy/form/facturas/_facturaCabeceraItems.php index 06227a6f..2abd8168 100644 --- a/ci4/app/Views/themes/vuexy/form/facturas/_facturaCabeceraItems.php +++ b/ci4/app/Views/themes/vuexy/form/facturas/_facturaCabeceraItems.php @@ -37,6 +37,7 @@ + user()->inGroup('cliente-admin') || auth()->user()->inGroup('cliente-editor'))) : ?>