Built motion from commit (unavailable).|2.4.3
[motion2.git] / server / api / saPayment / saPayment.model.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xb6b1=['find','InvoiceId','then','invoice','receivingFiscalMessage','indexOf','split\x20payment','SAInvoiceDetail','details','SAPayment','findAll','payments','length','payment','netPrice','discount','quantity','isNil','tax','paid','log','invoice-->','catch','TCL:\x20err','ProformaId','proforma','SAProformaDetail','SAProforma','update','Hook\x20afterCreate:\x20err','lodash','util','moment','bluebird','request-promise','path','rimraf','../../config/environment','sa_payments','models','has','SAInvoice'];(function(_0x554b8f,_0x50ea37){var _0x198fdc=function(_0x56185f){while(--_0x56185f){_0x554b8f['push'](_0x554b8f['shift']());}};_0x198fdc(++_0x50ea37);}(_0xb6b1,0x198));var _0x1b6b=function(_0x137d1d,_0x35c663){_0x137d1d=_0x137d1d-0x0;var _0x485108=_0xb6b1[_0x137d1d];return _0x485108;};'use strict';var _=require(_0x1b6b('0x0'));var util=require(_0x1b6b('0x1'));var logger=require('../../config/logger')('api');var moment=require(_0x1b6b('0x2'));var BPromise=require(_0x1b6b('0x3'));var rp=require(_0x1b6b('0x4'));var fs=require('fs');var path=require(_0x1b6b('0x5'));var rimraf=require(_0x1b6b('0x6'));var config=require(_0x1b6b('0x7'));var attributes=require('./saPayment.attributes');module['exports']=function(_0x3005c0,_0x2fa2f8){return _0x3005c0['define']('SAPayment',attributes,{'tableName':_0x1b6b('0x8'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x35a7e3,_0x433aa8,_0x47a095){var _0x1894b8=_0x3005c0[_0x1b6b('0x9')];var _0x43921a={};var _0x12c661={};var _0xa570e2=_0x35a7e3['get']({'plain':!![]});if(_[_0x1b6b('0xa')](_0xa570e2,'InvoiceId')){_0x1894b8[_0x1b6b('0xb')][_0x1b6b('0xc')]({'where':{'id':_0xa570e2[_0x1b6b('0xd')]},'raw':!![]})[_0x1b6b('0xe')](function(_0x13e99f){if(_0x13e99f){_0x43921a[_0x1b6b('0xf')]=_0x13e99f;var _0x52ec20=![];if(_0x43921a[_0x1b6b('0xf')][_0x1b6b('0x10')][_0x1b6b('0x11')](_0x1b6b('0x12'))!=-0x1){_0x52ec20=!![];}return _0x1894b8[_0x1b6b('0x13')]['findAll']({'where':{'InvoiceId':_0xa570e2[_0x1b6b('0xd')]},'raw':!![]})['then'](function(_0xf25ec2){_0x43921a[_0x1b6b('0x14')]=_0xf25ec2;return _0x1894b8[_0x1b6b('0x15')][_0x1b6b('0x16')]({'where':{'InvoiceId':_0xa570e2[_0x1b6b('0xd')]},'raw':!![]});})['then'](function(_0x5421fa){_0x43921a[_0x1b6b('0x17')]=_0x5421fa;var _0x42ad40=0x0;var _0x148496=0x0;var _0x2789aa=0x0;var _0x1f03de=0x0;var _0x4a4914=0x0;for(var _0x1b55e4=0x0;_0x1b55e4<_0x43921a[_0x1b6b('0x17')][_0x1b6b('0x18')];_0x1b55e4++){_0x42ad40+=_0x43921a['payments'][_0x1b55e4][_0x1b6b('0x19')];}for(var _0x1b55e4=0x0;_0x1b55e4<_0x43921a['details'][_0x1b6b('0x18')];_0x1b55e4++){var _0x131f13=0x0;var _0x15eae7=0x0;var _0x56c0ea=0x0;var _0x3338b5=0x0;_0x131f13=_0x43921a[_0x1b6b('0x14')][_0x1b55e4][_0x1b6b('0x1a')]-_0x43921a[_0x1b6b('0x14')][_0x1b55e4]['netPrice']/0x64*_0x43921a['details'][_0x1b55e4][_0x1b6b('0x1b')];_0x15eae7=_0x131f13/0x64*_0x43921a[_0x1b6b('0x14')][_0x1b55e4]['tax'];_0x56c0ea=_0x131f13*_0x43921a[_0x1b6b('0x14')][_0x1b55e4]['quantity'];_0x3338b5=_0x15eae7*_0x43921a[_0x1b6b('0x14')][_0x1b55e4][_0x1b6b('0x1c')];_0x1f03de+=_0x56c0ea;_0x4a4914+=_0x3338b5;}if(!_[_0x1b6b('0x1d')](_0x43921a[_0x1b6b('0xf')][_0x1b6b('0x1b')])){var _0x2a9665=0x0;var _0x132a83=0x0;var _0x8d5996=_0x43921a['invoice'][_0x1b6b('0x1b')]*0x64/_0x1f03de;for(var _0x4a2dc8=0x0;_0x4a2dc8<_0x43921a[_0x1b6b('0x14')]['length'];_0x4a2dc8++){var _0x4f37bc=0x0;var _0x21d958=0x0;var _0x5ddc99=0x0;_0x131f13=_0x43921a[_0x1b6b('0x14')][_0x4a2dc8][_0x1b6b('0x1a')]-_0x43921a[_0x1b6b('0x14')][_0x4a2dc8][_0x1b6b('0x1a')]/0x64*_0x43921a[_0x1b6b('0x14')][_0x4a2dc8][_0x1b6b('0x1b')];_0x4f37bc=_0x131f13/0x64*_0x8d5996;_0x21d958=_0x131f13-_0x4f37bc;_0x5ddc99=_0x21d958*_0x43921a[_0x1b6b('0x14')][_0x4a2dc8][_0x1b6b('0x1c')];_0x2a9665+=_0x5ddc99;_0x132a83+=_0x5ddc99/0x64*_0x43921a[_0x1b6b('0x14')][_0x4a2dc8][_0x1b6b('0x1e')];}}if(!_[_0x1b6b('0x1d')](_0x43921a[_0x1b6b('0xf')]['discount'])){if(_0x52ec20){_0x148496=_0x2a9665;}else{_0x148496=_0x132a83+_0x2a9665;}}else{if(_0x52ec20){_0x148496=_0x1f03de;}else{_0x148496=_0x4a4914+_0x1f03de;}}if(_0x42ad40==_0x148496){_0x43921a[_0x1b6b('0xf')][_0x1b6b('0x1f')]=0x1;}if(_0x42ad40<_0x148496){_0x43921a['invoice'][_0x1b6b('0x1f')]=0x2;}if(_0x42ad40>_0x148496){_0x43921a[_0x1b6b('0xf')]['paid']=0x3;}_0x1894b8[_0x1b6b('0xb')]['update'](_0x43921a['invoice'],{'where':{'id':_0xa570e2['InvoiceId']}})[_0x1b6b('0xe')](function(_0x5c2ef4){console[_0x1b6b('0x20')](_0x1b6b('0x21'),_0x5c2ef4);})[_0x1b6b('0x22')](function(_0x4fd612){console['log'](_0x1b6b('0x23'),_0x4fd612);});});}});}else{_0x1894b8['SAProforma'][_0x1b6b('0xc')]({'where':{'id':_0xa570e2[_0x1b6b('0x24')]},'raw':!![]})[_0x1b6b('0xe')](function(_0xf9e608){if(_0xf9e608){_0x12c661[_0x1b6b('0x25')]=_0xf9e608;var _0x1f8013=![];if(_0x12c661[_0x1b6b('0x25')][_0x1b6b('0x10')]['indexOf'](_0x1b6b('0x12'))!=-0x1){_0x1f8013=!![];}return _0x1894b8[_0x1b6b('0x26')][_0x1b6b('0x16')]({'where':{'ProformaId':_0xa570e2[_0x1b6b('0x24')]},'raw':!![]})[_0x1b6b('0xe')](function(_0x597e4a){_0x12c661['details']=_0x597e4a;return _0x1894b8['SAPayment'][_0x1b6b('0x16')]({'where':{'ProformaId':_0xa570e2['ProformaId']},'raw':!![]});})[_0x1b6b('0xe')](function(_0x5943a7){_0x12c661[_0x1b6b('0x17')]=_0x5943a7;var _0x81db88=0x0;var _0x456607=0x0;var _0x492c10=0x0;var _0xa23a25=0x0;var _0x3b3bc5=0x0;for(var _0x50ff2f=0x0;_0x50ff2f<_0x12c661[_0x1b6b('0x17')][_0x1b6b('0x18')];_0x50ff2f++){_0x81db88+=_0x12c661[_0x1b6b('0x17')][_0x50ff2f][_0x1b6b('0x19')];}for(var _0x50ff2f=0x0;_0x50ff2f<_0x12c661[_0x1b6b('0x14')][_0x1b6b('0x18')];_0x50ff2f++){var _0x3f850b=0x0;var _0x24579b=0x0;var _0x5284fb=0x0;var _0x179198=0x0;_0x3f850b=_0x12c661[_0x1b6b('0x14')][_0x50ff2f]['netPrice']-_0x12c661['details'][_0x50ff2f][_0x1b6b('0x1a')]/0x64*_0x12c661[_0x1b6b('0x14')][_0x50ff2f][_0x1b6b('0x1b')];_0x24579b=_0x3f850b/0x64*_0x12c661['details'][_0x50ff2f][_0x1b6b('0x1e')];_0x5284fb=_0x3f850b*_0x12c661[_0x1b6b('0x14')][_0x50ff2f][_0x1b6b('0x1c')];_0x179198=_0x24579b*_0x12c661[_0x1b6b('0x14')][_0x50ff2f][_0x1b6b('0x1c')];_0xa23a25+=_0x5284fb;_0x3b3bc5+=_0x179198;}if(!_[_0x1b6b('0x1d')](_0x12c661[_0x1b6b('0x25')]['discount'])){var _0x1ef88f=0x0;var _0x1d7d8c=0x0;var _0x55ca92=_0x12c661[_0x1b6b('0x25')][_0x1b6b('0x1b')]*0x64/_0xa23a25;for(var _0x5a0104=0x0;_0x5a0104<_0x12c661[_0x1b6b('0x14')][_0x1b6b('0x18')];_0x5a0104++){var _0x5c605f=0x0;var _0x13e0d2=0x0;var _0x48fc19=0x0;_0x3f850b=_0x12c661[_0x1b6b('0x14')][_0x5a0104][_0x1b6b('0x1a')]-_0x12c661[_0x1b6b('0x14')][_0x5a0104][_0x1b6b('0x1a')]/0x64*_0x12c661[_0x1b6b('0x14')][_0x5a0104]['discount'];_0x5c605f=_0x3f850b/0x64*_0x55ca92;_0x13e0d2=_0x3f850b-_0x5c605f;_0x48fc19=_0x13e0d2*_0x12c661[_0x1b6b('0x14')][_0x5a0104]['quantity'];_0x1ef88f+=_0x48fc19;_0x1d7d8c+=_0x48fc19/0x64*_0x12c661[_0x1b6b('0x14')][_0x5a0104][_0x1b6b('0x1e')];}}if(!_[_0x1b6b('0x1d')](_0x12c661['proforma'][_0x1b6b('0x1b')])){if(_0x1f8013){_0x456607=_0x1ef88f;}else{_0x456607=_0x1d7d8c+_0x1ef88f;}}else{if(_0x1f8013){_0x456607=_0xa23a25;}else{_0x456607=_0x3b3bc5+_0xa23a25;}}if(_0x81db88==_0x456607){_0x12c661[_0x1b6b('0x25')]['paid']=0x1;}if(_0x81db88<_0x456607){_0x12c661['proforma'][_0x1b6b('0x1f')]=0x2;}if(_0x81db88>_0x456607){_0x12c661[_0x1b6b('0x25')]['paid']=0x3;}_0x1894b8[_0x1b6b('0x27')][_0x1b6b('0x28')](_0x12c661[_0x1b6b('0x25')],{'where':{'id':_0xa570e2[_0x1b6b('0x24')]}})[_0x1b6b('0xe')](function(_0x2b2c5e){})['catch'](function(_0x3b1254){console['log'](_0x1b6b('0x29'),_0x3b1254);});});}});}_0x47a095();},'afterUpdate':function(_0x1f1f38,_0x436863,_0x401fb4){var _0x2166ae=_0x3005c0[_0x1b6b('0x9')];var _0x3c315d={};var _0x35d362={};var _0x42146d=_0x1f1f38['get']({'plain':!![]});if(_[_0x1b6b('0xa')](_0x42146d,'InvoiceId')){_0x2166ae['SAInvoice'][_0x1b6b('0xc')]({'where':{'id':_0x42146d[_0x1b6b('0xd')]},'raw':!![]})[_0x1b6b('0xe')](function(_0x5beaea){if(_0x5beaea){_0x3c315d[_0x1b6b('0xf')]=_0x5beaea;var _0x524526=![];if(_0x3c315d[_0x1b6b('0xf')][_0x1b6b('0x10')][_0x1b6b('0x11')](_0x1b6b('0x12'))!=-0x1){_0x524526=!![];}return _0x2166ae[_0x1b6b('0x13')]['findAll']({'where':{'InvoiceId':_0x42146d[_0x1b6b('0xd')]},'raw':!![]})['then'](function(_0x59e59d){_0x3c315d['details']=_0x59e59d;return _0x2166ae['SAPayment']['findAll']({'where':{'InvoiceId':_0x42146d[_0x1b6b('0xd')]},'raw':!![]});})['then'](function(_0x52284b){_0x3c315d[_0x1b6b('0x17')]=_0x52284b;var _0x3a8a17=0x0;var _0xc6f06a=0x0;var _0x2eb51f=0x0;var _0x298229=0x0;var _0x18ad3e=0x0;for(var _0x2b3184=0x0;_0x2b3184<_0x3c315d['payments'][_0x1b6b('0x18')];_0x2b3184++){_0x3a8a17+=_0x3c315d['payments'][_0x2b3184]['payment'];}for(var _0x2b3184=0x0;_0x2b3184<_0x3c315d['details'][_0x1b6b('0x18')];_0x2b3184++){var _0x3adbf4=0x0;var _0x239bdb=0x0;var _0x55093f=0x0;var _0x3e3dbe=0x0;_0x3adbf4=_0x3c315d[_0x1b6b('0x14')][_0x2b3184][_0x1b6b('0x1a')]-_0x3c315d['details'][_0x2b3184][_0x1b6b('0x1a')]/0x64*_0x3c315d[_0x1b6b('0x14')][_0x2b3184][_0x1b6b('0x1b')];_0x239bdb=_0x3adbf4/0x64*_0x3c315d[_0x1b6b('0x14')][_0x2b3184][_0x1b6b('0x1e')];_0x55093f=_0x3adbf4*_0x3c315d[_0x1b6b('0x14')][_0x2b3184][_0x1b6b('0x1c')];_0x3e3dbe=_0x239bdb*_0x3c315d[_0x1b6b('0x14')][_0x2b3184][_0x1b6b('0x1c')];_0x298229+=_0x55093f;_0x18ad3e+=_0x3e3dbe;}if(!_[_0x1b6b('0x1d')](_0x3c315d[_0x1b6b('0xf')][_0x1b6b('0x1b')])){var _0x20413d=0x0;var _0x4b4a92=0x0;var _0x1a5383=_0x3c315d[_0x1b6b('0xf')][_0x1b6b('0x1b')]*0x64/_0x298229;for(var _0x327f5b=0x0;_0x327f5b<_0x3c315d[_0x1b6b('0x14')][_0x1b6b('0x18')];_0x327f5b++){var _0x551e10=0x0;var _0x41b5e6=0x0;var _0x1aec26=0x0;_0x3adbf4=_0x3c315d[_0x1b6b('0x14')][_0x327f5b][_0x1b6b('0x1a')]-_0x3c315d[_0x1b6b('0x14')][_0x327f5b]['netPrice']/0x64*_0x3c315d['details'][_0x327f5b][_0x1b6b('0x1b')];_0x551e10=_0x3adbf4/0x64*_0x1a5383;_0x41b5e6=_0x3adbf4-_0x551e10;_0x1aec26=_0x41b5e6*_0x3c315d['details'][_0x327f5b][_0x1b6b('0x1c')];_0x20413d+=_0x1aec26;_0x4b4a92+=_0x1aec26/0x64*_0x3c315d[_0x1b6b('0x14')][_0x327f5b][_0x1b6b('0x1e')];}}if(!_['isNil'](_0x3c315d[_0x1b6b('0xf')][_0x1b6b('0x1b')])){if(_0x524526){_0xc6f06a=_0x20413d;}else{_0xc6f06a=_0x4b4a92+_0x20413d;}}else{if(_0x524526){_0xc6f06a=_0x298229;}else{_0xc6f06a=_0x18ad3e+_0x298229;}}if(_0x3a8a17==_0xc6f06a){_0x3c315d['invoice'][_0x1b6b('0x1f')]=0x1;}if(_0x3a8a17<_0xc6f06a){_0x3c315d[_0x1b6b('0xf')][_0x1b6b('0x1f')]=0x2;}if(_0x3a8a17>_0xc6f06a){_0x3c315d['invoice'][_0x1b6b('0x1f')]=0x3;}_0x2166ae['SAInvoice'][_0x1b6b('0x28')](_0x3c315d[_0x1b6b('0xf')],{'where':{'id':_0x42146d[_0x1b6b('0xd')]}})[_0x1b6b('0xe')](function(_0x452d06){console[_0x1b6b('0x20')](_0x1b6b('0x21'),_0x452d06);})[_0x1b6b('0x22')](function(_0x33c36d){console[_0x1b6b('0x20')]('TCL:\x20err',_0x33c36d);});});}});}else{_0x2166ae[_0x1b6b('0x27')][_0x1b6b('0xc')]({'where':{'id':_0x42146d[_0x1b6b('0x24')]},'raw':!![]})['then'](function(_0x548a61){if(_0x548a61){_0x35d362[_0x1b6b('0x25')]=_0x548a61;var _0xe4005a=![];if(_0x3c315d[_0x1b6b('0xf')][_0x1b6b('0x10')][_0x1b6b('0x11')](_0x1b6b('0x12'))!=-0x1){_0xe4005a=!![];}return _0x2166ae[_0x1b6b('0x26')][_0x1b6b('0x16')]({'where':{'ProformaId':_0x42146d['ProformaId']},'raw':!![]})[_0x1b6b('0xe')](function(_0x4bb4df){_0x35d362[_0x1b6b('0x14')]=_0x4bb4df;return _0x2166ae['SAPayment'][_0x1b6b('0x16')]({'where':{'ProformaId':_0x42146d['ProformaId']},'raw':!![]});})[_0x1b6b('0xe')](function(_0x17465d){_0x35d362[_0x1b6b('0x17')]=_0x17465d;var _0x557ae1=0x0;var _0x33289f=0x0;var _0x53562b=0x0;var _0x473475=0x0;var _0x204ba1=0x0;for(var _0x59f870=0x0;_0x59f870<_0x35d362[_0x1b6b('0x17')][_0x1b6b('0x18')];_0x59f870++){_0x557ae1+=_0x35d362[_0x1b6b('0x17')][_0x59f870][_0x1b6b('0x19')];}for(var _0x59f870=0x0;_0x59f870<_0x35d362[_0x1b6b('0x14')][_0x1b6b('0x18')];_0x59f870++){var _0x413474=0x0;var _0x2c9dbb=0x0;var _0x315df6=0x0;var _0x3f6039=0x0;_0x413474=_0x35d362['details'][_0x59f870][_0x1b6b('0x1a')]-_0x35d362[_0x1b6b('0x14')][_0x59f870][_0x1b6b('0x1a')]/0x64*_0x35d362[_0x1b6b('0x14')][_0x59f870]['discount'];_0x2c9dbb=_0x413474/0x64*_0x35d362[_0x1b6b('0x14')][_0x59f870][_0x1b6b('0x1e')];_0x315df6=_0x413474*_0x35d362[_0x1b6b('0x14')][_0x59f870][_0x1b6b('0x1c')];_0x3f6039=_0x2c9dbb*_0x35d362[_0x1b6b('0x14')][_0x59f870]['quantity'];_0x473475+=_0x315df6;_0x204ba1+=_0x3f6039;}if(!_['isNil'](_0x35d362[_0x1b6b('0x25')][_0x1b6b('0x1b')])){var _0x2d99f3=0x0;var _0x3ad0b6=0x0;var _0x58c8ca=_0x35d362[_0x1b6b('0x25')][_0x1b6b('0x1b')]*0x64/_0x473475;for(var _0x27ce70=0x0;_0x27ce70<_0x35d362[_0x1b6b('0x14')][_0x1b6b('0x18')];_0x27ce70++){var _0x378a94=0x0;var _0x9bc553=0x0;var _0x4e3c96=0x0;_0x413474=_0x35d362[_0x1b6b('0x14')][_0x27ce70]['netPrice']-_0x35d362[_0x1b6b('0x14')][_0x27ce70][_0x1b6b('0x1a')]/0x64*_0x35d362['details'][_0x27ce70]['discount'];_0x378a94=_0x413474/0x64*_0x58c8ca;_0x9bc553=_0x413474-_0x378a94;_0x4e3c96=_0x9bc553*_0x35d362[_0x1b6b('0x14')][_0x27ce70]['quantity'];_0x2d99f3+=_0x4e3c96;_0x3ad0b6+=_0x4e3c96/0x64*_0x35d362[_0x1b6b('0x14')][_0x27ce70][_0x1b6b('0x1e')];}}if(!_[_0x1b6b('0x1d')](_0x35d362[_0x1b6b('0x25')][_0x1b6b('0x1b')])){if(_0xe4005a){_0x33289f=_0x2d99f3;}else{_0x33289f=_0x3ad0b6+_0x2d99f3;}}else{if(_0xe4005a){_0x33289f=_0x473475;}else{_0x33289f=_0x204ba1+_0x473475;}}if(_0x557ae1==_0x33289f){_0x35d362['proforma'][_0x1b6b('0x1f')]=0x1;}if(_0x557ae1<_0x33289f){_0x35d362[_0x1b6b('0x25')][_0x1b6b('0x1f')]=0x2;}if(_0x557ae1>_0x33289f){_0x35d362[_0x1b6b('0x25')][_0x1b6b('0x1f')]=0x3;}_0x2166ae[_0x1b6b('0x27')]['update'](_0x35d362[_0x1b6b('0x25')],{'where':{'id':_0x42146d['ProformaId']}})['then'](function(_0x11695c){})[_0x1b6b('0x22')](function(_0x2e88a1){console[_0x1b6b('0x20')]('Hook\x20afterCreate:\x20err',_0x2e88a1);});});}});}_0x401fb4();}}});};