<?php
namespace App\Service;
class FilterService
{
# Funzioni filtri
static public function createFilter($request, $changes, $field){
if($request->query->get($field) !== null){
if($request->query->get($field) != $request->getSession()->get($request->get("_route")."_filters")[$field])
$changes = true;
return [$request->query->get($field), $changes];
}
if($request->getSession()->get($request->get("_route")."_filters") != null)
return [$request->getSession()->get($request->get("_route")."_filters")[$field], $changes];
return [null, $changes];
}
static public function getPageNumber($request, $changes){
if(!$changes){
if($request->query->get("page") !== null)
return intval($request->query->get("page"));
if($request->getSession()->get($request->get("_route")."_page") != null)
return intval($request->getSession()->get($request->get("_route")."_page"));
}
return 1;
}
static public function updateFilterSession($request, $changes, $filters, $tab){
$request->getSession()->set($request->get("_route")."_filters", $filters);
$request->getSession()->set($request->get("_route")."_page", FilterService::getPageNumber($request, $changes));
}
static public function getPageNumber2($request, $changes, $index){
if(!$changes){
if($request->query->get("page_".$index) !== null)
return intval($request->query->get("page_".$index));
if($request->getSession()->get($request->get("_route")."_page_".$index) != null)
return intval($request->getSession()->get($request->get("_route")."_page_".$index));
}
return 1;
}
static public function updateFilterSession2($request, $changes, $filters, $tab){
$request->getSession()->set($request->get("_route")."_filters", $filters);
$request->getSession()->set($request->get("_route")."_page_0", FilterService::getPageNumber2($request, $changes, '0'));
$request->getSession()->set($request->get("_route")."_page_1", FilterService::getPageNumber2($request, $changes, '1'));
$request->getSession()->set($request->get("_route")."_page_2", FilterService::getPageNumber2($request, $changes, '2'));
$request->getSession()->set($request->get("_route")."_page_3", FilterService::getPageNumber2($request, $changes, '3'));
}
# Admin
static public function companyFilter($request){
$changes = false;
[$filters['name'], $changes] = FilterService::createFilter($request, $changes, 'name');
[$filters['vat'], $changes] = FilterService::createFilter($request, $changes, 'vat');
[$filters['fiscalCode'], $changes] = FilterService::createFilter($request, $changes, 'fiscalCode');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function featureFilter($request){
$changes = false;
[$filters['name'], $changes] = FilterService::createFilter($request, $changes, 'name');
[$filters['category'], $changes] = FilterService::createFilter($request, $changes, 'category');
[$filters['group'], $changes] = FilterService::createFilter($request, $changes, 'group');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function licenseFilter($request){
$changes = false;
[$filters['company'], $changes] = FilterService::createFilter($request, $changes, 'company');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function orderFilter($request){
$changes = false;
[$filters['company'], $changes] = FilterService::createFilter($request, $changes, 'company');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function serviceFilter($request){
$changes = false;
[$filters['name'], $changes] = FilterService::createFilter($request, $changes, 'name');
[$filters['category'], $changes] = FilterService::createFilter($request, $changes, 'category');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function supplierFilter($request){
$changes = false;
[$filters['name'], $changes] = FilterService::createFilter($request, $changes, 'name');
[$filters['nickname'], $changes] = FilterService::createFilter($request, $changes, 'nickname');
[$filters['company'], $changes] = FilterService::createFilter($request, $changes, 'company');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
# User
static public function aliasCityFilter($request){
$changes = false;
[$filters['value'], $changes] = FilterService::createFilter($request, $changes, 'value');
[$filters['city'], $changes] = FilterService::createFilter($request, $changes, 'city');
[$filters['sortField'], $changes] = FilterService::createFilter($request, $changes, 'sortField');
[$filters['sortOrder'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function clientFilter($request){
$changes = false;
[$filters['code'], $changes] = FilterService::createFilter($request, $changes, 'code');
[$filters['nickname'], $changes] = FilterService::createFilter($request, $changes, 'nickname');
[$filters['address'], $changes] = FilterService::createFilter($request, $changes, 'address');
[$filters['termids'], $changes] = FilterService::createFilter($request, $changes, 'termids');
[$filters['phone'], $changes] = FilterService::createFilter($request, $changes, 'phone');
[$filters['sortField'], $changes] = FilterService::createFilter($request, $changes, 'sortField');
[$filters['sortOrder'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function interventionFilter($request){
$changes = false;
[$filters['date'], $changes] = FilterService::createFilter($request, $changes, 'date');
[$filters['ticket'], $changes] = FilterService::createFilter($request, $changes, 'ticket');
[$filters['termid'], $changes] = FilterService::createFilter($request, $changes, 'termid');
[$filters['client'], $changes] = FilterService::createFilter($request, $changes, 'client');
[$filters['city'], $changes] = FilterService::createFilter($request, $changes, 'city');
[$filters['province'], $changes] = FilterService::createFilter($request, $changes, 'province');
[$filters['supplier'], $changes] = FilterService::createFilter($request, $changes, 'supplier');
[$filters['operation'], $changes] = FilterService::createFilter($request, $changes, 'operation');
[$filters['technician'], $changes] = FilterService::createFilter($request, $changes, 'technician');
[$filters['operator'], $changes] = FilterService::createFilter($request, $changes, 'operator');
[$filters['outcomeType'], $changes] = FilterService::createFilter($request, $changes, 'outcomeType');
[$filters['outcome'], $changes] = FilterService::createFilter($request, $changes, 'outcome');
[$filters['billable'], $changes] = FilterService::createFilter($request, $changes, 'billable');
[$filters['extras'], $changes] = FilterService::createFilter($request, $changes, 'extras');
[$filters['sortField'], $changes] = FilterService::createFilter($request, $changes, 'sortField');
[$filters['sortOrder'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function interventionOutcomeFilter($request){
$changes = false;
[$filters['value'], $changes] = FilterService::createFilter($request, $changes, 'value');
[$filters['type'], $changes] = FilterService::createFilter($request, $changes, 'type');
[$filters['sortField'], $changes] = FilterService::createFilter($request, $changes, 'sortField');
[$filters['sortOrder'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function nameFilter($request){
$changes = false;
[$filters['name'], $changes] = FilterService::createFilter($request, $changes, 'name');
[$filters['sortField'], $changes] = FilterService::createFilter($request, $changes, 'sortField');
[$filters['sortOrder'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function nicknameFilter($request){
$changes = false;
[$filters['nickname'], $changes] = FilterService::createFilter($request, $changes, 'nickname');
[$filters['sortField'], $changes] = FilterService::createFilter($request, $changes, 'sortField');
[$filters['sortOrder'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function productFilter($request){
$changes = false;
[$filters['category'], $changes] = FilterService::createFilter($request, $changes, 'category');
[$filters['subcategory'], $changes] = FilterService::createFilter($request, $changes, 'subcategory');
[$filters['model'], $changes] = FilterService::createFilter($request, $changes, 'model');
[$filters['supplier'], $changes] = FilterService::createFilter($request, $changes, 'supplier');
[$filters['producer'], $changes] = FilterService::createFilter($request, $changes, 'producer');
[$filters['codeProducer'], $changes] = FilterService::createFilter($request, $changes, 'codeProducer');
[$filters['codeSupplier'], $changes] = FilterService::createFilter($request, $changes, 'codeSupplier');
[$filters['status'], $changes] = FilterService::createFilter($request, $changes, 'status');
[$filters['termid'], $changes] = FilterService::createFilter($request, $changes, 'termid');
[$filters['condition'], $changes] = FilterService::createFilter($request, $changes, 'condition');
[$filters['warehouse'], $changes] = FilterService::createFilter($request, $changes, 'warehouse');
[$filters['warehouseType'], $changes] = FilterService::createFilter($request, $changes, 'warehouseType');
[$filters['dateCreation'], $changes] = FilterService::createFilter($request, $changes, 'dateCreation');
[$filters['dateLastTransfer'], $changes] = FilterService::createFilter($request, $changes, 'dateLastTransfer');
[$filters['sortField'], $changes] = FilterService::createFilter($request, $changes, 'sortField');
[$filters['sortOrder'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function productCategoryFilter($request){
$changes = false;
[$filters['name'], $changes] = FilterService::createFilter($request, $changes, 'name');
[$filters['pos'], $changes] = FilterService::createFilter($request, $changes, 'pos');
[$filters['sortField'], $changes] = FilterService::createFilter($request, $changes, 'sortField');
[$filters['sortOrder'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function productModelFilter($request){
$changes = false;
[$filters['pos'], $changes] = FilterService::createFilter($request, $changes, 'pos');
[$filters['category'], $changes] = FilterService::createFilter($request, $changes, 'category');
[$filters['subcategory'], $changes] = FilterService::createFilter($request, $changes, 'subcategory');
[$filters['producer'], $changes] = FilterService::createFilter($request, $changes, 'producer');
[$filters['supplier'], $changes] = FilterService::createFilter($request, $changes, 'supplier');
[$filters['name'], $changes] = FilterService::createFilter($request, $changes, 'name');
[$filters['sku'], $changes] = FilterService::createFilter($request, $changes, 'sku');
[$filters['partNumber'], $changes] = FilterService::createFilter($request, $changes, 'partNumber');
[$filters['sortField'], $changes] = FilterService::createFilter($request, $changes, 'sortField');
[$filters['sortOrder'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function productRegeneratedFilter($request){
$changes = false;
[$filters['datetime'], $changes] = FilterService::createFilter($request, $changes, 'datetime');
[$filters['model'], $changes] = FilterService::createFilter($request, $changes, 'model');
[$filters['codeProducer'], $changes] = FilterService::createFilter($request, $changes, 'codeProducer');
[$filters['codeSupplier'], $changes] = FilterService::createFilter($request, $changes, 'codeSupplier');
[$filters['sortField'], $changes] = FilterService::createFilter($request, $changes, 'sortField');
[$filters['sortOrder'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function productStationaryFilter($request){
$changes = false;
[$filters['model'], $changes] = FilterService::createFilter($request, $changes, 'model');
[$filters['codeProducer'], $changes] = FilterService::createFilter($request, $changes, 'codeProducer');
[$filters['codeSupplier'], $changes] = FilterService::createFilter($request, $changes, 'codeSupplier');
[$filters['sortField'], $changes] = FilterService::createFilter($request, $changes, 'sortField');
[$filters['sortOrder'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function productSubcategoryFilter($request){
$changes = false;
[$filters['category'], $changes] = FilterService::createFilter($request, $changes, 'category');
[$filters['name'], $changes] = FilterService::createFilter($request, $changes, 'name');
[$filters['sortField'], $changes] = FilterService::createFilter($request, $changes, 'sortField');
[$filters['sortOrder'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function productTransferFilter($request){
$changes = false;
[$filters['phase'], $changes] = FilterService::createFilter($request, $changes, 'phase');
[$filters['warehouseFrom'], $changes] = FilterService::createFilter($request, $changes, 'warehouseFrom');
[$filters['warehouseTo'], $changes] = FilterService::createFilter($request, $changes, 'warehouseTo');
[$filters['datetimeCreation'], $changes] = FilterService::createFilter($request, $changes, 'datetimeCreation');
[$filters['datetimeSend'], $changes] = FilterService::createFilter($request, $changes, 'datetimeSend');
[$filters['datetimeCompletion'], $changes] = FilterService::createFilter($request, $changes, 'datetimeCompletion');
[$filters['ddt'], $changes] = FilterService::createFilter($request, $changes, 'ddt');
[$filters['stockOrder'], $changes] = FilterService::createFilter($request, $changes, 'stockOrder');
[$filters['sortField'], $changes] = FilterService::createFilter($request, $changes, 'sortField');
[$filters['sortOrder'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function ticketFilter($request){
$changes = false;
$tab = null; if($request->get('filter_tab') != null) $tab = $request->get('filter_tab');
[$filters['number'], $changes] = FilterService::createFilter($request, $changes, 'number');
[$filters['supplier'], $changes] = FilterService::createFilter($request, $changes, 'supplier');
[$filters['client'], $changes] = FilterService::createFilter($request, $changes, 'client');
[$filters['operation'], $changes] = FilterService::createFilter($request, $changes, 'operation');
[$filters['technician'], $changes] = FilterService::createFilter($request, $changes, 'technician');
[$filters['tariff'], $changes] = FilterService::createFilter($request, $changes, 'tariff');
[$filters['city'], $changes] = FilterService::createFilter($request, $changes, 'city');
[$filters['province'], $changes] = FilterService::createFilter($request, $changes, 'province');
[$filters['termid'], $changes] = FilterService::createFilter($request, $changes, 'termid');
[$filters['datetimeStart'], $changes] = FilterService::createFilter($request, $changes, 'datetimeStart');
[$filters['datetimeEnd'], $changes] = FilterService::createFilter($request, $changes, 'datetimeEnd');
[$filters['datetimeExpiration'], $changes] = FilterService::createFilter($request, $changes, 'datetimeExpiration');
[$filters['waybill'], $changes] = FilterService::createFilter($request, $changes, 'waybill');
[$filters['sortField'], $changes] = FilterService::createFilter($request, $changes, 'sortField');
[$filters['sortOrder'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder');
FilterService::updateFilterSession($request, $changes, $filters, $tab);
return $filters;
}
static public function ticket2Filter($request){
$changes = false;
[$filters['status'], $changes] = FilterService::createFilter($request, $changes, 'status');
[$filters['number'], $changes] = FilterService::createFilter($request, $changes, 'number');
[$filters['supplier'], $changes] = FilterService::createFilter($request, $changes, 'supplier');
[$filters['client'], $changes] = FilterService::createFilter($request, $changes, 'client');
[$filters['operation'], $changes] = FilterService::createFilter($request, $changes, 'operation');
[$filters['technician'], $changes] = FilterService::createFilter($request, $changes, 'technician');
[$filters['tariff'], $changes] = FilterService::createFilter($request, $changes, 'tariff');
[$filters['city'], $changes] = FilterService::createFilter($request, $changes, 'city');
[$filters['province'], $changes] = FilterService::createFilter($request, $changes, 'province');
[$filters['termid'], $changes] = FilterService::createFilter($request, $changes, 'termid');
[$filters['datetimeStart'], $changes] = FilterService::createFilter($request, $changes, 'datetimeStart');
[$filters['datetimeEnd'], $changes] = FilterService::createFilter($request, $changes, 'datetimeEnd');
[$filters['datetimeExpiration'], $changes] = FilterService::createFilter($request, $changes, 'datetimeExpiration');
[$filters['waybill'], $changes] = FilterService::createFilter($request, $changes, 'waybill');
[$filters['sortField'], $changes] = FilterService::createFilter($request, $changes, 'sortField');
[$filters['sortOrder'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function ticket3Filter($request){
$changes = false;
[$filters['status'], $changes] = FilterService::createFilter($request, $changes, 'status');
[$filters['number'], $changes] = FilterService::createFilter($request, $changes, 'number');
[$filters['supplier'], $changes] = FilterService::createFilter($request, $changes, 'supplier');
[$filters['client'], $changes] = FilterService::createFilter($request, $changes, 'client');
[$filters['operation'], $changes] = FilterService::createFilter($request, $changes, 'operation');
[$filters['tariff'], $changes] = FilterService::createFilter($request, $changes, 'tariff');
[$filters['city'], $changes] = FilterService::createFilter($request, $changes, 'city');
[$filters['province'], $changes] = FilterService::createFilter($request, $changes, 'province');
[$filters['termid'], $changes] = FilterService::createFilter($request, $changes, 'termid');
[$filters['datetimeStart'], $changes] = FilterService::createFilter($request, $changes, 'datetimeStart');
[$filters['datetimeEnd'], $changes] = FilterService::createFilter($request, $changes, 'datetimeEnd');
[$filters['datetimeExpiration'], $changes] = FilterService::createFilter($request, $changes, 'datetimeExpiration');
[$filters['sortField'], $changes] = FilterService::createFilter($request, $changes, 'sortField');
[$filters['sortOrder'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function ticketColumnValueFilter($request){
$changes = false;
[$filters['supplier'], $changes] = FilterService::createFilter($request, $changes, 'supplier');
[$filters['ticketColumn'], $changes] = FilterService::createFilter($request, $changes, 'ticketColumn');
[$filters['needle'], $changes] = FilterService::createFilter($request, $changes, 'needle');
[$filters['sortField'], $changes] = FilterService::createFilter($request, $changes, 'sortField');
[$filters['sortOrder'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function ticketTechnicianFilter($request){
$changes = false;
$tab = null; if($request->get('filter_tab') != null) $tab = $request->get('filter_tab');
[$filters['all'], $changes] = FilterService::createFilter($request, $changes, 'all');
FilterService::updateFilterSession($request, $changes, $filters, $tab);
return $filters;
}
static public function userFilter($request){
$changes = false;
[$filters['name'], $changes] = FilterService::createFilter($request, $changes, 'name');
[$filters['surname'], $changes] = FilterService::createFilter($request, $changes, 'surname');
[$filters['email'], $changes] = FilterService::createFilter($request, $changes, 'email');
[$filters['sortField'], $changes] = FilterService::createFilter($request, $changes, 'sortField');
[$filters['sortOrder'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function valueFilter($request){
$changes = false;
[$filters['value'], $changes] = FilterService::createFilter($request, $changes, 'value');
[$filters['sortField'], $changes] = FilterService::createFilter($request, $changes, 'sortField');
[$filters['sortOrder'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder');
FilterService::updateFilterSession($request, $changes, $filters, null);
return $filters;
}
static public function userWarehouseSheetFilter($request){
$changes = false;
$tab = null; if($request->get('filter_tab') != null) $tab = $request->get('filter_tab');
[$filters['model_0'], $changes] = FilterService::createFilter($request, $changes, 'model_0');
[$filters['sku_0'], $changes] = FilterService::createFilter($request, $changes, 'sku_0');
[$filters['supplier_0'], $changes] = FilterService::createFilter($request, $changes, 'supplier_0');
[$filters['codeSupplier_0'], $changes] = FilterService::createFilter($request, $changes, 'codeSupplier_0');
[$filters['producer_0'], $changes] = FilterService::createFilter($request, $changes, 'producer_0');
[$filters['codeProducer_0'], $changes] = FilterService::createFilter($request, $changes, 'codeProducer_0');
[$filters['condition_0'], $changes] = FilterService::createFilter($request, $changes, 'condition_0');
[$filters['technician_0'], $changes] = FilterService::createFilter($request, $changes, 'technician_0');
[$filters['ddt_0'], $changes] = FilterService::createFilter($request, $changes, 'ddt_0');
[$filters['sortField_0'], $changes] = FilterService::createFilter($request, $changes, 'sortField_0');
[$filters['sortOrder_0'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder_0');
[$filters['model_1'], $changes] = FilterService::createFilter($request, $changes, 'model_1');
[$filters['sku_1'], $changes] = FilterService::createFilter($request, $changes, 'sku_1');
[$filters['supplier_1'], $changes] = FilterService::createFilter($request, $changes, 'supplier_1');
[$filters['codeSupplier_1'], $changes] = FilterService::createFilter($request, $changes, 'codeSupplier_1');
[$filters['producer_1'], $changes] = FilterService::createFilter($request, $changes, 'producer_1');
[$filters['codeProducer_1'], $changes] = FilterService::createFilter($request, $changes, 'codeProducer_1');
[$filters['dateLastTransfer_1'], $changes] = FilterService::createFilter($request, $changes, 'dateLastTransfer_1');
[$filters['condition_1'], $changes] = FilterService::createFilter($request, $changes, 'condition_1');
[$filters['sortField_1'], $changes] = FilterService::createFilter($request, $changes, 'sortField_1');
[$filters['sortOrder_1'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder_1');
[$filters['datetimeCreation_2'], $changes] = FilterService::createFilter($request, $changes, 'datetimeCreation_2');
[$filters['datetimeSend_2'], $changes] = FilterService::createFilter($request, $changes, 'datetimeSend_2');
[$filters['datetimeCompletion_2'], $changes] = FilterService::createFilter($request, $changes, 'datetimeCompletion_2');
[$filters['warehouseTo_2'], $changes] = FilterService::createFilter($request, $changes, 'warehouseTo_2');
[$filters['warehouseFrom_2'], $changes] = FilterService::createFilter($request, $changes, 'warehouseFrom_2');
[$filters['ddt_2'], $changes] = FilterService::createFilter($request, $changes, 'ddt_2');
[$filters['stockOrder_2'], $changes] = FilterService::createFilter($request, $changes, 'stockOrder_2');
[$filters['sortField_2'], $changes] = FilterService::createFilter($request, $changes, 'sortField_2');
[$filters['sortOrder_2'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder_2');
[$filters['date_3'], $changes] = FilterService::createFilter($request, $changes, 'date_3');
[$filters['technician_3'], $changes] = FilterService::createFilter($request, $changes, 'technician_3');
[$filters['warehouse_3'], $changes] = FilterService::createFilter($request, $changes, 'warehouse_3');
[$filters['sortField_3'], $changes] = FilterService::createFilter($request, $changes, 'sortField_3');
[$filters['sortOrder_3'], $changes] = FilterService::createFilter($request, $changes, 'sortOrder_3');
FilterService::updateFilterSession2($request, $changes, $filters, $tab);
return $filters;
}
}