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 110KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390
  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. Bizgaze.Apps.Transact.Controls.Dues.Instance().checkConversionnRateByOrganization(curContactId);
  320. var Parameters = [{ "ColumnName": "contactid", "Value": Number(curContactId), }];
  321. Unibase.Forms.Controls.AutoComplete.Instance().LoadAutoComplete($(".txtAutoComplete_lobid"), Parameters);
  322. $(".transactonList_div_TRN2").find(".secWallets").addClass('hidden');
  323. $(".transactonList_div_TRN2").find(".secDues").addClass('hidden');
  324. $("#chkIsChequeMode").prop("checked", false);
  325. $("#divSectionProperties_EnableChequeMode").removeClass("hidden");
  326. });
  327. $(".date_journaldate").on("change", function () {
  328. var curContactId = $(".txtAutoComplete_contactid").val();
  329. Bizgaze.Apps.Transact.Controls.Wallet.Instance().loadPaymentWallets(curContactId);
  330. Bizgaze.Apps.Transact.Controls.Dues.Instance().loadPaymentDues(curContactId);
  331. });
  332. var isDealer = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().isRestrictedUser;
  333. var UserId = Unibase.Platform.Membership.Infos.Identity.getCurrentUser().userId;
  334. if (isDealer && paymentId == 0) {
  335. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().getContactByUserId(UserId).then(function (response) {
  336. var contactId = response.result.ContactId;
  337. var orgContactName = response.result.OrgContactName;
  338. var organizationName = response.result.OrganizationName;
  339. var contactName = organizationName + ' - ' + orgContactName;
  340. var contact = new Option(contactName, contactId.toString(), true);
  341. $(".txtAutoComplete_contactid").append(contact);
  342. $(".txtAutoComplete_contactid").val(contactId).trigger("change");
  343. $(".btn_altSpocSelection").addClass("hidden");
  344. });
  345. }
  346. }
  347. bindEvents() {
  348. $('.Section').show();
  349. $('.section_Default').hide();
  350. var VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  351. $("#" + VisibleContainerId).find(".btn_Save_Form").removeClass("hidden");
  352. 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 ' > " +
  353. "<div class='d-none d-md-block h-100'>" +
  354. "<div class='row contactHeaderRow h-100'>" +
  355. "<div class='col-sm-8 my-auto'>" +
  356. "<span class='h6 strong ml-20'>" +
  357. "<a href='javascript:;' id='anchor_ContactName' class='anchor_ContactName'></a>" +
  358. "</span>" +
  359. "</div>" +
  360. "<div class='col-sm-3 my-auto text-right'>" +
  361. "<span class='strong h6'>" +
  362. "<a href='javascript:;' id='anchor_totalDue' class='anchor_totalDue'></a>" +
  363. "</span>" +
  364. "</div>" +
  365. "<div class='col-sm-1 text-right'>" +
  366. "<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>" +
  367. "</div>" +
  368. "</div></div>" +
  369. "<div class='d-md-none h-100'>" +
  370. "<div class='row contactHeaderRow header h-100 ml-10'>" +
  371. "<div class='col-xs-8 col-6 overflow-hidden my-auto text-truncate'>" +
  372. "<span class=''>" +
  373. "<a href='javascript:;' id='anchor_ContactName' class='anchor_ContactName btn-md'></a>" +
  374. "</span>" +
  375. "</div>" +
  376. "<div class='col-xs-3 col-4 my-auto text-right'>" +
  377. "<strong class='strong'>" +
  378. "<a href='javascript:;' id='anchor_totalDue' class='anchor_totalDue btn-md' ></a>" +
  379. "</span>" +
  380. "</div>" +
  381. "<div class='col-xs-1 col-1 text-right'>" +
  382. "<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>" +
  383. "</div>" +
  384. "</div></div>" +
  385. "</div>";
  386. if ($("#div_ContactNameRibbon").length == 0) {
  387. $(".section_Default").before(html);
  388. $('.anchor_ContactName').text($(".txtAutoComplete_contactid").text());
  389. $('.anchor_ContactName').val($(".txtAutoComplete_contactid").val());
  390. }
  391. }
  392. back() {
  393. var instance = this;
  394. $('.Section').hide();
  395. $('.section_Default').show();
  396. $('#div_ContactNameRibbon').remove();
  397. $(".txtAutoComplete_contactid").text("");
  398. $("#div_payments").addClass("hidden");
  399. var VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  400. $("#" + VisibleContainerId).find(".btn_Save_Form").addClass("hidden");
  401. $('input:text').val('');
  402. $('select').not('.txtAutoComplete_contactid').val(null).trigger("change");
  403. if ($(".hrefSection_MoreOptions").text() == "Less Options") {
  404. $(".hrefSection_MoreOptions").click();
  405. }
  406. $(".date_journaldate").daterangepicker({
  407. locale: {
  408. format: 'DD/MM/YYYY',
  409. },
  410. singleDatePicker: true,
  411. showDropdowns: true,
  412. minYear: 1901,
  413. maxDate: new Date(2050, 11, 31)
  414. });
  415. $(".date_journaldate").parents(".floating-label-form-group").addClass("floating-label-form-group-with-value");
  416. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().loadPaymentSummaryControl("paymentSummaryContainer");
  417. instance.loadPaymentControl("paymentModeContainer");
  418. $('.summernote_notes').summernote("reset");
  419. var isWalletExpanded = $("#walletControlList secWallets").hasClass("hidden");
  420. if (!isWalletExpanded) {
  421. $("#walletControlList a").click();
  422. }
  423. var isDueExpanded = $("#dueControlList secDues").hasClass("hidden");
  424. if (!isDueExpanded) {
  425. $("#dueControlList a").click();
  426. }
  427. }
  428. LoadorgContactDetails(contactId, spocId) {
  429. var orgContactId = Number($(".txtAutoComplete_OrgContactId").val());
  430. if (spocId != 0 && spocId != undefined && spocId != null) {
  431. orgContactId = spocId;
  432. }
  433. else {
  434. if (contactId != 0) {
  435. orgContactId = contactId;
  436. }
  437. }
  438. if (!isNaN(orgContactId) && orgContactId != 0) {
  439. var instance = this;
  440. Bizgaze.Apps.Crm.Contacts.Managers.ContactManager.Instance().getOrgContact(orgContactId).then(function (response) {
  441. if (response.result != null && response.result != "") {
  442. $(".txtAutoComplete_contactid").removeClass("required");
  443. var data = response.result;
  444. $('.anchor_ContactName').text(data.OrgContactName);
  445. if (data.OrganizationId != 0) {
  446. $('.anchor_ContactName').text(data.OrganizationName);
  447. $(".anchor_ContactName").val(data.OrgContactId);
  448. }
  449. $(".txtAutoComplete_contactid").val(data.OrganizationId);
  450. var selectcontact = new Option(data.OrganizationName, data.OrgContactId.toString(), true, true);
  451. $(".txtAutoComplete_contactid").append(selectcontact);
  452. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().bindEvents();
  453. Bizgaze.Apps.Transact.Controls.Dues.Instance().loadPaymentDues(data.OrganizationId);
  454. Bizgaze.Apps.Transact.Controls.Wallet.Instance().loadPaymentWallets(data.OrganizationId);
  455. Bizgaze.Apps.Transact.Controls.Dues.Instance().checkConversionnRateByOrganization(data.OrganizationId);
  456. if (spocId == 0) {
  457. spocId = data.OrganizationId;
  458. }
  459. var Parameters = [{ "ColumnName": "contactid", "Value": Number(spocId), }];
  460. Unibase.Forms.Controls.AutoComplete.Instance().LoadAutoComplete($(".txtAutoComplete_lobid"), Parameters);
  461. }
  462. }).then(function () {
  463. $(".btn_altSpocSelection").addClass("hidden");
  464. $(".contactHeaderRow").addClass("mt-10");
  465. });
  466. }
  467. }
  468. loadPaymentModes() {
  469. var instance = this;
  470. var url = _appsettings.server_url() + '/apis/v4/bizgaze/transact/payments/paymentmodeautcomplete';
  471. AutoCompleteHelper.getHelper().Create("#txtAutoComplete_paymentmodeid", "#hfAutoComplete_paymentmodeid", url, function (response) { });
  472. var url = _appsettings.server_url() + '/apis/v4/bizgaze/transact/payments/paymentbanksautcomplete';
  473. AutoCompleteHelper.getHelper().Create("#txtAutoComplete_BankId", "#hfAutoCompleteId_BankId", url, function (response) { });
  474. }
  475. enableChequeMode(isChequeMode, isClearInput, isEditForm) {
  476. var instance = this;
  477. if (isChequeMode) {
  478. $("#txtAutoComplete_paymentmodeid option").remove();
  479. if (isEditForm) {
  480. instance.paymentModeChangeSuccess(2, isClearInput, false);
  481. }
  482. else {
  483. instance.paymentModeChangeEvent(2, isClearInput);
  484. }
  485. }
  486. else {
  487. if (instance.isMultiplePayment) {
  488. $(".AddPaymentMode").removeClass('hidden');
  489. $("#div_paymentmode").addClass('pr-0 pl-0');
  490. $("#div_paymentmode").removeClass('col-sm-5');
  491. $("#div_RefDate_Container").addClass('pr-0 pl-0');
  492. jQuery("#txtAutoComplete_paymentmodeid").val("0").trigger("change");
  493. $("#txtAutoComplete_paymentmodeid").removeAttr("disabled");
  494. $("#txt_RefNo").val("");
  495. $("#txt_TotalCreditAmount").val("");
  496. $("#date_RefDate").val("");
  497. $("#div_RefDate").removeClass("floating-label-form-group-with-value");
  498. $("#txt_RefNo").parent().removeClass("floating-label-form-group-with-value");
  499. $("#txt_TotalCreditAmount").parent().removeClass("floating-label-form-group-with-value");
  500. $(".txtAutoComplete_paymentaccountid").val(null).trigger("change");
  501. }
  502. else {
  503. $(".AddPaymentMode").addClass('hidden');
  504. $("#div_paymentmode").removeClass('pr-0 pl-0');
  505. $("#div_paymentmode").addClass('col-sm-5');
  506. $("#div_RefDate_Container").removeClass('pr-0 pl-0');
  507. jQuery("#txtAutoComplete_paymentmodeid").val("0").trigger("change");
  508. $("#txtAutoComplete_paymentmodeid").removeAttr("disabled");
  509. $(".txtAutoComplete_paymentaccountid").val(null).trigger("change");
  510. }
  511. $("#div_BankId").addClass('hidden');
  512. $("#div_BankBranch").addClass('hidden');
  513. $("#div_ChequeDate").addClass('hidden');
  514. $("#div_ChequeNo").addClass('hidden');
  515. var url = _appsettings.server_url() + '/apis/v4/bizgaze/transact/payments/paymentmodeautcomplete';
  516. AutoCompleteHelper.getHelper().Create("#txtAutoComplete_paymentmodeid", "#hfAutoComplete_paymentmodeid", url, null);
  517. }
  518. }
  519. getMultipleModeSetting() {
  520. var instance = this;
  521. instance.isMultiplePayment = false;
  522. var paymentTypeId = instance.paymentTypeId;
  523. var paymentSettingType = Bizgaze.Apps.Transact.Enums.PaymentSettingType.MultiplePaymentMode;
  524. instance.fileCacheHelper.loadJsFile("apps/transact/managers/payments/paymentmanager.js", function () {
  525. Bizgaze.Apps.Transact.Managers.PaymentManager.Instance().getAccountSettingByPaymentType(paymentTypeId, paymentSettingType).then(function (response) {
  526. if (response.result != null) {
  527. if (response.result.SettingMode == false) {
  528. $(".AddPaymentMode").addClass('hidden');
  529. $("#div_paymentmode").removeClass('pr-0 pl-0');
  530. $("#div_paymentmode").addClass('col-sm-5');
  531. $("#div_RefDate_Container").removeClass('pr-0 pl-0');
  532. }
  533. else {
  534. $(".AddPaymentMode").removeClass('hidden');
  535. $("#div_paymentmode").addClass('pr-0 pl-0');
  536. $("#div_paymentmode").removeClass('col-sm-5');
  537. $("#div_RefDate_Container").addClass('pr-0 pl-0');
  538. instance.isMultiplePayment = true;
  539. }
  540. $("#txt_TotalCreditAmount").on('keyup', function (evt, id) {
  541. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().loadPaymentSummary();
  542. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().updatePaymentSummary();
  543. Bizgaze.Apps.Transact.Controls.Dues.Instance().clearDues();
  544. });
  545. $(".txtAutoComplete_paymentmodeid").change(function (evt, id) {
  546. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().loadPaymentSummary();
  547. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().updatePaymentSummary();
  548. Bizgaze.Apps.Transact.Controls.Dues.Instance().clearDues();
  549. $(".txtTotalDueAdjusted").val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
  550. $(".totAdjusted").text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
  551. $("#txt_TotalCreditAmount").val();
  552. $("#txt_TotalCreditAmount").parent().removeClass("floating-label-form-group-with-value");
  553. $("#hf_TotalCreditAmount").val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
  554. $(".paymentmodes").remove();
  555. $(".totAmount").text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
  556. $(".totAdvance").text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
  557. $('.totDiscount').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
  558. $('.totPenality').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
  559. $('.totTds').text(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(0, 2));
  560. });
  561. }
  562. else {
  563. $(".AddPaymentMode").addClass('hidden');
  564. $("#div_paymentmode").removeClass('pr-0 pl-0');
  565. $("#div_paymentmode").addClass('col-sm-5');
  566. $("#div_RefDate_Container").removeClass('pr-0 pl-0');
  567. }
  568. });
  569. });
  570. }
  571. AddPaymentModeListItem(data) {
  572. var instance = this;
  573. $("#divSectionProperties_EnableChequeMode").addClass("hidden");
  574. paymentlistitem += 1;
  575. var paymentTypeId = instance.paymentTypeId;
  576. var paymentModeId = 0;
  577. var paymentModeName = "";
  578. var paymentRefNo = "";
  579. var paymentRefDate = "";
  580. var paymentAmount = 0;
  581. var paymentBankId = 0;
  582. var paymentAccountId = 0;
  583. var paymentAccountName = "";
  584. var paymentBankName = "";
  585. var paymentBranch = "";
  586. var paymentChequeNo = "";
  587. var paymentChequeDate = "";
  588. var paymentJournalEntryId = 0;
  589. if (data.length == 0) {
  590. paymentModeId = Number($("#txtAutoComplete_paymentmodeid").val());
  591. paymentModeName = String($("#txtAutoComplete_paymentmodeid option:selected").text());
  592. paymentRefNo = String($(".section_PaymentModeDetails").find("#txt_RefNo").val());
  593. paymentRefDate = String($("#date_RefDate").val());
  594. paymentAmount = Number(($("#txt_TotalCreditAmount").val()));
  595. paymentBankId = Number($(".hfAutoCompleteId_BankId ").val());
  596. paymentBankName = String($(".txtAutoComplete_BankId option:selected").text());
  597. paymentAccountId = Number($(".txtAutoComplete_paymentaccountid").val());
  598. paymentAccountName = String($(".txtAutoComplete_paymentaccountid option:selected").text());
  599. paymentBranch = String($("#txt_BankBranch").val());
  600. paymentChequeNo = String($("#txt_ChequeNo").val());
  601. paymentChequeDate = String($("#date_ChequeDate").val());
  602. }
  603. else {
  604. var amount = 0;
  605. if (paymentTypeId == Bizgaze.Apps.Transact.Enums.PaymentType.Payment)
  606. amount = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(data.Credit, 2);
  607. else
  608. amount = Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(data.Debit, 2);
  609. paymentModeId = data.PaymentModeId;
  610. paymentModeName = data.PaymentModeName;
  611. paymentRefNo = data.EntryRefNo = null ? "NA" : data.EntryRefNo;
  612. paymentRefDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(data.RefDate, "DD/MM/YYYY");
  613. paymentAmount = amount;
  614. paymentBankId = data.BankId;
  615. paymentBankName = data.BankName;
  616. paymentAccountId = data.LedgerId;
  617. paymentAccountName = data.LedgerName;
  618. paymentBranch = data.BankBranch;
  619. paymentChequeNo = data.ChequeNo;
  620. paymentChequeDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(data.ChequeDate, "DD/MM/YYYY");
  621. paymentJournalEntryId = data.JournalEntryId;
  622. }
  623. var canMerge = false;
  624. $(".paymentmodelistitem").each(function () {
  625. if ($(this).find("#hf_PaymentModeId").val() == paymentModeId && $(this).find(".paymentrefno").val() == paymentRefNo) {
  626. if (paymentModeId != Bizgaze.Apps.Transact.Enums.PaymentMode.Cheque) {
  627. var prevAmount = Number($(this).find(".paymentamount").val());
  628. var prevAccount = $(this).find(".paymentAccount").val();
  629. if (prevAccount == paymentAccountId) {
  630. var sum = prevAmount + Number(paymentAmount);
  631. var id = $(this).attr("id");
  632. $(this).find(".paymentamount").val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(sum, 2));
  633. $("." + id).find("#spn_amount").text(sum);
  634. canMerge = true;
  635. var newPayAmount = $(this).find(".paymentamount").val().toString();
  636. $(this).find(".decimal_numerics:first").text(newPayAmount);
  637. }
  638. }
  639. }
  640. if ($(this).find("#hf_PaymentModeId").val() == 2 && $(this).find(".paymentchequeno").val() == paymentChequeNo) {
  641. var prevAmount = Number($(this).find(".paymentamount").val());
  642. var sum = prevAmount + Number(paymentAmount);
  643. var id = $(this).attr("id");
  644. $(this).find(".paymentamount").val(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(sum, 2));
  645. $("." + id).find("#spn_amount").text(sum);
  646. canMerge = true;
  647. var newPayAmount = $(this).find(".paymentamount").val().toString();
  648. $(this).find(".decimal_numerics:first").text(newPayAmount);
  649. }
  650. });
  651. if (!canMerge) {
  652. var listhtml = '<li class="list-group-item paymentmodelistitem clearmode" id="li_paymentlistitem_' + paymentlistitem + '">' +
  653. '<input type="hidden" id="hf_PaymentModeId" value=' + paymentModeId + ' />' +
  654. '<input type ="hidden" id="hf_JounralEntryId" value=' + paymentJournalEntryId + ' />' +
  655. '<div class="row">' +
  656. '<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>' +
  657. '<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>' +
  658. '<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>' +
  659. '<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>' +
  660. '<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>' +
  661. '<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>' +
  662. '</div>' +
  663. '<div class="row collapse hideDetails" id="paymentdetails_' + paymentlistitem + '">' +
  664. '<div class="col-sm-12 row pr-0">' +
  665. '<div class="col-sm-3">' +
  666. '<div class="floating-label-form-group">' +
  667. '<label>Amount<span class="text-danger"> *</span></label>' +
  668. '<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 + ' />' +
  669. '</div>' +
  670. '</div>' +
  671. '<div class="col-sm-2">' +
  672. '<div class="floating-label-form-group">' +
  673. '<label>Ref No</label>' +
  674. '<input type=text value="' + paymentRefNo + '" class="form-control floating-label-control paymentrefno" placeholder="Ref No." data-placeholder="Ref No." data-label="Ref No." />' +
  675. '</div>' +
  676. '</div>' +
  677. '<div class="col-sm-3">' +
  678. '<div class="floating-label-form-group">' +
  679. '<label for="" id="">Ref Date</label>' +
  680. '<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>' +
  681. '</div>' +
  682. '</div>' +
  683. '<div class="col-sm-4 pr-0">' +
  684. '<div class="floating-label-form-group floating-label-form-group-with-value" style="border-bottom:0px;border-left:0px">' +
  685. '<label>Account<span class="text-danger"> *</span></label>' +
  686. '<input type="hidden" id="hf_AccountId_' + paymentlistitem + '" class="hfAccountId" value=' + paymentAccountId + ' />' +
  687. '<select id="paymentAccount_' + paymentlistitem + '" type="text" class="paymentAccount form-control text-control select2-hidden-accessible floating-label-control" style="width:100%;" value=' + paymentAccountName + ' ></select>' +
  688. '</div></div>' +
  689. '</div>';
  690. if (paymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Cheque) {
  691. listhtml += '<div class="col-sm-12 row">' +
  692. '<div class="col-sm-6">' +
  693. '<div class="floating-label-form-group floating-label-form-group-with-value" style="border-bottom:0px;border-left:0px">' +
  694. '<label>Bank<span class="text-danger"> *</span></label>' +
  695. '<input type="hidden" id="hf_BankId_' + paymentlistitem + '" class="hfBankId" value=' + paymentBankId + ' />' +
  696. '<select id="paymentBank_' + paymentlistitem + '" type="text" class="paymentBank form-control text-control select2-hidden-accessible floating-label-control" style="width:100%;" value=' + paymentBankName + ' ></select>' +
  697. '</div>' +
  698. '</div>' +
  699. '<div class="col-sm-6">' +
  700. '<div class="floating-label-form-group">' +
  701. '<label>Branch<span class="text-danger"> *</span></label>' +
  702. '<input type=text id="paymentBranch_' + paymentlistitem + '" class="form-control floating-label-control paymentbranch" value="' + paymentBranch + '" placeholder="Branch" data-placeholder="Branch" data-label="Branch" />' +
  703. '</div>' +
  704. '</div>' +
  705. '<div class="col-sm-6">' +
  706. '<div class="floating-label-form-group floating-label-form-group-with-value">' +
  707. '<label for="" id="">Cheque Date<span class="text-danger"> *</span></label>' +
  708. '<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>' +
  709. '</div>' +
  710. '</div>' +
  711. '<div class="col-sm-6">' +
  712. '<div class="floating-label-form-group">' +
  713. '<label>Cheque No.<span class="text-danger"> *</span></label>' +
  714. '<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." />' +
  715. '</div>' +
  716. '</div>' +
  717. '</div>';
  718. }
  719. listhtml += '</div>' +
  720. '</li>';
  721. $(".paymentmodelistitem:last").after(listhtml);
  722. $("#date_RefDate_" + paymentlistitem).val($("#date_RefDate").val());
  723. $("#paymentChequeDate_" + paymentlistitem).val($("#date_ChequeDate").val());
  724. $("#date_RefDate_" + paymentlistitem).daterangepicker({
  725. locale: {
  726. format: 'DD/MM/YYYY',
  727. },
  728. singleDatePicker: true,
  729. showDropdowns: true,
  730. minYear: 1901,
  731. maxDate: new Date(2050, 11, 31)
  732. });
  733. $("#date_RefDate_" + paymentlistitem).parents(".floating-label-form-group").addClass("floating-label-form-group-with-value");
  734. $("#paymentChequeDate_" + paymentlistitem).daterangepicker({
  735. locale: {
  736. format: 'DD/MM/YYYY',
  737. },
  738. singleDatePicker: true,
  739. showDropdowns: true,
  740. minYear: 1901,
  741. maxDate: new Date(2050, 11, 31)
  742. });
  743. $("#paymentChequeDate_" + paymentlistitem).parents(".floating-label-form-group").addClass("floating-label-form-group-with-value");
  744. if (paymentRefDate != "Invalid date" && paymentRefDate != "01/01/1901" && paymentRefDate != "01/01/1900" && paymentRefDate != "01/01/2001" && paymentRefDate != "01/01/0001") {
  745. $("#date_RefDate_" + paymentlistitem).val(paymentRefDate);
  746. }
  747. if (paymentChequeDate != "Invalid date" && paymentChequeDate != "01/01/1901" && paymentChequeDate != "01/01/1900" && paymentChequeDate != "01/01/2001" && paymentChequeDate != "01/01/0001") {
  748. $("#paymentChequeDate_" + paymentlistitem).val(paymentChequeDate);
  749. }
  750. if (paymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Cheque) {
  751. var selectedbank = new Option(paymentBankName, paymentBankId.toString(), true, true);
  752. $("#paymentBank_" + paymentlistitem).append(selectedbank).trigger("change");
  753. }
  754. var selectedAccount = new Option(paymentAccountName, paymentAccountId.toString(), true, true);
  755. $("#paymentAccount_" + paymentlistitem).append(selectedAccount).trigger("change");
  756. }
  757. var paymentmethodid = 0;
  758. if (paymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Cash) {
  759. paymentmethodid = 1;
  760. }
  761. 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) {
  762. paymentmethodid = 2;
  763. }
  764. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().loadBanks(paymentmethodid, paymentlistitem);
  765. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().loadAccounts(paymentlistitem);
  766. var selectedBank = new Option(paymentBankName, paymentBankId.toString(), true);
  767. $('#paymentBank_' + paymentlistitem + '').append(selectedBank).trigger("change");
  768. $(".paymentamount").on('keyup', function (evt, id) {
  769. var curVal = $(this).val();
  770. $(this).closest(".paymentmodelistitem").find(".spn_payment_amount").text(curVal.toString());
  771. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().loadPaymentSummary();
  772. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().updatePaymentSummary();
  773. Bizgaze.Apps.Transact.Controls.Dues.Instance().clearDues();
  774. });
  775. $('.decimal_numerics').on('paste', function (event) {
  776. var orgEvent = event.originalEvent;
  777. if (orgEvent.clipboardData.getData('Text').match(/[^\d]/)) {
  778. event.preventDefault();
  779. }
  780. });
  781. $(".decimal_numerics").keypress(function (key) {
  782. if (key.charCode < 46 || key.charCode > 58)
  783. return false;
  784. });
  785. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().clearPayment();
  786. eval('_floatingLabelHelper.init()');
  787. }
  788. loadBanks(paymentmethodId, listitem) {
  789. var url = _appsettings.server_url() + '/apis/v4/bizgaze/transact/payments/paymentbanksautcomplete';
  790. AutoCompleteHelper.getHelper().Create("#paymentBank_" + listitem + "", "#hf_BankId_" + listitem + "", url, null);
  791. }
  792. loadAccounts(listitem) {
  793. var url = _appsettings.server_url() + '/apis/v4/bizgaze/transact/ledgers/accounttypeledgersautocompleteasync';
  794. AutoCompleteHelper.getHelper().Create("#paymentAccount_" + listitem + "", "#hf_AccountId_" + listitem + "", url, null);
  795. $("#paymentAccount_" + listitem).on('select2:select', function (e) {
  796. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().loadForm(listitem);
  797. });
  798. }
  799. loadForm(listitem) {
  800. var accountId = 0;
  801. var accountName = "";
  802. var controlId = "";
  803. var hiddenFieldControlId = "";
  804. accountId = Number($("#paymentAccount_" + listitem).find("option:selected").val());
  805. accountName = $("#paymentAccount_" + listitem).find("option:selected").text().trim();
  806. controlId = "#paymentAccount_" + listitem;
  807. hiddenFieldControlId = "#hf_AccountId_" + listitem;
  808. if (accountId == 0)
  809. accountName = "Select Account";
  810. if (accountId == 1 || accountId == -1)
  811. accountName = "Create New";
  812. if (accountName == "Create New") {
  813. $("#paymentAccount_").val(null).trigger("change");
  814. var FormUniqueId = "Bizgaze_Extension_Transact_Ledgers_App_Ledgers_CreateForm";
  815. var AppConfigurationUnique = "Bizgaze_Extension_Transact_Ledgers_AppConfiguration_CreateLedgers";
  816. Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId(FormUniqueId).then(function (response) {
  817. var obj = {
  818. controlid: controlId,
  819. hiddenid: hiddenFieldControlId
  820. };
  821. var successobj = {
  822. CallBack: function (id, obj) {
  823. Bizgaze.Apps.Transact.Managers.LedgerManager.Instance().getLedgerById(id).then(function (response) {
  824. var createdLedger = new Option(response.result.LedgerName, response.result.LedgerId, true);
  825. $(obj.controlid + " option").remove();
  826. $(obj.controlid).append(createdLedger).trigger('change');
  827. $(obj.hiddenid).val(response.result.LedgerId);
  828. $(obj.controlid).parents("#paymentdetails_").find('.hfAccountId').val(response.result.LedgerId);
  829. });
  830. },
  831. Parameters: obj,
  832. };
  833. var formviewerObj = {
  834. FormId: response.result.FormId,
  835. AppConfigurationId: 0,
  836. Pk_Value: 0,
  837. PortletWidgetId: 0,
  838. OnSuccess: successobj,
  839. OnFail: null,
  840. OnLoad: null,
  841. };
  842. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/transact/managers/ledgers/ledgermanager.js", function () {
  843. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("platform/forms/components/formviewer/formviewer.js", function () {
  844. Unibase.Platform.Forms.Components.FormViewer.instance.init(formviewerObj);
  845. setTimeout(function () {
  846. $("#btn_CloseForm_" + response.result.FormId).click(function () {
  847. $("#paymentAccount_").val(null).trigger("change");
  848. });
  849. }, 1000);
  850. });
  851. });
  852. });
  853. }
  854. }
  855. updateMultiplePaymentTotal() {
  856. var total = 0;
  857. var prevamount = 0;
  858. $(".paymentmodelistitem").each(function () {
  859. if (!($(this).hasClass("hidden"))) {
  860. var amount = Number($(this).find('.paymentamount').val());
  861. $(this).find('.amount').text(amount);
  862. total = Number(prevamount) + Number(amount);
  863. prevamount = total;
  864. }
  865. });
  866. $("#hf_paymentAmount").val(total);
  867. $(".totAmount").html(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(total, 2));
  868. }
  869. clearPayment() {
  870. var instance = this;
  871. $('#txtAutoComplete_paymentmodeid').val(0);
  872. $('#txtAutoComplete_paymentmodeid').text('');
  873. $('#date_RefDate').val('');
  874. $('#txt_TotalCreditAmount').val('');
  875. $(".section_PaymentModeDetails").find("#txt_RefNo").val('');
  876. $(".txtAutoComplete_BankId").empty();
  877. $("#txt_BankBranch").val('');
  878. $("#txt_ChequeNo").val('');
  879. $('#date_ChequeDate').val('');
  880. $('.hfAutoCompleteId_BankId').val(0);
  881. $("#div_BankId").addClass('hidden');
  882. $("#div_BankBranch").addClass('hidden');
  883. $("#div_ChequeDate").addClass('hidden');
  884. $("#div_ChequeNo").addClass('hidden');
  885. $("#date_ChequeDate").daterangepicker({
  886. locale: {
  887. format: 'DD/MM/YYYY',
  888. },
  889. singleDatePicker: true,
  890. showDropdowns: true,
  891. minYear: 1901,
  892. maxDate: new Date(2050, 11, 31)
  893. });
  894. $(".dateselect_1").daterangepicker({
  895. locale: {
  896. format: 'DD/MM/YYYY',
  897. },
  898. singleDatePicker: true,
  899. showDropdowns: true,
  900. minYear: 1901,
  901. maxDate: new Date(2050, 11, 31)
  902. });
  903. $("#div_ChequeNo").removeClass("floating-label-form-group-with-value");
  904. $("#div_BankBranch").removeClass("floating-label-form-group-with-value");
  905. $("#div_Credit").removeClass("floating-label-form-group-with-value");
  906. $("#div_RefNo").removeClass("floating-label-form-group-with-value");
  907. $(".txtAutoComplete_paymentaccountid").val(null).trigger("change");
  908. if (instance.isMultiplePayment) {
  909. $(".txtAutoComplete_paymentaccountid").val(null).trigger("change");
  910. }
  911. }
  912. removeItem(number) {
  913. var instance = this;
  914. var amount = $("#li_paymentlistitem_" + number).find(".paymentamount").val();
  915. var totalamount = $("#hf_paymentAmount").val();
  916. var revisedamount = Number(totalamount) - Number(amount);
  917. $("#hf_paymentAmount").val(revisedamount);
  918. $(".totAmount").html(Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(revisedamount, 2));
  919. $("#li_paymentlistitem_" + number).remove();
  920. $("#paymentsummaryItem_" + number).remove();
  921. if ($("#paymentslist .paymentmodelistitem").length < 2) {
  922. $("#div_payments").addClass("hidden");
  923. $("#divSectionProperties_EnableChequeMode").removeClass("hidden");
  924. }
  925. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().loadPaymentSummary();
  926. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().updatePaymentSummary();
  927. Bizgaze.Apps.Transact.Controls.Dues.Instance().clearDues();
  928. }
  929. updatePayment() {
  930. }
  931. bindMultiplepayments(payments) {
  932. for (var i = 0; i < payments.length; i++) {
  933. var myArrayNew = payments[i];
  934. var data = myArrayNew;
  935. if (i == 0) {
  936. var selectedAccount = new Option(data.LedgerName, data.LedgerId.toString(), true);
  937. $(".txtAutoComplete_paymentaccountid").append(selectedAccount).trigger("change");
  938. }
  939. if (data.ContactId == 0 && data.PaymentModeId != Bizgaze.Apps.Transact.Enums.PaymentMode.None) {
  940. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().AddPaymentModeListItem(myArrayNew);
  941. $("#div_payments").removeClass("hidden");
  942. }
  943. }
  944. }
  945. getobj() {
  946. var instance = this;
  947. var payments = [];
  948. var total = 0;
  949. var discountAccountId = Number($("#txtAutoComplete_DiscountAccount").val());
  950. var penalityAccountId = Number($("#txtAutoComplete_PenalityAccount").val());
  951. var tDSAccountId = Number($("#txtAutoComplete_TDSAccount").val());
  952. var foreignExchangeAccountId = Number($("#txtAutoComplete_ForeignExchangeAccount").val());
  953. var flag = 0;
  954. var currentToggleId = "";
  955. $(".paymentmodelistitem").each(function () {
  956. if (!($(this).hasClass("hidden"))) {
  957. currentToggleId = $(this).find(".anchor_collapseDetails").attr("id");
  958. var paymentModeId = Number($(this).find("#hf_PaymentModeId").val());
  959. var accountId = Number($(this).find(".paymentAccount").val());
  960. var paymentAmount = Number($(this).find('.paymentamount').val());
  961. if ((paymentAmount == 0 || isNaN(paymentAmount)) && paymentModeId != Bizgaze.Apps.Transact.Enums.PaymentMode.Adjustment) {
  962. flag = 1;
  963. $(this).find('.paymentamount').addClass("required");
  964. var paymentAmountInputId = $(this).find('.paymentamount').attr("id");
  965. Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(paymentAmountInputId);
  966. $(this).find('.paymentamount').removeClass("required");
  967. }
  968. if (accountId == 0 || isNaN(accountId)) {
  969. flag = 1;
  970. }
  971. total += paymentAmount;
  972. var refNo = String($(this).find(".paymentrefno").val());
  973. var chequeNo = String($(this).find(".paymentchequeno").val());
  974. var refDate = String($(this).find(".paymentrefdate").val());
  975. var chequeDate = String($(this).find(".paymentchequedate").val());
  976. var refDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDate(refDate);
  977. var chequeDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDate(chequeDate);
  978. if (paymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Cheque) {
  979. var bankId = Number($(this).find(".hfBankId").val());
  980. }
  981. else {
  982. bankId = 0;
  983. }
  984. var bankBranch = String($(this).find(".paymentbranch").val());
  985. var amount = Number(($(this).find('.paymentamount').val()));
  986. var jounrnalEntryId = Number($(this).find("#hf_JounralEntryId").val());
  987. refDate = moment(refDate).format('YYYY-MM-DD');
  988. chequeDate = moment(chequeDate).format('YYYY-MM-DD');
  989. if (chequeDate == "Invalid date") {
  990. chequeDate = "0001-01-01";
  991. }
  992. if (refDate == "Invalid date") {
  993. refDate = "0001-01-01";
  994. }
  995. if (chequeNo == "" || chequeNo == "undefined") {
  996. chequeNo = "";
  997. }
  998. if (isNaN(jounrnalEntryId)) {
  999. jounrnalEntryId = 0;
  1000. }
  1001. if (bankBranch == "undefined") {
  1002. bankBranch = "";
  1003. }
  1004. if (paymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Cheque) {
  1005. if (bankId == 0 || bankId == undefined || bankId == null) {
  1006. flag = 1;
  1007. $(this).find(".paymentBank").addClass("required");
  1008. var paymentBankInputId = $(this).find('.paymentBank').attr("id");
  1009. Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(paymentBankInputId);
  1010. $(this).find(".paymentBank").removeClass("required");
  1011. }
  1012. if (bankBranch == "" || bankBranch == undefined || bankBranch == null) {
  1013. flag = 1;
  1014. $(this).find(".paymentbranch").addClass("required");
  1015. var paymentBranchInputId = $(this).find('.paymentbranch').attr("id");
  1016. Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(paymentBranchInputId);
  1017. $(this).find(".paymentbranch").removeClass("required");
  1018. }
  1019. if (chequeDate == "0001-01-01" || chequeDate == undefined || chequeDate == null || chequeDate == "") {
  1020. flag = 1;
  1021. $(this).find(".paymentchequedate").addClass("required");
  1022. var paymentChqDateInputId = $(this).find('.paymentchequedate').attr("id");
  1023. Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(paymentChqDateInputId);
  1024. $(this).find(".paymentchequedate").removeClass("required");
  1025. }
  1026. if (chequeNo == "" || chequeNo == "undefined" || chequeNo == null || chequeNo == undefined) {
  1027. flag = 1;
  1028. $(this).find(".paymentchequeno").addClass("required");
  1029. var paymentChqNoInputId = $(this).find('.paymentchequeno').attr("id");
  1030. Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(paymentChqNoInputId);
  1031. $(this).find(".paymentchequeno").removeClass("required");
  1032. }
  1033. }
  1034. 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, ForeingExchangeAccount: foreignExchangeAccountId });
  1035. }
  1036. else {
  1037. var validationResult = instance.showErrorForPaymentModeControl();
  1038. if (!validationResult) {
  1039. flag = 1;
  1040. }
  1041. }
  1042. if (flag == 1) {
  1043. return false;
  1044. }
  1045. });
  1046. if (flag == 1) {
  1047. $(".anchor_collapseDetails").not("#" + currentToggleId).each(function () {
  1048. var isExp = $(this).attr("aria-expanded");
  1049. if (isExp == "true") {
  1050. $(this).click();
  1051. }
  1052. });
  1053. var isExpanded = $("#" + currentToggleId).attr("aria-expanded");
  1054. if (isExpanded == "false") {
  1055. $("#" + currentToggleId).click();
  1056. }
  1057. Unibase.Platform.Forms.Components.FormViewer.Instance().showError("Mandatory fields are missing");
  1058. return false;
  1059. }
  1060. if (payments.length >= 1) {
  1061. $("#txt_TotalCreditAmount").removeClass("required");
  1062. return payments;
  1063. }
  1064. if (payments.length == 0) {
  1065. total += ($(this).find('.paymentamount').val(), 2);
  1066. var paymentModeId = Number($("#txtAutoComplete_paymentmodeid").val());
  1067. var refNo = String($(".section_PaymentModeDetails").find("#txt_RefNo").val().toString());
  1068. var refDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDate($("#date_RefDate").val());
  1069. var chequeDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDate($("#date_ChequeDate").val());
  1070. var chequeNo = String($("#txt_ChequeNo").val());
  1071. var accountId = Number($(".txtAutoComplete_paymentaccountid").val());
  1072. if (paymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Cheque) {
  1073. var bankId = Number($(".hfAutoCompleteId_BankId ").val());
  1074. }
  1075. else {
  1076. bankId = 0;
  1077. }
  1078. var bankBranch = String($("#txt_BankBranch").val());
  1079. var amount = Number(($("#txt_TotalCreditAmount").val()));
  1080. var jounrnalEntryId = Number($(this).find("#hf_JounralEntryId").val());
  1081. refDate = moment(refDate).format('YYYY-MM-DD');
  1082. chequeDate = moment(chequeDate).format('YYYY-MM-DD');
  1083. if (chequeDate == "Invalid date") {
  1084. chequeDate = "0001-01-01";
  1085. }
  1086. refDate = moment(refDate).format('YYYY-MM-DD');
  1087. if (refDate == "Invalid date") {
  1088. refDate = "0001-01-01";
  1089. }
  1090. if (chequeNo == "" || chequeNo == "undefined") {
  1091. chequeNo = "";
  1092. }
  1093. if (isNaN(jounrnalEntryId)) {
  1094. jounrnalEntryId = 0;
  1095. }
  1096. if (bankBranch == "undefined") {
  1097. bankBranch = "";
  1098. }
  1099. 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, ForeingExchangeAccount: foreignExchangeAccountId });
  1100. }
  1101. return payments;
  1102. }
  1103. loadControlSettings(controlsettingjson, formpropertyid) {
  1104. return ``;
  1105. }
  1106. loadPropertySettings(propertysettings, formpropertyid) {
  1107. if (propertysettings != null) {
  1108. for (var i = 0; i < propertysettings.length; i++) {
  1109. var data = propertysettings[i];
  1110. if (data.ControlPropertyName == "ControlType" && data.ControlPropertyValue != "") {
  1111. $("#hdn_" + formpropertyid).attr("ControlType", data.ControlPropertyValue);
  1112. $("#hdn_" + formpropertyid).val(data.ControlPropertyValue);
  1113. }
  1114. }
  1115. }
  1116. }
  1117. showErrorForPaymentModeControl() {
  1118. if ($("#paymentslist .paymentmodelistitem").length < 2) {
  1119. var paymentModeId = Number($("#txtAutoComplete_paymentmodeid").val());
  1120. var paymentAccountIdAttr = $(".txtAutoComplete_paymentaccountid").attr("id");
  1121. $("#txtAutoComplete_paymentmodeid").addClass("required");
  1122. $(".txtAutoComplete_paymentaccountid").addClass("required");
  1123. var chequeValidation = true;
  1124. if (paymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Cheque) {
  1125. $("#txtAutoComplete_BankId").addClass('required');
  1126. $("#txt_BankBranch").addClass('required');
  1127. $("#date_ChequeDate").addClass('required');
  1128. $("#txt_ChequeNo").addClass('required');
  1129. var bankValidation = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation("txtAutoComplete_BankId");
  1130. var bankBranchValidation = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation("txt_BankBranch");
  1131. var chequeDateValidation = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation("date_ChequeDate");
  1132. var chequeNoValidation = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation("txt_ChequeNo");
  1133. if (bankValidation == false || bankBranchValidation == false || chequeDateValidation == false || chequeNoValidation == false) {
  1134. chequeValidation = false;
  1135. }
  1136. $("#txtAutoComplete_BankId").removeClass('required');
  1137. $("#txt_BankBranch").removeClass('required');
  1138. $("#date_ChequeDate").removeClass('required');
  1139. $("#txt_ChequeNo").removeClass('required');
  1140. }
  1141. var amountValidation = true;
  1142. if (paymentModeId != Bizgaze.Apps.Transact.Enums.PaymentMode.Adjustment) {
  1143. $("#txt_TotalCreditAmount").addClass("required");
  1144. amountValidation = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation("txt_TotalCreditAmount");
  1145. $("#txt_TotalCreditAmount").removeClass("required");
  1146. }
  1147. var accountValidation = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation(paymentAccountIdAttr);
  1148. var modeValidation = Unibase.Platform.Forms.Components.FormViewer.Instance().requiredFieldValidation("txtAutoComplete_paymentmodeid");
  1149. $("#txtAutoComplete_paymentmodeid").removeClass("required");
  1150. $(".txtAutoComplete_paymentaccountid").removeClass("required");
  1151. if (accountValidation == false || modeValidation == false || amountValidation == false || chequeValidation == false) {
  1152. Unibase.Platform.Forms.Components.FormViewer.Instance().showError("Mandatory fields are missing");
  1153. return false;
  1154. }
  1155. else {
  1156. return true;
  1157. }
  1158. }
  1159. else {
  1160. return true;
  1161. }
  1162. }
  1163. bindEditFormDetails(formpropertyid, propval, DocPropertyName) {
  1164. var instance = this;
  1165. var paymentid = Number(propval);
  1166. if (propval != 0 || !isNaN(propval)) {
  1167. var totWallet = 0;
  1168. Bizgaze.Apps.Transact.Managers.PaymentManager.Instance().getpayment(paymentid).then(function (response) {
  1169. var listhtml = "";
  1170. var result = response.result;
  1171. var accountsObj = {
  1172. DiscountAccountId: result.DiscountAccountId,
  1173. PenalityAccountId: result.PenalityAccountId,
  1174. TDSAccountId: result.TDSAccountId,
  1175. DiscountAccountName: result.DiscountAccountName,
  1176. PenalityAccountName: result.PenalityAccountName,
  1177. TDSAccountName: result.TDSAccountName,
  1178. };
  1179. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().bindAccounts(accountsObj);
  1180. totWallet = response.result.DueAdjustedAmount;
  1181. if (response.result.PaymentModeId != Bizgaze.Apps.Transact.Enums.PaymentMode.MultiplePayments) {
  1182. for (var i = 0; i < response.result.Payments.length; i++) {
  1183. var data = response.result.Payments[i];
  1184. var paymentType = response.result.PaymentTypeId;
  1185. instance.paymentTypeId = paymentType;
  1186. var hasAmountValue = (paymentType == Bizgaze.Apps.Transact.Enums.PaymentType.Receipt) ?
  1187. data.Debit : data.Credit;
  1188. if (hasAmountValue != 0 && data.PaymentModeId != Bizgaze.Apps.Transact.Enums.PaymentMode.None) {
  1189. if (data.PaymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Cheque) {
  1190. $("#divSectionProperties_EnableChequeMode").addClass("hidden");
  1191. instance.enableChequeMode(true, false, true);
  1192. $("#div_BankId").removeClass('hidden');
  1193. $("#div_BankBranch").removeClass('hidden');
  1194. $("#div_ChequeDate").removeClass('hidden');
  1195. $("#div_ChequeNo").removeClass('hidden');
  1196. $("#txt_RefNo").val(data.EntryRefNo);
  1197. $("#txt_ChequeNo").val(data.ChequeNo);
  1198. var selectedBank = new Option(data.BankName, data.BankId.toString(), true);
  1199. $(".txtAutoComplete_BankId").append(selectedBank);
  1200. var paymentmode = new Option(data.PaymentModeName, data.PaymentModeId.toString(), true);
  1201. $(".txtAutoComplete_paymentmodeid").append(paymentmode);
  1202. $("#txt_BankBranch").val(data.BankBranch);
  1203. var refdate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(data.RefDate, "DD/MM/YYYY");
  1204. var ChequeDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(data.ChequeDate, "DD/MM/YYYY");
  1205. if (refdate == "01/01/0001") {
  1206. var strDate = $.datepicker.formatDate('dd/mm/yy', new Date());
  1207. $('#date_RefDate').val(strDate);
  1208. }
  1209. else {
  1210. $('#date_RefDate').val(refdate);
  1211. }
  1212. $('#date_ChequeDate').val(ChequeDate);
  1213. $('#txt_TotalCreditAmount').val(hasAmountValue);
  1214. $("#txt_TotalCreditAmount").attr("placeholder", "Amount");
  1215. $("#txt_TotalCreditAmount").data("label", "Amount");
  1216. $("#lbl_Credit").find("#spnIsRequired").removeClass("hidden");
  1217. }
  1218. else {
  1219. $("#div_BankId").addClass('hidden');
  1220. $("#div_BankBranch").addClass('hidden');
  1221. $("#div_ChequeDate").addClass('hidden');
  1222. $("#div_ChequeNo").addClass('hidden');
  1223. var stage = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith('_stageshortcode')).Value;
  1224. if (stage == "CNF") {
  1225. $("#txtAutoComplete_paymentmodeid").prop("disabled", true);
  1226. }
  1227. else {
  1228. $("#txtAutoComplete_paymentmodeid").prop("disabled", false);
  1229. }
  1230. var refdate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(data.RefDate, "DD/MM/YYYY");
  1231. $('#date_RefDate').val(refdate);
  1232. $('#txt_TotalCreditAmount').val(hasAmountValue);
  1233. $("#txt_RefNo").val(response.result.RefNo);
  1234. var paymentmode = new Option(data.PaymentModeName, data.PaymentModeId.toString(), true);
  1235. $(".txtAutoComplete_paymentmodeid").append(paymentmode);
  1236. }
  1237. }
  1238. if (data.PaymentModeId == Bizgaze.Apps.Transact.Enums.PaymentMode.Adjustment) {
  1239. $("#div_BankId").addClass('hidden');
  1240. $("#div_BankBranch").addClass('hidden');
  1241. $("#div_ChequeDate").addClass('hidden');
  1242. $("#div_ChequeNo").addClass('hidden');
  1243. var refdate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateformat(data.RefDate, "DD/MM/YYYY");
  1244. $('#date_RefDate').val(refdate);
  1245. $('#txt_TotalCreditAmount').val(hasAmountValue);
  1246. $("#txt_TotalCreditAmount").attr("placeholder", "Amount");
  1247. $("#txt_TotalCreditAmount").data("label", "Amount");
  1248. $("#lbl_Credit").find("#spnIsRequired").addClass("hidden");
  1249. $("#txt_RefNo").val(data.EntryRefNo);
  1250. var paymentmode = new Option(data.PaymentModeName, data.PaymentModeId.toString(), true);
  1251. $(".txtAutoComplete_paymentmodeid").append(paymentmode);
  1252. }
  1253. }
  1254. var totalAmt = Number($("#txt_TotalCreditAmount").val());
  1255. $("#hf_TotalCreditAmount").val(totalAmt);
  1256. }
  1257. else {
  1258. Bizgaze.Apps.Transact.Controls.PaymentMode.Instance().bindMultiplepayments(response.result.Payments);
  1259. $("#div_payments").removeClass("hidden");
  1260. }
  1261. }).then(function () {
  1262. Bizgaze.Apps.Transact.Controls.PaymentSummary.Instance().updatePaymentSummary();
  1263. eval('_floatingLabelHelper.init()');
  1264. });
  1265. }
  1266. }
  1267. deletePayment(appName) {
  1268. var instance = this;
  1269. var paymentId = 0;
  1270. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length != 0) {
  1271. var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  1272. var paymentId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_pk_id").Value);
  1273. if (paymentId != 0 && paymentId != null && paymentId != undefined) {
  1274. bootbox.confirm("Are you sure you want delete this " + appName + " ?", function (result) {
  1275. if (result == true) {
  1276. instance.fileCacheHelper.loadJsFile("apps/transact/managers/payments/paymentmanager.js", function () {
  1277. Bizgaze.Apps.Transact.Managers.PaymentManager.Instance().deletePayment(paymentId).then(function (response) {
  1278. if (response.status != Unibase.Data.Status.Error) {
  1279. Unibase.Platform.Helpers.NavigationHelper.Instance().loadList(Unibase.Themes.Providers.DetailHelper.installedAppId, null);
  1280. }
  1281. });
  1282. });
  1283. }
  1284. });
  1285. }
  1286. }
  1287. }
  1288. printPayment() {
  1289. var instance = this;
  1290. if ($(".printsetting").length != 0) {
  1291. var printhtml = $(".printsetting")[0].outerHTML;
  1292. $(".printsetting").remove();
  1293. $("#div_App_DefaultWidgetSettings").find(".row").append(printhtml);
  1294. $(".printsetting").find(".pull-right").removeClass("pull-right");
  1295. }
  1296. let detailContainer = "#" + Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  1297. var stage = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key.endsWith('_stageshortcode')).Value;
  1298. if (stage == "VD") {
  1299. $(detailContainer).find('.layout-details-stages').addClass('d-none');
  1300. }
  1301. $(detailContainer).find('.DetailSetting_' + Unibase.Themes.Providers.DetailHelper.installedAppId + '_Print').html('<span><i class=\"fa fa-print\"></i></span>');
  1302. $(detailContainer).find('.DetailSetting_' + Unibase.Themes.Providers.DetailHelper.installedAppId + '_Print').click(function () {
  1303. var paymentId = Unibase.Themes.Providers.DetailHelper.recordId;
  1304. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/transact/managers/payments/paymentmanager.js", function () {
  1305. Bizgaze.Apps.Transact.Managers.PaymentManager.Instance().paymentPrint(paymentId).then(function (response) {
  1306. var result = response.result;
  1307. if (isMobileApp()) {
  1308. Unibase.Platform.Helpers.MobileHelper.Instance().previewHtml(result.PrintHTML);
  1309. }
  1310. else {
  1311. instance.printPopup(result.PrintHTML);
  1312. }
  1313. });
  1314. });
  1315. });
  1316. }
  1317. printPopup(data) {
  1318. var mywindow = window.open('', 'my Print', 'height=400,width=850');
  1319. 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>';
  1320. content += data;
  1321. content += "<script>print();</script>";
  1322. content += '</body></html>';
  1323. mywindow.document.write(content);
  1324. return true;
  1325. }
  1326. RefreshReportsAndWidgets(Portletwidgetid, cid, paymentid) {
  1327. Unibase.Platform.Widgets.Managers.WidgetManager.Instance().getPortletWidget(Portletwidgetid).then(function (widresponse) {
  1328. if (widresponse.result != null) {
  1329. var WidgetID = Number(widresponse.result.WidgetId);
  1330. var portletwidgetid = Number(widresponse.result.PortletWidgetId);
  1331. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFile("apps/transact/components/bankreconciliation/findandmatchreconciliation.js", function () {
  1332. Bizgaze.Apps.Transact.Components.FindandMatch.Instance().linkReport(WidgetID, portletwidgetid, cid, paymentid);
  1333. });
  1334. }
  1335. });
  1336. }
  1337. ApproveStatus(REFstatusid) {
  1338. var instance = this;
  1339. var postdata = [];
  1340. var PaymentModeId = 0;
  1341. $(".form-check-input:checked").each(function () {
  1342. PaymentModeId = Number($(this).attr("data-property"));
  1343. if (PaymentModeId == 2) {
  1344. REFstatusid = 3;
  1345. }
  1346. postdata.push({
  1347. PaymentId: Number($(this).attr("id")),
  1348. PaymentTypeId: Number($(this).attr("value")),
  1349. PaymentModeId: REFstatusid,
  1350. });
  1351. });
  1352. if (postdata.length == 0) {
  1353. bootbox.confirm("Please Select Atleast One Account", function (result) { });
  1354. }
  1355. else if (postdata.length > 0) {
  1356. bootbox.confirm("Are you sure you want Change Status ?", function (result) {
  1357. if (result == true) {
  1358. instance.fileCacheHelper.loadJsFile("apps/transact/managers/payments/paymentmanager.js", function () {
  1359. Bizgaze.Apps.Transact.Managers.PaymentManager.Instance().changestatus(postdata).then(function (response) {
  1360. if (response.status != Unibase.Data.Status.Error) {
  1361. MessageHelper.Instance().showSuccess(response.message, 'StageChange_errormsg');
  1362. $('._bizgaze_popup_container').modal('hide');
  1363. var detail_instance = Unibase.Themes.Compact.Components.Details.Instance();
  1364. var containerid = $("._bizgaze_detail_container:visible").attr("id");
  1365. var _installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  1366. var portletid = Number($('#' + containerid).find('#hf_DashboardPortletId').val());
  1367. var portletName = $('#' + containerid).find('#hf_DashboardPortletName').val().toString();
  1368. Unibase.Themes.Compact.Components.Nav.Instance().loadDashboard(portletid, portletName);
  1369. }
  1370. else {
  1371. MessageHelper.Instance().showError(response.message, 'StageChange_errormsg');
  1372. }
  1373. });
  1374. });
  1375. }
  1376. });
  1377. }
  1378. }
  1379. static Instance() {
  1380. if (this.instance === undefined) {
  1381. this.instance = new PaymentMode();
  1382. }
  1383. return this.instance;
  1384. }
  1385. }
  1386. Controls.PaymentMode = PaymentMode;
  1387. })(Controls = Transact.Controls || (Transact.Controls = {}));
  1388. })(Transact = Apps.Transact || (Apps.Transact = {}));
  1389. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  1390. })(Bizgaze || (Bizgaze = {}));