Onko PaymentInstructionIdentifier mukana?

Started by taleman, 06.09.18 - klo:12:55

Previous topic - Next topic

taleman

Koitan tehdä laskuttajailmoitusta Finanssialan Keskusliiton webbisivulla. Siinä kysytään laskutusaiheen koodia, PaymentInstructionIdentifier. Katsoin ettei tähän asti MLInvoicella tekemissäni e-laskuissa ole tuota merkkijonoa. Myös greppasin
grep "PaymentInstruction" -r mlinvoice

Eikä löydy, on kyllä EpiPaymentInstructionId mutta se on kai toinen paikka jossa tuo sama koodi välitetään.

Pähkäilen tätä lisää, jos on neuvoja antaa niin hyvä juttu, kiitoksia.

Ere Maijala

Käsittääkseni EpiPaymentInstructionId on juurikin se kenttä, jossa PaymentInstructionIdentifier on laskutussanomassa. Finvoicessa ei ole erillistä PaymentInstructionIdentifier-kenttää ollenkaan.

Ere Maijala

Ja vielä tarkennuksena, että MLInvoice laittaa EpiPaymentInstructionId-kenttään viitenumeron.

taleman

Finanssialan keskusliiton lomake haluaa PaymentInstructionIdentifier kenttään ohjeen mukaan "laskuttajan määrittelemä laskutusaiheen yksilöivä numeerinen koodi".

http://www.finanssiala.fi/finvoice/dokumentit/Laskuttajailmoituksen_teko-ohjelma_ohje.pdf

Lisäksi sanotaan "sen on oltava sama kuin laskusanomalla annettava vastaava tieto". Viitenumero on joka laskussa eri. Toisaalta en keksi mitä tuohon kuuluisi pistää, pitäisikö minulla olla yksi vai monta laskutusaihetta?

taleman

#4
Koitin netistä löytää tietoa mikä laskutusaihe oikein on. Minulla on vuodelta 2011 laskuttajailmoitus, jossa se on Luontoelämys. Nyt ohje sanoo pitää olla numeerinen koodi.
Lukemani mukaan tunnistamiseen käytetään vastinparia suoraveloituksen palvelutunnus -- e-laskun laskutusaihe.
Ymmärrän tämän niin, että voin tehdä useita laskuttajailmoituksia eri laskutusaiheilla, jos vaikka haluan maksut eri pankkitiille tai muilla tavoin eri tavalla käsiteltävän. Mutta minulle riittää kun on yksi laskutusaihe, ja MLinvoicen pitäisi se osata pistää finvoicelaskuun kohtaan EpiPaymentInstructionID. Nyt siinä tosiaan on laskun numero, joka käsittääkseni ei kelpaa kun pitäisi olla joka kerta sama numero jonka olen ilmoittanut laskutusaiheen koodiksi.

Ere Maijala

Ok, täytyypä lisätä mahdollisuus tehdä laskutusaiheita MLInvoiceen.

taleman

Hienoa, sitten onnistuu kuluttaja-asiakkaille e-laskun lähetys.

Taisin olla väärässä siinä laskutusaiheen sisällössä, sen ei ehkä tarvitsekaan olla numerokoodi.

Ere Maijala

Kehitysversiossa olisi nyt laskun tyypille perustoteutus. Eli Järjestelmä-kohdassa voi määritellä tarpeelliset laskun tyypit ja laskulle sitten valita sopivan. Saapi testata. :)

taleman

Pahoittelen kun en ole ennättänyt kokeilemaan vielä.

Mutta sillä välin: laskuttajailmoituksen tein, joten pankista tulee nyt asiakkaiden lähettämiä e-laskupyyntöjä. Ne tulee XML-tiedostoina, varmaan on olemassa ohjelma joka osaa nuo tulostaa lukukelpoisemmassa muodossa?

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:eb="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd" xmlns:spy="http://www.spy.fi/vl/fv/finvoiceack.xsd">
<SOAP-ENV:Header>
<eb:MessageHeader SOAP-ENV:mustUnderstand="1" eb:id="" eb:version="2.0" xmlns:eb="http://www.oasis-open.org/committees/ebxml-msg/schema/msg-header-2_0.xsd">
<eb:From>

taleman

Asensin testiversion, eli sen MLInvoice_Master.zip tiedostosta puretun äsken. Testaan tuota PaymentInstructionIdentifieria, ja kysyisin onnistuuko kun otin tuotantoversiosta MLInvoicen tietokannan ja toin sen tähän testiasennukseen ennen kuin asensin MLinvoicen. Eli tietokannassa oli datat valmiina.

Tämä testversio ei toimi vielä, pitänee opetella Composer koska nyt valittaa [Fri Oct 19 12:06:46.611548 2018] [proxy_fcgi:error] [pid 7801] [client 192.168.250.42:58668] AH01071: Got error 'PHP message: PHP Warning:  require_once(vendor/autoload.php): failed to open stream: No such file or directory in /var/www/clients/client1/web1/web/MLInvoice-master/index.php on line 46\nPHP message: PHP Fatal error:  require_once(): Failed opening required 'vendor/autoload.php' (include_path='.:/usr/share/php') in /var/www/clients/client1/web1/web/MLInvoice-master/index.php on line 46\n'


