| @@ -1,11 +1,11 @@ | |||
| -- Változás napló 2023-01-20 | |||
| - az axico id 0 helyett 1-től kezdődik | |||
| - az axico id nagyobb lehet 999-nél, például 1000 és 1001 stb., | |||
| a kezdő számok továbbra is 3 karakterből állnak, mint például az ABCCBA001, | |||
| - új termék mostantól egy fájlon keresztül hiba nélkül hozzáadható a | |||
| feltöltött termékek listájához, mintha az az aktiv excel fájlban lett volna eredetileg is, | |||
| feltöltött termékek listájához, mintha az az aktiv/kiválasztott excel fájlban lett volna eredetileg is, | |||
| - az ilyen módon, újonnan hozzáadott termék AKTIVÁLHATÓ, mint az élő adatbázisban szereplő termék, | |||
| - az ilyen módon, újonnan hozzáadott termék mentése önmagára irányít át további szerkesztésre, | |||
| amely lehetővé teszi a generált adatok részleteinek ellenőrzését is, | |||
| @@ -19,26 +19,26 @@ | |||
| - a fájlok 20 helyett legfeljebb 25 munkalapból állhatnak, | |||
| - az alapértelmezett garanciaérték (hónapokban) beállítható és elmenthető konfigurációs formában, | |||
| - az alapértelmezett garanciaérték (hónapokban) beállítható és elmenthető a konfigurációs menüben, | |||
| - az axico id garanciális entitások listázhatók és szerkeszthetők, | |||
| - az axico id garanciális entitások frissíthetők az axico id táblázatból | |||
| (ezt csak 1x kell elvégezni a frissítés után, újra importálás során feltöltődik minden komponens és termékcsoport mentése után), | |||
| - az axico id garanciális entitások listázhatók, szűrhetőek és szerkeszthetőek, | |||
| - az axico id garanciális entitások frissíthetőek az axico id táblázatból, | |||
| (ezt csak 1x kell elvégezni a frissítés után, termék újra importálás során feltöltődik minden komponens és termékcsoport mentése után), | |||
| - az új axico id garancia entitások a drupal config alapértelmezett jótállási értékével vannak tárolva, | |||
| - új termékkategória vagy komponens mentésekor új axico id garancia kerül tárolásra | |||
| a konfigurációból származó alapértelmezett garancia értékkel, | |||
| - a termékek garancia mezője az alábbi munkafolyamatokban töltődik be: | |||
| a.) excel import, garancia és korábbi jótállás be van állítva: | |||
| - alapértelmezett jótállási érték a konfigurációból (ha nincs megadva az excel fájlban), | |||
| - a korábbi garancia 0-ra van állítva, | |||
| b.) ismert termék - a termékek összehasonlítása munkafolyamatban, | |||
| az ismert termékek axico id garancia entitása alapján | |||
| c.) új termék - kategóriafrissítésről vagy komponens frissítésről | |||
| d.) termék hozzáadása vagy szerkesztése | |||
| - a termékek "Frissitendo" jelzéssel lesznek ellátva, ha a korábbi garancia eltér a korábbi jótállástól | |||
| a.) ismeretlen termék excel import, garancia és korábbi jótállás értékek töltődnek: | |||
| - alapértelmezett jótállási érték a konfigurációból jön (ha nincs megadva az excel fájlban), | |||
| - a korábbi garancia ekkor 0-ra van állítva, | |||
| b.) ismert termék excel import - a termékek összehasonlítása munkafolyamatban, | |||
| az ismert termékek axico id garancia entitása alapján, | |||
| c.) új termék kézi hozzádásakor a termékcsoport vagy komponens cikkszáma alapján, | |||
| d.) meglévő termék szerkesztése esetén termékcsoport frissítésből vagy komponens frissítésből eredően, | |||
| - a termékek "Frissitendo" jelzéssel lesznek ellátva, ha a korábbi garancia eltér a korábbi jótállástól, ez szinte minden termékre vonatkozik majd, | |||
| - a garanciális változásokat a rendszer felismeri és megjeleníti a feltöltött termékek listájában, | |||
| kék (korábbi) vagy zöld (módosított) egész értékkel jelölve (hónapokban az egérmutatót a zöld bal/jobb nyilakon jelzik), | |||
| @@ -27,7 +27,7 @@ arlista.warranty.list: | |||
| route_name: arlista.warranty.list | |||
| weight: 25 | |||
| menu_name: main | |||
| route_parameters: { mid: '0' } | |||
| route_parameters: { filterx: 'mind' } | |||
| arlista.file.list: | |||
| title: "Fájlok" | |||
| description: "Fájlok feltöltése" | |||
| @@ -152,10 +152,11 @@ arlista.component.delete: | |||
| id: ^\d+$ | |||
| ### AXICO ID WARRANTY | |||
| arlista.warranty.list: | |||
| path: "/axico-id-warranty/list" | |||
| path: "/axico-id-warranty/list/{filterx}" | |||
| defaults: | |||
| _form: '\Drupal\arlista\Form\AxicoIdWarranty\AxicoIdWarrantyList' | |||
| _title: "Garanciák" | |||
| filterx: 'mind' | |||
| requirements: | |||
| _permission: "arlista manage_pricelists" | |||
| _disable_route_normalizer: "TRUE" | |||
| @@ -82,6 +82,7 @@ div.field__item:hover { | |||
| button.button { | |||
| margin-top: 1rem; | |||
| margin-right: 1rem; | |||
| margin-bottom: 1rem; | |||
| } | |||
| footer.footer { | |||
| @@ -461,7 +461,8 @@ | |||
| $('html,body').css('cursor', 'initial'); | |||
| if(!data.success){ | |||
| alert(data.message); | |||
| const myTimeout = setTimeout(window.location.replace(document.URL), 5000); | |||
| clearTimeout(myTimeout); | |||
| return; | |||
| } | |||
| if (redirect) { | |||
| @@ -132,6 +132,7 @@ class ProductController extends ArlistaAbstractController { | |||
| $this->getResponseBody()->setMessage('Sikeres aktualizáció'); | |||
| $this->getResponseBody()->setData($result); | |||
| $this->getResponseBody()->setSuccess(1); | |||
| $this->getResponse()->setData($this->getResponseBody()->toArray()); | |||
| return $this->getResponse(); | |||
| @@ -115,5 +115,29 @@ class AxicoIdWarrantyFactory extends AbstractFactory | |||
| return $this->findByAxicoIdName($productAxicoId); | |||
| } | |||
| public function findAllLike($axicoIdName) | |||
| { | |||
| $data = $this->getConnection() | |||
| ->select($this->getActiveTable(), 'w') | |||
| ->fields('w') | |||
| ->isNull('w.deleted_at') | |||
| ->condition('w.axico_id_name', '%' . $this->getConnection()->escapeLike($axicoIdName) . '%', 'LIKE') | |||
| ->execute() | |||
| ->fetchAll(); | |||
| if (empty($data)) { | |||
| return []; | |||
| } | |||
| $result = []; | |||
| foreach($data as $item){ | |||
| array_push($result, $this->load($item)); | |||
| } | |||
| return $result; | |||
| } | |||
| } | |||
| @@ -125,7 +125,7 @@ class SpreadSheetFactory extends AbstractSpreadSheetFactory { | |||
| $product->setPrice((float) ($workSheet->getCell($sheetSetting->getProductPrice() . $i)->getValue())); | |||
| $product->setNotes($workSheet->getCell($sheetSetting->getProductNotes() . $i)->getValue()); | |||
| $product->setDescription($workSheet->getCell($sheetSetting->getProductDescription() . $i)->getValue()); | |||
| $product->setWarranty($workSheet->getCell($sheetSetting->getProductWarranty() . $i)->getValue()); | |||
| $product->setWarranty((int) $workSheet->getCell($sheetSetting->getProductWarranty() . $i)->getValue()); | |||
| $product->setVtsz($workSheet->getCell($sheetSetting->getProductVtsz() . $i)->getValue()); | |||
| $product->setEan($workSheet->getCell($sheetSetting->getProductEan() . $i)->getValue()); | |||
| $product->setEol($workSheet->getCell($sheetSetting->getProductEol() . $i)->getValue()); | |||
| @@ -14,6 +14,8 @@ use Drupal\Core\Url; | |||
| class AxicoIdWarrantyList extends ArlistaAbstractForm { | |||
| private $filterx = 'mind'; | |||
| /** | |||
| * {@inheritdoc} | |||
| */ | |||
| @@ -24,15 +26,41 @@ class AxicoIdWarrantyList extends ArlistaAbstractForm { | |||
| /** | |||
| * {@inheritdoc} | |||
| */ | |||
| public function buildForm(array $form, FormStateInterface $form_state) { | |||
| public function buildForm(array $form, FormStateInterface $form_state, string $filterx = null) { | |||
| $this->filterx = $filterx; | |||
| if ($data = $this->getCacheService()->getCachedDataByName([$this->getFormId(), 1])) { | |||
| return $data; | |||
| if($filterx != 'mind'){ | |||
| $axicoIdWarranties = $this->getAxicoIdWarrantyFactory()->findAllLike($filterx); | |||
| } else { | |||
| $axicoIdWarranties = $this->getAxicoIdWarrantyFactory()->findAll('axico_id_name', 'ASC'); | |||
| } | |||
| if(!count($axicoIdWarranties) && $filterx == 'mind'){ | |||
| \Drupal::messenger()->addStatus('Nincsenek adatok. Konfigurálja az alapértelmezett garancia értéket a beállítások menüpontban! Ha ezt megtette, importálhatja/frissítheti a cikkszámtörzsadatokat.'); | |||
| } | |||
| $axicoIdWarranties = $this->getAxicoIdWarrantyFactory()->findAll('axico_id_name', 'ASC'); | |||
| if ($data = $this->getCacheService()->getCachedDataByName([$this->getFormId(), $filterx])) { | |||
| return $data; | |||
| } | |||
| $form['items_wrapper']['#prefix'] ='<div class="col-lg-6">'; | |||
| $form['items_wrapper']['#prefix'] ='<div class="col-lg-3">'; | |||
| $form['items_wrapper'][]['filter'] = [ | |||
| '#title' => 'Szűrő', | |||
| '#required' => false, | |||
| '#max' => 32, | |||
| '#type' => 'textfield', | |||
| '#default_value' => '', | |||
| '#disabled' => false, | |||
| '#weight' => -980, | |||
| ]; | |||
| $form['items_wrapper'][]['axico_id_warranties_form_submit'] = array( | |||
| '#type' => 'submit', | |||
| '#submit' => [ | |||
| '::filterAxicoIds', | |||
| ], | |||
| '#value' => 'Axico Cikkszámok szűrése', | |||
| ); | |||
| if(count($axicoIdWarranties)){ | |||
| $renderableItems = [ | |||
| '#theme' => 'arlista_axico_id_warranty_list', | |||
| @@ -42,26 +70,41 @@ class AxicoIdWarrantyList extends ArlistaAbstractForm { | |||
| $renderedList = \Drupal::service('renderer')->render($renderableItems); | |||
| $form['items_wrapper']['axicoIdWaranties'] = ['#markup' => $renderedList]; | |||
| } | |||
| $form['items_wrapper']['buttons']['axico_id_warranties_form_submit'] = array( | |||
| $form['items_wrapper']['buttons']['axico_id_warranties_form_filter'] = array( | |||
| '#type' => 'submit', | |||
| '#value' => 'Axico Cikkszámok frissítése', | |||
| ); | |||
| $form['items_wrapper']['buttons']['axico_id_warranties_form_submit']['#attributes']['class'][] = 'btn-primary'; | |||
| $form['items_wrapper']['#suffix'] ='</div>'; | |||
| $this->getCacheService()->setCachedDataByName([$this->getFormId(), 1], $form); | |||
| $this->getCacheService()->setCachedDataByName([$this->getFormId(), $filterx], $form); | |||
| return $form; | |||
| } | |||
| function filterAxicoIds(array &$form, FormStateInterface $form_state) { | |||
| $form_state->setRedirect('arlista.warranty.list', ['filterx' => $form_state->getValue('filter') ? $form_state->getValue('filter') : 'mind']); | |||
| } | |||
| /** | |||
| * {@inheritdoc} | |||
| */ | |||
| public function submitForm(array &$form, FormStateInterface $form_state) { | |||
| if($form_state->getValue('filter')){ | |||
| $form_state->setRedirect('arlista.warranty.list', ['filterx' => $form_state->getValue('filter')]); | |||
| return; | |||
| } | |||
| if($this->filterx != 'mind'){ | |||
| $form_state->setRedirect('arlista.warranty.list', ['filterx' => $this->filterx]); | |||
| return; | |||
| } | |||
| $data = $this->getAxicoIdFactory()->findAllDistinct(); | |||
| $result = $this->getAxicoIdWarrantyFactory()->updateDatabase($data); | |||
| \Drupal::messenger()->addStatus('Új Axico Cikkszám Garancia entitások száma ('. count($result['axicoIdWarrantyList']['inserted']) .')'); | |||
| \Drupal::messenger()->addStatus('Egyedi cikkszámtörzsek száma ' . count($data) . '. Új Axico Cikkszámtörzs Garancia entitások száma ('. count($result['axicoIdWarrantyList']['inserted']) .')'); | |||
| $this->getCacheService()->resetCache([$this->getFormId(), 1]); | |||
| } | |||