Dukai Károly 3 лет назад
Родитель
Сommit
0e45bb94bb
9 измененных файлов: 98 добавлений и 26 удалений
  1. +15
    -14
      README.txt
  2. +1
    -1
      modules/custom/arlista/arlista.links.menu.yml
  3. +2
    -1
      modules/custom/arlista/arlista.routing.yml
  4. +1
    -0
      modules/custom/arlista/css/arlista.css
  5. +2
    -1
      modules/custom/arlista/js/arlista.js
  6. +1
    -0
      modules/custom/arlista/src/Controller/ProductController.php
  7. +24
    -0
      modules/custom/arlista/src/Factory/AxicoIdWarrantyFactory.php
  8. +1
    -1
      modules/custom/arlista/src/Factory/SpreadSheetFactory.php
  9. +51
    -8
      modules/custom/arlista/src/Form/AxicoIdWarranty/AxicoIdWarrantyList.php

+ 15
- 14
README.txt Просмотреть файл

@@ -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),

+ 1
- 1
modules/custom/arlista/arlista.links.menu.yml Просмотреть файл

@@ -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"

+ 2
- 1
modules/custom/arlista/arlista.routing.yml Просмотреть файл

@@ -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"

+ 1
- 0
modules/custom/arlista/css/arlista.css Просмотреть файл

@@ -82,6 +82,7 @@ div.field__item:hover {
button.button {
margin-top: 1rem;
margin-right: 1rem;
margin-bottom: 1rem;
}

footer.footer {

+ 2
- 1
modules/custom/arlista/js/arlista.js Просмотреть файл

@@ -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) {

+ 1
- 0
modules/custom/arlista/src/Controller/ProductController.php Просмотреть файл

@@ -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();

+ 24
- 0
modules/custom/arlista/src/Factory/AxicoIdWarrantyFactory.php Просмотреть файл

@@ -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;
}



}

+ 1
- 1
modules/custom/arlista/src/Factory/SpreadSheetFactory.php Просмотреть файл

@@ -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());

+ 51
- 8
modules/custom/arlista/src/Form/AxicoIdWarranty/AxicoIdWarrantyList.php Просмотреть файл

@@ -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]);
}

Загрузка…
Отмена
Сохранить