9bd06b2d23ee7d367d1a7299dc10759cbd5a69a1
[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 _0xb9aa=['define','sa_payments','models','get','InvoiceId','invoice','receivingFiscalMessage','indexOf','SAInvoiceDetail','findAll','details','then','payments','length','payment','netPrice','discount','tax','isNil','quantity','paid','log','invoice-->','catch','TCL:\x20err','find','ProformaId','proforma','split\x20payment','SAProformaDetail','SAProforma','update','has','SAInvoice','SAPayment','Hook\x20afterCreate:\x20err','lodash','util','../../config/logger','bluebird','path','rimraf','../../config/environment','exports'];(function(_0x1db565,_0x2cbe46){var _0xeb0a7c=function(_0x5eca67){while(--_0x5eca67){_0x1db565['push'](_0x1db565['shift']());}};_0xeb0a7c(++_0x2cbe46);}(_0xb9aa,0xa8));var _0xab9a=function(_0x3d4fef,_0x220a84){_0x3d4fef=_0x3d4fef-0x0;var _0x5944e8=_0xb9aa[_0x3d4fef];return _0x5944e8;};'use strict';var _=require(_0xab9a('0x0'));var util=require(_0xab9a('0x1'));var logger=require(_0xab9a('0x2'))('api');var moment=require('moment');var BPromise=require(_0xab9a('0x3'));var rp=require('request-promise');var fs=require('fs');var path=require(_0xab9a('0x4'));var rimraf=require(_0xab9a('0x5'));var config=require(_0xab9a('0x6'));var attributes=require('./saPayment.attributes');module[_0xab9a('0x7')]=function(_0x34c549,_0x5bbd1b){return _0x34c549[_0xab9a('0x8')]('SAPayment',attributes,{'tableName':_0xab9a('0x9'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x1e8c5c,_0x32d887,_0x3d6739){var _0x3c4a66=_0x34c549[_0xab9a('0xa')];var _0x10dbeb={};var _0x1a4cc0={};var _0x169892=_0x1e8c5c[_0xab9a('0xb')]({'plain':!![]});if(_['has'](_0x169892,_0xab9a('0xc'))){_0x3c4a66['SAInvoice']['find']({'where':{'id':_0x169892[_0xab9a('0xc')]},'raw':!![]})['then'](function(_0x176878){if(_0x176878){_0x10dbeb[_0xab9a('0xd')]=_0x176878;var _0x467ea3=![];if(_0x10dbeb[_0xab9a('0xd')][_0xab9a('0xe')][_0xab9a('0xf')]('split\x20payment')!=-0x1){_0x467ea3=!![];}return _0x3c4a66[_0xab9a('0x10')][_0xab9a('0x11')]({'where':{'InvoiceId':_0x169892[_0xab9a('0xc')]},'raw':!![]})['then'](function(_0x477140){_0x10dbeb[_0xab9a('0x12')]=_0x477140;return _0x3c4a66['SAPayment']['findAll']({'where':{'InvoiceId':_0x169892['InvoiceId']},'raw':!![]});})[_0xab9a('0x13')](function(_0x4265fa){_0x10dbeb[_0xab9a('0x14')]=_0x4265fa;var _0x539891=0x0;var _0x3ad096=0x0;var _0x546339=0x0;var _0x376251=0x0;var _0x5bd7b7=0x0;for(var _0x171494=0x0;_0x171494<_0x10dbeb[_0xab9a('0x14')][_0xab9a('0x15')];_0x171494++){_0x539891+=_0x10dbeb[_0xab9a('0x14')][_0x171494][_0xab9a('0x16')];}for(var _0x171494=0x0;_0x171494<_0x10dbeb[_0xab9a('0x12')][_0xab9a('0x15')];_0x171494++){var _0x386f2a=0x0;var _0x8ba1b2=0x0;var _0x52d7a2=0x0;var _0x2c0abe=0x0;_0x386f2a=_0x10dbeb[_0xab9a('0x12')][_0x171494][_0xab9a('0x17')]-_0x10dbeb[_0xab9a('0x12')][_0x171494]['netPrice']/0x64*_0x10dbeb['details'][_0x171494][_0xab9a('0x18')];_0x8ba1b2=_0x386f2a/0x64*_0x10dbeb[_0xab9a('0x12')][_0x171494][_0xab9a('0x19')];_0x52d7a2=_0x386f2a*_0x10dbeb[_0xab9a('0x12')][_0x171494]['quantity'];_0x2c0abe=_0x8ba1b2*_0x10dbeb[_0xab9a('0x12')][_0x171494]['quantity'];_0x376251+=_0x52d7a2;_0x5bd7b7+=_0x2c0abe;}if(!_[_0xab9a('0x1a')](_0x10dbeb[_0xab9a('0xd')]['discount'])){var _0x44a127=0x0;var _0x507122=0x0;var _0x3b21cc=_0x10dbeb['invoice'][_0xab9a('0x18')]*0x64/_0x376251;for(var _0x1a453=0x0;_0x1a453<_0x10dbeb[_0xab9a('0x12')][_0xab9a('0x15')];_0x1a453++){var _0x26c67f=0x0;var _0x100ed6=0x0;var _0x2e63b6=0x0;_0x386f2a=_0x10dbeb[_0xab9a('0x12')][_0x1a453][_0xab9a('0x17')]-_0x10dbeb['details'][_0x1a453][_0xab9a('0x17')]/0x64*_0x10dbeb[_0xab9a('0x12')][_0x1a453][_0xab9a('0x18')];_0x26c67f=_0x386f2a/0x64*_0x3b21cc;_0x100ed6=_0x386f2a-_0x26c67f;_0x2e63b6=_0x100ed6*_0x10dbeb[_0xab9a('0x12')][_0x1a453][_0xab9a('0x1b')];_0x44a127+=_0x2e63b6;_0x507122+=_0x2e63b6/0x64*_0x10dbeb[_0xab9a('0x12')][_0x1a453][_0xab9a('0x19')];}}if(!_[_0xab9a('0x1a')](_0x10dbeb[_0xab9a('0xd')][_0xab9a('0x18')])){if(_0x467ea3){_0x3ad096=_0x44a127;}else{_0x3ad096=_0x507122+_0x44a127;}}else{if(_0x467ea3){_0x3ad096=_0x376251;}else{_0x3ad096=_0x5bd7b7+_0x376251;}}if(_0x539891==_0x3ad096){_0x10dbeb['invoice'][_0xab9a('0x1c')]=0x1;}if(_0x539891<_0x3ad096){_0x10dbeb['invoice'][_0xab9a('0x1c')]=0x2;}if(_0x539891>_0x3ad096){_0x10dbeb[_0xab9a('0xd')][_0xab9a('0x1c')]=0x3;}_0x3c4a66['SAInvoice']['update'](_0x10dbeb[_0xab9a('0xd')],{'where':{'id':_0x169892[_0xab9a('0xc')]}})[_0xab9a('0x13')](function(_0x5aa03e){console[_0xab9a('0x1d')](_0xab9a('0x1e'),_0x5aa03e);})[_0xab9a('0x1f')](function(_0x5014b8){console[_0xab9a('0x1d')](_0xab9a('0x20'),_0x5014b8);});});}});}else{_0x3c4a66['SAProforma'][_0xab9a('0x21')]({'where':{'id':_0x169892[_0xab9a('0x22')]},'raw':!![]})['then'](function(_0x535ea2){if(_0x535ea2){_0x1a4cc0[_0xab9a('0x23')]=_0x535ea2;var _0x115f26=![];if(_0x1a4cc0['proforma'][_0xab9a('0xe')]['indexOf'](_0xab9a('0x24'))!=-0x1){_0x115f26=!![];}return _0x3c4a66[_0xab9a('0x25')][_0xab9a('0x11')]({'where':{'ProformaId':_0x169892[_0xab9a('0x22')]},'raw':!![]})[_0xab9a('0x13')](function(_0x30caa2){_0x1a4cc0[_0xab9a('0x12')]=_0x30caa2;return _0x3c4a66['SAPayment']['findAll']({'where':{'ProformaId':_0x169892[_0xab9a('0x22')]},'raw':!![]});})[_0xab9a('0x13')](function(_0x3c52d4){_0x1a4cc0[_0xab9a('0x14')]=_0x3c52d4;var _0x3c165c=0x0;var _0x14d44d=0x0;var _0xd0a40=0x0;var _0x189948=0x0;var _0x2e2847=0x0;for(var _0xfbfec4=0x0;_0xfbfec4<_0x1a4cc0[_0xab9a('0x14')]['length'];_0xfbfec4++){_0x3c165c+=_0x1a4cc0['payments'][_0xfbfec4][_0xab9a('0x16')];}for(var _0xfbfec4=0x0;_0xfbfec4<_0x1a4cc0[_0xab9a('0x12')][_0xab9a('0x15')];_0xfbfec4++){var _0x5e5ab5=0x0;var _0x2a2bee=0x0;var _0x760003=0x0;var _0x2c2da0=0x0;_0x5e5ab5=_0x1a4cc0[_0xab9a('0x12')][_0xfbfec4][_0xab9a('0x17')]-_0x1a4cc0['details'][_0xfbfec4][_0xab9a('0x17')]/0x64*_0x1a4cc0[_0xab9a('0x12')][_0xfbfec4][_0xab9a('0x18')];_0x2a2bee=_0x5e5ab5/0x64*_0x1a4cc0['details'][_0xfbfec4][_0xab9a('0x19')];_0x760003=_0x5e5ab5*_0x1a4cc0['details'][_0xfbfec4]['quantity'];_0x2c2da0=_0x2a2bee*_0x1a4cc0[_0xab9a('0x12')][_0xfbfec4][_0xab9a('0x1b')];_0x189948+=_0x760003;_0x2e2847+=_0x2c2da0;}if(!_[_0xab9a('0x1a')](_0x1a4cc0['proforma'][_0xab9a('0x18')])){var _0x45b4e8=0x0;var _0x46ae15=0x0;var _0x3c7b7a=_0x1a4cc0['proforma']['discount']*0x64/_0x189948;for(var _0x1fe5d8=0x0;_0x1fe5d8<_0x1a4cc0[_0xab9a('0x12')][_0xab9a('0x15')];_0x1fe5d8++){var _0x7fb748=0x0;var _0x56ad2f=0x0;var _0xcb417d=0x0;_0x5e5ab5=_0x1a4cc0['details'][_0x1fe5d8][_0xab9a('0x17')]-_0x1a4cc0[_0xab9a('0x12')][_0x1fe5d8][_0xab9a('0x17')]/0x64*_0x1a4cc0[_0xab9a('0x12')][_0x1fe5d8]['discount'];_0x7fb748=_0x5e5ab5/0x64*_0x3c7b7a;_0x56ad2f=_0x5e5ab5-_0x7fb748;_0xcb417d=_0x56ad2f*_0x1a4cc0['details'][_0x1fe5d8][_0xab9a('0x1b')];_0x45b4e8+=_0xcb417d;_0x46ae15+=_0xcb417d/0x64*_0x1a4cc0[_0xab9a('0x12')][_0x1fe5d8][_0xab9a('0x19')];}}if(!_[_0xab9a('0x1a')](_0x1a4cc0['proforma'][_0xab9a('0x18')])){if(_0x115f26){_0x14d44d=_0x45b4e8;}else{_0x14d44d=_0x46ae15+_0x45b4e8;}}else{if(_0x115f26){_0x14d44d=_0x189948;}else{_0x14d44d=_0x2e2847+_0x189948;}}if(_0x3c165c==_0x14d44d){_0x1a4cc0[_0xab9a('0x23')][_0xab9a('0x1c')]=0x1;}if(_0x3c165c<_0x14d44d){_0x1a4cc0[_0xab9a('0x23')][_0xab9a('0x1c')]=0x2;}if(_0x3c165c>_0x14d44d){_0x1a4cc0[_0xab9a('0x23')]['paid']=0x3;}_0x3c4a66[_0xab9a('0x26')][_0xab9a('0x27')](_0x1a4cc0[_0xab9a('0x23')],{'where':{'id':_0x169892[_0xab9a('0x22')]}})[_0xab9a('0x13')](function(_0x13da5a){})[_0xab9a('0x1f')](function(_0x29b59e){console[_0xab9a('0x1d')]('Hook\x20afterCreate:\x20err',_0x29b59e);});});}});}_0x3d6739();},'afterUpdate':function(_0x530c65,_0x3f548b,_0x4a21d9){var _0xe4d32e=_0x34c549[_0xab9a('0xa')];var _0x4b975b={};var _0x2d3489={};var _0x1880bf=_0x530c65[_0xab9a('0xb')]({'plain':!![]});if(_[_0xab9a('0x28')](_0x1880bf,_0xab9a('0xc'))){_0xe4d32e[_0xab9a('0x29')][_0xab9a('0x21')]({'where':{'id':_0x1880bf[_0xab9a('0xc')]},'raw':!![]})[_0xab9a('0x13')](function(_0x516fb2){if(_0x516fb2){_0x4b975b[_0xab9a('0xd')]=_0x516fb2;var _0x43504c=![];if(_0x4b975b['invoice'][_0xab9a('0xe')][_0xab9a('0xf')](_0xab9a('0x24'))!=-0x1){_0x43504c=!![];}return _0xe4d32e[_0xab9a('0x10')][_0xab9a('0x11')]({'where':{'InvoiceId':_0x1880bf[_0xab9a('0xc')]},'raw':!![]})[_0xab9a('0x13')](function(_0x38ebf0){_0x4b975b[_0xab9a('0x12')]=_0x38ebf0;return _0xe4d32e[_0xab9a('0x2a')][_0xab9a('0x11')]({'where':{'InvoiceId':_0x1880bf['InvoiceId']},'raw':!![]});})[_0xab9a('0x13')](function(_0x1c6d9d){_0x4b975b['payments']=_0x1c6d9d;var _0x5b6d43=0x0;var _0x21c690=0x0;var _0x1ecb49=0x0;var _0x344983=0x0;var _0x352931=0x0;for(var _0x16da9c=0x0;_0x16da9c<_0x4b975b[_0xab9a('0x14')]['length'];_0x16da9c++){_0x5b6d43+=_0x4b975b[_0xab9a('0x14')][_0x16da9c]['payment'];}for(var _0x16da9c=0x0;_0x16da9c<_0x4b975b['details'][_0xab9a('0x15')];_0x16da9c++){var _0x1f4cdb=0x0;var _0x38f7ec=0x0;var _0x2e3fd0=0x0;var _0x450332=0x0;_0x1f4cdb=_0x4b975b[_0xab9a('0x12')][_0x16da9c][_0xab9a('0x17')]-_0x4b975b[_0xab9a('0x12')][_0x16da9c][_0xab9a('0x17')]/0x64*_0x4b975b['details'][_0x16da9c][_0xab9a('0x18')];_0x38f7ec=_0x1f4cdb/0x64*_0x4b975b[_0xab9a('0x12')][_0x16da9c][_0xab9a('0x19')];_0x2e3fd0=_0x1f4cdb*_0x4b975b[_0xab9a('0x12')][_0x16da9c][_0xab9a('0x1b')];_0x450332=_0x38f7ec*_0x4b975b[_0xab9a('0x12')][_0x16da9c][_0xab9a('0x1b')];_0x344983+=_0x2e3fd0;_0x352931+=_0x450332;}if(!_[_0xab9a('0x1a')](_0x4b975b[_0xab9a('0xd')][_0xab9a('0x18')])){var _0x299c2d=0x0;var _0x6f0789=0x0;var _0x3031dd=_0x4b975b[_0xab9a('0xd')][_0xab9a('0x18')]*0x64/_0x344983;for(var _0x5d8cb1=0x0;_0x5d8cb1<_0x4b975b[_0xab9a('0x12')]['length'];_0x5d8cb1++){var _0x1c3801=0x0;var _0x51c344=0x0;var _0x2d4f64=0x0;_0x1f4cdb=_0x4b975b['details'][_0x5d8cb1][_0xab9a('0x17')]-_0x4b975b[_0xab9a('0x12')][_0x5d8cb1][_0xab9a('0x17')]/0x64*_0x4b975b[_0xab9a('0x12')][_0x5d8cb1][_0xab9a('0x18')];_0x1c3801=_0x1f4cdb/0x64*_0x3031dd;_0x51c344=_0x1f4cdb-_0x1c3801;_0x2d4f64=_0x51c344*_0x4b975b['details'][_0x5d8cb1][_0xab9a('0x1b')];_0x299c2d+=_0x2d4f64;_0x6f0789+=_0x2d4f64/0x64*_0x4b975b[_0xab9a('0x12')][_0x5d8cb1]['tax'];}}if(!_['isNil'](_0x4b975b[_0xab9a('0xd')][_0xab9a('0x18')])){if(_0x43504c){_0x21c690=_0x299c2d;}else{_0x21c690=_0x6f0789+_0x299c2d;}}else{if(_0x43504c){_0x21c690=_0x344983;}else{_0x21c690=_0x352931+_0x344983;}}if(_0x5b6d43==_0x21c690){_0x4b975b[_0xab9a('0xd')][_0xab9a('0x1c')]=0x1;}if(_0x5b6d43<_0x21c690){_0x4b975b[_0xab9a('0xd')]['paid']=0x2;}if(_0x5b6d43>_0x21c690){_0x4b975b[_0xab9a('0xd')][_0xab9a('0x1c')]=0x3;}_0xe4d32e[_0xab9a('0x29')]['update'](_0x4b975b[_0xab9a('0xd')],{'where':{'id':_0x1880bf['InvoiceId']}})['then'](function(_0x2ffbb4){console[_0xab9a('0x1d')]('invoice-->',_0x2ffbb4);})['catch'](function(_0x11e70c){console['log'](_0xab9a('0x20'),_0x11e70c);});});}});}else{_0xe4d32e[_0xab9a('0x26')][_0xab9a('0x21')]({'where':{'id':_0x1880bf['ProformaId']},'raw':!![]})[_0xab9a('0x13')](function(_0x24f80c){if(_0x24f80c){_0x2d3489[_0xab9a('0x23')]=_0x24f80c;var _0x58a490=![];if(_0x4b975b[_0xab9a('0xd')][_0xab9a('0xe')][_0xab9a('0xf')](_0xab9a('0x24'))!=-0x1){_0x58a490=!![];}return _0xe4d32e['SAProformaDetail'][_0xab9a('0x11')]({'where':{'ProformaId':_0x1880bf[_0xab9a('0x22')]},'raw':!![]})[_0xab9a('0x13')](function(_0x17d4a1){_0x2d3489[_0xab9a('0x12')]=_0x17d4a1;return _0xe4d32e[_0xab9a('0x2a')][_0xab9a('0x11')]({'where':{'ProformaId':_0x1880bf[_0xab9a('0x22')]},'raw':!![]});})[_0xab9a('0x13')](function(_0x400e40){_0x2d3489[_0xab9a('0x14')]=_0x400e40;var _0x3123ee=0x0;var _0x2f49d2=0x0;var _0x3a12cb=0x0;var _0x125efa=0x0;var _0x271658=0x0;for(var _0x3de684=0x0;_0x3de684<_0x2d3489[_0xab9a('0x14')][_0xab9a('0x15')];_0x3de684++){_0x3123ee+=_0x2d3489[_0xab9a('0x14')][_0x3de684][_0xab9a('0x16')];}for(var _0x3de684=0x0;_0x3de684<_0x2d3489['details'][_0xab9a('0x15')];_0x3de684++){var _0x76dd83=0x0;var _0x32ee01=0x0;var _0x4ce987=0x0;var _0x37315e=0x0;_0x76dd83=_0x2d3489[_0xab9a('0x12')][_0x3de684][_0xab9a('0x17')]-_0x2d3489[_0xab9a('0x12')][_0x3de684][_0xab9a('0x17')]/0x64*_0x2d3489[_0xab9a('0x12')][_0x3de684][_0xab9a('0x18')];_0x32ee01=_0x76dd83/0x64*_0x2d3489[_0xab9a('0x12')][_0x3de684][_0xab9a('0x19')];_0x4ce987=_0x76dd83*_0x2d3489['details'][_0x3de684]['quantity'];_0x37315e=_0x32ee01*_0x2d3489[_0xab9a('0x12')][_0x3de684]['quantity'];_0x125efa+=_0x4ce987;_0x271658+=_0x37315e;}if(!_[_0xab9a('0x1a')](_0x2d3489[_0xab9a('0x23')][_0xab9a('0x18')])){var _0x3a51f2=0x0;var _0x401866=0x0;var _0x20cfa8=_0x2d3489[_0xab9a('0x23')]['discount']*0x64/_0x125efa;for(var _0x208c8a=0x0;_0x208c8a<_0x2d3489[_0xab9a('0x12')][_0xab9a('0x15')];_0x208c8a++){var _0xcba03d=0x0;var _0x1295bf=0x0;var _0x34ea5c=0x0;_0x76dd83=_0x2d3489[_0xab9a('0x12')][_0x208c8a][_0xab9a('0x17')]-_0x2d3489[_0xab9a('0x12')][_0x208c8a][_0xab9a('0x17')]/0x64*_0x2d3489[_0xab9a('0x12')][_0x208c8a]['discount'];_0xcba03d=_0x76dd83/0x64*_0x20cfa8;_0x1295bf=_0x76dd83-_0xcba03d;_0x34ea5c=_0x1295bf*_0x2d3489[_0xab9a('0x12')][_0x208c8a][_0xab9a('0x1b')];_0x3a51f2+=_0x34ea5c;_0x401866+=_0x34ea5c/0x64*_0x2d3489['details'][_0x208c8a][_0xab9a('0x19')];}}if(!_['isNil'](_0x2d3489['proforma'][_0xab9a('0x18')])){if(_0x58a490){_0x2f49d2=_0x3a51f2;}else{_0x2f49d2=_0x401866+_0x3a51f2;}}else{if(_0x58a490){_0x2f49d2=_0x125efa;}else{_0x2f49d2=_0x271658+_0x125efa;}}if(_0x3123ee==_0x2f49d2){_0x2d3489[_0xab9a('0x23')][_0xab9a('0x1c')]=0x1;}if(_0x3123ee<_0x2f49d2){_0x2d3489[_0xab9a('0x23')][_0xab9a('0x1c')]=0x2;}if(_0x3123ee>_0x2f49d2){_0x2d3489['proforma'][_0xab9a('0x1c')]=0x3;}_0xe4d32e[_0xab9a('0x26')][_0xab9a('0x27')](_0x2d3489[_0xab9a('0x23')],{'where':{'id':_0x1880bf[_0xab9a('0x22')]}})[_0xab9a('0x13')](function(_0x44fe2b){})[_0xab9a('0x1f')](function(_0x2fb78a){console['log'](_0xab9a('0x2b'),_0x2fb78a);});});}});}_0x4a21d9();}}});};