2020namespace FacturaScripts \Core \Lib \ExtendedController ;
2121
2222use 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 ;
2329use FacturaScripts \Core \Tools ;
2430use FacturaScripts \Dinamic \Lib \BusinessDocumentGenerator ;
2531use 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