engine.py 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676
  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
  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. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  73. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  74. @app.route('/get_vendors', methods=['GET'])
  75. def get_vendor():
  76. try:
  77. queryResult=getVendorList(request.args.get('id'),mongo)
  78. return jsonify(queryResult)
  79. except Exception as err:
  80. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  81. return jsonify([])
  82. @app.route('/get_all_vendors',methods=['GET'])
  83. def get_all_vendors():
  84. try:
  85. queryResult=getAllVendorList(mongo)
  86. return jsonify(queryResult)
  87. except Exception as err:
  88. print(err)
  89. @app.route('/get_unregistered_vendors',methods=['GET'])
  90. def get_unregistered_vendors():
  91. try:
  92. queryResult=getAllUnregisteredVendorList(mongo)
  93. return jsonify(queryResult)
  94. except Exception as err:
  95. print(err)
  96. @app.route('/get_vendor_details',methods=['GET'])
  97. def get_vendor_details():
  98. try:
  99. queryResult=getVendorDetails(request.args.get('id'),mongo)
  100. return jsonify(queryResult)
  101. except Exception as err:
  102. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  103. return jsonify([])
  104. @app.route('/update_vendor_status',methods=['POST'])
  105. def update_vendor_status():
  106. try:
  107. if not request.json:
  108. return jsonify({'status': 'failure', 'data':'Something went wrong!'})
  109. else:
  110. queryResult=updateVendorStatus(request.json,mongo)
  111. return queryResult
  112. except Exception as err:
  113. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  114. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  115. @app.route('/update_vendor_status_admin',methods=['POST'])
  116. def update_vendor_status_admin():
  117. try:
  118. if not request.json:
  119. return jsonify({'status': 'failure', 'data':'Something went wrong!'})
  120. else:
  121. queryResult=updateVendorStatusAdmin(request.json,mongo)
  122. return queryResult
  123. except Exception as err:
  124. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  125. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  126. @app.route('/update_rating',methods=['POST'])
  127. def update_rating():
  128. try:
  129. if not request.json:
  130. return jsonify({'status': 'failure', 'data':'Something went wrong!'})
  131. else:
  132. queryResult=update_rating_service(request.json,mongo)
  133. return queryResult
  134. except Exception as err:
  135. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  136. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  137. @app.route('/get_vendor_ratings',methods=['GET'])
  138. def get_vendor_ratings():
  139. try:
  140. queryResult=getVendorRatingsService(request.args.get('id'),mongo)
  141. return jsonify(queryResult)
  142. except Exception as err:
  143. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  144. return jsonify([])
  145. @app.route('/get_intervention', methods=['GET'])
  146. def get_intervention():
  147. try:
  148. queryResult=getInterventionMaster(mongo)
  149. return jsonify({'status': 'success', 'data': queryResult})
  150. except Exception as err:
  151. print(err)
  152. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  153. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  154. @app.route('/add_project',methods=['POST'])
  155. def add_project():
  156. try:
  157. data=request.form.to_dict(flat=True)
  158. queryResult=addProjectService(request.files,data,app,mongo)
  159. return queryResult
  160. except Exception as err:
  161. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  162. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  163. @app.route('/submit_project',methods=['POST'])
  164. def submit_project():
  165. try:
  166. if not request.json:
  167. return jsonify({'status': 'failure', 'data':'Something went wrong!'})
  168. else:
  169. queryResult=submitProjectDetails(request.json,mongo)
  170. return queryResult
  171. except Exception as err:
  172. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  173. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  174. @app.route('/get_projects', methods=['GET'])
  175. def get_projects():
  176. try:
  177. queryResult=getProjectList(request.args.get('id'),mongo)
  178. return jsonify(queryResult)
  179. except Exception as err:
  180. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  181. return jsonify([])
  182. @app.route('/get_all_projects', methods=['GET'])
  183. def get_all_projects():
  184. try:
  185. queryResult=getAllProjectList(mongo)
  186. return jsonify(queryResult)
  187. except Exception as err:
  188. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  189. return jsonify([])
  190. @app.route('/get_project_details',methods=['GET'])
  191. def get_project_details():
  192. try:
  193. queryResult=getProjectDetails(request.args.get('id'),mongo)
  194. return jsonify(queryResult)
  195. except Exception as err:
  196. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  197. return jsonify([])
  198. @app.route('/create_po',methods=['POST'])
  199. def create_po():
  200. try:
  201. data=request.form.to_dict(flat=True)
  202. queryResult=createPOService(data,app,mongo)
  203. return queryResult
  204. except Exception as err:
  205. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  206. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  207. @app.route('/create_po_pdf',methods=['GET'])
  208. def create_po_pdf():
  209. try:
  210. queryResult=createPoPdfService(request.args.get('id'),app,mongo)
  211. return jsonify(queryResult)
  212. except Exception as err:
  213. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  214. return jsonify([])
  215. @app.route('/get_po_pdf',methods=['GET'])
  216. def get_po_pdf():
  217. try:
  218. return send_from_directory(app.config['PO_PDF'], request.args.get('id')+'.pdf')
  219. except Exception as err:
  220. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  221. return jsonify([])
  222. @app.route('/get_po_approvals',methods=['GET'])
  223. def get_po_approvals():
  224. try:
  225. queryResult=getPOPendingLisForApprovals(request.args.get('id'),mongo)
  226. return jsonify(queryResult)
  227. except Exception as err:
  228. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  229. return jsonify([])
  230. @app.route('/get_voucher_approvals',methods=['GET'])
  231. def get_voucher_approvals():
  232. try:
  233. queryResult=getVoucherPendingLisForApprovals(request.args.get('id'),mongo)
  234. return jsonify(queryResult)
  235. except Exception as err:
  236. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  237. return jsonify([])
  238. @app.route('/approveDeclinePO',methods=['POST'])
  239. def approveDeclinePO():
  240. try:
  241. if not request.json:
  242. return jsonify({'status': 'failure', 'data':'Something went wrong!'})
  243. else:
  244. queryResult=approveDeclinePOService(request.json,mongo,app)
  245. return queryResult
  246. except Exception as err:
  247. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  248. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  249. @app.route('/get_po_status_log',methods=['GET'])
  250. def get_po_status_log():
  251. try:
  252. queryResult=getPOStatusLogs(request.args.get('id'),mongo,app)
  253. return jsonify(queryResult)
  254. except Exception as err:
  255. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  256. return jsonify([])
  257. @app.route('/get_voucher_status_log',methods=['GET'])
  258. def get_voucher_status_log():
  259. try:
  260. queryResult=getVoucherStatusLogsService(request.args.get('id'),mongo)
  261. return jsonify(queryResult)
  262. except Exception as err:
  263. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  264. return jsonify([])
  265. @app.route('/vendor_acceptance',methods=['POST'])
  266. def vendor_acceptance():
  267. queryResult={}
  268. try:
  269. data=request.form.to_dict(flat=True)
  270. queryResult=vendorAcceptanceService(request.files,data,app,mongo)
  271. return queryResult
  272. except Exception as err:
  273. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  274. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  275. @app.route('/get_vouchers', methods=['GET'])
  276. def get_vouchers():
  277. try:
  278. queryResult=getVoucherList(request.args.get('id'),mongo)
  279. return jsonify(queryResult)
  280. except Exception as err:
  281. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  282. return jsonify([])
  283. @app.route('/get_all_vouchers', methods=['GET'])
  284. def get_all_vouchers():
  285. try:
  286. queryResult=getAllVoucherListService(mongo)
  287. return jsonify(queryResult)
  288. except Exception as err:
  289. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  290. return jsonify([])
  291. @app.route('/get_all_po',methods=['GET'])
  292. def get_all_po():
  293. try:
  294. queryResult=getAllPOListService(mongo)
  295. return jsonify(queryResult)
  296. except Exception as err:
  297. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  298. return jsonify([])
  299. @app.route('/get_voucher_type',methods=['GET'])
  300. def get_voucher_type():
  301. try:
  302. queryResult=getAllVoucherTypeListService(mongo)
  303. return jsonify(queryResult)
  304. except Exception as err:
  305. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  306. return jsonify([])
  307. @app.route('/get_budget_head',methods=['GET'])
  308. def get_budget_head():
  309. try:
  310. queryResult=getAllBudgetHeadListService(mongo)
  311. return jsonify(queryResult)
  312. except Exception as err:
  313. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  314. return jsonify([])
  315. @app.route('/get_tds_rate',methods=['GET'])
  316. def get_tds_rate():
  317. try:
  318. queryResult=getTDSRateListService(mongo)
  319. return jsonify(queryResult)
  320. except Exception as err:
  321. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  322. return jsonify([])
  323. @app.route('/create_voucher',methods=['POST'])
  324. def create_voucher():
  325. try:
  326. data=request.form.to_dict(flat=True)
  327. queryResult=createVoucherService(request.files,data,app,mongo)
  328. return queryResult
  329. except Exception as err:
  330. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  331. return jsonify([])
  332. @app.route('/update_tds_rate',methods=['POST'])
  333. def update_tds_rate():
  334. try:
  335. if not request.json:
  336. return jsonify({'status': 'failure', 'data':'Something went wrong!'})
  337. else:
  338. queryResult=updateVoucherTDSService(request.json,mongo)
  339. return 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({'status': 'failure', 'data': 'Something went wrong!'})
  343. @app.route('/get_voucher_details',methods=['GET'])
  344. def get_voucher_details():
  345. try:
  346. queryResult=getVoucherDetails(request.args.get('id'),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('/voucher_print_count',methods=['GET'])
  352. def voucher_print_count():
  353. try:
  354. queryResult=getVoucherDetailsPrintCount(request.args.get('id'),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('/fetch_voucher_analytics',methods=['GET'])
  360. def fetch_voucher_analytics():
  361. try:
  362. queryResult=getVoucherAnalyticsDataService(request.args.get('fromDate'),request.args.get('toDate'),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('/get_senior_list',methods=['GET'])
  368. def get_senior_list():
  369. try:
  370. queryResult=getVoucherApprovalUserReportService(mongo)
  371. return jsonify(queryResult)
  372. except Exception as err:
  373. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  374. return jsonify([])
  375. @app.route('/get_senior_details',methods=['GET'])
  376. def get_senior_details():
  377. try:
  378. queryResult=getSeniorDetailsService(request.args.get('emp_key'),mongo)
  379. return jsonify(queryResult)
  380. except Exception as err:
  381. return jsonify([])
  382. @app.route('/upload_senior_details',methods=['POST'])
  383. def upload_senior_details():
  384. try:
  385. if not request.json:
  386. return jsonify({'status': 'failure', 'data':'Something went wrong!'})
  387. else:
  388. queryResult=uploadSeniorDetailsService(request.json,mongo)
  389. return jsonify(queryResult)
  390. except Exception as err:
  391. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  392. @app.route('/approve_decline_voucher',methods=['POST'])
  393. def approve_decline_voucher():
  394. try:
  395. if not request.json:
  396. return jsonify({'status': 'failure', 'data':'Something went wrong!'})
  397. else:
  398. queryResult=approveDeclineVoucherService(request.json,mongo,app)
  399. return queryResult
  400. except Exception as err:
  401. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  402. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  403. @app.route('/update_voucher_date',methods=['POST'])
  404. def update_voucher_date():
  405. try:
  406. if not request.json:
  407. return jsonify({'status': 'failure', 'data':'Something went wrong!'})
  408. else:
  409. queryResult=updateVoucherDateService(request.json,mongo)
  410. return queryResult
  411. except Exception as err:
  412. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  413. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  414. @app.route('/submitted_voucher_copy',methods=['GET'])
  415. def submitted_voucher_copy():
  416. try:
  417. queryResult=submittedVoucherCopyService(request.args.get('id'),mongo)
  418. return jsonify(queryResult)
  419. except Exception as err:
  420. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  421. @app.route('/delete_voucher',methods=['GET'])
  422. def delete_voucher():
  423. try:
  424. queryResult=deleteVoucherService(request.args.get('id'),mongo)
  425. return jsonify(queryResult)
  426. except Exception as err:
  427. return jsonify({'status': 'failure', 'data': 'Something went wrong!'})
  428. @app.route('/delete_voucher_file',methods=['POST'])
  429. def delete_voucher_file():
  430. try:
  431. if not request.json:
  432. return jsonify({'status': 'failure', 'message':'Something went wrong!'})
  433. else:
  434. queryResult=delete_voucher_file_service(request.json,mongo)
  435. return queryResult
  436. except Exception as err:
  437. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  438. return jsonify({'status': 'failure', 'message': 'Something went wrong!'})
  439. @app.route('/genrate_asset_id',methods=['POST'])
  440. def genrate_asset_id():
  441. try:
  442. if not request.json:
  443. return jsonify([])
  444. else:
  445. queryResult=genrateAssetCode(request.json,mongo)
  446. return jsonify([queryResult])
  447. except Exception as err:
  448. return jsonify([])
  449. @app.route('/get_asset_category',methods=['GET'])
  450. def get_asset_category():
  451. try:
  452. queryResult=getAssetCategoryList(mongo)
  453. return jsonify(queryResult)
  454. except Exception as err:
  455. return jsonify([])
  456. @app.route('/getAllAssetsList',methods=['GET'])
  457. def getAllAssetsList():
  458. try:
  459. queryResult=getAllAssetsListService(mongo)
  460. return jsonify(queryResult)
  461. except Exception as err:
  462. return jsonify([])
  463. @app.route('/get_approved_voucher_report',methods=['GET'])
  464. def get_approved_voucher_report():
  465. try:
  466. queryResult=getVoucherReportDataService(request.args.get('fromDate'),request.args.get('toDate'),mongo)
  467. return jsonify(queryResult)
  468. except Exception as err:
  469. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  470. return jsonify([])
  471. @app.route('/get_mis_report',methods=['GET'])
  472. def get_mis_report():
  473. try:
  474. queryResult=getVoucherMISReportDataService(request.args.get('fromDate'),request.args.get('toDate'),mongo)
  475. return jsonify(queryResult)
  476. except Exception as err:
  477. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  478. return jsonify([])
  479. @app.route('/get_mou_report',methods=['GET'])
  480. def get_mou_report():
  481. try:
  482. queryResult=getMouReportDataService(request.args.get('fromDate'),request.args.get('toDate'),mongo)
  483. return jsonify(queryResult)
  484. except Exception as err:
  485. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  486. return jsonify([])
  487. @app.route('/get_tds_report',methods=['GET'])
  488. def get_tds_report():
  489. try:
  490. queryResult=getTdsReportDataService(request.args.get('fromDate'),request.args.get('toDate'),mongo)
  491. return jsonify(queryResult)
  492. except Exception as err:
  493. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  494. return jsonify([])
  495. @app.route('/get_tally_report',methods=['GET'])
  496. def get_tally_report():
  497. try:
  498. queryResult=getTallyReportDataService(request.args.get('fromDate'),request.args.get('toDate'),mongo)
  499. return jsonify(queryResult)
  500. except Exception as err:
  501. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  502. return jsonify([])
  503. @app.route('/get_depriciation_report',methods=['POST'])
  504. def get_depriciation_report():
  505. try:
  506. if not request.json:
  507. return jsonify([])
  508. else:
  509. queryResult=getDepriciationReportService(request.json,app,mongo)
  510. return jsonify([queryResult])
  511. except Exception as err:
  512. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  513. return jsonify([])
  514. @app.route('/update_report_asset_details',methods=['POST'])
  515. def update_report_asset_details():
  516. try:
  517. if not request.json:
  518. return jsonify({'status':'failure','message':'Something went wrong!'})
  519. else:
  520. queryResult=updateAssetReportDetailsService(request.json,mongo)
  521. return jsonify(queryResult)
  522. except Exception as err:
  523. # insert_into_error_log({'timestamp':int(datetime.now().timestamp()*1000),'type':'api','err':str(err),'function':'login'},mongo)
  524. return jsonify({'status':'failure','message':'Something went wrong!'})
  525. @app.route('/get_all_users',methods=['GET'])
  526. def get_all_users():
  527. try:
  528. queryResult=getAllUserList(mongo)
  529. return jsonify(queryResult)
  530. except Exception as err:
  531. print(err)
  532. @app.route('/d_l/<uid>',methods=['GET'])
  533. def direct_login(uid):
  534. response={}
  535. try:
  536. user_lst=getUserDetails(uid,mongo)
  537. if len(user_lst)!=0:
  538. timestamp=int(datetime.now().timestamp()*1000)
  539. name=""
  540. approval_track_vms="no"
  541. onboard_id=user_lst[0]['key']
  542. token=""
  543. if 'first_name' in user_lst[0]:
  544. name=user_lst[0]['first_name']
  545. if "approval_track_vms" in user_lst[0]:
  546. approval_track_vms= user_lst[0]["approval_track_vms"]
  547. try:
  548. token_string = user_lst[0]['personal_email_id']+str(123456)+str(timestamp)
  549. token_string_bytes = token_string.encode("ascii")
  550. base64_bytes = base64.b64encode(token_string_bytes)
  551. token = base64_bytes.decode("ascii")
  552. except Exception as err:
  553. print('===',err)
  554. response={"status":"Ok","user_name":name,"approval_track_vms":approval_track_vms,"onboard_id":onboard_id,"token":token}
  555. else:
  556. response={"status":"Error"}
  557. except Exception as err:
  558. response={"status":"Error"}
  559. print(err)
  560. return jsonify(response)
  561. # Fetch Uploaded files
  562. @app.route('/uploads/<filename>')
  563. def upload(filename):
  564. return send_from_directory(app.config['UPLOAD_FOLDER'], filename)
  565. if __name__ == '__main__':
  566. app.run(host="0.0.0.0", port=PORT,debug=True)
  567. # created_lst=list(mongo['expense_detail'].aggregate([
  568. # {"$group" : { "_id": "$created_on", "count": { "$sum": 1 } } },
  569. # {"$match": {"_id" :{ "$ne" : None } , "count" : {"$gt": 1} } },
  570. # {"$project": {"name" : "$_id", "_id" : 0} }
  571. # ]))
  572. # i=0
  573. # print("started")
  574. # for created_on in created_lst:
  575. # i+=1
  576. # docs=list(mongo['expense_detail'].find({'added_from':{'$exists':True},'is_deleted':False,'created_on':created_on['name']}))
  577. # doc_id=""
  578. # remark=""
  579. # amount=0
  580. # expense_date=0
  581. # for index,doc in enumerate(docs):
  582. # if index==0:
  583. # exp_lst=list(mongo['expense_request'].find({'expenseKey':doc['expenseKey'],'status':'PENDING'}))
  584. # if len(exp_lst)==0:
  585. # break
  586. # doc_id=doc['expenseKey']
  587. # remark=doc['remark']
  588. # amount=doc['amount']
  589. # expense_date=doc['expense_date']
  590. # elif doc_id==doc['expenseKey'] and expense_date==doc['expense_date'] and remark==doc['remark'] and amount==doc['amount']:
  591. # print(doc['expenseKey'],created_on['name'])
  592. # mongo['expense_detail'].update_one({'_id':doc['_id']},{'$set':{'is_deleted':True,'created_on':(created_on['name']+index+1)}})
  593. # print("completed")