Subversion Repositories SmartDukaan

Rev

Rev 18631 | Rev 18639 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 18631 Rev 18637
Line 1722... Line 1722...
1722
                
1722
                
1723
    def on_post(self, req, resp):
1723
    def on_post(self, req, resp):
1724
        returned = False
1724
        returned = False
1725
        self.agentId = req.get_param("agent_id")
1725
        self.agentId = req.get_param("agent_id")
1726
        project_name = req.get_param("project_name")
1726
        project_name = req.get_param("project_name")
-
 
1727
        
1727
        if project_name == 'accs_cart':
1728
        if project_name == 'accs_cart':
1728
            jsonReq = json.loads(req.stream.read(), encoding='utf-8')
-
 
1729
            lgr.info( "Request ----\n"  + str(jsonReq))
-
 
1730
            self.jsonReq = jsonReq
-
 
1731
            self.callType="default"
-
 
1732
            callLaterAccs = self.callLaterAccs
-
 
1733
            accsDisposition = self.accsDisposition
-
 
1734
            self.userId = int(jsonReq.get('user_id'))
-
 
1735
            try:
1729
            project_id=1
1736
                self.user = session.query(UserCrmCallingData).filter_by(user_id=self.userId).filter(UserCrmCallingData.project_id==1).first()
-
 
1737
                self.callDisposition = jsonReq.get('calldispositiontype')
-
 
1738
                self.callHistoryCrm = CallHistoryCrm()
1730
        elif project_name == 'accs_active':
1739
                self.callHistoryCrm.agent_id=self.agentId
-
 
1740
                self.callHistoryCrm.project_id = 1
1731
            project_id=2            
1741
                self.callHistoryCrm.call_disposition = self.callDisposition
-
 
1742
                self.callHistoryCrm.user_id=self.userId
-
 
1743
                self.callHistoryCrm.duration_sec = int(jsonReq.get("callduration"))
-
 
1744
                self.callHistoryCrm.disposition_comments = jsonReq.get('calldispositioncomments')
-
 
1745
                self.callHistoryCrm.call_time = datetime.strptime(jsonReq.get("calltime"), '%d/%m/%Y %H:%M:%S')
-
 
1746
                self.callHistoryCrm.mobile_number = jsonReq.get('number')
-
 
1747
                self.inputs = jsonReq.get("inputs")
-
 
1748
                dispositionMap = {  'call_later':callLaterAccs,
-
 
1749
                            'ringing_no_answer':callLaterAccs,
-
 
1750
                            'not_reachable':callLaterAccs,
-
 
1751
                            'switch_off':callLaterAccs,
-
 
1752
                            'technical_issue':accsDisposition,
-
 
1753
                            'pricing_issue':accsDisposition,
-
 
1754
                            'shipping_issue':accsDisposition,
-
 
1755
                            'internet_issue':accsDisposition,
-
 
1756
                            'checking_price':accsDisposition,
-
 
1757
                            'order_process':accsDisposition,
-
 
1758
                            'placed_order':accsDisposition,
-
 
1759
                            'place_order':accsDisposition
1732
        elif project_name == 'accs_order':
1760
                          }
1733
            project_id=3            
1761
                returned = dispositionMap[jsonReq.get('calldispositiontype')]()
-
 
1762
            finally:
-
 
1763
                session.close()
-
 
1764
            
1734
        
1765
            if returned:
-
 
1766
                resp.body = "{\"result\":\"success\"}"
-
 
1767
            else:
-
 
1768
                resp.body = "{\"result\":\"failed\"}"
-
 
1769
 
-
 
1770
        if project_name == 'accs_active':
-
 
1771
                jsonReq = json.loads(req.stream.read(), encoding='utf-8')
1735
        jsonReq = json.loads(req.stream.read(), encoding='utf-8')
1772
                lgr.info( "Request ----\n"  + str(jsonReq))
1736
        lgr.info( "Request ----\n"  + str(jsonReq))
1773
                self.jsonReq = jsonReq
1737
        self.jsonReq = jsonReq
1774
                self.callType="default"
1738
        self.callType="default"
1775
                callLaterAccs = self.callLaterAccs
