kivitendo/js/kivi.ScanQRBill.js @ 5b43c81a
33528d10 | Cem Aydin | namespace('kivi.ScanQRBill', function(ns) {
|
|
ns.onScanSuccess = async (decodedText, decodedResult) => {
|
|||
// stop camera
|
|||
await html5Qrcode.stop();
|
|||
// send the scanned text to the server
|
|||
const data = [];
|
|||
data.push({ name: 'qrtext', value: decodedText });
|
|||
data.push({ name: 'action', value: 'ScanQRBill/handle_scan_result' });
|
|||
$.post("controller.pl", data, kivi.eval_json_result);
|
|||
}
|
|||
ns.onScanFailure = (error) => {
|
|||
// handle scan failure, usually better to ignore and keep scanning.
|
|||
//console.warn(`Code scan error = ${error}`);
|
|||
}
|
|||
ns.popupInvalidQRBill = (error) => {
|
|||
console.warn('popupInvalidQRBill', error);
|
|||
$('#qr_code_invalid_error').text(error);
|
|||
$('#qr_code_invalid_modal').modal('open');
|
|||
}
|
|||
ns.popupVendorNotFound = (vn) => {
|
|||
//console.warn('popupVendorNotFound', vn);
|
|||
$('#vendor_name').text(vn);
|
|||
$('#vendor_not_found_error').modal('open');
|
|||
}
|
|||
ns.sendTestCode = async (code) => {
|
|||
// function to easily send code without scanning
|
|||
// use for testing only
|
|||
if (html5Qrcode.isScanning) {
|
|||
// stop camera
|
|||
await html5Qrcode.stop();
|
|||
}
|
|||
const data = [];
|
|||
const codes = [
|
|||
"SPC\r\n0200\r\n1\r\nCH4431999123000889012\r\nS\r\nMax Muster & Söhne\r\nMusterstrasse\r\n123\r\n8000\r\nSeldwyla\r\nCH\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n1949.75\r\nCHF\r\nS\r\nSimon Muster\r\nMusterstrasse\r\n1\r\n8000\r\nSeldwyla\r\nCH\r\nQRR\r\n210000000003139471430009017\r\nOrder from 15.10.2020\r\nEPD\r\n//S1/10/1234/11/201021/30/102673386/32/7.7/40/0:30\r\nName AV1: UV;UltraPay005;12345\r\nName AV2: XY;XYService;54321",
|
|||
"SPC\n0200\n1\nCH5800791123000889012\nS\nMuster Krankenkasse\nMusterstrasse\n12\n8000\nSeldwyla\nCH\n\n\n\n\n\n\n\n211.00\nCHF\nS\nSarah Beispiel\nMusterstrasse\n1\n8000\nSeldwyla\nCH\nSCOR\nRF240191230100405JSH0438\n\nEPD\n",
|
|||
"SPC\n0200\n1\nCH5800791123000889012\nS\nMax Muster & Söhne\nMusterstrasse\n123\n8000\nSeldwyla\nCH\n\n\n\n\n\n\n\n199.95\nCHF\nS\nSarah Beispiel\nMusterstrasse\n1\n78462\nKonstanz\nDE\nSCOR\nRF18539007547034\n\nEPD\n",
|
|||
// for testing XSS
|
|||
"SPC\r\n0200\r\n1\r\nCH4431999123000889012\r\nS\r\nMax Muster & Söhne\r\nMusterstrasse\r\n123\r\n8000\r\nSeldwyla\r\nCH\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n1949.75\r\nCHF\r\nS\r\nSimon Muster\r\nMusterstrasse\r\n1\r\n8000\r\nSeldwyla\r\nCH\r\nQRR\r\n210000000003139471430009017\r\nOrder from 15.10.2020\r\nEPD\r\n//S1/10/1234/11/201021/30/102673386/32/7.7/40/0:30<script>alert('XSS!');</script>\r\nName AV1: UV;UltraPay005;12345\r\nName AV2: XY;XYService;54321",
|
|||
"<script>alert('XSS!');</script>",
|
|||
];
|
|||
data.push({ name: 'qrtext', value: codes[code] });
|
|||
data.push({ name: 'action', value: 'ScanQRBill/handle_scan_result' });
|
|||
$.post("controller.pl", data, kivi.eval_json_result);
|
|||
}
|
|||
});
|