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.

paymentmode.component.js 109KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387
  1. var paymentlistitem = 0;
  2. var paymentJournalEntryId = 0;
  3. var Bizgaze;
  4. (function (Bizgaze) {
  5. let Apps;
  6. (function (Apps) {
  7. let Transact;
  8. (function (Transact) {
  9. let Controls;
  10. (function (Controls) {
  11. class PaymentMode extends Unibase.Platform.Core.BaseComponent {
  12. constructor() {
  13. super(...arguments);
  14. this.isOrder = false;
  15. }
  16. init(formpropertyid, prop, callback) {
  17. var instance = this;
  18. instance.isMultiplePayment = false;
  19. instance.paymentTypeId = 1;
  20. instance.fileCacheHelper.loadJsFile("apps/transact/managers/payments/paymentmanager.js", function () {
  21. instance.fileCacheHelper.loadJsFile("apps/transact/controls/payments/wallet.component.js", function () {
  22. instance.fileCacheHelper.loadJsFile("apps/transact/controls/payments/dues.component.js", function () {
  23. instance.fileCacheHelper.loadJsFile("apps/transact/controls/payments/paymentsummary.components.js", function () {
  24. instance.fileCacheHelper.loadJsFile("apps/transact/enums/enum.js", function () {
  25. instance.fileCacheHelper.loadJsFile("apps/crm/contacts/managers/contactmanager.js", function () {
  26. instance.loadPaymentControl("paymentModeContainer");
  27. instance.loadContacts();
  28. eval('_floatingLabelHelper.init()');
  29. if (callback != null) {
  30. callback();
  31. }
  32. });
  33. });
  34. });
  35. });
  36. });
  37. });
  38. }
  39. loadControl(containerid, prop) {
  40. var instance = this;
  41. var containerhtml = `<div id="paymentModeContainer"></div>`;
  42. $("#" + containerid).html(containerhtml);
  43. $('.Section').not('.section_Default').hide();
  44. }
  45. loadPaymentControl(containerid) {
  46. var instance = this;
  47. var html = `<div class="row m-t-lg">
  48. <input type="hidden" id="hdn_customcontrol" class="value-control" value="Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().getobj();">
  49. </div>` +
  50. `<div class="card-body pr-0 pl-0">` +
  51. `<div class="row">` +
  52. `<div id="divSectionProperties_AddPaymentMode" class="AddPaymentMode col-sm-1 mt-10 pr-0 pl-0 text-center" data-size="1" data-propertyname="AddPaymentMode"" data-isdefault="false" data-rowindex="5">
  53. <a id="btnSection_AddPaymentMode" class="btn btn-primary mt-20"><i class="text-white fa fa-plus"></i></a></div>` +
  54. `<div id="div_paymentmode" class="col-sm-4 border-0 floating-label-form-group floating-label-form-group-with-value"><label for="lbl" id="lbl_paymentmodeid">Payment Mode<span class="text-danger hide" id="spnIsRequired_paymentmodeid"> *</span></label><div class="input-group"><select id="txtAutoComplete_paymentmodeid" class="txtAutoComplete_paymentmodeid form-control type-control text-control select2-hidden-accessible" data-isdefault="false" style="width:100%;" placeholder="Select" data-placeholder="Select" data-label="Select" data-istagselect="false"></select><input type="hidden" id="hfAutoComplete_paymentmodeid" value="" class="hfAutoComplete_paymentmodeid form-control value-control" data-isdynamic="true" data-propdoctypename="JournalEntity" data-required="true" data-regularexp="" data-validatemsg=""/></div></div>`
  55. +
  56. ` <div id="control" class="control-group col-sm-2 " data-size="2" data-propertyname="RefNo" data-isdefault="true" data-rowindex="2" data-validatename="Ref No"><div id="div_RefNo" class="floating-label-form-group">
  57. <label for="lbl" id="lbl_RefNo">Ref No<span class="text-danger hidden" id="spnIsRequired"> *</span></label>
  58. <input type="text" id="txt_RefNo" class="form-control value-control floating-label-control" data-required="false" data-regularexp="" data-validatemsg="" placeholder="Ref No" data-placeholder="Enter Ref No" data-label="Ref No"> </div>
  59. <label for="Validation" id="lblValidation_RefNo"></label></div>` +
  60. `<div id="div_RefDate_Container" class="control-group col-sm-2 pr-0 pl-0"><div id="div_RefDate" class="CancelBtnFloating floating-label-form-group"><label for="lbl" id="lbl_RefDate">Ref Date<span class="text-danger hidden" id="spnIsRequired_RefDate"> *</span></label>
  61. <div class="input-group"><input type="text" id="date_RefDate" class="dateselect_1 form-control value-control datepicker-input hasDatepicker floating-label-control" placeholder="Ref Date " data-placeholder="dd/mm/yyyy" data-label="Ref Date ">
  62. <span class="input-group-addon mt-10"><i class="fa fa-calendar"></i></span><input type="hidden" id="hfId" value="">
  63. <label for="Validation" id="lblValidation_RefDate"></label>
  64. <input type="hidden" id="hfFormPropertyId" value=""></div></div></div>` +
  65. `<div id="control-container" class="control-group divCustomProperties_Credit col-sm-3 " data-size="3">
  66. <div id="div_Credit" class="floating-label-form-group"><label for="lbl" id="lbl_Credit">Amount<span class="text-danger " id="spnIsRequired"> *</span></label><input type="text" id="txt_TotalCreditAmount" inputmode="numeric" class="form-control value-control floating-label-control decimal_numerics" data-required="true" data-regularexp="" data-validatemsg="" placeholder="Amount *" data-placeholder="Enter Amount" data-label="Amount *"><input type="hidden" id="hf_TotalCreditAmount" value=""/> </div> <label for="Validation" id="lblValidation_Credit"></label></div>` +
  67. `<div id="div_BankId" class="col-sm-4 pr-0 floating-label-form-group floating-label-form-group-with-value border-0"><label for="lbl" id="lbl_BankId">Bank Name<span class="text-danger hide" id="spnIsRequired_BankId"> *</span></label><div class="input-group"><select id="txtAutoComplete_BankId" class="txtAutoComplete_BankId form-control text-control select2-hidden-accessible" data-isdefault="false" style="width:100%;" placeholder="Select Bank" data-placeholder="Select Bank" data-label="Select Bank" data-istagselect="false"></select><input type="hidden" id="hfAutoCompleteId_BankId" value="" class="hfAutoCompleteId_BankId form-control value-control" ></div><input type="hidden" id="hfId_BankId" value=""/><label for="Validation" id="lblValidation_BankId"></label></div>` +
  68. `<div id="control" class="control-group col-sm-3 " data-size="3" data-propertyname="BankBranch">
  69. <div id="div_BankBranch" class="floating-label-form-group"><label for="lbl" id="lbl_BankBranch">Bank Branch<span class="text-danger " id="spnIsRequired"> *</span></label><input type="text" id="txt_BankBranch" class="form-control value-control floating-label-control " data-required="true" data-regularexp="" data-validatemsg="" placeholder="Bank Branch * " data-placeholder="Enter Branch Name" data-label="Bank Branch *"> </div> <label for="Validation" id="lblValidation_BankBranch"></label>
  70. </div>` +
  71. `<div id="div_ChequeDate_Container" class="control-group ChequeDate controldata col-sm-2 pr-0 pl-0 border-0 floating-label-form-group floating-label-form-group-with-value" data-size="3" data-propertyname="ChequeDate"><div id="div_ChequeDate" class="CancelBtnFloating floating-label-form-group"><label for="lbl" id="lbl_ChequeDate">Cheque Date<span class="text-danger hidden" id="spnIsRequired_ChequeDate"> *</span></label><div class="input-group"><input type="text" id="date_ChequeDate" class="dateselect_1 form-control value-control datepicker-input hasDatepicker floating-label-control" placeholder="Cheque Date *" data-placeholder="dd/mm/yyyy" data-label="Cheque Date *"><span class="input-group-addon mt-10"><i class="fa fa-calendar"></i></span><input type="hidden" id="hfId" value=""><label for="Validation" id="lblValidation_ChequeDate"></label><input type="hidden" id="hfFormPropertyId" value=""></div></div></div>` +
  72. `<div class="control-group ChequeNo col-sm-3 "><div id="div_ChequeNo" class="floating-label-form-group"><label for="lbl" id="lbl_ChequeNo">Cheque No.<span class="text-danger " id="spnIsRequired"> *</span></label><input type="text" id="txt_ChequeNo" class="form-control value-control floating-label-control decimal_numerics" data-required="true" data-regularexp="" data-validatemsg="" placeholder="Cheque No. * " data-placeholder="Enter Cheque No." data-label="Cheque No. *"> </div> <label for="Validation" id="lblValidation_ChequeNo"></label></div>` +
  73. ` </div>` +
  74. ` </div>`;
  75. $("#" + containerid).html(html);
  76. if (Unibase.Themes.Providers.DetailHelper.installedAppId != 0) {
  77. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length != 0) {
  78. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  79. var contactParam = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_contactid");
  80. var spocParam = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_orgcontactid");
  81. if (contactParam == undefined || contactParam == null || contactParam == "") {
  82. contactParam = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_organizationid");
  83. }
  84. if (spocParam != undefined && contactParam != undefined) {
  85. var ContactId = Number(contactParam.Value);
  86. var spocId = Number(spocParam.Value);
  87. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().getOrganizationById(ContactId).then(function (response) {
  88. spocParam.Value = response.result.DefaultOrgContactId;
  89. if (spocParam != undefined && contactParam != undefined) {
  90. var ContactId = Number(contactParam.Value);
  91. var spocId = Number(spocParam.Value);
  92. if (ContactId != undefined && !isNaN(ContactId) && spocId != undefined && !isNaN(spocId)) {
  93. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().LoadorgContactDetails(ContactId, spocId);
  94. }
  95. }
  96. });
  97. if (ContactId != undefined && !isNaN(ContactId) && spocId != undefined && !isNaN(spocId)) {
  98. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().LoadorgContactDetails(ContactId, spocId);
  99. }
  100. }
  101. }
  102. }
  103. $(".paymentrefdate_1").daterangepicker({
  104. locale: {
  105. format: 'DD/MM/YYYY',
  106. },
  107. singleDatePicker: true,
  108. showDropdowns: true,
  109. minYear: 1901,
  110. maxDate: new Date(2050, 11, 31)
  111. });
  112. $(".paymentrefdate_1").parents(".floating-label-form-group").addClass("floating-label-form-group-with-value");
  113. $(".dateselect_1").daterangepicker({
  114. locale: {
  115. format: 'DD/MM/YYYY',
  116. },
  117. singleDatePicker: true,
  118. showDropdowns: true,
  119. minYear: 1901,
  120. maxDate: new Date(2050, 11, 31)
  121. });
  122. $(".dateselect_1").parents(".floating-label-form-group").addClass("floating-label-form-group-with-value");
  123. $("#div_BankId").addClass('hidden');
  124. $("#div_BankBranch").addClass('hidden');
  125. $("#div_ChequeDate").addClass('hidden');
  126. $("#div_ChequeNo").addClass('hidden');
  127. $('.decimal_numerics').on('paste', function (event) {
  128. var orgEvent = event.originalEvent;
  129. if (orgEvent.clipboardData.getData('Text').match(/[^\d.]/g)) {
  130. event.preventDefault();
  131. }
  132. });
  133. $(".decimal_numerics").on('input', function (evt) {
  134. const inputVal = $(evt.currentTarget).val();
  135. $(evt.currentTarget).val(inputVal.replace(/[^\d.]/g, ''));
  136. });
  137. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().loadPaymentModes();
  138. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().getMultipleModeSetting();
  139. var paymentlisthtml = '<div class="card hidden" id="div_payments">' +
  140. '<div class="card-header">' +
  141. '<div class="d-none d-md-block">' +
  142. '<div class="row pl-10 pr-10">' +
  143. '<div class="col-sm-5"><strong>Mode</strong></div>' +
  144. '<div class="col-sm-5"><strong>Amount</strong></div>' +
  145. '<div class="col-sm-2 text-right"><strong>Delete</strong></div>' +
  146. '</div>' +
  147. '</div>' +
  148. '<div class="d-md-none">' +
  149. '<div><strong>Payments</strong></div>' +
  150. '</div>' +
  151. '</div>' +
  152. '<div class="card-body"><ul class="list-group accordion" id="paymentslist"><li class="paymentmodelistitem hidden"></li></ul></div></div>';
  153. $("#date_ChequeDate").daterangepicker({
  154. locale: {
  155. format: 'DD/MM/YYYY',
  156. },
  157. singleDatePicker: true,
  158. showDropdowns: true,
  159. minYear: 1901,
  160. maxDate: new Date(2050, 11, 31)
  161. });
  162. $("#date_ChequeDate").parents(".floating-label-form-group").addClass("floating-label-form-group-with-value");
  163. $('#div_payments').remove();
  164. $(".section_PaymentModeDetails").after(paymentlisthtml);
  165. $("#btnSection_AddPaymentMode").click(function () {
  166. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().loadPaymentSummary();
  167. var data = [];
  168. var paymentModeId = $("#txtAutoComplete_paymentmodeid").val();
  169. var totalCreditAmount = $("#txt_TotalCreditAmount").val();
  170. var paymentAccountIdAttr = $(".txtAutoComplete_paymentaccountid").attr("id");
  171. var paymentAccountId = $("#" + paymentAccountIdAttr).val();
  172. if ((paymentModeId != 0 && paymentModeId != null && paymentModeId != undefined) && (totalCreditAmount != undefined && totalCreditAmount != null && totalCreditAmount != "") && (paymentAccountId != 0 && paymentAccountId != null && paymentAccountId != undefined)) {
  173. if (paymentModeId != 2) {
  174. $("#div_payments").removeClass("hidden");
  175. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().AddPaymentModeListItem(data);
  176. }
  177. else {
  178. if ($(".txtAutoComplete_BankId").val() != 0 && ($("#date_ChequeDate").val() != undefined && $("#date_ChequeDate").val() != null && $("#date_ChequeDate").val() != "") && ($("#txt_ChequeNo").val() != null && $("#txt_ChequeNo").val() != undefined && $("#txt_ChequeNo").val() != "")) {
  179. $("#div_payments").removeClass("hidden");
  180. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().AddPaymentModeListItem(data);
  181. }
  182. else {
  183. Unibase.Platform.Forms.Components.FormViewer.Instance().showError("Please fill Bank Details");
  184. return false;
  185. }
  186. }
  187. }
  188. else if (paymentModeId != 0 && totalCreditAmount == "") {
  189. if (paymentModeId == 7) {
  190. $("#div_payments").removeClass("hidden");
  191. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().AddPaymentModeListItem(data);
  192. }
  193. else {
  194. Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(paymentAccountIdAttr);
  195. Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation("txtAutoComplete_paymentmodeid");
  196. Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation("txt_TotalCreditAmount");
  197. Unibase.Platform.Forms.Components.FormViewer.Instance().showError("Mandatory fields are missing");
  198. return false;
  199. }
  200. }
  201. else if (paymentModeId == 0 && totalCreditAmount != "") {
  202. Unibase.Platform.Forms.Components.FormViewer.Instance().showError('');
  203. return false;
  204. }
  205. else {
  206. Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(paymentAccountIdAttr);
  207. Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation("txtAutoComplete_paymentmodeid");
  208. Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation("txt_TotalCreditAmount");
  209. Unibase.Platform.Forms.Components.FormViewer.Instance().showError("Mandatory fields are missing");
  210. return false;
  211. }
  212. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().updatePaymentSummary();
  213. $("#divSectionProperties_EnableChequeMode").addClass("hidden");
  214. eval('_floatingLabelHelper.init()');
  215. });
  216. $(".txtAutoComplete_paymentmodeid").change(function () {
  217. var paymentmodeid = Number($("#txtAutoComplete_paymentmodeid").val());
  218. $("#txt_TotalCreditAmount").parent().addClass("floating-label-form-group-with-value");
  219. if (!instance.isOrder) {
  220. $("#txt_TotalCreditAmount").val("");
  221. }
  222. instance.paymentModeChangeEvent(paymentmodeid, true);
  223. });
  224. eval('_floatingLabelHelper.init()');
  225. }
  226. paymentModeChangeEvent(paymentmodeid, isClearInput) {
  227. var instance = this;
  228. var paymenttypeid = instance.paymentTypeId;
  229. var isError = false;
  230. var paymentAccountIdAttr = $(".txtAutoComplete_paymentaccountid").attr("id");
  231. if (paymentmodeid != Bizgaze.Apps.Transact.Enums.PaymentMode.None) {
  232. instance.fileCacheHelper.loadJsFile("apps/transact/managers/payments/paymentmanager.js", function () {
  233. Bizgaze.Apps.Transact.Managers.PaymentManager.Instance().getPaymentModeSeriesSetting(paymenttypeid, paymentmodeid).then(function (response) {
  234. if (response.result != null) {
  235. if (response.result.LedgerId != 0 && response.result.LedgerId != undefined) {
  236. var selectedOptions = new Option(response.result.LedgerName, response.result.LedgerId.toString(), true);
  237. $(".txtAutoComplete_paymentaccountid").append(selectedOptions);
  238. jQuery(".txtAutoComplete_paymentaccountid").val(response.result.LedgerId).trigger("change");
  239. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().updatePaymentSummary();
  240. }
  241. else {
  242. $(".txtAutoComplete_paymentaccountid").val(null).trigger("change");
  243. }
  244. }
  245. else {
  246. $(".txtAutoComplete_paymentaccountid").val(null).trigger("change");
  247. }
  248. }).then(function () {
  249. instance.paymentModeChangeSuccess(paymentmodeid, isClearInput, isError);
  250. });
  251. });
  252. }
  253. }
  254. paymentModeChangeSuccess(paymentmodeid, isClearInput, isError) {
  255. if (!isError) {
  256. if (paymentmodeid != Bizgaze.Apps.Transact.Enums.PaymentMode.Cheque) {
  257. $("#div_BankId").addClass('hidden');
  258. $("#div_BankBranch").addClass('hidden');
  259. $("#div_ChequeDate").addClass('hidden');
  260. $("#div_ChequeNo").addClass('hidden');
  261. }
  262. else {
  263. $("#div_BankId").removeClass('hidden');
  264. $("#div_BankBranch").removeClass('hidden');
  265. $("#div_ChequeDate").removeClass('hidden');
  266. $("#div_ChequeNo").removeClass('hidden');
  267. $("#txtAutoComplete_paymentmodeid").attr("disabled", "disabled");
  268. $(".AddPaymentMode").addClass('hidden');
  269. $("#div_paymentmode").removeClass('pr-0 pl-0');
  270. $("#div_paymentmode").addClass('col-sm-5');
  271. $("#div_RefDate_Container").removeClass('pr-0 pl-0');
  272. var selectedMode = new Option("Cheque", "2", true);
  273. $("#txtAutoComplete_paymentmodeid").append(selectedMode).select2();
  274. if (isClearInput) {
  275. $("#txt_RefNo").val("");
  276. $('#date_RefDate').val("");
  277. $('#txt_TotalCreditAmount').val("");
  278. $(".txtAutoComplete_BankId").text("");
  279. $("#txt_BankBranch").val("");
  280. $("#txt_ChequeNo").val("");
  281. $("#date_ChequeDate").val("");
  282. $("#div_ChequeDate").parent().removeClass("floating-label-form-group-with-value");
  283. $("#div_ChequeDate").removeClass("floating-label-form-group-with-value");
  284. $("#txt_ChequeNo").parent().removeClass("floating-label-form-group-with-value");
  285. $("#txt_BankBranch").parent().removeClass("floating-label-form-group-with-value");
  286. $("#txt_RefNo").parent().removeClass("floating-label-form-group-with-value");
  287. $("#div_RefDate").removeClass("floating-label-form-group-with-value");
  288. $("#txt_TotalCreditAmount").parent().removeClass("floating-label-form-group-with-value");
  289. }
  290. }
  291. if (paymentmodeid == Bizgaze.Apps.Transact.Enums.PaymentMode.Adjustment) {
  292. $("#txt_TotalCreditAmount").attr("placeholder", "Amount");
  293. $("#txt_TotalCreditAmount").data("label", "Amount");
  294. $("#lbl_Credit").find("#spnIsRequired").addClass("hidden");
  295. }
  296. else {
  297. $("#txt_TotalCreditAmount").attr("placeholder", "Amount *");
  298. $("#txt_TotalCreditAmount").data("label", "Amount *");
  299. $("#lbl_Credit").find("#spnIsRequired").removeClass("hidden");
  300. }
  301. }
  302. }
  303. loadContacts() {
  304. var instance = this;
  305. instance.paymentTypeId = Number($('.hdn_paymenttypeid').val());
  306. var companyId = 0;
  307. var paymentId = 0;
  308. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length != 0) {
  309. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  310. paymentId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_recordid").Value);
  311. }
  312. $(".txtAutoComplete_contactid").on("change", function () {
  313. $(".txtAutoComplete_paymentaccountid").val(null).trigger("change");
  314. var curContactId = $(".txtAutoComplete_contactid").val();
  315. var curContactName = $(".txtAutoComplete_contactid").attr("data-addldata");
  316. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().bindEvents();
  317. Bizgaze.Apps.Transact.Controls.Wallet.Instance().loadPaymentWallets(curContactId);
  318. Bizgaze.Apps.Transact.Controls.Dues.Instance().loadPaymentDues(curContactId);
  319. var Parameters = [{ "ColumnName": "contactid", "Value": Number(curContactId), }];
  320. Unibase.Forms.Controls.AutoComplete.Instance().LoadAutoComplete($(".txtAutoComplete_lobid"), Parameters);
  321. $(".transactonList_div_TRN2").find(".secWallets").addClass('hidden');
  322. $(".transactonList_div_TRN2").find(".secDues").addClass('hidden');
  323. $("#chkIsChequeMode").prop("checked", false);
  324. $("#divSectionProperties_EnableChequeMode").removeClass("hidden");
  325. });
  326. $(".date_journaldate").on("change", function () {
  327. var curContactId = $(".txtAutoComplete_contactid").val();
  328. Bizgaze.Apps.Transact.Controls.Wallet.Instance().loadPaymentWallets(curContactId);
  329. Bizgaze.Apps.Transact.Controls.Dues.Instance().loadPaymentDues(curContactId);
  330. });
  331. var isDealer = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().isRestrictedUser;
  332. var UserId = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().userId;
  333. if (isDealer && paymentId == 0) {
  334. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().getContactByUserId(UserId).then(function (response) {
  335. var contactId = response.result.ContactId;
  336. var orgContactName = response.result.OrgContactName;
  337. var organizationName = response.result.OrganizationName;
  338. var contactName = organizationName + ' - ' + orgContactName;
  339. var contact = new Option(contactName, contactId.toString(), true);
  340. $(".txtAutoComplete_contactid").append(contact);
  341. $(".txtAutoComplete_contactid").val(contactId).trigger("change");
  342. $(".btn_altSpocSelection").addClass("hidden");
  343. });
  344. }
  345. }
  346. bindEvents() {
  347. $('.Section').show();
  348. $('.section_Default').hide();
  349. var VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  350. $("#" + VisibleContainerId).find(".btn_Save_Form").removeClass("hidden");
  351. var html = "<div style='position:sticky;top:0;z-index:9999;height:50px' class='card' id = 'div_ContactNameRibbon' > <div id='' class='card-body pa-5 ' > " +
  352. "<div class='d-none d-md-block h-100'>" +
  353. "<div class='row contactHeaderRow h-100'>" +
  354. "<div class='col-sm-8 my-auto'>" +
  355. "<span class='h6 strong ml-20'>" +
  356. "<a href='javascript:;' id='anchor_ContactName' class='anchor_ContactName'></a>" +
  357. "</span>" +
  358. "</div>" +
  359. "<div class='col-sm-3 my-auto text-right'>" +
  360. "<span class='strong h6'>" +
  361. "<a href='javascript:;' id='anchor_totalDue' class='anchor_totalDue'></a>" +
  362. "</span>" +
  363. "</div>" +
  364. "<div class='col-sm-1 text-right'>" +
  365. "<span class=''><a onclick=Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().back(); class='btn btn-icon btn-icon-circle btn-pink btn-icon-style-3 btn_altSpocSelection' href='javascript:;' id='btn_altSpocSelection'><span class='btn-icon-wrap'><i class='fa fa-times'></i></span></a></span>" +
  366. "</div>" +
  367. "</div></div>" +
  368. "<div class='d-md-none h-100'>" +
  369. "<div class='row contactHeaderRow header h-100 ml-10'>" +
  370. "<div class='col-xs-8 col-6 overflow-hidden my-auto text-truncate'>" +
  371. "<span class=''>" +
  372. "<a href='javascript:;' id='anchor_ContactName' class='anchor_ContactName btn-md'></a>" +
  373. "</span>" +
  374. "</div>" +
  375. "<div class='col-xs-3 col-4 my-auto text-right'>" +
  376. "<strong class='strong'>" +
  377. "<a href='javascript:;' id='anchor_totalDue' class='anchor_totalDue btn-md' ></a>" +
  378. "</span>" +
  379. "</div>" +
  380. "<div class='col-xs-1 col-1 text-right'>" +
  381. "<span class=''><a onclick=Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().back(); class='btn btn-icon btn-sm btn-icon-circle btn-pink btn-icon-style-3 btn_altSpocSelection' href='javascript:;' id='btn_altSpocSelection'><span class='btn-icon-wrap'><i class='fa fa-times'></i></span></a></span>" +
  382. "</div>" +
  383. "</div></div>" +
  384. "</div>";
  385. if ($("#div_ContactNameRibbon").length == 0) {
  386. $(".section_Default").before(html);
  387. $('.anchor_ContactName').text($(".txtAutoComplete_contactid").text());
  388. $('.anchor_ContactName').val($(".txtAutoComplete_contactid").val());
  389. }
  390. }
  391. back() {
  392. var instance = this;
  393. $('.Section').hide();
  394. $('.section_Default').show();
  395. $('#div_ContactNameRibbon').remove();
  396. $(".txtAutoComplete_contactid").text("");
  397. $("#div_payments").addClass("hidden");
  398. var VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  399. $("#" + VisibleContainerId).find(".btn_Save_Form").addClass("hidden");
  400. $('input:text').val('');
  401. $('select').not('.txtAutoComplete_contactid').val(null).trigger("change");
  402. if ($(".hrefSection_MoreOptions").text() == "Less Options") {
  403. $(".hrefSection_MoreOptions").click();
  404. }
  405. $(".date_journaldate").daterangepicker({
  406. locale: {
  407. format: 'DD/MM/YYYY',
  408. },
  409. singleDatePicker: true,
  410. showDropdowns: true,
  411. minYear: 1901,
  412. maxDate: new Date(2050, 11, 31)
  413. });
  414. $(".date_journaldate").parents(".floating-label-form-group").addClass("floating-label-form-group-with-value");
  415. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().loadPaymentSummaryControl("paymentSummaryContainer");
  416. instance.loadPaymentControl("paymentModeContainer");
  417. $('.summernote_notes').summernote("reset");
  418. var isWalletExpanded = $("#walletControlList secWallets").hasClass("hidden");
  419. if (!isWalletExpanded) {
  420. $("#walletControlList a").click();
  421. }
  422. var isDueExpanded = $("#dueControlList secDues").hasClass("hidden");
  423. if (!isDueExpanded) {
  424. $("#dueControlList a").click();
  425. }
  426. }
  427. LoadorgContactDetails(contactId, spocId) {
  428. var orgContactId = Number($(".txtAutoComplete_OrgContactId").val());
  429. if (spocId != 0 && spocId != undefined && spocId != null) {
  430. orgContactId = spocId;
  431. }
  432. else {
  433. if (contactId != 0) {
  434. orgContactId = contactId;
  435. }
  436. }
  437. if (!isNaN(orgContactId) && orgContactId != 0) {
  438. var instance = this;
  439. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().getOrgContact(orgContactId).then(function (response) {
  440. if (response.result != null && response.result != "") {
  441. $(".txtAutoComplete_contactid").removeClass("required");
  442. var data = response.result;
  443. $('.anchor_ContactName').text(data.OrgContactName);
  444. if (data.OrganizationId != 0) {
  445. $('.anchor_ContactName').text(data.OrganizationName);
  446. $(".anchor_ContactName").val(data.OrgContactId);
  447. }
  448. $(".txtAutoComplete_contactid").val(data.OrganizationId);
  449. var selectcontact = new Option(data.OrganizationName, data.OrgContactId.toString(), true, true);
  450. $(".txtAutoComplete_contactid").append(selectcontact);
  451. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().bindEvents();
  452. Bizgaze.Apps.Transact.Controls.Dues.Instance().loadPaymentDues(data.OrganizationId);
  453. Bizgaze.Apps.Transact.Controls.Wallet.Instance().loadPaymentWallets(data.OrganizationId);
  454. if (spocId == 0) {
  455. spocId = data.OrganizationId;
  456. }
  457. var Parameters = [{ "ColumnName": "contactid", "Value": Number(spocId), }];
  458. Unibase.Forms.Controls.AutoComplete.Instance().LoadAutoComplete($(".txtAutoComplete_lobid"), Parameters);
  459. }
  460. }).then(function () {
  461. $(".btn_altSpocSelection").addClass("hidden");
  462. $(".contactHeaderRow").addClass("mt-10");
  463. });
  464. }
  465. }
  466. loadPaymentModes() {
  467. var instance = this;
  468. var url = _appsettings.server_url() + '/apis/v4/bizgaze/transact/payments/paymentmodeautcomplete';
  469. AutoCompleteHelper.getHelper().Create("#txtAutoComplete_paymentmodeid", "#hfAutoComplete_paymentmodeid", url, function (response) { });
  470. var url = _appsettings.server_url() + '/apis/v4/bizgaze/transact/payments/paymentbanksautcomplete';
  471. AutoCompleteHelper.getHelper().Create("#txtAutoComplete_BankId", "#hfAutoCompleteId_BankId", url, function (response) { });
  472. }
  473. enableChequeMode(isChequeMode, isClearInput, isEditForm) {
  474. var instance = this;
  475. if (isChequeMode) {
  476. $("#txtAutoComplete_paymentmodeid option").remove();
  477. if (isEditForm) {
  478. instance.paymentModeChangeSuccess(2, isClearInput, false);
  479. }
  480. else {
  481. instance.paymentModeChangeEvent(2, isClearInput);
  482. }
  483. }
  484. else {
  485. if (instance.isMultiplePayment) {
  486. $(".AddPaymentMode").removeClass('hidden');
  487. $("#div_paymentmode").addClass('pr-0 pl-0');
  488. $("#div_paymentmode").removeClass('col-sm-5');
  489. $("#div_RefDate_Container").addClass('pr-0 pl-0');
  490. jQuery("#txtAutoComplete_paymentmodeid").val("0").trigger("change");
  491. $("#txtAutoComplete_paymentmodeid").removeAttr("disabled");
  492. $("#txt_RefNo").val("");
  493. $("#txt_TotalCreditAmount").val("");
  494. $("#date_RefDate").val("");
  495. $("#div_RefDate").removeClass("floating-label-form-group-with-value");
  496. $("#txt_RefNo").parent().removeClass("floating-label-form-group-with-value");
  497. $("#txt_TotalCreditAmount").parent().removeClass("floating-label-form-group-with-value");
  498. $(".txtAutoComplete_paymentaccountid").val(null).trigger("change");
  499. }
  500. else {
  501. $(".AddPaymentMode").addClass('hidden');
  502. $("#div_paymentmode").removeClass('pr-0 pl-0');
  503. $("#div_paymentmode").addClass('col-sm-5');
  504. $("#div_RefDate_Container").removeClass('pr-0 pl-0');
  505. jQuery("#txtAutoComplete_paymentmodeid").val("0").trigger("change");
  506. $("#txtAutoComplete_paymentmodeid").removeAttr("disabled");
  507. $(".txtAutoComplete_paymentaccountid").val(null).trigger("change");
  508. }
  509. $("#div_BankId").addClass('hidden');
  510. $("#div_BankBranch").addClass('hidden');
  511. $("#div_ChequeDate").addClass('hidden');
  512. $("#div_ChequeNo").addClass('hidden');
  513. var url = _appsettings.server_url() + '/apis/v4/bizgaze/transact/payments/paymentmodeautcomplete';
  514. AutoCompleteHelper.getHelper().Create("#txtAutoComplete_paymentmodeid", "#hfAutoComplete_paymentmodeid", url, null);
  515. }
  516. }
  517. getMultipleModeSetting() {
  518. var instance = this;
  519. instance.isMultiplePayment = false;
  520. var paymentTypeId = instance.paymentTypeId;
  521. var paymentSettingType = Bizgaze.Apps.Transact.Enums.PaymentSettingType.MultiplePaymentMode;
  522. instance.fileCacheHelper.loadJsFile("apps/transact/managers/payments/paymentmanager.js", function () {
  523. Bizgaze.Apps.Transact.Managers.PaymentManager.Instance().getAccountSettingByPaymentType(paymentTypeId, paymentSettingType).then(function (response) {
  524. if (response.result != null) {
  525. if (response.result.SettingMode == false) {
  526. $(".AddPaymentMode").addClass('hidden');
  527. $("#div_paymentmode").removeClass('pr-0 pl-0');
  528. $("#div_paymentmode").addClass('col-sm-5');
  529. $("#div_RefDate_Container").removeClass('pr-0 pl-0');
  530. }
  531. else {
  532. $(".AddPaymentMode").removeClass('hidden');
  533. $("#div_paymentmode").addClass('pr-0 pl-0');
  534. $("#div_paymentmode").removeClass('col-sm-5');
  535. $("#div_RefDate_Container").addClass('pr-0 pl-0');
  536. instance.isMultiplePayment = true;
  537. }
  538. $("#txt_TotalCreditAmount").on('keyup', function (evt, id) {
  539. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().loadPaymentSummary();
  540. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().updatePaymentSummary();
  541. Bizgaze.Apps.Transact.Controls.Dues.Instance().clearDues();
  542. });
  543. $(".txtAutoComplete_paymentmodeid").change(function (evt, id) {
  544. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().loadPaymentSummary();
  545. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().updatePaymentSummary();
  546. Bizgaze.Apps.Transact.Controls.Dues.Instance().clearDues();
  547. $(".txtTotalDueAdjusted").val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
  548. $(".totAdjusted").text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
  549. $("#txt_TotalCreditAmount").val();
  550. $("#txt_TotalCreditAmount").parent().removeClass("floating-label-form-group-with-value");
  551. $("#hf_TotalCreditAmount").val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
  552. $(".paymentmodes").remove();
  553. $(".totAmount").text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
  554. $(".totAdvance").text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
  555. $('.totDiscount').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
  556. $('.totPenality').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
  557. $('.totTds').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
  558. });
  559. }
  560. else {
  561. $(".AddPaymentMode").addClass('hidden');
  562. $("#div_paymentmode").removeClass('pr-0 pl-0');
  563. $("#div_paymentmode").addClass('col-sm-5');
  564. $("#div_RefDate_Container").removeClass('pr-0 pl-0');
  565. }
  566. });
  567. });
  568. }
  569. AddPaymentModeListItem(data) {
  570. var instance = this;
  571. $("#divSectionProperties_EnableChequeMode").addClass("hidden");
  572. paymentlistitem += 1;
  573. var paymentTypeId = instance.paymentTypeId;
  574. var paymentModeId = 0;
  575. var paymentModeName = "";
  576. var paymentRefNo = "";
  577. var paymentRefDate = "";
  578. var paymentAmount = 0;
  579. var paymentBankId = 0;
  580. var paymentAccountId = 0;
  581. var paymentAccountName = "";
  582. var paymentBankName = "";
  583. var paymentBranch = "";
  584. var paymentChequeNo = "";
  585. var paymentChequeDate = "";
  586. var paymentJournalEntryId = 0;
  587. if (data.length == 0) {
  588. paymentModeId = Number($("#txtAutoComplete_paymentmodeid").val());
  589. paymentModeName = String($("#txtAutoComplete_paymentmodeid option:selected").text());
  590. paymentRefNo = String($(".section_PaymentModeDetails").find("#txt_RefNo").val());
  591. paymentRefDate = String($("#date_RefDate").val());
  592. paymentAmount = Number(($("#txt_TotalCreditAmount").val()));
  593. paymentBankId = Number($(".hfAutoCompleteId_BankId ").val());
  594. paymentBankName = String($(".txtAutoComplete_BankId option:selected").text());
  595. paymentAccountId = Number($(".txtAutoComplete_paymentaccountid").val());
  596. paymentAccountName = String($(".txtAutoComplete_paymentaccountid option:selected").text());
  597. paymentBranch = String($("#txt_BankBranch").val());
  598. paymentChequeNo = String($("#txt_ChequeNo").val());
  599. paymentChequeDate = String($("#date_ChequeDate").val());
  600. }
  601. else {
  602. var amount = 0;
  603. if (paymentTypeId == Bizgaze.Apps.Transact.Enums.PaymentType.Payment)
  604. amount = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(data.Credit, 2);
  605. else
  606. amount = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(data.Debit, 2);
  607. paymentModeId = data.PaymentModeId;
  608. paymentModeName = data.PaymentModeName;
  609. paymentRefNo = data.EntryRefNo = null ? "NA" : data.EntryRefNo;
  610. paymentRefDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(data.RefDate, "DD/MM/YYYY");
  611. paymentAmount = amount;
  612. paymentBankId = data.BankId;
  613. paymentBankName = data.BankName;
  614. paymentAccountId = data.LedgerId;
  615. paymentAccountName = data.LedgerName;
  616. paymentBranch = data.BankBranch;
  617. paymentChequeNo = data.ChequeNo;
  618. paymentChequeDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(data.ChequeDate, "DD/MM/YYYY");
  619. paymentJournalEntryId = data.JournalEntryId;
  620. }
  621. var canMerge = false;
  622. $(".paymentmodelistitem").each(function () {
  623. if ($(this).find("#hf_PaymentModeId").val() == paymentModeId && $(this).find(".paymentrefno").val() == paymentRefNo) {
  624. if (paymentModeId != Bizgaze.Apps.Transact.Enums.PaymentMode.Cheque) {
  625. var prevAmount = Number($(this).find(".paymentamount").val());
  626. var prevAccount = $(this).find(".paymentAccount").val();
  627. if (prevAccount == paymentAccountId) {
  628. var sum = prevAmount + Number(paymentAmount);
  629. var id = $(this).attr("id");
  630. $(this).find(".paymentamount").val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(sum, 2));
  631. $("." + id).find("#spn_amount").text(sum);
  632. canMerge = true;
  633. var newPayAmount = $(this).find(".paymentamount").val().toString();
  634. $(this).find(".decimal_numerics:first").text(newPayAmount);
  635. }
  636. }
  637. }
  638. if ($(this).find("#hf_PaymentModeId").val() == 2 && $(this).find(".paymentchequeno").val() == paymentChequeNo) {
  639. var prevAmount = Number($(this).find(".paymentamount").val());
  640. var sum = prevAmount + Number(paymentAmount);
  641. var id = $(this).attr("id");
  642. $(this).find(".paymentamount").val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(sum, 2));
  643. $("." + id).find("#spn_amount").text(sum);
  644. canMerge = true;
  645. var newPayAmount = $(this).find(".paymentamount").val().toString();
  646. $(this).find(".decimal_numerics:first").text(newPayAmount);
  647. }
  648. });
  649. if (!canMerge) {
  650. var listhtml = '<li class="list-group-item paymentmodelistitem clearmode" id="li_paymentlistitem_' + paymentlistitem + '">' +
  651. '<input type="hidden" id="hf_PaymentModeId" value=' + paymentModeId + ' />' +
  652. '<input type ="hidden" id="hf_JounralEntryId" value=' + paymentJournalEntryId + ' />' +
  653. '<div class="row">' +
  654. '<div class="col-sm-5 my-auto d-none d-md-block"><u><a id="toggledetails_' + paymentlistitem + '" href="#paymentdetails_' + paymentlistitem + '" data-toggle="collapse" data data-parent="#paymentslist" class="anchor_collapseDetails">' + paymentModeName + '</a></u></div>' +
  655. '<div class="col-xs-5 col-5 my-auto d-md-none"><u><a id="toggledetails_' + paymentlistitem + '" href="#paymentdetails_' + paymentlistitem + '" data-toggle="collapse" data data-parent="#paymentslist" class="anchor_collapseDetails">' + paymentModeName + '</a></u></div>' +
  656. '<div class="col-sm-5 my-auto d-none d-md-block"><span class="strong amount decimal_numerics spn_payment_amount" id=spn_amount_' + paymentlistitem + '>' + paymentAmount + '</span></div>' +
  657. '<div class="col-xs-5 col-5 my-auto d-md-none"><span class="strong amount decimal_numerics" id=spn_amount_' + paymentlistitem + '>' + paymentAmount + '</span></div>' +
  658. '<div class="col-sm-2 my-auto text-right d-none d-md-block"><a href="javascript:;" class="btn btn-icon remove_paymentlistitem text-red" onclick="Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().removeItem(' + paymentlistitem + ')"><i class="fa fa-trash"></i></a></div>' +
  659. '<div class="col-xs-2 col-2 my-auto text-right d-md-none"><a href="javascript:;" class="btn btn-icon remove_paymentlistitem text-red" onclick="Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().removeItem(' + paymentlistitem + ')"><i class="fa fa-trash mt-2 mr-3"></i></a></div>' +
  660. '</div>' +
  661. '<div class="row collapse hideDetails" id="paymentdetails_' + paymentlistitem + '">' +
  662. '<div class="col-sm-12 row pr-0">' +
  663. '<div class="col-sm-3">' +
  664. '<div class="floating-label-form-group">' +
  665. '<label>Amount<span class="text-danger"> *</span></label>' +
  666. '<input type=text id="paymentamount_' + paymentlistitem + '" class="form-control floating-label-control decimal_numerics paymentamount" placeholder="Amount *" data-placeholder="Amount *" data-label="Amount *" value=' + paymentAmount + ' />' +
  667. '</div>' +
  668. '</div>' +
  669. '<div class="col-sm-2">' +
  670. '<div class="floating-label-form-group">' +
  671. '<label>Ref No</label>' +
  672. '<input type=text value="' + paymentRefNo + '" class="form-control floating-label-control paymentrefno" placeholder="Ref No." data-placeholder="Ref No." data-label="Ref No." />' +
  673. '</div>' +
  674. '</div>' +
  675. '<div class="col-sm-3">' +
  676. '<div class="floating-label-form-group">' +
  677. '<label for="" id="">Ref Date</label>' +
  678. '<div class="input-group"><input type="text" id="date_RefDate_' + paymentlistitem + '" class="paymentrefdate_1 form-control value-control datepicker-input hasDatepicker floating-label-control paymentrefdate" data-propertyname="" data-isdynamic="true" data-propdoctypename="" data-required="" data-regularexp="" data-validatemsg="" placeholder="Ref Date" data-placeholder="" data-label=" Ref Date" /><span class="input-group-addon mt-10"><i class="fa fa-calendar"></i></span></div>' +
  679. '</div>' +
  680. '</div>' +
  681. '<div class="col-sm-4 pr-0">' +
  682. '<div class="floating-label-form-group floating-label-form-group-with-value" style="border-bottom:0px;border-left:0px">' +
  683. '<label>Account<span class="text-danger"> *</span></label>' +
  684. '<input type="hidden" id="hf_AccountId_' + paymentlistitem + '" class="hfAccountId" value=' + paymentAccountId + ' />' +
  685. '<select id="paymentAccount_' + paymentlistitem + '" type="text" class="paymentAccount form-control text-control select2-hidden-accessible floating-label-control" style="width:100%;" value=' + paymentAccountName + ' ></select>' +
  686. '</div></div>' +
  687. '</div>';
  688. if (paymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Cheque) {
  689. listhtml += '<div class="col-sm-12 row">' +
  690. '<div class="col-sm-6">' +
  691. '<div class="floating-label-form-group floating-label-form-group-with-value" style="border-bottom:0px;border-left:0px">' +
  692. '<label>Bank<span class="text-danger"> *</span></label>' +
  693. '<input type="hidden" id="hf_BankId_' + paymentlistitem + '" class="hfBankId" value=' + paymentBankId + ' />' +
  694. '<select id="paymentBank_' + paymentlistitem + '" type="text" class="paymentBank form-control text-control select2-hidden-accessible floating-label-control" style="width:100%;" value=' + paymentBankName + ' ></select>' +
  695. '</div>' +
  696. '</div>' +
  697. '<div class="col-sm-6">' +
  698. '<div class="floating-label-form-group">' +
  699. '<label>Branch<span class="text-danger"> *</span></label>' +
  700. '<input type=text id="paymentBranch_' + paymentlistitem + '" class="form-control floating-label-control paymentbranch" value="' + paymentBranch + '" placeholder="Branch" data-placeholder="Branch" data-label="Branch" />' +
  701. '</div>' +
  702. '</div>' +
  703. '<div class="col-sm-6">' +
  704. '<div class="floating-label-form-group floating-label-form-group-with-value">' +
  705. '<label for="" id="">Cheque Date<span class="text-danger"> *</span></label>' +
  706. '<div class="input-group"><input type="text" id="paymentChequeDate_' + paymentlistitem + '" class="form-control value-control datepicker-input paymentchequedate" data-propertyname="" data-isdynamic="true" data-propdoctypename="" data-required="" data-regularexp="" data-validatemsg="" placeholder="Cheque Date" data-placeholder="Cheque Date" data-label="Cheque Date" /><span class="input-group-addon mt-10"><i class="fa fa-calendar"></i></span></div>' +
  707. '</div>' +
  708. '</div>' +
  709. '<div class="col-sm-6">' +
  710. '<div class="floating-label-form-group">' +
  711. '<label>Cheque No.<span class="text-danger"> *</span></label>' +
  712. '<input type=text id="paymentChequeNo_' + paymentlistitem + '" class="form-control floating-label-control paymentchequeno" value=' + paymentChequeNo + ' placeholder="Cheque No." data-placeholder="Cheque No." data-label="Cheque No." />' +
  713. '</div>' +
  714. '</div>' +
  715. '</div>';
  716. }
  717. listhtml += '</div>' +
  718. '</li>';
  719. $(".paymentmodelistitem:last").after(listhtml);
  720. $("#date_RefDate_" + paymentlistitem).val($("#date_RefDate").val());
  721. $("#paymentChequeDate_" + paymentlistitem).val($("#date_ChequeDate").val());
  722. $("#date_RefDate_" + paymentlistitem).daterangepicker({
  723. locale: {
  724. format: 'DD/MM/YYYY',
  725. },
  726. singleDatePicker: true,
  727. showDropdowns: true,
  728. minYear: 1901,
  729. maxDate: new Date(2050, 11, 31)
  730. });
  731. $("#date_RefDate_" + paymentlistitem).parents(".floating-label-form-group").addClass("floating-label-form-group-with-value");
  732. $("#paymentChequeDate_" + paymentlistitem).daterangepicker({
  733. locale: {
  734. format: 'DD/MM/YYYY',
  735. },
  736. singleDatePicker: true,
  737. showDropdowns: true,
  738. minYear: 1901,
  739. maxDate: new Date(2050, 11, 31)
  740. });
  741. $("#paymentChequeDate_" + paymentlistitem).parents(".floating-label-form-group").addClass("floating-label-form-group-with-value");
  742. if (paymentRefDate != "Invalid date" && paymentRefDate != "01/01/1901" && paymentRefDate != "01/01/1900" && paymentRefDate != "01/01/2001" && paymentRefDate != "01/01/0001") {
  743. $("#date_RefDate_" + paymentlistitem).val(paymentRefDate);
  744. }
  745. if (paymentChequeDate != "Invalid date" && paymentChequeDate != "01/01/1901" && paymentChequeDate != "01/01/1900" && paymentChequeDate != "01/01/2001" && paymentChequeDate != "01/01/0001") {
  746. $("#paymentChequeDate_" + paymentlistitem).val(paymentChequeDate);
  747. }
  748. if (paymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Cheque) {
  749. var selectedbank = new Option(paymentBankName, paymentBankId.toString(), true, true);
  750. $("#paymentBank_" + paymentlistitem).append(selectedbank).trigger("change");
  751. }
  752. var selectedAccount = new Option(paymentAccountName, paymentAccountId.toString(), true, true);
  753. $("#paymentAccount_" + paymentlistitem).append(selectedAccount).trigger("change");
  754. }
  755. var paymentmethodid = 0;
  756. if (paymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Cash) {
  757. paymentmethodid = 1;
  758. }
  759. else if (paymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Cheque || paymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Online || paymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Neft || paymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Rtgs || paymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.FundTransfer || paymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Upi) {
  760. paymentmethodid = 2;
  761. }
  762. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().loadBanks(paymentmethodid, paymentlistitem);
  763. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().loadAccounts(paymentlistitem);
  764. var selectedBank = new Option(paymentBankName, paymentBankId.toString(), true);
  765. $('#paymentBank_' + paymentlistitem + '').append(selectedBank).trigger("change");
  766. $(".paymentamount").on('keyup', function (evt, id) {
  767. var curVal = $(this).val();
  768. $(this).closest(".paymentmodelistitem").find(".spn_payment_amount").text(curVal.toString());
  769. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().loadPaymentSummary();
  770. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().updatePaymentSummary();
  771. Bizgaze.Apps.Transact.Controls.Dues.Instance().clearDues();
  772. });
  773. $('.decimal_numerics').on('paste', function (event) {
  774. var orgEvent = event.originalEvent;
  775. if (orgEvent.clipboardData.getData('Text').match(/[^\d]/)) {
  776. event.preventDefault();
  777. }
  778. });
  779. $(".decimal_numerics").keypress(function (key) {
  780. if (key.charCode < 46 || key.charCode > 58)
  781. return false;
  782. });
  783. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().clearPayment();
  784. eval('_floatingLabelHelper.init()');
  785. }
  786. loadBanks(paymentmethodId, listitem) {
  787. var url = _appsettings.server_url() + '/apis/v4/bizgaze/transact/payments/paymentbanksautcomplete';
  788. AutoCompleteHelper.getHelper().Create("#paymentBank_" + listitem + "", "#hf_BankId_" + listitem + "", url, null);
  789. }
  790. loadAccounts(listitem) {
  791. var url = _appsettings.server_url() + '/apis/v4/bizgaze/transact/ledgers/accounttypeledgersautocompleteasync';
  792. AutoCompleteHelper.getHelper().Create("#paymentAccount_" + listitem + "", "#hf_AccountId_" + listitem + "", url, null);
  793. $("#paymentAccount_" + listitem).on('select2:select', function (e) {
  794. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().loadForm(listitem);
  795. });
  796. }
  797. loadForm(listitem) {
  798. var accountId = 0;
  799. var accountName = "";
  800. var controlId = "";
  801. var hiddenFieldControlId = "";
  802. accountId = Number($("#paymentAccount_" + listitem).find("option:selected").val());
  803. accountName = $("#paymentAccount_" + listitem).find("option:selected").text().trim();
  804. controlId = "#paymentAccount_" + listitem;
  805. hiddenFieldControlId = "#hf_AccountId_" + listitem;
  806. if (accountId == 0)
  807. accountName = "Select Account";
  808. if (accountId == 1 || accountId == -1)
  809. accountName = "Create New";
  810. if (accountName == "Create New") {
  811. $("#paymentAccount_").val(null).trigger("change");
  812. var FormUniqueId = "Bizgaze_Extension_Transact_Ledgers_App_Ledgers_CreateForm";
  813. var AppConfigurationUnique = "Bizgaze_Extension_Transact_Ledgers_AppConfiguration_CreateLedgers";
  814. Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId(FormUniqueId).then(function (response) {
  815. var obj = {
  816. controlid: controlId,
  817. hiddenid: hiddenFieldControlId
  818. };
  819. var successobj = {
  820. CallBack: function (id, obj) {
  821. Bizgaze.Apps.Transact.Managers.LedgerManager.Instance().getLedgerById(id).then(function (response) {
  822. var createdLedger = new Option(response.result.LedgerName, response.result.LedgerId, true);
  823. $(obj.controlid + " option").remove();
  824. $(obj.controlid).append(createdLedger).trigger('change');
  825. $(obj.hiddenid).val(response.result.LedgerId);
  826. $(obj.controlid).parents("#paymentdetails_").find('.hfAccountId').val(response.result.LedgerId);
  827. });
  828. },
  829. Parameters: obj,
  830. };
  831. var formviewerObj = {
  832. FormId: response.result.FormId,
  833. AppConfigurationId: 0,
  834. Pk_Value: 0,
  835. PortletWidgetId: 0,
  836. OnSuccess: successobj,
  837. OnFail: null,
  838. OnLoad: null,
  839. };
  840. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/transact/managers/ledgers/ledgermanager.js", function () {
  841. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("platform/forms/components/formviewer/formviewer.js", function () {
  842. Unibase.Platform.Forms.Components.FormViewer.instance.init(formviewerObj);
  843. setTimeout(function () {
  844. $("#btn_CloseForm_" + response.result.FormId).click(function () {
  845. $("#paymentAccount_").val(null).trigger("change");
  846. });
  847. }, 1000);
  848. });
  849. });
  850. });
  851. }
  852. }
  853. updateMultiplePaymentTotal() {
  854. var total = 0;
  855. var prevamount = 0;
  856. $(".paymentmodelistitem").each(function () {
  857. if (!($(this).hasClass("hidden"))) {
  858. var amount = Number($(this).find('.paymentamount').val());
  859. $(this).find('.amount').text(amount);
  860. total = Number(prevamount) + Number(amount);
  861. prevamount = total;
  862. }
  863. });
  864. $("#hf_paymentAmount").val(total);
  865. $(".totAmount").html(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(total, 2));
  866. }
  867. clearPayment() {
  868. var instance = this;
  869. $('#txtAutoComplete_paymentmodeid').val(0);
  870. $('#txtAutoComplete_paymentmodeid').text('');
  871. $('#date_RefDate').val('');
  872. $('#txt_TotalCreditAmount').val('');
  873. $(".section_PaymentModeDetails").find("#txt_RefNo").val('');
  874. $(".txtAutoComplete_BankId").empty();
  875. $("#txt_BankBranch").val('');
  876. $("#txt_ChequeNo").val('');
  877. $('#date_ChequeDate').val('');
  878. $('.hfAutoCompleteId_BankId').val(0);
  879. $("#div_BankId").addClass('hidden');
  880. $("#div_BankBranch").addClass('hidden');
  881. $("#div_ChequeDate").addClass('hidden');
  882. $("#div_ChequeNo").addClass('hidden');
  883. $("#date_ChequeDate").daterangepicker({
  884. locale: {
  885. format: 'DD/MM/YYYY',
  886. },
  887. singleDatePicker: true,
  888. showDropdowns: true,
  889. minYear: 1901,
  890. maxDate: new Date(2050, 11, 31)
  891. });
  892. $(".dateselect_1").daterangepicker({
  893. locale: {
  894. format: 'DD/MM/YYYY',
  895. },
  896. singleDatePicker: true,
  897. showDropdowns: true,
  898. minYear: 1901,
  899. maxDate: new Date(2050, 11, 31)
  900. });
  901. $("#div_ChequeNo").removeClass("floating-label-form-group-with-value");
  902. $("#div_BankBranch").removeClass("floating-label-form-group-with-value");
  903. $("#div_Credit").removeClass("floating-label-form-group-with-value");
  904. $("#div_RefNo").removeClass("floating-label-form-group-with-value");
  905. $(".txtAutoComplete_paymentaccountid").val(null).trigger("change");
  906. if (instance.isMultiplePayment) {
  907. $(".txtAutoComplete_paymentaccountid").val(null).trigger("change");
  908. }
  909. }
  910. removeItem(number) {
  911. var instance = this;
  912. var amount = $("#li_paymentlistitem_" + number).find(".paymentamount").val();
  913. var totalamount = $("#hf_paymentAmount").val();
  914. var revisedamount = Number(totalamount) - Number(amount);
  915. $("#hf_paymentAmount").val(revisedamount);
  916. $(".totAmount").html(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(revisedamount, 2));
  917. $("#li_paymentlistitem_" + number).remove();
  918. $("#paymentsummaryItem_" + number).remove();
  919. if ($("#paymentslist .paymentmodelistitem").length < 2) {
  920. $("#div_payments").addClass("hidden");
  921. $("#divSectionProperties_EnableChequeMode").removeClass("hidden");
  922. }
  923. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().loadPaymentSummary();
  924. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().updatePaymentSummary();
  925. Bizgaze.Apps.Transact.Controls.Dues.Instance().clearDues();
  926. }
  927. updatePayment() {
  928. }
  929. bindMultiplepayments(payments) {
  930. for (var i = 0; i < payments.length; i++) {
  931. var myArrayNew = payments[i];
  932. var data = myArrayNew;
  933. if (i == 0) {
  934. var selectedAccount = new Option(data.LedgerName, data.LedgerId.toString(), true);
  935. $(".txtAutoComplete_paymentaccountid").append(selectedAccount).trigger("change");
  936. }
  937. if (data.ContactId == 0 && data.PaymentModeId != Bizgaze.Apps.Transact.Enums.PaymentMode.None) {
  938. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().AddPaymentModeListItem(myArrayNew);
  939. $("#div_payments").removeClass("hidden");
  940. }
  941. }
  942. }
  943. getobj() {
  944. var instance = this;
  945. var payments = [];
  946. var total = 0;
  947. var discountAccountId = Number($("#txtAutoComplete_DiscountAccount").val());
  948. var penalityAccountId = Number($("#txtAutoComplete_PenalityAccount").val());
  949. var tDSAccountId = Number($("#txtAutoComplete_TDSAccount").val());
  950. var flag = 0;
  951. var currentToggleId = "";
  952. $(".paymentmodelistitem").each(function () {
  953. if (!($(this).hasClass("hidden"))) {
  954. currentToggleId = $(this).find(".anchor_collapseDetails").attr("id");
  955. var paymentModeId = Number($(this).find("#hf_PaymentModeId").val());
  956. var accountId = Number($(this).find(".paymentAccount").val());
  957. var paymentAmount = Number($(this).find('.paymentamount').val());
  958. if ((paymentAmount == 0 || isNaN(paymentAmount)) && paymentModeId != Bizgaze.Apps.Transact.Enums.PaymentMode.Adjustment) {
  959. flag = 1;
  960. $(this).find('.paymentamount').addClass("required");
  961. var paymentAmountInputId = $(this).find('.paymentamount').attr("id");
  962. Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(paymentAmountInputId);
  963. $(this).find('.paymentamount').removeClass("required");
  964. }
  965. if (accountId == 0 || isNaN(accountId)) {
  966. flag = 1;
  967. }
  968. total += paymentAmount;
  969. var refNo = String($(this).find(".paymentrefno").val());
  970. var chequeNo = String($(this).find(".paymentchequeno").val());
  971. var refDate = String($(this).find(".paymentrefdate").val());
  972. var chequeDate = String($(this).find(".paymentchequedate").val());
  973. var refDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDate(refDate);
  974. var chequeDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDate(chequeDate);
  975. if (paymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Cheque) {
  976. var bankId = Number($(this).find(".hfBankId").val());
  977. }
  978. else {
  979. bankId = 0;
  980. }
  981. var bankBranch = String($(this).find(".paymentbranch").val());
  982. var amount = Number(($(this).find('.paymentamount').val()));
  983. var jounrnalEntryId = Number($(this).find("#hf_JounralEntryId").val());
  984. refDate = moment(refDate).format('YYYY-MM-DD');
  985. chequeDate = moment(chequeDate).format('YYYY-MM-DD');
  986. if (chequeDate == "Invalid date") {
  987. chequeDate = "0001-01-01";
  988. }
  989. if (refDate == "Invalid date") {
  990. refDate = "0001-01-01";
  991. }
  992. if (chequeNo == "" || chequeNo == "undefined") {
  993. chequeNo = "";
  994. }
  995. if (isNaN(jounrnalEntryId)) {
  996. jounrnalEntryId = 0;
  997. }
  998. if (bankBranch == "undefined") {
  999. bankBranch = "";
  1000. }
  1001. if (paymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Cheque) {
  1002. if (bankId == 0 || bankId == undefined || bankId == null) {
  1003. flag = 1;
  1004. $(this).find(".paymentBank").addClass("required");
  1005. var paymentBankInputId = $(this).find('.paymentBank').attr("id");
  1006. Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(paymentBankInputId);
  1007. $(this).find(".paymentBank").removeClass("required");
  1008. }
  1009. if (bankBranch == "" || bankBranch == undefined || bankBranch == null) {
  1010. flag = 1;
  1011. $(this).find(".paymentbranch").addClass("required");
  1012. var paymentBranchInputId = $(this).find('.paymentbranch').attr("id");
  1013. Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(paymentBranchInputId);
  1014. $(this).find(".paymentbranch").removeClass("required");
  1015. }
  1016. if (chequeDate == "0001-01-01" || chequeDate == undefined || chequeDate == null || chequeDate == "") {
  1017. flag = 1;
  1018. $(this).find(".paymentchequedate").addClass("required");
  1019. var paymentChqDateInputId = $(this).find('.paymentchequedate').attr("id");
  1020. Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(paymentChqDateInputId);
  1021. $(this).find(".paymentchequedate").removeClass("required");
  1022. }
  1023. if (chequeNo == "" || chequeNo == "undefined" || chequeNo == null || chequeNo == undefined) {
  1024. flag = 1;
  1025. $(this).find(".paymentchequeno").addClass("required");
  1026. var paymentChqNoInputId = $(this).find('.paymentchequeno').attr("id");
  1027. Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(paymentChqNoInputId);
  1028. $(this).find(".paymentchequeno").removeClass("required");
  1029. }
  1030. }
  1031. payments.push({ PaymentModeId: paymentModeId, RefNo: refNo, LedgerId: accountId, RefDate: refDate, ChequeNo: chequeNo, ChequeDate: chequeDate, BankId: bankId, BankBranch: bankBranch, PaymentAmount: amount, JournalEntryId: jounrnalEntryId, DiscountAccountId: discountAccountId, PenalityAccountId: penalityAccountId, TDSAccountId: tDSAccountId });
  1032. }
  1033. else {
  1034. var validationResult = instance.showErrorForPaymentModeControl();
  1035. if (!validationResult) {
  1036. flag = 1;
  1037. }
  1038. }
  1039. if (flag == 1) {
  1040. return false;
  1041. }
  1042. });
  1043. if (flag == 1) {
  1044. $(".anchor_collapseDetails").not("#" + currentToggleId).each(function () {
  1045. var isExp = $(this).attr("aria-expanded");
  1046. if (isExp == "true") {
  1047. $(this).click();
  1048. }
  1049. });
  1050. var isExpanded = $("#" + currentToggleId).attr("aria-expanded");
  1051. if (isExpanded == "false") {
  1052. $("#" + currentToggleId).click();
  1053. }
  1054. Unibase.Platform.Forms.Components.FormViewer.Instance().showError("Mandatory fields are missing");
  1055. return false;
  1056. }
  1057. if (payments.length >= 1) {
  1058. $("#txt_TotalCreditAmount").removeClass("required");
  1059. return payments;
  1060. }
  1061. if (payments.length == 0) {
  1062. total += ($(this).find('.paymentamount').val(), 2);
  1063. var paymentModeId = Number($("#txtAutoComplete_paymentmodeid").val());
  1064. var refNo = String($(".section_PaymentModeDetails").find("#txt_RefNo").val().toString());
  1065. var refDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDate($("#date_RefDate").val());
  1066. var chequeDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDate($("#date_ChequeDate").val());
  1067. var chequeNo = String($("#txt_ChequeNo").val());
  1068. var accountId = Number($(".txtAutoComplete_paymentaccountid").val());
  1069. if (paymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Cheque) {
  1070. var bankId = Number($(".hfAutoCompleteId_BankId ").val());
  1071. }
  1072. else {
  1073. bankId = 0;
  1074. }
  1075. var bankBranch = String($("#txt_BankBranch").val());
  1076. var amount = Number(($("#txt_TotalCreditAmount").val()));
  1077. var jounrnalEntryId = Number($(this).find("#hf_JounralEntryId").val());
  1078. refDate = moment(refDate).format('YYYY-MM-DD');
  1079. chequeDate = moment(chequeDate).format('YYYY-MM-DD');
  1080. if (chequeDate == "Invalid date") {
  1081. chequeDate = "0001-01-01";
  1082. }
  1083. refDate = moment(refDate).format('YYYY-MM-DD');
  1084. if (refDate == "Invalid date") {
  1085. refDate = "0001-01-01";
  1086. }
  1087. if (chequeNo == "" || chequeNo == "undefined") {
  1088. chequeNo = "";
  1089. }
  1090. if (isNaN(jounrnalEntryId)) {
  1091. jounrnalEntryId = 0;
  1092. }
  1093. if (bankBranch == "undefined") {
  1094. bankBranch = "";
  1095. }
  1096. payments.push({ PaymentModeId: paymentModeId, RefNo: refNo, LedgerId: accountId, RefDate: refDate, ChequeNo: chequeNo, ChequeDate: chequeDate, BankId: bankId, BankBranch: bankBranch, PaymentAmount: amount, JournalEntryId: jounrnalEntryId, DiscountAccountId: discountAccountId, PenalityAccountId: penalityAccountId, TDSAccountId: tDSAccountId });
  1097. }
  1098. return payments;
  1099. }
  1100. loadControlSettings(controlsettingjson, formpropertyid) {
  1101. return ``;
  1102. }
  1103. loadPropertySettings(propertysettings, formpropertyid) {
  1104. if (propertysettings != null) {
  1105. for (var i = 0; i < propertysettings.length; i++) {
  1106. var data = propertysettings[i];
  1107. if (data.ControlPropertyName == "ControlType" && data.ControlPropertyValue != "") {
  1108. $("#hdn_" + formpropertyid).attr("ControlType", data.ControlPropertyValue);
  1109. $("#hdn_" + formpropertyid).val(data.ControlPropertyValue);
  1110. }
  1111. }
  1112. }
  1113. }
  1114. showErrorForPaymentModeControl() {
  1115. if ($("#paymentslist .paymentmodelistitem").length < 2) {
  1116. var paymentModeId = Number($("#txtAutoComplete_paymentmodeid").val());
  1117. var paymentAccountIdAttr = $(".txtAutoComplete_paymentaccountid").attr("id");
  1118. $("#txtAutoComplete_paymentmodeid").addClass("required");
  1119. $(".txtAutoComplete_paymentaccountid").addClass("required");
  1120. var chequeValidation = true;
  1121. if (paymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Cheque) {
  1122. $("#txtAutoComplete_BankId").addClass('required');
  1123. $("#txt_BankBranch").addClass('required');
  1124. $("#date_ChequeDate").addClass('required');
  1125. $("#txt_ChequeNo").addClass('required');
  1126. var bankValidation = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation("txtAutoComplete_BankId");
  1127. var bankBranchValidation = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation("txt_BankBranch");
  1128. var chequeDateValidation = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation("date_ChequeDate");
  1129. var chequeNoValidation = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation("txt_ChequeNo");
  1130. if (bankValidation == false || bankBranchValidation == false || chequeDateValidation == false || chequeNoValidation == false) {
  1131. chequeValidation = false;
  1132. }
  1133. $("#txtAutoComplete_BankId").removeClass('required');
  1134. $("#txt_BankBranch").removeClass('required');
  1135. $("#date_ChequeDate").removeClass('required');
  1136. $("#txt_ChequeNo").removeClass('required');
  1137. }
  1138. var amountValidation = true;
  1139. if (paymentModeId != Bizgaze.Apps.Transact.Enums.PaymentMode.Adjustment) {
  1140. $("#txt_TotalCreditAmount").addClass("required");
  1141. amountValidation = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation("txt_TotalCreditAmount");
  1142. $("#txt_TotalCreditAmount").removeClass("required");
  1143. }
  1144. var accountValidation = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(paymentAccountIdAttr);
  1145. var modeValidation = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation("txtAutoComplete_paymentmodeid");
  1146. $("#txtAutoComplete_paymentmodeid").removeClass("required");
  1147. $(".txtAutoComplete_paymentaccountid").removeClass("required");
  1148. if (accountValidation == false || modeValidation == false || amountValidation == false || chequeValidation == false) {
  1149. Unibase.Platform.Forms.Components.FormViewer.Instance().showError("Mandatory fields are missing");
  1150. return false;
  1151. }
  1152. else {
  1153. return true;
  1154. }
  1155. }
  1156. else {
  1157. return true;
  1158. }
  1159. }
  1160. bindEditFormDetails(formpropertyid, propval, DocPropertyName) {
  1161. var instance = this;
  1162. var paymentid = Number(propval);
  1163. if (propval != 0 || !isNaN(propval)) {
  1164. var totWallet = 0;
  1165. Bizgaze.Apps.Transact.Managers.PaymentManager.Instance().getpayment(paymentid).then(function (response) {
  1166. var listhtml = "";
  1167. var result = response.result;
  1168. var accountsObj = {
  1169. DiscountAccountId: result.DiscountAccountId,
  1170. PenalityAccountId: result.PenalityAccountId,
  1171. TDSAccountId: result.TDSAccountId,
  1172. DiscountAccountName: result.DiscountAccountName,
  1173. PenalityAccountName: result.PenalityAccountName,
  1174. TDSAccountName: result.TDSAccountName,
  1175. };
  1176. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().bindAccounts(accountsObj);
  1177. totWallet = response.result.DueAdjustedAmount;
  1178. if (response.result.PaymentModeId != Bizgaze.Apps.Transact.Enums.PaymentMode.MultiplePayments) {
  1179. for (var i = 0; i < response.result.Payments.length; i++) {
  1180. var data = response.result.Payments[i];
  1181. var paymentType = response.result.PaymentTypeId;
  1182. instance.paymentTypeId = paymentType;
  1183. var hasAmountValue = (paymentType == Bizgaze.Apps.Transact.Enums.PaymentType.Receipt) ?
  1184. data.Debit : data.Credit;
  1185. if (hasAmountValue != 0 && data.PaymentModeId != Bizgaze.Apps.Transact.Enums.PaymentMode.None) {
  1186. if (data.PaymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Cheque) {
  1187. $("#divSectionProperties_EnableChequeMode").addClass("hidden");
  1188. instance.enableChequeMode(true, false, true);
  1189. $("#div_BankId").removeClass('hidden');
  1190. $("#div_BankBranch").removeClass('hidden');
  1191. $("#div_ChequeDate").removeClass('hidden');
  1192. $("#div_ChequeNo").removeClass('hidden');
  1193. $("#txt_RefNo").val(data.EntryRefNo);
  1194. $("#txt_ChequeNo").val(data.ChequeNo);
  1195. var selectedBank = new Option(data.BankName, data.BankId.toString(), true);
  1196. $(".txtAutoComplete_BankId").append(selectedBank);
  1197. var paymentmode = new Option(data.PaymentModeName, data.PaymentModeId.toString(), true);
  1198. $(".txtAutoComplete_paymentmodeid").append(paymentmode);
  1199. $("#txt_BankBranch").val(data.BankBranch);
  1200. var refdate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(data.RefDate, "DD/MM/YYYY");
  1201. var ChequeDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(data.ChequeDate, "DD/MM/YYYY");
  1202. if (refdate == "01/01/0001") {
  1203. var strDate = $.datepicker.formatDate('dd/mm/yy', new Date());
  1204. $('#date_RefDate').val(strDate);
  1205. }
  1206. else {
  1207. $('#date_RefDate').val(refdate);
  1208. }
  1209. $('#date_ChequeDate').val(ChequeDate);
  1210. $('#txt_TotalCreditAmount').val(hasAmountValue);
  1211. $("#txt_TotalCreditAmount").attr("placeholder", "Amount");
  1212. $("#txt_TotalCreditAmount").data("label", "Amount");
  1213. $("#lbl_Credit").find("#spnIsRequired").removeClass("hidden");
  1214. }
  1215. else {
  1216. $("#div_BankId").addClass('hidden');
  1217. $("#div_BankBranch").addClass('hidden');
  1218. $("#div_ChequeDate").addClass('hidden');
  1219. $("#div_ChequeNo").addClass('hidden');
  1220. var stage = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith('_stageshortcode')).Value;
  1221. if (stage == "CNF") {
  1222. $("#txtAutoComplete_paymentmodeid").prop("disabled", true);
  1223. }
  1224. else {
  1225. $("#txtAutoComplete_paymentmodeid").prop("disabled", false);
  1226. }
  1227. var refdate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(data.RefDate, "DD/MM/YYYY");
  1228. $('#date_RefDate').val(refdate);
  1229. $('#txt_TotalCreditAmount').val(hasAmountValue);
  1230. $("#txt_RefNo").val(response.result.RefNo);
  1231. var paymentmode = new Option(data.PaymentModeName, data.PaymentModeId.toString(), true);
  1232. $(".txtAutoComplete_paymentmodeid").append(paymentmode);
  1233. }
  1234. }
  1235. if (data.PaymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Adjustment) {
  1236. $("#div_BankId").addClass('hidden');
  1237. $("#div_BankBranch").addClass('hidden');
  1238. $("#div_ChequeDate").addClass('hidden');
  1239. $("#div_ChequeNo").addClass('hidden');
  1240. var refdate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(data.RefDate, "DD/MM/YYYY");
  1241. $('#date_RefDate').val(refdate);
  1242. $('#txt_TotalCreditAmount').val(hasAmountValue);
  1243. $("#txt_TotalCreditAmount").attr("placeholder", "Amount");
  1244. $("#txt_TotalCreditAmount").data("label", "Amount");
  1245. $("#lbl_Credit").find("#spnIsRequired").addClass("hidden");
  1246. $("#txt_RefNo").val(data.EntryRefNo);
  1247. var paymentmode = new Option(data.PaymentModeName, data.PaymentModeId.toString(), true);
  1248. $(".txtAutoComplete_paymentmodeid").append(paymentmode);
  1249. }
  1250. }
  1251. var totalAmt = Number($("#txt_TotalCreditAmount").val());
  1252. $("#hf_TotalCreditAmount").val(totalAmt);
  1253. }
  1254. else {
  1255. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().bindMultiplepayments(response.result.Payments);
  1256. $("#div_payments").removeClass("hidden");
  1257. }
  1258. }).then(function () {
  1259. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().updatePaymentSummary();
  1260. eval('_floatingLabelHelper.init()');
  1261. });
  1262. }
  1263. }
  1264. deletePayment(appName) {
  1265. var instance = this;
  1266. var paymentId = 0;
  1267. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length != 0) {
  1268. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  1269. var paymentId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_pk_id").Value);
  1270. if (paymentId != 0 && paymentId != null && paymentId != undefined) {
  1271. bootbox.confirm("Are you sure you want delete this " + appName + " ?", function (result) {
  1272. if (result == true) {
  1273. instance.fileCacheHelper.loadJsFile("apps/transact/managers/payments/paymentmanager.js", function () {
  1274. Bizgaze.Apps.Transact.Managers.PaymentManager.Instance().deletePayment(paymentId).then(function (response) {
  1275. if (response.status != Unibase.Data.Status.Error) {
  1276. Unibase.Platform.Helpers.NavigationHelper.Instance().loadList(Unibase.Themes.Providers.DetailHelper.installedAppId, null);
  1277. }
  1278. });
  1279. });
  1280. }
  1281. });
  1282. }
  1283. }
  1284. }
  1285. printPayment() {
  1286. var instance = this;
  1287. if ($(".printsetting").length != 0) {
  1288. var printhtml = $(".printsetting")[0].outerHTML;
  1289. $(".printsetting").remove();
  1290. $("#div_App_DefaultWidgetSettings").find(".row").append(printhtml);
  1291. $(".printsetting").find(".pull-right").removeClass("pull-right");
  1292. }
  1293. let detailContainer = "#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  1294. var stage = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith('_stageshortcode')).Value;
  1295. if (stage == "VD") {
  1296. $(detailContainer).find('.layout-details-stages').addClass('d-none');
  1297. }
  1298. $(detailContainer).find('.DetailSetting_' + Unibase.Themes.Providers.DetailHelper.installedAppId + '_Print').html('<span><i class=\"fa fa-print\"></i></span>');
  1299. $(detailContainer).find('.DetailSetting_' + Unibase.Themes.Providers.DetailHelper.installedAppId + '_Print').click(function () {
  1300. var paymentId = Unibase.Themes.Providers.DetailHelper.recordId;
  1301. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/transact/managers/payments/paymentmanager.js", function () {
  1302. Bizgaze.Apps.Transact.Managers.PaymentManager.Instance().paymentPrint(paymentId).then(function (response) {
  1303. var result = response.result;
  1304. if (isMobileApp()) {
  1305. Unibase.Platform.Helpers.MobileHelper.Instance().previewHtml(result.PrintHTML);
  1306. }
  1307. else {
  1308. instance.printPopup(result.PrintHTML);
  1309. }
  1310. });
  1311. });
  1312. });
  1313. }
  1314. printPopup(data) {
  1315. var mywindow = window.open('', 'my Print', 'height=400,width=850');
  1316. var content = '<html><head><title>Print</title><link rel="stylesheet" href="lib/bizgaze/print.css" /><link rel="stylesheet" href="lib/bootstrap/bootstrap-theme.min.css" /></head><body>';
  1317. content += data;
  1318. content += "<script>print();</script>";
  1319. content += '</body></html>';
  1320. mywindow.document.write(content);
  1321. return true;
  1322. }
  1323. RefreshReportsAndWidgets(Portletwidgetid, cid, paymentid) {
  1324. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getPortletWidget(Portletwidgetid).then(function (widresponse) {
  1325. if (widresponse.result != null) {
  1326. var WidgetID = Number(widresponse.result.WidgetId);
  1327. var portletwidgetid = Number(widresponse.result.PortletWidgetId);
  1328. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/transact/components/bankreconciliation/findandmatchreconciliation.js", function () {
  1329. Bizgaze.Apps.Transact.Components.FindandMatch.Instance().linkReport(WidgetID, portletwidgetid, cid, paymentid);
  1330. });
  1331. }
  1332. });
  1333. }
  1334. ApproveStatus(REFstatusid) {
  1335. var instance = this;
  1336. var postdata = [];
  1337. var PaymentModeId = 0;
  1338. $(".form-check-input:checked").each(function () {
  1339. PaymentModeId = Number($(this).attr("data-property"));
  1340. if (PaymentModeId == 2) {
  1341. REFstatusid = 3;
  1342. }
  1343. postdata.push({
  1344. PaymentId: Number($(this).attr("id")),
  1345. PaymentTypeId: Number($(this).attr("value")),
  1346. PaymentModeId: REFstatusid,
  1347. });
  1348. });
  1349. if (postdata.length == 0) {
  1350. bootbox.confirm("Please Select Atleast One Account", function (result) { });
  1351. }
  1352. else if (postdata.length > 0) {
  1353. bootbox.confirm("Are you sure you want Change Status ?", function (result) {
  1354. if (result == true) {
  1355. instance.fileCacheHelper.loadJsFile("apps/transact/managers/payments/paymentmanager.js", function () {
  1356. Bizgaze.Apps.Transact.Managers.PaymentManager.Instance().changestatus(postdata).then(function (response) {
  1357. if (response.status != Unibase.Data.Status.Error) {
  1358. MessageHelper.Instance().showSuccess(response.message, 'StageChange_errormsg');
  1359. $('._bizgaze_popup_container').modal('hide');
  1360. var detail_instance = Unibase.Themes.Compact.Components.Details.Instance();
  1361. var containerid = $("._bizgaze_detail_container:visible").attr("id");
  1362. var _installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  1363. var portletid = Number($('#' + containerid).find('#hf_DashboardPortletId').val());
  1364. var portletName = $('#' + containerid).find('#hf_DashboardPortletName').val().toString();
  1365. Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(portletid, portletName);
  1366. }
  1367. else {
  1368. MessageHelper.Instance().showError(response.message, 'StageChange_errormsg');
  1369. }
  1370. });
  1371. });
  1372. }
  1373. });
  1374. }
  1375. }
  1376. static Instance() {
  1377. if (this.instance === undefined) {
  1378. this.instance = new PaymentMode();
  1379. }
  1380. return this.instance;
  1381. }
  1382. }
  1383. Controls.PaymentMode = PaymentMode;
  1384. })(Controls = Transact.Controls || (Transact.Controls = {}));
  1385. })(Transact = Apps.Transact || (Apps.Transact = {}));
  1386. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  1387. })(Bizgaze || (Bizgaze = {}));