Built files from Bizgaze WebServer
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

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 = {}));