1739
        callLaterAccs = self.callLaterAccs
1776
                accsDisposition = self.accsDisposition
1740
        accsDisposition = self.accsDisposition
-
 
1741
        accsOrderDisposition=self.accsOrderDisposition
1777
                self.userId = int(jsonReq.get('user_id'))
1742
        self.userId = int(jsonReq.get('user_id'))
1778
                try:
1743
        try:
1779
                    self.user = session.query(UserCrmCallingData).filter_by(user_id=self.userId).filter(UserCrmCallingData.project_id==2).first()
1744
            self.user = session.query(UserCrmCallingData).filter_by(user_id=self.userId).filter(UserCrmCallingData.project_id==project_id).first()
1780
                    self.callDisposition = jsonReq.get('calldispositiontype')
1745
            self.callDisposition = jsonReq.get('calldispositiontype')
1781
                    self.callHistoryCrm = CallHistoryCrm()
1746
            self.callHistoryCrm = CallHistoryCrm()
1782
                    self.callHistoryCrm.agent_id=self.agentId
1747
            self.callHistoryCrm.agent_id=self.agentId
1783
                    self.callHistoryCrm.project_id = 2
1748
            self.callHistoryCrm.project_id = project_id
1784
                    self.callHistoryCrm.call_disposition = self.callDisposition
1749
            self.callHistoryCrm.call_disposition = self.callDisposition
1785
                    self.callHistoryCrm.user_id=self.userId
1750
            self.callHistoryCrm.user_id=self.userId
1786
                    self.callHistoryCrm.duration_sec = int(jsonReq.get("callduration"))
1751
            self.callHistoryCrm.duration_sec = int(jsonReq.get("callduration"))
1787
                    self.callHistoryCrm.disposition_comments = jsonReq.get('calldispositioncomments')
1752
            self.callHistoryCrm.disposition_comments = jsonReq.get('calldispositioncomments')
1788
                    self.callHistoryCrm.call_time = datetime.strptime(jsonReq.get("calltime"), '%d/%m/%Y %H:%M:%S')
1753
            self.callHistoryCrm.call_time = datetime.strptime(jsonReq.get("calltime"), '%d/%m/%Y %H:%M:%S')
1789
                    self.callHistoryCrm.mobile_number = jsonReq.get('number')
1754
            self.callHistoryCrm.mobile_number = jsonReq.get('number')
1790
                    self.inputs = jsonReq.get("inputs")
1755
            self.inputs = jsonReq.get("inputs")
