Finvoice merkkimäärärajoitus?

Started by heiristo, 14.10.19 - klo:13:51

Previous topic - Next topic

heiristo

Moikka!

Ensiksikin haluan kiittää todella toimivasta laskutusohjelmasta. Olen käyttänyt tätä jo vuosia ja olen ollut erittäin tyytyväinen :)

Nyt tuli kuitenkin ensimmäinen virhe eteen: lähetin asiakkalleni Finvoice laskun, jossa oli Toimitusosoite -kentässä pitkä litania tekstiä, yhteensä 512 merkkiä ja lasku PDF:ssä se näkyi aivan hyvin, mutta XML:ssä InvoiceFreeText puuttui kokonaan eli sitä tietoa ei välitetty siis näkynyt asiakkaalla. Aikaisemmin tämä on toiminut.

Tarkistin aikaisempia laskujani ja ainakin sellaisessa laskussa jossa oli merkkejä Toimitusosoite -kentässä 461 niin se näkyy XML:ssä. Onko tässä jokin raja vai mistähän tällainen voi johtua? Tarvitsen asiakkailleni antaa joskus tosi pitkiä lisätietotekstejä, jossa on olennaiset tiedot kustannuspaikoista, osoitteista, tilausnumeroista ym ym ym.

Edit: Jos auttaa, niin tuossa virhelaskussa oli Toimitusosoite -kentässä 62 sanaa, 512 merkkiä välilyönteineen sekä 28 riviä (voisko tuo rivimäärä olla avain? Läpimenneissä on ollut max 22 riviä. PDF:ssä virhelaskussa teksti meni toiselle sivulle.)

Edit 2: Itseasiassa ei ole merkkimäärä ongelma, sillä nyt tarkistin myös erään laskun XML tiedon ja siinä oli vain 273 merkkiä ja PDF:ssä näkyy mainiosti mutta XML tiedoissa ei.

Edit 3: Vielä lisätietoa hämmentämään: Siirsin koko Toimitusosoite -kentässä olevan tekstin Tulosteissa näytettävät lisätiedot -kenttään (onko tämä kenttä tullut milloin tähän? Jossain vaiheessa sitä ei ole ollut) ja sen kautta sain näkymään XML:ssä <InvoiceFreeText > rivillä, MUTTA vain 57 sanaa, 572 merkkiä ja 22 riviä näkyi. XML:ssä näkyi rivinvaihto &#13; -merkkinä, joka tylsästi varastaa tekstistä tilan, jos rivinvaihtoja on paljon.

heiristo

Käytössä siis uusin 1.21.2 versio.

KarZan

Tietämättä asiasta yhtään enempää, suosittelisin käyttämään Alkusanat tai Loppusanat kenttää jotka sopivat paremmin pitempien tekstien lisäämiseen. En ole kuitenkaan kokeillut miten ne menee xml tiedostoon.

ele

#3
Finvoice ei ole millään muotoa tuttu, mutta eikös speksissä ole InvoiceFreeTextin max pituus 512 merkkiä (huom sis. rivinvaihdon 1-2 merkkiä [\n tai \r\n])? Ei mullakaan tule toimitusosoitetta mihinkään kentään xml:ssä, mutta tuo 512 ensimmäistä merkkiä Tulosteissa näytettävät lisätiedot -kentästä kopioitui ihan ok. Jos katsoo invoice_printer_base.php:ää ja create_finvoice.xsl:ää niin juuri näin sen kuuluisikin toimia, eli web-sivun "info"-kentästä (Tulosteissa näytettävät lisätiedot) tiedot kopioidaan InvoiceFreeTextiin ja toimitusosoitteelle ("delivery_address") ei tehdä mitään. Varmaankin git-reposta kaivelemalla näkisi milloin tämä on muuttunut jos on joskus toiminut toisella tavalla.

Toimitusosoitteen voisi varmaankin ilmoittaa Finvoicen ShipmentPostalAddressDetails-kentässä, mutta silloin sen pitäisi olla jaettavissa katuosoitteeseen, postiosoiteeksi ja postitoimipaikaksi, eli tuollainen vapaamuotoinen satuilukenttä ei oikein sovellu, eikä varmaankaan maksa vaivaa muuttaa toimintalogiikkaa. Ehkä joku Finvoice-käsittelylle pyhitetty yhdistelmä toimitusosoiteesta, tulosteissa näytettävät lisätiedoista, alkusanoista ja loppusanoista voitaisiin viedä InvoiceFreeTextiin?

edit: Taitaa toi merkkimäärälaskenta mennä niin, että rivinvaihdot vaihdetaan välilyönneiksi ja sittenhän siinä on 1 merkki.

Ere Maijala

Oikea kenttä olisi vissiin DeliveryPostalAddressDetails. ShipmentPostalAddressDetails on välittävän toimijan osoite (forwarding agents address information).

InvoiceFreeText:n maksimipituus on tosiaan 512 merkkiä. Jos XML:ssä näkee esim. &#13;, niin se on vain rivinvaihtomerkki enkoodattuna, eli vie vain yhden merkin tilaa. Näyttäisi siltä, että invoiceFreeText-kenttää saa toistaa. Näin ollen voisi jakaa pitkän tekstin useampaan osaan. Tällä hetkellä muunnos osaa tehdä vain yhden kentän, mutta laitan seuraavaan versioon parannuksen, että saadaan tarvittaessa useampi.

Jos oikein riittää intoa tehdä itse, niin create_finvoice.xsl:stä voi tehdä oman version. Tulostusmallin asetuksissa on tieto siitä, mitä xsl-tiedostoa käytetään, eli sen voi halutessaan vaihtaa omaan versioon. Tällä tavalla olisi mahdollista hyödyntää esim. DeliveryPostalAddressDetails-kenttää, jos huolehtii itse siitä, että kenttä on aina samassa muodossa.

ele

Joo, varmaankin tuo on parempi kenttä :).

Ei siihen xml:ään mitään rivinvaihto-välilyönniksi -vaihtoja tullut. Windowsin oletus xml-viewer (MS Edge?) vaan tekee vaihdoksen ja se hämäsi mua (ihan saman tekee varmaankin kaikki selaimet..). 507 merkkiä ja 5 rivinvaihtoa meni kuitenkin läpi, eli yksi merkki per rivinvaihto ainakin Windows 10:ssä. 

Mikähän ilo Finvoicessa on ollut rajoittaa kenttien pituuksia kun niitä kuitenkin saa lisätä äärettömän määrän? Mitenköhän noita käsitellään vastaanottavassa päässä, eli kerjääkö siinä vaan verta nenestään jos FreeTextiä mättää sivukaupalla?

taleman

Finvoice tehtiin kun oli jo useita käytännön standardeja alueen ohjelmistoista. Finvoice tekijät selvitti kaikkien sovellusten asetukset, ja jotta kenttä toimisi kaikissa niissä piti valita kentän  maksimipituudeksi semmoinen mikä toimii kaikissa, eli se sovellus jossa oli pienin maksimipituus määräsi tuon. Joissain Finvoicen kentissä on ihan naurettavan pieni maksimipituus, olen monta kertaa joutunut osoitteen korjaamaan lyhyemmäksi.