Skip to content

Commit d860bc4

Browse files
authored
Merge pull request #1754 from abdedarghal111/tarea3911
Tarea #3911: Implementar filtros de documentos en editCliente y editProveedor
2 parents cb18f28 + c877419 commit d860bc4

File tree

1 file changed

+67
-1
lines changed

1 file changed

+67
-1
lines changed

Core/Lib/ExtendedController/ComercialContactController.php

Lines changed: 67 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@
2020
namespace FacturaScripts\Core\Lib\ExtendedController;
2121

2222
use FacturaScripts\Core\Base\DataBase\DataBaseWhere;
23+
use FacturaScripts\Core\DataSrc\Almacenes;
24+
use FacturaScripts\Core\DataSrc\Divisas;
25+
use FacturaScripts\Core\DataSrc\Empresas;
26+
use FacturaScripts\Core\DataSrc\FormasPago;
27+
use FacturaScripts\Core\DataSrc\Series;
28+
use FacturaScripts\Core\Lib\InvoiceOperation;
2329
use FacturaScripts\Core\Tools;
2430
use FacturaScripts\Dinamic\Lib\BusinessDocumentGenerator;
2531
use FacturaScripts\Dinamic\Model\Cliente;
@@ -40,6 +46,65 @@ abstract class ComercialContactController extends EditController
4046

4147
private $logLevels = ['critical', 'error', 'info', 'notice', 'warning'];
4248

49+
protected function addCommonViewFilters(string $viewName, string $modelName): void
50+
{
51+
$listView = $this->listView($viewName);
52+
53+
$where = [new DataBaseWhere('tipodoc', $modelName)];
54+
$statusValues = $this->codeModel->all('estados_documentos', 'idestado', 'nombre', true, $where);
55+
56+
$listView->addFilterPeriod('date', 'period', 'fecha')
57+
->addFilterNumber('min-total', 'total', 'total', '>=')
58+
->addFilterNumber('max-total', 'total', 'total', '<=')
59+
->addFilterSelect('idestado', 'state', 'idestado', $statusValues);
60+
61+
if ($this->permissions->onlyOwnerData === false) {
62+
$users = $this->codeModel->all('users', 'nick', 'nick');
63+
if (count($users) > 1) {
64+
$listView->addFilterSelect('nick', 'user', 'nick', $users);
65+
}
66+
}
67+
68+
$companies = Empresas::codeModel();
69+
if (count($companies) > 2) {
70+
$listView->addFilterSelect('idempresa', 'company', 'idempresa', $companies);
71+
}
72+
73+
$warehouses = Almacenes::codeModel();
74+
if (count($warehouses) > 2) {
75+
$listView->addFilterSelect('codalmacen', 'warehouse', 'codalmacen', $warehouses);
76+
}
77+
78+
$series = Series::codeModel();
79+
if (count($series) > 2) {
80+
$listView->addFilterSelect('codserie', 'series', 'codserie', $series);
81+
}
82+
83+
$operations = [['code' => '', 'description' => '------']];
84+
foreach (InvoiceOperation::all() as $key => $value) {
85+
$operations[] = [
86+
'code' => $key,
87+
'description' => Tools::lang()->trans($value)
88+
];
89+
}
90+
$listView->addFilterSelect('operacion', 'operation', 'operacion', $operations);
91+
92+
$payMethods = FormasPago::codeModel();
93+
if (count($payMethods) > 2) {
94+
$listView->addFilterSelect('codpago', 'payment-method', 'codpago', $payMethods);
95+
}
96+
97+
$currencies = Divisas::codeModel();
98+
if (count($currencies) > 2) {
99+
$listView->addFilterSelect('coddivisa', 'currency', 'coddivisa', $currencies);
100+
}
101+
102+
$listView->addFilterCheckbox('totalrecargo', 'surcharge', 'totalrecargo', '!=', 0)
103+
->addFilterCheckbox('totalirpf', 'retention', 'totalirpf', '!=', 0)
104+
->addFilterCheckbox('totalsuplidos', 'supplied-amount', 'totalsuplidos', '!=', 0)
105+
->addFilterCheckbox('numdocs', 'has-attachments', 'numdocs', '!=', 0);
106+
}
107+
43108
/**
44109
* Set custom configuration when load main data
45110
*
@@ -154,6 +219,7 @@ protected function createLineView(string $viewName, string $model, string $label
154219
*/
155220
private function createListView(string $viewName, string $model, string $label, array $fields): void
156221
{
222+
// create view
157223
$this->addListView($viewName, $model, $label, 'fa-solid fa-copy')
158224
->addOrderBy(['codigo'], 'code')
159225
->addOrderBy(['fecha', 'hora'], 'date', 2)
@@ -166,7 +232,7 @@ private function createListView(string $viewName, string $model, string $label,
166232
$this->listView($viewName)->disableColumn($fields['linkfield'], true);
167233

168234
// filters
169-
$this->listView($viewName)->addFilterPeriod('period', 'date', 'fecha');
235+
$this->addCommonViewFilters($viewName, $model);
170236
}
171237

172238
/**

0 commit comments

Comments
 (0)