bookmark_borderLMS zunifikowane formatowanie numeru

Issue: https://github.com/chilek/lms-plus/issues/1543

Mini howto na szybkie uruchomienie i testowanie:

https://github.com/chilek/lms-plus/issues/1543#issuecomment-741610531

Biblioteka do formatowania numerów telefonicznych:

https://github.com/giggsey/libphonenumber-for-php

bookmark_borderLMS interfejs użytkownika – opisy ustawień

phpui.markdown_documentation_file

Typ: Wartość tekstowa.

Wartość domyślna: <sys-dir>/doc/Zmienne-konfiguracyjne-LMS-Plus.md

Opis: Zmienna powinna zawierać nazwę pliku z dokumentacją wszystkich standardowo obsługiwanych ustawień konfiguracyjnych. Plik jest utrzymywany w ramach prac prowadzonych w projekcie LMS+.

Dostępność: od 25.0

Zmienna jest wykorzystywana w pliku <lms-path>/lib/Utlis.php

Wrzuć zawartość pliku z artykułem Wiki z listą wszystkich ustawień konfiguracyjnych do katalogu “doc”. Uaktywni się parę fajnych feature-ów, które, dają odpocząć pamięci. – chilek

bookmark_borderLMS indywidualne numery rachunków a bałagan z identyfikatorami klientów

Planujesz wprowadzić obsługę indywidualnych numerów rachunków, a w wyniku zaszłych czynności numeracja nie jest spójna. Można “zresetować” numerację tak, aby identyfikatory klientów zaczynały się od 1 i nie było żadnych luk w numeracji.

Poniżej wersja zapytania dla bazy MySQL, która reorganizuje numerację ID.

SET @var:=0;
UPDATE `customers` SET `id`=(@var:=@var+1);
ALTER TABLE `customers` AUTO_INCREMENT=1; 

UWAGA! Używasz tego na własną odpowiedzialność!

bookmark_borderLMS – SQL query #30052019

/*
Wynik zapytania:
- pokaż wszystkie faktury klienta (customerid), na których jest internet (23% VAT) oraz telewizja (8% VAT)

Legenda:
- taxid = 2 (internet 23% VAT)
- taxid = 3 (iptv 8% VAT)
- customerid = 43 (wynik dla konkretnego klienta)
- YEAR(FROM_UNIXTIME(TIME)) = 2018 (przeszukiwany rok)
*/
SELECT DISTINCT docid,
                SUM(CASE
                        WHEN taxid = 2 THEN 1
                        ELSE 0
                    END) AS NET,
                SUM(CASE
                        WHEN taxid = 3 THEN 1
                        ELSE 0
                    END) AS TV
FROM cash
WHERE YEAR(FROM_UNIXTIME(TIME))=2018
  AND customerid=43
  AND docid IN
    (SELECT docid
     FROM cash
     WHERE value < 0
       AND docid IS NOT NULL
     GROUP BY docid
     HAVING SUM(CASE
                    WHEN taxid = 2 THEN 1
                    ELSE 0
                END) >= 1
     AND SUM(CASE
                 WHEN taxid = 3 THEN 1
                 ELSE 0
             END) >= 1)
GROUP BY docid

bookmark_borderLMS – ustawienie flagi wyłączone dla kontaktów wszystkim usuniętym klientom

TIP: https://www.w3resource.com/mysql/bit-functions/bit_count.php

/* Sprawdzamy czy są pretendenci do aktualizacji */

SELECT cc.type,
       cu.id,
FROM customers AS cu
LEFT JOIN customercontacts AS cc ON cu.id=cc.customerid
WHERE cu.deleted=1
  AND NOT cc.type &amp; 16384
/* Ustawienie flagi wyłączone dla kontaktów wszystkim usuniętym klientom */

UPDATE customercontacts AS cc
LEFT JOIN customers AS cu ON cc.customerid=cu.id
SET cc.type = cc.type | 16384
WHERE cu.deleted=1
  AND NOT cc.type &amp; 16384