34e306792d722e261669dd0521f4849461da35b8
[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 _0x85e7=['discount','isNil','paid','SAInvoice','log','catch','TCL:\x20err','ProformaId','proforma','split\x20payment','SAProforma','update','Hook\x20afterCreate:\x20err','SAPayment','invoice-->','SAProformaDetail','lodash','util','../../config/logger','api','moment','bluebird','request-promise','path','rimraf','../../config/environment','./saPayment.attributes','exports','define','sa_payments','get','has','InvoiceId','find','then','invoice','receivingFiscalMessage','indexOf','SAInvoiceDetail','details','findAll','payments','length','payment','netPrice','tax','quantity'];(function(_0x586c13,_0xf074ed){var _0x1c955f=function(_0x3255a6){while(--_0x3255a6){_0x586c13['push'](_0x586c13['shift']());}};_0x1c955f(++_0xf074ed);}(_0x85e7,0xcc));var _0x785e=function(_0x1a7e28,_0x43e0c6){_0x1a7e28=_0x1a7e28-0x0;var _0x4f05bc=_0x85e7[_0x1a7e28];return _0x4f05bc;};'use strict';var _=require(_0x785e('0x0'));var util=require(_0x785e('0x1'));var logger=require(_0x785e('0x2'))(_0x785e('0x3'));var moment=require(_0x785e('0x4'));var BPromise=require(_0x785e('0x5'));var rp=require(_0x785e('0x6'));var fs=require('fs');var path=require(_0x785e('0x7'));var rimraf=require(_0x785e('0x8'));var config=require(_0x785e('0x9'));var attributes=require(_0x785e('0xa'));module[_0x785e('0xb')]=function(_0x131963,_0xef13c4){return _0x131963[_0x785e('0xc')]('SAPayment',attributes,{'tableName':_0x785e('0xd'),'paranoid':![],'indexes':[],'timestamps':!![],'hooks':{'afterCreate':function(_0x297eea,_0x195d45,_0xfcc6c8){var _0x76c7c2=_0x131963['models'];var _0x4c5ede={};var _0xafbcf0={};var _0x1830f1=_0x297eea[_0x785e('0xe')]({'plain':!![]});if(_[_0x785e('0xf')](_0x1830f1,_0x785e('0x10'))){_0x76c7c2['SAInvoice'][_0x785e('0x11')]({'where':{'id':_0x1830f1[_0x785e('0x10')]},'raw':!![]})[_0x785e('0x12')](function(_0x226f81){if(_0x226f81){_0x4c5ede[_0x785e('0x13')]=_0x226f81;var _0x4cbdc7=![];if(_0x4c5ede[_0x785e('0x13')][_0x785e('0x14')][_0x785e('0x15')]('split\x20payment')!=-0x1){_0x4cbdc7=!![];}return _0x76c7c2[_0x785e('0x16')]['findAll']({'where':{'InvoiceId':_0x1830f1[_0x785e('0x10')]},'raw':!![]})['then'](function(_0x3b5732){_0x4c5ede[_0x785e('0x17')]=_0x3b5732;return _0x76c7c2['SAPayment'][_0x785e('0x18')]({'where':{'InvoiceId':_0x1830f1[_0x785e('0x10')]},'raw':!![]});})[_0x785e('0x12')](function(_0x4e47a5){_0x4c5ede[_0x785e('0x19')]=_0x4e47a5;var _0xb44f07=0x0;var _0x25d86d=0x0;var _0x33c970=0x0;var _0x72066b=0x0;var _0x4a7204=0x0;for(var _0x171b94=0x0;_0x171b94<_0x4c5ede['payments'][_0x785e('0x1a')];_0x171b94++){_0xb44f07+=_0x4c5ede[_0x785e('0x19')][_0x171b94][_0x785e('0x1b')];}for(var _0x171b94=0x0;_0x171b94<_0x4c5ede[_0x785e('0x17')][_0x785e('0x1a')];_0x171b94++){var _0x386298=0x0;var _0x54f10b=0x0;var _0x565ee6=0x0;var _0x30962d=0x0;_0x386298=_0x4c5ede['details'][_0x171b94]['netPrice']-_0x4c5ede['details'][_0x171b94][_0x785e('0x1c')]/0x64*_0x4c5ede[_0x785e('0x17')][_0x171b94]['discount'];_0x54f10b=_0x386298/0x64*_0x4c5ede[_0x785e('0x17')][_0x171b94][_0x785e('0x1d')];_0x565ee6=_0x386298*_0x4c5ede[_0x785e('0x17')][_0x171b94][_0x785e('0x1e')];_0x30962d=_0x54f10b*_0x4c5ede[_0x785e('0x17')][_0x171b94]['quantity'];_0x72066b+=_0x565ee6;_0x4a7204+=_0x30962d;}if(!_['isNil'](_0x4c5ede[_0x785e('0x13')]['discount'])){var _0x984c02=0x0;var _0x249af1=0x0;var _0x254b54=_0x4c5ede[_0x785e('0x13')][_0x785e('0x1f')]*0x64/_0x72066b;for(var _0x2f9522=0x0;_0x2f9522<_0x4c5ede[_0x785e('0x17')][_0x785e('0x1a')];_0x2f9522++){var _0x2edbff=0x0;var _0x35848a=0x0;var _0x5c1ca1=0x0;_0x386298=_0x4c5ede[_0x785e('0x17')][_0x2f9522]['netPrice']-_0x4c5ede['details'][_0x2f9522][_0x785e('0x1c')]/0x64*_0x4c5ede[_0x785e('0x17')][_0x2f9522][_0x785e('0x1f')];_0x2edbff=_0x386298/0x64*_0x254b54;_0x35848a=_0x386298-_0x2edbff;_0x5c1ca1=_0x35848a*_0x4c5ede['details'][_0x2f9522][_0x785e('0x1e')];_0x984c02+=_0x5c1ca1;_0x249af1+=_0x5c1ca1/0x64*_0x4c5ede[_0x785e('0x17')][_0x2f9522]['tax'];}}if(!_[_0x785e('0x20')](_0x4c5ede['invoice'][_0x785e('0x1f')])){if(_0x4cbdc7){_0x25d86d=_0x984c02;}else{_0x25d86d=_0x249af1+_0x984c02;}}else{if(_0x4cbdc7){_0x25d86d=_0x72066b;}else{_0x25d86d=_0x4a7204+_0x72066b;}}if(_0xb44f07==_0x25d86d){_0x4c5ede[_0x785e('0x13')][_0x785e('0x21')]=0x1;}if(_0xb44f07<_0x25d86d){_0x4c5ede[_0x785e('0x13')]['paid']=0x2;}if(_0xb44f07>_0x25d86d){_0x4c5ede[_0x785e('0x13')]['paid']=0x3;}_0x76c7c2[_0x785e('0x22')]['update'](_0x4c5ede['invoice'],{'where':{'id':_0x1830f1['InvoiceId']}})[_0x785e('0x12')](function(_0x283895){console[_0x785e('0x23')]('invoice-->',_0x283895);})[_0x785e('0x24')](function(_0x366c91){console[_0x785e('0x23')](_0x785e('0x25'),_0x366c91);});});}});}else{_0x76c7c2['SAProforma'][_0x785e('0x11')]({'where':{'id':_0x1830f1[_0x785e('0x26')]},'raw':!![]})[_0x785e('0x12')](function(_0x4c70e6){if(_0x4c70e6){_0xafbcf0[_0x785e('0x27')]=_0x4c70e6;var _0x3c05a4=![];if(_0xafbcf0[_0x785e('0x27')][_0x785e('0x14')]['indexOf'](_0x785e('0x28'))!=-0x1){_0x3c05a4=!![];}return _0x76c7c2['SAProformaDetail'][_0x785e('0x18')]({'where':{'ProformaId':_0x1830f1[_0x785e('0x26')]},'raw':!![]})['then'](function(_0x8418c0){_0xafbcf0[_0x785e('0x17')]=_0x8418c0;return _0x76c7c2['SAPayment'][_0x785e('0x18')]({'where':{'ProformaId':_0x1830f1[_0x785e('0x26')]},'raw':!![]});})[_0x785e('0x12')](function(_0x11acaa){_0xafbcf0[_0x785e('0x19')]=_0x11acaa;var _0xef85bd=0x0;var _0x4cb501=0x0;var _0x47aba2=0x0;var _0x59d68e=0x0;var _0x1d22e2=0x0;for(var _0x197f56=0x0;_0x197f56<_0xafbcf0[_0x785e('0x19')][_0x785e('0x1a')];_0x197f56++){_0xef85bd+=_0xafbcf0[_0x785e('0x19')][_0x197f56][_0x785e('0x1b')];}for(var _0x197f56=0x0;_0x197f56<_0xafbcf0[_0x785e('0x17')][_0x785e('0x1a')];_0x197f56++){var _0x172061=0x0;var _0x4a0c7b=0x0;var _0xe26597=0x0;var _0xfaa8bd=0x0;_0x172061=_0xafbcf0[_0x785e('0x17')][_0x197f56][_0x785e('0x1c')]-_0xafbcf0[_0x785e('0x17')][_0x197f56][_0x785e('0x1c')]/0x64*_0xafbcf0['details'][_0x197f56][_0x785e('0x1f')];_0x4a0c7b=_0x172061/0x64*_0xafbcf0[_0x785e('0x17')][_0x197f56][_0x785e('0x1d')];_0xe26597=_0x172061*_0xafbcf0['details'][_0x197f56][_0x785e('0x1e')];_0xfaa8bd=_0x4a0c7b*_0xafbcf0[_0x785e('0x17')][_0x197f56]['quantity'];_0x59d68e+=_0xe26597;_0x1d22e2+=_0xfaa8bd;}if(!_[_0x785e('0x20')](_0xafbcf0[_0x785e('0x27')]['discount'])){var _0x3d735e=0x0;var _0x392228=0x0;var _0x3a2af6=_0xafbcf0[_0x785e('0x27')][_0x785e('0x1f')]*0x64/_0x59d68e;for(var _0x2e92b8=0x0;_0x2e92b8<_0xafbcf0[_0x785e('0x17')][_0x785e('0x1a')];_0x2e92b8++){var _0x489905=0x0;var _0x25d931=0x0;var _0x237603=0x0;_0x172061=_0xafbcf0[_0x785e('0x17')][_0x2e92b8]['netPrice']-_0xafbcf0[_0x785e('0x17')][_0x2e92b8]['netPrice']/0x64*_0xafbcf0['details'][_0x2e92b8]['discount'];_0x489905=_0x172061/0x64*_0x3a2af6;_0x25d931=_0x172061-_0x489905;_0x237603=_0x25d931*_0xafbcf0[_0x785e('0x17')][_0x2e92b8][_0x785e('0x1e')];_0x3d735e+=_0x237603;_0x392228+=_0x237603/0x64*_0xafbcf0['details'][_0x2e92b8][_0x785e('0x1d')];}}if(!_['isNil'](_0xafbcf0[_0x785e('0x27')]['discount'])){if(_0x3c05a4){_0x4cb501=_0x3d735e;}else{_0x4cb501=_0x392228+_0x3d735e;}}else{if(_0x3c05a4){_0x4cb501=_0x59d68e;}else{_0x4cb501=_0x1d22e2+_0x59d68e;}}if(_0xef85bd==_0x4cb501){_0xafbcf0['proforma'][_0x785e('0x21')]=0x1;}if(_0xef85bd<_0x4cb501){_0xafbcf0[_0x785e('0x27')]['paid']=0x2;}if(_0xef85bd>_0x4cb501){_0xafbcf0[_0x785e('0x27')]['paid']=0x3;}_0x76c7c2[_0x785e('0x29')][_0x785e('0x2a')](_0xafbcf0[_0x785e('0x27')],{'where':{'id':_0x1830f1[_0x785e('0x26')]}})[_0x785e('0x12')](function(_0x5175fa){})['catch'](function(_0x1e417f){console[_0x785e('0x23')](_0x785e('0x2b'),_0x1e417f);});});}});}_0xfcc6c8();},'afterUpdate':function(_0x18749d,_0x4cdde1,_0x2b2a4e){var _0x3a9e3e=_0x131963['models'];var _0x3d5f8c={};var _0x1a66f4={};var _0x1e2ae2=_0x18749d[_0x785e('0xe')]({'plain':!![]});if(_[_0x785e('0xf')](_0x1e2ae2,'InvoiceId')){_0x3a9e3e[_0x785e('0x22')]['find']({'where':{'id':_0x1e2ae2[_0x785e('0x10')]},'raw':!![]})[_0x785e('0x12')](function(_0x1e81a6){if(_0x1e81a6){_0x3d5f8c[_0x785e('0x13')]=_0x1e81a6;var _0x853f01=![];if(_0x3d5f8c['invoice'][_0x785e('0x14')][_0x785e('0x15')](_0x785e('0x28'))!=-0x1){_0x853f01=!![];}return _0x3a9e3e[_0x785e('0x16')]['findAll']({'where':{'InvoiceId':_0x1e2ae2['InvoiceId']},'raw':!![]})[_0x785e('0x12')](function(_0x240cd7){_0x3d5f8c['details']=_0x240cd7;return _0x3a9e3e[_0x785e('0x2c')][_0x785e('0x18')]({'where':{'InvoiceId':_0x1e2ae2[_0x785e('0x10')]},'raw':!![]});})[_0x785e('0x12')](function(_0x3b09ba){_0x3d5f8c[_0x785e('0x19')]=_0x3b09ba;var _0x14dcf6=0x0;var _0x5b3895=0x0;var _0x388b91=0x0;var _0x1fc9e2=0x0;var _0x2d79dc=0x0;for(var _0x22fad9=0x0;_0x22fad9<_0x3d5f8c[_0x785e('0x19')][_0x785e('0x1a')];_0x22fad9++){_0x14dcf6+=_0x3d5f8c['payments'][_0x22fad9][_0x785e('0x1b')];}for(var _0x22fad9=0x0;_0x22fad9<_0x3d5f8c[_0x785e('0x17')][_0x785e('0x1a')];_0x22fad9++){var _0x26db26=0x0;var _0x2e9285=0x0;var _0x2844e2=0x0;var _0x30f038=0x0;_0x26db26=_0x3d5f8c[_0x785e('0x17')][_0x22fad9][_0x785e('0x1c')]-_0x3d5f8c['details'][_0x22fad9][_0x785e('0x1c')]/0x64*_0x3d5f8c[_0x785e('0x17')][_0x22fad9]['discount'];_0x2e9285=_0x26db26/0x64*_0x3d5f8c['details'][_0x22fad9][_0x785e('0x1d')];_0x2844e2=_0x26db26*_0x3d5f8c[_0x785e('0x17')][_0x22fad9]['quantity'];_0x30f038=_0x2e9285*_0x3d5f8c[_0x785e('0x17')][_0x22fad9][_0x785e('0x1e')];_0x1fc9e2+=_0x2844e2;_0x2d79dc+=_0x30f038;}if(!_[_0x785e('0x20')](_0x3d5f8c[_0x785e('0x13')][_0x785e('0x1f')])){var _0x4c7b73=0x0;var _0x3f021d=0x0;var _0x3f7a3b=_0x3d5f8c[_0x785e('0x13')][_0x785e('0x1f')]*0x64/_0x1fc9e2;for(var _0x1091d0=0x0;_0x1091d0<_0x3d5f8c[_0x785e('0x17')][_0x785e('0x1a')];_0x1091d0++){var _0x4fb288=0x0;var _0x1e4278=0x0;var _0x5f29ef=0x0;_0x26db26=_0x3d5f8c[_0x785e('0x17')][_0x1091d0][_0x785e('0x1c')]-_0x3d5f8c[_0x785e('0x17')][_0x1091d0]['netPrice']/0x64*_0x3d5f8c[_0x785e('0x17')][_0x1091d0][_0x785e('0x1f')];_0x4fb288=_0x26db26/0x64*_0x3f7a3b;_0x1e4278=_0x26db26-_0x4fb288;_0x5f29ef=_0x1e4278*_0x3d5f8c[_0x785e('0x17')][_0x1091d0][_0x785e('0x1e')];_0x4c7b73+=_0x5f29ef;_0x3f021d+=_0x5f29ef/0x64*_0x3d5f8c[_0x785e('0x17')][_0x1091d0]['tax'];}}if(!_[_0x785e('0x20')](_0x3d5f8c[_0x785e('0x13')][_0x785e('0x1f')])){if(_0x853f01){_0x5b3895=_0x4c7b73;}else{_0x5b3895=_0x3f021d+_0x4c7b73;}}else{if(_0x853f01){_0x5b3895=_0x1fc9e2;}else{_0x5b3895=_0x2d79dc+_0x1fc9e2;}}if(_0x14dcf6==_0x5b3895){_0x3d5f8c['invoice'][_0x785e('0x21')]=0x1;}if(_0x14dcf6<_0x5b3895){_0x3d5f8c[_0x785e('0x13')][_0x785e('0x21')]=0x2;}if(_0x14dcf6>_0x5b3895){_0x3d5f8c[_0x785e('0x13')][_0x785e('0x21')]=0x3;}_0x3a9e3e[_0x785e('0x22')][_0x785e('0x2a')](_0x3d5f8c[_0x785e('0x13')],{'where':{'id':_0x1e2ae2[_0x785e('0x10')]}})[_0x785e('0x12')](function(_0x10eb0c){console[_0x785e('0x23')](_0x785e('0x2d'),_0x10eb0c);})[_0x785e('0x24')](function(_0xdd7a33){console[_0x785e('0x23')]('TCL:\x20err',_0xdd7a33);});});}});}else{_0x3a9e3e[_0x785e('0x29')][_0x785e('0x11')]({'where':{'id':_0x1e2ae2['ProformaId']},'raw':!![]})[_0x785e('0x12')](function(_0x3b6783){if(_0x3b6783){_0x1a66f4[_0x785e('0x27')]=_0x3b6783;var _0xeccade=![];if(_0x3d5f8c['invoice'][_0x785e('0x14')][_0x785e('0x15')](_0x785e('0x28'))!=-0x1){_0xeccade=!![];}return _0x3a9e3e[_0x785e('0x2e')]['findAll']({'where':{'ProformaId':_0x1e2ae2[_0x785e('0x26')]},'raw':!![]})['then'](function(_0xeff4eb){_0x1a66f4[_0x785e('0x17')]=_0xeff4eb;return _0x3a9e3e[_0x785e('0x2c')][_0x785e('0x18')]({'where':{'ProformaId':_0x1e2ae2[_0x785e('0x26')]},'raw':!![]});})[_0x785e('0x12')](function(_0x2f9436){_0x1a66f4['payments']=_0x2f9436;var _0x28ad3b=0x0;var _0x39ac83=0x0;var _0xd1e75d=0x0;var _0x4b495b=0x0;var _0x338669=0x0;for(var _0x12da28=0x0;_0x12da28<_0x1a66f4['payments']['length'];_0x12da28++){_0x28ad3b+=_0x1a66f4[_0x785e('0x19')][_0x12da28]['payment'];}for(var _0x12da28=0x0;_0x12da28<_0x1a66f4[_0x785e('0x17')][_0x785e('0x1a')];_0x12da28++){var _0x42734a=0x0;var _0x54221d=0x0;var _0x51dc96=0x0;var _0x14529a=0x0;_0x42734a=_0x1a66f4['details'][_0x12da28]['netPrice']-_0x1a66f4[_0x785e('0x17')][_0x12da28][_0x785e('0x1c')]/0x64*_0x1a66f4[_0x785e('0x17')][_0x12da28][_0x785e('0x1f')];_0x54221d=_0x42734a/0x64*_0x1a66f4[_0x785e('0x17')][_0x12da28][_0x785e('0x1d')];_0x51dc96=_0x42734a*_0x1a66f4[_0x785e('0x17')][_0x12da28][_0x785e('0x1e')];_0x14529a=_0x54221d*_0x1a66f4['details'][_0x12da28][_0x785e('0x1e')];_0x4b495b+=_0x51dc96;_0x338669+=_0x14529a;}if(!_['isNil'](_0x1a66f4[_0x785e('0x27')]['discount'])){var _0x54741d=0x0;var _0x127fa1=0x0;var _0x4ca81e=_0x1a66f4['proforma']['discount']*0x64/_0x4b495b;for(var _0x16d192=0x0;_0x16d192<_0x1a66f4[_0x785e('0x17')][_0x785e('0x1a')];_0x16d192++){var _0x1342d8=0x0;var _0x1beb87=0x0;var _0x11f2c3=0x0;_0x42734a=_0x1a66f4['details'][_0x16d192][_0x785e('0x1c')]-_0x1a66f4[_0x785e('0x17')][_0x16d192][_0x785e('0x1c')]/0x64*_0x1a66f4[_0x785e('0x17')][_0x16d192][_0x785e('0x1f')];_0x1342d8=_0x42734a/0x64*_0x4ca81e;_0x1beb87=_0x42734a-_0x1342d8;_0x11f2c3=_0x1beb87*_0x1a66f4[_0x785e('0x17')][_0x16d192]['quantity'];_0x54741d+=_0x11f2c3;_0x127fa1+=_0x11f2c3/0x64*_0x1a66f4[_0x785e('0x17')][_0x16d192][_0x785e('0x1d')];}}if(!_['isNil'](_0x1a66f4[_0x785e('0x27')]['discount'])){if(_0xeccade){_0x39ac83=_0x54741d;}else{_0x39ac83=_0x127fa1+_0x54741d;}}else{if(_0xeccade){_0x39ac83=_0x4b495b;}else{_0x39ac83=_0x338669+_0x4b495b;}}if(_0x28ad3b==_0x39ac83){_0x1a66f4['proforma'][_0x785e('0x21')]=0x1;}if(_0x28ad3b<_0x39ac83){_0x1a66f4[_0x785e('0x27')][_0x785e('0x21')]=0x2;}if(_0x28ad3b>_0x39ac83){_0x1a66f4[_0x785e('0x27')][_0x785e('0x21')]=0x3;}_0x3a9e3e[_0x785e('0x29')][_0x785e('0x2a')](_0x1a66f4[_0x785e('0x27')],{'where':{'id':_0x1e2ae2[_0x785e('0x26')]}})[_0x785e('0x12')](function(_0x1c70a3){})[_0x785e('0x24')](function(_0x730958){console[_0x785e('0x23')](_0x785e('0x2b'),_0x730958);});});}});}_0x2b2a4e();}}});};