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.

createseriesformat.js 18KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298
  1. var Unibase;
  2. (function (Unibase) {
  3. let Platform;
  4. (function (Platform) {
  5. let Series;
  6. (function (Series) {
  7. let Components;
  8. (function (Components) {
  9. class CreateSeriesFormat extends Platform.Core.BaseComponent {
  10. constructor() {
  11. super();
  12. this.seriesmanager = Series.Managers.SeriesManager.Instance();
  13. this.datetimehelper = Unibase.Platform.Helpers.DateTimeHelper.Instance();
  14. }
  15. jsFiles() {
  16. return ['platform/series/managers/seriesmanager.js', "platform/forms/components/formviewer/formviewer.js", 'libs/parsley/parsley.min.js', 'platform/core/infos/status.js', 'platform/series/components/seriesformatlist.js'];
  17. }
  18. cssFiles() {
  19. return [];
  20. }
  21. html(id, containerid) {
  22. let html = `<form id="form_SeriesFormat" method="post" data-validate="parsley">
  23. <header class="b-b bg-white modal-header">
  24. <strong class="text-dark Title" id="serform_title">Create Series Format</strong>
  25. <input type="hidden" id="hfSeriesFormatId" value="0" />
  26. <input type="hidden" id="hfSeriesId" value="0" />
  27. </header>
  28. <div class="bg-light control-sorting modal-body">
  29. <div id="div_SeriesFormatMessage" class="clear">
  30. </div>
  31. <div class="section_Details card">
  32. <div class="card-body">
  33. <div class="row">
  34. <div class="col-sm-6">
  35. <div class="floating-label-form-group form-group floating-label focus" id="div_SeriesFormat">
  36. <label for="lblSeriesFormat" id="lbl_SeriesFormat">Series Format<span class="text-danger">*</span></label>
  37. <input type="text" id="txt_SeriesFormat" maxlength="50" class="form-control required floating-label-control" data-isdynamic="false" placeholder="Series Format*" data-placeholder="SE/{{SN}}" data-label="Series Format*" />
  38. </div>
  39. </div>
  40. <div class="col-sm-6">
  41. <div class="floating-label-form-group form-group floating-label focus" id="div_StartingNo">
  42. <label for="lblStartingNo" id="lbl_StartingNo">Starting Number<span class="text-danger">*</span></label>
  43. <input type="text" id="txt_StartingNo" class="form-control required floating-label-control" maxlength="50" data-isdynamic="false" placeholder="Starting Number*" data-placeholder="1" data-label="Starting Number*"/>
  44. </div>
  45. </div>
  46. </div>
  47. <div class="row">
  48. <div class="col-sm-6">
  49. <div class="floating-label-form-group form-group floating-label focus" id="div_NumberSize">
  50. <label for="lblNumberSize" id="lbl_NumberSize">Number Size<span class="text-danger">*</span></label>
  51. <input type="text" id="txt_NumberSize" class="form-control required floating-label-control" maxlength="1" data-isdynamic="false" placeholder="Number Size*" data-placeholder="4" data-label="Number Size*" />
  52. </div>
  53. </div>
  54. <div class="col-sm-6">
  55. <div class="floating-label-form-group form-group floating-label focus" id="div_NumberPrefix">
  56. <label for="lblNumberPrefix" id="lbl_NumberPrefix">Number Prefix<span class="text-danger">*</span></label>
  57. <input type="text" id="txt_NumberPrefix" class="form-control required floating-label-control" maxlength="1" data-isdynamic="false" placeholder="Number Prefix*" data-placeholder="0" data-label="Number Prefix*"/>
  58. </div>
  59. </div>
  60. </div>
  61. <div class="row">
  62. <div class="col-sm-6">
  63. <div class="floating-label-form-group floating-label-form-group-with-value" id="div_FromDate">
  64. <label for="lblFromDate" id="lbl_FromDate">From Date<span class="text-danger">*</span></label>
  65. <div class="input-group">
  66. <input type="text" id="txt_FromDate" class="form-control required floating-label-control datepicker-input" data-isdynamic="false" placeholder="From Date*" data-placeholder="dd/mm/yyyy" data-label="From Date*" />
  67. <a class="input-group-addon bg-white no-borders"><i class="fa fa-calendar"></i></a>
  68. </div>
  69. </div>
  70. </div>
  71. <div class="col-sm-6">
  72. <div class="floating-label-form-group floating-label-form-group-with-value" id="div_ToDate">
  73. <label for="lblToDate" id="lbl_ToDate">To Date<span class="text-danger">*</span></label>
  74. <div class="input-group">
  75. <input type="text" id="txt_ToDate" class="form-control required floating-label-control datepicker-input" data-isdynamic="false" placeholder="To Date*" data-placeholder="dd/mm/yyyy" data-label="To Date*" readonly="true"/>
  76. <a class="input-group-addon bg-white no-borders"><i class="fa fa-calendar"></i></a>
  77. </div>
  78. </div>
  79. </div>
  80. </div>
  81. <div class="row">
  82. <div class="col-sm-6 mt-40">
  83. <div class="form-group floating-label focus" id="div_istodate">
  84. <label for="frm_chk_istodate" id="lbl_istodate">Is To Date Undefined</label>
  85. <label class="switch pull-right">
  86. <input type="hidden" id="hf_istodate" value="" />
  87. <input type="checkbox" id="chk_istodate" data-isdynamic="false" />
  88. <span></span>
  89. </label>
  90. </div>
  91. </div>
  92. </div>
  93. </div>
  94. </div>
  95. </div>
  96. <div class="bg-white footer b-t pa-5 ">
  97. <a id="btn_CloseSeriesFormat" class="btn btn-light btn-sm mr-auto"> Close</a>
  98. <a id="btn_SaveSeriesFormat" class="btn btn-primary btn-sm">Save</a>
  99. </div>
  100. </form>`;
  101. return html;
  102. }
  103. load(id, containerid, callback) {
  104. var instance = this;
  105. $('#txt_StartingNo').addClass('numberonly');
  106. $('#txt_NumberSize').addClass('numberonly');
  107. $('#txt_NumberPrefix').addClass('numberonly');
  108. $('.numberonly').keypress(function (event) {
  109. if ((event.which > 47 && event.which < 58)) {
  110. }
  111. else {
  112. event.preventDefault();
  113. }
  114. }).on('paste', function (event) {
  115. event.preventDefault();
  116. });
  117. $("#txt_ToDate,#txt_FromDate").keypress(function (event) {
  118. if ((event.which > 44 && event.which < 58)) {
  119. }
  120. else {
  121. event.preventDefault();
  122. }
  123. });
  124. $("#chk_istodate").on('change', function () {
  125. if ($(this).is(':checked')) {
  126. $('#txt_ToDate').prop('disabled', true);
  127. $('#txt_ToDate').css("cursor", "not-allowed");
  128. var currentdate = new Date();
  129. $('#txt_ToDate').removeClass("required");
  130. }
  131. else {
  132. $('#txt_ToDate').prop('disabled', false);
  133. $('#txt_ToDate').addClass("required");
  134. $('#txt_ToDate').removeAttr("style");
  135. }
  136. });
  137. var currentdate = new Date();
  138. var datetime = currentdate.getDate() + "/"
  139. + (currentdate.getMonth() + 1) + "/"
  140. + currentdate.getFullYear() + " ";
  141. $("#txt_FromDate").val("" + datetime + "");
  142. currentdate.setDate(currentdate.getDate() + 364);
  143. var datetime1 = currentdate.getDate() + "/"
  144. + (currentdate.getMonth() + 1) + "/"
  145. + (currentdate.getFullYear()) + " ";
  146. $('#txt_FromDate').daterangepicker({
  147. locale: {
  148. format: 'DD/MM/YYYY',
  149. },
  150. singleDatePicker: true,
  151. showDropdowns: true,
  152. minYear: 1901,
  153. maxDate: new Date(2050, 11, 31)
  154. })
  155. .change(dateChanged)
  156. .on('changeDate', dateChanged);
  157. $("#txt_ToDate").val("" + datetime1 + "");
  158. $('#txt_ToDate').daterangepicker({
  159. locale: {
  160. format: 'DD/MM/YYYY',
  161. },
  162. singleDatePicker: true,
  163. showDropdowns: true,
  164. minYear: 1901,
  165. minDate: datetime,
  166. maxDate: new Date(2050, 11, 31)
  167. });
  168. function dateChanged(ev) {
  169. var instance = this;
  170. var DateSplit = ($("#txt_FromDate").val().toString().split('/'));
  171. var DateArray = DateSplit.filter(function (v) { return v !== ''; });
  172. var Only = DateArray[2].split(" ");
  173. var onlyYear = parseInt(Only[0]);
  174. var fromdate = new Date(moment($("#txt_FromDate").val(), "DD/MM/YYYY").format("YYYY/MM/DD"));
  175. var todate_min = new Date(moment($("#txt_FromDate").val(), "DD/MM/YYYY").format("YYYY/MM/DD"));
  176. fromdate.setDate(fromdate.getDate() + 364);
  177. var todate = (fromdate.getDate()) + "/"
  178. + (fromdate.getMonth() + 1) + "/"
  179. + (fromdate.getFullYear()) + " ";
  180. $("#txt_ToDate").val(todate);
  181. $('#txt_ToDate').daterangepicker({
  182. locale: {
  183. format: 'DD/MM/YYYY',
  184. },
  185. singleDatePicker: true,
  186. showDropdowns: true,
  187. minYear: 1901,
  188. minDate: new Date(todate_min),
  189. maxDate: new Date(2050, 11, 31)
  190. });
  191. }
  192. $("#btn_CloseSeriesFormat").click(function () {
  193. $('#' + containerid).modal('hide');
  194. $('#' + containerid).remove();
  195. });
  196. $("#btn_SaveSeriesFormat").click(function () {
  197. let appcontrolid = "form_SeriesFormat";
  198. let result = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(appcontrolid);
  199. if (result == false) {
  200. MessageHelper.Instance().showError("Mandatory fields are missing", "div_SeriesFormatMessage");
  201. return false;
  202. }
  203. else {
  204. instance.Saveseriesformat(id, containerid);
  205. }
  206. });
  207. instance.loaddata(id);
  208. }
  209. render(id) {
  210. this.navigationHelper.popup(id, "", Unibase.Platform.Series.Components.CreateSeriesFormat.Instance(), null, Platform.Helpers.Size.DockLeft);
  211. }
  212. loaddata(id) {
  213. var instance = this;
  214. if (id != 0) {
  215. instance.seriesmanager.getSeriesFormat(id).then(function (response) {
  216. $("#serform_title").text(" Edit Series Format");
  217. $("#hf_StartingNo").val(response.result.StartingNumber);
  218. $('#txt_SeriesFormat').val(response.result.seriesformat);
  219. $('#txt_NumberPrefix').val(response.result.NumberPrefix);
  220. $('#txt_NumberSize').val(response.result.NumberSize);
  221. $("#txt_FromDate").val(instance.datetimehelper.formatLocalDate1(response.result.FromDate, ''));
  222. var lastnumber = response.result.LastNumber;
  223. if (lastnumber >= response.result.StartingNumber) {
  224. $("#lbl_StartingNo").text("Last Number").append("<span class='text-danger'>*</span>");
  225. $("#txt_StartingNo").attr("placeholder", "Last Number*");
  226. $("#txt_StartingNo").attr("data-label", "Last Number*");
  227. $('#txt_StartingNo').val(lastnumber);
  228. }
  229. else {
  230. $('#txt_StartingNo').val(response.result.StartingNumber);
  231. }
  232. $("#hf_SeriesId").val(response.result.SeriesId);
  233. $("#hfSeriesFormatId").val(response.result.SeriesFormatId);
  234. $("#chk_istodate").prop("checked", response.result.IsToDateUndefined);
  235. if (response.result.IsToDateUndefined == true) {
  236. $('#txt_ToDate').prop('disabled', true);
  237. $('#txt_ToDate').css("cursor", "not-allowed");
  238. $('#txt_ToDate').removeClass("required");
  239. }
  240. $("#txt_ToDate").val(instance.datetimehelper.formatLocalDate1(response.result.ToDate, ''));
  241. $('#txt_ToDate').daterangepicker({
  242. locale: {
  243. format: 'DD/MM/YYYY',
  244. },
  245. singleDatePicker: true,
  246. showDropdowns: true,
  247. minDate: new Date(instance.datetimehelper.formatLocalDate1(response.result.FromDate, 'YYYY/MM/DD')),
  248. });
  249. $("#div_SeriesFormat").addClass("floating-label-form-group-with-value");
  250. $("#div_StartingNo").addClass("floating-label-form-group-with-value");
  251. $("#div_NumberSize").addClass("floating-label-form-group-with-value");
  252. $("#div_NumberPrefix").addClass("floating-label-form-group-with-value");
  253. });
  254. }
  255. }
  256. Saveseriesformat(id, containerid) {
  257. var instance = this;
  258. var fromdatestring = moment($("#txt_FromDate").val(), "DD/MM/YYYY").add(1, 'days').format("YYYY/MM/DD");
  259. let todatestring = moment($("#txt_ToDate").val(), "DD/MM/YYYY").add(1, 'days').format("YYYY/MM/DD");
  260. let todate = new Date(todatestring);
  261. let fromdate = new Date(fromdatestring);
  262. var SeriesId = Number($("#hf_seriesid").val());
  263. let postData = {
  264. SeriesId: SeriesId,
  265. SeriesFormatId: id,
  266. SeriesFormatName: $('#txt_SeriesFormat').val().toString(),
  267. NumberPrefix: $('#txt_NumberPrefix').val().toString(),
  268. NumberSize: Number($('#txt_NumberSize').val()),
  269. StartingNumber: Number($('#txt_StartingNo').val()),
  270. FromDate: fromdate,
  271. ToDate: todate,
  272. LastNumber: 0,
  273. IsToDateUndefined: $("#chk_istodate").prop("checked")
  274. };
  275. instance.seriesmanager.saveSeriesFormat(postData).then(function (response) {
  276. if (response.status == Unibase.Data.Status.Error) {
  277. MessageHelper.Instance().showError(response.message, 'div_SeriesFormatMessage');
  278. }
  279. else {
  280. MessageHelper.Instance().showSuccess(response.message, 'div_SeriesFormatMessage');
  281. $('#' + containerid).modal('hide');
  282. $('#' + containerid).remove();
  283. Components.SeriesFormatList.Instance().FormatList();
  284. }
  285. });
  286. }
  287. static Instance() {
  288. if (this.instance === undefined) {
  289. this.instance = new CreateSeriesFormat();
  290. }
  291. return this.instance;
  292. }
  293. }
  294. Components.CreateSeriesFormat = CreateSeriesFormat;
  295. })(Components = Series.Components || (Series.Components = {}));
  296. })(Series = Platform.Series || (Platform.Series = {}));
  297. })(Platform = Unibase.Platform || (Unibase.Platform = {}));
  298. })(Unibase || (Unibase = {}));