MayaLabs Discussion Area

Suomeksi (Finnish only) => MLInvoiceen liittyvä keskustelu => Topic started by: Turre on 04.03.13 - klo:17:00

Title: Maksettu status automaattisesti
Post by: Turre on 04.03.13 - klo:17:00
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ää.
Title: Re: Maksettu status automaattisesti
Post by: Ere Maijala on 04.03.13 - klo:18:55
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
Title: Re: Maksettu status automaattisesti
Post by: ele on 17.03.13 - klo:08:50
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?
Title: Re: Maksettu status automaattisesti
Post by: Ere Maijala on 17.03.13 - klo:10:18
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
Title: Re: Maksettu status automaattisesti
Post by: Lokki on 18.03.13 - klo:22:35
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.
Title: Re: Maksettu status automaattisesti
Post by: Ere Maijala on 19.03.13 - klo:08:37
Totta, kiitos huomiosta. Lisäsin tuontiin etunollien trimmauksen. Jokohan nyt toimisi oikein?

--Ere
Title: Re: Maksettu status automaattisesti
Post by: Lokki on 19.03.13 - klo:16:34
Nyt toimii OP:llä hienosti, kiitos :)
Title: Re: Maksettu status automaattisesti
Post by: ele on 31.03.13 - klo:15:07
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.

Title: Re: Maksettu status automaattisesti
Post by: ele on 31.03.13 - klo:15:53
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..
Title: Re: Maksettu status automaattisesti
Post by: Ere Maijala on 03.04.13 - klo:17:10
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
Title: Re: Maksettu status automaattisesti
Post by: Ere Maijala on 04.04.13 - klo:07:59
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
Title: Re: Maksettu status automaattisesti
Post by: ele on 05.04.13 - klo:20:20
Nyt toimii, hienoa!
Title: Re: Maksettu status automaattisesti
Post by: Ere Maijala on 06.04.13 - klo:11:30
Hyvä hyvä. Lisätään myös tietoja tuohon raportointiin jatkossa.

--Ere
Title: Re: Maksettu status automaattisesti
Post by: ele on 25.04.14 - klo:14:10
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?
Title: Re: Maksettu status automaattisesti
Post by: Ere Maijala on 12.05.14 - klo:16:55
Toinen vaihtoehto on tietenkin korjata tuokin laskenta niin, että pyöristys on aina yhtenevä kaikkialla... Laitan korjaukseen.

--Ere
Title: Re: Maksettu status automaattisesti
Post by: ranetuo on 15.05.14 - klo:09:14
Minulla on sellainen ongelma että laskutan toisen osapuolen puolesta (lukumääräisesti yli 1000 laskua, kerran vuodessa), joka valvoo saatavansa sen jälkeen itse saamansa laskutusraportin mukaisesti. Nyt kaikki laskut jäävät tilaan "avoin". Olen miettinyt miten saisin muutettua aina esim. yhden laskuttajan saatavat maksetuiksi yhdellä kertaa. Helpottaa mm. hakuja tehdessä.

Yksi keino on tehdä phpMyAdminissa komento tietokannalle, jossa muuttujina olisi laskuttajan ID ja laskun tila. Onko muita keinoja?
Title: Re: Maksettu status automaattisesti
Post by: Ere Maijala on 04.08.14 - klo:21:32
Tällä hetkellä mitään parempaa tapaa ei ole. Jos vaan ehdin joskus tekemään noita useamman laskun käsittelytoimintoja, niin tuollainen joukkomuutos kuuluisi siihen joukkoon.

--Ere