128 lines
3.2 KiB
TypeScript
128 lines
3.2 KiB
TypeScript
import { Tuple } from "./tuple";
|
|
|
|
var rangeMaterialMapping: { [key: string]: (id: number) => boolean } = {
|
|
soda: (id: number) => id == 1031,
|
|
water: (id: number) => id == 1,
|
|
ice: (id: number) => id == 9100,
|
|
whipper: (id: number) => id == 8102,
|
|
bean: (id: number) => inRange(1001, 1009, id) || inRange(1100, 1199, id),
|
|
leaves: (id: number) => inRange(1600, 1799, id),
|
|
syrup: (id: number) =>
|
|
inRange(1032, 1039, id) ||
|
|
inRange(1020, 1030, id) ||
|
|
inRange(1200, 1299, id),
|
|
powder: (id: number) => inRange(1040, 1080, id) || inRange(1300, 1399, id),
|
|
cup: (id: number) => inRange(9500, 9549, id),
|
|
lid: (id: number) => inRange(9600, 9649, id),
|
|
straw: (id: number) => inRange(9700, 9749, id),
|
|
icecream: (id: number) => inRange(2100, 2200, id),
|
|
};
|
|
|
|
export function inRange(min: number, max: number, value: number) {
|
|
// console.log(min, max, value, value >= min && value <= max);
|
|
return value >= min && value <= max;
|
|
}
|
|
|
|
export function getCategories() {
|
|
|
|
let keys = Object.keys(rangeMaterialMapping);
|
|
keys.push('equipment');
|
|
return keys;
|
|
}
|
|
|
|
export function getMaterialType(materialId: number) {
|
|
for (const key of Object.keys(rangeMaterialMapping)) {
|
|
if (rangeMaterialMapping[key](materialId)) {
|
|
return key;
|
|
}
|
|
}
|
|
|
|
return 'others';
|
|
}
|
|
|
|
export function isNonMaterial(materialId: number) {
|
|
// test cup, lid, straw
|
|
return (
|
|
rangeMaterialMapping['cup'](materialId) ||
|
|
rangeMaterialMapping['lid'](materialId) ||
|
|
rangeMaterialMapping['straw'](materialId) ||
|
|
rangeMaterialMapping['whipper'](materialId) ||
|
|
rangeMaterialMapping['ice'](materialId)
|
|
);
|
|
}
|
|
|
|
// Inter mode checker
|
|
export function convertFromInterProductCode(materialId: number) {
|
|
let interPrefix = Math.floor(materialId / 10000) * 10000;
|
|
let interId = materialId - interPrefix;
|
|
|
|
return interId;
|
|
}
|
|
|
|
// StringParam
|
|
|
|
export class StringParam {
|
|
StringParam: string;
|
|
extractedParams: { [key: string]: any } = {};
|
|
|
|
|
|
constructor(StringParam: string) {
|
|
this.StringParam = StringParam;
|
|
}
|
|
|
|
extract(){
|
|
|
|
// split by ,
|
|
const params = this.StringParam.split(',');
|
|
|
|
for (const param of params) {
|
|
const [key, value] = param.split('=');
|
|
if(key != ''){
|
|
this.extractedParams[key] = value;
|
|
}
|
|
}
|
|
|
|
return this;
|
|
}
|
|
|
|
as_list(){
|
|
let res: {pkey: string; pvalue:any}[] = [];
|
|
// iter through param
|
|
for(let p of Object.keys(this.extractedParams)){
|
|
res.push({
|
|
"pkey": p,
|
|
"pvalue": this.extractedParams[p]
|
|
})
|
|
}
|
|
|
|
return res
|
|
}
|
|
}
|
|
|
|
export var stringParamsDefinition: { [key: string]: string } = {
|
|
'esp-v2-press-value': 'Current 100 x mA ( 10 - 24 )'
|
|
}
|
|
|
|
export var conditionTests: { [key: string]: (arg: any) => boolean } = {
|
|
'not-zero': (arg: any) => arg != 0,
|
|
'zero': (arg: any) => arg == 0,
|
|
'false-if-another-exist': (arg: any) => arg[1] != undefined
|
|
}
|
|
|
|
|
|
export var countryMap: Tuple<string, string>[] = [
|
|
new Tuple<string, string>('tha', 'Thailand'),
|
|
new Tuple<string, string>('mys', 'Malaysia'),
|
|
new Tuple<string, string>('aus', 'Australia'),
|
|
];
|
|
|
|
export function getCountryMapSwitcher(param: string) {
|
|
|
|
console.log("param = ", param);
|
|
|
|
for (const country of countryMap) {
|
|
if(country.first == param || country.second == param){
|
|
return country.switchGet(param);
|
|
}
|
|
}
|
|
}
|