rp041993 3 gadi atpakaļ
vecāks
revīzija
8b35b156cf

BIN
.DS_Store


BIN
dao/__pycache__/project_dao.cpython-37.pyc


BIN
dao/__pycache__/voucher_approval_dao.cpython-37.pyc


+ 17 - 0
dao/project_dao.py

@@ -39,10 +39,27 @@ def getPendingPOForApprovalDao(u_id,mongo):
             {'approval_track.senior_level_2.id':u_id,'approval_track.senior_level_2.status':'PENDING'},
             {'approval_track.senior_level_3.id':u_id,'approval_track.senior_level_3.status':'PENDING'}
         ]},{'_id':0}))
+        
     except Exception as err:
         print('getProjectListByUID',err)
     return vendors
 
+def getArchivePOForApprovalDao(u_id,mongo):
+    vendors=[]
+    try:
+        
+        vendors=list(mongo["v_tbl_project_master"].find({'po_submitted':True,
+        '$or':[
+            {'approval_track.senior_level_1.id':u_id,'approval_track.senior_level_1.status':{'$ne':'PENDING'}},
+            {'approval_track.senior_level_2.id':u_id,'approval_track.senior_level_2.status':{'$ne':'PENDING'}},
+            {'approval_track.senior_level_3.id':u_id,'approval_track.senior_level_3.status':{'$ne':'PENDING'}}
+        ]},{'_id':0},sort=[('created_on', -1)]).limit(100))
+        
+    except Exception as err:
+        print('getArchivePOForApprovalDao',err)
+    return vendors
+
+
 def getProjectDetailsDao(id,mongo):
     vendors=[]
     try:

+ 30 - 0
dao/voucher_approval_dao.py

@@ -70,6 +70,36 @@ def getPendingVoucherForApprovalDao(u_id, mongo):
                     'approval_track.finance_level_2.status': 'PENDING'
                 }]
             }, {'_id': 0}))
+
+       
+    except Exception as err:
+        print('getPendingVoucherForApprovalDao', err)
+    return vouchers
+
+def getArchiveVoucherForApprovalDao(u_id, mongo):
+    vouchers = []
+    try:
+        vouchers = list(mongo["v_tbl_voucher_master"].find(
+            {
+                '$or': [{
+                    'approval_track.senior_level_1.id': u_id,
+                    'approval_track.senior_level_1.status': {'$ne':'PENDING'}
+                }, {
+                    'approval_track.senior_level_2.id': u_id,
+                    'approval_track.senior_level_2.status': {'$ne':'PENDING'}
+                }, {
+                    'approval_track.senior_level_3.id': u_id,
+                    'approval_track.senior_level_3.status': {'$ne':'PENDING'}
+                }, {
+                    'approval_track.finance_level_1.id': u_id,
+                    'approval_track.finance_level_1.status': {'$ne':'PENDING'}
+                }, {
+                    'approval_track.finance_level_2.id': u_id,
+                    'approval_track.finance_level_2.status': {'$ne':'PENDING'}
+                }]
+            }, {'_id': 0},sort=[('voucher_created_on', -1)]).limit(100))
+
+       
     except Exception as err:
         print('getPendingVoucherForApprovalDao', err)
     return vouchers

+ 19 - 0
engine.py

@@ -261,6 +261,16 @@ def get_po_approvals():
         # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
         return jsonify([])
 
+@app.route('/get_po_archive_approvals',methods=['GET'])
+def get_po_archive_approvals():
+    try:
+        queryResult=getPOArchiveLisForApprovals(request.args.get('id'),mongo)
+        return jsonify(queryResult)
+    except Exception as err:
+        # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
+        return jsonify([])
+
+
 @app.route('/get_voucher_approvals',methods=['GET'])
 def get_voucher_approvals():
     try:
@@ -270,6 +280,15 @@ def get_voucher_approvals():
         # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
         return jsonify([])
 
+@app.route('/get_voucher_archive_approvals',methods=['GET'])
+def get_voucher_archive_approvals():
+    try:
+        queryResult=getVoucherArchiveLisForApprovals(request.args.get('id'),mongo)
+        return jsonify(queryResult)
+    except Exception as err:
+        # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
+        return jsonify([])
+
 @app.route('/approveDeclinePO',methods=['POST'])
 def approveDeclinePO():
     try:

BIN
service/__pycache__/project_service.cpython-37.pyc


