voucher_approval_dao.py 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. from utils.UpdateOwnId import updateOwnId
  2. from dateutil.relativedelta import relativedelta
  3. from datetime import datetime
  4. def updateSeniorDataMaster(insert_obj, mongo):
  5. _id = ""
  6. try:
  7. UpdateResult = mongo["v_tbl_voucher_senior_master"].update_one(
  8. {'emp_key': str(insert_obj['emp_key'])}, {'$set': insert_obj},
  9. upsert=True)
  10. _id = UpdateResult.raw_result['upserted']
  11. updateOwnId("v_tbl_voucher_senior_master", _id, mongo)
  12. except Exception as identifier:
  13. print(identifier)
  14. return _id
  15. def getVoucherSeniorListDao(emp_key, mongo):
  16. voucher_senior_list = []
  17. try:
  18. voucher_senior_list = list(mongo["v_tbl_voucher_senior_master"].find(
  19. {'emp_key': emp_key}, {'_id': 0}))
  20. except Exception as err:
  21. print('getVoucherSeniorListDao', err)
  22. return voucher_senior_list
  23. def getVoucherDetailsDao(id, mongo):
  24. vouchers = []
  25. try:
  26. vouchers = list(mongo["v_tbl_voucher_master"].find({'id': id},
  27. {'_id': 0}))
  28. except Exception as err:
  29. print('getVoucherDetailsDao', err)
  30. return vouchers
  31. def getVoucherDetailsByCodeDao(voucher_code, mongo):
  32. vouchers = []
  33. try:
  34. vouchers = list(mongo["v_tbl_voucher_master"].find({'voucher_code': voucher_code},
  35. {'_id': 0}))
  36. except Exception as err:
  37. print('getVoucherDetailsByCodeDao', err)
  38. return vouchers
  39. def updateVoucherApprovalStatus(requestObject, voucher_id, mongo):
  40. try:
  41. mongo["v_tbl_voucher_master"].update_one({'id': str(voucher_id)},
  42. {'$set': requestObject})
  43. except Exception as identifier:
  44. print(identifier)
  45. def insertVoucherStatusLog(status_obj, mongo):
  46. try:
  47. mongo["v_voucher_status_log"].insert_one(status_obj)
  48. except Exception as err:
  49. print(err)
  50. def getPendingVoucherForApprovalDao(u_id, mongo):
  51. vouchers = []
  52. try:
  53. vouchers = list(mongo["v_tbl_voucher_master"].find(
  54. {
  55. 'voucher_status':'PENDING',
  56. '$or': [{
  57. 'approval_track.senior_level_1.id': u_id,
  58. 'approval_track.senior_level_1.status': 'PENDING'
  59. }, {
  60. 'approval_track.senior_level_2.id': u_id,
  61. 'approval_track.senior_level_2.status': 'PENDING'
  62. }, {
  63. 'approval_track.senior_level_3.id': u_id,
  64. 'approval_track.senior_level_3.status': 'PENDING'
  65. }, {
  66. 'approval_track.finance_level_1.id': u_id,
  67. 'approval_track.finance_level_1.status': 'PENDING'
  68. }, {
  69. 'approval_track.finance_level_2.id': u_id,
  70. 'approval_track.finance_level_2.status': 'PENDING'
  71. }]
  72. }, {'_id': 0}))
  73. except Exception as err:
  74. print('getPendingVoucherForApprovalDao', err)
  75. return vouchers
  76. def getApprovedVoucherListForRollbackDao( mongo):
  77. vouchers = []
  78. try:
  79. current_date = datetime.today()
  80. n = 10
  81. past_date = current_date - relativedelta(months=n)
  82. date = int(past_date.timestamp()*1000)
  83. vouchers = list(mongo["v_tbl_voucher_master"].find(
  84. {
  85. '$or': [{
  86. 'approval_track.finance_level_1.info.updated_on': {'$gte':date},
  87. 'approval_track.finance_level_1.status': 'APPROVED'
  88. }, {
  89. 'approval_track.finance_level_2.info.updated_on': {'$gte':date},
  90. 'approval_track.finance_level_2.status': 'APPROVED'
  91. }, {
  92. 'approval_track.finance_level_3.info.updated_on': {'$gte':date},
  93. 'approval_track.finance_level_3.status': 'APPROVED'
  94. }]
  95. }, {'_id': 0},sort=[('voucher_created_on', -1)]))
  96. except Exception as err:
  97. print('getApprovedVoucherListForRollbackDao', err)
  98. return vouchers
  99. def getArchiveVoucherForApprovalDao(u_id, mongo):
  100. vouchers = []
  101. try:
  102. vouchers = list(mongo["v_tbl_voucher_master"].find(
  103. {
  104. '$or': [{
  105. 'approval_track.senior_level_1.id': u_id,
  106. 'approval_track.senior_level_1.status': {'$ne':'PENDING'}
  107. }, {
  108. 'approval_track.senior_level_2.id': u_id,
  109. 'approval_track.senior_level_2.status': {'$ne':'PENDING'}
  110. }, {
  111. 'approval_track.senior_level_3.id': u_id,
  112. 'approval_track.senior_level_3.status': {'$ne':'PENDING'}
  113. }, {
  114. 'approval_track.finance_level_1.id': u_id,
  115. 'approval_track.finance_level_1.status': {'$ne':'PENDING'}
  116. }, {
  117. 'approval_track.finance_level_2.id': u_id,
  118. 'approval_track.finance_level_2.status': {'$ne':'PENDING'}
  119. }]
  120. }, {'_id': 0},sort=[('voucher_created_on', -1)]).limit(2000))
  121. except Exception as err:
  122. print('getPendingVoucherForApprovalDao', err)
  123. return vouchers