Pokročilé párování ve Flexibee

Popis problému:

Dnes si ukážeme jak nasedlat na jeden z moha výborných kusů práce, který udělal Vitex Software pro ABRA Flexibee. Jedná se o pokročilé možnosti párování ve Flexibee. Jak jistě víte, když chcete párovat platby ve Flexibee, máte velmi omezené možnosti a to ty, které jsou uvedeny v printscreenu.

Většinou se usádlíte na tom, že tato noční můra Flexibee prostě nefunguje, anebo funguje natolik vágně, že to stejně doděláváte ručně.

Takovým vysvobozením a odfajfknutím jedné věci, tkerá dlouho ze strany ABRA Flexi s.r.o měla být udělána a nebyla je  php-flexibee-matcher z dílny Víťu. Podrobný popis nalezneme na GitHubu. Krátký výcuc:

Párovač faktur pro FlexiBee

Instalace balíčku po spuštění (vytvoří potřebné štítky NEIDENTIFIKOVANO a CHYBIFAKTURA)

K dispozici jsou dva skripty na párování faktur:

[ParujFakturyNew2Old.php](src/ParujFakturyNew2Old.php) - páruje faktury po jednotlivých dnech zpět až 3mesíce.
[ParujFaktury.php](src/ParujFaktury.php)               - pokusí se zpárovat všechny nespárované doklady

Algoritmus je následující:

* stažení výpisů z banky do flexibee
* projdou se všechny nespárované příjmy v bance ( /c/firma_s_r_o_/banka/(sparovano eq false AND typPohybuK eq 'typPohybu.prijem' AND storno eq false AND datVyst eq '2018-03-07' )?limit=0&order=datVyst@A&detail=custom:id,kod,varSym,specSym,sumCelkem,datVyst )
* Platby se pak v cyklu po jedné zpracovávají
* Ke každé příchozí platbě se program pokusí nalézt vhodný (neuhrazený a nestornovaný) doklad ke spárování. Nejprve podle variabilního symbolu. Nakonec dle prostého specifického symbolu.
* Výsledky jsou sjednoceny dle čísla bankovního pohybu ve flexibee aby nedocházelo k duplicitám když faktura vyhoví více ruzným hledáním.
* Platby které nemají dohledaný protějšek dle žádné z podmínek jsou označeny štítkem NEIDENTIFIKOVANO
* Pokud k platbě není dohledána faktura, dostane platba štítek CHYBIFAKTURA

Dohledané doklady se pak párují takto:

* **FAKTURA** - platba se spáruje s fakturou + uhrazená faktura je odeslána z flexibee na email klienta
* **ZALOHA**  - zálohová faktura je spárována s platbou + je vytvořen daňový doklad se stejným variabilním symbolem od kterého je tato záloha odečtena.
* **DOBR**    - je proveden odpočet dobropisu
* Ostatní     - je zapsáno varování do protokolu s polu s linkem do webového flexibee

Debian/Ubuntu

Pro Linux jsou k dispozici .deb balíčky. Prosím použijte repo:

wget -O - http://v.s.cz/info@vitexsoftware.cz.gpg.key|sudo apt-key add -
echo deb http://v.s.cz/ stable main > /etc/apt/sources.list.d/ease.list
apt update
apt install php-flexibee-matcher

Po instalaci balíku jsou v systému k dispozici dva nové příkazy:

  • php-flexibee-matcher – páruje všechny toho schopné faktury
  • php-flexibee-matcher-new2old – páruje den po dni od nejnovějších plateb ke starším

Konfigurace

    "EASE_APPNAME": "InvoiceMatcher",             - název aplikace 
    "EASE_MAILTO": "info@yourdomain.net",         - kam odesílat reporty
    "EASE_LOGGER": "syslog|mail|console",         - jak logovat
    "PULL_BANK": "false",                         - stahnout banku před párováním
    "DAYS_BACK": "7"                              - až kolik dní zpět párovat

Řešení:

My se společně podíváme, jak to  rozchodit pro testovací účely u nás doma. To hlavní, co očekáváme je, že se budou doklady párovat doklady podle nějakých kritérií, které si zvolíme. Hlavní očekávaná kritéria jsou:

  1. Páruj dle VS (to co dělá současné Flexibee)
  2. Páruj podle VS a SS (to co očekáváme jako novinku)
  3. Páruj jen dle SS
  4. Páruj v nějakém intervalu (např +- 20 dní)

Kuchařka nastavení:

  1. Stáhneme si z GitHubu zdrojové soubory (vpravo zelené tlačítko download as zip). Pro ňimrody klikni zde
  2. Stáhneme si Vagrantup dostupné na: https://www.vagrantup.com/downloads.html
  3. Stáhneme a nainstalujeme si virtualbox: https://www.virtualbox.org/wiki/Downloads
  4. Odzipujeme soubory z GitHubu, vejdeme dovnitř do adresáře cd /php-flexibee-matcher/ a zadáme příkaz vagrant up
  5. Počkáme asi půl století, než se vše přechroupe (utvoří se nám debianí virtuál) a pak zadáme příkaz vagrant ssh
  6. Tím se nalogujeme do naší virtuální mašinky. Nyní musíme zeditovat soubor s názvem client.json. Tento soubor najdeme v adresáři /vagrant. Zde si to zeditujeme tak, abychom tam měli URL naší flexibee firmy, login a heslo a název firmy. Ukázka: vagrant@stretch:/vagrant$ cat client.json
    {
    “FLEXIBEE_URL”: “https:\/\/MojeFirma.flexibee.eu:5434”,
    “FLEXIBEE_LOGIN”: “flexicosi”,
    “FLEXIBEE_PASSWORD”: “tajneHeslo”,
    “FLEXIBEE_COMPANY”: “demo”
    }
  7. Nezapomeneme zeditovat matcher.json a to dle tohoto mého návrhu: vagrant@stretch:/vagrant$ cat matcher.json
    {
    “EASE_APPNAME”: “InvoiceMatcher”,
    “EASE_MAILTO”: “tvujMail@connectica.cz”,
    “EASE_LOGGER”: “mail|console”,
    “PULL_BANK”: “false”,
    “DAYS_BACK”: “14”
    }
  8. A je to. Pak už jen snadno spustíme vagrant@stretch:/vagrant/src$ /usr/bin/php-flexibee-matcher a můžeme se chvíli civět, jak se práce (asi) dělá za nás.

Až výše uvedené budete mít za sebou, čeká vás fáze ladění a oprav. Každé podnikání má své specifikum a pokaždé Vám proces vyplivne nějaký výsledek. Ono přikazová řádka snese všechno. Pokud s tím budete mít nějaké potíže, zkuste napsat nebo zavolat Víťovi

Naopak pokud jste skilled a už Vám to jde, tak se přesuňte na další level – Flexibee upomínkovač: https://github.com/VitexSoftware/php-flexibee-reminder