1791
                    dispositionMap = {  'call_later':callLaterAccs,
1756
            dispositionMap = {  'call_later':callLaterAccs,
1792
                                'ringing_no_answer':callLaterAccs,
1757
                        'ringing_no_answer':callLaterAccs,
1793
                                'not_reachable':callLaterAccs,
1758
                        'not_reachable':callLaterAccs,
1794
                                'switch_off':callLaterAccs,
1759
                        'switch_off':callLaterAccs,
1795
                                'technical_issue':accsDisposition,
1760
                        'technical_issue':accsDisposition,
1796
                                'pricing_issue':accsDisposition,
1761
                        'pricing_issue':accsDisposition,
1797
                                'shipping_issue':accsDisposition,
1762
                        'shipping_issue':accsDisposition,
1798
                                'internet_issue':accsDisposition,
1763
                        'internet_issue':accsDisposition,
1799
                                'checking_price':accsDisposition,
1764
                        'checking_price':accsDisposition,
1800
                                'order_process':accsDisposition,
1765
                        'order_process':accsDisposition,
1801
                                'placed_order':accsDisposition,
1766
                        'placed_order':accsDisposition,
1802
                                'place_order':accsDisposition
1767
                        'place_order':accsDisposition,
1803
                              }
-
 
1804
                    returned = dispositionMap[jsonReq.get('calldispositiontype')]()
-
 
1805
                finally:
-
 
1806
                    session.close()
-
 
1807
                
-
 
1808
                if returned:
-
 
1809
                    resp.body = "{\"result\":\"success\"}"
-
 
1810
                else:
-
 
1811
                    resp.body = "{\"result\":\"failed\"}"
-
 
1812
 
-
 
1813
        if project_name == 'accs_order':
-
 
1814
                jsonReq = json.loads(req.stream.read(), encoding='utf-8')
-
 
1815
                lgr.info( "Request ----\n"  + str(jsonReq))
-
 
1816
                self.jsonReq = jsonReq
-
 
1817
                self.callType="default"
-
 
1818
                callLaterAccs = self.callLaterAccs
-
 
1819
                accsDisposition = self.accsDisposition
-
 
1820
                accsOrderDisposition=self.accsOrderDisposition
-
 
1821
                self.userId = int(jsonReq.get('user_id'))
-
 
1822
                try:
-
 
1823
                    self.user = session.query(UserCrmCallingData).filter_by(user_id=self.userId).filter(UserCrmCallingData.project_id==3).first()
-
 
1824
                    self.callDisposition = jsonReq.get('calldispositiontype')
-
 
1825
                    self.callHistoryCrm = CallHistoryCrm()
-
 
1826
                    self.callHistoryCrm.agent_id=self.agentId
-
 
1827
                    self.callHistoryCrm.project_id = 3
-
 
1828
                    self.callHistoryCrm.call_disposition = self.callDisposition
-
 
1829
                    self.callHistoryCrm.user_id=self.userId
-
 
1830
                    self.callHistoryCrm.duration_sec = int(jsonReq.get("callduration"))
-
 
1831
                    self.callHistoryCrm.disposition_comments = jsonReq.get('calldispositioncomments')
-
 
1832
                    self.callHistoryCrm.call_time = datetime.strptime(jsonReq.get("calltime"), '%d/%m/%Y %H:%M:%S')
-
 
1833
                    self.callHistoryCrm.mobile_number = jsonReq.get('number')
-
 
1834
                    self.inputs = jsonReq.get("inputs")
-
 
1835
                    dispositionMap = {  'call_later':callLaterAccs,
-
 
1836
                                'ringing_no_answer':callLaterAccs,
-
 
1837
                                'not_reachable':callLaterAccs,
-
 
1838
                                'switch_off':callLaterAccs,
-
 
1839
                                'technical_issue':accsDisposition,
-
 
1840
                                'pricing_issue':accsDisposition,
-
 
1841
                                'shipping_issue':accsDisposition,
-
 
1842
                                'product_availability':accsOrderDisposition,
1768
                        'product_availability':accsOrderDisposition,
1843
                                'return_replacement':accsOrderDisposition,
1769
                        'return_replacement':accsOrderDisposition,
1844
                                'already_purchased':accsOrderDisposition,
1770
                        'already_purchased':accsOrderDisposition,
1845
                                'product_quality_issue':accsOrderDisposition,
1771
                        'product_quality_issue':accsOrderDisposition,
1846
                                'delayed_delivery':accsOrderDisposition,
1772
                        'delayed_delivery':accsOrderDisposition,
1847
                                'other_complaint':accsOrderDisposition
1773
                        'other_complaint':accsOrderDisposition
1848
                              }
1774
                      }
1849
                    returned = dispositionMap[jsonReq.get('calldispositiontype')]()
1775
            returned = dispositionMap[jsonReq.get('calldispositiontype')]()
1850
                finally:
1776
        finally:
1851
                    session.close()
1777
            session.close()
1852
                
1778
        
1853
                if returned:
1779
        if returned:
1854
                    resp.body = "{\"result\":\"success\"}"
1780
            resp.body = "{\"result\":\"success\"}"
1855
                else:
1781
        else:
1856
                    resp.body = "{\"result\":\"failed\"}"
1782
            resp.body = "{\"result\":\"failed\"}"
1857
                    
1783
                        
1858
    def accsOrderDisposition(self):
1784
    def accsOrderDisposition(self):
1859
        self.user.status='done'
1785
        self.user.status='done'
1860
        self.user.user_available = 1
1786
        self.user.user_available = 1
1861
        self.user.disposition=self.callDisposition
1787
        self.user.disposition=self.callDisposition
1862
        self.user.modified = datetime.now()
1788
        self.user.modified = datetime.now()