BIN
service/__pycache__/voucher_approval_service.cpython-37.pyc


BIN
service/__pycache__/voucher_list.cpython-37.pyc


+ 12 - 3
service/project_service.py

@@ -230,6 +230,15 @@ def getPOPendingLisForApprovals(u_id,mongo):
 
     return queryResult
 
+def getPOArchiveLisForApprovals(u_id,mongo):
+    queryResult = []
+    try:
+        queryResult = getArchivePOForApprovalDao(u_id, mongo)
+    except Exception as err:
+        queryResult = []
+
+    return queryResult
+
 def getProjectDetails(id, mongo):  # Validate email id and password
     queryResult = []
     try:
@@ -938,15 +947,15 @@ def create_email(po,status,approverName,approverLevel,mongo,app):
 
         for user in users:
             name=user['first_name']
-            reciever_email=user['personal_email_id']
             subject="PO approval & vendor acceptance"
             file_name=po['id']+'.pdf'
             pdf_attach=True
             
             body="Dear "+name+",<br /><br /> The PO of "+vendor_name+" vendor has been approved by your "+approverLevel +" <br />Kindly forward the attached PO for vendor acceptance, after approved by vendor, kindly take a screenshot & attached the same in vendor acceptance column for further processing." 
 
-            
-            sendEmail(file_name,reciever_email,body,pdf_attach,subject)
+            if 'official_email_id' in user and user['official_email_id']!="" and user['official_email_id']!="NA":
+                reciever_email=user['official_email_id']
+                sendEmail(file_name,reciever_email,body,pdf_attach,subject)
     except Exception as err:
         print(err)
     

+ 33 - 3
service/voucher_approval_service.py

@@ -3,6 +3,8 @@ from dao.voucher_approval_dao import *
 from datetime import datetime
 from utils.Email import sendEmail
 from utils.fcm_notification import send_notification
+from dao.vendor_dao import getVendorDetailsDao
+
 
 def getVoucherApprovalUserReportService(mongo):
     queryResult = []    
@@ -723,11 +725,30 @@ def approveDeclineVoucherService(request_obj,mongo,app):
                                 send_notification(user_lst[0], "Expense Request Status", notification_format)
 
                         if len(user_lst)!=0:
-                            personal_email_id=senior_lst[0]['personal_email_id']
+                            name=""
+                            if 'first_name' in senior_lst[0]:
+                                name+=senior_lst[0]['first_name']
+                            if 'last_name' in senior_lst[0]:
+                                name+=" "+senior_lst[0]['last_name']
+
+                            vendor_name=""
+                            
+                            if 'vendorName' in voucher and voucher['vendorName']!='':
+                                vendor_name=voucher['vendorName']
+                            elif 'vendor_id' in voucher and voucher['vendor_id'] != '':
+                                vendor_id = voucher['vendor_id']  # MOU Expiry
+                                vendor_lst=getVendorDetailsDao(vendor_id,mongo)
+                                if len(vendor_lst)!=0:
+                                    vendor_name=vendor_lst[0]['v_name']
+                    
+
+                                
                             subject="Expense Voucher Request"
-                            body="Expense Voucher Request by "+user_lst[0]['full_name']
+                            body="Dear "+name+",<br /><br /> Expense Voucher raised by "+user_lst[0]['full_name']+" of '"+vendor_name+"' of rs "+str(voucher['product_total_amount'])+", please approve the same."
 
-                            sendEmail("",personal_email_id,body,False,subject)
+                            if 'official_email_id' in senior_lst[0] and senior_lst[0]['official_email_id']!="" and senior_lst[0]['official_email_id']!="NA":
+                                reciever_email=senior_lst[0]['official_email_id']
+                                sendEmail("",reciever_email,body,False,subject)
 
                 except Exception as identifier:
                     print(identifier)
@@ -754,6 +775,15 @@ def getVoucherPendingLisForApprovals(u_id,mongo):
 
     return queryResult
 
+def getVoucherArchiveLisForApprovals(u_id,mongo):
+    queryResult = []
+    try:
+        queryResult = getArchiveVoucherForApprovalDao(u_id, mongo)
+    except Exception as err:
+        queryResult = []
+
+    return queryResult
+
 def getVoucherDetails(id, mongo):  
     queryResult = []
     try:

+ 23 - 10
service/voucher_list.py

@@ -1,5 +1,5 @@
 from dao.voucher_dao import *
