Jag håller på att skriva en funktion i PHP som genererar en fil till Posten.
Dokumentet som ska följas heter IG_Transportinstruktion_Flatfil2_1.39.pdf och finns att ladda ner på adressen: http://www.posten.se/img/cmt/FriStorlek/transportinstruktion.zip
På ett ställe där står det att jag ska skriva en "Checksiffra modulus-10 för belopp i ören.". Hur jag än gör lyckas jag inte lösa detta. Jag testade en funktion som jag hittade men den stämde vad jag vet.
Någon som har några tips?
EkströmMedlem sedan feb. 20022 594 inlägg Mod 10 innebär väl i det sammanhanget inget annat än ett heltal 0 >= x <= 9? Var du sen ska få checksiffran ifrån eller om det är din att godtyckligt sätta vet jag inte.
spangoMedlem sedan juni 20008 205 inlägg Det slutade med att jag fick göra en egen funktion, mest bara för att jag skulle förstå hur det funkade.
Jag fick ett svar från posten som sa att de använde samma sätt att räkna ut checksiffran som Bankgirot och skulle därför fråga de om hur man räknade ut den. Som tur var hittade jag denna http://www.bgc.se/upload/Gemensamt/Trycksaker/Manualer/10-MODUL.pdf som förklarade allt på ett mycket lätt och bra sätt.
Min funktion:
function mod10check($value) {
$value = strrev($value);
$base = 2;
$sum = 0;
for ($i = 0; $i <= strlen($value) - 1; $i++) {
$prod = $value{$i} * $base;
if ($prod > 9) {
$sum = $sum + 1 + $prod % 10;
} else {
$sum = $sum + $prod;
}
if ($base == 1) {
$base = 2;
} else {
$base = 1;
}
}
return (ceil($sum/10) * 10) - $sum;
}