1863
        utils._sendAlertForNewApp(self.callDisposition,self.callHistoryCrm.disposition_comments)
-
 
1864
        if self.callDisposition == 'product_availability':
1789
        if self.callDisposition == 'product_availability':
1865
            self.callHistoryCrm.disposition_description='Product Not available'
1790
            self.callHistoryCrm.disposition_description='Product Not available'
1866
        elif self.callDisposition == 'return_replacement':
1791
        elif self.callDisposition == 'return_replacement':
1867
            self.callHistoryCrm.disposition_description='Return or replacement pending'
1792
            self.callHistoryCrm.disposition_description='Return or replacement pending'
-
 
1793
            utils.sendCrmProjectMail(self.userId,self.callHistoryCrm.disposition_description,self.callHistoryCrm.disposition_comments)
1868
        elif self.callDisposition == 'already_purchased':
1794
        elif self.callDisposition == 'already_purchased':
1869
            self.callHistoryCrm.disposition_description='Already purchased required stock'
1795
            self.callHistoryCrm.disposition_description='Already purchased required stock'
1870
        elif self.callDisposition == 'product_quality_issue':
1796
        elif self.callDisposition == 'product_quality_issue':
1871
            self.callHistoryCrm.disposition_description='Product Quality issue'
1797
            self.callHistoryCrm.disposition_description='Product Quality issue'
-
 
1798
            utils.sendCrmProjectMail(self.userId,self.callHistoryCrm.disposition_description,self.callHistoryCrm.disposition_comments)            
1872
        elif self.callDisposition == 'delayed_delivery':
1799
        elif self.callDisposition == 'delayed_delivery':
1873
            self.callHistoryCrm.disposition_description='Delayed Delivery'    
1800
            self.callHistoryCrm.disposition_description='Delayed Delivery' 
-
 
1801
            utils.sendCrmProjectMail(self.userId,self.callHistoryCrm.disposition_description,self.callHistoryCrm.disposition_comments)   
1874
        elif self.callDisposition == 'other_complaint':
1802
        elif self.callDisposition == 'other_complaint':
1875
            self.callHistoryCrm.disposition_description='Other complaint with profitmandi'    
1803
            self.callHistoryCrm.disposition_description='Other complaint with profitmandi'
-
 
1804
            utils.sendCrmProjectMail(self.userId,self.callHistoryCrm.disposition_description,self.callHistoryCrm.disposition_comments)
1876
        session.commit()
1805
        session.commit()
1877
        jdata = self.inputs
1806
        jdata = self.inputs
1878
        jdata = json.loads(jdata)
1807
        jdata = json.loads(jdata)
1879
        if jdata:
1808
        if jdata:
1880
            for d in jdata:
1809
            for d in jdata:
Line 1896... Line 1825...
1896
        self.user.user_available = 1
1825
        self.user.user_available = 1
1897
        self.user.disposition=self.callDisposition
1826
        self.user.disposition=self.callDisposition
1898
        self.user.modified = datetime.now()
1827
        self.user.modified = datetime.now()
1899
        if self.callDisposition == 'technical_issue':
1828
        if self.callDisposition == 'technical_issue':
1900
            self.callHistoryCrm.disposition_description='Technical issue at Profitmandi'
1829
            self.callHistoryCrm.disposition_description='Technical issue at Profitmandi'
-
 
1830
            #utils.sendCrmProjectMail(self.userId,self.callHistoryCrm.disposition_description,self.callHistoryCrm.disposition_comments)
1901
        elif self.callDisposition == 'pricing_issue':
1831
        elif self.callDisposition == 'pricing_issue':
1902
            self.callHistoryCrm.disposition_description='Pricing Issue(High)'
1832
            self.callHistoryCrm.disposition_description='Pricing Issue(High)'
1903
        elif self.callDisposition == 'shipping_issue':
1833
        elif self.callDisposition == 'shipping_issue':
1904
            self.callHistoryCrm.disposition_description='Shipping charges related issue'
1834
            self.callHistoryCrm.disposition_description='Shipping charges related issue'
1905
        elif self.callDisposition == 'internet_issue':
1835
        elif self.callDisposition == 'internet_issue':