Maksettu status automaattisesti

Started by Turre, 04.03.13 - klo:17:00

Previous topic - Next topic

Turre

Moi,

Olisko mahdollista saada ominaisuutta, joka automaattisesti päivittäisi laskujen statuksen maksetuksi vaikkapa lataamalla ohjelmaan pankista sähköisen viitemaksuluettelon? Ainakin Nordean verkkopankista saa ladattua Konekielinen tiliotteen, jonka voisi uploadata systeemiin. Oman yrityksen laskutus perustuu voluumiin ja jatkossa voi olla että on tuhat laskutettavaa yritystä, joiden laskujen statusta on kohtuu vaikea manuaalisesti päivittää.

Ere Maijala

Moi,

Toki, ja on ollut jo suunnittelussa. Tosin täysin automaattista siitä ei voi tehdä, koska pankkien käyttöehdot kieltävät verkkopankin käytön ohjelmallisesti. Rajapintoja on kyllä tarjolla, mutta sen pohjalta, mitä olen niihin tutustunut, ei niitä ole selvästikään suunniteltu tällaiseen käyttöön, vaan vaativat aika järeitä ratkaisuja (VPN:ää ja muuta hauskaa). Ajatuksena olisi, että pitäisi siis ladata ensin tiliote verkkopankista ja lähettää se sitten MLInvoiceen. Pystyn toteuttamaan tämän Osuuspankin tiliotteelle, mutta minulla ei ole pääsyä Nordean vastaavaan. Sitä varten tarvitsisisin siis jonkinlaisen mallin (ei tarvitse sisältää oikeata sisältöä). Jos pystyisit sellaisen toimittamaan minulle vaikka sähköpostilla (ere at labs.fi), niin siitä olisi toki apua.

--Ere

ele

Moro,

Tää ois hyvä ominaisuus. OP:n verkkopankissa tää kannattaa tehdä "Lataa pelkät tilitapahtumat tiedostona (xls)" -toiminnon kautta. Sieltä tulee cvs-tiedosto joka kelpaa sellaisenaan esim. Asteri-kirjanpitoon. Samalla kun tiedot tulee haettua kirjanpitoon ne voisi tuoda myös laskutukseen. Suorituksia tuotaessa kannattaa varmaan merkata todelliset maksupäivät kantaan ja tehdä vertailua onko koko suoritustus maksettu?

Ere Maijala

Eilen tuli tämä toteutettua loppuun. Löytyy GitHubista (https://github.com/emaijala/MLInvoice/archive/master.zip), jos huvittaa kokeilla, ja mielelläni ottaisinkin vastaan tietoa toimivuudesta. Toiminto löytyy Laskutus-sivulta Tiliotteen tuonti -nappulan takaa.

Toteutus käyttää jo aiemmin tehtyä tuontitoimintoa, jossa voi itse määritellä käytettävät sarakkeet (myös sen, käytetäänkö kirjaus- vai arvopäivää) ja tiedoston muut ominaisuudet. Valmiit asetukset löytyvät Osuuspankin ja Nordean tilitapahtumille. Toiminto sisältää vertailun siitä, onko maksun määrä oikein. Jos ei täsmää, niin maksua ei kirjata (toistaiseksi tukea osasuorituksille ei ole) ja ongelma raportoidaan.

Jos on muille pankeille toimivien asetusten tietoja, niin nekin otan mielelläni mukaan.

--Ere

Lokki

Nopeasti tätä testasin Osuuspankin aineistolla. Muuten toimii ok mutta laskujen viitenumeroon pitää laittaa "etu nollat", jotta maksut kohdetuvat oikein. Osuuspankin aineistossa viitenumero tulee muodossa 00000000000000012959 ja kun laskulla on viitenumero muodossa 12959 niin ei maksut eivät kohdistu laskuille.

Ere Maijala

Totta, kiitos huomiosta. Lisäsin tuontiin etunollien trimmauksen. Jokohan nyt toimisi oikein?

--Ere

Lokki

Nyt toimii OP:llä hienosti, kiitos :)

ele

Hieno ominaisuus, kiitos. OP:sta helmikuun lopussa hakemassani aineistossa kentissä ei ollut lainausmerkkejä, mutta nyt oli. Lisäsin import_statement.php:hen vaihtoehdon jossa 'enclosure_char' => 0. Nyt ongelmaksi tulee, että eurosummassa ei ole lainausmerkkejä, jolloin tulee virheilmoitus:

"" Rivi 25: Viitenumerolla '4268' löytyneen laskun summa 640,82 ei vastaa tilitapahtuman summaa 640,82 ""

En keksinyt koodista missä vertailu menee pieleen..

Entä olisiko noita viitteettömiä tuonteja mahdollista raportoida vähän laveammin? Nyt tulee vain ilmoitus: "Rivi 8: Maksupäivää, maksettua määrää tai viitenumeroa ei löytynyt". Jos vaikka ton koko rivin 8 sais tulostettua, niin se antais vähän osviittaa mistä on kysymys.


ele

Kätevintä noiden lainausmerkkien poistaminen on varmaan tyyliin: $refnr = str_replace('"',  '', $refnr); just ennen etunollien poistoa, mutten vieläkään tajua miksi toi summien vertailu ei onnistu. Helmi- ja maalikuun aineistoissa ei ole mun mielestä rahasummien esittämisen osalta mitään eroa.

Tosta laajemmasta raportoinnista sais ihan hyvän tulostamalla vaikka $row-taulukon tiedot, eli viite, summa ja päivä. Maksajatieto tietty täydentäisi listaa..

Ere Maijala

Kiitos kommenteista. Täytyy tutkia, miltä tuo uusi OP:n tiliote näyttää ja muokata tarpeen mukaan. Systeemin pitäisi selvitä siitä, että numeroilla ei ole enclosure charia, mutta saattaa olla jotain vikaa.

--Ere

Ere Maijala

#10
Tässä saattaakin olla pyöristysongelma, kun verrattiin viidellä desimaalilla. Voisitko kokeilla muuttaa import_statement.php:n rivin 126 tällaiseksi:


    if (miscRound2Decim($rowTotal['total_price']) != miscRound2Decim($amount)) {


--Ere

ele


Ere Maijala

Hyvä hyvä. Lisätään myös tietoja tuohon raportointiin jatkossa.

--Ere

ele

Pyöristysongelmat jatkuvat, nyt vissiin ton alv:n pyöristystavan muutoksen takia. Laskuilla olevissa kokonaissummissa ja import_statement.php:n kyselyn tuloksissa voi olla ainakin sentin heittoja ja tällöin lasku ei kirjaudu maksetuksi. Helpoin korjaus taitaa olla muuttaa import_statement.php:n vertailu muotoon

if (abs(miscRound2Decim($rowTotal['total_price']) - miscRound2Decim($amount)) > 0.01) {

Vai voiko summissa olla useamman sentin heittoja?

Ere Maijala

Toinen vaihtoehto on tietenkin korjata tuokin laskenta niin, että pyöristys on aina yhtenevä kaikkialla... Laitan korjaukseen.

--Ere