// Encoding documentation
|
// http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf
|
|
import Barcode from "../Barcode.js";
|
|
class pharmacode extends Barcode{
|
constructor(data, options){
|
super(data, options);
|
this.number = parseInt(data, 10);
|
}
|
|
encode(){
|
var z = this.number;
|
var result = "";
|
|
// http://i.imgur.com/RMm4UDJ.png
|
// (source: http://www.gomaro.ch/ftproot/Laetus_PHARMA-CODE.pdf, page: 34)
|
while(!isNaN(z) && z != 0){
|
if(z % 2 === 0){ // Even
|
result = "11100" + result;
|
z = (z - 2) / 2;
|
}
|
else{ // Odd
|
result = "100" + result;
|
z = (z - 1) / 2;
|
}
|
}
|
|
// Remove the two last zeroes
|
result = result.slice(0, -2);
|
|
return {
|
data: result,
|
text: this.text
|
};
|
}
|
|
valid(){
|
return this.number >= 3 && this.number <= 131070;
|
}
|
}
|
|
export {pharmacode};
|