Built motion from commit (unavailable).|2.4.4
[motion2.git] / server / api / saQuotation / saQuotation.controller.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 _0xbb5a=['html-pdf','eml-format','rimraf','zip-dir','request-promise','mustache','util','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/environment','../../mysqldb','sendStatus','status','json','count','offset','set','Content-Range','apply','reject','update','then','end','error','name','send','index','rawAttributes','model','keys','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','limit','sort','where','filters','pick','filter','merge','type','key','VIRTUAL','field','options','SAQuotation','includeAll','include','rows','show','find','catch','create','body','params','destroy','describe','log','TCL:\x20manageProductQuotationIntoAsset\x20->\x20productQuotation','companyId','SAAsset','findAll','pricelistId','productCode','TCL:\x20manageProductQuotationIntoAsset\x20->\x20productsAsset','dateNextInvoice','findOne','subscriptionId','spread','abs','quantity','map','value','WARNING','There\x20are\x20not\x20enough\x20products\x20to\x20cancel.','productTax','typeName','pricelistName','netPrice','discount','note','tax','subscriptionName','subscriptionMonthly','bulkCreate','SAProductQuotation','moveQuotationAsset','sequelize','transaction','clone','push','all','No\x20product\x20to\x20move.'];(function(_0x465028,_0x4570ac){var _0xb783d4=function(_0x5458c5){while(--_0x5458c5){_0x465028['push'](_0x465028['shift']());}};_0xb783d4(++_0x4570ac);}(_0xbb5a,0x1b4));var _0xabb5=function(_0x5a1b93,_0x4dd924){_0x5a1b93=_0x5a1b93-0x0;var _0x237693=_0xbb5a[_0x5a1b93];return _0x237693;};'use strict';var pdf=require(_0xabb5('0x0'));var emlformat=require(_0xabb5('0x1'));var rimraf=require(_0xabb5('0x2'));var zipdir=require(_0xabb5('0x3'));var jsonpatch=require('fast-json-patch');var rp=require(_0xabb5('0x4'));var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xabb5('0x5'));var util=require(_0xabb5('0x6'));var path=require(_0xabb5('0x7'));var sox=require(_0xabb5('0x8'));var csv=require(_0xabb5('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0xabb5('0xa'));var squel=require(_0xabb5('0xb'));var crypto=require(_0xabb5('0xc'));var jsforce=require(_0xabb5('0xd'));var deskjs=require(_0xabb5('0xe'));var toCsv=require(_0xabb5('0x9'));var querystring=require('querystring');var Papa=require(_0xabb5('0xf'));var Redis=require(_0xabb5('0x10'));var authService=require(_0xabb5('0x11'));var qs=require(_0xabb5('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xabb5('0x13'))(_0xabb5('0x14'));var utils=require('../../config/utils');var config=require(_0xabb5('0x15'));var db=require(_0xabb5('0x16'))['db'];function respondWithStatusCode(_0x8974a0,_0x2f4ec3){_0x2f4ec3=_0x2f4ec3||0xcc;return function(_0x5d45b3){if(_0x5d45b3){return _0x8974a0[_0xabb5('0x17')](_0x2f4ec3);}return _0x8974a0[_0xabb5('0x18')](_0x2f4ec3)['end']();};}function respondWithResult(_0x5250d0,_0x55a6d9){_0x55a6d9=_0x55a6d9||0xc8;return function(_0x456523){if(_0x456523){return _0x5250d0['status'](_0x55a6d9)[_0xabb5('0x19')](_0x456523);}};}function respondWithFilteredResult(_0x5993bb,_0x10e261){return function(_0x12d3a3){if(_0x12d3a3){var _0x14a6c6=_0x12d3a3[_0xabb5('0x1a')],_0x573284=_0x10e261['offset'],_0x53c919=_0x10e261[_0xabb5('0x1b')]+_0x10e261['limit'],_0x3da085;if(_0x53c919>=_0x14a6c6){_0x53c919=_0x14a6c6;_0x3da085=0xc8;}else{_0x3da085=0xce;}_0x5993bb[_0xabb5('0x18')](_0x3da085);return _0x5993bb[_0xabb5('0x1c')](_0xabb5('0x1d'),_0x573284+'-'+_0x53c919+'/'+_0x14a6c6)[_0xabb5('0x19')](_0x12d3a3);}return null;};}function patchUpdates(_0x567882){return function(_0x34b78d){try{jsonpatch[_0xabb5('0x1e')](_0x34b78d,_0x567882,!![]);}catch(_0xf4b52d){return BPromise[_0xabb5('0x1f')](_0xf4b52d);}return _0x34b78d['save']();};}function saveUpdates(_0x34d84d,_0x377322){return function(_0x44af08){if(_0x44af08){return _0x44af08[_0xabb5('0x20')](_0x34d84d)[_0xabb5('0x21')](function(_0x458534){return _0x458534;});}return null;};}function removeEntity(_0x15bd0c,_0x55f61d){return function(_0x5176fb){if(_0x5176fb){return _0x5176fb['destroy']()[_0xabb5('0x21')](function(){_0x15bd0c[_0xabb5('0x18')](0xcc)[_0xabb5('0x22')]();});}};}function handleEntityNotFound(_0x22a6b0,_0x2aef07){return function(_0x36b17a){if(!_0x36b17a){_0x22a6b0[_0xabb5('0x17')](0x194);}return _0x36b17a;};}function handleError(_0x1da5ba,_0xf8576b){_0xf8576b=_0xf8576b||0x1f4;return function(_0x1d7c34){logger[_0xabb5('0x23')](_0x1d7c34['stack']);if(_0x1d7c34[_0xabb5('0x24')]){delete _0x1d7c34['name'];}_0x1da5ba['status'](_0xf8576b)[_0xabb5('0x25')](_0x1d7c34);};}exports[_0xabb5('0x26')]=function(_0x17d278,_0x5d687d){var _0x86ac90={},_0x3ea725={},_0x5897b6={'count':0x0,'rows':[]};var _0x5565aa=db['SAQuotation'][_0xabb5('0x27')];_0x3ea725[_0xabb5('0x28')]=_[_0xabb5('0x29')](_0x5565aa);_0x3ea725[_0xabb5('0x2a')]=_[_0xabb5('0x29')](_0x17d278[_0xabb5('0x2a')]);_0x3ea725['filters']=_[_0xabb5('0x2b')](_0x3ea725['model'],_0x3ea725[_0xabb5('0x2a')]);_0x86ac90['attributes']=_[_0xabb5('0x2b')](_0x3ea725['model'],qs[_0xabb5('0x2c')](_0x17d278[_0xabb5('0x2a')][_0xabb5('0x2c')]));_0x86ac90[_0xabb5('0x2d')]=_0x86ac90[_0xabb5('0x2d')][_0xabb5('0x2e')]?_0x86ac90[_0xabb5('0x2d')]:_0x3ea725[_0xabb5('0x28')];if(!_0x17d278['query'][_0xabb5('0x2f')](_0xabb5('0x30'))){_0x86ac90['limit']=qs[_0xabb5('0x31')](_0x17d278[_0xabb5('0x2a')][_0xabb5('0x31')]);_0x86ac90[_0xabb5('0x1b')]=qs['offset'](_0x17d278[_0xabb5('0x2a')]['offset']);}_0x86ac90['order']=qs[_0xabb5('0x32')](_0x17d278[_0xabb5('0x2a')][_0xabb5('0x32')]);_0x86ac90[_0xabb5('0x33')]=qs[_0xabb5('0x34')](_[_0xabb5('0x35')](_0x17d278[_0xabb5('0x2a')],_0x3ea725['filters']));if(_0x17d278['query'][_0xabb5('0x36')]){_0x86ac90[_0xabb5('0x33')]=_[_0xabb5('0x37')](_0x86ac90[_0xabb5('0x33')],{'$or':_['map'](_0x5565aa,function(_0x3be4c2){if(_0x3be4c2[_0xabb5('0x38')][_0xabb5('0x39')]!==_0xabb5('0x3a')){var _0x398e3c={};_0x398e3c[_0x3be4c2[_0xabb5('0x3b')]]={'$like':'%'+_0x17d278['query'][_0xabb5('0x36')]+'%'};return _0x398e3c;}})});}_0x86ac90=_[_0xabb5('0x37')]({},_0x86ac90,_0x17d278[_0xabb5('0x3c')]);var _0x2ccffd={'where':_0x86ac90[_0xabb5('0x33')]};return db[_0xabb5('0x3d')][_0xabb5('0x1a')](_0x2ccffd)[_0xabb5('0x21')](function(_0x501ec5){_0x5897b6['count']=_0x501ec5;if(_0x17d278[_0xabb5('0x2a')][_0xabb5('0x3e')]){_0x86ac90[_0xabb5('0x3f')]=[{'all':!![]}];}return db['SAQuotation']['findAll'](_0x86ac90);})['then'](function(_0x263fe8){_0x5897b6[_0xabb5('0x40')]=_0x263fe8;return _0x5897b6;})[_0xabb5('0x21')](respondWithFilteredResult(_0x5d687d,_0x86ac90))['catch'](handleError(_0x5d687d,null));};exports[_0xabb5('0x41')]=function(_0x561461,_0x351d6a){var _0x51c681={'raw':![],'where':{'id':_0x561461['params']['id']}},_0x4eb595={};_0x4eb595[_0xabb5('0x28')]=_['keys'](db['SAQuotation'][_0xabb5('0x27')]);_0x4eb595[_0xabb5('0x2a')]=_[_0xabb5('0x29')](_0x561461[_0xabb5('0x2a')]);_0x4eb595['filters']=_[_0xabb5('0x2b')](_0x4eb595[_0xabb5('0x28')],_0x4eb595[_0xabb5('0x2a')]);_0x51c681[_0xabb5('0x2d')]=_['intersection'](_0x4eb595[_0xabb5('0x28')],qs[_0xabb5('0x2c')](_0x561461['query'][_0xabb5('0x2c')]));_0x51c681[_0xabb5('0x2d')]=_0x51c681[_0xabb5('0x2d')][_0xabb5('0x2e')]?_0x51c681[_0xabb5('0x2d')]:_0x4eb595[_0xabb5('0x28')];if(_0x561461[_0xabb5('0x2a')]['includeAll']){_0x51c681['include']=[{'all':!![]}];}_0x51c681=_[_0xabb5('0x37')]({},_0x51c681,_0x561461[_0xabb5('0x3c')]);return db['SAQuotation'][_0xabb5('0x42')](_0x51c681)['then'](handleEntityNotFound(_0x351d6a,null))[_0xabb5('0x21')](respondWithResult(_0x351d6a,null))[_0xabb5('0x43')](handleError(_0x351d6a,null));};exports['create']=function(_0x3d8801,_0x3540b4){return db['SAQuotation'][_0xabb5('0x44')](_0x3d8801['body'],{})[_0xabb5('0x21')](respondWithResult(_0x3540b4,0xc9))[_0xabb5('0x43')](handleError(_0x3540b4,null));};exports['update']=function(_0x686562,_0x1aa210){if(_0x686562[_0xabb5('0x45')]['id']){delete _0x686562['body']['id'];}return db[_0xabb5('0x3d')][_0xabb5('0x42')]({'where':{'id':_0x686562[_0xabb5('0x46')]['id']}})[_0xabb5('0x21')](handleEntityNotFound(_0x1aa210,null))['then'](saveUpdates(_0x686562[_0xabb5('0x45')],null))[_0xabb5('0x21')](respondWithResult(_0x1aa210,null))['catch'](handleError(_0x1aa210,null));};exports[_0xabb5('0x47')]=function(_0xeca974,_0xba1ba2){return db[_0xabb5('0x3d')][_0xabb5('0x42')]({'where':{'id':_0xeca974[_0xabb5('0x46')]['id']}})[_0xabb5('0x21')](handleEntityNotFound(_0xba1ba2,null))[_0xabb5('0x21')](removeEntity(_0xba1ba2,null))[_0xabb5('0x43')](handleError(_0xba1ba2,null));};exports['describe']=function(_0xc670c5,_0x53481a){return db[_0xabb5('0x3d')][_0xabb5('0x48')]()[_0xabb5('0x21')](respondWithResult(_0x53481a,null))[_0xabb5('0x43')](handleError(_0x53481a,null));};function manageProductQuotationIntoAsset(_0x4813ce,_0x486ee1){console[_0xabb5('0x49')](_0xabb5('0x4a'),_0x4813ce);var _0x1db238=_0x4813ce[_0xabb5('0x4b')];var _0x171108=[];return db[_0xabb5('0x4c')][_0xabb5('0x4d')]({'where':{'companyId':_0x1db238,'SubscriptionId':_0x4813ce['subscriptionId'],'pricelistId':_0x4813ce[_0xabb5('0x4e')],'productCode':_0x4813ce[_0xabb5('0x4f')],'deleted':{'$or':[0x0,null]}},'raw':!![]})[_0xabb5('0x21')](function(_0x3292b7){console[_0xabb5('0x49')](_0xabb5('0x50'),_0x3292b7);_0x171108=_0x3292b7;console[_0xabb5('0x49')]('TCL:\x20manageProductQuotationIntoAsset\x20->\x20listproduct',_0x171108);if(_0x171108&&_0x171108[_0xabb5('0x2e')]>0x0){var _0x36386f=_0x171108[0x0][_0xabb5('0x51')];var _0x1f05e6=_0x171108[_0xabb5('0x2e')];return[_0x36386f,_0x1f05e6];}else{return db[_0xabb5('0x4c')][_0xabb5('0x52')]({'where':{'companyId':_0x1db238,'SubscriptionId':_0x4813ce[_0xabb5('0x53')],'pricelistId':_0x4813ce[_0xabb5('0x4e')]},'raw':!![]})[_0xabb5('0x21')](function(_0x4f9f9d){var _0x407899=new Date();if(_0x4f9f9d){_0x407899=_0x4f9f9d[_0xabb5('0x51')];}return[_0x407899,0x0];});}})[_0xabb5('0x54')](function(_0x5ec2af,_0x581f81){var _0x4dff03=Math[_0xabb5('0x55')](_0x4813ce[_0xabb5('0x56')]);if(_0x4813ce['quantity']<0x0&&_0x4dff03<=_0x581f81){var _0x357f6f=_(_0x171108)['slice'](0x0,_0x4dff03)[_0xabb5('0x57')]('id')[_0xabb5('0x58')]();return db[_0xabb5('0x4c')][_0xabb5('0x20')]({'deleted':0x1},{'where':{'id':_0x357f6f}});}if(_0x4813ce[_0xabb5('0x56')]<0x0&&Math['abs'](_0x4813ce[_0xabb5('0x56')])>_0x581f81){var _0xdfbf31={'errors':[{'type':_0xabb5('0x59'),'message':_0xabb5('0x5a')}]};throw _0xdfbf31;}if(_0x4813ce[_0xabb5('0x56')]>0x0){var _0x735623=new Array();for(var _0x8edbfb=0x0;_0x8edbfb<_0x4813ce['quantity'];_0x8edbfb++){var _0x2884bf={'companyName':_0x4813ce['companyName'],'companyId':_0x4813ce[_0xabb5('0x4b')],'productName':_0x4813ce['productName'],'productCode':_0x4813ce[_0xabb5('0x4f')],'productTax':_0x4813ce[_0xabb5('0x5b')],'productDescription':_0x4813ce['productDescription'],'typeName':_0x4813ce[_0xabb5('0x5c')],'pricelistName':_0x4813ce[_0xabb5('0x5d')],'pricelistId':_0x4813ce[_0xabb5('0x4e')],'netPrice':_0x4813ce[_0xabb5('0x5e')],'discount':_0x4813ce[_0xabb5('0x5f')],'agentFullname':_0x4813ce['agentFullname'],'note':_0x4813ce[_0xabb5('0x60')],'tax':_0x4813ce[_0xabb5('0x61')],'subscriptionId':_0x4813ce['subscriptionId'],'subscriptionName':_0x4813ce[_0xabb5('0x62')],'subscriptionMonthly':_0x4813ce[_0xabb5('0x63')]};_0x2884bf[_0xabb5('0x51')]=_0x5ec2af;_0x2884bf['companyId']=_0x1db238;_0x735623['push'](_0x2884bf);}return db[_0xabb5('0x4c')][_0xabb5('0x64')](_0x735623,{'transaction':_0x486ee1})['then'](function(){return db[_0xabb5('0x65')][_0xabb5('0x20')]({'productAsset':0x1},{'where':{'id':_0x4813ce['id']},'transaction':_0x486ee1});});}});}exports[_0xabb5('0x66')]=function(_0x36ee0e,_0x489faf,_0x1dad69){var _0x473bb8=_0x36ee0e[_0xabb5('0x46')]['id'];return db[_0xabb5('0x65')][_0xabb5('0x4d')]({'where':{'QuotationId':_0x473bb8,'productAsset':{'$ne':0x1}},'raw':!![],'logging':console[_0xabb5('0x49')]})['then'](function(_0x297010){if(_0x297010[_0xabb5('0x2e')]>0x0){return db[_0xabb5('0x67')][_0xabb5('0x68')](function(_0x27fdfe){var _0xa8600d=new Array();for(var _0x20ab95=0x0;_0x20ab95<_0x297010[_0xabb5('0x2e')];_0x20ab95++){var _0x3c99fb=_[_0xabb5('0x69')](_0x297010[_0x20ab95]);_0xa8600d[_0xabb5('0x6a')](manageProductQuotationIntoAsset(_0x3c99fb,_0x27fdfe));console[_0xabb5('0x49')](_0xabb5('0x66'),_0x3c99fb);}return BPromise[_0xabb5('0x6b')](_0xa8600d);});}else{var _0x509972={'errors':[{'type':_0xabb5('0x59'),'message':_0xabb5('0x6c')}]};throw _0x509972;}})[_0xabb5('0x21')](handleEntityNotFound(_0x489faf,null))[_0xabb5('0x21')](respondWithStatusCode(_0x489faf,0xc8))[_0xabb5('0x43')](handleError(_0x489faf,null));};