vyskoczilova / kybernaut-ic-dic

Kybernaut IC DIC (WordPress plugin): Přidá IČO a DIČ do formuláře s fakturační adresou ve WooCommerce a rovnou ověří, jestli jsou zadané hodnoty skutečné.
GNU General Public License v3.0
12 stars 7 forks source link

DIČ s devíti čísly neprojde kontrolou #54

Closed Musilda closed 1 year ago

Musilda commented 1 year ago

DIČ s devíti čísly neprojde kontrolou - https://rejstrik-firem.kurzy.cz/48401129/nemocnice-agel-trinec-podlesi-as/registrace-dph/ Vyhazuje mi chybu jak Ares, tak i po vypnutí kontrola DIČ. Zřejmě protože to počítá s osmi čísly.

morvy commented 1 year ago

@Musilda mozem poprosit o kontrolu? Pridal som komplexnu kontrolu pre CZ DIC a SK ICDPH https://github.com/morvy/kybernaut-ic-dic/tree/dic-fix

morvy commented 1 year ago

@vyskoczilova tieto kontroly bude potrebne trochu prekopat. Momentalne to overuje voci VIES, ak je zapnuta kontrola cez VIES, inak kontroluje matematicky. V poslednej dobe dostavam velmi vela hlaseni o nefungujucej kontrole z 3 roznych pluginov - Kybernaut, WPify, EU VAT Manager a vsade je to bud privela requestov alebo privela subeznych pripojeni alebo je VIES dole.

Navrhoval by som, aby sa najprv riesila kontrola matematicky a ak to prejde cez matematiku, nasledne az skusit VIES ak je to povolene.

Pre znizenie requestov by som navrhoval pridat checkbox na "Kontrolu DIC offline", aby sa VIES vobec nekontaktoval, ak uz zakaznik nakupil a bol uspesne overeny. Tu by som videl potencialne problem v tom, ze kvoli performance by to mal byt cisty SELECT z objednavok pre neregistrovanych zakaznikov (teoreticky staci select vsetkych objednavok, kde uz DIC existuje, kedze objednavka so zlym DIC nebude v systeme, ak, tak este pridat kontrolu ci dana objednavka bola prepnuta na vat_exempt). Pre registrovanych zakaznikov by sa pridaval field _verified_vat a obisla by sa teda cela kontrola DIC.

vyskoczilova commented 1 year ago

@morvy díky moc! až to musilda testne, tak to mergnu (asi i s tím reverse charge, když je Vies OK, funguje mi to jak má).

S VIES jsou pořád problémy. Na jiných projektech používám composer package dragonbe/views a pro českou stranu h4kuna/ares a parsuje data (proto bych ji asi použila i tady), ale dostupnost neřeší

Postup mi zní dobře, možná změřit, kolik takový select sežere paměti DB. Ale pak by to asi nefungovalo s načítáním údajů o subjektu a doplňováním adresy atp. Ale asi to chce hodit už do verze pluginu, který bude podporovat HPOS (a klidně do toho trochu hrábnout).

morvy commented 1 year ago

neviem v akom stave mas rozpracovanu verziu 2.0, ja by som to uz trochu podelil na classy (nie level WPify, ale aspon level WordPress), mozno pridal singleton nech si tie funkcie vyuzivaju aj vyvojari mimo checkoutu a pod.

DragonBe implementacia pre VIES je super a neviem preco som mal pocit, ze toto sme sa uz bavili ze nahradi sucasny Ibericode. Treba sa uz vykaslat na vsetko pod Woo 4.x a PHP 7.3.x lebo to realne nikto nepouziva a ak ano, nech maju dovod na upgrade :) Kazdopadne ja Kybernaut IC DIC pouzivam na multi shope aj pre HU a PL, kde VIES validacia funguje fajn, matematicka uz nema ako, ale mam tam custom validaciu doplnenu podobne ako som teraz dohodil to CZ DIC. Trochu tazsie sa dohladavaju jednotlive pravidla pre overenie VAT ale mam pocit ze aj na to je package.. EDIT: ved vlastne DragonBe ma vsetky tie pravidla v sebe, takze nie je o com a asi je cas vymenit VIES implementaciu a riesit kontrolu matematicky a nasledne VIES cez DragonBe...

Ohladom toho SELECTu, performance by urcite nebol problem, ale prave to HPOS a teda musela by sa robit kontrola ak je HPOS, tahat data z inej tabulky. Nativnym query to sice ide urobit, ale boli by to minimalne 2 query aby tam nebol performance problem a zas je to o problem navyse, preto nad tym trochu vaham, ale nejako to vyriesit treba. (AutomateWoo napr. nechce ani pocut o rozdeleni jednej query, ktora mi na velkom shope robi rozdiel 30s na checkoute.. :) )

morvy commented 1 year ago

@vyskoczilova trochu som pozeral na to, a pouzit cely package DragonBe/Vies by bol asi overkill. Na tych par kontrol by stacilo cast z overenia DIC a nasledne SOAP request cez try/catch. Ten package je dost velky na tak specificku funkcionalitu (ked zaratam jeho dependencies). Tiez to nejako stoji s vyvojom a napr. ten heartbeat, ktory vyzeral ako dobry sposob overenia pred overovanim DIC im ani nefunguje a je fixnuty v pull requeste, ktory stale nie je mergnuty

morvy commented 1 year ago

@Musilda nahodou nebol cas to pozriet? Ja som to potestoval na jednom eshope a mal som aj ostru objednavku s 9 miestnym DIC, len by to chcelo istotu..

@vyskoczilova vieme pohnut s tymto (pripadne dalsimi) PR ?

vyskoczilova commented 1 year ago

@morvy Díky, mergnuto přijde mi to super.