Invoice Generator

Dark
White
Cream
--
Total Invoiced
--
Total Paid
--
Outstanding
--
Overdue
Create and manage client invoices
Invoice #ClientAmountDue DateStatusActions
;invoices[_0x4c7110(0x1be)]&&(_0x5475ab={'GBP':'£','EUR':'€','CAD':'C ,'AUD':'A }[invoices[0x1*0x141b+-0x53*0x67+0xd4a][_0x4c7110(0x201)]||'USD']||' ),document[_0x4c7110(0x1ba)]('stat-total')[_0x4c7110(0x1b3)]=_0x5475ab+_0x26bf18['toFixed'](-0x4c*-0x21+-0x75d+-0x26d),document[_0x4c7110(0x1ba)]('stat-paid')[_0x4c7110(0x1b3)]=_0x5475ab+_0x5e5dbf[_0x4c7110(0x236)](-0x45*-0x75+0x1*0x1893+0x56*-0xa7),document['getElementById'](_0x4c7110(0x1e8))[_0x4c7110(0x1b3)]=_0x5475ab+_0xfc031d[_0x4c7110(0x236)](0x19c1*0x1+-0x4+0x3ad*-0x7),document['getElementById'](_0x4c7110(0x1e7))['textContent']=_0x312cf2;}function renderTable(){var _0x3ed169=_0x2bad7b;const _0x43fafb=document['getElementById'](_0x3ed169(0x251));invoices['length']?_0x43fafb[_0x3ed169(0x199)]=invoices['map'](_0x2fe8aa=>{var _0xa0460=_0x3ed169;const _0x876128={'GBP':'£','EUR':'€','CAD':'C ,'AUD':'A }[_0x2fe8aa[_0xa0460(0x201)]]||' ;return'\x0a\x20\x20\x20\x20\x20\x20'+escHtml(_0x2fe8aa['invoice_number'])+_0xa0460(0x1dd)+escHtml(_0x2fe8aa['client_name'])+'\x0a\x20\x20\x20\x20\x20\x20'+_0x876128+Number(_0x2fe8aa[_0xa0460(0x1f7)]||-0x1*0xbfb+0x1ae5+-0xeea*0x1)['toFixed'](-0xf5f+0x1*-0x102b+-0x6*-0x542)+'\x0a\x20\x20\x20\x20\x20\x20'+(_0x2fe8aa['due_date']||'-')+_0xa0460(0x23d)+_0x2fe8aa[_0xa0460(0x1f3)]+'\x22>'+_0x2fe8aa[_0xa0460(0x1f3)]+_0xa0460(0x20c)+_0x2fe8aa['id']+')\x22>Edit\x0a\x20\x20\x20\x20\x20\x20\x20\x20Mark\x20Paid\x0a\x20\x20\x20\x20\x20\x20\x20\x20Print\x0a\x20\x20\x20\x20\x20\x20\x20\x20Delete\x0a\x20\x20\x20\x20\x20\x20\x0a\x20\x20\x20\x20';})['join'](''):_0x43fafb['innerHTML']=_0x3ed169(0x1a9);}function exportCSV(){var _0x5e1a8f=_0x2bad7b;if(invoices['length']){var _0x46d56f=_0x5e1a8f(0x214)+invoices[_0x5e1a8f(0x239)](function(_0x867e0){var _0x16ee49=_0x5e1a8f;return['\x22'+csvSafe(_0x867e0[_0x16ee49(0x1a5)])+'\x22','\x22'+csvSafe(_0x867e0['client_name'])+'\x22',Number(_0x867e0[_0x16ee49(0x1f7)]||-0x404+0x2055*0x1+0x293*-0xb)['toFixed'](0x550+0x16cc+-0xb*0x28e),_0x867e0['currency']||_0x16ee49(0x187),_0x867e0[_0x16ee49(0x256)]||'',_0x867e0[_0x16ee49(0x1f3)]||_0x16ee49(0x227),_0x867e0[_0x16ee49(0x193)]||-0x694*0x3+0x1369*0x1+0x53,'\x22'+csvSafe(_0x867e0[_0x16ee49(0x19a)]||'')+'\x22'][_0x16ee49(0x234)](',');})['join']('\x0a'),_0x5033c0=new Blob([_0x46d56f],{'type':'text/csv'}),_0x4e97c8=document['createElement']('a');_0x4e97c8['href']=URL['createObjectURL'](_0x5033c0),_0x4e97c8[_0x5e1a8f(0x21c)]=_0x5e1a8f(0x246)+new Date()[_0x5e1a8f(0x225)]()['slice'](0x2*-0x1118+-0x1*-0x504+-0x74b*-0x4,-0x14*-0x3+-0x1645*0x1+0x1613)+'.csv',_0x4e97c8[_0x5e1a8f(0x24a)](),URL['revokeObjectURL'](_0x4e97c8[_0x5e1a8f(0x23f)]);}else alert(_0x5e1a8f(0x1da));}function csvSafe(_0x784717){var _0x1f1ebf=_0x2bad7b;return String(null==_0x784717?'':_0x784717)[_0x1f1ebf(0x208)](/"/g,'\x22\x22');}function exportPDF(){var _0x20be22=_0x2bad7b;if(invoices['length']){var _0x3e4fe8=window['open']('','_blank'),_0x2b9619=invoices[_0x20be22(0x239)](function(_0x5068e2){var _0x3b2d0a=_0x20be22,_0x334230={'GBP':'£','EUR':'€','CAD':'C ,'AUD':'A }[_0x5068e2[_0x3b2d0a(0x201)]]||' ;return _0x3b2d0a(0x1d3)+escHtml(_0x5068e2['invoice_number'])+''+escHtml(_0x5068e2['client_name'])+_0x3b2d0a(0x1ff)+_0x334230+Number(_0x5068e2['total']||0x1a7b+-0x1cc1+-0x123*-0x2)[_0x3b2d0a(0x236)](0x1709*0x1+-0x6b*-0x16+-0x71*0x49)+''+(_0x5068e2[_0x3b2d0a(0x256)]||'-')+_0x3b2d0a(0x1ff)+(_0x5068e2[_0x3b2d0a(0x1f3)]||'draft')+'';})['join']('');_0x3e4fe8['document'][_0x20be22(0x194)]('Invoices\x20Export'),_0x3e4fe8['document'][_0x20be22(0x194)]('

Invoice\x20Report

Generated:\x20'+new Date()['toLocaleDateString']()+_0x20be22(0x1f2)),_0x3e4fe8[_0x20be22(0x226)]['write'](_0x20be22(0x231)+_0x2b9619+'');var _0xbeba6d=invoices['reduce'](function(_0x346241,_0x3824f0){return _0x346241+Number(_0x3824f0['total']||0x5c8+0x1f6d+-0x2535);},-0x1cd*-0x7+0x1549*-0x1+0x8ae),_0x439b6f=invoices[_0x20be22(0x23c)](function(_0x3128e5){var _0x49b808=_0x20be22;return _0x49b808(0x228)===_0x3128e5['status'];})[_0x20be22(0x1cb)](function(_0x5a2658,_0x8b9100){return _0x5a2658+Number(_0x8b9100['total']||0x228b+-0x965+-0x4a*0x57);},0x2621*-0x1+-0x448*-0x8+-0x1*-0x3e1);_0x3e4fe8[_0x20be22(0x226)][_0x20be22(0x194)]('Total\x20Invoiced:\x20 +_0xbeba6d[_0x20be22(0x236)](0x4d*0xf+-0x1e1f+0x199e)+_0x20be22(0x213)+_0x439b6f[_0x20be22(0x236)](0x1*0x1db+0x1*0x1244+-0x141d)+'\x20|\x20Outstanding:\x20 +(_0xbeba6d-_0x439b6f)['toFixed'](-0x3*-0x5b9+0x1*-0xd10+-0x419)+_0x20be22(0x218)),_0x3e4fe8[_0x20be22(0x226)]['write'](_0x20be22(0x241)),_0x3e4fe8[_0x20be22(0x226)][_0x20be22(0x1d0)](),setTimeout(function(){_0x3e4fe8['print']();},0x1944+0x589*-0x2+0x16*-0x93);}else alert(_0x20be22(0x1da));}function openScanModal(){var _0x117716=_0x2bad7b;document[_0x117716(0x1ba)](_0x117716(0x19c))[_0x117716(0x1b0)][_0x117716(0x18a)]='',document[_0x117716(0x1ba)](_0x117716(0x1c8))['style']['display']='none',document[_0x117716(0x1ba)]('scan-preview')[_0x117716(0x1b0)]['display']='none',document['getElementById']('scan-modal')['classList'][_0x117716(0x19b)]('active');}function closeScanModal(){closeCamera(),document['getElementById']('scan-modal')['classList']['remove']('active');}async function openCamera(){var _0x5947f8=_0x2bad7b,_0xa49ae4=document['getElementById'](_0x5947f8(0x1e6)),_0xedfd05=document[_0x5947f8(0x1ba)](_0x5947f8(0x223));try{cameraStream=await navigator['mediaDevices'][_0x5947f8(0x203)]({'video':{'facingMode':'environment','width':{'ideal':0x780},'height':{'ideal':0x438}}}),_0xedfd05['srcObject']=cameraStream,_0xa49ae4['style'][_0x5947f8(0x18a)]='block';}catch(_0x3d5cf4){alert(_0x5947f8(0x185)+_0x3d5cf4['message']+'\x0aPlease\x20use\x20the\x20file\x20upload\x20instead.');}}function closeCamera(){var _0x1f0305=_0x2bad7b;cameraStream&&(cameraStream[_0x1f0305(0x1fd)]()['forEach'](function(_0x55e24b){var _0xe4ccb=_0x1f0305;_0x55e24b[_0xe4ccb(0x1bc)]();}),cameraStream=null),document[_0x1f0305(0x1ba)](_0x1f0305(0x1e6))[_0x1f0305(0x1b0)][_0x1f0305(0x18a)]=_0x1f0305(0x1a7);}function capturePhoto(){var _0x4b4968=_0x2bad7b,_0x515050=document[_0x4b4968(0x1ba)]('camera-video'),_0x5d08c5=document[_0x4b4968(0x1ba)]('scan-canvas');_0x5d08c5['width']=_0x515050['videoWidth'],_0x5d08c5[_0x4b4968(0x20d)]=_0x515050['videoHeight'],_0x5d08c5[_0x4b4968(0x249)]('2d')[_0x4b4968(0x1bd)](_0x515050,-0xc5e+-0x1*0x2617+0x3275*0x1,0x382+0x1b4e+-0x1ed0),closeCamera(),_0x5d08c5[_0x4b4968(0x1ab)](function(_0x561694){processImage(_0x561694);},_0x4b4968(0x1d9),-0x1005*0x1+-0xc3+0x10c8+0.92);}function preprocessImage(_0x5874c3){var _0x224271=_0x2bad7b,_0x42594f=document[_0x224271(0x1ba)]('scan-canvas'),_0x4b50d2=_0x5874c3['width']>-0x202a+-0xc4+0x5d2*0x7?(-0x6*0x293+-0x247d+0x13*0x325)/_0x5874c3['width']:0x18d6+0xad4+-0x23a9;_0x42594f['width']=Math['round'](_0x5874c3['width']*_0x4b50d2),_0x42594f['height']=Math['round'](_0x5874c3['height']*_0x4b50d2);var _0x35cf36=_0x42594f[_0x224271(0x249)]('2d');_0x35cf36['drawImage'](_0x5874c3,0x5c9+-0x1*0x2ac+-0x31d,0x1708*-0x1+0x1e66*-0x1+-0x2*-0x1ab7,_0x42594f[_0x224271(0x1c4)],_0x42594f[_0x224271(0x20d)]);for(var _0x3b3b08=_0x35cf36['getImageData'](0x10d*-0x22+-0x11*-0x1c9+0x561*0x1,0x3*-0x75+-0x248a+0x25e9,_0x42594f[_0x224271(0x1c4)],_0x42594f['height']),_0x1ac723=_0x3b3b08[_0x224271(0x1ae)],_0xb165da=0x7*0x30a+-0x1*0x2577+0x1031;_0xb165da<_0x1ac723[_0x224271(0x1be)];_0xb165da+=-0x15*0x53+0xc*-0xb+0x757*0x1){var _0x51290e=(-0x14f2+-0x58*0x2a+0x2362+0.299)*_0x1ac723[_0xb165da]+(-0xa*-0x368+-0x3*-0x1f9+-0x27fb+0.587)*_0x1ac723[_0xb165da+(-0x254d+0xa*-0x363+0x2*0x2396)]+(-0x9f7*-0x1+0x20f4+-0x2aeb+0.114)*_0x1ac723[_0xb165da+(0x1b1+-0x1c7+0x18)];_0x1ac723[_0xb165da]=_0x1ac723[_0xb165da+(0x90f+-0xbd3*-0x2+-0x12b*0x1c)]=_0x1ac723[_0xb165da+(-0x10a*-0x4+-0x15e4+0x11be)]=_0x51290e;}for(_0xb165da=0x1c1+0x24ab+-0x266c;_0xb165da<_0x1ac723[_0x224271(0x1be)];_0xb165da+=-0xbf*0x7+0xf56+-0xa19){var _0x2f128d=_0x1ac723[_0xb165da];_0x2f128d=(_0x2f128d=(-0x1a79+-0x36a+0x1ee2)*((0x1*-0x383+0x15f0+-0x126c+0.5)*(_0x2f128d/(0x1*0x1727+-0x204+-0x1424)-(-0x12b*-0x3+0xe2*-0x1b+-0x5*-0x411+0.5))+(0x6d2+-0x1663+-0x1*-0xf91+0.5)))<-0xaa2*0x1+0x13d0+-0x92e?0x162+0x2*0x1177+-0x2450*0x1:_0x2f128d>0x78f+0x208b*-0x1+0x19fb?0x27e+-0xa54+0x143*0x7:_0x2f128d,_0x1ac723[_0xb165da]=_0x1ac723[_0xb165da+(0x4*-0xf0+-0x644+-0xab*-0xf)]=_0x1ac723[_0xb165da+(-0x2a9+-0x1535+0x17e*0x10)]=_0x2f128d;}var _0x18b35f=0x12df+-0x1*-0x1212+0x24f1*-0x1;for(_0xb165da=-0x2*-0x1061+-0x1f22+-0x1a0;_0xb165da<_0x1ac723['length'];_0xb165da+=0x1cb1+0x8f8+-0x25a5)_0x18b35f+=_0x1ac723[_0xb165da];var _0x28b945=_0x18b35f/(_0x1ac723['length']/(-0x186+0x239f+-0x2215))*(-0x40a+-0x9de+0xde8*0x1+0.85);for(_0xb165da=0xd8*-0x3+0x1*0x26c4+-0x2*0x121e;_0xb165da<_0x1ac723[_0x224271(0x1be)];_0xb165da+=-0x13*-0xb1+0x4c8*-0x2+-0x38f){var _0xe99ea=_0x1ac723[_0xb165da]>_0x28b945?-0x39f+-0x17ae+-0xe26*-0x2:-0xfc+-0x2181*-0x1+-0x2085;_0x1ac723[_0xb165da]=_0x1ac723[_0xb165da+(-0x1c46+-0x22*-0x9f+-0x729*-0x1)]=_0x1ac723[_0xb165da+(0x1*0x1066+0x16b1+-0x2715)]=_0xe99ea;}return _0x35cf36['putImageData'](_0x3b3b08,0x5ad*0x2+0x2c*-0x1a+-0x6e2,-0x2*0xbcb+-0x3ee+0x92c*0x3),_0x42594f;}function loadTesseract(){return new Promise(function(_0x4899b2,_0x507107){var _0x4718f1=_0x271d;if(window['Tesseract'])_0x4899b2();else{var _0x317a08=document['createElement'](_0x4718f1(0x232));_0x317a08[_0x4718f1(0x23b)]=_0x4718f1(0x1a6),_0x317a08[_0x4718f1(0x261)]=_0x4899b2,_0x317a08['onerror']=function(){var _0x5cf613=_0x4718f1;_0x507107(new Error(_0x5cf613(0x1f5)));},document['head']['appendChild'](_0x317a08);}});}async function processImage(_0x1d3cd0){var _0x35bbf0=_0x2bad7b;document['getElementById']('scan-step-upload')[_0x35bbf0(0x1b0)]['display']=_0x35bbf0(0x1a7),document[_0x35bbf0(0x1ba)]('scan-progress')[_0x35bbf0(0x1b0)][_0x35bbf0(0x18a)]='block',document[_0x35bbf0(0x1ba)](_0x35bbf0(0x22e))[_0x35bbf0(0x1b0)][_0x35bbf0(0x18a)]=_0x35bbf0(0x1a7),updateScanProgress(0x2*0xcde+0x3a*0x9d+-0x3d49,'Loading\x20OCR\x20engine...');try{await loadTesseract(),updateScanProgress(-0x217c*0x1+0x587+-0xb*-0x28c,'Preprocessing\x20image...');var _0x54d7b5=preprocessImage(await createImageFromBlob(_0x1d3cd0));updateScanProgress(-0x1a55+-0x51*0x2e+-0x147e*-0x2,_0x35bbf0(0x1a1));var _0x433458=await Tesseract['recognize'](_0x54d7b5,_0x35bbf0(0x210),{'logger':function(_0x5c1561){var _0x11d702=_0x35bbf0;_0x11d702(0x1ef)===_0x5c1561[_0x11d702(0x1f3)]&&updateScanProgress(0x6fe+0xa76+-0x5c9*0x3+Math['round']((-0x1f3d+-0x4*0x459+0x30e2)*_0x5c1561[_0x11d702(0x183)]),'Recognizing\x20text...\x20'+Math['round']((-0x12c4+-0x187a+-0x2ba2*-0x1)*_0x5c1561['progress'])+'%');}});updateScanProgress(-0xcc2+0xf88+-0x267,'Extracting\x20fields...');var _0xc6acfd=_0x433458['data'][_0x35bbf0(0x19d)]||'',_0x4d558b=parseReceiptText(_0xc6acfd);updateScanProgress(-0x22a4+0xd59+0x319*0x7,'Done!'),setTimeout(function(){showScanPreview(_0x4d558b,_0xc6acfd);},-0x129d+0x514+-0xf*-0xfb);}catch(_0x5d2960){alert(_0x35bbf0(0x25f)+_0x5d2960[_0x35bbf0(0x1cd)]),document[_0x35bbf0(0x1ba)](_0x35bbf0(0x19c))['style'][_0x35bbf0(0x18a)]='',document[_0x35bbf0(0x1ba)]('scan-progress')[_0x35bbf0(0x1b0)][_0x35bbf0(0x18a)]=_0x35bbf0(0x1a7);}}function createImageFromBlob(_0x5aadbc){return new Promise(function(_0x2e9b43,_0x450802){var _0x4936f6=_0x271d,_0x469764=new Image();_0x469764['onload']=function(){var _0x422eb8=_0x271d;_0x2e9b43(_0x469764),URL[_0x422eb8(0x244)](_0x469764[_0x422eb8(0x23b)]);},_0x469764['onerror']=_0x450802,_0x5aadbc instanceof Blob?_0x469764[_0x4936f6(0x23b)]=URL[_0x4936f6(0x216)](_0x5aadbc):_0x469764[_0x4936f6(0x23b)]=_0x5aadbc;});}function updateScanProgress(_0x356255,_0x131dc6){var _0x5cfc43=_0x2bad7b;document['getElementById']('scan-progress-fill')['style'][_0x5cfc43(0x1c4)]=_0x356255+'%',document['getElementById']('scan-progress-pct')[_0x5cfc43(0x1b3)]=_0x356255+'%',_0x131dc6&&(document['getElementById'](_0x5cfc43(0x1f0))[_0x5cfc43(0x1b3)]=_0x131dc6);}function parseReceiptText(_0x54b617){var _0x46a079=_0x2bad7b,_0x358cc0=_0x54b617['split']('\x0a')[_0x46a079(0x239)](function(_0x2a160e){return _0x2a160e['trim']();})['filter'](function(_0x186a36){var _0x455e68=_0x46a079;return _0x186a36[_0x455e68(0x1be)]>0x4f*0x65+0xb48+-0x2a73;}),_0x37c5fe={'vendor':'','date':'','total':'','tax':'','currency':_0x46a079(0x187),'items':[]};/\u00A3|GBP|gbp/[_0x46a079(0x1e3)](_0x54b617)?_0x37c5fe[_0x46a079(0x201)]=_0x46a079(0x1de):/\u20AC|EUR|eur/['test'](_0x54b617)?_0x37c5fe['currency']=_0x46a079(0x215):/C\$|CAD/i['test'](_0x54b617)?_0x37c5fe['currency']='CAD':/A\$|AUD/i[_0x46a079(0x1e3)](_0x54b617)&&(_0x37c5fe['currency']='AUD');for(var _0x22e31d=0x5*0x34a+-0x3bc+-0x1*0xcb6;_0x22e31d0x2094+-0x1237*0x2+0x3dc&&!/^\d{1,2}[\/\-.]/[_0x46a079(0x1e3)](_0x17419f)&&!/^[\d\$\u00A3\u20AC]/['test'](_0x17419f)&&!/^(tel|phone|fax|www|http)/i['test'](_0x17419f)){_0x37c5fe[_0x46a079(0x20b)]=_0x17419f;break;}}var _0x264b33=[/(\d{1,2})[\/\-.](\d{1,2})[\/\-.](\d{4})/,/(\d{4})[\/\-.](\d{1,2})[\/\-.](\d{1,2})/,/(\d{1,2})[\/\-.](\d{1,2})[\/\-.](\d{2})\b/,/(\d{1,2})\s+(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\w*\s+(\d{4})/i,/(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\w*\s+(\d{1,2}),?\s+(\d{4})/i];for(_0x22e31d=0x7fd*-0x2+0xd5f+-0x29b*-0x1;_0x22e31d<_0x358cc0['length'];_0x22e31d++){for(var _0x447d73=-0x90a+-0x6d9*-0x1+-0x1*-0x231;_0x447d73<_0x264b33[_0x46a079(0x1be)];_0x447d73++)if(_0x54d277=_0x358cc0[_0x22e31d]['match'](_0x264b33[_0x447d73])){try{var _0x325186=new Date(_0x54d277[0x2*0xfa5+-0x3*0x133+-0x1a1*0x11]['replace'](/\./g,'/'));!isNaN(_0x325186[_0x46a079(0x24e)]())&&_0x325186[_0x46a079(0x19e)]()>-0xd*0x271+-0x11d+-0x1455*-0x2&&(_0x37c5fe['date']=_0x325186['toISOString']()['slice'](-0x1bb2+-0xb*-0x1a7+0x985,-0xa*0x3ab+0x264d+0x5*-0x51));}catch(_0x5e3adb){}if(!_0x37c5fe['date']&&_0x54d277[0x2084+-0xe7+-0x1f9a]&&-0x7*-0x335+-0x61*-0x39+-0x2c08===_0x54d277[-0x16f9*-0x1+-0x16*-0x17a+-0x1bb9*0x2]['length']){var _0x4d41dc=parseInt(_0x54d277[-0x255e*0x1+0x19f8+0xb67]),_0x4302db=parseInt(_0x54d277[0x1*0x14f+0x5d5+-0x53*0x16]);_0x4d41dc>0x10fb+0x391+-0x1480||'GBP'===_0x37c5fe[_0x46a079(0x201)]||_0x46a079(0x215)===_0x37c5fe['currency']?_0x37c5fe['date']=_0x54d277[0x1336+0x3d3+-0x34a*0x7]+'-'+String(_0x4302db)['padStart'](0x1f48+-0x468+-0x26*0xb5,'0')+'-'+String(_0x4d41dc)['padStart'](-0x3*-0x18e+-0x16d*0x10+0x1228,'0'):_0x37c5fe[_0x46a079(0x1e4)]=_0x54d277[-0x14bd+0x1b32+-0x42*0x19]+'-'+String(_0x4d41dc)['padStart'](0x5e*0x45+0xbe9+-0x253d,'0')+'-'+String(_0x4302db)[_0x46a079(0x1a2)](0x1567+0x609*0x3+0x1*-0x2780,'0');}break;}if(_0x37c5fe['date'])break;}var _0x322990=[/(?:TOTAL|GRAND\s*TOTAL|AMOUNT\s*DUE|BALANCE\s*DUE|TOTAL\s*DUE|NET\s*TOTAL|SUM)\s*[:\s]*[\$\u00A3\u20AC]?\s*(\d+[.,]\d{2})/i,/[\$\u00A3\u20AC]\s*(\d+[.,]\d{2})\s*(?:TOTAL|DUE)/i];for(_0x22e31d=_0x358cc0['length']-(-0xa34*0x1+-0x833*-0x1+0x1*0x202);_0x22e31d>=-0xe6f+0x1b44+0xf*-0xdb;_0x22e31d--){for(_0x447d73=0x23e4*0x1+-0x1*0x17af+-0x7d*0x19;_0x447d73<_0x322990[_0x46a079(0x1be)];_0x447d73++)if(_0x54d277=_0x358cc0[_0x22e31d]['match'](_0x322990[_0x447d73])){_0x37c5fe[_0x46a079(0x1f7)]=_0x54d277[-0x1cf2+-0xe*0x28a+0x407f][_0x46a079(0x208)](',','.');break;}if(_0x37c5fe[_0x46a079(0x1f7)])break;}if(!_0x37c5fe['total']){for(_0x22e31d=_0x358cc0['length']-(0x1037+-0x17a0+0xd*0x92);_0x22e31d>=Math['max'](-0x25a0+-0x26ef+0x1985*0x3,_0x358cc0['length']-(-0x1d31*-0x1+-0xdf*0x1f+0x17*-0x18));_0x22e31d--)if(_0x54d277=_0x358cc0[_0x22e31d]['match'](/[\$\u00A3\u20AC]?\s*(\d{1,6}[.,]\d{2})/)){_0x37c5fe['total']=_0x54d277[-0x26f0+0xa2*-0x32+-0x3b7*-0x13]['replace'](',','.');break;}}var _0x5b4062=[/(?:TAX|VAT|GST|HST)\s*[:\s]*[\$\u00A3\u20AC]?\s*(\d+[.,]\d{2})/i,/(?:TAX|VAT|GST|HST)\s*\(?\d*%?\)?\s*[:\s]*[\$\u00A3\u20AC]?\s*(\d+[.,]\d{2})/i];for(_0x22e31d=0x392*0x7+-0xca0+-0xc5e;_0x22e31d<_0x358cc0['length'];_0x22e31d++){for(_0x447d73=-0x1ffb+0x2*-0x5af+0x1b*0x19b;_0x447d73<_0x5b4062[_0x46a079(0x1be)];_0x447d73++)if(_0x54d277=_0x358cc0[_0x22e31d]['match'](_0x5b4062[_0x447d73])){_0x37c5fe['tax']=_0x54d277[0x23a9+0x3*0x2db+-0x2c39]['replace'](',','.');break;}if(_0x37c5fe[_0x46a079(0x248)])break;}var _0x3f03a6=/^(.{3,}?)\s+([\$\u00A3\u20AC]?\s*\d+[.,]\d{2})\s*$/,_0x453004=/^(subtotal|total|tax|vat|gst|change|cash|card|visa|mastercard|balance|amount|discount|tip|gratuity|payment|tendered)/i;for(_0x22e31d=0x6fc+-0x17d9+0x10dd;_0x22e31d<_0x358cc0['length'];_0x22e31d++){var _0x54d277;if((_0x54d277=_0x358cc0[_0x22e31d]['match'](_0x3f03a6))&&!_0x453004[_0x46a079(0x1e3)](_0x54d277[0xbf9+0x5*0x26+-0xcb6]['trim']())){var _0x152444=_0x54d277[-0x171b+0x3d*-0x1d+0x1e05][_0x46a079(0x1c1)](),_0x21bf89=parseFloat(_0x54d277[-0x3*0x8a8+0xd*0x7f+-0x1387*-0x1]['replace'](/[^\d.]/g,'')['replace'](',','.'));if(_0x21bf89>0x1*-0x55+0x33*0x35+-0xa3a&&_0x21bf89<-0x1e2a4+-0x1d64f*-0x1+0x192f5&&_0x152444[_0x46a079(0x1be)]>0x1005+0x2327+0x1*-0x332b){var _0x459720=_0x152444[_0x46a079(0x186)](/^(\d+)\s*[xX]\s+(.+)/),_0x735660=0x1229*-0x1+0x1*0xbe2+0x648;_0x459720&&(_0x735660=parseInt(_0x459720[0x1566+-0x37+0xa97*-0x2]),_0x152444=_0x459720[-0x1325*-0x1+0x44d*0x3+-0x200a],_0x21bf89/=_0x735660),_0x37c5fe[_0x46a079(0x20f)]['push']({'description':_0x152444,'quantity':_0x735660,'unit_price':Math['round']((0xb*0x2e2+-0x5cf+-0x1983)*_0x21bf89)/(-0x1*0xc4f+0xe9*-0xb+0x16b6)});}}}if(!_0x37c5fe['items']['length']&&_0x37c5fe['total']){var _0x248f1b=parseFloat(_0x37c5fe['total'])-parseFloat(_0x37c5fe['tax']||-0x1*0x1325+-0x301*-0x4+0x721);_0x37c5fe[_0x46a079(0x20f)]['push']({'description':_0x37c5fe['vendor']||_0x46a079(0x1e5),'quantity':0x1,'unit_price':Math['round']((0xfc1+0xad1+-0x1*0x1a2e)*_0x248f1b)/(-0x9+0x11*0x17b+-0x18be)});}return _0x37c5fe;}function showScanPreview(_0x3efcb8,_0x5847eb){var _0x35a984=_0x2bad7b;document['getElementById'](_0x35a984(0x1c8))['style']['display']='none',document[_0x35a984(0x1ba)](_0x35a984(0x22e))['style'][_0x35a984(0x18a)]='block',document['getElementById'](_0x35a984(0x1fe))[_0x35a984(0x1cf)]=_0x3efcb8[_0x35a984(0x20b)],document['getElementById'](_0x35a984(0x255))['value']=_0x3efcb8['date'],document[_0x35a984(0x1ba)](_0x35a984(0x200))['value']=_0x3efcb8[_0x35a984(0x1f7)],document[_0x35a984(0x1ba)](_0x35a984(0x24b))[_0x35a984(0x1cf)]=_0x3efcb8[_0x35a984(0x248)],document[_0x35a984(0x1ba)]('sp-currency')[_0x35a984(0x1cf)]=_0x3efcb8[_0x35a984(0x201)],document[_0x35a984(0x1ba)](_0x35a984(0x21e))[_0x35a984(0x1cf)]=_0x5847eb,document['getElementById']('sp-items')[_0x35a984(0x199)]='',_0x3efcb8['items']['length']?_0x3efcb8['items']['forEach'](function(_0x546d29){var _0x4989b1=_0x35a984;addScanItem(_0x546d29[_0x4989b1(0x230)],_0x546d29['quantity'],_0x546d29[_0x4989b1(0x1f8)]);}):(addScanItem(),addScanItem());}function addScanItem(_0xc43c68,_0x21154f,_0x3688f2){var _0x4cce56=_0x2bad7b,_0x5604dd=document['createElement'](_0x4cce56(0x22a));_0x5604dd['className']=_0x4cce56(0x24d),_0x5604dd['innerHTML']=_0x4cce56(0x207)+escAttr(_0xc43c68||'')+_0x4cce56(0x1a4)+(_0x21154f||0x10ac*-0x1+-0x22cf+0x293*0x14)+'\x22>-0x1ede*0x1+0x232e+-0x450?Math[_0x34111e(0x1e2)](_0x4f9a34/_0x465400*(-0x3b33+0x20*-0x161+0x8e63))/(-0x1ccf+-0x1072+0x2da5):0x1230+0x14*0xbf+-0x28c*0xd,_0x1dcc62={'client_name':_0x32b051,'client_email':'','client_address':'','sender_name':'','sender_email':'','sender_address':'','logo_url':'','line_items':JSON['stringify'](_0x33e5f8),'tax_rate':_0x4fea42,'currency':document[_0x34111e(0x1ba)](_0x34111e(0x197))[_0x34111e(0x1cf)],'due_date':document['getElementById'](_0x34111e(0x255))['value']||new Date()[_0x34111e(0x225)]()['slice'](-0x2677+0x510+0x1*0x2167,-0x2674+-0x981+0x2fff),'notes':_0x34111e(0x1f9),'status':_0x34111e(0x228)};await apiFetch(_0x34111e(0x1bb),{'method':'POST','body':JSON['stringify'](_0x1dcc62)}),closeScanModal(),loadInvoices();}else alert('Add\x20at\x20least\x20one\x20line\x20item');}else alert('Please\x20enter\x20a\x20vendor/client\x20name');}function resetForm(){var _0x4ef373=_0x2bad7b;document['getElementById'](_0x4ef373(0x1f6))['value']='',document['getElementById']('f-sender-name')[_0x4ef373(0x1cf)]='',document['getElementById']('f-sender-email')[_0x4ef373(0x1cf)]='',document[_0x4ef373(0x1ba)]('f-sender-addr')['value']='',document['getElementById']('f-logo-url')[_0x4ef373(0x1cf)]='',document[_0x4ef373(0x1ba)](_0x4ef373(0x240))[_0x4ef373(0x1cf)]='',document[_0x4ef373(0x1ba)]('logo-preview')[_0x4ef373(0x1b0)]['display']='none',document['getElementById'](_0x4ef373(0x196))[_0x4ef373(0x1cf)]='',document['getElementById']('f-client-email')['value']='',document['getElementById']('f-client-addr')['value']='',document['getElementById']('f-due')[_0x4ef373(0x1cf)]='',document[_0x4ef373(0x1ba)]('f-currency')[_0x4ef373(0x1cf)]='USD',document[_0x4ef373(0x1ba)]('f-status')['value']=_0x4ef373(0x227),document['getElementById'](_0x4ef373(0x211))['value']='0',document[_0x4ef373(0x1ba)]('f-notes')[_0x4ef373(0x1cf)]='',document['getElementById']('line-items')['innerHTML']='';}function _0x271d(_0x2682f3,_0x314f09){_0x2682f3=_0x2682f3-(-0x1*0x1bfa+0x264b+-0x8ce);var _0x308738=_0x3957();var _0x4996ba=_0x308738[_0x2682f3];if(_0x271d['meOIux']===undefined){var _0x1fc4cf=function(_0x5e15d2){var _0x5d4669='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';var _0x36adab='',_0x4a155c='';for(var _0x362bc6=-0x1*0x2273+-0x1*-0x1b72+-0x1*-0x701,_0x4b83ba,_0x2c2e2b,_0x9c4991=0x5*0x3b3+0x2004+-0x3283;_0x2c2e2b=_0x5e15d2['charAt'](_0x9c4991++);~_0x2c2e2b&&(_0x4b83ba=_0x362bc6%(0xf3*0xa+0x17e4*0x1+-0x2*0x10af)?_0x4b83ba*(0x9e*0x1a+-0xc71+0x35b*-0x1)+_0x2c2e2b:_0x2c2e2b,_0x362bc6++%(-0x95a+0x367*0x1+-0x3*-0x1fd))?_0x36adab+=String['fromCharCode'](0x5d5+-0x232+0xd*-0x34&_0x4b83ba>>(-(0xd1c+0x25c4*0x1+-0x1*0x32de)*_0x362bc6&-0x8*0x287+-0xcde*0x3+0x8*0x75b)):0xa53+-0x1*0xcd7+-0x2e*-0xe){_0x2c2e2b=_0x5d4669['indexOf'](_0x2c2e2b);}for(var _0x38c23f=0xcf*-0x1b+-0x1*0x1d99+0x1*0x336e,_0x22f512=_0x36adab['length'];_0x38c23f<_0x22f512;_0x38c23f++){_0x4a155c+='%'+('00'+_0x36adab['charCodeAt'](_0x38c23f)['toString'](-0x1*-0xcc8+0x1354*0x1+-0x200c))['slice'](-(0x198f+0x7*0x3be+-0x33bf));}return decodeURIComponent(_0x4a155c);};_0x271d['DkBnga']=_0x1fc4cf,_0x271d['MxQOAW']={},_0x271d['meOIux']=!![];}var _0x2ac97b=_0x308738[-0x132a+0x1471+-0x147],_0x572684=_0x2682f3+_0x2ac97b,_0xf99ab2=_0x271d['MxQOAW'][_0x572684];return!_0xf99ab2?(_0x4996ba=_0x271d['DkBnga'](_0x4996ba),_0x271d['MxQOAW'][_0x572684]=_0x4996ba):_0x4996ba=_0xf99ab2,_0x4996ba;}function openModal(){var _0x2990ec=_0x2bad7b;resetForm(),document['getElementById'](_0x2990ec(0x209))[_0x2990ec(0x1b3)]=_0x2990ec(0x1d4),document['getElementById']('btn-save')[_0x2990ec(0x1b3)]=_0x2990ec(0x1df);const _0x302075=new Date();_0x302075[_0x2990ec(0x1c3)](_0x302075['getDate']()+(-0x25e2+-0x943*0x4+0x4b0c)),document[_0x2990ec(0x1ba)](_0x2990ec(0x1a3))['value']=_0x302075['toISOString']()['slice'](-0x5*-0x3f9+-0xa97+-0x946,0x8c0*-0x4+0xd7f+0x5*0x44f),addLineItem(),addLineItem(),updateTotals(),document['getElementById']('modal')[_0x2990ec(0x205)]['add']('active');}function closeModal(){var _0x590303=_0x2bad7b;document[_0x590303(0x1ba)](_0x590303(0x22c))['classList']['remove'](_0x590303(0x1ec));}function editInvoice(_0xd68a17){var _0x1526b0=_0x2bad7b;const _0x285f2d=invoices['find'](_0x2bb28b=>_0x2bb28b['id']===_0xd68a17);if(!_0x285f2d)return;if(resetForm(),document['getElementById'](_0x1526b0(0x209))[_0x1526b0(0x1b3)]='Edit\x20Invoice\x20'+_0x285f2d['invoice_number'],document[_0x1526b0(0x1ba)](_0x1526b0(0x202))['textContent']='Save\x20Changes',document['getElementById']('f-editing-id')['value']=_0xd68a17,document[_0x1526b0(0x1ba)]('f-sender-name')[_0x1526b0(0x1cf)]=_0x285f2d[_0x1526b0(0x212)]||'',document['getElementById']('f-sender-email')['value']=_0x285f2d[_0x1526b0(0x1ce)]||'',document['getElementById'](_0x1526b0(0x204))[_0x1526b0(0x1cf)]=_0x285f2d[_0x1526b0(0x1d7)]||'',document['getElementById'](_0x1526b0(0x196))['value']=_0x285f2d['client_name']||'',document['getElementById']('f-client-email')['value']=_0x285f2d['client_email']||'',document[_0x1526b0(0x1ba)]('f-client-addr')[_0x1526b0(0x1cf)]=_0x285f2d[_0x1526b0(0x252)]||'',document[_0x1526b0(0x1ba)]('f-due')['value']=_0x285f2d['due_date']||'',document[_0x1526b0(0x1ba)]('f-currency')['value']=_0x285f2d['currency']||_0x1526b0(0x187),document[_0x1526b0(0x1ba)]('f-status')[_0x1526b0(0x1cf)]=_0x285f2d['status']||_0x1526b0(0x227),document['getElementById'](_0x1526b0(0x211))['value']=_0x285f2d['tax_rate']||-0x4*-0x25f+-0x3*0x4f5+-0x7*-0xc5,document['getElementById'](_0x1526b0(0x18c))[_0x1526b0(0x1cf)]=_0x285f2d['notes']||'',_0x285f2d['logo_url']){document['getElementById']('f-logo-url')[_0x1526b0(0x1cf)]=_0x285f2d[_0x1526b0(0x1cc)];const _0x3c3443=document[_0x1526b0(0x1ba)]('logo-preview');_0x3c3443[_0x1526b0(0x23b)]=_0x285f2d['logo_url'],_0x3c3443['style'][_0x1526b0(0x18a)]='block';}let _0x4fe1c2=[];try{_0x4fe1c2=JSON['parse'](_0x285f2d[_0x1526b0(0x21a)]||'[]');}catch(_0x4144a1){_0x4fe1c2=[];}_0x4fe1c2[_0x1526b0(0x238)](_0x2e6ec4=>addLineItem(_0x2e6ec4['description'],_0x2e6ec4['quantity'],_0x2e6ec4['unit_price'])),_0x4fe1c2['length']||(addLineItem(),addLineItem()),updateTotals(),document['getElementById']('modal')[_0x1526b0(0x205)]['add']('active');}async function uploadLogo(){var _0x4b4289=_0x2bad7b;const _0x46cafc=document['getElementById']('f-logo-file');if(!_0x46cafc['files'][0x1e64+0x1378+-0x31dc])return;const _0x4b8c0a=new FormData();_0x4b8c0a[_0x4b4289(0x23a)](_0x4b4289(0x19f),_0x46cafc['files'][-0x17a2+-0x62b*-0x5+-0x1*0x735]);try{const _0x3ca632=await fetch('/api/invoice-logo',{'method':'POST','headers':{'Authorization':_0x4b4289(0x1ee)+token},'body':_0x4b8c0a}),_0x24c971=await _0x3ca632['text']();let _0x337002;try{_0x337002=JSON['parse'](_0x24c971);}catch(_0x5b8ddc){return void alert(_0x4b4289(0x24c));}if(_0x337002['logo_url']){document['getElementById']('f-logo-url')[_0x4b4289(0x1cf)]=_0x337002[_0x4b4289(0x1cc)];const _0x5a9fa3=document['getElementById']('logo-preview');_0x5a9fa3[_0x4b4289(0x23b)]=_0x337002[_0x4b4289(0x1cc)],_0x5a9fa3[_0x4b4289(0x1b0)][_0x4b4289(0x18a)]=_0x4b4289(0x222);}}catch(_0x58ee63){alert(_0x4b4289(0x22d)+_0x58ee63['message']);}}function addLineItem(_0x43b6e4,_0x9bf6f0,_0xb81f73){var _0x40010a=_0x2bad7b;const _0x4b71ef=document['createElement'](_0x40010a(0x22a));_0x4b71ef['className']='li-row',_0x4b71ef['innerHTML']=_0x40010a(0x254)+escAttr(_0x43b6e4||'')+_0x40010a(0x206)+(_0x9bf6f0||-0x22dc+0x1835*0x1+0xaa8)+_0x40010a(0x21f)+(_0xb81f73||'')+_0x40010a(0x1b5),document[_0x40010a(0x1ba)](_0x40010a(0x1ca))['appendChild'](_0x4b71ef);}function getLineItems(){var _0x5dc086=_0x2bad7b;return Array['from'](document['querySelectorAll']('.li-row'))[_0x5dc086(0x239)](_0x2d9c66=>{var _0x4d5efa=_0x5dc086;const _0x217342=_0x2d9c66[_0x4d5efa(0x243)](_0x4d5efa(0x219));return{'description':_0x217342[-0x53*-0x1+-0x1440+0x13ed][_0x4d5efa(0x1cf)],'quantity':parseFloat(_0x217342[-0x3*0x1bb+-0xd*0x2e+0xf1*0x8][_0x4d5efa(0x1cf)])||-0xdb1+0x34*-0x8f+0x2abe,'unit_price':parseFloat(_0x217342[0x29c*0xb+-0x1c99*0x1+-0x19]['value'])||-0x1ef2+0x8a0+-0x1*-0x1652};})[_0x5dc086(0x23c)](_0x476b47=>_0x476b47['description']||_0x476b47['unit_price']);}function updateTotals(){var _0x20c960=_0x2bad7b;const _0x51e773=getLineItems()['reduce']((_0x17d194,_0x574f9a)=>_0x17d194+_0x574f9a['quantity']*_0x574f9a['unit_price'],0x83*0x43+-0x32*0xb7+-0x175*-0x1),_0x49d503=_0x51e773*((parseFloat(document[_0x20c960(0x1ba)]('f-tax')['value'])||0x5*-0x607+0x1*0x9e3+0x1440)/(0x6ab+-0x2235+0x16*0x145)),_0x297bdd=_0x51e773+_0x49d503,_0x18a19b={'GBP':'£','EUR':'€','CAD':'C ,'AUD':'A }[document[_0x20c960(0x1ba)](_0x20c960(0x217))?.['value']||'USD']||' ;document[_0x20c960(0x1ba)](_0x20c960(0x184))[_0x20c960(0x1b3)]=_0x18a19b+_0x51e773['toFixed'](0x21f3+-0x1ace+-0x15*0x57),document['getElementById'](_0x20c960(0x1af))[_0x20c960(0x1b3)]=_0x18a19b+_0x49d503[_0x20c960(0x236)](-0x159d+-0x3*0xb70+-0x25*-0x183),document[_0x20c960(0x1ba)]('t-total')[_0x20c960(0x1b3)]=_0x18a19b+_0x297bdd[_0x20c960(0x236)](-0x35*0x97+-0x1ca2+0x5*0xbfb);}async function saveInvoice(){var _0x2b3ca1=_0x2bad7b;const _0x631ee5=document[_0x2b3ca1(0x1ba)]('f-client-name')[_0x2b3ca1(0x1cf)][_0x2b3ca1(0x1c1)]();if(!_0x631ee5)return void alert('Client\x20name\x20is\x20required');const _0x11c5e8=getLineItems();if(!_0x11c5e8[_0x2b3ca1(0x1be)])return void alert('Add\x20at\x20least\x20one\x20line\x20item');if(_0x11c5e8[_0x2b3ca1(0x1c0)](function(_0x5a25a3){var _0x56c679=_0x2b3ca1;return isNaN(_0x5a25a3['quantity'])||_0x5a25a3['quantity']<=0x15b3+-0xd26*-0x1+-0xb*0x32b||isNaN(_0x5a25a3['unit_price'])||_0x5a25a3[_0x56c679(0x1f8)]<-0x5f3+0xd*-0x115+0x356*0x6;}))return void alert('Please\x20check\x20line\x20items:\x20quantity\x20must\x20be\x20positive\x20and\x20price\x20must\x20be\x20a\x20valid\x20number.');if(_0x11c5e8[_0x2b3ca1(0x1cb)](function(_0x5c8065,_0x525e34){var _0x5db285=_0x2b3ca1;return _0x5c8065+_0x525e34[_0x5db285(0x233)]*_0x525e34['unit_price'];},-0x10f*0xd+-0x5d*-0x11+0x796*0x1)<=0x1285+0x221b+-0x34a*0x10&&!confirm('Invoice\x20total\x20is\x20$0.00.\x20Save\x20anyway?'))return;const _0x91a71c={'client_name':_0x631ee5,'client_email':document['getElementById'](_0x2b3ca1(0x198))['value'],'client_address':document['getElementById'](_0x2b3ca1(0x260))[_0x2b3ca1(0x1cf)],'sender_name':document['getElementById']('f-sender-name')[_0x2b3ca1(0x1cf)],'sender_email':document[_0x2b3ca1(0x1ba)](_0x2b3ca1(0x1ea))[_0x2b3ca1(0x1cf)],'sender_address':document['getElementById']('f-sender-addr')[_0x2b3ca1(0x1cf)],'logo_url':document[_0x2b3ca1(0x1ba)](_0x2b3ca1(0x257))['value'],'line_items':JSON['stringify'](_0x11c5e8),'tax_rate':parseFloat(document[_0x2b3ca1(0x1ba)]('f-tax')[_0x2b3ca1(0x1cf)])||-0xe58+-0x6f1*0x1+0x1549*0x1,'currency':document['getElementById'](_0x2b3ca1(0x217))[_0x2b3ca1(0x1cf)],'due_date':document['getElementById'](_0x2b3ca1(0x1a3))['value'],'notes':document['getElementById'](_0x2b3ca1(0x18c))['value'],'status':document[_0x2b3ca1(0x1ba)]('f-status')['value']},_0x4622b5=document[_0x2b3ca1(0x1ba)](_0x2b3ca1(0x1f6))['value'];_0x4622b5?await apiFetch('/tools/invoices/'+_0x4622b5,{'method':_0x2b3ca1(0x1fb),'body':JSON['stringify'](_0x91a71c)}):await apiFetch(_0x2b3ca1(0x1bb),{'method':_0x2b3ca1(0x195),'body':JSON['stringify'](_0x91a71c)}),closeModal(),loadInvoices();}function _0x3957(){var _0x1bc1db=['lNrOzw1LlwrKlwj0BG','iIbZDhLSzt0IBwf4lxDPzhrOoJe0mhb4o21HEc1OzwLNAhq6nZbWEdTTyxjNAw4TyM90Dg9ToJeYChGIigfSDd0Itg9NBYi+','CM91BMq','DgvZDa','zgf0zq','u2nHBM5LzcbPDgvT','y2fTzxjHlxDYyxa','C3rHDc1VDMvYzhvL','C3rHDc1VDxrZDgfUzgLUzW','mJe3nduXnw1lsNPfyW','zI1Zzw5KzxiTzw1HAwW','C2v0sxrLBq','ywn0AxzL','B3zLCMr1zq','qMvHCMvYia','CMvJB2DUAxPPBMCGDgv4Da','C2nHBI1ZDgf0DxmTDgv4Da','y2XPzw50x2vTywLS','pc9WpG','C3rHDhvZ','zhjHzY1VDMvY','rMfPBgvKihrVigXVywqGvgvZC2vYywn0lMPZ','zI1LzgL0Aw5NlwLK','Dg90ywW','Dw5PDf9WCMLJzq','u2nHBM5LzcbMCM9TihjLy2vPChqVAw52B2LJzq','y2XPzw50x25HBwu','ufvu','iJ48yNv0Dg9UignSyxnZpsjZy2fUlwL0zw0TzgvSiIbVBMnSAwnRpsj0AgLZlMnSB3nLC3qOjY5Zy2fUlwL0zw0TCM93jYKUCMvTB3zLkcKIpIyJmJe1oZWVyNv0Dg9UpG','z2v0vhjHy2TZ','C3aTDMvUzg9Y','pc90zd48Dgq+','C3aTDg90ywW','y3vYCMvUy3K','yNrUlxnHDMu','z2v0vxnLCK1LzgLH','zI1Zzw5KzxiTywrKCG','y2XHC3nmAxn0','iIbVBMLUChv0psj1CgrHDgvuB3rHBhmOksi+pgLUChv0ihr5Cgu9iM51BwjLCIiGBwLUpsiXiIb2ywX1zt0I','pgLUChv0ignSyxnZpsjZy2fUlxbYzxzPzxCTzMLLBgqIihr5Cgu9iNrLEhqIihbSywnLAg9SzgvYpsjezxnJCMLWDgLVBIiGDMfSDwu9iG','CMvWBgfJzq','Bw9KywWTDgL0Bgu','C3aTAxrLBxm','DMvUzg9Y','pc9ZCgfUpJWVDgq+cIaGicaGidX0zcbZDhLSzt0IzgLZCgXHEtPMBgv4o2DHCdO2ChG7zMXLEc13CMfWoNDYyxaIpGOGicaGicaGidXIDxr0B24Gy2XHC3m9iMj0BIbIDg4Tz2HVC3qGyNrUlxnTiIbVBMnSAwnRpsjLzgL0sw52B2LJzsG','AgvPz2H0','C3rWx3rVA2vU','AxrLBxm','zw5N','zI10yxG','C2vUzgvYx25HBwu','ihWGphn0CM9UzZ5uB3rHBcbqywLKoJWVC3rYB25NpIaK','sw52B2LJzsaJlenSAwvUDcXbBw91BNqSq3vYCMvUy3KSrhvLierHDguSu3rHDhvZlfrHEcbsyxrLle5VDgvZcG','rvvs','y3jLyxrLt2jQzwn0vvjm','zI1JDxjYzw5JEq','pc9KAxy+','Aw5WDxq','BgLUzv9PDgvTCW','ChjPBNq','zg93BMXVywq','lNrOzw1LlwrK','C3aTCMf3','iIbVBMLUChv0psj1CgrHDgvuB3rHBhmOksi+pgLUChv0ihr5Cgu9iM51BwjLCIiGBwLUpsiWiIbZDgvWpsiWlJaXiIbWBgfJzwHVBgrLCJ0Imc4WmciGDMfSDwu9iG','ChjLDMvUDerLzMf1Bhq','C2nHBI1KCM9WEM9Uzq','yMXVy2S','y2fTzxjHlxzPzgvV','z2v0sxrLBq','Dg9ju09tDhjPBMC','zg9JDw1LBNq','zhjHzNq','CgfPza','revmrvrf','zgL2','y2HHBMDL','Bw9KywW','vxbSB2fKigzHAwXLzdOG','C2nHBI1WCMv2Awv3','BgLNAhqTBw9Kzq','zgvZy3jPChrPB24','phrHyMXLpJX0CJ48DgG+sw52B2LJzsaJpc90Ad48DgG+q2XPzw50pc90Ad48DgG+qw1VDw50pc90Ad48DgG+rhvLierHDgu8l3rOpJX0Ad5tDgf0Dxm8l3rOpJWVDhi+','C2nYAxb0','CxvHBNrPDhK','AM9PBG','pc90AxrSzt48C3r5Bgu+yM9KExTMB250lwzHBwLSEtPbCMLHBcXZyw5ZlxnLCMLMo3bHzgrPBMC6ndbWEdTJB2XVCJOJmteXo21HEc13Awr0AdO4mdbWEdTTyxjNAw46mcbHDxrVFwGXE2nVBg9YoImWqKq5qtC7BwfYz2LUlwjVDhrVBtO0ChH9DgfIBgv7D2LKDgG6mtaWjtTIB3jKzxiTy29SBgfWC2u6y29SBgfWC2u7BwfYz2LUoJiWChGGmh10AcX0zhTWywrKAw5NoJeWChG7yM9YzgvYoJfWEcbZB2XPzcaJzgrKo3rLEhqTywXPz246BgvMDh10AhTIywnRz3jVDw5KoInMnwy1zJv9lNrVDgfSE3rLEhqTywXPz246CMLNAhq7zM9UDc1ZAxPLoJeUmwvTo21HCMDPBJO0ChGGmh0Uz3jHBMr7zM9UDc1ZAxPLoJeUm2vTo2zVBNqTD2vPz2H0oMjVBgq7y29SB3i6iZbcrdLbnZTIB3jKzxiTDg9WoJjWEcbZB2XPzcaJmejeoue3o3bHzgrPBMCTDg9WoJHWEdTTyxjNAw4TDg9WoJHWEh0UywrKCMvZC2vZE2rPC3bSyxK6zMXLEdTNyxa6ndbWEdTTyxjNAw46mJbWEcaWFtWVC3r5Bgu+pc9OzwfKpJXIB2r5pG','Dg9gAxHLza','lNnJyw4TAxrLBs1YB3C','zM9YrwfJAa','BwfW','yxbWzw5K','C3jJ','zMLSDgvY','pc90zd4kicaGicaGphrKpJXZCgfUignSyxnZpsjZDgf0DxmTyMfKz2uGCY0','pc9WpJX0ywjSzt48Dhi+phrOpKrLC2nYAxb0Aw9Upc90Ad48DgG+uxr5pc90Ad48DgG+vw5PDcbqCMLJztWVDgG+phrOpLrVDgfSpc90Ad48l3rYpG','AhjLzG','zI1SB2DVlwzPBgu','pc9IB2r5pJWVAhrTBd4','BwLU','CxvLCNLtzwXLy3rVCKfSBa','CMv2B2TLt2jQzwn0vvjm','oefoqur4ta','Aw52B2LJzxmT','C3rYAw5NAwz5','Dgf4','z2v0q29UDgv4Da','y2XPy2S','C3aTDgf4','vxbSB2fKigzHAwXLza','C2nHBI1PDgvTlxjVDW','z2v0vgLTzq','CMvTB3zLsxrLBq','jsK6ia','Aw52B2LJzxmTyM9KEq','y2XPzw50x2fKzhjLC3m','l2XVz2LUlMH0BwW','pgLUChv0ihr5Cgu9iNrLEhqIihbSywnLAg9SzgvYpsjtzxj2AwnLigrLC2nYAxb0Aw9UiIb2ywX1zt0I','C3aTzgf0zq','zhvLx2rHDgu','zI1SB2DVlxvYBa','m01zuuf6Bq','nJnRy0TQDMC','pc9WpJXKAxyGy2XHC3m9iMfKzhjLC3nLCYi+','mtu3nZm3mZzXDejlvKG','CMvTB3zL','C2nHBI1TB2rHBa','y3jLyxrLrwXLBwvUDa','t0nsigzHAwXLzdOG','zI1JBgLLBNqTywrKCG','B25SB2fK','ChjVz3jLC3m','Dc1ZDwj0B3rHBa','q2fTzxjHig5VDcbHDMfPBgfIBgu6ia','Bwf0y2G','vvne','pgrPDJ48C3rYB25NpKjPBgWGvg86pc9ZDhjVBMC+pgjYpG','zgf0yxnLDa','zgLZCgXHEq','CgfYC2u','zI1UB3rLCW','ndaYnJe1otHAzuPiAfi','mtjhEhzRt0W','B3bLBG','C2XPy2u','jMfTCdS','zMLSzxm','Dgf4x3jHDgu','D3jPDgu','ue9tva','zI1JBgLLBNqTBMfTzq','C3aTy3vYCMvUy3K','zI1JBgLLBNqTzw1HAwW','Aw5Uzxjive1m','BM90zxm','ywrK','C2nHBI1ZDgvWlxvWBg9Hza','Dgv4Da','z2v0rNvSBfLLyxi','Bg9NBW','yxbWBgLJyxrPB24VANnVBG','uMvJB2DUAxPPBMCGDgv4Dc4UlG','CgfKu3rHCNq','zI1KDwu','iJ48Aw5WDxqGy2XHC3m9iNnJyw4TChjLDMLLDY1MAwvSzciGDhLWzt0IBNvTyMvYiIbTAw49iJeIihzHBhvLpsi','Aw52B2LJzv9UDw1Izxi','Ahr0Chm6lY9Jzg4UANnKzwXPDNiUBMv0l25WBs90zxnZzxjHy3qUANnans9KAxn0l3rLC3nLCMfJDc5TAw4UANm','BM9Uzq','y3jLyw0TBw9Kzq','phrYpJX0zcbJB2XZCgfUpsi2iIbZDhLSzt0IDgv4Dc1HBgLNBJPJzw50zxi7y29SB3i6DMfYkc0TBxv0zwqPo3bHzgrPBMC6mJrWEci+tM8GAw52B2LJzxmGEwv0iokaLcbJCMvHDguGEw91CIbMAxjZDcbVBMuHpc90zd48l3rYpG','mta5mtK1mfHpr3Pqyq','Dg9cBg9I','zg9JDw1LBNrfBgvTzw50','pc9KAxy+pc9KAxy+pha+phn0CM9UzZ5eDwu6pc9ZDhjVBMC+ia','zgf0yq','Dc10yxG','C3r5Bgu','zhjVCa','ndK1mJG0AujLzuHX','Dgv4DenVBNrLBNq','odu5mtm3meL1uMLozq','iIbVBMLUChv0psj1CgrHDgvuB3rHBhmOksi+pgj1DhrVBIbJBgfZCZ0IBgKTzgvSiIbVBMnSAwnRpsj0AgLZlMnSB3nLC3qOjY5SAs1YB3CNks5Yzw1VDMuOktT1CgrHDgvuB3rHBhmOksi+jImYmtu7pc9IDxr0B24+','jMD0oW','nvzkwLLlsa','C2vUDa','mtK5nJmXELLnBuXZ','z2v0rwXLBwvUDej5swq','l3rVB2XZl2LUDM9Py2vZ','C3rVCa','zhjHD0LTywDL','BgvUz3rO','ywrKrxzLBNrmAxn0zw5LCG','C29Tzq','DhjPBq','yxbWzw5Kq2HPBgq','C2v0rgf0zq','D2LKDgG','ngHhC1fAEq','jNf1B3q7','pc9WpJXWignSyxnZpsj0B3rHBci+vgf4icG','C2nHBI1WCM9NCMvZCW','l3rVB2XZl2LUDM9Py2vZlW','BgLUzs1PDgvTCW','CMvKDwnL','Bg9NB191CMW','BwvZC2fNzq','C2vUzgvYx2vTywLS','DMfSDwu','y2XVC2u','pgrPDIbZDhLSzt0IBwfYz2LUlwjVDhrVBtOYmhb4iJ48C3rYB25NpKzYB206pc9ZDhjVBMC+pgjYpG','C3vIDg90ywW','phrYpJX0zd4','tMv3ieLUDM9Py2u','y3jLyw0','zMLUza','C2vUzgvYx2fKzhjLC3m','y3vYCMvUDfrHCMDLDa','Aw1Hz2uVANbLzW','tM8GAw52B2LJzxmGDg8GzxHWB3j0','u2vYDMvYihvUyxzHAwXHyMXLlIbqBgvHC2uGDhj5igfNywLUigXHDgvYlG','zgf0yvrYyw5ZzMvY','pc9ZDhjVBMC+pc90zd4kicaGicaGphrKpG','r0jq','q3jLyxrLieLUDM9Py2u'];_0x3957=function(){return _0x1bc1db;};return _0x3957();}async function markPaid(_0x248a76){var _0x347cdb=_0x2bad7b;await apiFetch(_0x347cdb(0x1c9)+_0x248a76,{'method':_0x347cdb(0x1fb),'body':JSON[_0x347cdb(0x247)]({'status':'paid','paid_date':new Date()[_0x347cdb(0x225)]()[_0x347cdb(0x190)](0x6ad+0xe30+-0x1*0x14dd,0x23a7+0xe85+-0x1f*0x19e)})}),loadInvoices();}async function deleteInvoice(_0x5e5b2a){var _0x282ea6=_0x2bad7b;confirm('Delete\x20this\x20invoice\x20permanently?\x20This\x20cannot\x20be\x20undone.')&&(await apiFetch(_0x282ea6(0x1c9)+_0x5e5b2a,{'method':_0x282ea6(0x229)}),loadInvoices());}function printInvoice(_0x4c0a61){var _0x1b05e9=_0x2bad7b;const _0x29d86a=invoices[_0x1b05e9(0x1d6)](_0x130f3b=>_0x130f3b['id']===_0x4c0a61);if(!_0x29d86a)return;const _0x20b0b6=JSON[_0x1b05e9(0x18b)](_0x29d86a[_0x1b05e9(0x21a)]||'[]'),_0x515c50={'GBP':'£','EUR':'€','CAD':'C ,'AUD':'A }[_0x29d86a['currency']]||' ,_0x40093f=_0x29d86a[_0x1b05e9(0x1cc)]?'':'')+(_0x29d86a['sender_email']?escHtml(_0x29d86a['sender_email'])+'
':'')+(_0x29d86a['sender_address']?escHtml(_0x29d86a['sender_address'])['replace'](/\n/g,'
'):'')+_0x1b05e9(0x218):'',_0xd25447=window[_0x1b05e9(0x18f)]('','_blank');_0xd25447['document']['write'](''+escHtml(_0x29d86a['invoice_number'])+_0x1b05e9(0x235)+_0x40093f+'<h1>INVOICE</h1><p\x20style=\x22font-size:1.1em;color:#666;margin-bottom:20px\x22>'+escHtml(_0x29d86a[_0x1b05e9(0x1a5)])+_0x1b05e9(0x25a)+_0x354b21+_0x1b05e9(0x188)+escHtml(_0x29d86a[_0x1b05e9(0x1fa)])+(_0x29d86a[_0x1b05e9(0x1f1)]?'<br>'+escHtml(_0x29d86a['client_email']):'')+(_0x29d86a['client_address']?'<br>'+escHtml(_0x29d86a['client_address'])['replace'](/\n/g,'<br>'):'')+_0x1b05e9(0x1ad)+(_0x29d86a[_0x1b05e9(0x256)]||'On\x20Receipt')+'\x20 \x20<strong>Status:</strong>\x20'+_0x29d86a['status']+_0x1b05e9(0x23e)+_0x20b0b6[_0x1b05e9(0x239)](function(_0x46c0aa){var _0x1c6e53=_0x1b05e9;return _0x1c6e53(0x1d3)+escHtml(_0x46c0aa[_0x1c6e53(0x230)])+'</td><td>'+_0x46c0aa[_0x1c6e53(0x233)]+'</td><td>'+_0x515c50+Number(_0x46c0aa['unit_price'])[_0x1c6e53(0x236)](0x15d3+0x329*-0x9+0x6a*0x10)+_0x1c6e53(0x1ff)+_0x515c50+(_0x46c0aa[_0x1c6e53(0x233)]*_0x46c0aa[_0x1c6e53(0x1f8)])[_0x1c6e53(0x236)](-0x73e*0x5+-0x1708+0x3b40)+'</td></tr>';})[_0x1b05e9(0x234)]('')+'</table><p\x20class=\x22total\x22>Subtotal:\x20'+_0x515c50+(_0x29d86a[_0x1b05e9(0x1d2)]||0x175*-0x2+-0x2051+0x137*0x1d)['toFixed'](-0xd6*-0x18+0xf6f+-0x237d)+_0x1b05e9(0x1c7)+(_0x29d86a['tax_rate']||-0x2665+0x1*-0x1eb6+-0x1*-0x451b)+_0x1b05e9(0x250)+_0x515c50+((_0x29d86a['subtotal']||0x16ea+0x2585+-0x3c6f*0x1)*(_0x29d86a[_0x1b05e9(0x193)]||0x3b*0x7+-0x3*0x581+0xee6)/(0x498+-0x11b5+0xd81*0x1))['toFixed'](0x1*-0x229b+0x2356*-0x1+0x7f*0x8d)+'</p><p\x20class=\x22total\x20grand\x22>TOTAL:\x20'+_0x515c50+(_0x29d86a[_0x1b05e9(0x1f7)]||-0x11*-0x10d+0x131f*0x2+-0x1*0x381b)[_0x1b05e9(0x236)](0x505+0x1802+0x11*-0x1b5)+'</p>'+(_0x29d86a[_0x1b05e9(0x19a)]?'<p\x20style=\x22margin-top:20px;color:#666\x22><em>'+escHtml(_0x29d86a[_0x1b05e9(0x19a)])+'</em></p>':'')+_0x1b05e9(0x241)),_0xd25447[_0x1b05e9(0x226)]['close'](),setTimeout(function(){var _0x2fbccf=_0x1b05e9;_0xd25447[_0x2fbccf(0x21b)]();},0x2fe*0x4+0xee5*-0x1+0x419);}function escHtml(_0x5ee414){var _0x23bbad=_0x2bad7b,_0x5ae445=document[_0x23bbad(0x25e)](_0x23bbad(0x22a));return _0x5ae445[_0x23bbad(0x1b3)]=String(_0x5ee414||''),_0x5ae445['innerHTML'];}function escAttr(_0x14d8b5){var _0x322f16=_0x2bad7b;return String(_0x14d8b5||'')[_0x322f16(0x208)](/&/g,_0x322f16(0x191))[_0x322f16(0x208)](/"/g,_0x322f16(0x1c6))[_0x322f16(0x208)](/</g,'<')[_0x322f16(0x208)](/>/g,_0x322f16(0x1b6));}function setTool(_0x446cf8){var _0x4f4693=_0x2bad7b,_0x29a1b7=document[_0x4f4693(0x1ac)];_0x29a1b7['classList'][_0x4f4693(0x25c)](_0x4f4693(0x22f),_0x4f4693(0x1a8)),'white'===_0x446cf8?_0x29a1b7['classList'][_0x4f4693(0x19b)]('light-mode'):_0x4f4693(0x1d5)===_0x446cf8&&_0x29a1b7[_0x4f4693(0x205)][_0x4f4693(0x19b)](_0x4f4693(0x1a8)),localStorage[_0x4f4693(0x1eb)]('st_theme',_0x446cf8);var _0x43225c=document['querySelector'](_0x4f4693(0x1e0));_0x43225c&&(_0x43225c[_0x4f4693(0x1b3)]={'dark':'🌙','white':'☀️','cream':'🌿'}[_0x446cf8]||'☀️'),document['querySelectorAll']('.theme-dd-opt')['forEach'](function(_0x5bd75d){var _0x4d9e02=_0x4f4693;_0x5bd75d['classList']['toggle']('active',_0x5bd75d[_0x4d9e02(0x189)]['t']===_0x446cf8);});}!(function(){var _0x3f83b5=_0x2bad7b,_0x3466da=document['getElementById'](_0x3f83b5(0x221)),_0x509483=document['getElementById']('scan-file-input');_0x3466da['addEventListener'](_0x3f83b5(0x24a),function(){var _0x2d0add=_0x3f83b5;_0x509483[_0x2d0add(0x24a)]();}),_0x509483['addEventListener']('change',function(){_0x509483['files'][0xe3d*0x1+-0x266f+-0xa3*-0x26]&&processImage(_0x509483['files'][0x1672+0x2351+-0x39c3]);}),_0x3466da[_0x3f83b5(0x1bf)]('dragover',function(_0x2bc505){var _0x315db6=_0x3f83b5;_0x2bc505['preventDefault'](),_0x3466da['classList']['add'](_0x315db6(0x1f4));}),_0x3466da['addEventListener']('dragleave',function(){var _0x1cae98=_0x3f83b5;_0x3466da[_0x1cae98(0x205)]['remove'](_0x1cae98(0x1f4));}),_0x3466da['addEventListener'](_0x3f83b5(0x1b1),function(_0x270b48){var _0x51bff7=_0x3f83b5;_0x270b48[_0x51bff7(0x220)](),_0x3466da['classList']['remove']('drag-over'),_0x270b48[_0x51bff7(0x1dc)][_0x51bff7(0x192)][0x190b+0x1*-0x168d+-0x27e]&&processImage(_0x270b48['dataTransfer']['files'][-0x525+0x21b0+0x1c8b*-0x1]);});}()),document[_0x2bad7b(0x1ba)](_0x2bad7b(0x22c))[_0x2bad7b(0x1bf)]('click',function(_0x557913){var _0x5e5137=_0x2bad7b;_0x557913['target']===_0x557913[_0x5e5137(0x1d8)]&&closeModal();}),document[_0x2bad7b(0x1ba)](_0x2bad7b(0x25d))['addEventListener'](_0x2bad7b(0x24a),function(_0x51d2fa){_0x51d2fa['target']===_0x51d2fa['currentTarget']&&closeScanModal();}),document['getElementById'](_0x2bad7b(0x217))[_0x2bad7b(0x1bf)](_0x2bad7b(0x22b),updateTotals),loadInvoices(),setTool(localStorage[_0x2bad7b(0x224)]('st_theme')||'white'),document[_0x2bad7b(0x1bf)](_0x2bad7b(0x24a),function(_0x860e80){var _0x269ff3=_0x2bad7b;_0x860e80['target']['closest'](_0x269ff3(0x21d))||document[_0x269ff3(0x243)]('.theme-dd-menu.open')['forEach'](function(_0x2b9c29){var _0x4a95ba=_0x269ff3;_0x2b9c29[_0x4a95ba(0x205)][_0x4a95ba(0x25c)](_0x4a95ba(0x18f));});});</script> <script src="/assets/js/widgets.js"></script> </body> </html>