-from dao.vendor_dao import getAllVendorListDao
+from dao.vendor_dao import getAllVendorListDao,getVendorDetailsDao
 from dao.project_dao import getAllUsersFromMaster,getPOListForReport,getUserDetailsFromMaster
 from datetime import datetime
 from dao.fetch_master_dao import getTDSRateListDao
@@ -113,6 +113,7 @@ def createVoucherService(files,data,app,mongo):
         submit=False
         selectGenrate=False
         formatted_dep={}
+        vendor_name=""
 
         create_flag=validateCreateVoucher(data,mongo)
         if create_flag==True:
@@ -226,14 +227,15 @@ def createVoucherService(files,data,app,mongo):
 
                     if 'note' + str(value) in data:
                         quote['note'] = data['note' + str(value)]
-
+                    
+                    
                     if 'quote_file' + str(value) in files:
                         quote_file = (files['quote_file' + str(value)])
                         quotImageResponse = uploadImagetoFolder(quote_file, 'quote_' + str(value), app)
                         if quotImageResponse['status'] == 'success':
-                            
-                            quote['quote_file'] = quote['quote_file'].append(quotImageResponse['message'])
-                    
+                            quote_file_list=quote['quote_file']
+                            quote_file_list.append(quotImageResponse['message'])
+                            quote['quote_file'] = quote_file_list
                     if append == True:
                         quotations_new.append(quote)
 
@@ -429,9 +431,13 @@ def createVoucherService(files,data,app,mongo):
                     if 'vendors' in data and data['vendors'] != '':
                         vendor_id = data['vendors']  # MOU Expiry
                         insert_doc['vendor_id'] = vendor_id
+                        vendor_lst=getVendorDetailsDao(vendor_id,mongo)
+                        if len(vendor_lst)!=0:
+                            vendor_name=vendor_lst[0]['v_name']
                 else:
                     if 'vendorName' in data and data['vendorName']!='':
                         insert_doc['vendor_name']=data['vendorName']
+                        vendor_name=data['vendorName']
                     if 'vendorAddress' in data and data['vendorAddress']!='':
                         insert_doc['vendor_address']=data['vendorAddress']
                     if 'vendorMobileNo' in data and data['vendorMobileNo']!='':
@@ -518,18 +524,25 @@ def createVoucherService(files,data,app,mongo):
                             
                             senior_lst=getUserDetailsFromMaster(senior_id,mongo)
                             if len(senior_lst)!=0:
-                                personal_email_id=senior_lst[0]['personal_email_id']
+                                name=""
+                                if 'first_name' in senior_lst[0]:
+                                    name+=senior_lst[0]['first_name']
+                                if 'last_name' in senior_lst[0]:
+                                    name+=" "+senior_lst[0]['last_name']
+
                                 subject="Expense Voucher Request"
-                                body="Expense Voucher Request by "+user_name
+                                body="Dear "+name+",<br /><br /> Expense Voucher raised by "+user_name+" of '"+vendor_name+"' of rs "+str(total_amount)+", please approve the same."
 
-                                sendEmail("",personal_email_id,body,False,subject)
+                                if 'official_email_id' in senior_lst[0] and senior_lst[0]['official_email_id']!="" and senior_lst[0]['official_email_id']!="NA":
+                                    reciever_email=senior_lst[0]['official_email_id']
+                                    sendEmail("",reciever_email,body,False,subject)
                     
-                        except expression as identifier:
+                        except Exception as identifier:
                             print(identifier)
 
                     queryResult = {
                     'status': 'success',
-                    'message': 'Project added successfully!'
+                    'message': 'Voucher added successfully!'
                     }
                 else:
                     queryResult = {

BIN
uploads/quote_1639135706920.pdf


BIN
uploads/quote_1639135942125.pdf


BIN
uploads/quote_1639136093236.pdf


BIN
uploads/quote_1639136137519.pdf


BIN
uploads/quote_1639136220776.pdf


BIN
uploads/quote_1639136266052.pdf


BIN
uploads/quote_1639136323982.pdf


BIN
uploads/s_v_j11639135706913.pdf


BIN
uploads/s_v_j11639135942115.pdf


BIN
uploads/s_v_j11639136093234.pdf


BIN
uploads/s_v_j11639136137516.pdf


BIN
uploads/s_v_j11639136220768.pdf


BIN
uploads/s_v_j11639136266049.pdf


BIN
uploads/s_v_j11639136323979.pdf