engine.py 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796
  1. #----------Import neccessary packeges Starts-----------------#
  2. from flask import Flask, request, jsonify, make_response, render_template
  3. import pymongo
  4. import json
  5. from flask_cors import CORS
  6. import gc
  7. import os
  8. from datetime import datetime
  9. from flask import send_from_directory
  10. import base64
  11. #----------Import neccessary packeges Ends-----------------#
  12. #----------Import Config File Starts-----------------#
  13. from config import *
  14. import requests
  15. #----------Import neccessary Ends-----------------#
  16. #----------Import Service Func Starts------------ -----#
  17. from service.vendor_service import *
  18. from service.project_service import *
  19. from service.fetch_master_service import *
  20. from service.voucher_approval_service import *
  21. from utils.FetchInterventions import getInterventionMaster
  22. from service.voucher_list import *
  23. from service.asset_service import *
  24. from service.reports_service import *
  25. from utils.DateOperation import *
  26. from utils.FetchInterventions import getUserDetails,getProjectMastersDao
  27. #----------Import Service Func Ends-----------------#
  28. #----------Mongo Connection-----------#
  29. mongoClient = pymongo.MongoClient(MONGO_URI)
  30. mongo = mongoClient[MONGO_DBNAME]
  31. #----------Mongo Connection End-------#
  32. UPLOAD_FOLDER = 'uploads'
  33. ALLOWED_EXTENSIONS = { '.pptx','.pdf', '.png', '.jpg', '.jpeg', '.gif','.xlsx','.xls'}
  34. app = Flask(__name__)
  35. app.config['JSON_SORT_KEYS'] = False
  36. app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
  37. app.config['STATIC_IMG']='static_img'
  38. app.config['PO_PDF']='po_pdf'
  39. app.config['UPLOAD_EXTENSIONS']=ALLOWED_EXTENSIONS
  40. app.config['SECRET_KEY'] = SECRET_KEY
  41. app.config['TEMPLATES_AUTO_RELOAD'] = TEMPLATES_AUTO_RELOAD # Auto reload flak template
  42. cors = CORS(app, resources={r"/*": {"origins": "*"}}) # Allow Cross origin request
  43. @app.before_request
  44. def before_request():
  45. gc.collect()
  46. #------------------------------------------
  47. #------------ Fetch Master Data------------
  48. #------------------------------------------
  49. @app.route('/validate_vendor_code', methods=['GET'])
  50. def validate_vendor_code():
  51. try:
  52. queryResult=validateVendorCode(request.args.get('v_code'),mongo)
  53. return jsonify(queryResult)
  54. except Exception as err:
  55. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  56. return jsonify({'status': 'failure', 'message': 'Something went wrong!'})
  57. @app.route('/validate_pan', methods=['GET'])
  58. def validate_pan():
  59. try:
  60. queryResult=validatePANService(request.args.get('v_pan'),mongo)
  61. return jsonify(queryResult)
  62. except Exception as err:
  63. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  64. return jsonify({'status': 'failure', 'message': 'Something went wrong'})
  65. @app.route('/register_vendor', methods=['POST'])
  66. def register_vendor():
  67. try:
  68. data=request.form.to_dict(flat=True)
  69. queryResult=addVendorService(request.files,data,app,mongo)
  70. return jsonify(queryResult)
  71. except Exception as err:
  72. print(err)
  73. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  74. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  75. @app.route('/update_vendor_admin', methods=['POST'])
  76. def update_vendor_admin():
  77. try:
  78. data=request.form.to_dict(flat=True)
  79. queryResult=updateVendorAdminService(request.files,data,app,mongo)
  80. return jsonify(queryResult)
  81. except Exception as err:
  82. print(err)
  83. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  84. @app.route('/get_vendors', methods=['GET'])
  85. def get_vendor():
  86. try:
  87. queryResult=getVendorList(request.args.get('id'),mongo)
  88. return jsonify(queryResult)
  89. except Exception as err:
  90. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  91. return jsonify([])
  92. @app.route('/get_all_vendors',methods=['GET'])
  93. def get_all_vendors():
  94. try:
  95. queryResult=getAllVendorList(mongo)
  96. return jsonify(queryResult)
  97. except Exception as err:
  98. print(err)
  99. @app.route('/get_unregistered_vendors',methods=['GET'])
  100. def get_unregistered_vendors():
  101. try:
  102. queryResult=getAllUnregisteredVendorList(mongo)
  103. return jsonify(queryResult)
  104. except Exception as err:
  105. print(err)
  106. @app.route('/get_vendor_details',methods=['GET'])
  107. def get_vendor_details():
  108. try:
  109. queryResult=getVendorDetails(request.args.get('id'),mongo)
  110. return jsonify(queryResult)
  111. except Exception as err:
  112. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  113. return jsonify([])
  114. @app.route('/update_vendor_status',methods=['POST'])
  115. def update_vendor_status():
  116. try:
  117. if not request.json:
  118. return jsonify({'status': 'failure', 'data':'Something went wrong!'})
  119. else:
  120. queryResult=updateVendorStatus(request.json,mongo)
  121. return queryResult
  122. except Exception as err:
  123. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  124. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  125. @app.route('/update_vendor_status_admin',methods=['POST'])
  126. def update_vendor_status_admin():
  127. try:
  128. if not request.json:
  129. return jsonify({'status': 'failure', 'data':'Something went wrong!'})
  130. else:
  131. queryResult=updateVendorStatusAdmin(request.json,mongo)
  132. return queryResult
  133. except Exception as err:
  134. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  135. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  136. @app.route('/update_rating',methods=['POST'])
  137. def update_rating():
  138. try:
  139. if not request.json:
  140. return jsonify({'status': 'failure', 'data':'Something went wrong!'})
  141. else:
  142. queryResult=update_rating_service(request.json,mongo)
  143. return queryResult
  144. except Exception as err:
  145. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  146. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  147. @app.route('/get_vendor_ratings',methods=['GET'])
  148. def get_vendor_ratings():
  149. try:
  150. queryResult=getVendorRatingsService(request.args.get('id'),mongo)
  151. return jsonify(queryResult)
  152. except Exception as err:
  153. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  154. return jsonify([])
  155. @app.route('/get_intervention', methods=['GET'])
  156. def get_intervention():
  157. try:
  158. queryResult=getInterventionMaster(mongo)
  159. return jsonify({'status': 'success', 'data': queryResult})
  160. except Exception as err:
  161. print(err)
  162. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  163. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  164. @app.route('/add_project',methods=['POST'])
  165. def add_project():
  166. try:
  167. data=request.form.to_dict(flat=True)
  168. queryResult=addProjectService(request.files,data,app,mongo)
  169. return queryResult
  170. except Exception as err:
  171. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  172. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  173. @app.route('/submit_project',methods=['POST'])
  174. def submit_project():
  175. try:
  176. if not request.json:
  177. return jsonify({'status': 'failure', 'data':'Something went wrong!'})
  178. else:
  179. queryResult=submitProjectDetails(request.json,mongo)
  180. return queryResult
  181. except Exception as err:
  182. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  183. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  184. @app.route('/get_projects', methods=['GET'])
  185. def get_projects():
  186. try:
  187. queryResult=getProjectList(request.args.get('id'),mongo)
  188. return jsonify(queryResult)
  189. except Exception as err:
  190. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  191. return jsonify([])
  192. @app.route('/get_all_projects', methods=['GET'])
  193. def get_all_projects():
  194. try:
  195. queryResult=getAllProjectList(mongo)
  196. return jsonify(queryResult)
  197. except Exception as err:
  198. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  199. return jsonify([])
  200. @app.route('/get_project_details',methods=['GET'])
  201. def get_project_details():
  202. try:
  203. queryResult=getProjectDetails(request.args.get('id'),mongo)
  204. return jsonify(queryResult)
  205. except Exception as err:
  206. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  207. return jsonify([])
  208. @app.route('/create_po',methods=['POST'])
  209. def create_po():
  210. try:
  211. data=request.form.to_dict(flat=True)
  212. queryResult=createPOService(data,app,mongo)
  213. return queryResult
  214. except Exception as err:
  215. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  216. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  217. @app.route('/create_po_pdf',methods=['GET'])
  218. def create_po_pdf():
  219. try:
  220. queryResult=createPoPdfService(request.args.get('id'),app,mongo)
  221. return jsonify(queryResult)
  222. except Exception as err:
  223. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  224. return jsonify([])
  225. @app.route('/get_po_pdf',methods=['GET'])
  226. def get_po_pdf():
  227. try:
  228. return send_from_directory(app.config['PO_PDF'], request.args.get('id')+'.pdf')
  229. except Exception as err:
  230. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  231. return jsonify([])
  232. @app.route('/get_po_approvals',methods=['GET'])
  233. def get_po_approvals():
  234. try:
  235. queryResult=getPOPendingLisForApprovals(request.args.get('id'),mongo)
  236. return jsonify(queryResult)
  237. except Exception as err:
  238. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  239. return jsonify([])
  240. @app.route('/get_po_archive_approvals',methods=['GET'])
  241. def get_po_archive_approvals():
  242. try:
  243. queryResult=getPOArchiveLisForApprovals(request.args.get('id'),mongo)
  244. return jsonify(queryResult)
  245. except Exception as err:
  246. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  247. return jsonify([])
  248. @app.route('/get_voucher_approvals',methods=['GET'])
  249. def get_voucher_approvals():
  250. try:
  251. queryResult=getVoucherPendingLisForApprovals(request.args.get('id'),mongo)
  252. return jsonify(queryResult)
  253. except Exception as err:
  254. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  255. return jsonify([])
  256. @app.route('/get_voucher_for_rollback',methods=['GET'])
  257. def get_voucher_for_rollback():
  258. try:
  259. queryResult=getApprovedVoucherListForRollback(mongo)
  260. return jsonify(queryResult)
  261. except Exception as err:
  262. return jsonify([])
  263. @app.route('/rollback_voucher',methods=['POST'])
  264. def rollback_voucher():
  265. try:
  266. if not request.json:
  267. return jsonify({'status': 'failure', 'data':'Something went wrong!'})
  268. else:
  269. queryResult=rollbackVoucherService(request.json,mongo,app)
  270. return queryResult
  271. except Exception as err:
  272. print(err)
  273. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  274. @app.route('/get_voucher_archive_approvals',methods=['GET'])
  275. def get_voucher_archive_approvals():
  276. try:
  277. queryResult=getVoucherArchiveLisForApprovals(request.args.get('id'),mongo)
  278. return jsonify(queryResult)
  279. except Exception as err:
  280. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  281. return jsonify([])
  282. @app.route('/approveDeclinePO',methods=['POST'])
  283. def approveDeclinePO():
  284. try:
  285. if not request.json:
  286. return jsonify({'status': 'failure', 'data':'Something went wrong!'})
  287. else:
  288. queryResult=approveDeclinePOService(request.json,mongo,app)
  289. return queryResult
  290. except Exception as err:
  291. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  292. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  293. @app.route('/get_po_status_log',methods=['GET'])
  294. def get_po_status_log():
  295. try:
  296. queryResult=getPOStatusLogs(request.args.get('id'),mongo,app)
  297. return jsonify(queryResult)
  298. except Exception as err:
  299. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  300. return jsonify([])
  301. @app.route('/get_voucher_status_log',methods=['GET'])
  302. def get_voucher_status_log():
  303. try:
  304. queryResult=getVoucherStatusLogsService(request.args.get('id'),mongo)
  305. return jsonify(queryResult)
  306. except Exception as err:
  307. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  308. return jsonify([])
  309. @app.route('/vendor_acceptance',methods=['POST'])
  310. def vendor_acceptance():
  311. queryResult={}
  312. try:
  313. data=request.form.to_dict(flat=True)
  314. queryResult=vendorAcceptanceService(request.files,data,app,mongo)
  315. return queryResult
  316. except Exception as err:
  317. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  318. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  319. @app.route('/get_vouchers', methods=['GET'])
  320. def get_vouchers():
  321. try:
  322. queryResult=getVoucherList(request.args.get('id'),mongo)
  323. return jsonify(queryResult)
  324. except Exception as err:
  325. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  326. return jsonify([])
  327. @app.route('/get_all_vouchers', methods=['GET'])
  328. def get_all_vouchers():
  329. try:
  330. queryResult=getAllVoucherListService(mongo)
  331. return jsonify(queryResult)
  332. except Exception as err:
  333. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  334. return jsonify([])
  335. @app.route('/get_all_po',methods=['GET'])
  336. def get_all_po():
  337. try:
  338. queryResult=getAllPOListService(mongo)
  339. return jsonify(queryResult)
  340. except Exception as err:
  341. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  342. return jsonify([])
  343. @app.route('/get_voucher_type',methods=['GET'])
  344. def get_voucher_type():
  345. try:
  346. queryResult=getAllVoucherTypeListService(mongo)
  347. return jsonify(queryResult)
  348. except Exception as err:
  349. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  350. return jsonify([])
  351. @app.route('/get_budget_head',methods=['GET'])
  352. def get_budget_head():
  353. try:
  354. queryResult=getAllBudgetHeadListService(mongo)
  355. return jsonify(queryResult)
  356. except Exception as err:
  357. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  358. return jsonify([])
  359. @app.route('/get_tds_rate',methods=['GET'])
  360. def get_tds_rate():
  361. try:
  362. queryResult=getTDSRateListService(mongo)
  363. return jsonify(queryResult)
  364. except Exception as err:
  365. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  366. return jsonify([])
  367. @app.route('/create_voucher',methods=['POST'])
  368. def create_voucher():
  369. try:
  370. data=request.form.to_dict(flat=True)
  371. queryResult=createVoucherService(request.files,data,app,mongo)
  372. return queryResult
  373. except Exception as err:
  374. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  375. return jsonify([])
  376. @app.route('/update_tds_rate',methods=['POST'])
  377. def update_tds_rate():
  378. try:
  379. if not request.json:
  380. return jsonify({'status': 'failure', 'data':'Something went wrong!'})
  381. else:
  382. queryResult=updateVoucherTDSService(request.json,mongo)
  383. return queryResult
  384. except Exception as err:
  385. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  386. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  387. @app.route('/get_voucher_details',methods=['GET'])
  388. def get_voucher_details():
  389. try:
  390. queryResult=getVoucherDetails(request.args.get('id'),mongo)
  391. return jsonify(queryResult)
  392. except Exception as err:
  393. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  394. return jsonify([])
  395. @app.route('/get_voucher_details_by_code',methods=['GET'])
  396. def get_voucher_details_by_code():
  397. try:
  398. queryResult=getVoucherDetailsByCode(request.args.get('voucher_code'),mongo)
  399. return jsonify(queryResult)
  400. except Exception as err:
  401. return jsonify([])
  402. @app.route('/voucher_print_count',methods=['GET'])
  403. def voucher_print_count():
  404. try:
  405. queryResult=getVoucherDetailsPrintCount(request.args.get('id'),mongo)
  406. return jsonify(queryResult)
  407. except Exception as err:
  408. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  409. return jsonify([])
  410. @app.route('/fetch_voucher_analytics',methods=['GET'])
  411. def fetch_voucher_analytics():
  412. try:
  413. queryResult=getVoucherAnalyticsDataService(request.args.get('fromDate'),request.args.get('toDate'),mongo)
  414. return jsonify(queryResult)
  415. except Exception as err:
  416. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  417. return jsonify([])
  418. @app.route('/get_senior_list',methods=['GET'])
  419. def get_senior_list():
  420. try:
  421. queryResult=getVoucherApprovalUserReportService(mongo)
  422. return jsonify(queryResult)
  423. except Exception as err:
  424. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  425. return jsonify([])
  426. @app.route('/get_senior_details',methods=['GET'])
  427. def get_senior_details():
  428. try:
  429. queryResult=getSeniorDetailsService(request.args.get('emp_key'),mongo)
  430. return jsonify(queryResult)
  431. except Exception as err:
  432. return jsonify([])
  433. @app.route('/upload_senior_details',methods=['POST'])
  434. def upload_senior_details():
  435. try:
  436. if not request.json:
  437. return jsonify({'status': 'failure', 'data':'Something went wrong!'})
  438. else:
  439. queryResult=uploadSeniorDetailsService(request.json,mongo)
  440. return jsonify(queryResult)
  441. except Exception as err:
  442. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  443. @app.route('/approve_decline_voucher',methods=['POST'])
  444. def approve_decline_voucher():
  445. try:
  446. if not request.json:
  447. return jsonify({'status': 'failure', 'data':'Something went wrong!'})
  448. else:
  449. queryResult=approveDeclineVoucherService(request.json,mongo,app)
  450. return queryResult
  451. except Exception as err:
  452. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  453. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  454. @app.route('/update_voucher_date',methods=['POST'])
  455. def update_voucher_date():
  456. try:
  457. if not request.json:
  458. return jsonify({'status': 'failure', 'data':'Something went wrong!'})
  459. else:
  460. queryResult=updateVoucherDateService(request.json,mongo)
  461. return queryResult
  462. except Exception as err:
  463. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  464. @app.route('/submitted_voucher_copy',methods=['GET'])
  465. def submitted_voucher_copy():
  466. try:
  467. queryResult=submittedVoucherCopyService(request.args.get('id'),mongo)
  468. return jsonify(queryResult)
  469. except Exception as err:
  470. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  471. @app.route('/delete_voucher',methods=['GET'])
  472. def delete_voucher():
  473. try:
  474. queryResult=deleteVoucherService(request.args.get('id'),mongo)
  475. return jsonify(queryResult)
  476. except Exception as err:
  477. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  478. @app.route('/delete_voucher_file',methods=['POST'])
  479. def delete_voucher_file():
  480. try:
  481. if not request.json:
  482. return jsonify({'status': 'failure', 'message':'Something went wrong!'})
  483. else:
  484. queryResult=delete_voucher_file_service(request.json,mongo)
  485. return queryResult
  486. except Exception as err:
  487. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  488. return jsonify({'status': 'failure', 'message': 'Something went wrong!'})
  489. @app.route('/genrate_asset_id',methods=['POST'])
  490. def genrate_asset_id():
  491. try:
  492. if not request.json:
  493. return jsonify([])
  494. else:
  495. queryResult=genrateAssetCode(request.json,mongo)
  496. return jsonify([queryResult])
  497. except Exception as err:
  498. return jsonify([])
  499. @app.route('/get_asset_category',methods=['GET'])
  500. def get_asset_category():
  501. try:
  502. queryResult=getAssetCategoryList(mongo)
  503. return jsonify(queryResult)
  504. except Exception as err:
  505. return jsonify([])
  506. @app.route('/getAllAssetsList',methods=['GET'])
  507. def getAllAssetsList():
  508. try:
  509. queryResult=getAllAssetsListService(mongo)
  510. return jsonify(queryResult)
  511. except Exception as err:
  512. return jsonify([])
  513. @app.route('/get_approved_voucher_report',methods=['GET'])
  514. def get_approved_voucher_report():
  515. try:
  516. queryResult=getVoucherReportDataService(request.args.get('fromDate'),request.args.get('toDate'),mongo)
  517. return jsonify(queryResult)
  518. except Exception as err:
  519. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  520. return jsonify([])
  521. @app.route('/get_mis_report',methods=['GET'])
  522. def get_mis_report():
  523. try:
  524. queryResult=getVoucherMISReportDataService(request.args.get('fromDate'),request.args.get('toDate'),mongo)
  525. return jsonify(queryResult)
  526. except Exception as err:
  527. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  528. return jsonify([])
  529. @app.route('/get_mou_report',methods=['GET'])
  530. def get_mou_report():
  531. try:
  532. queryResult=getMouReportDataService(request.args.get('fromDate'),request.args.get('toDate'),mongo)
  533. return jsonify(queryResult)
  534. except Exception as err:
  535. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  536. return jsonify([])
  537. @app.route('/get_tds_report',methods=['GET'])
  538. def get_tds_report():
  539. try:
  540. queryResult=getTdsReportDataService(request.args.get('fromDate'),request.args.get('toDate'),mongo)
  541. return jsonify(queryResult)
  542. except Exception as err:
  543. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  544. return jsonify([])
  545. @app.route('/get_tally_report',methods=['GET'])
  546. def get_tally_report():
  547. try:
  548. queryResult=getTallyReportDataService(request.args.get('fromDate'),request.args.get('toDate'),mongo)
  549. return jsonify(queryResult)
  550. except Exception as err:
  551. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  552. return jsonify([])
  553. @app.route('/get_depriciation_report',methods=['POST'])
  554. def get_depriciation_report():
  555. try:
  556. if not request.json:
  557. return jsonify([])
  558. else:
  559. queryResult=getDepriciationReportService(request.json,app,mongo)
  560. return jsonify([queryResult])
  561. except Exception as err:
  562. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  563. return jsonify([])
  564. @app.route('/update_report_asset_details',methods=['POST'])
  565. def update_report_asset_details():
  566. try:
  567. if not request.json:
  568. return jsonify({'status':'failure','message':'Something went wrong!'})
  569. else:
  570. queryResult=updateAssetReportDetailsService(request.json,mongo)
  571. return jsonify(queryResult)
  572. except Exception as err:
  573. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  574. return jsonify({'status':'failure','message':'Something went wrong!'})
  575. @app.route('/get_all_users',methods=['GET'])
  576. def get_all_users():
  577. try:
  578. queryResult=getAllUserList(mongo)
  579. return jsonify(queryResult)
  580. except Exception as err:
  581. print(err)
  582. @app.route('/get_full_report',methods=['POST'])
  583. def get_full_report():
  584. try:
  585. if not request.json:
  586. return jsonify([])
  587. else:
  588. queryResult=getFullReportService(request.json,mongo)
  589. return jsonify(queryResult)
  590. except Exception as err:
  591. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  592. return jsonify([])
  593. @app.route('/get_project_masters',methods=['GET'])
  594. def get_project_masters():
  595. try:
  596. queryResult=getProjectMastersDao(mongo)
  597. return jsonify(queryResult)
  598. except Exception as err:
  599. print(err)
  600. @app.route('/d_l/<uid>',methods=['GET'])
  601. def direct_login(uid):
  602. response={}
  603. try:
  604. user_lst=getUserDetails(uid,mongo)
  605. if len(user_lst)!=0:
  606. timestamp=int(datetime.now().timestamp()*1000)
  607. name=""
  608. approval_track_vms="no"
  609. onboard_id=user_lst[0]['key']
  610. token=""
  611. if 'first_name' in user_lst[0]:
  612. name=user_lst[0]['first_name']
  613. if "approval_track_vms" in user_lst[0]:
  614. approval_track_vms= user_lst[0]["approval_track_vms"]
  615. try:
  616. token_string = user_lst[0]['personal_email_id']+str(123456)+str(timestamp)
  617. token_string_bytes = token_string.encode("ascii")
  618. base64_bytes = base64.b64encode(token_string_bytes)
  619. token = base64_bytes.decode("ascii")
  620. except Exception as err:
  621. print('===',err)
  622. response={"status":"Ok","user_name":name,"approval_track_vms":approval_track_vms,"onboard_id":onboard_id,"token":token}
  623. else:
  624. response={"status":"Error"}
  625. except Exception as err:
  626. response={"status":"Error"}
  627. print(err)
  628. return jsonify(response)
  629. # Fetch Uploaded files
  630. @app.route('/uploads/<filename>')
  631. def upload(filename):
  632. return send_from_directory(app.config['UPLOAD_FOLDER'], filename)
  633. if __name__ == '__main__':
  634. app.run(host="0.0.0.0", port=PORT,debug=True)
  635. # # Update leave balance
  636. # from bson.objectid import ObjectId
  637. # users = mongo['users'].distinct('key',{'current_status':{'$ne':'Resigned'}})
  638. # # {"$group" : { "_id": "$created_on", "count": { "$sum": 1 } } },
  639. # # {"$match": {"_id" :{ "$ne" : None } , "count" : {"$gt": 1} } },
  640. # # {"$project": {"name" : "$_id", "_id" : 0} }
  641. # # ]))
  642. # i=0
  643. # print("started")
  644. # timestamp = int(datetime.now().timestamp()*1000)
  645. # for user_id in users:
  646. # i+=1
  647. # print(i,len(users))
  648. # try:
  649. # if i==1:
  650. # _id = mongo['user_leave_info'].insert_one({
  651. # "credited_timestamp" : int(datetime.now().timestamp()*1000),
  652. # "event" : "leave_credited_every_month",
  653. # "user_id" : user_id,
  654. # "leave_type" : "Casual & Sick Leave",
  655. # "no_of_days_to_carry_forward" : 0,
  656. # "previous_month_balance" : 0.0,
  657. # "total_days_in_a_year" : 12,
  658. # "credited_on" : "05/07/2022",
  659. # "current_month_balance" : 1.0,
  660. # "no_of_days_to_encash" : 0,
  661. # "number_of_days_credited" : 1.0,
  662. # "leave_granted_timestamp" : timestamp,
  663. # })
  664. # print(type(_id))
  665. # mongo['user_leave_info'].update_one({'_id':ObjectId(_id.inserted_id)},{'$set':{'key':str(_id.inserted_id)}})
  666. # except Exception as err:
  667. # print(err)
  668. # print("completed")
  669. # created_lst=list(mongo['expense_detail'].aggregate([
  670. # {"$group" : { "_id": "$created_on", "count": { "$sum": 1 } } },
  671. # {"$match": {"_id" :{ "$ne" : None } , "count" : {"$gt": 1} } },
  672. # {"$project": {"name" : "$_id", "_id" : 0} }
  673. # ]))
  674. # i=0
  675. # print("started")
  676. # for created_on in created_lst:
  677. # i+=1
  678. # docs=list(mongo['expense_detail'].find({'added_from':{'$exists':True},'is_deleted':False,'created_on':created_on['name']}))
  679. # doc_id=""
  680. # remark=""
  681. # amount=0
  682. # expense_date=0
  683. # for index,doc in enumerate(docs):
  684. # if index==0:
  685. # exp_lst=list(mongo['expense_request'].find({'expenseKey':doc['expenseKey'],'status':'PENDING'}))
  686. # if len(exp_lst)==0:
  687. # break
  688. # doc_id=doc['expenseKey']
  689. # remark=doc['remark']
  690. # amount=doc['amount']
  691. # expense_date=doc['expense_date']
  692. # elif doc_id==doc['expenseKey'] and expense_date==doc['expense_date'] and remark==doc['remark'] and amount==doc['amount']:
  693. # print(doc['expenseKey'],created_on['name'])
  694. # mongo['expense_detail'].update_one({'_id':doc['_id']},{'$set':{'is_deleted':True,'created_on':(created_on['name']+index+1)}})
  695. # print("completed")