ServiceAdvCounter.cshtml 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  1. 
  2. @{
  3. ViewBag.Title = "Services";
  4. Layout = "~/Views/Shared/_Layout.cshtml";
  5. }
  6. @using ReportWeb.Models;
  7. @using ReportWeb.Source;
  8. @using SuperCms.Extensions;
  9. @model List<SvAdv>
  10. @{
  11. void MsgTypeToText(string msgType)
  12. {
  13. if (msgType == "0")
  14. {
  15. <span>SMS Text</span>
  16. }
  17. else if (msgType == "1")
  18. {
  19. <span>SMS Flash</span>
  20. }
  21. else if (msgType == "200")
  22. {
  23. <span>USSD Push</span>
  24. }
  25. else if (msgType == "201")
  26. {
  27. <span>USSD Flash</span>
  28. }
  29. }
  30. void StatusToText(int status)
  31. {
  32. if (status == 0)
  33. {
  34. <span>Inactive</span>
  35. }
  36. else if (status == 1)
  37. {
  38. <span>Active</span>
  39. }
  40. }
  41. }
  42. @{
  43. int? codeType = ViewBag.codeType;
  44. }
  45. <input type="hidden" value="@(codeType ?? LuckyCardUtils.CodeType.LUCKY_CARD)" id="codeType" />
  46. <div class="app-content content">
  47. <div class="content-wrapper">
  48. <div class="content-header row">
  49. <div class="content-header-left col-md-6 col-xs-12 mb-1">
  50. <h2 class="content-header-title">Services Advertise Counter @(codeType == LuckyCardUtils.CodeType.LUCKY_CALL ? " CALL" : " CARD")</h2>
  51. </div>
  52. <div class="content-header-right breadcrumbs-right breadcrumbs-top col-md-6 col-xs-12">
  53. <div class="breadcrumb-wrapper col-xs-12">
  54. <ol class="breadcrumb">
  55. <li class="breadcrumb-item">
  56. <a href="Index">Admin</a>
  57. </li>
  58. <li class="breadcrumb-item">
  59. <a href="#">Services Adv Counter</a>
  60. </li>
  61. </ol>
  62. </div>
  63. </div>
  64. </div>
  65. <div class="content-body">
  66. <!-- Basic form layout section start -->
  67. <section id="basic-form-layouts">
  68. <div class="row service-height">
  69. <div class="col-md-12">
  70. <div class="card">
  71. <div class="card-header">
  72. <h4 class="card-title" id="basic-layout-form">Search</h4>
  73. <a class="heading-elements-toggle"><i class="icon-ellipsis font-medium-3"></i></a>
  74. <div class="heading-elements">
  75. <ul class="list-inline mb-0">
  76. <li><a data-action="collapse"><i class="icon-minus4"></i></a></li>
  77. @*<li><a data-action="reload"><i class="icon-reload"></i></a></li>*@
  78. <li><a data-action="expand"><i class="icon-expand2"></i></a></li>
  79. @*<li><a data-action="close"><i class="icon-cross2"></i></a></li>*@
  80. </ul>
  81. </div>
  82. </div>
  83. <div class="card-content collapse show">
  84. <div class="card-body">
  85. <div class="card-block">
  86. <div class="form-body">
  87. @Html.AntiForgeryToken()
  88. <div class="row">
  89. <div class="col-md-4">
  90. <div class="form-group">
  91. <label for="teamName">Month</label>
  92. <select class="form-control" id="searchMonth" name="searchMonth">
  93. @for (int i = 1; i <= 12; i++)
  94. {
  95. if (i == DateTime.Now.Month)
  96. {
  97. <option value="@i" selected>@i</option>
  98. }
  99. else
  100. {
  101. <option value="@i">@i</option>
  102. }
  103. }
  104. </select>
  105. </div>
  106. </div>
  107. <div class="col-md-4">
  108. <div class="form-group">
  109. <label for="teamName">Year</label>
  110. <select class="form-control" id="searchYear" name="searchYear">
  111. @for (int i = -1; i <= 10; i++)
  112. {
  113. if (i == 0)
  114. {
  115. <option value="@(DateTime.Now.Year + i)" selected>@(DateTime.Now.Year + i)</option>
  116. }
  117. else
  118. {
  119. <option value="@(DateTime.Now.Year + i)">@(DateTime.Now.Year + i)</option>
  120. }
  121. }
  122. </select>
  123. </div>
  124. </div>
  125. <div class="col-md-4">
  126. <button type="button" class="btn btn-primary" onclick="searchSvAdvSchedule()" id="btnSearch">
  127. <i class="icon-search"></i> Search
  128. </button>
  129. </div>
  130. </div>
  131. </div>
  132. </div>
  133. </div>
  134. </div>
  135. </div>
  136. </div>
  137. <div class="col-12">
  138. <div class="card">
  139. <div class="card-content">
  140. <div class="col-md-12 table-responsive">
  141. <table class="table table-striped table-hover">
  142. <thead class="thead-inverse">
  143. <tr>
  144. <th scope="col">#</th>
  145. <th scope="col" class="text-center">Report Date</th>
  146. <th scope="col" class="text-center">Service</th>
  147. <th scope="col" class="text-center">Adv Name</th>
  148. <th scope="col" class="text-center">Target Percent</th>
  149. <th scope="col" class="text-center">Limited</th>
  150. <th scope="col" class="text-center">Count CDR</th>
  151. <th scope="col" class="text-center">Start Time</th>
  152. <th scope="col" class="text-center">End Time</th>
  153. </tr>
  154. </thead>
  155. <tbody id="gridbody">
  156. @if (Model != null)
  157. {
  158. for (int i = 0; i < Model.Count; i++)
  159. {
  160. SvAdv adv = Model[@i];
  161. <tr>
  162. <td scope="row">@(i + 1)</td>
  163. <td class="text-center">@adv.report_date.ToString("dd/MM/yyyy")</td>
  164. <td class="text-center">@(adv.schedule_detail_id == 0 ? "LUCKY_CARD" : adv.sv_code == null || adv.sv_code == "" ? "UNKNOWN" : adv.sv_code)</td>
  165. <td class="text-left">@(adv.adv_name)</td>
  166. <td class="text-right">@(adv.sv_code == null || adv.sv_code == "" ? "Remain" : adv.percent+"%")</td>
  167. <td class="text-right">@(adv.max_number_msg == 0 ? "-" : adv.max_number_msg +"")</td>
  168. <td class="text-right">@(adv.counter)</td>
  169. <td class="text-center">@adv.start_time.ToString("dd/MM/yyyy HH:mm:ss")</td>
  170. <td class="text-center">@adv.end_time.ToString("dd/MM/yyyy HH:mm:ss")</td>
  171. </tr>
  172. }
  173. }
  174. </tbody>
  175. </table>
  176. </div>
  177. </div>
  178. </div>
  179. </div>
  180. </div>
  181. </section>
  182. <!-- // Basic form layout section end -->
  183. </div>
  184. </div>
  185. </div>
  186. @section Scripts {
  187. <script>
  188. //function loadServiceAdv(scheduleId) {
  189. // startSpinner('adv-info');
  190. // $("#scheduleId").val(scheduleId);
  191. // $.ajax({
  192. // url: subDomain + "/Admin/GetServiceAdvPartial",
  193. // data: {
  194. // scheduleId: scheduleId
  195. // },
  196. // type: "POST",
  197. // success: function (data) {
  198. // //console.log(data);
  199. // $("#adv-info").html(data);
  200. // stopSpinner('adv-info');
  201. // },
  202. // error: function () {
  203. // stopSpinner('adv-info');
  204. // }
  205. // });
  206. //};
  207. // Service Adv Schedule
  208. function searchSvAdvSchedule() {
  209. console.log("Search");
  210. startSpinner('btnSearch');
  211. $.ajax({
  212. url: subDomain + "/Admin/SearchSvAdvCounter",
  213. data: {
  214. month: $("#searchMonth").val(),
  215. year: $("#searchYear").val(),
  216. codeType: $("#codeType").val()
  217. },
  218. type: "POST",
  219. success: function (data) {
  220. stopSpinner('btnSearch');
  221. console.log(data);
  222. if (data.error != "0") {
  223. setTimeout(function () {
  224. showModal('message-dialog');
  225. $('#message-content').html(data.content.split("\n").join("<br />"));
  226. }, 1000);
  227. } else {
  228. //showModal('message-dialog');
  229. //$('#message-content').html(data.content.split("\n").join("<br />"));
  230. updateGridData(data.listService);
  231. }
  232. },
  233. error: function (data) {
  234. stopSpinner('btnSearch');
  235. console.log(data.error);
  236. }
  237. })
  238. }
  239. function updateGridData(val) {
  240. console.log(val);
  241. $("#gridbody").html("");
  242. var html = "";
  243. if (val != undefined) {
  244. for (var i = 0; i < val.length; i++) {
  245. var service = val[i];
  246. html += "<tr>";
  247. html += "<td scope='row'>" + (i + 1) + "</td>";
  248. html += "<td class='text-center'>" + moment(service.report_date).format("DD/MM/YYYY") + "</td>";
  249. html += "<td class='text-center'>" + (service.schedule_detail_id == 0 ? "LUCKY_CARD" : (service.sv_code == null || service.sv_code == "") ? "UNKNOWN" : service.sv_code) + "</td>";
  250. html += '<td class="text-left">' + service.adv_name + '</td>';
  251. html += "<td class='text-right'>" + (service.sv_code == null || service.sv_code == "" ? "Remain" : service.percent + "%") + "</td>";
  252. html += '<td class="text-right">' + (service.max_number_msg == 0 ? "-" : service.max_number_msg) + '</td>';
  253. html += "<td class='text-right'>" + service.counter + "</td>";
  254. html += "<td class='text-center'>" + moment(service.start_time).format("DD/MM/YYYY HH:mm:ss") + "</td>";
  255. html += "<td class='text-center'>" + moment(service.end_time).format("DD/MM/YYYY HH:mm:ss") + "</td>";
  256. html += "</tr>";
  257. }
  258. }
  259. $("#gridbody").html(html);
  260. }
  261. </script>
  262. }