| -- Változás napló 2023-01-20 | |||||
| - az axico id 0 helyett 1-től kezdődik | - 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., | - 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, | 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 | - ú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 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, | - 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, | amely lehetővé teszi a generált adatok részleteinek ellenőrzését is, | ||||
| - a fájlok 20 helyett legfeljebb 25 munkalapból állhatnak, | - 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, | - 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 | - ú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 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 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, | - 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), | 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), |
| route_name: arlista.warranty.list | route_name: arlista.warranty.list | ||||
| weight: 25 | weight: 25 | ||||
| menu_name: main | menu_name: main | ||||
| route_parameters: { mid: '0' } | |||||
| route_parameters: { filterx: 'mind' } | |||||
| arlista.file.list: | arlista.file.list: | ||||
| title: "Fájlok" | title: "Fájlok" | ||||
| description: "Fájlok feltöltése" | description: "Fájlok feltöltése" |
| id: ^\d+$ | id: ^\d+$ | ||||
| ### AXICO ID WARRANTY | ### AXICO ID WARRANTY | ||||
| arlista.warranty.list: | arlista.warranty.list: | ||||
| path: "/axico-id-warranty/list" | |||||
| path: "/axico-id-warranty/list/{filterx}" | |||||
| defaults: | defaults: | ||||
| _form: '\Drupal\arlista\Form\AxicoIdWarranty\AxicoIdWarrantyList' | _form: '\Drupal\arlista\Form\AxicoIdWarranty\AxicoIdWarrantyList' | ||||
| _title: "Garanciák" | _title: "Garanciák" | ||||
| filterx: 'mind' | |||||
| requirements: | requirements: | ||||
| _permission: "arlista manage_pricelists" | _permission: "arlista manage_pricelists" | ||||
| _disable_route_normalizer: "TRUE" | _disable_route_normalizer: "TRUE" |
| button.button { | button.button { | ||||
| margin-top: 1rem; | margin-top: 1rem; | ||||
| margin-right: 1rem; | margin-right: 1rem; | ||||
| margin-bottom: 1rem; | |||||
| } | } | ||||
| footer.footer { | footer.footer { |
| $('html,body').css('cursor', 'initial'); | $('html,body').css('cursor', 'initial'); | ||||
| if(!data.success){ | if(!data.success){ | ||||
| alert(data.message); | alert(data.message); | ||||
| const myTimeout = setTimeout(window.location.replace(document.URL), 5000); | |||||
| clearTimeout(myTimeout); | |||||
| return; | return; | ||||
| } | } | ||||
| if (redirect) { | if (redirect) { |
| $this->getResponseBody()->setMessage('Sikeres aktualizáció'); | $this->getResponseBody()->setMessage('Sikeres aktualizáció'); | ||||
| $this->getResponseBody()->setData($result); | $this->getResponseBody()->setData($result); | ||||
| $this->getResponseBody()->setSuccess(1); | |||||
| $this->getResponse()->setData($this->getResponseBody()->toArray()); | $this->getResponse()->setData($this->getResponseBody()->toArray()); | ||||
| return $this->getResponse(); | return $this->getResponse(); |
| return $this->findByAxicoIdName($productAxicoId); | 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; | |||||
| } | |||||
| } | } |
| $product->setPrice((float) ($workSheet->getCell($sheetSetting->getProductPrice() . $i)->getValue())); | $product->setPrice((float) ($workSheet->getCell($sheetSetting->getProductPrice() . $i)->getValue())); | ||||
| $product->setNotes($workSheet->getCell($sheetSetting->getProductNotes() . $i)->getValue()); | $product->setNotes($workSheet->getCell($sheetSetting->getProductNotes() . $i)->getValue()); | ||||
| $product->setDescription($workSheet->getCell($sheetSetting->getProductDescription() . $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->setVtsz($workSheet->getCell($sheetSetting->getProductVtsz() . $i)->getValue()); | ||||
| $product->setEan($workSheet->getCell($sheetSetting->getProductEan() . $i)->getValue()); | $product->setEan($workSheet->getCell($sheetSetting->getProductEan() . $i)->getValue()); | ||||
| $product->setEol($workSheet->getCell($sheetSetting->getProductEol() . $i)->getValue()); | $product->setEol($workSheet->getCell($sheetSetting->getProductEol() . $i)->getValue()); |
| class AxicoIdWarrantyList extends ArlistaAbstractForm { | class AxicoIdWarrantyList extends ArlistaAbstractForm { | ||||
| private $filterx = 'mind'; | |||||
| /** | /** | ||||
| * {@inheritdoc} | * {@inheritdoc} | ||||
| */ | */ | ||||
| /** | /** | ||||
| * {@inheritdoc} | * {@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)){ | if(count($axicoIdWarranties)){ | ||||
| $renderableItems = [ | $renderableItems = [ | ||||
| '#theme' => 'arlista_axico_id_warranty_list', | '#theme' => 'arlista_axico_id_warranty_list', | ||||
| $renderedList = \Drupal::service('renderer')->render($renderableItems); | $renderedList = \Drupal::service('renderer')->render($renderableItems); | ||||
| $form['items_wrapper']['axicoIdWaranties'] = ['#markup' => $renderedList]; | $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', | '#type' => 'submit', | ||||
| '#value' => 'Axico Cikkszámok frissítése', | '#value' => 'Axico Cikkszámok frissítése', | ||||
| ); | ); | ||||
| $form['items_wrapper']['buttons']['axico_id_warranties_form_submit']['#attributes']['class'][] = 'btn-primary'; | $form['items_wrapper']['buttons']['axico_id_warranties_form_submit']['#attributes']['class'][] = 'btn-primary'; | ||||
| $form['items_wrapper']['#suffix'] ='</div>'; | $form['items_wrapper']['#suffix'] ='</div>'; | ||||
| $this->getCacheService()->setCachedDataByName([$this->getFormId(), 1], $form); | |||||
| $this->getCacheService()->setCachedDataByName([$this->getFormId(), $filterx], $form); | |||||
| return $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} | * {@inheritdoc} | ||||
| */ | */ | ||||
| public function submitForm(array &$form, FormStateInterface $form_state) { | 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(); | $data = $this->getAxicoIdFactory()->findAllDistinct(); | ||||
| $result = $this->getAxicoIdWarrantyFactory()->updateDatabase($data); | $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]); | $this->getCacheService()->resetCache([$this->getFormId(), 1]); | ||||
| } | } |