Ruokatunti alkaa.

taleman

Composerin asennuksen ja käynnistyksen jälkeen alkoi toimimaan. Mutta tietokanta oli se perusaloitus, eli MLINvoicen asennin taitaa tyhjätä tietokannan eli ei kannata etukäteen tuoda tietokantaa paikalleen.

Mutta ohje sanoi komennetaan composer install, toimiva komento oli php composer.phar install

Tai siis toimii melkein. Uuden laskun tekeminen menee pieleen, ei pysty tallentamaan. Lokista näen virheen, se on "Unknown column 'delivery_address' in 'field list".

[Fri Oct 19 14:55:34.953862 2018] [proxy_fcgi:error] [pid 7801] [client 192.168.250.42:60360] AH01071: Got error 'PHP message: Query 'INSERT INTO mlinvoice_develop_invoice (uuid, base_id, name, company_id, reference, invoice_no, ref_number, invoice_date, due_date, interval_type, next_interval_date, state_id, payment_date, archived, type_id, delivery_time, delivery_terms_id, delivery_method_id, delivery_address, info, internal_info, foreword, afterword) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params array (\n  0 => 'c478e9a6-ff5d-4e11-bf55-6c9e542472b5',\n  1 => '1',\n  2 => '',\n  3 => '1',\n  4 => '',\n  5 => NULL,\n  6 => '',\n  7 => '20181019',\n  8 => '20181102',\n  9 => '0',\n  10 => NULL,\n  11 => '1',\n  12 => NULL,\n  13 => 0,\n  14 => NULL,\n  15 => '',\n  16 => NULL,\n  17 => NULL,\n  18 => '',\n  19 => '',\n  20 => '',\n  21 => '',\n  22 => '',\n) failed: (1054) Unknown column 'delivery_address' in 'field list'\n', referer: http://testi.taleman.fi/MLInvoice-master/index.php?func=invoices&form=invoice


Taulussa _invoice ei tosiaan ole tuon nimistä kenttää.

Menikö tämä pieleen kun toin 1.19.0 versiosta tietokannan, ja sitten vasta asensin MLInvoicen? Eli se ei tehnyt uusia kenttiä noihin tauluihin jotka jo oli olemassa?

Ere Maijala

Pahus, tietokannan luontiskriptissä oli virhe. Nyt korjattu uusimmassa masterissa.

Asennussysteemi tekee uuden tietokannan, jos annettu kanta on tyhjä. Muuten sen pitäisi kyllä käyttää olemassaolevaa ja päivittää se.

taleman

Otin uuden master.zip tiedoston, korjaus auttoi. Nyt mielestäni toimii. En vielä lähettänyt e-laskutiedostoa verkkomaksuvälittäjälle, mutta se mitä luen muodostunutta tiedostoa saa minut olemaan toiveikas että se toimisi.

Toimii sekin, että tuo tietokannan valmiiksi ja asentaa sitten MLInvoicen. Mutta asennusscripti lisää alaviivamerkin kirjoittamani tietokannan taulujen prefixin perään. Ekalla kerrallakin olisi toiminut valmis tietokanta, mutta typotin tuon prefixin.

Tällä testiasennuksella löytyi yksi bugi jonka Ere jo korjasi ja saatiin testattua EpiPaymentInstructionID tulee e-laskulle ja laskun tyypin saa lisättyä. En testannut kattavasti enkä tarkistanut mitä muutoksia GIT muutoslokissa on.

Vähän kikkailemalla saan tuon laskunkin tehtyä ja lähetettyä, ilmoittelen lisää jahka nähdään tuleeko virhepalaute verkkolaskuvälittäjältä.

Ere Maijala

Kiitos testauksesta. Täytyypä lisätä maininta alaviivasta tuohon asennuksen yhteyteen, niin vältytään epäselvyyksiltä jatkossa.

taleman

Mielestäni laskun muodostus toimi, ja lähti pankista mutta vastaanottajan pankki palautti virheilmoituksella ettei vastaanottajaa löydy. Tarkistin huolella OVT ja BIC on oikein. Valitin toiseen kertaan lähettävälle pankille, ne sanoi nyt että
QuoteE-laskuaineistossa näkyi olevan ylimääräinen tyhjä rivi, joka voi aiheuttaa tuollaisen virheherjan. Sinun tulisi nyt olla yhteydessä ohjelmistotoimittajaan, joka kanssasi tarkistaa aineiston ja auttaa poistamaan ylimääräisen tyhjän rivin.

Laskutiedostossa tosiaan on tyhjä rivi, </SOAP-ENV:Envelope>

<?xml version="1.0" encoding="ISO-8859-15"?>


Mutta niin on aiemmissakin MLInvoicen tekemissä e-laskuissa, ja ne on menneet perille.

Minusta jompi kumpi pankki nyt sählää. Tutkin lisää. Onko kenelläkään tietoa miksi kuluttaja-asiakkaalle lähetettävä e-laskun toimisi eri tavalla kuin yritysasiakkaalle lähetettävä?