You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1254 lines
50 KiB

2 years ago
​
​
2 years ago
​
​
​
​
​
2 years ago
​
​
​
​
2 years ago
​
​
​
​
2 years ago
​
​
​
​
​
2 years ago
​
2 years ago
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
2 years ago
2 years ago
​
2 years ago
​
2 years ago
2 years ago
2 years ago
2 years ago
​
2 years ago
2 years ago
2 years ago
​
2 years ago
​
2 years ago
2 years ago
2 years ago
​
​
​
2 years ago
2 years ago
2 years ago
​
2 years ago
​
​
2 years ago
2 years ago
2 years ago
2 years ago
​
​
​
2 years ago
​
2 years ago
​
2 years ago
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
2 years ago
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
2 years ago
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
2 years ago
​
​
​
​
2 years ago
​
​
​
2 years ago
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
2 years ago
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
2 years ago
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
2 years ago
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
2 years ago
​
2 years ago
  1. <!DOCTYPE html>
  2. <html xmlns:th="http://www.thymeleaf.org">
  3. <head th:replace="~{fragments/head-headquarters :: head}"></head>
  4. <style>
  5. .card-body table {
  6. width: 100%;
  7. padding: 100px;
  8. }
  9. .card-body th,
  10. td {
  11. padding: 8px;
  12. text-align: left;
  13. }
  14. .amount-cell {
  15. text-align: right;
  16. padding-right: 1rem;
  17. /* Adjust padding as needed */
  18. }
  19. .table {
  20. width: 100% !important;
  21. }
  22. </style>
  23. <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"
  24. integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj"
  25. crossorigin="anonymous"></script>
  26. <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.5.4/dist/umd/popper.min.js"
  27. integrity="sha384-vUDzXQ+PSziH/FUbe0YVEv7qEoRJRT5D02B1RWZC1yyP3+n6K8N7q0clmKf3nDOJ"
  28. crossorigin="anonymous"></script>
  29. <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"
  30. integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO"
  31. crossorigin="anonymous"></script>
  32. <body>
  33. <!-- Page Container -->
  34. <div id="page-container"
  35. class="sidebar-o sidebar-dark enable-page-overlay side-scroll page-header-fixed page-header-dark">
  36. <!-- Side Overlay aside (right)-->
  37. <aside th:replace="~{fragments/aside-right :: aside}"></aside>
  38. <!-- END Side Overlay (right)-->
  39. <!-- Sidebar Nav-->
  40. <nav th:replace="~{fragments/nav-headquarters :: nav}"></nav>
  41. <header th:replace="~{fragments/header-headquarters :: header}"></header>
  42. <!-- END Header -->
  43. <!-- Main Container -->
  44. <main id="main-container">
  45. <div class="content">
  46. <ul class="nav nav-tabs" id="myTab" role="tablist">
  47. <li class="nav-item">
  48. <a class="nav-link active" id="settlement-approved-tab" data-toggle="tab"
  49. href="#settlement-approved" role="tab" aria-controls="settlement-approved"
  50. aria-selected="true">Settlement Refund</a>
  51. </li>
  52. <li class="nav-item">
  53. <a class="nav-link" id="cancelled-bookings-tab" data-toggle="tab" href="#cancelled-bookings"
  54. role="tab" aria-controls="cancelled-bookings" aria-selected="false">Cancelled Bookings
  55. Refund</a>
  56. </li>
  57. <li class="nav-item">
  58. <a class="nav-link" id="gcc-blocked-tab" data-toggle="tab" href="#gcc-blocked" role="tab"
  59. aria-controls="gcc-blocked" aria-selected="false">GCC Blocked/Rejected Refund</a>
  60. </li>
  61. </ul>
  62. <div class="tab-content" id="myTabContent">
  63. <!-- Tab pane for Settlement Approved -->
  64. <div class="tab-pane fade show active" id="settlement-approved" role="tabpanel"
  65. aria-labelledby="settlement-approved-tab">
  66. <div class="block block-rounded">
  67. <div class="block-content p-0">
  68. <div class="p-sm-4 p-0">
  69. <div class="table-responsive">
  70. <table id="SettlementCompletedListTable"
  71. class="table table-bordered table-striped table-vcenter js-dataTable-responsive">
  72. <thead class="thead-light">
  73. <tr>
  74. <th>S.no</th>
  75. <th>Zone/Division</th>
  76. <th>Hall Name</th>
  77. <th>Booking Id</th>
  78. <th width="10%">Booking Date</th>
  79. <th>Settlement Completed Date</th>
  80. <th width="5%">Settlement Id</th>
  81. <th>Deposit Amount</th>
  82. <th>Collection Amount</th>
  83. <th>Refunded Amount</th>
  84. <th>Refund Status</th>
  85. <th>Action</th>
  86. </tr>
  87. </thead>
  88. <tbody>
  89. <tr th:each="settlements, rowStat : ${completedlist}">
  90. <td class="text-center" th:text="${rowStat.index + 1}"></td>
  91. <td class="text-center"
  92. th:text="${settlements.hallDetails.zone + ' / ' + settlements.hallDetails.division}">
  93. </td>
  94. <td class="text-center"
  95. th:text="${settlements.hallDetails.hallName}"></td>
  96. <td class="text-center" th:text="${settlements.bookingId}"></td>
  97. <td class="text-center" th:text="${settlements.bookingDate}"></td>
  98. <td class="text-center"
  99. th:text="${settlements.settlement.updatedDate}"></td>
  100. <td class="text-center"
  101. th:text="${settlements.settlement.settlementId}"></td>
  102. <td class="text-center"
  103. th:text="${settlements.settlement.depositAmount}"></td>
  104. <td class="text-center"
  105. th:text="${settlements.settlement.collectionPending}"></td>
  106. <td class="text-center"
  107. th:text="${settlements.settlement.refundedAmount}"></td>
  108. <td class="text-center" th:text="${settlements.refundStatus}"></td>
  109. <td>
  110. <p>
  111. <span class="badge bg-warning" style="cursor: pointer;"
  112. th:onclick="approve([[${settlements.settlement.settlementId}]])">View</span>
  113. </p>
  114. </td>
  115. </tr>
  116. </tbody>
  117. </table>
  118. </div>
  119. </div>
  120. </div>
  121. </div>
  122. </div>
  123. <!-- Tab pane for Cancelled Bookings Approved -->
  124. <div class="tab-pane fade" id="cancelled-bookings" role="tabpanel"
  125. aria-labelledby="cancelled-bookings-tab">
  126. <!-- Repeat similar structure for Cancelled Bookings Approved -->
  127. <div class="block block-rounded">
  128. <div class="block-header block-header-default">
  129. <h3 class="block-title">List of Refund Completed for Cancelled Bookings</h3>
  130. </div>
  131. <div class="block-content p-0">
  132. <div class="p-sm-4 p-0">
  133. <div class="table-responsive">
  134. <table id="cancelledcompletedListTable"
  135. class="table table-bordered table-striped table-vcenter js-dataTable-responsive">
  136. <thead class="thead-light">
  137. <tr>
  138. <th>S.no</th>
  139. <th>Booking Id</th>
  140. <th>Booking Date</th>
  141. <th>Hall Name</th>
  142. <th>User Name</th>
  143. <th>User type</th>
  144. <th>Reason for Booking</th>
  145. <th>Refund Amount</th>
  146. <th>Action</th>
  147. </tr>
  148. </thead>
  149. <tbody>
  150. <tr th:each="cancelledbookings, rowStat : ${cancelledcompletedlist}">
  151. <td class="text-center" th:text="${rowStat.index + 1}"></td>
  152. <td class="text-center" th:text="${cancelledbookings.bookingId}">
  153. </td>
  154. <td class="text-center" th:text="${cancelledbookings.bookingDate}">
  155. </td>
  156. <td class="text-center"
  157. th:text="${cancelledbookings.hallDetails.hallName}"></td>
  158. <td class="text-center" th:text="${cancelledbookings.users.name}">
  159. </td>
  160. <td class="text-center"
  161. th:text="${cancelledbookings.users.usertype}"></td>
  162. <td class="text-center" th:text="${cancelledbookings.reason}"></td>
  163. <td class="text-center"
  164. th:text="${cancelledbookings.depositAmount}"></td>
  165. <td>
  166. <p>
  167. <span class="badge bg-warning" style="cursor: pointer;"
  168. th:onclick="refundcompleted([[${cancelledbookings.bookingId}]])">View</span>
  169. </p>
  170. </td>
  171. </tr>
  172. </tbody>
  173. </table>
  174. </div>
  175. </div>
  176. </div>
  177. </div>
  178. </div>
  179. <!-- Tab pane for GCC Blocked/Rejected Approved -->
  180. <div class="tab-pane fade" id="gcc-blocked" role="tabpanel" aria-labelledby="gcc-blocked-tab">
  181. <!-- Repeat similar structure for GCC Blocked/Rejected Approved -->
  182. <div class="block block-rounded">
  183. <div class="block-header block-header-default">
  184. <h3 class="block-title">List of Refund Completed GCC Blocked/Rejected</h3>
  185. </div>
  186. <div class="block-content p-0">
  187. <div class="p-sm-4 p-0">
  188. <div class="table-responsive">
  189. <table id="rejectedcompletedListTable"
  190. class="table table-bordered table-striped table-vcenter js-dataTable-responsive">
  191. <thead class="thead-light">
  192. <tr>
  193. <th>S.no</th>
  194. <th>Booking Id</th>
  195. <th>Booking Date</th>
  196. <th>Hall Name</th>
  197. <th>User Name</th>
  198. <th>User type</th>
  199. <th>Reason for Booking</th>
  200. <th>Reason for Rejection</th>
  201. <th>Refund Amount</th>
  202. <th>Action</th>
  203. </tr>
  204. </thead>
  205. <tbody>
  206. <tr th:each="rejectedbookings, rowStat : ${rejectedcompletedlist}">
  207. <td class="text-center" th:text="${rowStat.index + 1}"></td>
  208. <td class="text-center" th:text="${rejectedbookings.bookingId}">
  209. </td>
  210. <td class="text-center" th:text="${rejectedbookings.bookingDate}">
  211. </td>
  212. <td class="text-center"
  213. th:text="${rejectedbookings.hallDetails.hallName}"></td>
  214. <td class="text-center" th:text="${rejectedbookings.users.name}">
  215. </td>
  216. <td class="text-center"
  217. th:text="${rejectedbookings.users.usertype}"></td>
  218. <td class="text-center" th:text="${rejectedbookings.reason}"></td>
  219. <td class="text-center" th:text="${rejectedbookings.comments}"></td>
  220. <td class="text-center"
  221. th:text="${rejectedbookings.amountReceived}">
  222. </td>
  223. <td>
  224. <p>
  225. <span class="badge bg-warning" style="cursor: pointer;"
  226. th:onclick="refundcompleted([[${rejectedbookings.bookingId}]])">View</span>
  227. </p>
  228. </td>
  229. </tr>
  230. </tbody>
  231. </table>
  232. </div>
  233. </div>
  234. </div>
  235. </div>
  236. </div>
  237. </div>
  238. </div>
  239. </main>
  240. <!-- END Main Container -->
  241. <!--modal for pending-->
  242. <div class="modal fade backdrop" id="initiateSettlementForm" data-backdrop="static" tabindex="-1" role="dialog"
  243. aria-labelledby="staticBackdropLabel" aria-hidden="true">
  244. <div class="modal-dialog modal-lg" role="document">
  245. <div class="modal-content">
  246. <form id="ownform">
  247. <div class="block block-rounded block-themed block-transparent mb-0">
  248. <div class="block-header bg-primary-dark">
  249. <h3 class="block-title" id="2mtitle">Settlement Information</h3>
  250. <div class="block-options">
  251. <button type="button" class="btn-block-option" data-bs-dismiss="modal"
  252. aria-label="Close">
  253. <i class="fa fa-fw fa-times"></i>
  254. </button>
  255. </div>
  256. </div>
  257. <div class="block-content row">
  258. <div class="col-md-12 col-lg-12 col-sm-12">
  259. <input type="hidden" class="form-control text-center" name="settlementid"
  260. id="settlementid" disabled />
  261. <div class="card-body">
  262. <table>
  263. <tr>
  264. <th colspan="10" style="background-color: #f2f2f2;">User Details</th>
  265. </tr>
  266. <tr>
  267. <th style="padding: 0.45rem 0.45rem;font-weight: normal;">User Name:
  268. </th>
  269. <td class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  270. id="td_userName"></td>
  271. <th style="padding: 0.45rem 0.45rem;font-weight: normal;">Mobile Number:
  272. </th>
  273. <td class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  274. id="td_mobileNumber"></td>
  275. <th style="padding: 0.45rem 0.45rem;font-weight: normal;">User Type:
  276. </th>
  277. <td class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  278. id="td_usertype"></td>
  279. </tr>
  280. <tr>
  281. <th style="padding: 0.45rem 0.45rem;font-weight: normal;">User Address:
  282. </th>
  283. <td colspan="5" class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  284. id="td_useraddress"></td>
  285. </tr>
  286. <input type="hidden" class="form-control text-center" name="bookingid"
  287. id="bookingid" disabled />
  288. <tr>
  289. <th colspan="10" style="background-color: #f2f2f2;">Hall Details</th>
  290. </tr>
  291. <tr>
  292. <th style="padding: 0.45rem 0.45rem;font-weight: normal;">Hall Name:
  293. </th>
  294. <td colspan="10" class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  295. id="td_hallName"></td>
  296. </tr>
  297. <th style="padding: 0.45rem 0.45rem;font-weight: normal;">Hall Address:</th>
  298. <td colspan="10" class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  299. id="td_halladdress"></td>
  300. </tr>
  301. <tr>
  302. <th style="padding: 0.45rem 0.45rem;font-weight: normal;">Caretaker
  303. Name:</th>
  304. <td colspan="2" class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  305. id="td_caretakername"></td>
  306. <th style="padding: 0.45rem 0.45rem;font-weight: normal;">Caretaker
  307. Mobile Number:</th>
  308. <td colspan="2" class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  309. id="td_caretakermobileNumber"></td>
  310. </tr>
  311. </table>
  312. </div>
  313. </div>
  314. <div class="col-md-12 col-lg-12 col-sm-12">
  315. <input type="hidden" class="form-control text-center" name="settlementid"
  316. id="settlementid" disabled />
  317. <div class="card-body">
  318. <table>
  319. <tr>
  320. <th colspan="4" style="background-color: #f2f2f2;">Booking
  321. Details (Booking Id:-<span id="booking_id"
  322. style="color:blue"></span>)</th>
  323. </tr>
  324. <tr>
  325. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Booking Date:
  326. </th>
  327. <td class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  328. id="td_bookingDate"></td>
  329. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Deposit
  330. Amount:</th>
  331. <td class="fw-semibold amount-cell" style="padding: 0.45rem 0.45rem;"
  332. id="td_depositeAmount"></td>
  333. </tr>
  334. <tr>
  335. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Start Date:
  336. </th>
  337. <td class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  338. id="td_startDate"></td>
  339. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Hall Amount:
  340. </th>
  341. <td class="fw-semibold amount-cell" style="padding: 0.45rem 0.45rem;"
  342. id="td_hallAmount"></td>
  343. </tr>
  344. <tr>
  345. <th style="padding: 0.45rem 0.45rem;font-weight: normal">END
  346. Date:</th>
  347. <td class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  348. id="td_endDate"></td>
  349. <th style="padding: 0.45rem 0.45rem;font-weight: normal">GST @18%:</th>
  350. <td class="fw-semibold amount-cell" style="padding: 0.45rem 0.45rem;"
  351. id="td_gst"></td>
  352. </tr>
  353. <tr>
  354. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Starting Slot:
  355. </th>
  356. <td class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  357. id="td_startingSlot"></td>
  358. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Total Amount:
  359. </th>
  360. <td class="fw-semibold amount-cell" style="padding: 0.45rem 0.45rem;"
  361. id="td_totalAmount"></td>
  362. </tr>
  363. <tr>
  364. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Ending Slot:
  365. </th>
  366. <td class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  367. id="td_endingSlot"></td>
  368. </tr>
  369. <tr>
  370. <th colspan="4" style="background-color: #f2f2f2;">EB
  371. Details</th>
  372. </tr>
  373. <tr>
  374. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Consumer
  375. Number:</th>
  376. <td class="fw-semibold"
  377. style="padding: 0.45rem 0.45rem;text-align:center;"
  378. id="td_EBNumber"></td>
  379. <th style="padding: 0.45rem 0.45rem;font-weight: normal">EB Amount Per
  380. Unit:</th>
  381. <td class="fw-semibold"
  382. style="padding: 0.45rem 0.45rem;text-align:right;"
  383. id="td_ebamountperunit"></td>
  384. </tr>
  385. <tr>
  386. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Start Reading:
  387. </th>
  388. <td class="fw-semibold"
  389. style="padding: 0.45rem 0.45rem;text-align:center;"
  390. id="td_startingReading"></td>
  391. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Unit Consumed:
  392. </th>
  393. <td class="fw-semibold"
  394. style="padding: 0.45rem 0.45rem;text-align:right;" id="td_usedunit">
  395. </td>
  396. </tr>
  397. <tr>
  398. <th style="padding: 0.45rem 0.45rem;font-weight: normal">END Reading:
  399. </th>
  400. <td class="fw-semibold"
  401. style="padding: 0.45rem 0.45rem;text-align:center;"
  402. id="td_endingReading"></td>
  403. <th style="padding: 0.45rem 0.45rem;font-weight: normal">EB Amount:</th>
  404. <td class="fw-semibold"
  405. style="padding: 0.45rem 0.45rem;text-align:right;"
  406. id="td_electricityamount"></td>
  407. </tr>
  408. </table>
  409. </div>
  410. </div>
  411. <div id="damageDetails" style="margin-bottom: -17px;"></div>
  412. <div class="col-md-12 col-lg-12 col-sm-12">
  413. <div class="card-body">
  414. <table>
  415. <tr>
  416. <th colspan="2" style="background-color: #f2f2f2;font-weight: normal">
  417. Amount to be Refunded</th>
  418. </tr>
  419. <tr>
  420. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Deposit
  421. Amount:</th>
  422. <td class="fw-semibold amount-cell" style="padding: 0.45rem 0.45rem;"
  423. id="td_depositeamountforrefund">0</td>
  424. </tr>
  425. <tr>
  426. <th style="padding: 0.45rem 0.45rem;font-weight: normal">EB Amount:</th>
  427. <td class="fw-semibold amount-cell" style="padding: 0.45rem 0.45rem;"
  428. id="td_ebAmount"></td>
  429. </tr>
  430. <tr>
  431. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Damage Amount:
  432. </th>
  433. <td class="fw-semibold amount-cell" style="padding: 0.45rem 0.45rem;"
  434. id="td_damage"></td>
  435. </tr>
  436. <tr id="pendingcolumn">
  437. <th id="th_settel_label"
  438. style="padding: 0.45rem 0.45rem;font-weight: normal">Collected
  439. Amount:</th>
  440. <td class="fw-semibold amount-cell"
  441. style="padding: 0.45rem 0.45rem; color: green;" id="td_pending_amt">
  442. 0</td>
  443. </tr>
  444. <tr>
  445. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Actual
  446. refundable Amount:</th>
  447. <td class="fw-semibold amount-cell"
  448. style="padding: 0.45rem 0.45rem; color: green;" id="td_settel_amt">0
  449. </td>
  450. </tr>
  451. </table>
  452. </div>
  453. </div>
  454. <!-- DD detail -->
  455. <div id="challonTableContainer"></div>
  456. <div id="ddTableContainer" style=" margin-top: -16px;"></div>
  457. </div>
  458. <div class="block-content block-content-full text-end bg-body" id="mbutton2">
  459. <button type="button" class="btn btn-sm btn-alt-secondary"
  460. data-bs-dismiss="modal">Close</button>
  461. <!--<button type="submit" class="btn btn-sm btn-primary">Reject</button>-->
  462. </div>
  463. </div>
  464. </form>
  465. </div>
  466. </div>
  467. </div>
  468. <!-- Refund Completed Bookingform-->
  469. <div class="modal fade backdrop" id="refundcompletedBookingForm" data-backdrop="static" tabindex="-1"
  470. role="dialog" aria-labelledby="staticBackdropLabel" aria-hidden="true">
  471. <div class="modal-dialog modal-lg" role="document">
  472. <div class="modal-content">
  473. <form id="ownform">
  474. <div class="block block-rounded block-themed block-transparent mb-0">
  475. <div class="block-header bg-primary-dark">
  476. <h3 class="block-title" id="2mtitle">Booking Information</h3>
  477. <div class="block-options">
  478. <button type="button" class="btn-block-option" data-bs-dismiss="modal"
  479. aria-label="Close">
  480. <i class="fa fa-fw fa-times"></i>
  481. </button>
  482. </div>
  483. </div>
  484. <div class="block-content row">
  485. <div class="col-md-12 col-lg-12 col-sm-12 mb-2">
  486. <input type="hidden" class="form-control text-center" name="booksid" id="booksId"
  487. disabled />
  488. <div class="card-body">
  489. <table>
  490. <tr>
  491. <th colspan="10" style="background-color: #f2f2f2;">User Details</th>
  492. </tr>
  493. <tr>
  494. <th style="padding: 0.45rem 0.45rem;font-weight: normal;">User Name:
  495. </th>
  496. <td class="fw-semibold" style="padding: 0.45rem 0.45rem;" id="username">
  497. </td>
  498. <th style="padding: 0.45rem 0.45rem;font-weight: normal;">Mobile Number:
  499. </th>
  500. <td class="fw-semibold" style="padding: 0.45rem 0.45rem;" id="mobileno">
  501. </td>
  502. <th style="padding: 0.45rem 0.45rem;font-weight: normal;">User Type:
  503. </th>
  504. <td class="fw-semibold" style="padding: 0.45rem 0.45rem;" id="usertype">
  505. </td>
  506. </tr>
  507. <tr>
  508. <th style="padding: 0.45rem 0.45rem;font-weight: normal;">User Address:
  509. </th>
  510. <td colspan="5" class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  511. id="useraddress"></td>
  512. </tr>
  513. </table>
  514. </div>
  515. </div>
  516. <div class="col-md-12 col-lg-12 col-sm-12 mb-2">
  517. <div class="card-body">
  518. <table>
  519. <tr>
  520. <th colspan="10" style="background-color: #f2f2f2;">Hall Details</th>
  521. </tr>
  522. <tr>
  523. <th style="padding: 0.45rem 0.45rem;font-weight: normal;">Hall Name:
  524. </th>
  525. <td colspan="10" class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  526. id="hallname"></td>
  527. </tr>
  528. <th style="padding: 0.45rem 0.45rem;font-weight: normal;">Hall Address:</th>
  529. <td colspan="10" class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  530. id="halladdress"></td>
  531. </tr>
  532. <tr>
  533. <th style="padding: 0.45rem 0.45rem;font-weight: normal;">Caretaker
  534. Name:</th>
  535. <td class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  536. id="caretakername"></td>
  537. <th style="padding: 0.45rem 0.45rem;font-weight: normal;">Caretaker
  538. Mobile Number:</th>
  539. <td class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  540. id="caretakermobileNumber"></td>
  541. </tr>
  542. </table>
  543. </div>
  544. </div>
  545. <div class="col-md-12 col-lg-12 col-sm-12">
  546. <div class="card-body">
  547. <table>
  548. <tr>
  549. <th colspan="4" style="background-color: #f2f2f2;">Booking
  550. Details (Booking Id:-<span id="bookid" style="color:blue"></span>)
  551. </th>
  552. </tr>
  553. <tr>
  554. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Booking Date:
  555. </th>
  556. <td class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  557. id="bookingDate"></td>
  558. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Booking Status:
  559. </th>
  560. <td class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  561. id="bookingStatus"></td>
  562. </tr>
  563. <tr>
  564. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Start Date:
  565. </th>
  566. <td class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  567. id="startDate"></td>
  568. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Deposit Amount
  569. (in Rs):</th>
  570. <td class="fw-semibold amount-cell" style="padding: 0.45rem 0.45rem;"
  571. id="depositeAmount"></td>
  572. </tr>
  573. <tr>
  574. <th style="padding: 0.45rem 0.45rem;font-weight: normal">END
  575. Date:</th>
  576. <td class="fw-semibold" style="padding: 0.45rem 0.45rem;" id="endDate">
  577. </td>
  578. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Hall Amount:
  579. </th>
  580. <td class="fw-semibold amount-cell" style="padding: 0.45rem 0.45rem;"
  581. id="hallAmount"></td>
  582. </tr>
  583. <tr>
  584. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Starting Slot:
  585. </th>
  586. <td class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  587. id="startingSlot"></td>
  588. <th style="padding: 0.45rem 0.45rem;font-weight: normal">GST @18%:</th>
  589. <td class="fw-semibold amount-cell" style="padding: 0.45rem 0.45rem;"
  590. id="gst"></td>
  591. </tr>
  592. <tr>
  593. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Ending Slot:
  594. </th>
  595. <td class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  596. id="endingSlot"></td>
  597. <th style="padding: 0.45rem 0.45rem;font-weight: normal">Total Amount:
  598. </th>
  599. <td class="fw-semibold amount-cell" style="padding: 0.45rem 0.45rem;"
  600. id="totalAmount"></td>
  601. </tr>
  602. </table>
  603. </div>
  604. </div>
  605. <div class="col-sm-12">
  606. <!--<label class="form-label">Documents:<span class="text-danger"></span></label>-->
  607. <div class="documents" id="documents"></div>
  608. </div>
  609. <div class="col-md-12 col-lg-12 col-sm-12 mb-2">
  610. <input type="hidden" class="form-control text-center" name="bookingid"
  611. id="bookingid" disabled />
  612. <div class="card-body">
  613. <table>
  614. <tr>
  615. <th colspan="10" style="background-color: #f2f2f2;">Booking Payment
  616. Details</th>
  617. </tr>
  618. <tr>
  619. <th style="padding: 0.45rem 0.45rem;font-weight: normal;">Transaction
  620. ID:</th>
  621. <td colspan="10" class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  622. id="transactionId"></td>
  623. </tr>
  624. <th style="padding: 0.45rem 0.45rem;font-weight: normal;">Amount Received:
  625. </th>
  626. <td colspan="10" class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  627. id="payamountReceived"></td>
  628. </tr>
  629. <tr>
  630. <th style="padding: 0.45rem 0.45rem;font-weight: normal;">Transaction
  631. Status:</th>
  632. <td class="fw-semibold" style="padding: 0.45rem 0.45rem;"
  633. id="paymentStatus"></td>
  634. </tr>
  635. </table>
  636. </div>
  637. </div>
  638. </div>
  639. </div>
  640. <div class="block-content block-content-full text-end bg-body" id="mbutton2">
  641. <button type="button" class="btn btn-sm btn-alt-secondary"
  642. data-bs-dismiss="modal">Close</button>
  643. </div>
  644. </form>
  645. </div>
  646. </div>
  647. </div>
  648. <div class="modal fade" id="fileModal" tabindex="-1" role="dialog" aria-labelledby="fileModalLabel"
  649. aria-hidden="true">
  650. <div class="modal-dialog modal-lg" role="document">
  651. <div class="modal-content">
  652. <div class="modal-header">
  653. <h5 class="modal-title" id="fileModalLabel">File Preview</h5>
  654. <button type="button" class="close" data-bs-dismiss="modal" aria-label="Close">
  655. <span aria-hidden="true">&times;</span>
  656. </button>
  657. </div>
  658. <div class="modal-body">
  659. <embed id="filePreview" src="" width="100%" height="600px">
  660. </div>
  661. <div class="modal-footer">
  662. <button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
  663. </div>
  664. </div>
  665. </div>
  666. </div>
  667. <footer th:replace="~{fragments/footer2 :: footer}"></footer>
  668. <!-- END Footer -->
  669. </div>
  670. <div th:replace="~{fragments/resetpassword :: div}"></div>
  671. <script th:replace="~{fragments/loginscript :: script}"></script>
  672. <script>
  673. $(document).ready(function () {
  674. $('#myTab a').click(function (e) {
  675. e.preventDefault();
  676. $(this).tab('show');
  677. });
  678. });
  679. $(document).ready(function () {
  680. // DataTables buttons configuration
  681. var buttons = [
  682. {
  683. extend: 'pageLength',
  684. className: 'btn btn-primary'
  685. },
  686. {
  687. title: 'Data export',
  688. extend: 'copyHtml5',
  689. text: 'Copy',
  690. className: 'btn btn-primary',
  691. id: 'copyBtn'
  692. },
  693. {
  694. extend: 'excelHtml5',
  695. text: 'Excel',
  696. className: 'btn btn-primary',
  697. id: 'excelBtn'
  698. },
  699. {
  700. extend: 'csvHtml5',
  701. text: 'CSV',
  702. className: 'btn btn-primary',
  703. id: 'csvBtn'
  704. },
  705. {
  706. extend: 'pdfHtml5',
  707. text: 'PDF',
  708. className: 'btn btn-primary',
  709. id: 'pdfBtn'
  710. }
  711. ];
  712. // Initialize DataTable for each tab on tab shown event
  713. $('a[data-toggle="tab"]').on('shown.bs.tab', function (e) {
  714. var targetTable = $(e.target).attr('href'); // activated tab
  715. $(targetTable).find('.dataTable').DataTable().columns.adjust();
  716. });
  717. // Initialize DataTable for Settlement Approved tab
  718. $('#SettlementCompletedListTable').DataTable({
  719. dom: 'Bftip',
  720. columnDefs: [
  721. { targets: 'no-sort', orderable: false }
  722. ],
  723. lengthMenu: [
  724. [50, 100, 200, 500, -1],
  725. ['50 rows', '100 rows', '200 rows', '500 rows', 'Show all']
  726. ],
  727. buttons: buttons,
  728. responsive: true,
  729. searching: true,
  730. select: false,
  731. processing: false,
  732. // Set width to 100%
  733. "autoWidth": true
  734. });
  735. // Initialize DataTable for Cancelled Bookings Approved tab
  736. $('#cancelledcompletedListTable').DataTable({
  737. dom: 'Bftip',
  738. columnDefs: [
  739. { targets: 'no-sort', orderable: false }
  740. ],
  741. lengthMenu: [
  742. [50, 100, 200, 500, -1],
  743. ['50 rows', '100 rows', '200 rows', '500 rows', 'Show all']
  744. ],
  745. buttons: buttons,
  746. responsive: true,
  747. searching: true,
  748. select: false,
  749. processing: false,
  750. // Set width to 100%
  751. "autoWidth": true
  752. });
  753. // Initialize DataTable for GCC Blocked/Rejected Approved tab
  754. $('#rejectedcompletedListTable').DataTable({
  755. dom: 'Bftip',
  756. columnDefs: [
  757. { targets: 'no-sort', orderable: false }
  758. ],
  759. lengthMenu: [
  760. [50, 100, 200, 500, -1],
  761. ['50 rows', '100 rows', '200 rows', '500 rows', 'Show all']
  762. ],
  763. buttons: buttons,
  764. responsive: true,
  765. searching: true,
  766. select: false,
  767. processing: false,
  768. // Set width to 100%
  769. "autoWidth": true
  770. });
  771. });
  772. function approve(settlementId) {
  773. $.ajax({
  774. type: "GET",
  775. url: '/communityhall/api/officer/getSettlementList',
  776. data: {
  777. 'settlementsid': settlementId
  778. },
  779. success: function (x) {
  780. //console.log(x);
  781. showSettlementInfo(x)
  782. showDamageDetails(x);
  783. }
  784. });
  785. }
  786. function showSettlementInfo(list) {
  787. //console.log(list); // Log the damageList array
  788. //console.log(list.damageList[0]);
  789. $('#initiateSettlementForm').modal({
  790. backdrop: 'static',
  791. keyboard: false
  792. });
  793. $('#initiateSettlementForm').modal('show');
  794. document.getElementById("settlementid").value = list.settlement.settlementId;
  795. document.getElementById("td_userName").innerHTML = list.users.name;
  796. document.getElementById("td_mobileNumber").innerHTML = list.users.mobileNo;
  797. document.getElementById("td_usertype").innerHTML = list.users.usertype;
  798. var userDetails = list.users;
  799. var userDetailsString =
  800. userDetails.doorNo + ", " +
  801. userDetails.street + ", " +
  802. userDetails.area + ", " +
  803. userDetails.location + " ,Chennai- " +
  804. userDetails.pinCode;
  805. document.getElementById("td_useraddress").innerHTML = userDetailsString;
  806. document.getElementById("td_hallName").innerHTML = list.hallDetails.hallName;
  807. var hallDetails = list.hallDetails;
  808. var hallDetailsString =
  809. hallDetails.doorNo + ", " +
  810. hallDetails.street + ", " +
  811. hallDetails.area + ", " +
  812. hallDetails.city + "- " +
  813. hallDetails.pinCode;
  814. document.getElementById("td_halladdress").innerHTML = hallDetailsString;
  815. document.getElementById("td_caretakername").innerHTML = list.hallDetails.hallInchargeName;
  816. document.getElementById("td_caretakermobileNumber").innerHTML = list.hallDetails.hallInchargeMobno;
  817. document.getElementById("td_bookingDate").innerHTML = list.bookingDate;
  818. document.getElementById("td_depositeAmount").innerHTML = '₹ ' + parseFloat(list.depositAmount).toFixed(2);
  819. document.getElementById("td_hallAmount").innerHTML = '₹ ' + parseFloat(list.hallAmount).toFixed(2);
  820. // Calculate GST and total amount
  821. var gstAmount = (parseFloat(list.hallAmount) * (list.hallDetails.gst / 100)).toFixed(2);
  822. var totalAmount = parseFloat(list.amountReceived).toFixed(2);
  823. document.getElementById("td_gst").innerHTML = '₹ ' + gstAmount;
  824. document.getElementById("td_totalAmount").innerHTML = '₹ ' + totalAmount;
  825. document.getElementById("td_startDate").innerHTML = list.startDate;
  826. document.getElementById("td_endDate").innerHTML = list.endDate;
  827. document.getElementById("booking_id").innerHTML = list.bookingId;
  828. function getTimeSlot(slotValue) {
  829. var timeSlot;
  830. var trimmedSlotValue = String(slotValue).trim(); // Convert to string and then trim
  831. if (trimmedSlotValue === '1') {
  832. timeSlot = 'Morning';
  833. } else if (trimmedSlotValue === '2') {
  834. timeSlot = 'Evening';
  835. } else {
  836. timeSlot = 'Unknown';
  837. }
  838. return timeSlot;
  839. }
  840. document.getElementById("td_startingSlot").innerHTML = getTimeSlot(list.startingSlot);
  841. document.getElementById("td_endingSlot").innerHTML = getTimeSlot(list.endingSlot);
  842. document.getElementById("td_EBNumber").innerHTML = list.hallDetails.ebNumber;
  843. document.getElementById("td_startingReading").innerHTML = list.ebDetails.startingReading;
  844. document.getElementById("td_endingReading").innerHTML = list.ebDetails.endingReading;
  845. document.getElementById("td_usedunit").innerHTML = list.ebDetails.usedUnit;
  846. document.getElementById("td_ebamountperunit").innerHTML = '₹ ' + parseFloat(list.hallDetails.ebCostPerUnit).toFixed(2);
  847. document.getElementById("td_depositeamountforrefund").innerHTML = '₹ ' + parseFloat(list.depositAmount).toFixed(2);
  848. document.getElementById("td_electricityamount").innerHTML = '₹ ' + parseFloat(list.ebDetails.ebAmount).toFixed(2);
  849. document.getElementById("td_ebAmount").innerHTML = '₹ ' + parseFloat(list.ebDetails.ebAmount).toFixed(2);
  850. document.getElementById("td_damage").innerHTML = '₹ ' + parseFloat(list.settlement.damageAmount).toFixed(2);
  851. var eb_amt = parseFloat(list.ebDetails.ebAmount).toFixed(2);
  852. var deposit_amt = parseFloat(list.depositAmount).toFixed(2);
  853. var tem_total = (deposit_amt - eb_amt).toFixed(2);
  854. $("#td_settel_amt").html(tem_total);
  855. }
  856. function showDamageDetails(data) {
  857. var damageFieldContainer = $('#damageDetails');
  858. damageFieldContainer.empty();
  859. // Create a div for table responsiveness
  860. var tableResponsiveDiv = $('<div>').addClass('table-responsive');
  861. // Create table with similar classes and styles to the modal table
  862. var table = $('<table>').addClass('table table-bordered table-striped').css({ 'width': '97%', 'border-color': 'black', 'border-top-color': 'white' });
  863. var thead = $('<thead>').addClass('thead-light');
  864. var tbody = $('<tbody>');
  865. // Create Damage Details header row
  866. var headerRow = $('<tr>').appendTo(thead);
  867. $('<th>').attr('colspan', '6').text('Damage Details (if any)').css({
  868. 'padding': '0.45rem 0.45rem',
  869. 'background-color': '#f2f2f2',
  870. 'font-weight': 'bold',
  871. 'color': 'black',
  872. }).appendTo(headerRow);
  873. // Create table header row
  874. var columnHeadersRow = $('<tr>').css('background-color', '#f2f2f2').appendTo(thead);
  875. $('<th>').text('S.No').css({ 'padding': '0.45rem 0.45rem', 'text-align': 'center' }).appendTo(columnHeadersRow);
  876. $('<th>').text('Asset Name').css({ 'padding': '0.45rem 0.45rem', 'text-align': 'center' }).appendTo(columnHeadersRow);
  877. $('<th>').text('Damage Img').css({ 'padding': '0.45rem 0.45rem', 'text-align': 'center' }).appendTo(columnHeadersRow);
  878. $('<th>').text('Cost').css({ 'padding': '0.45rem 0.45rem', 'text-align': 'center' }).appendTo(columnHeadersRow);
  879. $('<th>').text('Qty').css({ 'padding': '0.45rem 0.45rem', 'text-align': 'center' }).appendTo(columnHeadersRow);
  880. $('<th>').text('Amount').css({ 'padding': '0.45rem 0.45rem', 'text-align': 'center' }).appendTo(columnHeadersRow);
  881. var totalAmount = 0;
  882. // Check if damageList is empty
  883. if (data.damageList.length === 0) {
  884. var row = $('<tr>').appendTo(tbody);
  885. $('<td>').attr('colspan', '6').text('No Damaged Items').css({
  886. 'padding': '0.45rem 0.45rem',
  887. 'text-align': 'center',
  888. 'font-weight': 'bold',
  889. 'background-color': '#f2f2f2'
  890. }).appendTo(row);
  891. } else {
  892. $.each(data.damageList, function (index, detail) {
  893. var row = $('<tr>').appendTo(tbody);
  894. $('<td>').text(index + 1).css({
  895. 'padding': '0.45rem 0.45rem',
  896. 'text-align': 'center'
  897. }).appendTo(row);
  898. $('<td>').text(detail.assetName).css({
  899. 'padding': '0.45rem 0.45rem',
  900. 'text-align': 'center'
  901. }).appendTo(row);
  902. var viewLink = $('<a>').attr('href', 'javascript:void(0)').text('View').on('click', function () {
  903. showDamageImage(detail.damageImageUrl);
  904. });
  905. $('<td>').css({
  906. 'padding': '0.45rem 0.45rem',
  907. 'text-align': 'center'
  908. }).append(viewLink).appendTo(row);
  909. var assetamt = (detail.assetAmount / detail.quantity).toFixed(2);
  910. $('<td>').text('₹ ' + assetamt).css({
  911. 'padding': '0.45rem 0.45rem',
  912. 'text-align': 'center'
  913. }).appendTo(row);
  914. $('<td>').text(detail.quantity).css({
  915. 'padding': '0.45rem 0.45rem',
  916. 'text-align': 'center'
  917. }).appendTo(row);
  918. var amount = detail.assetAmount;
  919. totalAmount += amount;
  920. $('<td>').text('₹ ' + amount.toFixed(2)).css({
  921. 'padding': '0.45rem 0.45rem',
  922. 'text-align': 'right'
  923. }).appendTo(row);
  924. });
  925. // Add row for total amount
  926. var totalRow = $('<tr>').appendTo(tbody);
  927. $('<td>').attr('colspan', '5').text('Total Amount').css({
  928. 'padding': '0.45rem 0.45rem',
  929. 'font-weight': 'bold',
  930. 'background-color': '#f2f2f2'
  931. }).appendTo(totalRow);
  932. $('<td>').text('₹ ' + totalAmount.toFixed(2)).css({
  933. 'padding': '0.45rem 0.45rem',
  934. 'text-align': 'right'
  935. }).appendTo(totalRow);
  936. $("#td_dam_amt").html('₹ ' + totalAmount.toFixed(2));
  937. }
  938. // Append the table elements to the container div
  939. table.append(thead, tbody);
  940. tableResponsiveDiv.append(table);
  941. damageFieldContainer.append(tableResponsiveDiv);
  942. var temp_total = parseFloat($("#td_settel_amt").html());
  943. var settleAmount = temp_total - totalAmount;
  944. //console.log("temp_total=",temp_total);
  945. //console.log("totalAmount=",totalAmount);
  946. if (settleAmount < 0) {
  947. $("#td_settel_amt").html(0.00);
  948. $("#pendingcolumn").show();
  949. $("#td_pending_amt").html('₹ ' + Math.abs(settleAmount).toFixed(2));
  950. $("#td_pending_amt").css("color", "red");
  951. } else {
  952. $("#td_settel_amt").html('₹ ' + settleAmount.toFixed(2));
  953. $("#pendingcolumn").hide();
  954. $("#td_settel_amt").css("color", "green"); // Set color to green for positive amounts
  955. }
  956. if (data.settlement.challonamount) {
  957. // Show the table containing ddnumber and challan image
  958. var challonTableContainer = $("#challonTableContainer"); // Assuming you have a div with this ID for the table
  959. challonTableContainer.empty(); // Clear any existing content
  960. challonTableContainer.show(); // Ensure the container is visible
  961. var tableResponsiveDiv = $('<div>').addClass('table-responsive').css('margin-right', '-24px');
  962. // Create table with similar classes and styles to the modal table
  963. var table = $('<table>').addClass('table table-bordered table-striped').css({ 'width': '100%', 'border-color': 'black', 'border-top-color': 'white' });
  964. var thead = $('<thead>').addClass('thead-light');
  965. var tbody = $('<tbody>');
  966. var headerRow = $('<tr>').appendTo(thead);
  967. $('<th>').attr('colspan', '6').text('Challan Details').css({
  968. 'padding': '0.45rem 0.45rem',
  969. 'background-color': '#f2f2f2',
  970. 'font-weight': 'bold',
  971. 'color': 'black',
  972. }).appendTo(headerRow);
  973. var columnRow = $('<tr>').css('background-color', '#f2f2f2').appendTo(thead);
  974. //$('<th>').text('DD Number').css({'padding': '0.45rem 0.45rem', 'text-align': 'center'}).appendTo(columnRow);
  975. //$('<th>').text('DD Date').css({'padding': '0.45rem 0.45rem', 'text-align': 'center'}).appendTo(columnRow);
  976. $('<th>').text('Challan Number').css({ 'padding': '0.45rem 0.45rem', 'text-align': 'center' }).appendTo(columnRow);
  977. $('<th>').text('Challan Amount').css({ 'padding': '0.45rem 0.45rem', 'text-align': 'center' }).appendTo(columnRow);
  978. $('<th>').text('Challan Image').css({ 'padding': '0.45rem 0.45rem', 'text-align': 'center' }).appendTo(columnRow);
  979. var row = $('<tr>').appendTo(tbody);
  980. //$('<td>').text(data.settlement.ddnumber).css({'padding': '0.45rem 0.45rem', 'text-align': 'center'}).appendTo(row);
  981. //$('<td>').text(data.settlement.ddnumber).css({'padding': '0.45rem 0.45rem', 'text-align': 'center'}).appendTo(row);
  982. $('<td>').text(data.settlement.challonnumber).css({ 'padding': '0.45rem 0.45rem', 'text-align': 'center' }).appendTo(row);
  983. $('<td>').text(data.settlement.challonamount).css({ 'padding': '0.45rem 0.45rem', 'text-align': 'center' }).appendTo(row);
  984. //$('<td>').text(data.settlement.dddate).css({'padding': '0.45rem 0.45rem', 'text-align': 'center'}).appendTo(row);
  985. var challanImgLink = $('<a>').attr('href', 'javascript:void(0)').text('View Image').on('click', function () {
  986. showchallonimage(data.settlement.challon);
  987. });
  988. $('<td>').css({ 'padding': '0.45rem 0.45rem', 'text-align': 'center' }).append(challanImgLink).appendTo(row);
  989. table.append(thead, tbody);
  990. challonTableContainer.append(table);
  991. // Hide all buttons
  992. $("#generatechallon").hide();
  993. $("#uploadchallon").hide();
  994. $("#approvebutton").prop("disabled", false);
  995. } else {
  996. // Hide the ddTableContainer if ddnumber is not present
  997. $("#challonTableContainer").hide();
  998. }
  999. if (data.settlement.ddnumber) {
  1000. // Show the table containing ddnumber and challan image
  1001. var ddTableContainer = $("#ddTableContainer"); // Assuming you have a div with this ID for the table
  1002. ddTableContainer.empty(); // Clear any existing content
  1003. ddTableContainer.show(); // Ensure the container is visible
  1004. var tableResponsiveDiv = $('<div>').addClass('table-responsive').css('margin-right', '-24px');
  1005. // Create table with similar classes and styles to the modal table
  1006. var table = $('<table>').addClass('table table-bordered table-striped').css({ 'width': '100%', 'border-color': 'black', 'border-top-color': 'white' });
  1007. var thead = $('<thead>').addClass('thead-light');
  1008. var tbody = $('<tbody>');
  1009. var headerRow = $('<tr>').appendTo(thead);
  1010. $('<th>').attr('colspan', '6').text('DD Details').css({
  1011. 'padding': '0.45rem 0.45rem',
  1012. 'background-color': '#f2f2f2',
  1013. 'font-weight': 'bold',
  1014. 'color': 'black',
  1015. }).appendTo(headerRow);
  1016. var columnRow = $('<tr>').css('background-color', '#f2f2f2').appendTo(thead);
  1017. $('<th>').text('DD Number').css({ 'padding': '0.45rem 0.45rem', 'text-align': 'center' }).appendTo(columnRow);
  1018. $('<th>').text('DD Amount').css({ 'padding': '0.45rem 0.45rem', 'text-align': 'center' }).appendTo(columnRow);
  1019. $('<th>').text('DD Date').css({ 'padding': '0.45rem 0.45rem', 'text-align': 'center' }).appendTo(columnRow);
  1020. var row = $('<tr>').appendTo(tbody);
  1021. $('<td>').text(data.settlement.ddnumber).css({ 'padding': '0.45rem 0.45rem', 'text-align': 'center' }).appendTo(row);
  1022. $('<td>').text(data.settlement.ddamount).css({ 'padding': '0.45rem 0.45rem', 'text-align': 'center' }).appendTo(row);
  1023. $('<td>').text(data.settlement.dddate).css({ 'padding': '0.45rem 0.45rem', 'text-align': 'center' }).appendTo(row);
  1024. table.append(thead, tbody);
  1025. ddTableContainer.append(table);
  1026. // Hide all buttons
  1027. $("#generatechallon").hide();
  1028. $("#uploadchallon").hide();
  1029. $("#approvebutton").prop("disabled", false);
  1030. } else {
  1031. // Hide the ddTableContainer if ddnumber is not present
  1032. $("#ddTableContainer").hide();
  1033. }
  1034. }
  1035. function showDamageImage(damageImageUrl) {
  1036. document.getElementById('filePreview').src = damageImageUrl;
  1037. $('#fileModal').modal('show');
  1038. }
  1039. function showchallonimage(challanImgLink) {
  1040. document.getElementById('filePreview').src = challanImgLink;
  1041. $('#fileModal').modal('show');
  1042. }
  1043. function showddImage(ddImageUrl) {
  1044. document.getElementById('filePreview').src = ddImageUrl;
  1045. $('#fileModal').modal('show');
  1046. }
  1047. function refundcompleted(bookingId) {
  1048. $.ajax({
  1049. type: "GET",
  1050. url: '/communityhall/api/officer/getBookingDetails',
  1051. data: {
  1052. 'bookingsId': bookingId
  1053. },
  1054. success: function (x) {
  1055. //console.log(x);
  1056. refundCompletedbookingDetails(x);
  1057. }
  1058. });
  1059. }
  1060. function refundCompletedbookingDetails(list) {
  1061. $('#refundcompletedBookingForm').modal({
  1062. backdrop: 'static',
  1063. keyboard: false
  1064. });
  1065. $('#refundcompletedBookingForm').modal('show');
  1066. document.getElementById("username").innerHTML = list.users.name;
  1067. document.getElementById("mobileno").innerHTML = list.users.mobileNo;
  1068. document.getElementById("usertype").innerHTML = list.users.usertype;
  1069. document.getElementById("booksId").value = list.bookingId;
  1070. var userDetails = list.users;
  1071. var userDetailsString =
  1072. userDetails.doorNo + ", " +
  1073. userDetails.street + ", " +
  1074. userDetails.area + ", " +
  1075. userDetails.location + "- " +
  1076. userDetails.pinCode;
  1077. document.getElementById("useraddress").innerHTML = userDetailsString;
  1078. document.getElementById("hallname").innerHTML = list.hallDetails.hallName;
  1079. var hallDetails = list.hallDetails;
  1080. var hallDetailsString =
  1081. hallDetails.doorNo + ", " +
  1082. hallDetails.street + ", " +
  1083. hallDetails.area + ", " +
  1084. hallDetails.city + "- " +
  1085. hallDetails.pinCode;
  1086. document.getElementById("halladdress").innerHTML = hallDetailsString;
  1087. document.getElementById("caretakername").innerHTML = list.hallDetails.hallInchargeName;
  1088. document.getElementById("caretakermobileNumber").innerHTML = list.hallDetails.hallInchargeMobno;
  1089. document.getElementById("bookingDate").innerHTML = list.bookingDate;
  1090. document.getElementById("depositeAmount").innerHTML = '₹ ' + parseFloat(list.depositAmount).toFixed(2);
  1091. document.getElementById("hallAmount").innerHTML = '₹ ' + parseFloat(list.hallAmount).toFixed(2);
  1092. document.getElementById("totalAmount").innerHTML = '₹ ' + parseFloat(list.amountReceived).toFixed(2);
  1093. var gstcl = (list.hallAmount * (list.hallDetails.gst / 100));
  1094. var formattedGst = gstcl.toFixed(2);
  1095. document.getElementById("gst").innerHTML = formattedGst;
  1096. document.getElementById("startDate").innerHTML = list.startDate;
  1097. document.getElementById("endDate").innerHTML = list.endDate;
  1098. document.getElementById("bookid").innerHTML = list.bookingId;
  1099. function getTimeSlot(slotValue) {
  1100. //console.log("Slot Value in getTimeSlot function:", slotValue);
  1101. var timeSlot;
  1102. var trimmedSlotValue = String(slotValue).trim(); // Convert to string and then trim
  1103. if (trimmedSlotValue === '1') {
  1104. timeSlot = 'Morning';
  1105. } else if (trimmedSlotValue === '2') {
  1106. timeSlot = 'Evening';
  1107. } else {
  1108. timeSlot = 'Unknown';
  1109. }
  1110. // console.log("Time Slot:", timeSlot);
  1111. return timeSlot;
  1112. }
  1113. document.getElementById("startingSlot").innerHTML = getTimeSlot(list.startingSlot);
  1114. document.getElementById("endingSlot").innerHTML = getTimeSlot(list.endingSlot);
  1115. document.getElementById("bookingStatus").innerHTML = list.bookingStatus;
  1116. document.getElementById("transactionId").innerHTML = list.payments.transactionId;
  1117. document.getElementById("payamountReceived").innerHTML = '₹ ' + list.payments.amountReceived;
  1118. document.getElementById("paymentStatus").innerHTML = list.payments.paymentStatus;
  1119. showReasonDocuments(list);
  1120. }
  1121. function showReasonDocuments(list) {
  1122. $.ajax({
  1123. type: "GET",
  1124. url: '/communityhall/api/officer/getReasonByName',
  1125. data: {
  1126. 'reasonName': list.reason
  1127. },
  1128. success: function (x) {
  1129. //console.log(x);
  1130. showReasonWithDocument(x, list);
  1131. }
  1132. });
  1133. }
  1134. // Display booking documents
  1135. function showReasonWithDocument(reasonData, list) {
  1136. var reasonDocumentData = reasonData.reasonDocumentMasterList;
  1137. var bookingDocumentsList = list.bookingDocumentsList;
  1138. const reasonFieldsContainer = $('#documents');
  1139. reasonFieldsContainer.empty();
  1140. // Create a responsive table container
  1141. var tableResponsiveDiv = $('<div>').addClass('table-responsive');
  1142. // Create the table with Bootstrap classes and custom styles
  1143. var table = $('<table>').addClass('table table-bordered table-striped table-vcenter js-dataTable-responsive').css({
  1144. 'width': '100%',
  1145. 'height': 'auto',
  1146. 'border': '1px solid black'
  1147. });
  1148. // Create the table header (thead)
  1149. var thead = $('<thead>').appendTo(table);
  1150. var headerRow = $('<tr>').appendTo(thead);
  1151. $('<th>').attr('colspan', '3').text('Document Details').css({
  1152. 'color': 'black',
  1153. 'font-weight': 'bold',
  1154. 'background-color': '#f2f2f2',
  1155. 'padding': '0.45rem 0.45rem'
  1156. }).appendTo(headerRow);
  1157. // Create header row for columns
  1158. var columnHeadersRow = $('<tr>').appendTo(thead);
  1159. $('<th>').text('S.No').appendTo(columnHeadersRow);
  1160. $('<th>').text('Required Info').appendTo(columnHeadersRow);
  1161. $('<th>').text('Required Documents').appendTo(columnHeadersRow);
  1162. // Create the table body (tbody)
  1163. var tbody = $('<tbody>').appendTo(table);
  1164. // Iterate through the documents list and populate rows
  1165. for (var i = 0; i < bookingDocumentsList.length; i++) {
  1166. (function (index) {
  1167. var row = $('<tr>').appendTo(tbody);
  1168. $('<td>').text(index + 1).appendTo(row);
  1169. $('<td>').text(reasonDocumentData[index].fieldName + ': ' + bookingDocumentsList[index].name).appendTo(row);
  1170. // Create a link to view document image
  1171. var viewLink = $('<a>').attr('href', 'javascript:void(0)').text(reasonDocumentData[index].docFieldName).on('click', function () {
  1172. showDocumentImage(bookingDocumentsList[index].bookingDocUrl);
  1173. });
  1174. $('<td>').append(viewLink).appendTo(row);
  1175. })(i);
  1176. }
  1177. // Append table to the responsive container
  1178. tableResponsiveDiv.append(table);
  1179. // Append table to the container in the DOM
  1180. reasonFieldsContainer.append(tableResponsiveDiv);
  1181. }
  1182. function showDocumentImage(fileURL) {
  1183. //console.log(fileURL);
  1184. openFileModal(fileURL);
  1185. }
  1186. // Event delegation for dynamically added elements
  1187. $(document).on('click', '.view-document', function () {
  1188. const fileURL = $(this).data('url');
  1189. openFileModal(fileURL);
  1190. });
  1191. function openFileModal(fileURL) {
  1192. $('#filePreview').attr('src', fileURL);
  1193. $('#fileModal').modal('show');
  1194. }
  1195. </script>
  1196. </body>
  1197. </html>