Built files from Bizgaze WebServer
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.

scheduler.js 39KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589
  1. var Bizgaze;
  2. (function (Bizgaze) {
  3. let Apps;
  4. (function (Apps) {
  5. let Routes;
  6. (function (Routes) {
  7. let Components;
  8. (function (Components) {
  9. class scheduler extends Unibase.Platform.Core.BaseComponent {
  10. constructor() {
  11. super(...arguments);
  12. this.arr = new Array();
  13. this.WeekWise = new Array();
  14. this.arr1 = new Array();
  15. }
  16. cssFiles() {
  17. return [];
  18. }
  19. jsFiles() {
  20. return ['apps/routes/managers/routemanager.js', 'platform/forms/managers/formmanager.js',
  21. 'platform/forms/components/formviewer/formviewer.js'];
  22. }
  23. html(id, containerid) {
  24. let html = ``;
  25. return html;
  26. }
  27. load(id, containerid, callback) {
  28. }
  29. init(containerid) {
  30. this.arr = new Array();
  31. let tbl = "";
  32. var instance = this;
  33. instance.render(containerid);
  34. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  35. var RouteScheduleType = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_schedulertypeid").Value);
  36. var schedulerdates = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_schedulerdate").Value;
  37. $("#scheduler_spin").click(function () {
  38. Bizgaze.Apps.Routes.Components.scheduler.Instance().genetrateSchedulerDates(RouteScheduleType);
  39. });
  40. if (RouteScheduleType == 2) {
  41. $("#bizgazecrm_Routes_tbl_DayWise").show();
  42. tbl = $("#bizgazecrm_Routes_tbl_DayWise td");
  43. }
  44. else if (RouteScheduleType == 1) {
  45. $("#bizgazecrm_Routes_tbl_DateWise").show();
  46. tbl = $("#bizgazecrm_Routes_tbl_DateWise td");
  47. }
  48. else if (RouteScheduleType == 3) {
  49. $("#bizgazecrm_Routes_tbl_WeekWise").show();
  50. tbl = $("#bizgazecrm_Routes_tbl_WeekWise td");
  51. }
  52. Bizgaze.Apps.Routes.Components.scheduler.Instance().bindSelectedSchedulerTblCell(RouteScheduleType, schedulerdates, tbl);
  53. tbl.off('click').click(function (e) {
  54. var date;
  55. if ($(this).hasClass('click') || $(this).hasClass('')) {
  56. $(this).css('backgroundColor', '#7ABA7A');
  57. $(this).removeClass('click');
  58. $(this).addClass('Unclick');
  59. if (RouteScheduleType != 1 && RouteScheduleType != 3) {
  60. var row = $(this).parent().parent().children().index($(this).parent());
  61. var col = $(this).parent().children().index($(this));
  62. date = Bizgaze.Apps.Routes.Components.scheduler.Instance().getDateByDayWise(row, col + 1);
  63. }
  64. else {
  65. date = $(this).text();
  66. }
  67. if (RouteScheduleType == 3) {
  68. instance.arr = [];
  69. $('#bizgazecrm_Routes_tbl_WeekWise td.Unclick').each(function (index, el) {
  70. instance.arr.push($(el).find('.date-input').val().toString());
  71. });
  72. }
  73. var date = date;
  74. instance.fileCacheHelper.loadJsFile("apps/routes/managers/routemanager.js", function () {
  75. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length != 0) {
  76. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  77. var routeId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_routedefinitionid").Value);
  78. if (routeId != undefined && RouteScheduleType != 3) {
  79. Bizgaze.Apps.Routes.Components.scheduler.Instance().arr.push(date);
  80. }
  81. }
  82. });
  83. }
  84. else if ($(this).hasClass('Unclick')) {
  85. $(this).css('backgroundColor', '#ffffff');
  86. $(this).removeClass('Unclick');
  87. $(this).addClass('click');
  88. if (RouteScheduleType != 1 && RouteScheduleType != 3) {
  89. var row = $(this).parent().parent().children().index($(this).parent());
  90. var col = $(this).parent().children().index($(this));
  91. date = Bizgaze.Apps.Routes.Components.scheduler.Instance().getDateByDayWise(row, col + 1);
  92. }
  93. else {
  94. date = $(this).text();
  95. }
  96. instance.fileCacheHelper.loadJsFile("apps/routes/managers/routemanager.js", function () {
  97. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length != 0) {
  98. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  99. var routeid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_routedefinitionid").Value);
  100. if (routeid != undefined) {
  101. const index = Bizgaze.Apps.Routes.Components.scheduler.Instance().arr.indexOf(date, 0);
  102. if (index > -1) {
  103. Bizgaze.Apps.Routes.Components.scheduler.Instance().arr = Bizgaze.Apps.Routes.Components.scheduler.Instance().arr.filter(obj => obj !== date);
  104. }
  105. }
  106. }
  107. });
  108. }
  109. });
  110. }
  111. render(containerid) {
  112. const instance = this;
  113. $("." + containerid).empty();
  114. let html = `<div class="card">
  115. <div class="card-header card-header-action">
  116. <div class="col-12">
  117. <span class="h6 ml-10">
  118. Scheduler
  119. <a href='javascript: ;' id='scheduler_spin' class='pull-right' onclick="" data-toggle="tooltip" title="ReConfigure"><i class='fa fa-refresh '></i></a>
  120. </span>
  121. </div>
  122. </div>
  123. <div class="card-body" style="overflow-x:auto;">
  124. <table class="bg-white" id="bizgazecrm_Routes_tbl_DayWise" style="border: 1px solid #c6c6c6;text-align: left; border-collapse: collapse;width: 100%; display:none;">
  125. <tr>
  126. <th style="text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">First Week</th>
  127. <th style="text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">Second Week</th>
  128. <th style="text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">Third Week</th>
  129. <th style="text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">Fourth Week</th>
  130. <th style="text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">Fifth Week</th>
  131. </tr>
  132. <tr>
  133. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">SUN</td>
  134. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">SUN</td>
  135. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">SUN</td>
  136. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">SUN</td>
  137. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">SUN</td>
  138. </tr>
  139. <tr>
  140. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">MON</td>
  141. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">MON</td>
  142. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">MON</td>
  143. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">MON</td>
  144. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">MON</td>
  145. </tr>
  146. <tr>
  147. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">TUE</td>
  148. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">TUE</td>
  149. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">TUE</td>
  150. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">TUE</td>
  151. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">TUE</td>
  152. </tr>
  153. <tr>
  154. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">WED</td>
  155. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">WED</td>
  156. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">WED</td>
  157. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">WED</td>
  158. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">WED</td>
  159. </tr>
  160. <tr>
  161. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">THU</td>
  162. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">THU</td>
  163. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">THU</td>
  164. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">THU</td>
  165. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">THU</td>
  166. </tr>
  167. <tr>
  168. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">FRI</td>
  169. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">FRI</td>
  170. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">FRI</td>
  171. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">FRI</td>
  172. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">FRI</td>
  173. </tr>
  174. <tr>
  175. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">SAT</td>
  176. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">SAT</td>
  177. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">SAT</td>
  178. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">SAT</td>
  179. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">SAT</td>
  180. </tr>
  181. </table>
  182. <table class="bg-white" id="bizgazecrm_Routes_tbl_DateWise" style="border: 1px solid #c6c6c6;text-align: left; border-collapse: collapse;width: 100%;display:none;">
  183. <tr>
  184. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">1</td>
  185. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">2</td>
  186. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">3</td>
  187. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">4</td>
  188. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">5</td>
  189. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">6</td>
  190. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">7</td>
  191. </tr>
  192. <tr>
  193. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">8</td>
  194. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">9</td>
  195. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">10</td>
  196. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">11</td>
  197. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">12</td>
  198. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">13</td>
  199. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">14</td>
  200. </tr>
  201. <tr>
  202. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">15</td>
  203. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">16</td>
  204. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">17</td>
  205. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">18</td>
  206. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">19</td>
  207. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">20</td>
  208. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">21</td>
  209. </tr>
  210. <tr>
  211. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">22</td>
  212. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">23</td>
  213. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">24</td>
  214. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">25</td>
  215. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">26</td>
  216. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">27</td>
  217. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">28</td>
  218. </tr>
  219. <tr>
  220. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">29</td>
  221. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">30</td>
  222. <td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">31</td>
  223. </tr>
  224. </table>
  225. <table class="bg-white" id="bizgazecrm_Routes_tbl_WeekWise" style="border: 1px solid #c6c6c6;text-align: left; border-collapse: collapse;width: 100%;display:none;">
  226. <tr>
  227. <th style="text-align:center;border: 1px solid #c6c6c6; vertical-align: middle;" colspan="7" class="pa-10">WeekWise</th>
  228. </tr>
  229. <tr>
  230. ${instance.getCurrentWeekTableHtml()}
  231. </tr>
  232. </table>
  233. <button id="btnsave" class='btn-sm bg-success pull-right mt-10' href='javascript: ;' type=button onclick="" >Save</button>
  234. </div>
  235. </div>`;
  236. $("." + containerid).append(html);
  237. $("#btnsave").off('click').on("click", function () {
  238. Bizgaze.Apps.Routes.Components.scheduler.Instance().saveroute();
  239. });
  240. }
  241. getDateByDayWise(row, col) {
  242. var date = "";
  243. if (row == 1) {
  244. switch (col) {
  245. case 1:
  246. date = "1";
  247. break;
  248. case 2:
  249. date = "8";
  250. break;
  251. case 3:
  252. date = "15";
  253. break;
  254. case 4:
  255. date = "22";
  256. break;
  257. case 5:
  258. date = "29";
  259. }
  260. }
  261. else if (row == 2) {
  262. switch (col) {
  263. case 1:
  264. date = "2";
  265. break;
  266. case 2:
  267. date = "9";
  268. break;
  269. case 3:
  270. date = "16";
  271. break;
  272. case 4:
  273. date = "23";
  274. break;
  275. case 5:
  276. date = "30";
  277. }
  278. }
  279. else if (row == 3) {
  280. switch (col) {
  281. case 1:
  282. date = "3";
  283. break;
  284. case 2:
  285. date = "10";
  286. break;
  287. case 3:
  288. date = "17";
  289. break;
  290. case 4:
  291. date = "24";
  292. break;
  293. case 5:
  294. date = "31";
  295. }
  296. }
  297. else if (row == 4) {
  298. switch (col) {
  299. case 1:
  300. date = "4";
  301. break;
  302. case 2:
  303. date = "11";
  304. break;
  305. case 3:
  306. date = "18";
  307. break;
  308. case 4:
  309. date = "25";
  310. ;
  311. }
  312. }
  313. else if (row == 5) {
  314. switch (col) {
  315. case 1:
  316. date = "5";
  317. break;
  318. case 2:
  319. date = "12";
  320. break;
  321. case 3:
  322. date = "19";
  323. break;
  324. case 4:
  325. date = "26";
  326. }
  327. }
  328. else if (row == 6) {
  329. switch (col) {
  330. case 1:
  331. date = "6";
  332. break;
  333. case 2:
  334. date = "13";
  335. break;
  336. case 3:
  337. date = "20";
  338. break;
  339. case 4:
  340. date = "27";
  341. }
  342. }
  343. else if (row == 7) {
  344. switch (col) {
  345. case 1:
  346. date = "7";
  347. break;
  348. case 2:
  349. date = "14";
  350. break;
  351. case 3:
  352. date = "21";
  353. break;
  354. case 4:
  355. date = "28";
  356. break;
  357. case 4:
  358. date = "30";
  359. }
  360. }
  361. return date;
  362. }
  363. bindSelectedSchedulerTblCell(SchedulerType, schedulerdates, tbl) {
  364. var instance = this;
  365. this.getDateByDayWise;
  366. var tbl = "";
  367. var date = "";
  368. if (SchedulerType == 2) {
  369. $("#bizgazecrm_Routes_tbl_DayWise").show();
  370. tbl = $("#bizgazecrm_Routes_tbl_DayWise td");
  371. }
  372. else if (SchedulerType == 1) {
  373. $("#bizgazecrm_Routes_tbl_DateWise").show();
  374. tbl = $("#bizgazecrm_Routes_tbl_DateWise td");
  375. }
  376. else if (SchedulerType == 3) {
  377. $("#bizgazecrm_Routes_tbl_WeekWise").show();
  378. tbl = $("#bizgazecrm_Routes_tbl_WeekWise td");
  379. }
  380. if (schedulerdates != null && tbl) {
  381. var datesArr = schedulerdates.split("|");
  382. for (var i = 0; i < datesArr.length; i++) {
  383. if (datesArr[i] != "") {
  384. tbl.each(function () {
  385. if (SchedulerType === 1) {
  386. if ($(this).html() == datesArr[i]) {
  387. $(this).css('backgroundColor', '#8ec165');
  388. $(this).css('color', '#000000');
  389. $(this).addClass('Unclick');
  390. Bizgaze.Apps.Routes.Components.scheduler.Instance().arr.push(datesArr[i]);
  391. }
  392. }
  393. else if (SchedulerType === 2) {
  394. var row = $(this).parent().parent().children().index($(this).parent());
  395. var col = $(this).parent().children().index($(this));
  396. date = Bizgaze.Apps.Routes.Components.scheduler.Instance().getDateByDayWise(row, col + 1);
  397. if (date == datesArr[i]) {
  398. $(this).css('backgroundColor', '#8ec165');
  399. $(this).css('color', '#000000');
  400. $(this).addClass('Unclick');
  401. Bizgaze.Apps.Routes.Components.scheduler.Instance().arr.push(datesArr[i]);
  402. }
  403. }
  404. else if (SchedulerType === 3) {
  405. if ($(this).find(`.date-input[value=${datesArr[i]}]`).length) {
  406. $(this).css('backgroundColor', '#8ec165');
  407. $(this).css('color', '#000000');
  408. $(this).addClass('Unclick');
  409. }
  410. }
  411. });
  412. }
  413. }
  414. }
  415. }
  416. genetrateSchedulerDates(schedulerType) {
  417. const instance = this;
  418. var tbl = "";
  419. var array = [];
  420. this.getDateByDayWise;
  421. var date = date;
  422. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  423. var RouteId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_routedefinitionid").Value);
  424. var assignto = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_employeeid").Value);
  425. $("#scheduler_spin").addClass("fa-spin");
  426. if (schedulerType == 1) {
  427. tbl = $("#bizgazecrm_Routes_tbl_DateWise td");
  428. var selectedDates = [];
  429. tbl.each(function () {
  430. if ($(this).hasClass('Unclick')) {
  431. selectedDates.push($(this).text());
  432. }
  433. });
  434. array = selectedDates;
  435. var SchedulerDates = array;
  436. var propsettingObj = {
  437. RouteId: RouteId,
  438. RouteScheduleId: 0,
  439. SchedulerDates: selectedDates,
  440. AssignedTo: assignto,
  441. FirstWeek: [],
  442. SecondWeek: [],
  443. ThirdWeek: [],
  444. FourthWeek: [],
  445. FifthWeek: []
  446. };
  447. this.fileCacheHelper.loadJsFile("apps/routes/managers/routemanager.js", function () {
  448. Bizgaze.Apps.Routes.Managers.RouteManager.Instance().SaveDateWiseScheduler(propsettingObj).then(function (response) {
  449. MessageHelper.Instance().showSuccess(response.message, '');
  450. var detailobj = Unibase.Themes.Compact.Components.Details.Instance();
  451. detailobj._recordId = Unibase.Themes.Providers.DetailHelper.recordId;
  452. detailobj._installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  453. detailobj._containerId = Unibase.Platform.Helpers.NavigationHelper.Instance().getLastContainerId();
  454. var idetailObj = detailobj;
  455. detailobj.loadPortlets(idetailObj);
  456. });
  457. setTimeout(function () {
  458. $("#scheduler_spin").removeClass("fa-spin");
  459. }, 1000);
  460. });
  461. }
  462. else if (schedulerType == 2) {
  463. var selectedFirstWeek = [];
  464. var selectedSecWeek = [];
  465. var selectedThirdWeek = [];
  466. var selectedFourthWeek = [];
  467. var selectedFifththWeek = [];
  468. $('#bizgazecrm_Routes_tbl_DayWise td').each(function (index, tr) {
  469. if ($(this).hasClass('Unclick')) {
  470. var row = $(this).parent().parent().children().index($(this).parent());
  471. var col = $(this).parent().children().index($(this));
  472. date = Bizgaze.Apps.Routes.Components.scheduler.Instance().getDateByDayWise(row, col + 1);
  473. if (date <= 7) {
  474. selectedFirstWeek.push(date);
  475. }
  476. else if (date <= 14) {
  477. selectedSecWeek.push(date);
  478. }
  479. else if (date <= 21) {
  480. selectedThirdWeek.push(date);
  481. }
  482. else if (date <= 28) {
  483. selectedFourthWeek.push(date);
  484. }
  485. else if (date <= 31) {
  486. selectedFifththWeek.push(date);
  487. }
  488. }
  489. });
  490. var propsettingObj = {
  491. RouteId: RouteId,
  492. RouteScheduleId: 0,
  493. SchedulerDates: [],
  494. AssignedTo: assignto,
  495. FirstWeek: selectedFirstWeek,
  496. SecondWeek: selectedSecWeek,
  497. ThirdWeek: selectedThirdWeek,
  498. FourthWeek: selectedFourthWeek,
  499. FifthWeek: selectedFifththWeek
  500. };
  501. this.fileCacheHelper.loadJsFile("apps/routes/managers/routemanager.js", function () {
  502. Bizgaze.Apps.Routes.Managers.RouteManager.Instance().saveWeekWiseScheduler(propsettingObj).then(function (response) {
  503. MessageHelper.Instance().showSuccess(response.message, '');
  504. var detailobj = Unibase.Themes.Compact.Components.Details.Instance();
  505. detailobj._recordId = Unibase.Themes.Providers.DetailHelper.recordId;
  506. detailobj._installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  507. detailobj._containerId = $("._bizgaze_detail_container:visible").attr("id");
  508. var idetailObj = detailobj;
  509. detailobj.loadPortlets(idetailObj);
  510. }, null);
  511. });
  512. setTimeout(function () {
  513. $("#scheduler_spin").removeClass("fa-spin");
  514. }, 1000);
  515. }
  516. else {
  517. instance.WeekWise = [];
  518. $('#bizgazecrm_Routes_tbl_WeekWise td.Unclick').each(function (index, el) {
  519. instance.WeekWise.push($(el).find('.date-input').val().toString());
  520. });
  521. var propsettingObjs = {
  522. RouteId: RouteId,
  523. RouteScheduleId: 0,
  524. SchedulerDates: [],
  525. AssignedTo: assignto,
  526. WeekWise: instance.WeekWise,
  527. };
  528. this.fileCacheHelper.loadJsFile("apps/routes/managers/routemanager.js", function () {
  529. Bizgaze.Apps.Routes.Managers.RouteManager.Instance().saveWeekdaysScheduler(propsettingObjs).then(function (response) {
  530. MessageHelper.Instance().showSuccess(response.message, '');
  531. var detailobj = Unibase.Themes.Compact.Components.Details.Instance();
  532. detailobj._recordId = Unibase.Themes.Providers.DetailHelper.recordId;
  533. detailobj._installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  534. detailobj._containerId = $("._bizgaze_detail_container:visible").attr("id");
  535. var idetailObj = detailobj;
  536. detailobj.loadPortlets(idetailObj);
  537. }, null);
  538. });
  539. setTimeout(function () {
  540. $("#scheduler_spin").removeClass("fa-spin");
  541. }, 1000);
  542. }
  543. }
  544. getCurrentWeekTableHtml() {
  545. var currentDate = moment();
  546. var weekStart = currentDate.clone().startOf('isoWeek').isoWeekday(0);
  547. var days = [];
  548. for (var i = 0; i <= 6; i++) {
  549. days.push(moment(weekStart).add(i, 'days').format("DD,dddd"));
  550. }
  551. const html = days.map(function (day) {
  552. const currentDay = day.split(',');
  553. return `<td style="cursor:pointer;text-align:center;border: 1px solid #c6c6c6;text-align: left;padding: 15px;">${currentDay[1].substring(0, 3).toUpperCase()} <input type="hidden" class="date-input" value="${currentDay[0]}"/></td>`;
  554. }).join('');
  555. return html;
  556. }
  557. saveroute() {
  558. this.fileCacheHelper.loadJsFile("apps/routes/managers/routemanager.js", function () {
  559. let arr1 = Bizgaze.Apps.Routes.Components.scheduler.Instance().arr;
  560. let str = '|';
  561. for (var i = 0; i < arr1.length; i++) {
  562. str += arr1[i] + '|';
  563. }
  564. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  565. var routeid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_routedefinitionid").Value);
  566. Bizgaze.Apps.Routes.Managers.RouteManager.Instance().saveroute(str, routeid).then(function (res) {
  567. if (res) {
  568. MessageHelper.Instance().showSuccess(res.message, '');
  569. }
  570. });
  571. });
  572. }
  573. static Instance() {
  574. if (this.instance === undefined) {
  575. this.instance = new scheduler();
  576. }
  577. return this.instance;
  578. }
  579. }
  580. Components.scheduler = scheduler;
  581. })(Components = Routes.Components || (Routes.Components = {}));
  582. })(Routes = Apps.Routes || (Apps.Routes = {}));
  583. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  584. })(Bizgaze || (Bizgaze = {}));