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.

orderitems.component.js 321KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166
  1. var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
  2. function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
  3. return new (P || (P = Promise))(function (resolve, reject) {
  4. function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
  5. function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
  6. function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
  7. step((generator = generator.apply(thisArg, _arguments || [])).next());
  8. });
  9. };
  10. var Bizgaze;
  11. (function (Bizgaze) {
  12. let Apps;
  13. (function (Apps) {
  14. let Transact;
  15. (function (Transact) {
  16. let Controls;
  17. (function (Controls) {
  18. class OrderItems extends Unibase.Platform.Core.BaseComponent {
  19. constructor() {
  20. super(...arguments);
  21. this._order = Bizgaze.Apps.Transact.Controls.Order.Instance();
  22. this._cartDetails = Bizgaze.Apps.Transact.Controls.CartDetails.Instance();
  23. this.g_ValidFocItems = [];
  24. this.g_SelectedItems = [];
  25. this.g_AppliedOffers = [];
  26. this.g_LoadedItems = [];
  27. this.g_UOMs = [];
  28. this.g_PurPlanData = [];
  29. this.g_ItemsUnitPrice_New = [];
  30. this.g_CartItems_New = [];
  31. this.g_SC_PC_CartItems = [];
  32. this.g_AppliedTaxGroups = [];
  33. this.g_PageIndex = 0;
  34. this.g_PriceTypeId = 1;
  35. this.g_IsEnablePieces = false;
  36. this.g_IsEnablePacks = false;
  37. this.g_IsEnablePiecePrice = false;
  38. this.g_IsEnableCompositePrice = false;
  39. this.g_IsEnableCompositePiecePrice = false;
  40. this.g_BodyWidth = $('body').width();
  41. this.g_IsExcise = false;
  42. this.g_OfferApplyDate = new Date();
  43. this.g_FromWidget = false;
  44. this.g_FromWidgetEditOrderItemId = 0;
  45. this.g_FromContinueShopping = false;
  46. this.g_IsCategory = false;
  47. this.g_IsFilterApplied = false;
  48. this.g_TagArray = [];
  49. this.g_ContainerId = "";
  50. this.g_VisibleContainerId = "";
  51. this.Modified_Discount = 0;
  52. }
  53. init(formpropertyid, prop, callback) {
  54. let instance = this;
  55. instance.fileCacheHelper.loadJsFiles(["apps/transact/enums/enum.js", "apps/transact/controls/orders/cartdetails.component.js"], function () {
  56. instance.loadControlSettings(prop.ControlJsonText, prop.FormPropertyId);
  57. instance.loadPropertySettings(prop.PropertySettings, prop.FormPropertyId);
  58. });
  59. }
  60. loadControl(containerid, prop) {
  61. let instance = this;
  62. instance.g_ContainerId = containerid;
  63. instance.g_VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  64. instance._order.g_OrderTypeId = Number($("#" + instance.g_VisibleContainerId).find(".hdn_ordertypeid").val());
  65. let html = '<div class="w-100">' +
  66. '<input type = "hidden" id = "hdn_customcontrol" class="value-control" value = "Bizgaze.Apps.Transact.Controls.OrderItems.Instance().getOrderItems();"' +
  67. '<div class="floating-label-form-group div_SearchItem">' +
  68. '<div class="input-group">' +
  69. '<span class="input-group-prepend"></span>' +
  70. '<input type="search" id="txt_SearchItem" class="form-control floating-label-control pl-0" data-isdynamic="false" placeholder="Search Items" data-placeholder="Item Name (or) SKU" data-label="Search Items" autocomplete="on" />' + '<a href="javascript:;" id="crpnrd_btn_OpenScanner" class="input-group-append helo" ><span class="input-group-text" > <i class="fa fa-qrcode" > </i></span ></a>' +
  71. `<a href = "javascript:;" class="search-clear-items d-none" id = "` + containerid + `" onclick="Bizgaze.Apps.Transact.Controls.OrderItems.Instance().clearItemSearch()"> <i class="zmdi zmdi-close"></i></a> ` +
  72. '<span class="input-group-prepend input-group-btn p-0">';
  73. instance.fileCacheHelper.loadJsFile("apps/transact/enums/enum.js", function () {
  74. if (instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim || instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim) {
  75. html += '<select id="ItemLoadType" class="bg-transparent rounded-4 px-2 font-12"><option value="1">All</option><option value="2" onclick="Bizgaze.Apps.Transact.Controls.OrderItems.Instance().filterPopUp()">Filter</option></select>';
  76. }
  77. else {
  78. html += '<select id="ItemLoadType" class="bg-transparent rounded-4 px-2 font-12"><option value="1">All</option><option value="2">Offers</option><option value="3" onclick="Bizgaze.Apps.Transact.Controls.OrderItems.Instance().filterPopUp()">Filter</option></select>';
  79. }
  80. html += '</span>' +
  81. '</div>' +
  82. '</div>' +
  83. '</div>' +
  84. '<br/> <div class="InventorySettings"> </div>';
  85. $("#" + instance.g_VisibleContainerId).find("#" + containerid).html(html);
  86. instance.ItemsQrScan();
  87. });
  88. $("#" + instance.g_VisibleContainerId).find("#ItemLoadType").unbind().click(function () {
  89. $("#" + instance.g_VisibleContainerId).find(".div_SearchItem").removeClass("floating-label-form-group-with-value");
  90. });
  91. $("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").focusout(function () {
  92. if ($("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val() == "") {
  93. $("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").attr("placeholder", "Search Items");
  94. }
  95. });
  96. }
  97. ItemsQrScan() {
  98. $("#crpnrd_btn_OpenScanner").addClass("hidden");
  99. if (isMobileApp()) {
  100. $("#crpnrd_btn_OpenScanner").removeClass("hidden");
  101. $("#crpnrd_btn_OpenScanner").click(function () {
  102. Unibase.Platform.Helpers.MobileHelper.Instance().openQrScanner("Bizgaze.Apps.Transact.Controls.OrderItems.Instance().readScanner", "txt_SearchItem");
  103. });
  104. }
  105. else {
  106. $("#crpnrd_btn_OpenScanner").addClass("hidden");
  107. }
  108. }
  109. loadControlSettings(controlsettingjson, formpropertyid) {
  110. return null;
  111. }
  112. loadPropertySettings(propertysettings, formpropertyid) {
  113. return null;
  114. }
  115. bindEditFormDetails(formpropertyid, propval, DocPropertyName) {
  116. return null;
  117. }
  118. loadItems(SearchItem, UpdateAvailability = false, IsUpdateTax = false) {
  119. let instance = this;
  120. $("#" + instance.g_VisibleContainerId).find('.section_Items').removeClass('hidden');
  121. let OrganizationId = instance._order.g_OrganizationId;
  122. let LoBId = $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_lobid").val();
  123. let ShipTo = $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_shippingaddressid").val();
  124. if (ShipTo == null) {
  125. ShipTo = 0;
  126. }
  127. let BranchId = $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_billfromaddressid").val();
  128. if (SearchItem == "Offers" || SearchItem == "All Items" || SearchItem == "Filter" || SearchItem == "Eligible Items") { }
  129. else
  130. SearchItem = (encodeURIComponent(encodeURIComponent(SearchItem).replace('*', '%2A').replace('.', '%2E'))).replace(/\%/g, '!');
  131. if (!instance._order.g_IsPurchasePlanning) {
  132. if (SearchItem == undefined || SearchItem == '') {
  133. SearchItem = ' ';
  134. }
  135. if (SearchItem == "Offers") {
  136. instance._order.g_LoadOffersOnly = true;
  137. SearchItem = '';
  138. if (instance.g_IsFilterApplied) {
  139. instance.g_IsFilterApplied = false;
  140. instance.g_FilteredTags = '';
  141. instance.g_TagArray = [];
  142. Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_Tags = "";
  143. }
  144. }
  145. else if (SearchItem == "All Items") {
  146. instance._order.g_LoadOffersOnly = false;
  147. instance._order.g_LoadEligibleItemsOnly = false;
  148. instance.g_FilteredTags = '';
  149. instance.g_TagArray = [];
  150. Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_Tags = "";
  151. SearchItem = "";
  152. }
  153. else if (SearchItem == "Filter") {
  154. instance._order.g_LoadOffersOnly = false;
  155. }
  156. else if (SearchItem == "Eligible Items") {
  157. instance._order.g_LoadEligibleItemsOnly = true;
  158. SearchItem = "";
  159. }
  160. let PriceCodeId = instance._order.g_PriceCodeId;
  161. let ContactId = OrganizationId;
  162. if (instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales || instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim) {
  163. instance.g_WarehouseId = $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_shipfromaddressid").val();
  164. }
  165. else if (instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Purchase || instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim) {
  166. instance.g_WarehouseId = $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_shippingaddressid").val();
  167. }
  168. let varianturl;
  169. if (SearchItem.replace(" ", "") == "") {
  170. SearchItem = null;
  171. }
  172. if (Number(LoBId) == 0) {
  173. $("#" + instance.g_VisibleContainerId).find(".InventorySettings").empty();
  174. $("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").html('<li id="0" class="cartitem list-group-item col-xs-12 hidden clear no-border"></li> <li class="list-group-item col-xs-12 no-border EmptyCartLi"><strong>Your Shopping Cart is empty.</strong></li>');
  175. }
  176. else {
  177. instance.fileCacheHelper.loadJsFile("apps/transact/managers/inventory/itemmanager.js", function () {
  178. let ItemIds = "0";
  179. let Rows = 10;
  180. if (instance._order.g_IsSC_to_PC) {
  181. ItemIds = "";
  182. instance.g_CartItems_New.forEach(x => {
  183. ItemIds += x.ItemId + ",";
  184. });
  185. ItemIds = ItemIds.replace(/,\s*$/, "");
  186. Rows = 0;
  187. $("#" + instance.g_VisibleContainerId).find('.section_Items').addClass('hidden');
  188. }
  189. let postdata = {
  190. PriceCodeId: Number(PriceCodeId),
  191. ContactId: ContactId,
  192. ShippingAddressId: Number(ShipTo),
  193. BranchId: Number(BranchId),
  194. WareHouseId: Number(instance.g_WarehouseId),
  195. LobId: Number(LoBId),
  196. OrderType: instance._order.g_OrderTypeId,
  197. OfferOnly: instance._order.g_LoadOffersOnly,
  198. IsExcise: instance.g_IsExcise,
  199. SearchTerm: SearchItem,
  200. Page: instance.g_PageIndex,
  201. IsCompositePrice: instance.g_IsEnableCompositePrice,
  202. IsPiecePrice: instance.g_IsEnablePiecePrice,
  203. IsCompositePiecePrice: instance.g_IsEnableCompositePiecePrice,
  204. Rows: Rows,
  205. ItemId: ItemIds,
  206. CountryId: instance._order.g_CountryId,
  207. ItemGroupId: 0,
  208. Tags: Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_Tags,
  209. IsPoints: instance._order.g_IsPointsOrder,
  210. Points: instance._order.g_LoyaltyPoints,
  211. IsEligibleItemsOnly: instance._order.g_LoadEligibleItemsOnly
  212. };
  213. let cntId = instance._order.g_OrganizationId;
  214. if (cntId == 0)
  215. cntId = instance._order.g_OrgContactId;
  216. if ($("#" + instance.g_VisibleContainerId).find("#ItemLoadType option:selected").text() != "Filter" || (Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_Tags.length == 0 && $("#" + instance.g_VisibleContainerId).find("#ItemLoadType option:selected").text() == "Filter")) {
  217. if (Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_Tags.length == 0 && $("#" + instance.g_VisibleContainerId).find("#ItemLoadType option:selected").text() == "Filter") {
  218. instance._order.g_LoadOffersOnly = false;
  219. }
  220. }
  221. varianturl = Bizgaze.Apps.Transact.Managers.ItemManager.Instance().getItemsForOrder(postdata);
  222. instance.navigationHelper.showLoading();
  223. varianturl.then(function (response) {
  224. instance.navigationHelper.hideLoading();
  225. if (UpdateAvailability) {
  226. instance.updateItemsAvailability(response.result);
  227. }
  228. else if (response.result.length > 0) {
  229. instance.itemPagination(response, IsUpdateTax);
  230. if (!instance._order.g_IsPurchasePlanning) {
  231. $("#" + instance.g_VisibleContainerId).find("#btn_CheckOutOrder").removeClass("hidden");
  232. }
  233. if (instance.g_CartItems_New.length == 0) {
  234. $("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").html('<li id="0" class="cartitem list-group-item col-xs-12 hidden clear no-border"></li> <li class="list-group-item col-xs-12 no-border EmptyCartLi"><strong>Your Shopping Cart is empty.</strong></li>');
  235. }
  236. instance.navigationHelper.hideLoading();
  237. }
  238. else {
  239. $("#" + instance.g_VisibleContainerId).find(".div_titledetails").addClass("hidden");
  240. if (instance._order.g_LoadOffersOnly) {
  241. $("#" + instance.g_VisibleContainerId).find("#div_ItemList").html('<ul class="variant-list list-group" style="margin:0px -21px" id="Items-list"><li class="variant-item"><div class="text-center">Offer Items not found.</div></li></ul>');
  242. }
  243. else if (instance._order.g_LoadEligibleItemsOnly) {
  244. $("#" + instance.g_VisibleContainerId).find("#div_ItemList").html('<ul class="variant-list list-group" style="margin:0px -21px" id="Items-list"><li class="variant-item"><div class="text-center">Eligible Items not found.</div></li></ul>');
  245. }
  246. else {
  247. if (instance._order.g_CreateItem == 1 || instance._order.g_IsAdmin == 1) {
  248. $("#" + instance.g_VisibleContainerId).find("#div_ItemList").html('<ul class="variant-list list-group" style="margin:0px -21px" id="Items-list"><li class="variant-item"> <div class="text-center">Items not found.</div><br><div class="text-center"><button id="btn_AddNewItem" class="btn btn-primary">Create New Item</button></li></ul>');
  249. }
  250. else {
  251. $("#" + instance.g_VisibleContainerId).find("#div_ItemList").html('<ul class="variant-list list-group" style="margin:0px -21px" id="Items-list"><li class="variant-item"><div class="text-center">Items not found.</div></li></ul>');
  252. }
  253. }
  254. if (instance.g_CartItems_New.length == 0 && instance._order.g_IsFromPurchaseIndent) {
  255. let text = "Your Shopping Cart is empty.";
  256. if (instance._order.g_IsFromPurchaseIndent) {
  257. text = "No Pending Purchase Indent Items.";
  258. }
  259. $("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").html('<li id="0" class="cartitem list-group-item col-xs-12 hidden clear no-border"></li> <li class="list-group-item col-xs-12 no-border EmptyCartLi"><strong>' + text + '</strong></li>');
  260. }
  261. $("#btn_AddNewItem").click(function () {
  262. Bizgaze.Apps.Transact.Controls.OrderItems.Instance().getItemForm();
  263. });
  264. }
  265. });
  266. });
  267. }
  268. }
  269. }
  270. getItemForm() {
  271. let instance = Bizgaze.Apps.Transact.Controls.OrderItems.Instance();
  272. instance.fileCacheHelper.loadJsFiles(['platform/forms/managers/formmanager.js', 'platform/apps/managers/appmanager.js'], function () {
  273. var FormUniqueId = 'Bizgaze_Extension_Transact_Items_App_Items_CreateForm';
  274. Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId(FormUniqueId).then(function (response) {
  275. var successCallBack = {
  276. CallBack: function (ItemId) {
  277. instance.bindNewAddedItem(ItemId);
  278. },
  279. Parameters: null,
  280. };
  281. var onLoadAddItem = {
  282. CallBack: function (ItemId) {
  283. let VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  284. let Parameters = [
  285. { ColumnName: 'lobid', Value: instance._order.g_LobId },
  286. ];
  287. Unibase.Forms.Controls.AutoComplete.Instance().LoadAutoComplete($("#" + VisibleContainerId).find(".txtAutoComplete_productid"), Parameters);
  288. },
  289. Parameters: null,
  290. };
  291. var formviewerObj = {
  292. FormId: response.result.FormId,
  293. AppConfigurationId: 0,
  294. Pk_Value: 0,
  295. PortletWidgetId: 0,
  296. OnSuccess: successCallBack,
  297. OnFail: null,
  298. OnLoad: onLoadAddItem,
  299. };
  300. Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj);
  301. instance.navigationHelper.hideLoading();
  302. });
  303. });
  304. }
  305. bindNewAddedItem(ItemId) {
  306. let instance = this;
  307. let LoBId = $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_lobid").val();
  308. let ShipTo = $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_shippingaddressid").val();
  309. if (ShipTo == null) {
  310. ShipTo = 0;
  311. }
  312. let BranchId = $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_billfromaddressid").val();
  313. let postdata = {
  314. PriceCodeId: Number(instance._order.g_PriceCodeId),
  315. ContactId: instance._order.g_OrganizationId,
  316. ShippingAddressId: Number(ShipTo),
  317. BranchId: Number(BranchId),
  318. WareHouseId: Number(instance.g_WarehouseId),
  319. LobId: Number(LoBId),
  320. OrderType: instance._order.g_OrderTypeId,
  321. OfferOnly: false,
  322. IsExcise: instance.g_IsExcise,
  323. SearchTerm: "",
  324. Page: 0,
  325. IsCompositePrice: instance.g_IsEnableCompositePrice,
  326. IsPiecePrice: instance.g_IsEnablePiecePrice,
  327. IsCompositePiecePrice: instance.g_IsEnableCompositePiecePrice,
  328. Rows: 10,
  329. ItemId: ItemId.toString(),
  330. CountryId: instance._order.g_CountryId,
  331. ItemGroupId: 0,
  332. Tags: "",
  333. IsPoints: instance._order.g_IsPointsOrder,
  334. Points: instance._order.g_LoyaltyPoints,
  335. IsEligibleItemsOnly: instance._order.g_LoadEligibleItemsOnly,
  336. ApplyDate: instance.g_OfferApplyDate
  337. };
  338. Bizgaze.Apps.Transact.Managers.ItemManager.Instance().getItemsForOrder(postdata).then(function (res) {
  339. instance.itemPagination(res);
  340. });
  341. }
  342. loadPurchasePlanItems(SearchTerm) {
  343. let instance = this;
  344. let LoadTypeId = Number($("#" + instance.g_VisibleContainerId).find("#ItemLoadType option:selected").val());
  345. SearchTerm = SearchTerm == "" ? null : SearchTerm;
  346. instance.navigationHelper.showLoading();
  347. $("#" + instance.g_VisibleContainerId).find(".divselectall").removeClass('hidden');
  348. let VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  349. $("#" + instance.g_VisibleContainerId).find("#" + VisibleContainerId).find(".Section").addClass("hidden");
  350. $("#" + instance.g_VisibleContainerId).find("#" + VisibleContainerId).find(".section_Items, .section_Calculations").removeClass("hidden");
  351. $("#" + instance.g_VisibleContainerId).find("#" + VisibleContainerId).find("#btn_Checkout").addClass("hidden");
  352. let InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
  353. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  354. let EstimateId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_estimateid").Value);
  355. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().getPurchasePlanItems(EstimateId, LoadTypeId, SearchTerm, 0).then(function (response) {
  356. instance.navigationHelper.hideLoading();
  357. if (response.code == "0") {
  358. var data = response.result;
  359. $("#" + instance.g_VisibleContainerId).find(".variant-addeditem").empty();
  360. instance.itemPagination(response);
  361. }
  362. else {
  363. Unibase.Platform.Forms.Components.FormViewer.Instance().showError(response.code);
  364. }
  365. });
  366. }
  367. itemPagination(response, IsUpdateTax = false) {
  368. let instance = this;
  369. response.result.forEach(x => {
  370. let LoadedItem_Index = instance.g_LoadedItems.findIndex(z => z.ItemId == x.ItemId);
  371. if (LoadedItem_Index == -1) {
  372. instance.g_LoadedItems.push(x);
  373. }
  374. else {
  375. instance.g_LoadedItems[LoadedItem_Index] = x;
  376. }
  377. });
  378. instance.bindItemList(response.result);
  379. if (response.result.length <= 10 && response.result.length != 0) {
  380. $("#" + instance.g_VisibleContainerId).find('#div_OrderItems_pagination').removeClass('hidden');
  381. $("#" + instance.g_VisibleContainerId).find('#ItemsListPagination').removeClass('hidden');
  382. let totalCount = response.result[0].TotalRecords;
  383. if (instance._order.g_IsPurchasePlanning) {
  384. totalCount = response.result.length;
  385. }
  386. let startingValue = 0;
  387. let _count = 0;
  388. let t = (instance.g_PageIndex + 1) * 10;
  389. if (totalCount > 0) {
  390. startingValue = 1;
  391. _count = totalCount;
  392. }
  393. if (totalCount > t)
  394. _count = t;
  395. if (instance.g_PageIndex > 0) {
  396. startingValue += t - 10;
  397. }
  398. let res = startingValue + " - " + _count + " of " + totalCount;
  399. $("#" + instance.g_VisibleContainerId).find('#lblItemTotalRecords').text(res);
  400. $("#" + instance.g_VisibleContainerId).find('.labelSection_ItemsCount').text("Total: " + response.result.length + " Items").addClass("col-sm-12").addClass("text-right").addClass("h5");
  401. let elem = $("#" + instance.g_VisibleContainerId).find('#ItemsListPagination');
  402. elem.pagination(response.result[0].TotalRecords, 10, {
  403. items_per_page: 10,
  404. callback: function (page, component) {
  405. instance.g_PageIndex = page;
  406. instance.loadItems($("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val());
  407. }, current_page: instance.g_PageIndex
  408. });
  409. }
  410. else {
  411. $("#" + instance.g_VisibleContainerId).find('#lblItemTotalRecords').text(response.result.length);
  412. $("#" + instance.g_VisibleContainerId).find('.labelSection_ItemsCount').text("Total: " + response.result.length + " Items").addClass("col-sm-12").addClass("text-right").addClass("h5");
  413. $("#" + instance.g_VisibleContainerId).find("#ItemsListPagination").addClass("hidden");
  414. }
  415. if (IsUpdateTax) {
  416. instance.refreshAllItems(instance.g_FromWidget, "PriceTypeClickEvents");
  417. }
  418. }
  419. bindItemList(items) {
  420. let instance = this;
  421. let LobId = Number($("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_lobid").val());
  422. let BillingAddressId = Number($("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_billingaddressid").val());
  423. let BranchId = Number($("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_billfromaddressid").val());
  424. $("#" + instance.g_VisibleContainerId).find("#div_ItemList").html('<ul class="variant-list list-group" id="Items-list" style="margin:0px -21px"><li class="variant-item hidden"></li>');
  425. if (items.length == 0) {
  426. if (instance._order.g_LoadOffersOnly) {
  427. $("#" + instance.g_VisibleContainerId).find(".variant-list").html('<li><div class="text-center">Offer Items not found.</div></li></ul>');
  428. }
  429. else if (instance._order.g_LoadEligibleItemsOnly) {
  430. $("#" + instance.g_VisibleContainerId).find(".variant-list").html('<li><div class="text-center">Eligible Items not found.</div></li></ul>');
  431. }
  432. else {
  433. $("#" + instance.g_VisibleContainerId).find(".variant-list").html('<li><div class="text-center">Items not found.</div></li></ul>');
  434. }
  435. $("#" + instance.g_VisibleContainerId).find(".div_titledetails").addClass("hidden");
  436. return false;
  437. }
  438. else
  439. $("#" + instance.g_VisibleContainerId).find(".div_titledetails").removeClass("hidden");
  440. let kpi_totalqty = 0;
  441. let kpi_itemscount = 0;
  442. let kpi_totalamount = 0;
  443. let kpi_totalinwardqty = 0;
  444. let kpi_totalinwardamount = 0;
  445. let kpi_ExtraItems = 0;
  446. let kpi_offeritems = 0;
  447. let lbl_Carton = "ml-95";
  448. let lbl_Pieces = "pl-75";
  449. if (instance.g_BodyWidth > 320 && instance.g_BodyWidth < 400) {
  450. lbl_Carton = "ml-45";
  451. lbl_Pieces = "pl-10";
  452. }
  453. if (instance.g_BodyWidth > 400 && instance.g_BodyWidth < 470) {
  454. lbl_Carton = "ml-55";
  455. lbl_Pieces = "pl-25";
  456. }
  457. if (instance.g_BodyWidth > 1300 && instance.g_BodyWidth <= 1600) {
  458. lbl_Carton = "ml-65";
  459. lbl_Pieces = "pl-55";
  460. }
  461. if (instance._order.g_IsPurchasePlanning) {
  462. let temptext = instance.getItemDesignWithTokens_PurchasePlan();
  463. var templateScript = Handlebars.compile(temptext);
  464. var html = "";
  465. $("#" + instance.g_VisibleContainerId).find(".div_PurchasePlanningFooterValues").remove();
  466. $("#" + instance.g_VisibleContainerId).find("#formFooter").append(`<div class="div_PurchasePlanningFooterValues col-sm-10 row"> <div class="col-sm-6" > <strong class="font-15">Total Suggested Qty: <span id="spn_Total_Suggested_Qty"> 0 </span> </span></div><div class="col-sm-6"> <strong class="font-15">Total Suggested Value: <span id="spn_Total_Suggested_Value"> 0 </span> </span></div></div>`);
  467. let TotalSuggestedQty = 0;
  468. let TotalSuggestedValue = 0;
  469. items.forEach(x => {
  470. let url = '';
  471. let ItemImg = "";
  472. let imgtag = "";
  473. let faimg = "";
  474. let LoadedItemIndex = instance.g_LoadedItems.findIndex(y => y.ItemId == x.ItemId);
  475. if (LoadedItemIndex != -1) {
  476. url = instance.g_LoadedItems[LoadedItemIndex].ImageUrl;
  477. if (url == "" || url == undefined || url == null) {
  478. faimg = "";
  479. imgtag = "hidden";
  480. }
  481. else {
  482. faimg = "hidden";
  483. imgtag = "";
  484. }
  485. }
  486. else {
  487. if (x.ImageUrl == "" || x.ImageUrl == undefined || x.ImageUrl == null) {
  488. faimg = "";
  489. imgtag = "hidden";
  490. }
  491. else {
  492. url = x.ImageUrl;
  493. faimg = "hidden";
  494. imgtag = "";
  495. }
  496. }
  497. let Mod_UnitPrice = 0;
  498. let Items_up = instance.g_ItemsUnitPrice_New.filter(y => y.ItemId == x.ItemId);
  499. if (Items_up.length == 0) {
  500. Mod_UnitPrice = x.ConfirmedUnitPrice;
  501. instance.g_ItemsUnitPrice_New.push({
  502. ItemId: x.ItemId,
  503. UnitPrice: x.UnitPrice,
  504. TaxRateAmount: x.TaxRateAmount
  505. });
  506. }
  507. else {
  508. Mod_UnitPrice = Items_up[0].ConfirmedUnitPrice;
  509. }
  510. let PurchasePlanChecked = "";
  511. if (x.IsConfirmed) {
  512. PurchasePlanChecked = "checked";
  513. }
  514. let OrderQuantity = "";
  515. let multiplevalue = "";
  516. if (x.ConfirmedPacks > 0 && x.ConfirmedQty > 0) {
  517. x.SuggestedPacks = x.ConfirmedPacks;
  518. }
  519. if ((x.SuggestedPacks) != 0 && (x.SuggestedPacks) != null && (x.SuggestedPacks) != undefined) {
  520. let unitprice = Number(Mod_UnitPrice);
  521. let packCount = Number(x.PackCount);
  522. let packSize = Number(x.PackSize);
  523. let baseqty = packCount * packSize * x.SuggestedPacks;
  524. OrderQuantity = " X " + (baseqty);
  525. multiplevalue = " = " + (unitprice * baseqty);
  526. TotalSuggestedQty += baseqty;
  527. TotalSuggestedValue += (unitprice * baseqty);
  528. }
  529. let offerDiscountClass = "";
  530. if (x.IsOfferAvailable && x.IsOfferDiscountApplied && !instance._order.g_IsManageOfferDiscount) {
  531. offerDiscountClass = "readonly";
  532. }
  533. let Discount = 0;
  534. if (x.ConfirmedDiscountValue > 0) {
  535. Discount = x.ConfirmedDiscountValue;
  536. }
  537. if (x.ConfirmedDiscountPercent > 0) {
  538. Discount = x.ConfirmedDiscountPercent;
  539. }
  540. let fltngclass_Cartons = "", fltngclass_Pieces = "", PP_Cartons = "", PP_Pieces = "";
  541. if (x.SuggestedPacks != 0) {
  542. PP_Cartons = x.ConfirmedPacks.toString();
  543. }
  544. let CartItem_Index = -1;
  545. CartItem_Index = instance.g_CartItems_New.findIndex(y => y.ItemId == x.ItemId && y.RefItemIds == "");
  546. let CartItem = instance.g_CartItems_New[CartItem_Index];
  547. if (CartItem != undefined) {
  548. PP_Cartons = CartItem.Packs.toString();
  549. PP_Pieces = CartItem.Pieces.toString();
  550. }
  551. if (PP_Cartons == "0") {
  552. PP_Cartons = "";
  553. }
  554. if (PP_Cartons != "") {
  555. fltngclass_Cartons = "floating-label-form-group-with-value";
  556. }
  557. if (PP_Pieces == "0") {
  558. PP_Pieces = "";
  559. }
  560. if (PP_Pieces != "") {
  561. fltngclass_Pieces = "floating-label-form-group-with-value";
  562. }
  563. x.imgurl = url;
  564. x.faimg = faimg;
  565. x.imgtag = imgtag;
  566. x.ItemImg = ItemImg;
  567. x.OrderQuantity = OrderQuantity;
  568. x.multiplevalue = multiplevalue;
  569. x.Mod_UnitPrice = Mod_UnitPrice;
  570. x.offerDiscountClass = offerDiscountClass;
  571. x.PP_Cartons = PP_Cartons;
  572. x.PP_Pieces = PP_Pieces;
  573. x.fltngclass_Cartons = fltngclass_Cartons;
  574. x.fltngclass_Pieces = fltngclass_Pieces;
  575. x.PurchasePlanChecked = PurchasePlanChecked;
  576. x.Discount = Discount;
  577. x.BranchId = '"' + x.BranchId.toString() + '"';
  578. x.IsDisabledCheckBox = x.SuggestedPacks > 0 ? "" : "disabled";
  579. let ItemId = x.ItemId;
  580. html = templateScript(x);
  581. $("#" + instance.g_VisibleContainerId).find(".variant-item:last").after(html);
  582. let element = $("#" + instance.g_VisibleContainerId).find(".variant-item:last");
  583. if (x.UnitPrice == 0 && instance.roundOff(x.SuggestedPacks, 0) > 0) {
  584. if (element.find(".tax-error").text() == "") {
  585. element.find(".tax-error").text("Unit price is zero").removeClass("text-danger").addClass("text-warning");
  586. }
  587. }
  588. instance.allItemEvents(element);
  589. let SelItem = instance.g_SelectedItems.find(x => x.ItemId == ItemId);
  590. if (SelItem != null) {
  591. let element = $("#" + instance.g_VisibleContainerId).find(".variant-item:last");
  592. instance.updateItemsDesign(element, "BindItemList");
  593. let Cartons = SelItem.Packs;
  594. if (instance._order.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  595. Cartons = SelItem.Quantity;
  596. }
  597. if (Cartons == 0) {
  598. $("#" + instance.g_VisibleContainerId).find(element).find(".txtOrder_ItemCount").val("");
  599. }
  600. if (SelItem.Pieces == 0) {
  601. $("#" + instance.g_VisibleContainerId).find(element).find(".txtOrder_ItemPieceCount").val("");
  602. }
  603. instance.checkValidations(ItemId, false);
  604. }
  605. else {
  606. if (instance._order.g_IsPurchasePlanning && x.SuggestedPacks > 0) {
  607. }
  608. else {
  609. $("#" + instance.g_VisibleContainerId).find(element).find(".txtOrder_ItemCount").val("");
  610. $("#" + instance.g_VisibleContainerId).find(element).find(".txtOrder_ItemPieceCount").val("");
  611. }
  612. }
  613. });
  614. TotalSuggestedQty = instance.roundOffIgnoreZerosAfterDecimal(TotalSuggestedQty);
  615. TotalSuggestedValue = instance.roundOffIgnoreZerosAfterDecimal(TotalSuggestedValue);
  616. $("#" + instance.g_VisibleContainerId).find("#spn_Total_Suggested_Qty").text(TotalSuggestedQty);
  617. $("#" + instance.g_VisibleContainerId).find("#spn_Total_Suggested_Value").text(TotalSuggestedValue);
  618. if ($("#" + instance.g_VisibleContainerId).find(".chk_PurPlanItem:visible").length != $("#" + instance.g_VisibleContainerId).find(".chk_PurPlanItem:visible:checked").length) {
  619. $("#" + instance.g_VisibleContainerId).find('#chk_AllItems').prop('checked', false);
  620. }
  621. else {
  622. $("#" + instance.g_VisibleContainerId).find('#chk_AllItems').prop('checked', true);
  623. }
  624. instance.navigationHelper.showLoading();
  625. $("#" + instance.g_VisibleContainerId).find(".variant-list").find(".chk_PurPlanItem:checked").each(function () {
  626. let element = $("#" + instance.g_VisibleContainerId).find(this).closest(".variant-item");
  627. if (element.find("#txt_Cartons").val() != 0 && element.find("#txt_Cartons").val() != "") {
  628. instance.updateItemsArray(element, "PurPlan_AllItems", false);
  629. $("#" + instance.g_VisibleContainerId).find(element).find(".chk_PurPlanItem").prop("checked", true);
  630. }
  631. });
  632. instance.navigationHelper.hideLoading();
  633. instance.getPurchasePlanTotals(true, false);
  634. }
  635. else {
  636. for (let i = 0; i < items.length; i++) {
  637. let data;
  638. if (instance._order.g_IsPurchasePlanning) {
  639. data = items[i];
  640. let kpi_suggestedPacks = items[i].SuggestedPacks;
  641. let kpi_inwardPacks = items[i].InwardOrderPacks;
  642. let kpi_packSize = data.PackSize;
  643. let kpi_packCount = data.PackCount;
  644. let kpi_unitprice = data.UnitPrice;
  645. kpi_totalqty += (Number(kpi_suggestedPacks) * Number(kpi_packSize) * Number(kpi_packCount));
  646. kpi_totalamount += (Number(kpi_suggestedPacks) * Number(kpi_unitprice) * Number(kpi_packSize) * Number(kpi_packCount));
  647. if (Number(kpi_suggestedPacks) > 0) {
  648. kpi_itemscount += kpi_suggestedPacks;
  649. }
  650. kpi_totalinwardqty += (Number(kpi_inwardPacks) * Number(kpi_packSize) * Number(kpi_packCount));
  651. kpi_totalinwardamount += (Number(kpi_inwardPacks) * Number(kpi_unitprice) * Number(kpi_packSize) * Number(kpi_packCount));
  652. }
  653. else {
  654. data = items[i];
  655. }
  656. let ItemId = data.ItemId;
  657. let html = "";
  658. if (instance._order.g_IsPurchasePlanning) {
  659. if ((items[i].SuggestedPacks) != 0 && (items[i].SuggestedPacks) != null && (items[i].SuggestedPacks) != undefined) {
  660. }
  661. else if (data.IsOfferAvailable)
  662. kpi_offeritems++;
  663. else
  664. kpi_ExtraItems++;
  665. html = instance.getItemDesign(items[i]);
  666. }
  667. else {
  668. html = instance.getItemDesign(data);
  669. }
  670. $("#" + instance.g_VisibleContainerId).find(".variant-item:last").after(html);
  671. let element = $("#" + instance.g_VisibleContainerId).find(".variant-item:last");
  672. if (instance._order.g_IsPurchasePlanning) {
  673. if (data.UnitPrice == 0 && instance.roundOff(items[i].SuggestedPacks, 0) > 0) {
  674. if (element.find(".tax-error").text() == "") {
  675. element.find(".tax-error").text("Unit price is zero").removeClass("text-danger").addClass("text-warning");
  676. }
  677. }
  678. }
  679. instance.allItemEvents(element);
  680. let SelItem = instance.g_SelectedItems.find(x => x.ItemId == ItemId);
  681. if (SelItem != null) {
  682. let element = $("#" + instance.g_VisibleContainerId).find(".variant-item:last");
  683. instance.updateItemsDesign(element, "BindItemList");
  684. let Cartons = SelItem.Packs;
  685. if (instance._order.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  686. Cartons = SelItem.Quantity;
  687. }
  688. if (Cartons == 0) {
  689. $("#" + instance.g_VisibleContainerId).find(element).find(".txtOrder_ItemCount").val("");
  690. }
  691. if (SelItem.Pieces == 0) {
  692. $("#" + instance.g_VisibleContainerId).find(element).find(".txtOrder_ItemPieceCount").val("");
  693. }
  694. instance.checkValidations(ItemId, false);
  695. }
  696. else {
  697. if (instance._order.g_IsPurchasePlanning && items[i].SuggestedPacks > 0) {
  698. }
  699. else {
  700. $("#" + instance.g_VisibleContainerId).find(element).find(".txtOrder_ItemCount").val("");
  701. $("#" + instance.g_VisibleContainerId).find(element).find(".txtOrder_ItemPieceCount").val("");
  702. }
  703. }
  704. }
  705. }
  706. let pageHtml = "";
  707. pageHtml = '<div class="row mt-15 col-sm-12"> ' +
  708. '<div class="col-sm-3">' +
  709. '<span class="text-dark ml-30">Total : <span id="lblItemTotalRecords" class="">0</span></span>' +
  710. '</div>' +
  711. '<div class="col-sm-9 hidden" id="div_OrderItems_pagination">' +
  712. '<div id="ItemsListPagination" class="pagination custom-pagination pagination-rounded pull-right mr-20"></div>' +
  713. '</div>' +
  714. '</div>';
  715. $("#" + instance.g_VisibleContainerId).find(".variant-item:last").after(pageHtml);
  716. if (instance._order.g_IsPurchasePlanning) {
  717. $("#" + instance.g_VisibleContainerId).find("#span_SuggPurchaseOrderValue").text(kpi_totalamount);
  718. $("#" + instance.g_VisibleContainerId).find("#span_SuggPurchaseOrderVolume").text(kpi_itemscount);
  719. $("#" + instance.g_VisibleContainerId).find("#span_PurchaseOrderVolume").text(kpi_totalinwardqty);
  720. $("#" + instance.g_VisibleContainerId).find("#span_PurchaseOrderValue").text(kpi_totalinwardamount);
  721. $("#" + instance.g_VisibleContainerId).find("#span_OfferItems").text(kpi_offeritems);
  722. $("#" + instance.g_VisibleContainerId).find("#span_ExtraItems").text(kpi_ExtraItems);
  723. }
  724. if (instance._order.g_IsSC_to_PC) {
  725. for (let i = 0; i < instance.g_CartItems_New.length; i++) {
  726. let Itm = instance.g_CartItems_New[i];
  727. let elem = $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + Itm.ItemId);
  728. if (elem != undefined && elem.length > 0) {
  729. let row = instance.g_LoadedItems.find(x => x.ItemId == Itm.ItemId);
  730. if (row != undefined && row != null) {
  731. $("#" + instance.g_VisibleContainerId).find(elem).find("#txt_editItemPrice").val(row.UnitPrice);
  732. }
  733. if (instance._order.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  734. $("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemCount").val(Itm.Quantity);
  735. }
  736. else {
  737. let onlyPacks = parseInt((Number(Itm.Quantity) / Number(row.PackCount * row.PackSize)).toString());
  738. let remainingQty = Itm.Quantity - (onlyPacks * row.PackCount * row.PackSize);
  739. let onlyPieces = remainingQty / row.PackSize;
  740. Itm.Packs = Number(onlyPacks);
  741. Itm.Pieces = Number(instance.roundOff(onlyPieces));
  742. $("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemCount").val(Itm.Packs);
  743. $("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemPieceCount").val(Itm.Pieces);
  744. }
  745. $("#" + instance.g_VisibleContainerId).find(elem).find(".btnOrder_DiscType").val(Itm.DiscountType);
  746. if (Itm.DiscountPercent > 0) {
  747. $("#" + instance.g_VisibleContainerId).find(elem).find("#Ord_txtdiscount").val(Itm.DiscountPercent);
  748. }
  749. else {
  750. $("#" + instance.g_VisibleContainerId).find(elem).find("#Ord_txtdiscount").val(Itm.DiscountValue);
  751. }
  752. instance.updateItemsArray(elem, "Bind_SC_PC_CartItems", false, 0);
  753. }
  754. let cart_elem = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + Itm.ItemId);
  755. if (cart_elem.length == 0) {
  756. instance.addCartItem(Itm.ItemId);
  757. }
  758. cart_elem = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + Itm.ItemId);
  759. if (cart_elem != undefined && cart_elem.length > 0) {
  760. let row = instance.g_LoadedItems.find(x => x.ItemId == Itm.ItemId);
  761. if (row != undefined && row != null) {
  762. $("#" + instance.g_VisibleContainerId).find(cart_elem).find("#txt_editItemPrice").val(row.UnitPrice);
  763. }
  764. if (instance._order.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  765. $("#" + instance.g_VisibleContainerId).find(cart_elem).find(".txtOrder_ItemCount").val(Itm.Quantity);
  766. }
  767. else {
  768. $("#" + instance.g_VisibleContainerId).find(cart_elem).find(".txtOrder_ItemCount").val(Itm.Packs);
  769. $("#" + instance.g_VisibleContainerId).find(cart_elem).find(".txtOrder_ItemPieceCount").val(Itm.Pieces);
  770. }
  771. $("#" + instance.g_VisibleContainerId).find(cart_elem).find(".btnOrder_DiscType").val(Itm.DiscountType);
  772. if (Itm.DiscountPercent > 0) {
  773. $("#" + instance.g_VisibleContainerId).find(cart_elem).find("#Ord_txtdiscount").val(Itm.DiscountPercent);
  774. }
  775. else {
  776. $("#" + instance.g_VisibleContainerId).find(cart_elem).find("#Ord_txtdiscount").val(Itm.DiscountValue);
  777. }
  778. instance.updateItemsArray(cart_elem, "Bind_SC_PC_CartItems", false);
  779. }
  780. }
  781. }
  782. }
  783. updateItemsArray(elem, event, FromWidget = false, Qty = 0, Pcs = 0) {
  784. let instance = this;
  785. let OrderItemId = 0;
  786. let RefOrderItemId = 0;
  787. let SelectedUnitId = 1;
  788. let SelectedUnitName = "";
  789. let DefaultSize = 0;
  790. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length > 0 && !instance._order.g_IsSC_to_PC && !instance._order.g_IsPurchasePlanning && !instance._order.g_IsFromPurchaseIndent) {
  791. FromWidget = true;
  792. }
  793. let DiscountPercent = 0, DiscountValue = 0, DiscountAmount = 0, AfterDiscountValue = 0, BaseQty = 0, TaxGroupId = 0, TaxGroupName = "", TaxAmount = 0, StrTaxPercents = "", TaxRateAmount = 0, Amount = 0, IsCheckPendingItems = false, IsLeverageError = false, IsTaxError = false, IsPacksFocus = false, IsPiecesFocus = false;
  794. let FocusTxt = instance.getItemFocus(elem);
  795. if (FocusTxt == "Packs") {
  796. IsPacksFocus = true;
  797. }
  798. else {
  799. IsPiecesFocus = true;
  800. }
  801. let IsCalculateTax = instance._order.g_IsCalculateTax;
  802. let ItemIndex = instance.g_CartItems_New.length + 1;
  803. let optoutAmount = 0;
  804. let ItemId = Number($("#" + instance.g_VisibleContainerId).find(elem).find(".hfOrder_ItemId").val());
  805. let Packs = isNaN(Number($("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemCount").val())) ? 0 : Number($("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemCount").val());
  806. let Pieces = isNaN(Number($("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemPieceCount").val())) ? 0 : Number($("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemPieceCount").val());
  807. if (Pieces == 0 && Pcs > 0) {
  808. Pieces = Pcs;
  809. }
  810. let UnitPrice = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#txt_editItemPrice").val());
  811. let UnitPriceWithOutTax = UnitPrice;
  812. let DiscountType = Number($("#" + instance.g_VisibleContainerId).find(elem).find(".btnOrder_DiscType").val());
  813. let IsExchangeDC = $("#" + instance.g_VisibleContainerId).find(elem).find(".chkItem_ExchangeDC").prop("checked");
  814. if (IsExchangeDC == undefined) {
  815. IsExchangeDC = false;
  816. }
  817. let IsAfterTax = $("#" + instance.g_VisibleContainerId).find(elem).find(".divAfterTax").is(':checked');
  818. if (DiscountType == 1) {
  819. DiscountPercent = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#Ord_txtdiscount").val());
  820. DiscountAmount = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#txt_editItemPrice").val()) * Number(DiscountPercent / 100);
  821. AfterDiscountValue = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#txt_editItemPrice").val()) - Number(DiscountAmount);
  822. }
  823. else if (DiscountType == 2) {
  824. DiscountValue = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#Ord_txtdiscount").val());
  825. DiscountAmount = DiscountValue;
  826. AfterDiscountValue = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#txt_editItemPrice").val()) - DiscountValue;
  827. }
  828. let LoadedItems_Index = instance.g_LoadedItems.findIndex(x => x.ItemId == ItemId);
  829. let SelectedItems_Index = -1;
  830. if (instance.g_SelectedItems != undefined) {
  831. SelectedItems_Index = instance.g_SelectedItems.findIndex(x => x.ItemId == ItemId && x.RefItemIds == "");
  832. }
  833. let CartItems_Index = -1;
  834. if (instance.g_CartItems_New != undefined) {
  835. CartItems_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds == "");
  836. if (CartItems_Index != -1) {
  837. IsPacksFocus = instance.g_CartItems_New[CartItems_Index].IsPacksFocus;
  838. IsPiecesFocus = instance.g_CartItems_New[CartItems_Index].IsPiecesFocus;
  839. }
  840. }
  841. let row = instance.g_LoadedItems[LoadedItems_Index];
  842. let PurPlan_Index = instance.g_PurPlanData.findIndex(x => x.ItemId == ItemId);
  843. let PurPlanRow = [];
  844. if (PurPlan_Index != -1) {
  845. PurPlanRow = instance.g_PurPlanData[PurPlan_Index];
  846. }
  847. else {
  848. PurPlanRow = row;
  849. }
  850. let PartNo = row.PartNo;
  851. if (PartNo == undefined || PartNo == "null" || PartNo == null) {
  852. PartNo = "";
  853. }
  854. let Items_up = instance.g_ItemsUnitPrice_New.find(x => x.ItemId == ItemId);
  855. Items_up.UnitPrice = UnitPrice;
  856. if (Items_up.length == 0) {
  857. instance.g_ItemsUnitPrice_New.push({
  858. ItemId: ItemId,
  859. UnitPrice: UnitPrice,
  860. TaxRateAmount: TaxRateAmount
  861. });
  862. }
  863. let Quantity = 0;
  864. let UOMQuantity = 0;
  865. if (instance._order.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  866. if (instance._order.g_IsPointsOrder) {
  867. row.PackCount = 1;
  868. row.PackSize = 1;
  869. }
  870. BaseQty = Number(Packs);
  871. Quantity = Packs;
  872. let onlyPacks = parseInt((Number(Quantity) / Number(row.PackCount * row.PackSize)).toString());
  873. let remainingQty = Quantity - (onlyPacks * row.PackCount * row.PackSize);
  874. let onlyPieces = remainingQty / row.PackSize;
  875. Packs = Number(onlyPacks);
  876. Pieces = Number(instance.roundOff(onlyPieces));
  877. }
  878. else {
  879. if (Qty != 0) {
  880. BaseQty = Qty;
  881. Quantity = Qty;
  882. }
  883. else {
  884. BaseQty = Number(row.PackCount) * Number(row.PackSize) * Number(Packs) + (Pieces * row.PackSize);
  885. Quantity = ((row.PackCount * row.PackSize) * Packs) + (Pieces * row.PackSize);
  886. }
  887. }
  888. if (row.IsMultipleUOMs) {
  889. SelectedUnitId = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#ddl_MultipleUOMs_" + ItemId).val());
  890. if (SelectedUnitId != 1 && SelectedUnitId != 0) {
  891. let MultipleUOM = row.MultipleUOMs.find(x => x.SchemaDetailId == SelectedUnitId);
  892. UOMQuantity = instance.roundOff(Quantity * (MultipleUOM.AlternateSize / MultipleUOM.DefaultSize));
  893. BaseQty = UOMQuantity;
  894. DefaultSize = MultipleUOM.DefaultSize;
  895. SelectedUnitName = MultipleUOM.AlternateUnitName;
  896. }
  897. }
  898. if (row.IsManualUOM && instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales) {
  899. SelectedUnitId = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#ddl_ManualUOMs_" + ItemId).val());
  900. if (isNaN(SelectedUnitId)) {
  901. SelectedUnitId = 1;
  902. }
  903. UOMQuantity = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#txt_ManualConversionQty").val());
  904. if (UOMQuantity <= 0 || isNaN(UOMQuantity)) {
  905. UOMQuantity = Packs;
  906. }
  907. BaseQty = UOMQuantity;
  908. SelectedUnitName = $("#ddl_ManualUOMs_" + ItemId + " option:selected").text();
  909. }
  910. Quantity = instance.roundOffIgnoreZerosAfterDecimal(Quantity);
  911. UOMQuantity = instance.roundOffIgnoreZerosAfterDecimal(UOMQuantity);
  912. if (event == "Plus" || event == "Packs" || event == "Pieces") {
  913. IsCheckPendingItems = true;
  914. }
  915. else {
  916. if (Quantity == 0 && !FromWidget) {
  917. IsCheckPendingItems = true;
  918. }
  919. }
  920. if (SelectedItems_Index != -1) {
  921. if (event == "Plus" || event == "Packs" || event == "Pieces" || event == "ApplyOffer") {
  922. IsCheckPendingItems = instance.g_SelectedItems[SelectedItems_Index].IsCheckPendingItems;
  923. let qty = instance.g_SelectedItems[SelectedItems_Index].BaseQty;
  924. if (IsCheckPendingItems && qty > 0 && !FromWidget) {
  925. IsCheckPendingItems = false;
  926. }
  927. }
  928. ItemIndex = instance.g_SelectedItems[SelectedItems_Index].ItemIndex;
  929. OrderItemId = instance.g_SelectedItems[SelectedItems_Index].OrderItemId;
  930. RefOrderItemId = instance.g_SelectedItems[SelectedItems_Index].RefOrderItemId;
  931. $("#" + instance.g_VisibleContainerId).find(elem).find(".tax-error").text("");
  932. $("#" + instance.g_VisibleContainerId).find(elem).find("#LeverageErrorTxt").addClass("hidden");
  933. }
  934. if (instance.g_IsEnableCompositePiecePrice) {
  935. Amount = (UnitPriceWithOutTax * Number(BaseQty)) + Number(row.TaxRate);
  936. if (Number(BaseQty) == 0)
  937. Amount = 0;
  938. UnitPrice = instance.roundOffIgnoreZerosAfterDecimal(row.CompositePiecePrice);
  939. }
  940. else if (instance.g_IsEnableCompositePrice) {
  941. let amnt = Number(UnitPriceWithOutTax) * Number(row.TaxPercentage) / 100;
  942. TaxRateAmount = Number(UnitPriceWithOutTax) + Number(amnt);
  943. Amount = Number(BaseQty) * TaxRateAmount;
  944. UnitPrice = instance.roundOffIgnoreZerosAfterDecimal(row.CompositePrice);
  945. }
  946. else if (instance.g_IsEnablePiecePrice) {
  947. Amount = Number(BaseQty) * UnitPriceWithOutTax;
  948. UnitPrice = instance.roundOffIgnoreZerosAfterDecimal(row.PiecePrice);
  949. }
  950. else {
  951. Amount = Number(BaseQty) * UnitPriceWithOutTax;
  952. }
  953. Items_up.TaxRateAmount = TaxRateAmount;
  954. let AssessableAmount = Number(Amount);
  955. let discVal = Number(DiscountValue) * Number(BaseQty);
  956. let discPercent = Number(DiscountPercent);
  957. let DiscAmount = Number((Amount * discPercent) / 100) + Number(discVal);
  958. let discAmt = DiscAmount + Number(optoutAmount);
  959. AssessableAmount = Number(AssessableAmount) - Number(discAmt);
  960. let AmountWithDiscount = instance.roundOffIgnoreZerosAfterDecimal(Number(Amount) - Number(discAmt));
  961. if (IsCalculateTax) {
  962. if (instance.g_IsEnableCompositePiecePrice || instance.g_IsEnableCompositePrice) {
  963. if (row.TaxGroupId == 0) {
  964. IsTaxError = true;
  965. }
  966. else {
  967. TaxGroupId = row.TaxGroupId;
  968. TaxGroupName = row.TaxGroupName;
  969. for (let p = 0; p < row.TaxPercentList.length; p++) {
  970. let percen = row.TaxPercentList[p];
  971. let tax = AssessableAmount * percen.Percentage / 100;
  972. TaxAmount += tax;
  973. }
  974. StrTaxPercents = row.strTaxPercents;
  975. instance.getPriceTypeValues(ItemId, Packs, Pieces);
  976. if (instance.g_IsEnablePiecePrice) {
  977. UnitPrice = row.PiecePrice;
  978. instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.PiecePrice;
  979. }
  980. else if (instance.g_IsEnableCompositePrice) {
  981. UnitPrice = row.CompositePrice;
  982. instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.CompositePrice;
  983. }
  984. else if (instance.g_IsEnableCompositePiecePrice) {
  985. UnitPrice = row.CompositePiecePrice;
  986. instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.Both;
  987. }
  988. else {
  989. instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.None;
  990. }
  991. }
  992. }
  993. }
  994. else {
  995. $("#" + instance.g_VisibleContainerId).find("#TotalTax").addClass("hidden");
  996. $("#" + instance.g_VisibleContainerId).find(".divCustomProperties_istaxinclusive").addClass("hidden");
  997. }
  998. let Description = "";
  999. if (instance.g_FromWidgetEditOrderItemId > 0) {
  1000. Description = $("#" + instance.g_VisibleContainerId).find("#txt_Description").val().toString();
  1001. }
  1002. else {
  1003. Description = $("#" + instance.g_VisibleContainerId).find(elem).find("#txt_Description").val().toString();
  1004. }
  1005. if (Description == "") {
  1006. Description = row.Description != null ? row.Description : "";
  1007. }
  1008. if (event == "PendingPopCancel") {
  1009. IsCheckPendingItems = true;
  1010. }
  1011. let ItemData = {
  1012. OrderItemId: OrderItemId,
  1013. ItemIndex: ItemIndex,
  1014. ParentItemId: 0,
  1015. ItemId: ItemId,
  1016. HSNId: row.HSNId,
  1017. ItemName: row.ItemName,
  1018. Packs: Packs,
  1019. Pieces: Pieces,
  1020. PriceListId: row.PriceListId,
  1021. PriceListName: row.PriceListName,
  1022. UnitPrice: UnitPrice,
  1023. UnitPriceWithOutTax: UnitPriceWithOutTax,
  1024. ExpectedPrice: row.UnitPrice,
  1025. ActualPrice: row.UnitPrice,
  1026. PackCount: row.PackCount,
  1027. PackSize: row.PackSize,
  1028. UnitName: row.UnitName,
  1029. Quantity: Quantity,
  1030. SKU: row.SKU,
  1031. PartNo: PartNo,
  1032. Amount: Amount,
  1033. AmountWithDiscount: AmountWithDiscount,
  1034. DiscountPercent: DiscountPercent,
  1035. DiscountValue: DiscountValue,
  1036. DiscountType: DiscountType,
  1037. DiscountAmount: DiscountAmount,
  1038. ItemValueAfterDiscount: AfterDiscountValue,
  1039. StrTaxPercents: StrTaxPercents,
  1040. AvailableQuantity: row.AvailableQuantity,
  1041. AvailablePacks: row.AvailablePacks,
  1042. AvailablePieces: row.AvailablePieces,
  1043. TotalAvailablePieces: row.TotalAvailablePieces,
  1044. ExchangeDC: IsExchangeDC,
  1045. IsAfterTax: IsAfterTax,
  1046. BaseQty: BaseQty,
  1047. IsFocItem: false,
  1048. optoutAmount: optoutAmount,
  1049. TaxGroupId: TaxGroupId,
  1050. TaxGroupName: TaxGroupName,
  1051. TaxAmount: TaxAmount,
  1052. TaxRateAmount: TaxRateAmount,
  1053. TaxRate: row.TaxRate,
  1054. TaxPercentage: row.TaxPercentage,
  1055. IsOfferAvailable: row.IsOfferAvailable,
  1056. Description: Description == undefined ? "" : Description,
  1057. Discountable: row.Discountable,
  1058. PiecePrice: row.PiecePrice,
  1059. CompositePrice: row.CompositePrice,
  1060. CompositePiecePrice: row.CompositePiecePrice,
  1061. IsCheckPendingItems: IsCheckPendingItems,
  1062. IsError: false,
  1063. ErrorMsg: "",
  1064. ErrorClass: "text-danger",
  1065. IsTaxError: IsTaxError,
  1066. IsLeverageError: IsLeverageError,
  1067. IsFocAdded: false,
  1068. RefOrderItemId: RefOrderItemId,
  1069. RefItemIds: "",
  1070. RefItemSKUs: "",
  1071. FocItemIds: "",
  1072. DiscountGroupId: 0,
  1073. IsOfferDiscountApplied: false,
  1074. AppliedOfferVolume: 0,
  1075. AppliedPlanVolumeId: 0,
  1076. AppliedOfferId: 0,
  1077. optoutOfferGroupId: 0,
  1078. SuggestedPacks: PurPlanRow.SuggestedPacks,
  1079. MinPacks: PurPlanRow.MinPacks,
  1080. AvgPacks: PurPlanRow.AvgPacks,
  1081. InwardOrderPacks: PurPlanRow.InwardOrderPacks,
  1082. OutwardOrderPacks: PurPlanRow.OutwardOrderPacks,
  1083. IsManualUOM: row.IsManualUOM,
  1084. UOMs: row.UOMs,
  1085. IsMultipleUOMs: row.IsMultipleUOMs,
  1086. UOMSchemaId: row.UOMSchemaId,
  1087. MultipleUOMs: row.MultipleUOMs,
  1088. SelectedUnitId: SelectedUnitId,
  1089. SelectedUnitName: SelectedUnitName == "" ? row.UnitName : SelectedUnitName,
  1090. DefaultSize: DefaultSize,
  1091. IsBoMAvailable: row.IsBoMAvailable,
  1092. IsSpecialPrice: row.IsSpecialPrice,
  1093. ConversionQuantity: UOMQuantity,
  1094. RowTotal: 0,
  1095. RowDiscount: 0,
  1096. TaxTotal: 0,
  1097. IsPacksFocus: IsPacksFocus,
  1098. IsPiecesFocus: IsPiecesFocus,
  1099. CategoryName: ""
  1100. };
  1101. if (SelectedItems_Index == -1) {
  1102. instance.g_SelectedItems.push(ItemData);
  1103. }
  1104. else {
  1105. instance.g_SelectedItems[SelectedItems_Index] = ItemData;
  1106. }
  1107. if (CartItems_Index == -1) {
  1108. instance.g_CartItems_New.push(ItemData);
  1109. }
  1110. else {
  1111. instance.g_CartItems_New[CartItems_Index] = ItemData;
  1112. }
  1113. let ItemElm = $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + ItemId);
  1114. if (ItemElm.length > 0) {
  1115. instance.updateItemsDesign(ItemElm, event);
  1116. }
  1117. let IsCart = false;
  1118. if ($("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").is(":visible")) {
  1119. IsCart = true;
  1120. }
  1121. if (!FromWidget) {
  1122. if (instance.g_CartItems_New.length == 0) {
  1123. $("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").html('<li id="0" class="cartitem list-group-item col-xs-12 hidden clear no-border"></li> <li class="list-group-item col-xs-12 no-border EmptyCartLi"><strong>Your Shopping Cart is empty.</strong></li>');
  1124. }
  1125. else {
  1126. $("#" + instance.g_VisibleContainerId).find(".EmptyCartLi").remove();
  1127. }
  1128. if ($("#" + instance.g_VisibleContainerId).find("#cartItemsSearch").val() != undefined) {
  1129. let value = $("#" + instance.g_VisibleContainerId).find("#cartItemsSearch").val().toString().toLowerCase();
  1130. $("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart li:not(:first-child)").filter(function () {
  1131. $("#" + instance.g_VisibleContainerId).find(this).toggle($("#" + instance.g_VisibleContainerId).find(this).text().toLowerCase().indexOf(value) > -1);
  1132. });
  1133. }
  1134. if (IsCheckPendingItems && $("#" + instance.g_VisibleContainerId).find(".bootbox-confirm").length == 0 && BaseQty != 0 && (instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales || instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Purchase)) {
  1135. if (!IsTaxError && event != "PendingPopCancel") {
  1136. instance.checkPendingPopup(ItemId, CartItems_Index, FromWidget);
  1137. }
  1138. else if (IsTaxError) {
  1139. instance.addCartItem(ItemId);
  1140. }
  1141. }
  1142. else {
  1143. if (CartItems_Index != -1) {
  1144. let Cart_elem = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId);
  1145. if (Cart_elem.length > 0 && !FromWidget) {
  1146. let evnt = "EditCartItem";
  1147. if (event == "RefreshAllItems_InventoryClickEvents") {
  1148. evnt = event;
  1149. }
  1150. instance.updateItemsDesign(Cart_elem, evnt, true);
  1151. }
  1152. }
  1153. else {
  1154. instance.addCartItem(ItemId);
  1155. }
  1156. }
  1157. }
  1158. else {
  1159. if (IsCheckPendingItems && $("#" + instance.g_VisibleContainerId).find(".bootbox-confirm").length == 0) {
  1160. if (!IsTaxError && event != "PendingPopCancel") {
  1161. instance.checkPendingPopup(ItemId, CartItems_Index, FromWidget);
  1162. }
  1163. else if (IsTaxError) {
  1164. instance.addCartItem(ItemId);
  1165. }
  1166. }
  1167. }
  1168. if (BaseQty != 0) {
  1169. instance.checkValidations(ItemId, false);
  1170. instance.checkValidations(ItemId, true);
  1171. }
  1172. else {
  1173. instance.checkEnablePieces();
  1174. instance.checkEnablePacks();
  1175. }
  1176. if (!instance._order.g_IsPointsOrder && (IsCart || FromWidget || instance.g_FromContinueShopping)) {
  1177. if (row.IsOfferAvailable && !FromWidget) {
  1178. instance.checkOffers(FromWidget, "UpdateItemsArray");
  1179. }
  1180. else if (FromWidget) {
  1181. instance.checkOffers(FromWidget, "UpdateItemsArray");
  1182. }
  1183. else {
  1184. if (IsCart || instance._order.g_IsPurchasePlanning) {
  1185. if (event != "PurPlan_AllItems") {
  1186. instance.getTotals(ItemId);
  1187. }
  1188. }
  1189. }
  1190. }
  1191. else {
  1192. if (IsCart || instance._order.g_IsPurchasePlanning) {
  1193. if (event != "PurPlan_AllItems") {
  1194. if (BaseQty != 0) {
  1195. $("#" + instance.g_VisibleContainerId).find(elem).find(".chk_PurPlanItem").prop("checked", true);
  1196. }
  1197. else {
  1198. $("#" + instance.g_VisibleContainerId).find(elem).find(".chk_PurPlanItem").prop("checked", false);
  1199. }
  1200. instance.getTotals(ItemId);
  1201. }
  1202. }
  1203. }
  1204. if (event == "FromWidget") {
  1205. if (SelectedItems_Index != -1) {
  1206. instance.g_SelectedItems[SelectedItems_Index].IsCheckPendingItems = true;
  1207. }
  1208. if (CartItems_Index == -1) {
  1209. instance.g_CartItems_New[CartItems_Index].IsCheckPendingItems = true;
  1210. }
  1211. }
  1212. instance.g_CartItems_New.filter(x => x.BaseQty == 0).forEach(function (c) {
  1213. let ItemId = c.ItemId;
  1214. let ItemElm = $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + ItemId);
  1215. let CartElm = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId);
  1216. $("#" + instance.g_VisibleContainerId).find(ItemElm).find(".divOrders_ItemCount").removeClass("floating-label-form-group-with-value");
  1217. $("#" + instance.g_VisibleContainerId).find(CartElm).find(".divOrders_ItemCount").removeClass("floating-label-form-group-with-value");
  1218. });
  1219. }
  1220. getInventoryDesign(ItemId, IsCart, SuggestedPacks = 0, RefItemIds) {
  1221. let instance = this;
  1222. let html = "";
  1223. let InvType = "", fltngclass_Cartons = "", fltngclass_Pieces = "", PP_Cartons = "", PP_Pieces = "", IsFocItem = false, DisableQuantityTxtBox = "", HideMinusPlusBtns = "";
  1224. if (SuggestedPacks != 0) {
  1225. PP_Cartons = SuggestedPacks.toString();
  1226. }
  1227. let CartItem_Index = -1;
  1228. CartItem_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds == RefItemIds);
  1229. let InventoryTypeId = instance._order.g_InventoryApplyType;
  1230. let CartItem = instance.g_CartItems_New[CartItem_Index];
  1231. if (CartItem != undefined) {
  1232. PP_Cartons = CartItem.Packs.toString();
  1233. PP_Pieces = CartItem.Pieces.toString();
  1234. IsFocItem = CartItem.IsFocItem;
  1235. if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1236. PP_Cartons = CartItem.Quantity.toString();
  1237. PP_Pieces = "0";
  1238. }
  1239. }
  1240. if (PP_Cartons == "0") {
  1241. PP_Cartons = "";
  1242. }
  1243. if (PP_Cartons != "") {
  1244. fltngclass_Cartons = "floating-label-form-group-with-value";
  1245. }
  1246. if (PP_Pieces == "0") {
  1247. PP_Pieces = "";
  1248. }
  1249. if (PP_Pieces != "") {
  1250. fltngclass_Pieces = "floating-label-form-group-with-value";
  1251. }
  1252. if (IsFocItem) {
  1253. DisableQuantityTxtBox = "disabled style='cursor:not-allowed'";
  1254. HideMinusPlusBtns = "hidden";
  1255. }
  1256. let IsEnablePacks = instance.g_IsEnablePacks, IsEnablePieces = instance.g_IsEnablePieces;
  1257. if (IsFocItem) {
  1258. InventoryTypeId = Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity;
  1259. IsEnablePacks = true;
  1260. IsEnablePieces = false;
  1261. }
  1262. if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs || InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces || InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.PacksAndPieces) {
  1263. if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces && !instance.g_IsEnablePacks) {
  1264. $("#" + instance.g_VisibleContainerId).find("#spn_picesTitle").removeClass("hidden").removeClass("col-sm-6").addClass("col-sm-12").removeClass("pr-90");
  1265. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").addClass("hidden").removeClass("pl-40");
  1266. $("#" + instance.g_VisibleContainerId).find(".ItemDetails").addClass("col-sm-8").removeClass("col-sm-6");
  1267. $("#" + instance.g_VisibleContainerId).find(".InventoryTypesTextboxes").addClass("col-sm-4").removeClass("col-sm-6");
  1268. }
  1269. else if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs && !instance.g_IsEnablePieces) {
  1270. $("#" + instance.g_VisibleContainerId).find("#spn_picesTitle").addClass("hidden").removeClass("pr-90");
  1271. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").removeClass("hidden").removeClass("col-sm-6").addClass("col-sm-12").removeClass("pl-40");
  1272. $("#" + instance.g_VisibleContainerId).find(".ItemDetails").addClass("col-sm-8").removeClass("col-sm-6");
  1273. $("#" + instance.g_VisibleContainerId).find(".InventoryTypesTextboxes").addClass("col-sm-4").removeClass("col-sm-6");
  1274. }
  1275. else if (instance.g_IsEnablePacks && instance.g_IsEnablePieces) {
  1276. $("#" + instance.g_VisibleContainerId).find("#spn_picesTitle").removeClass("hidden").removeClass("col-sm-12").addClass("col-sm-6").addClass("pr-90");
  1277. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").removeClass("hidden").removeClass("col-sm-12").addClass("col-sm-6").addClass("pl-40");
  1278. $("#" + instance.g_VisibleContainerId).find(".ItemDetails").removeClass("col-sm-8").addClass("col-sm-6");
  1279. $("#" + instance.g_VisibleContainerId).find(".InventoryTypesTextboxes").removeClass("col-sm-4").addClass("col-sm-6");
  1280. }
  1281. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").text("Cartons");
  1282. $("#" + instance.g_VisibleContainerId).find("#spn_picesTitle").text("Pieces");
  1283. }
  1284. else if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1285. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").text("Quantity");
  1286. $("#" + instance.g_VisibleContainerId).find("#spn_picesTitle").addClass("hidden");
  1287. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").removeClass("hidden").removeClass("col-sm-6").addClass("col-sm-12");
  1288. }
  1289. let cartItemQtyClass = "";
  1290. if (IsCart) {
  1291. cartItemQtyClass = "_editCartItemQuantity";
  1292. }
  1293. let IsShowPacks = "";
  1294. let IsShowPieces = "";
  1295. let PacksSize = "col-5";
  1296. let PiecesSize = "col-5";
  1297. if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1298. IsShowPieces = "hidden";
  1299. PacksSize = "col-10";
  1300. InvType = "Quantity";
  1301. }
  1302. else if (IsEnablePacks && !IsEnablePieces && InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs) {
  1303. IsShowPieces = "hidden";
  1304. PacksSize = "col-10";
  1305. InvType = "Cartons";
  1306. }
  1307. else if (!IsEnablePacks && IsEnablePieces) {
  1308. IsShowPacks = "hidden";
  1309. PiecesSize = "col-10";
  1310. InvType = "Cartons";
  1311. }
  1312. if ((IsEnablePacks && IsEnablePieces) && InventoryTypeId != Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1313. IsShowPacks = "";
  1314. IsShowPieces = "";
  1315. PacksSize = "col-5";
  1316. PiecesSize = "col-5";
  1317. InvType = "Cartons";
  1318. }
  1319. html += `<div class="col-sm-12 ` + cartItemQtyClass + `">
  1320. <div class="row">
  1321. <div class="col-1 input-group mt-20 ma-0 pa-0">
  1322. <span class="input-group-prepend">
  1323. <a href="javascript:;" class="input-group-addon btn quantity-minus" draggable="false"> <i class="fa fa-minus"></i></a>
  1324. </span>
  1325. </div>
  1326. <div class=" ` + PacksSize + ` ` + IsShowPacks + `">
  1327. <div class="floating-label-form-group defaultSelectedCartons divOrders_ItemCount ` + fltngclass_Cartons + `">
  1328. <label class="text-center">` + InvType + `</label>
  1329. <div class="input-group" id="div_Cartons">
  1330. <input type="text" id="txt_Cartons" class="form-control text-center txtOrder_ItemCount floating-label-control" inputmode="numeric" onpaste = "return Bizgaze.Apps.Transact.Controls.OrderItems.Instance().isNumberKey(event)" oninput = "return Bizgaze.Apps.Transact.Controls.OrderItems.Instance().isNumberKey(event)" data-isdynamic="false" placeholder="` + InvType + `" data-placeholder="` + InvType + `" data-label="` + InvType + `" value=` + PP_Cartons + `>
  1331. </div>
  1332. </div>
  1333. </div>
  1334. <div class="` + PiecesSize + ` ` + cartItemQtyClass + ` ` + IsShowPieces + `">
  1335. <div class="floating-label-form-group defaultSelectedPieces divOrders_ItemPieceCount ` + fltngclass_Pieces + `">
  1336. <label class="text-center">Pieces</label>
  1337. <div class="input-group" id="div_Pieces">
  1338. <input type="text" id="txt_Pieces" class="form-control text-center floating-label-control txtOrder_ItemPieceCount" inputmode="numeric" data-isdynamic="false" placeholder="Pieces" data-placeholder="Pieces" data-label="Pieces" oninput="return Bizgaze.Apps.Transact.Controls.OrderItems.Instance().validateFloatKeyPress(this,event)" value=` + PP_Pieces + `>
  1339. </div>
  1340. </div>
  1341. </div>
  1342. <div class="col-1 input-group mt-20" style="margin-left:-30px">
  1343. <span class="input-group-append">
  1344. <a href="javascript:;" class="quantity-plus input-group-addon btn" draggable="false"><i class="fa fa-plus"></i></a>
  1345. </span>
  1346. </div>
  1347. </div>
  1348. </div>
  1349. </div>`;
  1350. return html;
  1351. }
  1352. getInventoryDesignWithTokens_PurchasePlan() {
  1353. let instance = this;
  1354. let html = "";
  1355. let InvType = "";
  1356. let InventoryTypeId = instance._order.g_InventoryApplyType;
  1357. let IsEnablePacks = instance.g_IsEnablePacks, IsEnablePieces = instance.g_IsEnablePieces;
  1358. if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs || InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces || InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.PacksAndPieces) {
  1359. if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces && !instance.g_IsEnablePacks) {
  1360. $("#" + instance.g_VisibleContainerId).find("#spn_picesTitle").removeClass("hidden").removeClass("col-sm-6").addClass("col-sm-12").removeClass("pr-90");
  1361. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").addClass("hidden").removeClass("pl-40");
  1362. $("#" + instance.g_VisibleContainerId).find(".ItemDetails").addClass("col-sm-8").removeClass("col-sm-6");
  1363. $("#" + instance.g_VisibleContainerId).find(".InventoryTypesTextboxes").addClass("col-sm-4").removeClass("col-sm-6");
  1364. }
  1365. else if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs && !instance.g_IsEnablePieces) {
  1366. $("#" + instance.g_VisibleContainerId).find("#spn_picesTitle").addClass("hidden").removeClass("pr-90");
  1367. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").removeClass("hidden").removeClass("col-sm-6").addClass("col-sm-12").removeClass("pl-40");
  1368. $("#" + instance.g_VisibleContainerId).find(".ItemDetails").addClass("col-sm-8").removeClass("col-sm-6");
  1369. $("#" + instance.g_VisibleContainerId).find(".InventoryTypesTextboxes").addClass("col-sm-4").removeClass("col-sm-6");
  1370. }
  1371. else if (instance.g_IsEnablePacks && instance.g_IsEnablePieces) {
  1372. $("#" + instance.g_VisibleContainerId).find("#spn_picesTitle").removeClass("hidden").removeClass("col-sm-12").addClass("col-sm-6").addClass("pr-90");
  1373. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").removeClass("hidden").removeClass("col-sm-12").addClass("col-sm-6").addClass("pl-40");
  1374. $("#" + instance.g_VisibleContainerId).find(".ItemDetails").removeClass("col-sm-8").addClass("col-sm-6");
  1375. $("#" + instance.g_VisibleContainerId).find(".InventoryTypesTextboxes").removeClass("col-sm-4").addClass("col-sm-6");
  1376. }
  1377. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").text("Cartons");
  1378. $("#" + instance.g_VisibleContainerId).find("#spn_picesTitle").text("Pieces");
  1379. }
  1380. else if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1381. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").text("Quantity");
  1382. $("#" + instance.g_VisibleContainerId).find("#spn_picesTitle").addClass("hidden");
  1383. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").removeClass("hidden").removeClass("col-sm-6").addClass("col-sm-12");
  1384. }
  1385. if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1386. InvType = "Quantity";
  1387. }
  1388. else if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs) {
  1389. InvType = "Cartons";
  1390. }
  1391. else if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces) {
  1392. InvType = "Pieces";
  1393. }
  1394. if (IsEnablePacks && !IsEnablePieces) {
  1395. html += '<div class="col-sm-12">' +
  1396. '<div class="floating-label-form-group defaultSelectedCartons divOrders_ItemCount {{fltngclass_Cartons}}">' +
  1397. '<label class="text-center">' + InvType + '</label>' +
  1398. '<div class="input-group" id="div_Cartons">' +
  1399. '<span class="input-group-prepend">' +
  1400. '<a href="javascript:;" class="input-group-addon btn quantity-minus" draggable="false"><i class="fa fa-minus"></i></a>' +
  1401. '</span>' +
  1402. '<input type="text" id="txt_Cartons" class="form-control text-center txtOrder_ItemCount floating-label-control" inputmode="numeric" onpaste = "return Bizgaze.Apps.Transact.Controls.OrderItems.Instance().isNumberKey(event)" oninput = "return Bizgaze.Apps.Transact.Controls.OrderItems.Instance().isNumberKey(event)" data-isdynamic="false" placeholder="' + InvType + '" data-placeholder="' + InvType + '" data-label="' + InvType + '" value={{PP_Cartons}}>' +
  1403. '<span class="input-group-append">' +
  1404. '<a href="javascript:;" class="quantity-plus input-group-addon btn" draggable="false"><i class="fa fa-plus"></i></a>' +
  1405. '</span>' +
  1406. '</div>' +
  1407. '</div>' +
  1408. '</div>';
  1409. }
  1410. else if (!IsEnablePacks && IsEnablePieces) {
  1411. html += '<div class="col-sm-12">' +
  1412. '<div class="floating-label-form-group defaultSelectedPieces divOrders_ItemPieceCount {{fltngclass_Pieces}}">' +
  1413. '<label class="text-center">' + InvType + '</label>' +
  1414. '<div class="input-group" id="div_Pieces">' +
  1415. '<span class="input-group-prepend">' +
  1416. '<a href="javascript:;" class="input-group-addon btn quantity-minus" draggable="false"><i class="fa fa-minus"></i></a>' +
  1417. '</span>' +
  1418. '<input type="text" id="txt_Pieces" class="form-control text-center txtOrder_ItemPieceCount floating-label-control" inputmode="numeric" data-isdynamic="false" placeholder="' + InvType + '" data-placeholder="' + InvType + '" data-label="' + InvType + '" oninput="return Bizgaze.Apps.Transact.Controls.OrderItems.Instance().validateFloatKeyPress(this,event)" value={{PP_Pieces}}>' +
  1419. '<span class="input-group-append">' +
  1420. '<a href="javascript:;" class="quantity-plus input-group-addon btn" draggable="false"><i class="fa fa-plus"></i></a>' +
  1421. '</span>' +
  1422. '</div>' +
  1423. '</div>' +
  1424. '</div>';
  1425. }
  1426. if (IsEnablePacks && IsEnablePieces) {
  1427. html += '<div class="col-sm-12"><div class="row"><div class="col-6">' +
  1428. '<div class="floating-label-form-group defaultSelectedCartons divOrders_ItemCount {{fltngclass_Cartons}}">' +
  1429. '<label class="text-center pl-40">Cartons</label>' +
  1430. '<div class="input-group" id="div_Cartons">' +
  1431. '<span class="input-group-prepend">' +
  1432. '<a href="javascript:;" class="input-group-addon btn quantity-minus" draggable="false"><i class="fa fa-minus"></i></a>' +
  1433. '</span>' +
  1434. '<input type="text" id="txt_Cartons" class="form-control text-center txtOrder_ItemCount floating-label-control" inputmode="numeric" onpaste = "return Bizgaze.Apps.Transact.Controls.OrderItems.Instance().isNumberKey(event)" oninput = "return Bizgaze.Apps.Transact.Controls.OrderItems.Instance().isNumberKey(event)" data-isdynamic="false" placeholder="Cartons" data-placeholder="Cartons" data-label="Cartons" value={{PP_Cartons}}>' +
  1435. '</div>' +
  1436. '</div>' +
  1437. ' </div>';
  1438. html +=
  1439. '<div class="col-6">' +
  1440. '<div class="floating-label-form-group defaultSelectedPieces divOrders_ItemPieceCount {{fltngclass_Pieces}}"> ' +
  1441. '<label class="text-center pr-20">Pieces</label>' +
  1442. '<div class="input-group" id="div_Pieces">' +
  1443. '<input type="text" id="txt_Pieces" class="form-control text-center floating-label-control txtOrder_ItemPieceCount" inputmode="numeric" data-isdynamic="false" style="margin-left: 13px;" placeholder="Pieces" data-placeholder="Pieces" data-label="Pieces" oninput="return Bizgaze.Apps.Transact.Controls.OrderItems.Instance().validateFloatKeyPress(this,event)" value={{PP_Pieces}}>' +
  1444. '<span class="input-group-append">' +
  1445. '<a href="javascript:;" class="quantity-plus input-group-addon btn" draggable="false"><i class="fa fa-plus"></i></a>' +
  1446. '</span>' +
  1447. '</div>' +
  1448. '</div>' +
  1449. '</div>' +
  1450. '</div>' +
  1451. '</div>';
  1452. }
  1453. html += '</div>';
  1454. return html;
  1455. }
  1456. getItemFocus(element) {
  1457. let instance = this;
  1458. let FocusTxt = "";
  1459. let IsPacksFocus = false;
  1460. let IsPiecesFocus = false;
  1461. let ItemId = element.find(".hfOrder_ItemId").val();
  1462. let ItmIndex = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId);
  1463. if (ItmIndex != -1) {
  1464. IsPacksFocus = instance.g_CartItems_New[ItmIndex].IsPacksFocus;
  1465. IsPiecesFocus = instance.g_CartItems_New[ItmIndex].IsPiecesFocus;
  1466. }
  1467. else {
  1468. let packsClick = Number(element.find(".hfOrder_PacksFocus").val());
  1469. let piecesClick = Number(element.find(".hfOrder_PiecesFocus").val());
  1470. if (packsClick != 0 || piecesClick != 0) {
  1471. IsPacksFocus = Boolean(packsClick);
  1472. IsPiecesFocus = Boolean(piecesClick);
  1473. }
  1474. else {
  1475. let FocusTxt = instance.getDefaultFocusbyInventory(instance._order.g_InventoryApplyType, false);
  1476. if (FocusTxt == "Packs") {
  1477. IsPacksFocus = true;
  1478. }
  1479. else {
  1480. IsPiecesFocus = true;
  1481. }
  1482. }
  1483. }
  1484. if (IsPacksFocus) {
  1485. FocusTxt = "Packs";
  1486. }
  1487. else if (IsPiecesFocus) {
  1488. FocusTxt = "Pieces";
  1489. }
  1490. return FocusTxt;
  1491. }
  1492. getDefaultFocusbyInventory(InventoryTypeId, IsFocItem) {
  1493. let instance = this;
  1494. let FocusTxtbx = "Packs";
  1495. let IsEnablePacks = instance.g_IsEnablePacks, IsEnablePieces = instance.g_IsEnablePieces;
  1496. if (IsFocItem) {
  1497. InventoryTypeId = Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity;
  1498. IsEnablePacks = true;
  1499. IsEnablePieces = false;
  1500. }
  1501. if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1502. FocusTxtbx = "Packs";
  1503. }
  1504. else if (IsEnablePacks && !IsEnablePieces && InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs) {
  1505. FocusTxtbx = "Packs";
  1506. }
  1507. else if (!IsEnablePacks && IsEnablePieces) {
  1508. FocusTxtbx = "Pieces";
  1509. }
  1510. if ((IsEnablePacks && IsEnablePieces) && InventoryTypeId != Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1511. FocusTxtbx = "Packs";
  1512. }
  1513. return FocusTxtbx;
  1514. }
  1515. getItemDesign(res, FromWidget = false, IsCart = false) {
  1516. let instance = this;
  1517. let html = "";
  1518. let data = res;
  1519. let ItemId = data.ItemId;
  1520. let InventoryType = instance._order.g_InventoryApplyType;
  1521. let url = '';
  1522. let ItemImg = "";
  1523. let LoadedItemIndex = instance.g_LoadedItems.findIndex(x => x.ItemId == ItemId);
  1524. if (LoadedItemIndex != -1) {
  1525. url = instance.g_LoadedItems[LoadedItemIndex].ImageUrl;
  1526. if (url == "" || url == undefined || url == null) {
  1527. ItemImg = ``;
  1528. }
  1529. else {
  1530. ItemImg = `<img class="avatar" style="width:70px;height:70px;" onerror="ReloadImage(event)" data-dynamic="1" src="` + url + `">`;
  1531. }
  1532. }
  1533. else {
  1534. if (data.ImageUrl == "" || data.ImageUrl == undefined || data.ImageUrl == null) {
  1535. ItemImg = ``;
  1536. }
  1537. else {
  1538. url = data.ImageUrl;
  1539. ItemImg = `<img class="avatar" style="width:70px;height:70px;" onerror="ReloadImage(event)" data-dynamic="1" src="` + url + `">`;
  1540. }
  1541. }
  1542. let hidden = "";
  1543. let OrderQuantity = "";
  1544. let multiplevalue = "";
  1545. let Mod_UnitPrice = 0;
  1546. let Items_up = instance.g_ItemsUnitPrice_New.filter(x => x.ItemId == data.ItemId);
  1547. if (Items_up.length == 0) {
  1548. Mod_UnitPrice = data.UnitPrice;
  1549. instance.g_ItemsUnitPrice_New.push({
  1550. ItemId: ItemId,
  1551. UnitPrice: data.UnitPrice,
  1552. TaxRateAmount: data.TaxRateAmount
  1553. });
  1554. }
  1555. else {
  1556. Mod_UnitPrice = Items_up[0].UnitPrice;
  1557. }
  1558. if (instance._order.g_IsPurchasePlanning) {
  1559. if ((res.SuggestedPacks) != 0 && (res.SuggestedPacks) != null && (res.SuggestedPacks) != undefined) {
  1560. let unitprice = Number(Mod_UnitPrice);
  1561. let packCount = Number(data.PackCount);
  1562. let packSize = Number(data.PackSize);
  1563. let baseqty = packCount * packSize * res.SuggestedPacks;
  1564. OrderQuantity = " X " + (baseqty);
  1565. multiplevalue = " = " + (unitprice * baseqty);
  1566. }
  1567. }
  1568. let LiClass = "variant-item variant-addeditem variant-addeditem-" + ItemId;
  1569. let EditUnitPriceClass = 'editItemPriceAccordion_';
  1570. let AvailClass = "ItemAvailability";
  1571. let ExchangeClass = "chkItem_ExchangeDC_" + ItemId;
  1572. let HideDeleteBtn = "";
  1573. let RefItemIds = data.RefItemIds;
  1574. if (RefItemIds == undefined) {
  1575. RefItemIds = "";
  1576. }
  1577. if (IsCart) {
  1578. LiClass = "cartitem cartitem-" + ItemId;
  1579. EditUnitPriceClass = 'editCartItemPriceAccordion_';
  1580. AvailClass = "CartAvailability";
  1581. ExchangeClass = "chkCartItem_ExchangeDC_" + ItemId;
  1582. if (data.IsFocItem) {
  1583. HideDeleteBtn = "hidden";
  1584. if (RefItemIds != "") {
  1585. LiClass = "cartitem cartitem-" + ItemId + "-" + RefItemIds.replace(/,/g, "-");
  1586. }
  1587. }
  1588. }
  1589. else if (FromWidget) {
  1590. if (Bizgaze.Apps.Transact.Controls.AddOrderItems.Instance().g_Edit_OrderItemId > 0) {
  1591. HideDeleteBtn = "hidden";
  1592. }
  1593. if (RefItemIds != "") {
  1594. LiClass = "variant-item variant-addeditem variant-addeditem-" + ItemId + "-" + RefItemIds.replace(/,/g, "-");
  1595. }
  1596. }
  1597. html = '<li id="' + ItemId + '" class="list-group-item ' + LiClass + ' li no-border">' +
  1598. '<input type="hidden" class="hfOrder_ItemId" value="' + ItemId + '" />' +
  1599. '<input type="hidden" class="hfOrder_RefItemId" value="' + RefItemIds + '" />' +
  1600. '<input type="hidden" class="hfOrder_ItemName" value="' + data.ItemName + '" />' +
  1601. '<input type="hidden" class="hfOrder_ItemSKU" value="' + data.SKU + '" />' +
  1602. '<input type="hidden" class="hfOrder_PacksFocus" value="0" />' +
  1603. '<input type="hidden" class="hfOrder_PiecesFocus" value="0" />';
  1604. let DivClass = 'col-sm-8';
  1605. let InventoryTypeDivClass = 'col-sm-4';
  1606. if (instance.g_IsEnablePacks && instance.g_IsEnablePieces) {
  1607. DivClass = 'col-sm-6';
  1608. InventoryTypeDivClass = 'col-sm-6';
  1609. }
  1610. if (`${ItemImg}`.length == 0) {
  1611. html += `<div class="row position-relative">
  1612. <div class="position-absolute t-0 z-index-1" style="right: 10px;"><a href="javascript:;" class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover d-30 cart-item-remove d-none"><span class="btn-icon-wrap"><i class="fa fa-times text-danger"></i></span></a><input type="checkbox" class="cart-item-chk d-none" id="cartItemChk_${ItemId}" style="transform: scale(1.3);"/></div>
  1613. <div class="ItemDetails ${DivClass} d-flex" id="ItemDetails">
  1614. <div class="img_div_tag_${ItemId} d-none"><a class="pull-left" style="cursor:pointer;height:80px; width:80px;"onclick="Bizgaze.Apps.Transact.Controls.OrderItems.Instance().getItemPreview(${ItemId});">${ItemImg}</a></div>`;
  1615. }
  1616. else {
  1617. html += `<div class="row position-relative">
  1618. <div class="position-absolute t-0 z-index-1" style="right: 10px;"><a href="javascript:;" class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover d-30 cart-item-remove d-none"><span class="btn-icon-wrap"><i class="fa fa-times text-danger"></i></span></a><input type="checkbox" class="cart-item-chk d-none" id="cartItemChk_${ItemId}" style="transform: scale(1.3);"/></div>
  1619. <div class="ItemDetails ${DivClass} d-flex" id="ItemDetails">
  1620. <div class="img_div_tag_${ItemId}"><a class="pull-left" style="cursor:pointer;height:80px; width:80px;"onclick="Bizgaze.Apps.Transact.Controls.OrderItems.Instance().getItemPreview(${ItemId});">${ItemImg}</a></div>`;
  1621. }
  1622. let deleteBtnHtml = '';
  1623. if (IsCart || FromWidget) {
  1624. deleteBtnHtml += '<a href="javascript:;" id="deleteCartItem"><span class="pa-5 delete ' + HideDeleteBtn + '" style="cursor:Pointer;" title="Remove Item"><i class="m-r fa fa-trash text-danger fa-lg" id=""></i></span></a>';
  1625. }
  1626. if (!instance._order.g_IsPurchasePlanning) {
  1627. if ($(window).width() < 768) {
  1628. html += `<div><div><div>${deleteBtnHtml}</div><span class="block text-sm mouseHoverClass CartItemName order-cart-name font-weight-600 font-14 text-dark">${data.ItemName}</span><span class="ml-2 sales-is-offer-avail">`;
  1629. }
  1630. else {
  1631. html += `<div><div><div>${deleteBtnHtml}</div><span class="block text-sm mouseHoverClass CartItemName order-cart-name font-weight-600 font-14 text-dark">${data.ItemName}</span><span class="ml-2 sales-is-offer-avail">`;
  1632. }
  1633. }
  1634. else {
  1635. html += 'div class="d-flex"><div><span> <strong> Edit </strong><span> <i class="fa fa-pencil ml-10"> </i> </span> </span> <br/> <input type="checkbox" id="chk_PurPlanItem_' + ItemId + '" class="chk_PurPlanItem css-checkbox"/>' +
  1636. '<span class="ml-10 pull-right text-danger tax-error"></span><span class="block text-sm ml-2 mouseHoverClass CartItemName" style="color: #5ba8fb;">' + data.ItemName + '</span></div><div class="ml-2 text-right sales-is-offer-avail">';
  1637. }
  1638. if (data.IsOfferAvailable == true && (data.RefItemId == undefined || data.RefItemId == 0)) {
  1639. if (instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim && instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim) {
  1640. html += '<input type="hidden" class="IsOfferAvailableItem" value="true">';
  1641. html += '<a class="btn btn-xs btn-outline-primary line-height-12 font-10 offerBadge_cls" onclick="Bizgaze.Apps.Transact.Controls.OrderItems.Instance().showOfferItems(' + instance._order.g_OrganizationId + ',' + ItemId + ",'" + data.ItemName + "'," + instance._order.g_OrderTypeId + ',' + 'this)"><span class="count"><i class="la la-award"></i> offer</span></a>';
  1642. }
  1643. }
  1644. if (data.IsDefBoMAvailable) {
  1645. if (instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim && instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim) {
  1646. html += '<a class="btn btn-xs btn-outline-primary line-height-12 font-10" onclick="Bizgaze.Apps.Transact.Controls.OrderItems.Instance().showDefItems(' + instance._order.g_OrganizationId + ',' + ItemId + ",'" + data.ItemName + "'," + instance._order.g_OrderTypeId + ',' + 'this)"><span class="count"><i class="la la-award"></i> CP</span></a>';
  1647. }
  1648. }
  1649. if (data.IsBoMAvailable) {
  1650. if (instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim && instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim) {
  1651. html += '<a class="btn btn-xs line-height-12 font-10 btn-outline-info ml-2" onclick="Bizgaze.Apps.Transact.Controls.OrderItems.Instance().showBOMItems(' + ItemId + ",'" + data.ItemName + "'" + ')"><span class=" count" > BOM </span></a>';
  1652. }
  1653. }
  1654. if (data.IsSpecialPrice && instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim && instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim)
  1655. html += '<span class="btn btn-xs up btn-outline-blue line-height-12 font-10 ml-2 btnItemSpecial ">SP</span>';
  1656. html += '<span class="font-10 focBadge hidden"><span class="text-warning up m-l-n-sm ml-2 count" style="">Free of SKU - <span id="FocBadgeSKU" class="font-10"> </span> </span></span>';
  1657. html += '</span></div>';
  1658. if (data.PartNo != "" && data.PartNo != null) {
  1659. html += '<span class="font-weight-300 font-12">SKU : ' + data.SKU + '</span> <span class="font-weight-300"> ( ' + data.PartNo + ' )';
  1660. }
  1661. else {
  1662. html += '<span class="font-weight-300 font-12">SKU : ' + data.SKU;
  1663. }
  1664. if (instance._order.g_IsAdmin == 1 || instance._order.g_IsShowAvailability == 1) {
  1665. html += ', </span> ';
  1666. }
  1667. if (InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs || InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces || InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.PacksAndPieces) {
  1668. if (instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim && instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim) {
  1669. if (instance._order.g_IsAdmin == 1 || instance._order.g_IsShowAvailability == 1) {
  1670. if (instance._order.g_IsPurchasePlanning) {
  1671. html += `<span class="font-12 ` + AvailClass + `">Avail : ` + data.AvailablePacks + ` / ` + data.AvailablePieces + ` (` + data.AvailableQuantity + `)` + ` Pur PO: <a onclick='var filter = []; filter.push({"Key" : "estimateid", "Value": "` + res.EstimateId + `", ExpOp: 1}, {"Key" : "itemid", "Value": "` + ItemId + `", ExpOp: 1}, {"Key" : "ordertypeid", "Value": "2", ExpOp: 1}); Unibase.Platform.Analytics.Components.ReportViewer.Instance().report_ViewAllByUniqueId("Bizgaze_Platform_Analytics_Reports_PurchasePlan_PendingDetails", null, filter, null);' style="color: #5ba8fb;text-decoration: underline;" class="PurPendingOrders">` + res.InwardOrderPacks + `</a> Sales PO: <a onclick='var filter = []; filter.push({"Key" : "estimateid", "Value": "` + res.EstimateId + `", ExpOp: 1}, {"Key" : "itemid", "Value": "` + ItemId + `", ExpOp: 1}, {"Key" : "ordertypeid", "Value": "1", ExpOp: 1}); Unibase.Platform.Analytics.Components.ReportViewer.Instance().report_ViewAllByUniqueId("Bizgaze_Platform_Analytics_Reports_PurchasePlan_PendingDetails", null, filter, null);' style="color: #5ba8fb;text-decoration: underline;" class="SalesPendingOrders">` + res.OutwardOrderPacks + `</a></span><span class="text-danger pull-right LessUnitPrice-error"></span><br/>`;
  1672. }
  1673. else {
  1674. if (InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces && !instance.g_IsEnablePacks) {
  1675. html += '<span class="font-12 ' + AvailClass + '">Avail : ' + data.TotalAvailablePieces + ' (' + data.AvailableQuantity + ') </span><span class="text-danger pull-right LessUnitPrice-error"></span>';
  1676. }
  1677. else {
  1678. html += '<span class="font-12 ' + AvailClass + '">Avail : ' + data.AvailablePacks + ' / ' + data.AvailablePieces + ' (' + data.AvailableQuantity + ') </span><span class="text-danger pull-right LessUnitPrice-error"></span>';
  1679. }
  1680. }
  1681. }
  1682. }
  1683. else {
  1684. html += '<span class="font-12 ' + AvailClass + '">Claim Avail : ' + data.AvailablePacks + ' / ' + data.AvailablePieces + ' (' + data.AvailableQuantity + ')</span>';
  1685. }
  1686. }
  1687. else if (InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1688. if (instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim && instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim) {
  1689. if (instance._order.g_IsAdmin == 1 || instance._order.g_IsShowAvailability == 1) {
  1690. if (instance._order.g_IsPurchasePlanning) {
  1691. html += '<span class="font-12 ' + AvailClass + '">Avail : ' + data.Packs + ' Pur PO: <a href="javascript:;"style="color: #5ba8fb;text-decoration: underline;" class="PendingOrders">' + res.InwardOrderPacks + '</a> Sales PO: <a href="javascript:;"style="color: #5ba8fb;text-decoration: underline;" class="PendingOrders">' + res.OutwardOrderPacks + '</a></span><span class="text-danger pull-right LessUnitPrice-error"></span><br/>';
  1692. }
  1693. else
  1694. html += '<span class="font-12 ' + AvailClass + '">Avail : ' + data.AvailableQuantity + '</span>';
  1695. }
  1696. }
  1697. else
  1698. html += '<span class="font-12 ' + AvailClass + '">Claim Avail : ' + data.AvailableQuantity + '</span>';
  1699. }
  1700. if (instance._order.g_IsPurchasePlanning) {
  1701. html += '<span class="block">MOQ : {{MinPacks}} | ROQ : {{ReorderPacks}} | Suggested : {{SuggestedPacks}} | Avg : {{AvgPacks}} </span>';
  1702. }
  1703. let Price_dataToggle = "";
  1704. if (instance._order.g_IsAdmin == 1 || instance._order.g_ShowPrice == 1) {
  1705. Price_dataToggle = `data-toggle="collapse"`;
  1706. }
  1707. instance.getPriceTypeValues(ItemId);
  1708. let compositeDecimalValue = 0;
  1709. let piecePriceDecimalValue = 0;
  1710. let compositePiecePriceDecimalvalue = 0;
  1711. let Item = instance.g_LoadedItems.find(x => x.ItemId == ItemId);
  1712. if (Item != undefined) {
  1713. compositeDecimalValue = Item.CompositePrice;
  1714. piecePriceDecimalValue = Item.PiecePrice;
  1715. compositePiecePriceDecimalvalue = Item.CompositePiecePrice;
  1716. }
  1717. html += '<br>';
  1718. let PriceTitle = instance.getPriceListTitle(ItemId);
  1719. if (instance.g_IsEnablePiecePrice) {
  1720. if (instance._order.g_IsPurchasePlanning && (res.SuggestedPacks) != 0 && (res.SuggestedPacks) != null && (res.SuggestedPacks) != undefined && Mod_UnitPrice != 0) {
  1721. html += '<span class="sp_PriceType">Piece Price : </span> <span id="DiscountOpenBracket" class="hidden">(</span><a href="javascript:;" class="text-sm editItemPrice" title="' + PriceTitle + '" style="text-decoration: underline;"' + Price_dataToggle + 'data-target="#' + EditUnitPriceClass + '' + ItemId + '">' + Number(instance.roundOff(piecePriceDecimalValue)) + '</a> <span class="CompositePriceCalBreak"> </span> <span id="QuantityAndDiscountSpan" class="' + hidden + '"><span id="OrderQuantity_' + ItemId + '" class="OrderQuantity hidden" >' + OrderQuantity + '</span><span id="multipliedvalue_' + ItemId + '" class="multipliedvalue hidden" >' + multiplevalue + '</span></span>';
  1722. }
  1723. else
  1724. html += '<span class="sp_PriceType">Piece Price : </span> <span id="DiscountOpenBracket" class="hidden">(</span><a href="javascript:;" class="text-sm editItemPrice" title="' + PriceTitle + '" style="text-decoration: underline;"' + Price_dataToggle + 'data-target="#' + EditUnitPriceClass + '' + ItemId + '">' + Number(instance.roundOff(piecePriceDecimalValue)) + '</a> <span class="CompositePriceCalBreak"> </span> <span id="QuantityAndDiscountSpan" class="' + hidden + '"><span id="OrderQuantity_' + ItemId + '" class="OrderQuantity hidden" ></span><span id="multipliedvalue_' + ItemId + '" class="multipliedvalue hidden" ></span></span>';
  1725. }
  1726. else if (instance.g_IsEnableCompositePrice) {
  1727. if ((instance._order.g_IsPurchasePlanning && data.SuggestedPacks) != 0 && (data.SuggestedPacks) != null && (data.SuggestedPacks) != undefined && Mod_UnitPrice != 0) {
  1728. html += '<span class="sp_PriceType">Comp. Price : </span> <span id="DiscountOpenBracket" class="hidden">(</span> <a href="javascript:;" class="text-sm editItemPrice " title="' + PriceTitle + '" style="text-decoration: underline;"' + Price_dataToggle + 'data-target="#' + EditUnitPriceClass + '' + ItemId + '">' + Number(instance.roundOff(compositeDecimalValue)) + '</a> <span class="CompositePriceCalBreak"> </span> <span id="QuantityAndDiscountSpan" class="' + hidden + '"><span id="OrderQuantity_' + ItemId + '" class="OrderQuantity hidden" >' + OrderQuantity + '</span><span id="multipliedvalue_' + ItemId + '" class="multipliedvalue hidden" >' + multiplevalue + '</span></span>';
  1729. }
  1730. else {
  1731. html += '<span class="sp_PriceType">Comp. Price : </span> <span id="DiscountOpenBracket" class="hidden">(</span> <a href="javascript:;" class="text-sm editItemPrice " title="' + PriceTitle + '" style="text-decoration: underline;"' + Price_dataToggle + 'data-target="#' + EditUnitPriceClass + '' + ItemId + '">' + Number(instance.roundOff(compositeDecimalValue)) + '</a> <span class="CompositePriceCalBreak"> </span> <span id="QuantityAndDiscountSpan" class="' + hidden + '"><span id="OrderQuantity_' + ItemId + '" class="OrderQuantity hidden" ></span><span id="multipliedvalue_' + ItemId + '" class="multipliedvalue hidden" ></span></span>';
  1732. }
  1733. }
  1734. else if (instance.g_IsEnableCompositePiecePrice) {
  1735. if (instance._order.g_IsPurchasePlanning && (data.SuggestedPacks) != 0 && (data.SuggestedPacks) != null && (data.SuggestedPacks) != undefined && Mod_UnitPrice != 0) {
  1736. html += '<span class="sp_PriceType">Comp. Piece Price : </span><span id="DiscountOpenBracket" class="hidden">(</span><a href="javascript:;" class="text-sm editItemPrice CompositePiecePrice" title="' + PriceTitle + '" style="color: #5ba8fb;text-decoration: underline;"' + Price_dataToggle + 'data-target="#' + EditUnitPriceClass + '' + ItemId + '">' + Number(instance.roundOff(compositePiecePriceDecimalvalue)) + '</a> <span class="CompositePriceCalBreak"> </span> <span id="QuantityAndDiscountSpan" class="' + hidden + '"><span id="OrderQuantity_' + ItemId + '" class="OrderQuantity hidden" >' + OrderQuantity + '</span><span id="multipliedvalue_' + ItemId + '" class="multipliedvalue hidden" >' + multiplevalue + '</span></span>';
  1737. }
  1738. else
  1739. html += '<span class="sp_PriceType">Comp. Piece Price : </span><span id="DiscountOpenBracket" class="hidden">(</span><a href="javascript:;" class="text-sm editItemPrice CompositePiecePrice" title="' + PriceTitle + '" style="color: #5ba8fb;text-decoration: underline;"' + Price_dataToggle + 'data-target="#' + EditUnitPriceClass + '' + ItemId + '">' + Number(instance.roundOff(compositePiecePriceDecimalvalue)) + '</a> <span class="CompositePriceCalBreak"> </span> <span id="QuantityAndDiscountSpan" class="' + hidden + '"><span id="OrderQuantity_' + ItemId + '" class="OrderQuantity hidden" ></span><span id="multipliedvalue_' + ItemId + '" class="multipliedvalue hidden" ></span></span>';
  1740. }
  1741. else {
  1742. if (instance._order.g_IsPurchasePlanning && (res.SuggestedPacks) != 0 && (res.SuggestedPacks) != null && (res.SuggestedPacks) != undefined && Mod_UnitPrice != 0) {
  1743. html += '<span class="sp_PriceType font-12">Price : </span><span id="DiscountOpenBracket" class="hidden">(</span><a href="javascript:;" class="text-sm editItemPrice font-12 text-dark " title="' + PriceTitle + '" style="text-decoration: underline;"' + Price_dataToggle + 'data-target="#' + EditUnitPriceClass + '' + ItemId + '">' + Mod_UnitPrice + '</a> <span class="CompositePriceCalBreak"> </span> <span id="QuantityAndDiscountSpan" class="' + hidden + '"><span id="OrderQuantity_' + ItemId + '" class="OrderQuantity hidden" >' + OrderQuantity + '</span><span id="multipliedvalue_' + ItemId + '" class="multipliedvalue hidden" >' + multiplevalue + '</span></span>';
  1744. }
  1745. else {
  1746. let PointsorPrice = "Price";
  1747. if (instance._order.g_IsPointsOrder) {
  1748. PointsorPrice = "Points";
  1749. }
  1750. if (data.IsManualUOM && instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales) {
  1751. html += '<span class="sp_PriceType font-12">' + PointsorPrice + ' : </span><span id="DiscountOpenBracket" class="hidden">(</span><a href="javascript:;" class="text-sm editItemPrice font-12" title="' + PriceTitle + '" style="color: #5ba8fb;text-decoration: underline;"' + Price_dataToggle + 'data-target="#' + EditUnitPriceClass + '' + ItemId + '">' + Mod_UnitPrice + '</a> <span class="CompositePriceCalBreak"> </span> <span id="QuantityAndDiscountSpan" class=" font-12 ' + hidden + '"><span id="OrderQuantity_' + ItemId + '" class="OrderQuantity hidden" ></span><span id="multipliedvalue_' + ItemId + '" class="multipliedvalue hidden" ></span></span> <span class="ManualUOM_' + ItemId + ' hidden">' + instance.getManualUOMDesign(data) + '</span> <span class="ManualUOM_RowTotal hidden"> </span>';
  1752. }
  1753. else {
  1754. html += '<span class="sp_PriceType font-12">' + PointsorPrice + ' : </span><span id="DiscountOpenBracket" class="hidden">(</span><a href="javascript:;" class="text-sm editItemPrice font-12" title="' + PriceTitle + '" style="color: #5ba8fb;text-decoration: underline;"' + Price_dataToggle + 'data-target="#' + EditUnitPriceClass + '' + ItemId + '">' + Mod_UnitPrice + '</a> <span class="CompositePriceCalBreak"> </span> <span id="QuantityAndDiscountSpan" class=" font-12 ' + hidden + '"><span id="OrderQuantity_' + ItemId + '" class="OrderQuantity hidden" ></span><span id="multipliedvalue_' + ItemId + '" class="multipliedvalue hidden" ></span></span>';
  1755. }
  1756. }
  1757. }
  1758. html += '<div id="LeverageErrorTxt" class="text-warning hidden">Leverage % Exceeded</div><div class=" text-danger tax-error"></div>';
  1759. html += '</div>';
  1760. html += '</div>';
  1761. let SuggestedPacks = 0;
  1762. if (instance._order.g_IsPurchasePlanning) {
  1763. SuggestedPacks = res.SuggestedPacks;
  1764. }
  1765. html += '<div id="InventoryTypesTextboxes" class="InventoryTypesTextboxes ' + InventoryTypeDivClass + ' p-0">';
  1766. html += instance.getInventoryDesign(ItemId, IsCart, SuggestedPacks, RefItemIds);
  1767. html += '</div>';
  1768. let classclaim = "";
  1769. if (instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim || instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim) {
  1770. classclaim = "col-sm-7";
  1771. }
  1772. else {
  1773. classclaim = "col-sm-2";
  1774. }
  1775. let IsExpandItem = "";
  1776. if (instance._order.g_ExpandItemSettings && (instance._order.g_IsAdmin == 1 || instance._order.g_ShowPrice == 1)) {
  1777. IsExpandItem = "";
  1778. }
  1779. else {
  1780. IsExpandItem = "collapse";
  1781. }
  1782. html += '<div class="row card py-2 mt-2 mb-0 ' + IsExpandItem + '" id="' + EditUnitPriceClass + '' + ItemId + '">' +
  1783. '<div class="col-sm-12 p-0">' +
  1784. '<div class="input-group">' +
  1785. '<div class="col-sm-2">' +
  1786. '<div class="floating-label-form-group floating-label-form-group-with-value">';
  1787. html += '<label for="txt_editItemPrice">Unit price </label><input type="text" id="txt_editItemPrice" class="form-control floating-label-control txteditItemPrice" value="' + Mod_UnitPrice + '" inputmode="numeric" data-isdynamic="false" placeholder="Unit Price" data-placeholder="Enter Unit Price" data-label="Unit Price" onpaste = "return Bizgaze.Apps.Transact.Controls.OrderItems.Instance().validateFloatKeyPress(this,event)" oninput="return Bizgaze.Apps.Transact.Controls.OrderItems.Instance().validateFloatKeyPress(this,event)" min="0"></div>';
  1788. let offerDiscountClass = "";
  1789. if (data.IsOfferAvailable && data.IsOfferDiscountApplied && IsCart && !instance._order.g_IsManageOfferDiscount) {
  1790. offerDiscountClass = "readonly";
  1791. }
  1792. let IsDiscountHidden = "";
  1793. if (instance._order.g_IsPointsOrder) {
  1794. IsDiscountHidden = "hidden";
  1795. }
  1796. html += '</div>' +
  1797. '<div class="col-sm-2 ' + IsDiscountHidden + '">' +
  1798. '<div class="floating-label-form-group discountFloatLabels">' +
  1799. '<label>Discount</label>' +
  1800. '<div class="input-group">' +
  1801. '<input type="text" id="Ord_txtdiscount" placeholder="Discount" inputmode="numeric" data-isdynamic="false" onpaste = "return Bizgaze.Apps.Transact.Controls.OrderItems.Instance().validateFloatKeyPress(this,event)" oninput="return Bizgaze.Apps.Transact.Controls.OrderItems.Instance().validateFloatKeyPress(this,event)" data-placeholder="0.00" data-label="Discount" class="form-control ord_txtaddldiscount floating-label-control" value="" ' + offerDiscountClass + '>' +
  1802. '<div class="input-group-btn">' +
  1803. '<select class="btnOrder_DiscType mt-10 border-blue"><option value="2">Val</option><option value="1">%</option></select>' +
  1804. '</div>' +
  1805. '</div>' +
  1806. '</div>' +
  1807. '</div>';
  1808. if (instance.g_FromWidgetEditOrderItemId == 0) {
  1809. html += '<div class="' + classclaim + '">' +
  1810. '<div class="floating-label-form-group descriptionFloatLabels">' +
  1811. '<label>Description</label>' +
  1812. '<input type="text" id="txt_Description" class="form-control floating-label-control " data-isdynamic="false" placeholder="Description" data-placeholder="Description" data-label="Description">' +
  1813. '</div>' +
  1814. '</div>';
  1815. }
  1816. offerDiscountClass = "";
  1817. let IsItemExchangable = data.Discountable;
  1818. if (instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim && instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim) {
  1819. if ((instance._order.g_IsAdmin == 1 && IsItemExchangable) || (instance._order.g_IsShowExchangeDc == 1 && IsItemExchangable)) {
  1820. html += '<div class="col-sm-2 mt-40">' +
  1821. '<div class="custom-control custom-checkbox checkbox-primary">' +
  1822. '<input type="checkbox" class="custom-control-input chkItem_ExchangeDC" id="' + ExchangeClass + '">' +
  1823. '<label class="custom-control-label lbl_ExchangeDC_' + ItemId + '" for="' + ExchangeClass + '">Exchange</label>' +
  1824. '</div>' +
  1825. ' </div>';
  1826. }
  1827. }
  1828. let IsMultipleUOMs = data.IsMultipleUOMs;
  1829. let MultipleUOMs = data.MultipleUOMs;
  1830. if (IsMultipleUOMs) {
  1831. html += '<div id="div_MultipleUOMs_' + ItemId + '" class="div_MultipleUOMs floating-label-form-group-with-value col-sm-4" > ' +
  1832. '<label for= "lbl" id ="lbl_MultipleUOMs_' + ItemId + '"> UOM </label>';
  1833. html += '<select id="ddl_MultipleUOMs_' + ItemId + '" class="form-control type-control value-control dropdown_MultipleUOMs" placeholder="Select UOM" data-placeholder="Select UOM" data-label="UOM" data-isparent="false">';
  1834. if (MultipleUOMs.length > 0) {
  1835. html += '<option value="1"> ' + MultipleUOMs[0].DefaultUnitName + ' ( Default Unit ) </option>';
  1836. }
  1837. else {
  1838. html += '<option value="1"> -- Select -- </option>';
  1839. }
  1840. for (var i = 0; i < MultipleUOMs.length; i++) {
  1841. let UOM = MultipleUOMs[i];
  1842. let Conversion = UOM.DefaultSize + " " + UOM.DefaultUnitName + " = " + UOM.AlternateSize + " " + UOM.AlternateUnitName;
  1843. html += '<option value="' + MultipleUOMs[i].SchemaDetailId + '">' + MultipleUOMs[i].AlternateUnitName + ' ( ' + Conversion + ' ) </option>';
  1844. }
  1845. html += '</div> </select>';
  1846. html += '<p class="mt-10 text-warning ItemConversion_' + ItemId + '"> </p>';
  1847. }
  1848. html += '</div>' +
  1849. '</div>';
  1850. html += ' </div>';
  1851. html += '</li>';
  1852. return html;
  1853. }
  1854. getItemDesignWithTokens_PurchasePlan() {
  1855. let instance = this;
  1856. let html = "";
  1857. let InventoryType = instance._order.g_InventoryApplyType;
  1858. html = '<li id="{{ItemId}}" class="list-group-item variant-item variant-addeditem variant-addeditem-{{ItemId}} li no-border">' +
  1859. '<input type="hidden" class="hfOrder_ItemId" value="{{ItemId}}" />' +
  1860. '<input type="hidden" class="hfOrder_RefItemId" value="{{RefItemIds}}" />' +
  1861. '<input type="hidden" class="hfOrder_ItemName" value="{{ItemName}}" />' +
  1862. '<input type="hidden" class="hfOrder_ItemSKU" value="{{SKU}}" />';
  1863. let DivClass = 'col-sm-8';
  1864. let InventoryTypeDivClass = 'col-sm-4';
  1865. if (instance.g_IsEnablePacks && instance.g_IsEnablePieces) {
  1866. DivClass = 'col-sm-6';
  1867. InventoryTypeDivClass = 'col-sm-6';
  1868. }
  1869. html += ' <div class="row">' +
  1870. '<div class="ItemDetails ' + DivClass + '" id="ItemDetails">' +
  1871. '<a class="pull-left mt-20 {{faimg}}" style="cursor:pointer;height:100px; width:100px;"> <i class="fa fa-image orderItem font-40 ml-3"></i> </a>' +
  1872. '<a class="pull-left {{imgtag}}" style="cursor:pointer;height:80px; width:100px;"> <img class="avatar" style="width: 70px; height: 70px;" onerror="ReloadImage(event)" data-dynamic="1" src="{{imgurl}}"> </a>';
  1873. html += '<span id="EditROQ_{{ItemId}}" onclick="Bizgaze.Apps.Transact.Components.PurchasePlan.Instance().loadEditROQ({{ItemId}})"> <strong> Edit </strong><span> <i class="fa fa-pencil ml-5"> </i> </span> </span> <br/> <input type="checkbox" id="chk_PurPlanItem_{{ItemId}}" class="chk_PurPlanItem css-checkbox" {{IsDisabledCheckBox}} {{PurchasePlanChecked}}/>' +
  1874. '<span class="ml-10 pull-right text-danger tax-error"></span><span class="block text-sm ml-2 mouseHoverClass CartItemName" style="color: #5ba8fb;">{{ItemName}}</span> <br>';
  1875. html += '<span>SKU : {{SKU}}';
  1876. if (instance._order.g_IsAdmin == 1 || instance._order.g_IsShowAvailability == 1) {
  1877. html += ', </span> ';
  1878. }
  1879. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  1880. let InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
  1881. let BranchId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_branchid").Value);
  1882. if (InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs || InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces || InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.PacksAndPieces) {
  1883. if (instance._order.g_IsAdmin == 1 || instance._order.g_IsShowAvailability == 1) {
  1884. html += `<span class="ItemAvailability">Avail : {{AvailablePacks}} / {{AvailablePieces}} ({{AvailableQuantity}})` + ` Pur PO: <a onclick='var filter = []; filter.push({"Key" : "estimateid", "Value": "{{EstimateId}}", ExpOp: 1}, {"Key" : "itemid", "Value": "{{ItemId}}", ExpOp: 1}, {"Key" : "ordertypeid", "Value": "2", ExpOp: 1}); Unibase.Platform.Analytics.Components.ReportViewer.Instance().report_ViewAllByUniqueId("Bizgaze_Platform_Analytics_Reports_PurchasePlan_PendingDetails", null, filter, null);' style="color: #5ba8fb;text-decoration: underline;" class="PurPendingOrders"> {{InwardOrderPacks}} </a> Sales PO: <a onclick='var filter = []; filter.push({"Key" : "estimateid", "Value": "{{EstimateId}}", ExpOp: 1}, {"Key" : "itemid", "Value": "{{ItemId}}", ExpOp: 1}, {"Key" : "ordertypeid", "Value": "1", ExpOp: 1}); Unibase.Platform.Analytics.Components.ReportViewer.Instance().report_ViewAllByUniqueId("Bizgaze_Platform_Analytics_Reports_PurchasePlan_PendingDetails", null, filter, null);' style="color: #5ba8fb;text-decoration: underline;" class="SalesPendingOrders">{{OutwardOrderPacks}}</a></span><span class="text-danger pull-right LessUnitPrice-error"></span><br/>`;
  1885. }
  1886. }
  1887. else if (InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1888. if (instance._order.g_IsAdmin == 1 || instance._order.g_IsShowAvailability == 1) {
  1889. html += '<span class="ItemAvailability">Avail : {{Packs}} Pur PO: <a href="javascript:;"style="color: #5ba8fb;text-decoration: underline;" class="PendingOrders">{{InwardOrderPacks}}</a> Sales PO: <a href="javascript:;"style="color: #5ba8fb;text-decoration: underline;" class="PendingOrders">{{OutwardOrderPacks}}</a></span><span class="text-danger pull-right LessUnitPrice-error"></span><br/>';
  1890. }
  1891. }
  1892. html += '<span class="block">Saftey Stock : {{MinPacks}} | Suggested : {{SuggestedPacks}} | Avg : {{AvgPacks}} </span>';
  1893. let Price_dataToggle = "";
  1894. if (instance._order.g_IsAdmin == 1 || instance._order.g_ShowPrice == 1) {
  1895. Price_dataToggle = `data-toggle="collapse"`;
  1896. }
  1897. html += '<br>';
  1898. html += '<span class="sp_PriceType font-12">Price : </span><span id="DiscountOpenBracket" class="hidden">(</span><a href="javascript:;" class="text-sm editItemPrice text-dark font-12" text-decoration: underline;"' + Price_dataToggle + 'data-target="#editItemPriceAccordion_{{ItemId}}"> {{ConfirmedUnitPrice}} </a> <span class="CompositePriceCalBreak"> </span> <span id="QuantityAndDiscountSpan font-12" class=""><span id="OrderQuantity_{{ItemId}}" class="OrderQuantity hidden">{{OrderQuantity}}</span><span id="multipliedvalue_{{ItemId}}" class="multipliedvalue hidden">{{multiplevalue}}</span></span>';
  1899. html += '<div id="LeverageErrorTxt" class="text-warning hidden font-10 ">Leverage % Exceeded</div>';
  1900. html += '</div>';
  1901. html += '<div id="InventoryTypesTextboxes" class="InventoryTypesTextboxes ' + InventoryTypeDivClass + '">';
  1902. html += instance.getInventoryDesignWithTokens_PurchasePlan();
  1903. html += '</div>';
  1904. html += '<div class="row collapse card py-2 mt-2 mb-0 " id="editItemPriceAccordion_{{ItemId}}">' +
  1905. '<div class="col-sm-12">' +
  1906. '<div class="input-group">' +
  1907. '<div class="col-sm-2">' +
  1908. '<div class="floating-label-form-group floating-label-form-group-with-value">';
  1909. html += '<label for="txt_editItemPrice">Unit price </label><input type="text" id="txt_editItemPrice" class="form-control floating-label-control txteditItemPrice" inputmode="numeric" value="{{ConfirmedUnitPrice}}" data-isdynamic="false" placeholder="Unit Price" data-placeholder="Enter Unit Price" data-label="Unit Price" onpaste = "return Bizgaze.Apps.Transact.Controls.OrderItems.Instance().validateFloatKeyPress(this,event)" oninput="return Bizgaze.Apps.Transact.Controls.OrderItems.Instance().validateFloatKeyPress(this,event)" min="0"></div>';
  1910. html += '</div>' +
  1911. '<div class="col-sm-2">' +
  1912. '<div class="floating-label-form-group discountFloatLabels floating-label-form-group-with-value">' +
  1913. '<label>Discount</label>' +
  1914. '<div class="input-group">' +
  1915. '<input type="text" id="Ord_txtdiscount" placeholder="Discount" inputmode="numeric" data-isdynamic="false" onpaste = "return Bizgaze.Apps.Transact.Controls.OrderItems.Instance().validateFloatKeyPress(this,event)" oninput="return Bizgaze.Apps.Transact.Controls.OrderItems.Instance().validateFloatKeyPress(this,event)" data-placeholder="0.00" data-label="Discount" class="form-control ord_txtaddldiscount floating-label-control" value="{{Discount}}" {{offerDiscountClass}}>' +
  1916. '<div class="input-group-btn">' +
  1917. '<select class="btnOrder_DiscType mt-10 border-blue"><option value="2">Val</option><option value="1">%</option></select>' +
  1918. '</div>' +
  1919. '</div>' +
  1920. '</div>' +
  1921. '</div>' +
  1922. '<div class="col-sm-2">' +
  1923. '<div class="floating-label-form-group descriptionFloatLabels">' +
  1924. '<label>Description</label>' +
  1925. '<input type="text" id="txt_Description" class="form-control floating-label-control " data-isdynamic="false" placeholder="Description" data-placeholder="Description" data-label="Description">' +
  1926. '</div>' +
  1927. '</div>';
  1928. html += '</div>' +
  1929. ' </div>' +
  1930. ' </div>';
  1931. html += '</li>';
  1932. return html;
  1933. }
  1934. getManualUOMDesign(Itm) {
  1935. let html = `<input type="text" id="txt_ManualConversionQty" class="form-control floating-label-control col-sm-2" inputmode="numeric" onpaste="return Bizgaze.Apps.Transact.Controls.OrderItems.Instance().isNumberKey(event)" oninput="return Bizgaze.Apps.Transact.Controls.OrderItems.Instance().isNumberKey(event)" data-isdynamic="false" placeholder="" data-placeholder="" data-label="" value="` + Itm.ConversionQuantity + `" style="display: inline">
  1936. <select id="ddl_ManualUOMs_` + Itm.ItemId + `" class="type-control value-control dropdown_ManualUOMs" placeholder="Select UOM" data-placeholder="Select UOM" data-label="UOM" data-isparent="false" style="display: inline">`;
  1937. for (let i = 0; i < Itm.UOMs.length; i++) {
  1938. let Selected = "";
  1939. if (Itm.UOMs[i].UnitId == Itm.UOMSchemaId) {
  1940. Selected = "selected";
  1941. }
  1942. html += `<option value="` + Itm.UOMs[i].UnitId + `" ` + Selected + `>` + Itm.UOMs[i].UnitName + `</option>`;
  1943. }
  1944. html += `</select>`;
  1945. return html;
  1946. }
  1947. bindManualUOMData(elem, Itm, AmountWithDiscount) {
  1948. let instance = this;
  1949. $("#" + instance.g_VisibleContainerId).find(elem).find(".ManualUOM_" + Itm.ItemId).removeClass("hidden");
  1950. $("#" + instance.g_VisibleContainerId).find(elem).find(".ManualUOM_RowTotal").removeClass("hidden").text(" = " + AmountWithDiscount);
  1951. $("#" + instance.g_VisibleContainerId).find(elem).find("#txt_ManualConversionQty").val(Itm.ConversionQuantity);
  1952. $("#" + instance.g_VisibleContainerId).find(elem).find(".dropdown_ManualUOMs").val(Itm.SelectedUnitId);
  1953. }
  1954. updateItemsDesign(elem, evnt, IsCart = false, IsFocItem = false) {
  1955. let instance = this;
  1956. if (elem.length != 0) {
  1957. let ItemId = $("#" + instance.g_VisibleContainerId).find(elem).find(".hfOrder_ItemId").val();
  1958. let RefItemIds = $("#" + instance.g_VisibleContainerId).find(elem).find(".hfOrder_RefItemId").val();
  1959. let CartItem_Index = -1;
  1960. if (IsFocItem) {
  1961. CartItem_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds == RefItemIds);
  1962. }
  1963. else {
  1964. CartItem_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds == "");
  1965. }
  1966. let Itm = instance.g_CartItems_New[CartItem_Index];
  1967. if (Itm == undefined) {
  1968. return false;
  1969. }
  1970. Itm.UnitPrice = Math.abs(Itm.UnitPrice);
  1971. Itm.UnitPriceWithOutTax = Math.abs(Itm.UnitPriceWithOutTax);
  1972. let UnitPrice = Itm.UnitPrice;
  1973. let UnitName = Itm.UnitName;
  1974. let pricelabel = "Price";
  1975. if (instance._order.g_IsPointsOrder) {
  1976. pricelabel = "Points";
  1977. }
  1978. if (instance.g_IsEnablePiecePrice)
  1979. pricelabel = "Piece Price";
  1980. if (instance.g_IsEnableCompositePrice) {
  1981. pricelabel = "Comp. Price";
  1982. }
  1983. if (instance.g_IsEnableCompositePiecePrice) {
  1984. pricelabel = "Comp. Piece Price";
  1985. }
  1986. $("#" + instance.g_VisibleContainerId).find(".sp_PriceType").text(pricelabel + " : ");
  1987. $("#" + instance.g_VisibleContainerId).find(".sp_PriceType").addClass("font-12");
  1988. let Cond = $("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").is(":visible") || evnt == "BindItemList" || evnt == "FromWidget_FocItem" || evnt == "EditOrderItem" || evnt == "FromWidget" || evnt == "AddFocItem_IsOfferDiscountApplied" || evnt == "EditFocItem_IsOfferDiscountApplied" || evnt == "DeleteCartItem";
  1989. if (IsCart) {
  1990. Cond = !$("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").is(":visible") || evnt == "EditFocItem" || evnt == "AddFocItem_IsOfferDiscountApplied" || evnt == "EditFocItem_IsOfferDiscountApplied" || instance._order.g_IsSC_to_PC;
  1991. }
  1992. if (Cond) {
  1993. let Cartons = Itm.Quantity;
  1994. if (instance._order.g_InventoryApplyType != Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1995. Cartons = Itm.Packs;
  1996. }
  1997. $("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemCount").val(Cartons);
  1998. $("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemPieceCount").val(Itm.Pieces);
  1999. $("#" + instance.g_VisibleContainerId).find(elem).find("#txt_editItemPrice").val(Itm.UnitPriceWithOutTax);
  2000. $("#" + instance.g_VisibleContainerId).find(elem).find(".btnOrder_DiscType").val(Itm.DiscountType);
  2001. let Discount = Itm.DiscountValue == 0 ? Itm.DiscountPercent : Itm.DiscountValue;
  2002. if (Discount == 0) {
  2003. $("#" + instance.g_VisibleContainerId).find(elem).find("#Ord_txtdiscount").val("");
  2004. }
  2005. else {
  2006. $("#" + instance.g_VisibleContainerId).find(elem).find("#Ord_txtdiscount").val(Discount);
  2007. }
  2008. }
  2009. if (Itm.Description != "" && Itm.Description != null) {
  2010. if (instance.g_FromWidgetEditOrderItemId > 0) {
  2011. $("#" + instance.g_VisibleContainerId).find("#txt_Description").val(Itm.Description);
  2012. }
  2013. else {
  2014. $("#" + instance.g_VisibleContainerId).find(elem).find("#txt_Description").val(Itm.Description);
  2015. }
  2016. $("#" + instance.g_VisibleContainerId).find(elem).find(".descriptionFloatLabels").addClass("floating-label-form-group-with-value");
  2017. }
  2018. if (Itm.Packs > 0) {
  2019. $("#" + instance.g_VisibleContainerId).find(elem).find(".defaultSelectedCartons").addClass("floating-label-form-group-with-value");
  2020. }
  2021. if (Itm.Pieces > 0) {
  2022. $("#" + instance.g_VisibleContainerId).find(elem).find(".defaultSelectedPieces").addClass("floating-label-form-group-with-value");
  2023. }
  2024. $("#" + instance.g_VisibleContainerId).find(elem).find(".CompositePriceCalBreak").html('');
  2025. if (Itm.ExchangeDC) {
  2026. $("#" + instance.g_VisibleContainerId).find(elem).find(".chkItem_ExchangeDC").prop("checked", true);
  2027. }
  2028. else {
  2029. $("#" + instance.g_VisibleContainerId).find(elem).find(".chkItem_ExchangeDC").prop("checked", false);
  2030. }
  2031. let ItemIndex = $("#" + instance.g_VisibleContainerId).find(elem).attr("class").toString().indexOf("variant-addeditem-" + Itm.ItemId);
  2032. if ((Itm.IsOfferAvailable && Itm.IsOfferDiscountApplied && IsCart && ItemIndex == -1 && !instance._order.g_IsManageOfferDiscount) || (Itm.ExchangeDC)) {
  2033. $("#" + instance.g_VisibleContainerId).find(elem).find("#Ord_txtdiscount").attr("disabled", "disabled").css("cursor", "not-allowed");
  2034. $("#" + instance.g_VisibleContainerId).find(elem).find(".btnOrder_DiscType").attr("disabled", "disabled").css("cursor", "not-allowed");
  2035. }
  2036. else {
  2037. $("#" + instance.g_VisibleContainerId).find(elem).find("#Ord_txtdiscount").removeAttr("disabled").removeAttr("style");
  2038. $("#" + instance.g_VisibleContainerId).find(elem).find(".btnOrder_DiscType").removeAttr("disabled").removeAttr("style");
  2039. }
  2040. if (Itm.IsMultipleUOMs) {
  2041. $("#" + instance.g_VisibleContainerId).find(elem).find("#ddl_MultipleUOMs_" + ItemId).val(Itm.SelectedUnitId);
  2042. if (Itm.SelectedUnitId != 1 && Itm.SelectedUnitId != 0) {
  2043. let UOM = Itm.MultipleUOMs.find(x => x.SchemaDetailId == Itm.SelectedUnitId);
  2044. let Conversion = UOM.DefaultSize + " " + UOM.DefaultUnitName + " = " + UOM.AlternateSize + " " + UOM.AlternateUnitName;
  2045. $("#" + instance.g_VisibleContainerId).find(".ItemConversion_" + Itm.ItemId).text(Conversion);
  2046. UnitName = Itm.SelectedUnitName;
  2047. }
  2048. else {
  2049. $("#" + instance.g_VisibleContainerId).find(".ItemConversion_" + Itm.ItemId).text("");
  2050. }
  2051. }
  2052. if (IsCart) {
  2053. if (Itm.ExchangeDC) {
  2054. UnitPrice = -Itm.UnitPrice;
  2055. let ItemName = Itm.ItemName + " (Exchange) ";
  2056. $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId).find(".CartItemName").html(ItemName);
  2057. $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId).find(".CartItemName").append("<input type='checkbox' class='divAfterTax' checked/> After Tax");
  2058. }
  2059. else {
  2060. $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId).find(".CartItemName").html(Itm.ItemName);
  2061. $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId).find(".CartItemName").find(".divAfterTax").remove();
  2062. }
  2063. }
  2064. if (instance.g_FromWidget) {
  2065. if (Itm.ExchangeDC) {
  2066. UnitPrice = -Itm.UnitPrice;
  2067. let ItemName = Itm.ItemName + " (Exchange) ";
  2068. $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + ItemId).find(".CartItemName").html(ItemName);
  2069. $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + ItemId).find(".CartItemName").append("<input type='checkbox' class='divAfterTax' checked/> After Tax");
  2070. }
  2071. else {
  2072. $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + ItemId).find(".CartItemName").html(Itm.ItemName);
  2073. $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + ItemId).find(".CartItemName").find(".divAfterTax").remove();
  2074. }
  2075. }
  2076. let _quantity = instance.roundOffIgnoreZerosAfterDecimal(Itm.BaseQty);
  2077. if (Itm.IsMultipleUOMs && Itm.ConversionQuantity > 0) {
  2078. _quantity = Itm.ConversionQuantity;
  2079. }
  2080. let AmountWithDiscount = instance.roundOffIgnoreZerosAfterDecimal(Number(Itm.AmountWithDiscount));
  2081. if (Itm.Packs == 0 && Itm.Pieces == 0 && Itm.Quantity == 0) {
  2082. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text(Itm.UnitPrice).css({ 'text-decoration': 'underline', 'color': '#5ba8fb' });
  2083. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text("");
  2084. $("#" + instance.g_VisibleContainerId).find(elem).find(".chk_PurPlanItem").prop("checked", false).attr("disabled", "true");
  2085. }
  2086. else {
  2087. $("#" + instance.g_VisibleContainerId).find(elem).find(".chk_PurPlanItem").prop("checked", true).removeAttr("disabled");
  2088. if (Itm.DiscountValue > 0) {
  2089. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text("(" + Itm.UnitPrice).css({ 'text-decoration': 'underline', 'color': '#5ba8fb' });
  2090. if (Itm.IsManualUOM && instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales) {
  2091. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(" - " + Number(Itm.DiscountValue) + ") X ");
  2092. instance.bindManualUOMData(elem, Itm, AmountWithDiscount);
  2093. }
  2094. else {
  2095. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(" - " + Number(Itm.DiscountValue) + ") X " + _quantity + '(' + UnitName + ')' + " = " + AmountWithDiscount);
  2096. }
  2097. $("#" + instance.g_VisibleContainerId).find(elem).find(".discountFloatLabels").addClass("floating-label-form-group-with-value");
  2098. }
  2099. else if (Itm.DiscountPercent > 0) {
  2100. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text("(" + Itm.UnitPrice).css({ 'text-decoration': 'underline', 'color': '#5ba8fb' });
  2101. if (Itm.IsManualUOM && instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales) {
  2102. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(" - " + Number(Itm.DiscountPercent) + "%) X ");
  2103. instance.bindManualUOMData(elem, Itm, AmountWithDiscount);
  2104. }
  2105. else {
  2106. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(" - " + Number(Itm.DiscountPercent) + "%) X " + _quantity + '(' + UnitName + ')' + " = " + AmountWithDiscount);
  2107. }
  2108. $("#" + instance.g_VisibleContainerId).find(elem).find(".discountFloatLabels").addClass("floating-label-form-group-with-value");
  2109. }
  2110. else {
  2111. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text(Number(UnitPrice)).css({
  2112. 'text-decoration': 'underline', 'color': '#5ba8fb'
  2113. });
  2114. if (Itm.IsManualUOM && instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales) {
  2115. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(" X ");
  2116. instance.bindManualUOMData(elem, Itm, AmountWithDiscount);
  2117. }
  2118. else {
  2119. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(" X " + _quantity + '(' + UnitName + ')' + " = " + AmountWithDiscount);
  2120. }
  2121. $("#" + instance.g_VisibleContainerId).find(elem).find(".discountFloatLabels").removeClass("floating-label-form-group-with-value");
  2122. }
  2123. }
  2124. if (Itm.IsFocItem) {
  2125. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").removeAttr("style").removeAttr("data-toggle").removeAttr("data-collapse").attr("disabled", "true").css("cursor", "not-allowed");
  2126. $("#" + instance.g_VisibleContainerId).find(elem).find(".focBadge").removeClass("hidden");
  2127. $("#" + instance.g_VisibleContainerId).find(elem).find("#FocBadgeSKU").text(Itm.RefItemSKUs);
  2128. }
  2129. $("#" + instance.g_VisibleContainerId).find(elem).find("#DiscountOpenBracket").addClass("hidden");
  2130. instance.getPriceTypeValues(ItemId, Itm.Packs, Itm.Pieces);
  2131. let PiecePrice = instance.roundOffIgnoreZerosAfterDecimal(Itm.PiecePrice);
  2132. let CompositePrice = instance.roundOffIgnoreZerosAfterDecimal(Itm.CompositePrice);
  2133. let CompositePiecePrice = instance.roundOffIgnoreZerosAfterDecimal(Itm.CompositePiecePrice);
  2134. if (instance.g_IsEnablePiecePrice) {
  2135. let TotalPieces = (Itm.Packs * Itm.PackCount) + Itm.Pieces;
  2136. if (TotalPieces == 0) {
  2137. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text(PiecePrice);
  2138. }
  2139. else {
  2140. if (Itm.DiscountValue == 0 && Itm.DiscountPercent == 0) {
  2141. let RowTotal = PiecePrice * TotalPieces;
  2142. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text(PiecePrice);
  2143. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(' X ' + TotalPieces + ' Pieces = ' + RowTotal);
  2144. }
  2145. else if (Itm.DiscountValue > 0) {
  2146. let DiscountAmount = Itm.DiscountValue * Itm.PackSize;
  2147. let RowTotal = (PiecePrice - DiscountAmount) * TotalPieces;
  2148. $("#" + instance.g_VisibleContainerId).find(elem).find("#DiscountOpenBracket").removeClass("hidden").text('(');
  2149. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text(PiecePrice);
  2150. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(' - ' + DiscountAmount + ') X ' + TotalPieces + ' Pieces = ' + RowTotal);
  2151. }
  2152. else if (Itm.DiscountPercent > 0) {
  2153. let DiscountAmount = (PiecePrice * Itm.DiscountPercent) / 100;
  2154. let RowTotal = (PiecePrice - DiscountAmount) * TotalPieces;
  2155. $("#" + instance.g_VisibleContainerId).find(elem).find("#DiscountOpenBracket").removeClass("hidden");
  2156. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text(PiecePrice);
  2157. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(' - ' + Itm.DiscountPercent + '%) X ' + TotalPieces + ' Pieces = ' + RowTotal);
  2158. }
  2159. }
  2160. }
  2161. if (instance.g_IsEnableCompositePrice) {
  2162. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text(CompositePrice);
  2163. if (_quantity > 0) {
  2164. if (Itm.DiscountValue == 0 && Itm.DiscountPercent == 0) {
  2165. let RowTotal = instance.roundOffIgnoreZerosAfterDecimal(CompositePrice * _quantity);
  2166. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(' X ' + _quantity + ' ' + UnitName + ' = ' + RowTotal);
  2167. }
  2168. else if (Itm.DiscountValue > 0) {
  2169. let DiscountAmount = Itm.DiscountValue * _quantity;
  2170. let RowTotal = (Itm.UnitPriceWithOutTax * _quantity) - DiscountAmount;
  2171. let AmountWithTax = instance.getAmountWithTax(Itm.ItemId, RowTotal).split('|');
  2172. let RowTotalWithTax = instance.roundOffIgnoreZerosAfterDecimal(AmountWithTax[0]);
  2173. let RowTax = AmountWithTax[1];
  2174. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text('(' + Itm.UnitPriceWithOutTax);
  2175. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(' - ' + Itm.DiscountValue + ') X ' + _quantity + ' ' + UnitName + ' + (' + RowTax + ') = ' + RowTotalWithTax);
  2176. }
  2177. else if (Itm.DiscountPercent > 0) {
  2178. let Amount = (Itm.BaseQty * Itm.UnitPriceWithOutTax);
  2179. let DiscountAmount = (Amount * Itm.DiscountPercent) / 100;
  2180. let RowTotal = (Itm.UnitPriceWithOutTax * _quantity) - DiscountAmount;
  2181. let AmountWithTax = instance.getAmountWithTax(Itm.ItemId, RowTotal).split('|');
  2182. let RowTotalWithTax = instance.roundOffIgnoreZerosAfterDecimal(AmountWithTax[0]);
  2183. let RowTax = AmountWithTax[1];
  2184. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text('(' + Itm.UnitPriceWithOutTax);
  2185. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(' - ' + Itm.DiscountPercent + '%) X ' + _quantity + ' ' + UnitName + ' + (' + RowTax + ') = ' + RowTotalWithTax);
  2186. }
  2187. }
  2188. }
  2189. if (instance.g_IsEnableCompositePiecePrice) {
  2190. let CompositePiecePrice = instance.roundOffIgnoreZerosAfterDecimal(Itm.CompositePiecePrice);
  2191. let PiecePrice = instance.roundOffIgnoreZerosAfterDecimal(Itm.PiecePrice);
  2192. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text(CompositePiecePrice);
  2193. if (_quantity > 0) {
  2194. if (Itm.DiscountValue == 0 && Itm.DiscountPercent == 0) {
  2195. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(' (' + _quantity + ' ' + UnitName + ')');
  2196. }
  2197. else if (Itm.DiscountValue > 0) {
  2198. let DiscountAmount = Itm.DiscountValue * _quantity;
  2199. let RowTotal = PiecePrice - DiscountAmount;
  2200. let AmountWithTax = instance.getAmountWithTax(Itm.ItemId, RowTotal).split('|');
  2201. let RowTotalWithTax = instance.roundOffIgnoreZerosAfterDecimal(AmountWithTax[0]);
  2202. let RowTax = AmountWithTax[1];
  2203. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text('(' + Itm.UnitPriceWithOutTax);
  2204. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(' - ' + Itm.DiscountValue + ') X ' + _quantity + ' ' + UnitName + ' + (' + RowTax + ') = ' + RowTotalWithTax);
  2205. }
  2206. else if (Itm.DiscountPercent > 0) {
  2207. let Amount = (Itm.BaseQty * Itm.UnitPriceWithOutTax);
  2208. let DiscountAmount = (Amount * Itm.DiscountPercent) / 100;
  2209. let RowTotal = PiecePrice - DiscountAmount;
  2210. let AmountWithTax = instance.getAmountWithTax(Itm.ItemId, RowTotal).split('|');
  2211. let RowTotalWithTax = instance.roundOffIgnoreZerosAfterDecimal(AmountWithTax[0]);
  2212. let RowTax = AmountWithTax[1];
  2213. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text('(' + Itm.UnitPriceWithOutTax);
  2214. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(' - ' + Itm.DiscountPercent + '%) X ' + _quantity + ' ' + UnitName + ' + (' + RowTax + ') = ' + RowTotalWithTax);
  2215. }
  2216. }
  2217. }
  2218. if (evnt == "RefreshAllItems_InventoryClickEvents" || evnt == "FromWidget") {
  2219. let html = instance.getInventoryDesign(ItemId, IsCart, 0, Itm.RefItemIds);
  2220. $("#" + instance.g_VisibleContainerId).find(elem).find("#InventoryTypesTextboxes").html(html);
  2221. instance.allItemEvents(elem);
  2222. }
  2223. if (instance._order.g_ExpandItemSettings && (instance._order.g_IsAdmin == 1 || instance._order.g_ShowPrice == 1)) {
  2224. $("#editItemPriceAccordion_" + ItemId).removeClass("collapse");
  2225. }
  2226. else {
  2227. $("#editItemPriceAccordion_" + ItemId).addClass("collapse");
  2228. }
  2229. instance.checkErrors();
  2230. instance.checkLoyalityErrors(elem);
  2231. instance._cartDetails.hideUnUsedCategories();
  2232. }
  2233. }
  2234. updateItemsAvailability(res) {
  2235. let instance = this;
  2236. let Items = $("#" + instance.g_VisibleContainerId).find(".variant-list").find("li");
  2237. for (let i = 0; i < Items.length; i++) {
  2238. let elem = Items[i];
  2239. let ItemId = $("#" + instance.g_VisibleContainerId).find(elem).find(".hfOrder_ItemId").val();
  2240. if (ItemId > 0) {
  2241. let data = res.find(x => x.ItemId == ItemId);
  2242. $("#" + instance.g_VisibleContainerId).find(elem).find(".ItemAvailability").text('Avail : ' + data.AvailablePacks + ' / ' + data.AvailablePieces + ' (' + data.AvailableQuantity + ')');
  2243. }
  2244. }
  2245. let CartItems = $("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").find("li");
  2246. for (let c = 0; c < CartItems.length; c++) {
  2247. let elem = CartItems[c];
  2248. let ItemId = $("#" + instance.g_VisibleContainerId).find(elem).find(".hfOrder_ItemId").val();
  2249. if (ItemId > 0) {
  2250. let data = res.find(x => x.ItemId == ItemId);
  2251. $("#" + instance.g_VisibleContainerId).find(elem).find(".CartAvailability").text('Avail : ' + data.AvailablePacks + ' / ' + data.AvailablePieces + ' (' + data.AvailableQuantity + ')');
  2252. }
  2253. }
  2254. }
  2255. allItemEvents(elem) {
  2256. let instance = this;
  2257. let timer;
  2258. if (instance._order.g_IsSC_to_PC && !instance._order.g_IsFromPurchaseIndent) {
  2259. $("#" + instance.g_VisibleContainerId).find(elem).find(".quantity-plus").addClass("disabled");
  2260. $("#" + instance.g_VisibleContainerId).find(elem).find("#div_Cartons").find(".input-group-append").css("cursor", "not-allowed");
  2261. }
  2262. $("#" + instance.g_VisibleContainerId).find(".mouseHoverClass").hover(function () {
  2263. $("#" + instance.g_VisibleContainerId).find(this).closest(".variant-item").find('.mouseHoverClass').css({ 'font-weight': '' });
  2264. }, function () { $("#" + instance.g_VisibleContainerId).find(this).closest(".variant-item").find('.mouseHoverClass').css({ 'font-weight': '' }); });
  2265. $("#" + instance.g_VisibleContainerId).find(elem).find(".chk_PurPlanItem").unbind().click(function () {
  2266. let element = elem;
  2267. let ItemId = element.find(".hfOrder_ItemId").val();
  2268. if ($("#" + instance.g_VisibleContainerId).find(this).is(':checked')) {
  2269. instance.updateItemsArray(element, "PurPlan");
  2270. }
  2271. else {
  2272. instance.deleteCartItems(ItemId);
  2273. $("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").find(".cartitem-" + ItemId).remove();
  2274. }
  2275. });
  2276. $("#" + instance.g_VisibleContainerId).find(".editCartItemQuantity").unbind().click(function () {
  2277. let element = elem;
  2278. element.find("._editCartItemQuantity").toggleClass("hidden");
  2279. element.find(".editCartItemQuantity").toggleClass("hidden");
  2280. element.find(".CartAvailability").toggleClass("hidden");
  2281. });
  2282. $("#" + instance.g_VisibleContainerId).find(elem).find('.txtOrder_ItemCount').unbind().click(function () {
  2283. let ItemId = elem.find(".hfOrder_ItemId").val();
  2284. let ItmIndex = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId);
  2285. if (ItmIndex != -1) {
  2286. instance.g_CartItems_New[ItmIndex].IsPacksFocus = true;
  2287. instance.g_CartItems_New[ItmIndex].IsPiecesFocus = false;
  2288. }
  2289. else {
  2290. $("#" + instance.g_VisibleContainerId).find(elem).find(".hfOrder_PacksFocus").val(1);
  2291. $("#" + instance.g_VisibleContainerId).find(elem).find(".hfOrder_PiecesFocus").val(0);
  2292. }
  2293. });
  2294. $("#" + instance.g_VisibleContainerId).find(elem).find('.txtOrder_ItemPieceCount').unbind().click(function () {
  2295. let ItemId = elem.find(".hfOrder_ItemId").val();
  2296. let ItmIndex = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId);
  2297. if (ItmIndex != -1) {
  2298. instance.g_CartItems_New[ItmIndex].IsPacksFocus = false;
  2299. instance.g_CartItems_New[ItmIndex].IsPiecesFocus = true;
  2300. }
  2301. else {
  2302. $("#" + instance.g_VisibleContainerId).find(elem).find(".hfOrder_PacksFocus").val(0);
  2303. $("#" + instance.g_VisibleContainerId).find(elem).find(".hfOrder_PiecesFocus").val(1);
  2304. }
  2305. });
  2306. $("#" + instance.g_VisibleContainerId).find(elem).find(".txteditItemPrice").unbind().keyup(function () {
  2307. clearTimeout(timer);
  2308. timer = setTimeout(function () {
  2309. let element = elem;
  2310. instance.updateItemsArray(element, "UnitPrice");
  2311. }, 300);
  2312. });
  2313. $("#" + instance.g_VisibleContainerId).find(elem).find("#txt_ManualConversionQty").unbind().keyup(function () {
  2314. clearTimeout(timer);
  2315. timer = setTimeout(function () {
  2316. let element = elem;
  2317. instance.updateItemsArray(element, "ManualConversionQty");
  2318. }, 300);
  2319. });
  2320. $("#" + instance.g_VisibleContainerId).find(elem).find(".dropdown_ManualUOMs").unbind().change(function () {
  2321. let element = elem;
  2322. let ItemId = element.find(".hfOrder_ItemId").val();
  2323. let ItmIndex = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId);
  2324. if (ItmIndex != -1) {
  2325. let SelectedUnitId = Number($("#" + instance.g_VisibleContainerId).find(elem).find(".dropdown_ManualUOMs").val());
  2326. let SelectedUnitName = $("#" + instance.g_VisibleContainerId).find(elem).find(".dropdown_ManualUOMs option:selected").text();
  2327. instance.g_CartItems_New[ItmIndex].SelectedUnitId = SelectedUnitId;
  2328. instance.g_CartItems_New[ItmIndex].SelectedUnitName = SelectedUnitName;
  2329. $("#ulOrder_Cart").find("#ddl_ManualUOMs_" + ItemId).val(SelectedUnitId);
  2330. }
  2331. });
  2332. $("#" + instance.g_VisibleContainerId).find(elem).find(".quantity-plus").unbind().click(function () {
  2333. let element = elem;
  2334. let Packs = Number(element.find(".txtOrder_ItemCount").val());
  2335. let Pieces = 0;
  2336. if (instance.g_IsEnablePieces) {
  2337. Pieces = Number(element.find(".txtOrder_ItemPieceCount").val());
  2338. }
  2339. let IsPacksFocus = false;
  2340. let IsPiecesFocus = false;
  2341. let FocusTxt = instance.getItemFocus(element);
  2342. if (FocusTxt == "Packs") {
  2343. IsPacksFocus = true;
  2344. }
  2345. else {
  2346. IsPiecesFocus = true;
  2347. }
  2348. if (IsPacksFocus) {
  2349. if (element.find("#txt_Pieces").val() == 0) {
  2350. element.find('.divOrders_ItemPieceCount').removeClass('floating-label-form-group-with-value');
  2351. }
  2352. element.find('.divOrders_ItemCount').addClass('floating-label-form-group-with-value');
  2353. let Packs = Number(element.find(".txtOrder_ItemCount").val());
  2354. let incVal = instance.getIncrementValue(Packs);
  2355. let val = instance.roundOffIgnoreZerosAfterDecimal(Packs + incVal);
  2356. element.find(".txtOrder_ItemCount").val(val);
  2357. }
  2358. if (IsPiecesFocus) {
  2359. element.find('.divOrders_ItemPieceCount').addClass('floating-label-form-group-with-value');
  2360. let Pieces = Number(element.find(".txtOrder_ItemPieceCount").val());
  2361. let incVal = instance.getIncrementValue(Pieces);
  2362. let val = instance.roundOffIgnoreZerosAfterDecimal(Pieces + incVal);
  2363. element.find(".txtOrder_ItemPieceCount").val(val);
  2364. }
  2365. instance.updateItemsArray(element, "Plus");
  2366. });
  2367. $("#" + instance.g_VisibleContainerId).find(elem).find(".quantity-minus").unbind().click(function () {
  2368. let element = elem;
  2369. let ItemId = element.find(".hfOrder_ItemId").val();
  2370. let Packs = Number(element.find(".txtOrder_ItemCount").val());
  2371. let Pieces = Number(element.find(".txtOrder_ItemPieceCount").val());
  2372. let IsPacksFocus = false;
  2373. let IsPiecesFocus = false;
  2374. let FocusTxt = instance.getItemFocus(element);
  2375. if (FocusTxt == "Packs") {
  2376. IsPacksFocus = true;
  2377. }
  2378. else {
  2379. IsPiecesFocus = true;
  2380. }
  2381. if (IsPacksFocus) {
  2382. if (element.find("#txt_Pieces").val() == 0) {
  2383. element.find('.divOrders_ItemPieceCount').removeClass('floating-label-form-group-with-value');
  2384. }
  2385. element.find('.divOrders_ItemCount').addClass('floating-label-form-group-with-value');
  2386. let incVal = instance.getIncrementValue(Packs);
  2387. if (Packs > 0) {
  2388. let val = instance.roundOffIgnoreZerosAfterDecimal(Packs - incVal);
  2389. element.find(".txtOrder_ItemCount").val(val);
  2390. }
  2391. else if (Packs == 0 && Pieces > 0) {
  2392. element.find(".txtOrder_ItemCount").val(instance.roundOffIgnoreZerosAfterDecimal(Packs));
  2393. }
  2394. else {
  2395. element.find('.divOrders_ItemCount').removeClass('floating-label-form-group-with-value');
  2396. instance.deleteCartItems(ItemId);
  2397. return false;
  2398. }
  2399. }
  2400. if (IsPiecesFocus) {
  2401. element.find('.divOrders_ItemPieceCount').addClass('floating-label-form-group-with-value');
  2402. let Pieces = Number(element.find(".txtOrder_ItemPieceCount").val());
  2403. let incVal = instance.getIncrementValue(Pieces);
  2404. if (Pieces > 0) {
  2405. let val = instance.roundOffIgnoreZerosAfterDecimal(Pieces - incVal);
  2406. element.find(".txtOrder_ItemPieceCount").val(val);
  2407. }
  2408. else if (Pieces == 0 && Packs > 0) {
  2409. element.find(".txtOrder_ItemPieceCount").val(instance.roundOffIgnoreZerosAfterDecimal(Pieces));
  2410. }
  2411. else {
  2412. element.find('.divOrders_ItemPieceCount').removeClass('floating-label-form-group-with-value');
  2413. instance.deleteCartItems(ItemId);
  2414. return false;
  2415. }
  2416. }
  2417. instance.updateItemsArray(element, "Minus");
  2418. });
  2419. $("#" + instance.g_VisibleContainerId).find(elem).find('.chkItem_ExchangeDC').unbind().change(function () {
  2420. let element = elem;
  2421. let ItemId = element.find(".hfOrder_ItemId").val();
  2422. if (element.find('.chkItem_ExchangeDC').prop("checked")) {
  2423. element.find('#Ord_txtdiscount').val('').prop("disabled", true).css("cursor", "not-allowed");
  2424. $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId).find("#Ord_txtdiscount").val('').prop("disabled", true).css("cursor", "not-allowed");
  2425. }
  2426. else {
  2427. element.find('#Ord_txtdiscount').prop("disabled", false).css("cursor", "auto");
  2428. $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId).find('#Ord_txtdiscount').prop("disabled", false).css("cursor", "auto");
  2429. }
  2430. instance.updateItemsArray(element, "Exchange");
  2431. });
  2432. $("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemCount").keyup(function () {
  2433. clearTimeout(timer);
  2434. timer = setTimeout(function () {
  2435. instance.updateItemsArray(elem, "Packs");
  2436. }, 300);
  2437. });
  2438. $("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemPieceCount").keyup(function () {
  2439. clearTimeout(timer);
  2440. timer = setTimeout(function () {
  2441. instance.updateItemsArray(elem, "Pieces");
  2442. }, 300);
  2443. });
  2444. $("#" + instance.g_VisibleContainerId).find(elem).find(".btnOrder_DiscType").unbind().change(function () {
  2445. instance.updateItemsArray(elem, "DiscountType");
  2446. });
  2447. $("#" + instance.g_VisibleContainerId).find(elem).find("#Ord_txtdiscount").unbind().keyup(function () {
  2448. clearTimeout(timer);
  2449. timer = setTimeout(function () {
  2450. instance.updateItemsArray(elem, "Discount");
  2451. }, 300);
  2452. });
  2453. let DescriptionElem = $("#" + instance.g_VisibleContainerId).find(elem).find("#txt_Description");
  2454. if (instance.g_FromWidgetEditOrderItemId > 0) {
  2455. DescriptionElem = $("#" + instance.g_VisibleContainerId).find("#txt_Description");
  2456. }
  2457. $(DescriptionElem).unbind().keyup(function () {
  2458. clearTimeout(timer);
  2459. timer = setTimeout(function () {
  2460. let ItemId = elem.find(".hfOrder_ItemId").val();
  2461. let CartItem = instance.g_CartItems_New.find(x => x.ItemId == ItemId && x.RefItemIds == "");
  2462. if (CartItem != undefined) {
  2463. if (instance.g_FromWidgetEditOrderItemId > 0) {
  2464. CartItem.Description = $("#txt_Description").val().toString();
  2465. }
  2466. else {
  2467. CartItem.Description = elem.find("#txt_Description").val().toString();
  2468. }
  2469. }
  2470. }, 300);
  2471. });
  2472. $("#" + instance.g_VisibleContainerId).find(elem).find(".delete").unbind().click(function () {
  2473. let FromWidget = false;
  2474. if (instance.g_CartItems_New.length <= 10) {
  2475. $("#" + instance.g_VisibleContainerId).find(".CartItemFindTxt").addClass('hidden');
  2476. }
  2477. let message = "Do you really want to delete this item";
  2478. if (instance.g_CartItems_New.length == 1)
  2479. message = "Your cart is going to empty.";
  2480. let itemid = $("#" + instance.g_VisibleContainerId).find(this).parents(".cartitem").find(".hfOrder_ItemId").val();
  2481. if (itemid == undefined) {
  2482. itemid = $("#" + instance.g_VisibleContainerId).find(this).parents(".variant-addeditem").find(".hfOrder_ItemId").val();
  2483. }
  2484. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length > 0) {
  2485. FromWidget = true;
  2486. }
  2487. bootbox.confirm({
  2488. message: message,
  2489. closeButton: false,
  2490. buttons: {
  2491. confirm: {
  2492. label: 'Yes',
  2493. className: 'btn-success'
  2494. },
  2495. cancel: {
  2496. label: 'No',
  2497. className: 'btn-danger'
  2498. }
  2499. },
  2500. callback: function (result) {
  2501. if (result) {
  2502. instance.deleteCartItems(itemid, FromWidget);
  2503. if (instance._order.g_IsPurchasePlanning)
  2504. $("#" + instance.g_VisibleContainerId).find("#chk_PurPlanItem_" + itemid).prop("checked", false);
  2505. }
  2506. }
  2507. });
  2508. });
  2509. $("#" + instance.g_VisibleContainerId).find(elem).find(".div_MultipleUOMs").change(function () {
  2510. instance.updateItemsArray(elem, "UOMChange");
  2511. });
  2512. }
  2513. readScanner(capturedValue, uniqueId) {
  2514. if (capturedValue != "" && capturedValue != null && capturedValue != undefined) {
  2515. $("#txt_SearchItem").val(capturedValue);
  2516. }
  2517. }
  2518. refreshAllItems(FromWidget = false, evnt) {
  2519. let instance = this;
  2520. for (let i = 0; i < instance.g_LoadedItems.length; i++) {
  2521. let Itm = instance.g_LoadedItems[i];
  2522. let elem = $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + Itm.ItemId);
  2523. if (elem != undefined && elem.length > 0) {
  2524. instance.updateItemsArray(elem, "RefreshAllItems_" + evnt, FromWidget);
  2525. }
  2526. let cart_elem = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + Itm.ItemId);
  2527. if (cart_elem != undefined && cart_elem.length > 0) {
  2528. instance.updateItemsArray(cart_elem, "RefreshAllItems_" + evnt, FromWidget);
  2529. }
  2530. instance.checkValidations(Itm.ItemId, false);
  2531. }
  2532. }
  2533. bindAllItemsQty(FromWidget = false, evnt) {
  2534. let instance = this;
  2535. for (let i = 0; i < instance.g_LoadedItems.length; i++) {
  2536. let Itm = instance.g_LoadedItems[i];
  2537. let elem = $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + Itm.ItemId);
  2538. if (elem != undefined && elem.length > 0) {
  2539. let CartIndex = instance.g_CartItems_New.findIndex(x => x.ItemId == Itm.ItemId);
  2540. if (CartIndex != -1) {
  2541. let inventoryApplyType = instance._order.g_InventoryApplyType;
  2542. if (inventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  2543. elem.find("#txt_Cartons").val(instance.g_CartItems_New[CartIndex].Quantity);
  2544. elem.find("#txt_Pieces").val(0);
  2545. }
  2546. else if (inventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs) {
  2547. elem.find("#txt_Cartons").val(instance.g_CartItems_New[CartIndex].Packs);
  2548. elem.find("#txt_Pieces").val(instance.g_CartItems_New[CartIndex].Pieces);
  2549. }
  2550. else if (inventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces) {
  2551. elem.find("#txt_Cartons").val(instance.g_CartItems_New[CartIndex].Packs);
  2552. elem.find("#txt_Pieces").val(instance.g_CartItems_New[CartIndex].Pieces);
  2553. }
  2554. else if (inventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.PacksAndPieces) {
  2555. elem.find("#txt_Cartons").val(instance.g_CartItems_New[CartIndex].Packs);
  2556. elem.find("#txt_Pieces").val(instance.g_CartItems_New[CartIndex].Pieces);
  2557. }
  2558. instance.updateItemsArray(elem, "RefreshAllItems_" + evnt, FromWidget, 0, instance.g_CartItems_New[CartIndex].Pieces);
  2559. }
  2560. else {
  2561. instance.updateItemsArray(elem, "RefreshAllItems_" + evnt, FromWidget);
  2562. }
  2563. }
  2564. }
  2565. }
  2566. showBOMItems(ItemId, ItemName, element) {
  2567. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(["apps/transact/components/orders/itembomselection.js"], function () {
  2568. Unibase.Platform.Helpers.NavigationHelper.Instance().popup(0, "", Bizgaze.Apps.Transact.Components.Orders.ItemBOMSelection.Instance(), function () {
  2569. Bizgaze.Apps.Transact.Components.Orders.ItemBOMSelection.Instance().LoadBOMItems(ItemId, ItemName);
  2570. }, Unibase.Platform.Helpers.Size.Large);
  2571. });
  2572. }
  2573. itemSettings(FromWidget = false) {
  2574. let instance = this;
  2575. let inventoryHtml = `<div class="row" id="div_chkpieces"><div class="col-sm-3 hidden divselectall"><div class="custom-control custom-checkbox divselectall checkbox-primary"><input type="checkbox" class="custom-control-input" id="chk_AllItems"><label class="custom-control-label" for="chk_AllItems">Select All</label></div></div><div class="col-sm-4 div_chk_Packs hidden"><div class="custom-control custom-checkbox divEnablePacks checkbox-primary"><input type="checkbox" class="custom-control-input" id="chk_Packs"><label class="custom-control-label" for="chk_Packs">Enable Packs</label></div></div><div class="col-sm-4 div_chk_Pieces hidden"><div class="custom-control custom-checkbox divEnablePieces checkbox-primary"><input type="checkbox" class="custom-control-input" id="chk_Pieces"><label class="custom-control-label" for="chk_Pieces">Enable Pieces</label></div></div><div class="col-sm-4 hidden div_chk_CompositePrice"><div class="custom-control custom-checkbox checkbox-primary"><input type="checkbox" class="custom-control-input" id="chk_CompositePrice"><label class="custom-control-label" for="chk_CompositePrice">Enable Composite Price</label></div></div><div class="col-sm-4 hidden div_chk_PiecePrice"><div class="custom-control custom-checkbox checkbox-primary"><input type="checkbox" class="custom-control-input" id="chk_PiecePrice"><label class="custom-control-label" for="chk_PiecePrice">Enable Piece Price</label></div></div></div><br />`;
  2576. let isChkQty = "";
  2577. if (instance.g_FromWidget) {
  2578. isChkQty = "hidden";
  2579. }
  2580. if (instance._order.g_InventoryApplyType != Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  2581. inventoryHtml += `<div class="row mb-20 div_chk_Qty ` + isChkQty + `" id="div_chk_Qty">
  2582. <div class="col-sm-12">
  2583. <div class="custom-control custom-checkbox divEnableQty checkbox-primary pull-right col-sm-3">
  2584. <input type="checkbox" class="custom-control-input" id="chk_Qty">
  2585. <label class="custom-control-label" for="chk_Qty"> Quantity </label>
  2586. </div>
  2587. </div>
  2588. </div>`;
  2589. }
  2590. inventoryHtml += `<div class="d-none d-md-block"><div class="row div_titledetails font-weight-500 text-dark"><div class="col-sm-8 ItemDetails">Item Details</div><div class="col-sm-4 Inventory_Title InventoryTypesTextboxes text-center"> <div class="p-0"> <div class="row p-0"> <span id="spn_InventoryTitle" class="col-6">Cartons</span><span id="spn_picesTitle" class="col-6 pull-right hidden"> Pieces</span></div></div></div></div></div><div class="mt-2" id="div_ItemList"></div>`;
  2591. $("#" + instance.g_VisibleContainerId).find(".InventorySettings").html(inventoryHtml);
  2592. $("#" + instance.g_VisibleContainerId).find("#div_ItemList").html('<ul class="variant-list list-group" style="0px -21px"><li class="variant-item hidden"></li>');
  2593. if (!instance._order.g_IsSC_to_PC) {
  2594. instance.g_CartItems_New = [];
  2595. instance.g_SC_PC_CartItems = [];
  2596. instance.g_ItemsUnitPrice_New = [];
  2597. instance.g_SelectedItems = [];
  2598. instance.g_LoadedItems = [];
  2599. }
  2600. $("#" + instance.g_VisibleContainerId).find("#chk_AllItems").unbind().click(function () {
  2601. if ($("#" + instance.g_VisibleContainerId).find('#chk_AllItems').is(':checked')) {
  2602. instance.navigationHelper.showLoading();
  2603. $("#" + instance.g_VisibleContainerId).find(".variant-list").find(".chk_PurPlanItem").each(function () {
  2604. let element = $("#" + instance.g_VisibleContainerId).find(this).closest(".variant-item");
  2605. if (element.find("#txt_Cartons").val() != 0 && element.find("#txt_Cartons").val() != "") {
  2606. instance.updateItemsArray(element, "PurPlan_AllItems", false);
  2607. $("#" + instance.g_VisibleContainerId).find(element).find(".chk_PurPlanItem").prop("checked", true);
  2608. }
  2609. });
  2610. instance.navigationHelper.hideLoading();
  2611. instance.getPurchasePlanTotals(false, true);
  2612. }
  2613. else {
  2614. $("#" + instance.g_VisibleContainerId).find(".variant-list").find(".chk_PurPlanItem").prop("checked", false);
  2615. instance.g_CartItems_New = [];
  2616. $("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").find(".cartitem").remove();
  2617. $("#" + instance.g_VisibleContainerId).find("#OverallOrderQuantity").text("0");
  2618. $("#" + instance.g_VisibleContainerId).find("#totalOrderItems").text("0");
  2619. instance.getPurchasePlanTotals(false, true);
  2620. }
  2621. });
  2622. instance.inventoryTypeClickEvents(FromWidget);
  2623. instance.priceTypeClickEvents(FromWidget);
  2624. }
  2625. clearItemSearch(IsUpdateTax = false) {
  2626. let instance = this;
  2627. $("#" + instance.g_VisibleContainerId).find(".search-clear-items").addClass("d-none");
  2628. $("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val("");
  2629. if (instance.g_FromWidget) {
  2630. instance.refreshAllItems(instance.g_FromWidget, "PriceTypeClickEvents");
  2631. }
  2632. else {
  2633. Bizgaze.Apps.Transact.Controls.OrderItems.Instance().loadItems("", false, IsUpdateTax);
  2634. }
  2635. }
  2636. itemSettingsEvents() {
  2637. var instance = this;
  2638. let timer;
  2639. $("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").on('input', function () {
  2640. clearTimeout(timer);
  2641. timer = setTimeout(function () {
  2642. var checkvalue = $("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val();
  2643. let check = checkvalue.toString();
  2644. if (check.length != 0) {
  2645. $("#" + instance.g_VisibleContainerId).find(".search-clear-items").removeClass("d-none");
  2646. }
  2647. else {
  2648. $("#" + instance.g_VisibleContainerId).find(".search-clear-items").addClass("d-none");
  2649. }
  2650. instance.g_PageIndex = 0;
  2651. if (instance._order.g_IsPurchasePlanning)
  2652. instance.loadPurchasePlanItems($("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val());
  2653. else
  2654. instance.loadItems($("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val());
  2655. }, 1500);
  2656. });
  2657. $("#" + instance.g_VisibleContainerId).find("#ItemLoadType").change(function () {
  2658. $("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val('');
  2659. $("#" + instance.g_VisibleContainerId).find("#ItemLoadType option[value='0']").remove();
  2660. let type = $("#" + instance.g_VisibleContainerId).find("#ItemLoadType option:selected").text();
  2661. if (type != "Filter" && !Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_OnlyFilters) {
  2662. instance.g_IsFilterApplied = false;
  2663. instance.g_FilteredTags = '';
  2664. Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_TagArray = [];
  2665. Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_ClearingTags = "";
  2666. }
  2667. instance.g_PageIndex = 0;
  2668. if (instance._order.g_IsPurchasePlanning) {
  2669. instance.loadPurchasePlanItems('');
  2670. }
  2671. else {
  2672. if (type == "Filter") {
  2673. instance.filterPopUp();
  2674. }
  2675. else {
  2676. instance.loadItems(type);
  2677. }
  2678. }
  2679. });
  2680. $("#" + instance.g_VisibleContainerId).find(".ContinueShopping").unbind().click(function () {
  2681. instance.continueShopping();
  2682. });
  2683. }
  2684. filterPopUp() {
  2685. let instance = this;
  2686. instance.navigationHelper.popup(0, '', Bizgaze.Apps.Transact.Components.OrderFilter.Instance(), null, Unibase.Platform.Helpers.Size.Medium);
  2687. }
  2688. inventoryTypeClickEvents(FromWidget) {
  2689. let instance = this;
  2690. $("#" + instance.g_VisibleContainerId).find('#chk_Pieces').click(function () {
  2691. if ($("#" + instance.g_VisibleContainerId).find('#chk_Pieces').is(':checked')) {
  2692. instance.g_IsEnablePieces = true;
  2693. }
  2694. else {
  2695. instance.g_IsEnablePieces = false;
  2696. instance.g_CartItems_New.forEach(x => {
  2697. x.IsPacksFocus = true;
  2698. x.IsPiecesFocus = false;
  2699. });
  2700. }
  2701. instance.refreshAllItems(FromWidget, "InventoryClickEvents");
  2702. });
  2703. $("#" + instance.g_VisibleContainerId).find('#chk_Packs').click(function () {
  2704. if ($("#" + instance.g_VisibleContainerId).find('#chk_Packs').is(':checked')) {
  2705. instance.g_IsEnablePacks = true;
  2706. }
  2707. else {
  2708. instance.g_IsEnablePacks = false;
  2709. instance.g_CartItems_New.forEach(x => {
  2710. x.IsPacksFocus = false;
  2711. x.IsPiecesFocus = true;
  2712. });
  2713. }
  2714. instance.refreshAllItems(FromWidget, "InventoryClickEvents");
  2715. });
  2716. $("#" + instance.g_VisibleContainerId).find('#chk_Qty').click(function () {
  2717. if ($("#" + instance.g_VisibleContainerId).find('#chk_Qty').is(':checked')) {
  2718. instance.g_IsEnablePacks = true;
  2719. instance.g_CartItems_New.forEach(x => {
  2720. x.IsPacksFocus = true;
  2721. x.IsPiecesFocus = false;
  2722. });
  2723. instance._order.g_InventoryApplyType = Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity;
  2724. instance._order.setInventorySettings(instance._order.g_InventoryApplyType, false, true);
  2725. }
  2726. else {
  2727. instance._order.g_InventoryApplyType = instance._order.g_LobInventoryApplyType;
  2728. instance._order.setInventorySettings(instance._order.g_InventoryApplyType, false, true);
  2729. if ($("#" + instance.g_VisibleContainerId).find("#chk_Packs").prop("checked")) {
  2730. instance.g_IsEnablePacks = true;
  2731. }
  2732. if ($("#" + instance.g_VisibleContainerId).find("#chk_Pieces").prop("checked")) {
  2733. instance.g_IsEnablePieces = true;
  2734. }
  2735. }
  2736. instance.bindAllItemsQty(FromWidget, "InventoryClickEvents");
  2737. });
  2738. }
  2739. setPriceType() {
  2740. var instance = this;
  2741. if (instance.g_IsEnablePiecePrice) {
  2742. instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.PiecePrice;
  2743. }
  2744. else if (instance.g_IsEnableCompositePrice) {
  2745. instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.CompositePrice;
  2746. }
  2747. else if (instance.g_IsEnableCompositePiecePrice) {
  2748. instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.Both;
  2749. }
  2750. else {
  2751. instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.None;
  2752. }
  2753. }
  2754. priceTypeClickEvents(FromWidget) {
  2755. let instance = this;
  2756. $("#" + instance.g_VisibleContainerId).find('#chk_PiecePrice').click(function () {
  2757. if ($("#" + instance.g_VisibleContainerId).find('#chk_PiecePrice').is(':checked')) {
  2758. if (instance.g_IsEnableCompositePrice) {
  2759. instance.g_IsEnableCompositePrice = false;
  2760. instance.g_IsEnablePiecePrice = false;
  2761. instance.g_IsEnableCompositePiecePrice = true;
  2762. }
  2763. else {
  2764. instance.g_IsEnablePiecePrice = true;
  2765. instance.g_IsEnableCompositePiecePrice = false;
  2766. instance.g_IsEnableCompositePrice = false;
  2767. }
  2768. }
  2769. else {
  2770. instance.g_IsEnablePiecePrice = false;
  2771. instance.g_IsEnableCompositePiecePrice = false;
  2772. instance.g_IsEnableCompositePrice = $("#" + instance.g_VisibleContainerId).find('#chk_CompositePrice').is(':checked');
  2773. }
  2774. instance.setPriceType();
  2775. if (instance._order.g_IsPurchasePlanning)
  2776. instance.loadPurchasePlanItems($("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val());
  2777. else {
  2778. instance.clearItemSearch(true);
  2779. }
  2780. });
  2781. $("#" + instance.g_VisibleContainerId).find('#chk_CompositePrice').click(function () {
  2782. if ($("#" + instance.g_VisibleContainerId).find('#chk_CompositePrice').is(':checked')) {
  2783. if (instance.g_IsEnablePiecePrice) {
  2784. instance.g_IsEnableCompositePrice = false;
  2785. instance.g_IsEnableCompositePiecePrice = true;
  2786. instance.g_IsEnablePiecePrice = false;
  2787. }
  2788. else {
  2789. instance.g_IsEnableCompositePrice = true;
  2790. instance.g_IsEnableCompositePiecePrice = false;
  2791. instance.g_IsEnablePiecePrice = false;
  2792. }
  2793. }
  2794. else {
  2795. instance.g_IsEnableCompositePrice = false;
  2796. instance.g_IsEnableCompositePiecePrice = false;
  2797. instance.g_IsEnablePiecePrice = $("#" + instance.g_VisibleContainerId).find('#chk_PiecePrice').is(':checked');
  2798. }
  2799. instance.setPriceType();
  2800. if (instance._order.g_IsPurchasePlanning)
  2801. instance.loadPurchasePlanItems($("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val());
  2802. else {
  2803. instance.clearItemSearch(true);
  2804. }
  2805. });
  2806. }
  2807. continueShopping() {
  2808. let instance = this;
  2809. instance.g_FromContinueShopping = true;
  2810. $("#" + instance.g_VisibleContainerId).find(".modal-body").scrollTop(0);
  2811. $("#" + instance.g_VisibleContainerId).find(".tax-error").text("");
  2812. let SearchItem = $("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val();
  2813. if (SearchItem != "" || instance.g_PageIndex != 0) {
  2814. instance.g_PageIndex = 0;
  2815. $("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val("");
  2816. instance.loadItems($("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val());
  2817. }
  2818. $("#" + instance.g_VisibleContainerId).find(".div_SearchItem").removeClass('floating-label-form-group-with-value');
  2819. $("#" + instance.g_VisibleContainerId).find(".section_CartDetails").addClass('hidden');
  2820. $("#" + instance.g_VisibleContainerId).find(".section_Summary").addClass('hidden');
  2821. $("#" + instance.g_VisibleContainerId).find("#dropup_save").addClass("hidden");
  2822. $("#" + instance.g_VisibleContainerId).find("#btn_Save_New").addClass("hidden");
  2823. $("#" + instance.g_VisibleContainerId).find(".btn_Save_Form").addClass("hidden");
  2824. $("#" + instance.g_VisibleContainerId).find(".section_PriceDetails").addClass('hidden');
  2825. $("#" + instance.g_VisibleContainerId).find(".OrgContactNameLink").removeClass('hidden');
  2826. $("#" + instance.g_VisibleContainerId).find(".section_OrderDetails").addClass("hidden");
  2827. $("#" + instance.g_VisibleContainerId).find(".section_Items").removeClass('hidden');
  2828. if ($("#" + instance.g_VisibleContainerId).find(".section_CartDetails").hasClass('hidden')) {
  2829. $("#" + instance.g_VisibleContainerId).find("#btn_CloseForm_" + $("#" + instance.g_VisibleContainerId).find("#hf_FormId").val()).removeClass('hidden');
  2830. }
  2831. if (!$("#" + instance.g_VisibleContainerId).find(".section_Items").hasClass('hidden')) {
  2832. $("#" + instance.g_VisibleContainerId).find("#btn_Save").addClass('hidden');
  2833. instance._order.showOrHideSaveAsDraft();
  2834. $("#" + instance.g_VisibleContainerId).find(".CheckOutButton").removeClass('hidden');
  2835. }
  2836. if (instance._order.g_IsPurchasePlanning) {
  2837. $("#" + instance.g_VisibleContainerId).find(".section_PurchasePlanSummary").removeClass('hidden');
  2838. $("#" + instance.g_VisibleContainerId).find(".section_PurchasePlan").removeClass('hidden');
  2839. $("#" + instance.g_VisibleContainerId).find(".section_PriceDetails").find(".card-header").text('Description');
  2840. }
  2841. $("#" + instance.g_VisibleContainerId).find(".btn_OrderSaveAsDraft").addClass('hidden');
  2842. $("#" + instance.g_VisibleContainerId).find("#btn_CloseForm_" + $("#" + instance.g_VisibleContainerId).find("#hf_FormId").val()).addClass("mr-auto");
  2843. $("#" + instance.g_VisibleContainerId).find('#ulOrder_Cart .cart-item-chk').addClass('d-none');
  2844. }
  2845. showDefItems(OrganizationId, ItemId, ItemName, OrderType, element) {
  2846. let instance = this;
  2847. Bizgaze.Apps.Transact.Managers.ItemManager.Instance().getdefitemsbom(instance._order.g_PriceCodeId, OrganizationId, ItemId, OrderType, false, instance.g_WarehouseId).then(function (response) {
  2848. var data = response;
  2849. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(["apps/transact/controls/orders/customizedproduct.js"], () => {
  2850. Bizgaze.Apps.Transact.Controls.CustomizedProducts.Instance().loadCPModal(data);
  2851. console.log(data);
  2852. });
  2853. });
  2854. }
  2855. showOfferItems(OrganizationId, ItemId, ItemName, OrderType, element) {
  2856. let instance = this;
  2857. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(["apps/transact/components/invoices/itemofferselection.js", "apps/transact/controls/invoices/invoiceitem.component.js"], function () {
  2858. Unibase.Platform.Helpers.NavigationHelper.Instance().popup(0, "", Bizgaze.Apps.Transact.Components.Invoices.ItemOfferSelection.Instance(), function () {
  2859. Bizgaze.Apps.Transact.Components.Invoices.ItemOfferSelection.Instance().LoadOfferItems(OrganizationId, ItemId, ItemName, OrderType, $("#" + instance.g_VisibleContainerId).find(element), "Order");
  2860. }, Unibase.Platform.Helpers.Size.Large);
  2861. });
  2862. }
  2863. applyOffer(Item) {
  2864. let instance = this;
  2865. let ItemId = Item[0].ItemId;
  2866. let Qty = Item[0].Volume;
  2867. let LoadedItem = instance.g_LoadedItems.find(x => x.ItemId == ItemId);
  2868. let Cartons = Math.ceil(Qty / (LoadedItem.PackCount * LoadedItem.PackSize));
  2869. Qty = ((LoadedItem.PackCount * LoadedItem.PackSize) * Cartons);
  2870. Qty = instance.roundOff(Qty);
  2871. if (instance._order.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs) {
  2872. $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId).find('#txt_Cartons').val(Cartons);
  2873. $("#" + instance.g_VisibleContainerId).find('.cartitem-' + ItemId).find('#txt_Cartons').val(Cartons);
  2874. }
  2875. else if (instance._order.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces) {
  2876. let Pieces = Math.ceil((Qty) / LoadedItem.PackSize);
  2877. $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId).find('#txt_Pieces').val(Pieces);
  2878. $("#" + instance.g_VisibleContainerId).find('.cartitem-' + ItemId).find('#txt_Pieces').val(Pieces);
  2879. }
  2880. else if (instance._order.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.PacksAndPieces) {
  2881. if (Cartons > 0) {
  2882. $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId).find('#txt_Cartons').val(Cartons);
  2883. $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId).find('#txt_Pieces').val("");
  2884. $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId).find('.defaultSelectedPieces').removeClass("floating-label-form-group-with-value");
  2885. $("#" + instance.g_VisibleContainerId).find('.cartitem-' + ItemId).find('#txt_Cartons').val(Cartons);
  2886. $("#" + instance.g_VisibleContainerId).find('.cartitem-' + ItemId).find('#txt_Pieces').val("");
  2887. $("#" + instance.g_VisibleContainerId).find('.cartitem-' + ItemId).find('.defaultSelectedPieces').removeClass("floating-label-form-group-with-value");
  2888. let ItmIndex = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId);
  2889. if (ItmIndex != -1) {
  2890. instance.g_CartItems_New[ItmIndex].IsPacksFocus = true;
  2891. instance.g_CartItems_New[ItmIndex].IsPiecesFocus = false;
  2892. }
  2893. }
  2894. else {
  2895. $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId).find('#txt_Cartons').val("");
  2896. $("#" + instance.g_VisibleContainerId).find('.cartitem-' + ItemId).find('#txt_Cartons').val("");
  2897. }
  2898. }
  2899. else {
  2900. $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId).find('#txt_Cartons').val(Qty);
  2901. $("#" + instance.g_VisibleContainerId).find('.cartitem-' + ItemId).find('#txt_Cartons').val(Qty);
  2902. }
  2903. let element = $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId);
  2904. instance.updateItemsArray(element, "ApplyOffer", false, Qty);
  2905. }
  2906. checkOffers(FromWidget, evnt) {
  2907. return __awaiter(this, void 0, void 0, function* () {
  2908. let instance = this;
  2909. if (instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim && instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim) {
  2910. let ordItems = new Array();
  2911. let applyType = '';
  2912. if (instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales || instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim) {
  2913. applyType = 'Sales';
  2914. }
  2915. else if (instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Purchase || instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim)
  2916. applyType = 'Purchases';
  2917. instance.g_CartItems_New.filter(x => x.IsFocItem == false).forEach(function (c) {
  2918. c.IsFocAdded = false;
  2919. c.FocItemIds = '';
  2920. c.IsOfferDiscountApplied = false;
  2921. c.AppliedOfferVolume = 0;
  2922. let ItemId = c.ItemId;
  2923. let baseqty = Number(c.BaseQty);
  2924. if ((c.IsManualUOM && instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales) || c.IsMultipleUOMs) {
  2925. baseqty = c.Quantity;
  2926. }
  2927. let unitPrice = Number(c.UnitPrice);
  2928. let rowTotal = instance.roundOff(baseqty * unitPrice);
  2929. ordItems.push({
  2930. ItemId: Number(ItemId),
  2931. Quantity: Number(instance.roundOff(baseqty)),
  2932. RowTotal: Number(rowTotal),
  2933. });
  2934. });
  2935. if (FromWidget) {
  2936. let OrderId = Bizgaze.Apps.Transact.Controls.Order.Instance().g_OrderId;
  2937. let OrderItemId = Bizgaze.Apps.Transact.Controls.AddOrderItems.Instance().g_Edit_OrderItemId;
  2938. instance.fileCacheHelper.loadJsFile("apps/transact/managers/orders/ordermanager.js", function () {
  2939. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().getOrderItems(OrderId, 0).then(function (response) {
  2940. let data = response.result;
  2941. data = data.filter(x => x.OrderItemId != OrderItemId && x.IsFoc == false);
  2942. for (let d = 0; d < data.length; d++) {
  2943. let ItemId = data[d].ItemId;
  2944. let baseqty = Number(data[d].Quantity);
  2945. let unitPrice = Number(data[d].UnitPrice);
  2946. let rowTotal = instance.roundOff(baseqty * unitPrice);
  2947. ordItems.push({
  2948. ItemId: Number(ItemId),
  2949. Quantity: Number(instance.roundOff(baseqty)),
  2950. RowTotal: Number(rowTotal),
  2951. });
  2952. }
  2953. instance.bindOfferItems(FromWidget, ordItems);
  2954. });
  2955. });
  2956. }
  2957. else {
  2958. instance.bindOfferItems(FromWidget, ordItems);
  2959. }
  2960. }
  2961. else {
  2962. instance.getTotals();
  2963. }
  2964. });
  2965. }
  2966. bindOfferItems(FromWidget, ordItems) {
  2967. var instance = this;
  2968. let IsCart = false;
  2969. if ($("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").is(":visible")) {
  2970. IsCart = true;
  2971. }
  2972. let ApplyDate1 = moment(instance.g_OfferApplyDate, "DD/MM/YYYY").add(1, 'days').format("YYYY/MM/DD");
  2973. let ApplyDate = new Date(ApplyDate1);
  2974. let postData = {
  2975. OrderItems: ordItems,
  2976. ContactId: instance._order.g_OrganizationId,
  2977. ApplyType: instance._order.g_OrderTypeId,
  2978. ApplyDate: ApplyDate
  2979. };
  2980. Bizgaze.Apps.Transact.Managers.OfferManager.Instance().getRelatedOffersByItem(postData).then(function (response) {
  2981. return __awaiter(this, void 0, void 0, function* () {
  2982. instance.g_AppliedOffers = [];
  2983. if (response != null && response.Result.length != 0) {
  2984. let AllFocItems = [];
  2985. for (let i = 0; i < response.Result.length; i++) {
  2986. let data = response.Result[i];
  2987. let appliedItems = data.applyIds.replace(/,\s*$/, "").split(',');
  2988. let discValue = 0;
  2989. let discPercent = 0;
  2990. if (data.PayoutValue > 0)
  2991. discValue = data.PayoutValue;
  2992. else if (data.OPayoutValue > 0)
  2993. discValue = data.OPayoutValue;
  2994. else if (data.PayoutPercent > 0)
  2995. discPercent = data.PayoutPercent;
  2996. let volume = data.Volume;
  2997. let focItems = data.ItemVolumePayouts;
  2998. for (let f = 0; f < focItems.length; f++) {
  2999. if (focItems[f].Quantity != 0) {
  3000. AllFocItems.push(focItems[f]);
  3001. }
  3002. }
  3003. let contactId = instance._order.g_OrganizationId;
  3004. for (let j = 0; j < focItems.length; j++) {
  3005. let focItem_RefItemIds = focItems[j].RefItemIds;
  3006. let focItem_RefItemSKUs = focItems[j].RefItemSKUs;
  3007. let ValidFocIndex = instance.g_ValidFocItems.findIndex(x => x.ItemId == focItems[j].ItemId && focItem_RefItemIds.indexOf(x.RefItemIds) != -1);
  3008. let CartItemIndex = instance.g_CartItems_New.findIndex(x => x.ItemId == focItems[j].ItemId && x.RefItemIds == focItem_RefItemIds);
  3009. if (focItems[j].Quantity > 0 && ((ValidFocIndex != -1 && focItems[j].IsFoC) || (!focItems[j].IsFoC))) {
  3010. let FocItem_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == focItems[j].ItemId && x.RefItemIds == focItem_RefItemIds);
  3011. if (FocItem_Index == -1) {
  3012. instance.addFocItemToCart(contactId, focItems[j].ItemId, focItems[j].Quantity, focItems[j].Discount, focItem_RefItemIds, FromWidget, focItem_RefItemSKUs);
  3013. }
  3014. else {
  3015. instance.editFocCartItem(focItems[j].ItemId, focItems[j].Quantity, FromWidget);
  3016. }
  3017. }
  3018. else if (CartItemIndex != -1) {
  3019. instance.deleteCartItems(focItems[j].ItemId, FromWidget, focItem_RefItemIds);
  3020. }
  3021. }
  3022. for (let m = 0; m < appliedItems.length; m++) {
  3023. let IsSelected = false;
  3024. var sp_ItemIndex = Bizgaze.Apps.Transact.Components.Invoices.ItemOfferSelection.Instance().g_Selected_Plan.findIndex(x => x.PlanVolumeId == data.PlanVolumeId && x.ItemId == Number(appliedItems[m]));
  3025. if (sp_ItemIndex != -1) {
  3026. IsSelected = true;
  3027. }
  3028. instance.g_AppliedOffers.push({
  3029. ItemId: Number(appliedItems[m]),
  3030. OfferId: data.OfferId,
  3031. PlanId: data.PlanId,
  3032. PlanVolumeId: data.PlanVolumeId,
  3033. IsSelected: IsSelected
  3034. });
  3035. let n = instance.g_CartItems_New.findIndex(x => x.ItemId == appliedItems[m] && x.RefItemIds == "");
  3036. if (n != -1) {
  3037. if (!instance._order.g_IsManageOfferDiscount || (instance.g_CartItems_New[n].DiscountValue == 0 && instance.g_CartItems_New[n].DiscountPercent == 0)) {
  3038. if (discValue > 0 || discPercent > 0) {
  3039. instance.g_CartItems_New[n].DiscountValue = discValue;
  3040. instance.g_CartItems_New[n].DiscountPercent = discPercent;
  3041. instance.g_CartItems_New[n].IsFocAdded = true;
  3042. instance.g_CartItems_New[n].IsOfferDiscountApplied = true;
  3043. instance.g_CartItems_New[n].AppliedOfferVolume = volume;
  3044. instance.g_CartItems_New[n].AppliedPlanVolumeId = data.PlanVolumeId;
  3045. instance.g_CartItems_New[n].AppliedOfferId = data.OfferId;
  3046. let Elem = $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + instance.g_CartItems_New[n].ItemId);
  3047. let Cart_Elem = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + instance.g_CartItems_New[n].ItemId);
  3048. let Discount = discValue == 0 ? discPercent : discValue;
  3049. $("#" + instance.g_VisibleContainerId).find(Elem).find("#Ord_txtdiscount").val(Discount);
  3050. $("#" + instance.g_VisibleContainerId).find(Cart_Elem).find("#Ord_txtdiscount").val(Discount);
  3051. let DiscountType = discValue == 0 ? 1 : 2;
  3052. $("#" + instance.g_VisibleContainerId).find(Elem).find(".btnOrder_DiscType").val(DiscountType);
  3053. $("#" + instance.g_VisibleContainerId).find(Cart_Elem).find(".btnOrder_DiscType").val(DiscountType);
  3054. let AssessableAmount = Number(instance.g_CartItems_New[n].Amount);
  3055. let discVal = Number(instance.g_CartItems_New[n].DiscountValue) * Number(instance.g_CartItems_New[n].BaseQty);
  3056. let DiscAmount = Number((instance.g_CartItems_New[n].Amount * discPercent) / 100) + Number(discVal);
  3057. let discAmt = DiscAmount + Number(instance.g_CartItems_New[n].optoutAmount);
  3058. AssessableAmount = Number(AssessableAmount) - Number(discAmt);
  3059. let AmountWithDiscount = Number(instance.g_CartItems_New[n].Amount) - Number(DiscAmount);
  3060. instance.g_CartItems_New[n].DiscountAmount = discAmt;
  3061. instance.g_CartItems_New[n].AmountWithDiscount = AmountWithDiscount;
  3062. instance.g_CartItems_New[n].DiscountType = DiscountType;
  3063. }
  3064. }
  3065. let amount = Number(instance.g_CartItems_New[n].UnitPrice) * Number(instance.g_CartItems_New[n].BaseQty);
  3066. let discAmt = Number(instance.roundOff((amount * discPercent) / 100)) + Number(instance.roundOff(discValue));
  3067. if (discAmt != 0) {
  3068. let assessableAmount = Number(amount) - Number(discAmt);
  3069. }
  3070. else {
  3071. }
  3072. }
  3073. instance.g_CartItems_New.filter(x => x.IsFocItem == false).forEach(function (c) {
  3074. let Elem = $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + c.ItemId);
  3075. let Cart_Elem = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + c.ItemId);
  3076. instance.updateItemsDesign(Elem, "AddFocItem_IsOfferDiscountApplied", IsCart);
  3077. instance.updateItemsDesign(Cart_Elem, "AddFocItem_IsOfferDiscountApplied", IsCart);
  3078. });
  3079. }
  3080. }
  3081. let Ref_Items = instance.g_CartItems_New.filter(x => x.RefItemIds != "");
  3082. for (let r = 0; r < Ref_Items.length; r++) {
  3083. let a = AllFocItems.findIndex(x => x.ItemId == Ref_Items[r].ItemId);
  3084. if (a == -1) {
  3085. instance.deleteCartItems(Ref_Items[r].ItemId, FromWidget, Ref_Items[r].RefItemIds);
  3086. }
  3087. }
  3088. }
  3089. else {
  3090. instance.g_CartItems_New.filter(x => x.IsFocItem == true).forEach(function (c) {
  3091. let Foc_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == c.ItemId && x.RefItemIds != "");
  3092. instance.g_CartItems_New.splice(Foc_Index, 1);
  3093. $("#" + instance.g_VisibleContainerId).find(".cartitem-" + c.ItemId + "-" + c.RefItemIds.replace(/,/g, "-")).remove();
  3094. if (FromWidget) {
  3095. $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + c.ItemId + "-" + c.RefItemIds.replace(/,/g, "-")).remove();
  3096. }
  3097. });
  3098. instance.g_CartItems_New.filter(x => x.IsFocItem == false && x.IsOfferAvailable == true && !instance._order.g_IsManageOfferDiscount).forEach(function (c) {
  3099. if (!FromWidget) {
  3100. let Elem = $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + c.ItemId);
  3101. let Cart_Elem = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + c.ItemId);
  3102. let CartItemIndex = instance.g_CartItems_New.findIndex(x => x.ItemId == c.ItemId);
  3103. if (CartItemIndex != -1) {
  3104. instance.g_CartItems_New[CartItemIndex].DiscountValue = 0;
  3105. instance.g_CartItems_New[CartItemIndex].DiscountPercent = 0;
  3106. instance.g_CartItems_New[CartItemIndex].IsFocAdded = false;
  3107. instance.g_CartItems_New[CartItemIndex].IsOfferDiscountApplied = false;
  3108. instance.g_CartItems_New[CartItemIndex].AppliedOfferVolume = 0;
  3109. instance.g_CartItems_New[CartItemIndex].DiscountAmount = 0;
  3110. instance.g_CartItems_New[CartItemIndex].AmountWithDiscount = instance.g_CartItems_New[CartItemIndex].Amount;
  3111. instance.g_CartItems_New[CartItemIndex].DiscountType = 2;
  3112. }
  3113. instance.updateItemsDesign(Elem, "AddFocItem_IsOfferDiscountApplied", IsCart);
  3114. instance.updateItemsDesign(Cart_Elem, "AddFocItem_IsOfferDiscountApplied", IsCart);
  3115. }
  3116. });
  3117. }
  3118. instance.getTotals();
  3119. if (instance.g_CartItems_New.length == 0) {
  3120. $("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").html('<li id="0" class="cartitem list-group-item col-xs-12 hidden clear no-border"></li> <li class="list-group-item col-xs-12 no-border EmptyCartLi"><strong>Your Shopping Cart is empty.</strong></li>');
  3121. }
  3122. else {
  3123. $("#" + instance.g_VisibleContainerId).find(".EmptyCartLi").remove();
  3124. }
  3125. });
  3126. });
  3127. }
  3128. addFocItemToCart(ContactId, ItemId, Quantity, Discount, RefItemIds, FromWidget, RefItemSKUs = "") {
  3129. let instance = this;
  3130. let ShippingAddressId = $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_shippingaddressid").val();
  3131. let BranchId = $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_billfromaddressid").val();
  3132. let LobId = $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_lobid").val();
  3133. let OrderItemId = 0;
  3134. if (FromWidget) {
  3135. ShippingAddressId = Bizgaze.Apps.Transact.Controls.AddOrderItems.Instance().g_ShippingAddressId;
  3136. BranchId = Bizgaze.Apps.Transact.Controls.AddOrderItems.Instance().g_BranchId;
  3137. LobId = Bizgaze.Apps.Transact.Controls.AddOrderItems.Instance().g_LobId;
  3138. let FocItem = Bizgaze.Apps.Transact.Controls.AddOrderItems.Instance().g_FocItems.find(x => x.ItemId == ItemId);
  3139. if (FocItem != undefined) {
  3140. OrderItemId = FocItem.OrderItemId;
  3141. }
  3142. }
  3143. let ApplyDate1 = moment(instance.g_OfferApplyDate, "DD/MM/YYYY").add(1, 'days').format("YYYY/MM/DD");
  3144. let ApplyDate = new Date(ApplyDate1);
  3145. let postdata = {
  3146. PriceCodeId: Number(instance._order.g_PriceCodeId),
  3147. ContactId: ContactId,
  3148. ShippingAddressId: Number(ShippingAddressId),
  3149. BranchId: Number(BranchId),
  3150. WareHouseId: Number(instance.g_WarehouseId),
  3151. LobId: Number(LobId),
  3152. OrderType: instance._order.g_OrderTypeId,
  3153. OfferOnly: false,
  3154. IsExcise: instance.g_IsExcise,
  3155. SearchTerm: "",
  3156. Page: 0,
  3157. IsCompositePrice: instance.g_IsEnableCompositePrice,
  3158. IsPiecePrice: instance.g_IsEnablePiecePrice,
  3159. IsCompositePiecePrice: instance.g_IsEnableCompositePiecePrice,
  3160. Rows: 10,
  3161. ItemId: ItemId.toString(),
  3162. CountryId: instance._order.g_CountryId,
  3163. ItemGroupId: 0,
  3164. Tags: "",
  3165. IsPoints: instance._order.g_IsPointsOrder,
  3166. Points: instance._order.g_LoyaltyPoints,
  3167. IsEligibleItemsOnly: instance._order.g_LoadEligibleItemsOnly,
  3168. ApplyDate: ApplyDate
  3169. };
  3170. Bizgaze.Apps.Transact.Managers.ItemManager.Instance().getItemsForOrder(postdata).then(function (response) {
  3171. let data = response.result[0];
  3172. let LoadedItem_Index = instance.g_LoadedItems.findIndex(z => z.ItemId == data.ItemId);
  3173. if (LoadedItem_Index == -1) {
  3174. instance.g_LoadedItems.push(data);
  3175. }
  3176. else {
  3177. instance.g_LoadedItems[LoadedItem_Index].TaxPercentList = data.TaxPercentList;
  3178. }
  3179. let ItemName = data.ItemName;
  3180. let ItemId = Number(data.ItemId);
  3181. let Packs = 0;
  3182. let PackCount = data.PackCount;
  3183. let PackSize = data.PackSize;
  3184. let UnitPrice = data.UnitPrice;
  3185. let UnitName = data.UnitName;
  3186. let ExpectedPrice = data.UnitPrice;
  3187. let discType = 1;
  3188. let DiscPercent = 0;
  3189. let DiscVal = 0;
  3190. let PriceListId = 0;
  3191. let AvailablePacks = data.AvailablePacks;
  3192. let AvailablePieces = data.AvailablePieces;
  3193. let AvailableQuantity = data.AvailableQuantity;
  3194. let TotalAvailablePieces = data.TotalAvailablePieces;
  3195. let SKU = data.SKU;
  3196. if (Number(PackCount) == 0)
  3197. PackCount = 1;
  3198. if (Number(PackSize) == 0)
  3199. PackSize = 1;
  3200. Quantity = instance.roundOffIgnoreZerosAfterDecimal(Quantity);
  3201. Packs = Number(Quantity) / (PackCount * PackSize);
  3202. let amount = Number(Quantity) * UnitPrice;
  3203. let assessableAmount = Number(amount);
  3204. let discAmt = 0;
  3205. if (discType == 2) {
  3206. DiscVal = Discount;
  3207. discAmt = Number(DiscVal) * Number(Quantity);
  3208. assessableAmount = instance.roundOff(amount - discAmt);
  3209. }
  3210. else if (discType == 1) {
  3211. DiscPercent = Discount;
  3212. discAmt = Number((amount * DiscPercent) / 100);
  3213. assessableAmount = instance.roundOff(Number(assessableAmount) - Number(discAmt));
  3214. if (amount == 0)
  3215. assessableAmount = 0;
  3216. }
  3217. let BaseQty = Number(PackCount) * Number(PackSize) * Number(Packs);
  3218. let IsCalculateTax = instance._order.g_IsCalculateTax;
  3219. let TaxGroupId = 0;
  3220. let TaxAmount = 0;
  3221. let StrTaxPercents = "";
  3222. let TaxGroupName = "";
  3223. let IsTaxError = false;
  3224. if (IsCalculateTax) {
  3225. if (data.TaxGroupId == 0) {
  3226. IsTaxError = true;
  3227. }
  3228. else {
  3229. TaxGroupId = data.TaxGroupId;
  3230. TaxGroupName = data.TaxGroupName;
  3231. for (let p = 0; p < data.TaxPercentList.length; p++) {
  3232. let percen = data.TaxPercentList[p];
  3233. let tax = assessableAmount * percen.Percentage / 100;
  3234. TaxAmount += tax;
  3235. }
  3236. StrTaxPercents = data.strTaxPercents;
  3237. instance.getPriceTypeValues(ItemId);
  3238. if (instance.g_IsEnablePiecePrice) {
  3239. UnitPrice = data.PiecePrice;
  3240. instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.PiecePrice;
  3241. }
  3242. else if (instance.g_IsEnableCompositePrice) {
  3243. UnitPrice = data.CompositePrice;
  3244. instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.CompositePrice;
  3245. }
  3246. else if (instance.g_IsEnableCompositePiecePrice) {
  3247. UnitPrice = data.CompositePiecePrice;
  3248. instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.Both;
  3249. }
  3250. else {
  3251. instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.None;
  3252. }
  3253. }
  3254. }
  3255. let CItemIndex = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds != "");
  3256. if (CItemIndex != -1) {
  3257. instance.g_CartItems_New.splice(CItemIndex, 1);
  3258. }
  3259. let ItemIndex = instance.g_CartItems_New.length + 1;
  3260. instance.g_CartItems_New.push({
  3261. OrderItemId: OrderItemId,
  3262. ItemIndex: ItemIndex,
  3263. ParentItemId: 0,
  3264. ItemId: ItemId,
  3265. ItemName: ItemName,
  3266. Packs: Quantity,
  3267. Pieces: 0,
  3268. PriceListId: 0,
  3269. PriceListName: "",
  3270. UnitPrice: UnitPrice,
  3271. UnitPriceWithOutTax: UnitPrice,
  3272. ExpectedPrice: ExpectedPrice,
  3273. ActualPrice: UnitPrice,
  3274. PackCount: PackCount,
  3275. PackSize: PackSize,
  3276. UnitName: UnitName,
  3277. Quantity: Quantity,
  3278. SKU: SKU,
  3279. PartNo: "",
  3280. Amount: amount,
  3281. AmountWithDiscount: assessableAmount,
  3282. DiscountPercent: DiscPercent,
  3283. DiscountValue: DiscVal,
  3284. DiscountType: discType,
  3285. DiscountAmount: discAmt,
  3286. ItemValueAfterDiscount: assessableAmount,
  3287. StrTaxPercents: StrTaxPercents,
  3288. AvailableQuantity: AvailableQuantity,
  3289. AvailablePacks: AvailablePacks,
  3290. AvailablePieces: AvailablePieces,
  3291. TotalAvailablePieces: TotalAvailablePieces,
  3292. ExchangeDC: false,
  3293. IsAfterTax: false,
  3294. BaseQty: BaseQty,
  3295. IsFocItem: true,
  3296. optoutAmount: 0,
  3297. TaxGroupId: TaxGroupId,
  3298. TaxGroupName: TaxGroupName,
  3299. TaxAmount: TaxAmount,
  3300. TaxRateAmount: 0,
  3301. TaxRate: data.TaxRate,
  3302. TaxPercentage: data.TaxPercentage,
  3303. IsOfferAvailable: false,
  3304. Description: "",
  3305. Discountable: false,
  3306. PiecePrice: 0,
  3307. CompositePrice: 0,
  3308. CompositePiecePrice: 0,
  3309. IsCheckPendingItems: false,
  3310. IsError: false,
  3311. ErrorMsg: "",
  3312. ErrorClass: "text-danger",
  3313. IsTaxError: IsTaxError,
  3314. IsLeverageError: false,
  3315. IsFocAdded: false,
  3316. RefOrderItemId: 0,
  3317. RefItemIds: RefItemIds,
  3318. RefItemSKUs: RefItemSKUs,
  3319. FocItemIds: "",
  3320. DiscountGroupId: 0,
  3321. IsOfferDiscountApplied: false,
  3322. AppliedOfferVolume: 0,
  3323. AppliedPlanVolumeId: 0,
  3324. AppliedOfferId: 0,
  3325. optoutOfferGroupId: 0,
  3326. SuggestedPacks: 0,
  3327. MinPacks: 0,
  3328. AvgPacks: 0,
  3329. InwardOrderPacks: 0,
  3330. OutwardOrderPacks: 0,
  3331. IsManualUOM: data.IsManualUOM,
  3332. UOMs: data.UOMs,
  3333. IsMultipleUOMs: data.IsMultipleUOMs,
  3334. UOMSchemaId: data.UOMSchemaId,
  3335. MultipleUOMs: data.MultipleUOMs,
  3336. SelectedUnitId: 1,
  3337. SelectedUnitName: UnitName,
  3338. DefaultSize: data.DefaultSize,
  3339. IsBoMAvailable: data.IsBoMAvailable,
  3340. IsSpecialPrice: data.IsSpecialPrice,
  3341. ConversionQuantity: 0,
  3342. HSNId: data.HSNId,
  3343. RowTotal: 0,
  3344. RowDiscount: 0,
  3345. TaxTotal: 0,
  3346. IsPacksFocus: true,
  3347. IsPiecesFocus: false,
  3348. CategoryName: ""
  3349. });
  3350. if (FromWidget) {
  3351. if (RefItemIds == undefined) {
  3352. RefItemIds = "";
  3353. }
  3354. data.RefItemIds = RefItemIds;
  3355. if (RefItemIds != "") {
  3356. $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + ItemId + "-" + RefItemIds.replace(/,/g, "-")).remove();
  3357. $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId + "-" + RefItemIds.replace(/,/g, "-")).remove();
  3358. }
  3359. let html = instance.getItemDesign(data, FromWidget);
  3360. $("#" + instance.g_VisibleContainerId).find(".variant-item:last").after(html);
  3361. let elem = $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId + "-" + RefItemIds.replace(/,/g, "-"));
  3362. if (elem != undefined && elem.length > 0) {
  3363. instance.updateItemsDesign(elem, "FromWidget_FocItem", false, true);
  3364. }
  3365. $("#" + instance.g_VisibleContainerId).find(".defaultSelectedCartons").addClass("floating-label-form-group-with-value");
  3366. }
  3367. else {
  3368. instance.addCartItem(ItemId, true);
  3369. }
  3370. instance.getTotals();
  3371. });
  3372. }
  3373. editFocCartItem(ItemId, Quantity, FromWidget) {
  3374. let instance = this;
  3375. let CartItem = instance.g_CartItems_New.find(x => x.ItemId == ItemId && x.RefItemIds != "");
  3376. let PackCount = CartItem.PackCount;
  3377. let PackSize = CartItem.PackSize;
  3378. let UnitPrice = CartItem.UnitPrice;
  3379. let discType = CartItem.DiscountType;
  3380. let DiscVal = CartItem.DiscountValue;
  3381. let DiscPercent = CartItem.DiscountPercent;
  3382. let discAmt = CartItem.DiscountAmount;
  3383. Quantity = instance.roundOffIgnoreZerosAfterDecimal(Quantity);
  3384. let Packs = Number(Quantity) / (PackCount * PackSize);
  3385. let amount = Number(Quantity) * UnitPrice;
  3386. let assessableAmount = Number(amount);
  3387. let DiscAmount = Number((amount * DiscPercent) / 100) + Number(DiscVal);
  3388. assessableAmount = instance.roundOff(amount - DiscAmount);
  3389. if (amount == 0)
  3390. assessableAmount = 0;
  3391. let BaseQty = Number(PackCount) * Number(PackSize) * Number(Packs);
  3392. let IsCalculateTax = instance._order.g_IsCalculateTax;
  3393. let AmountWithDiscount = Number(amount) - Number(DiscAmount);
  3394. let TaxAmount = 0;
  3395. let LoadedItem = instance.g_LoadedItems.find(x => x.ItemId == ItemId);
  3396. if (IsCalculateTax) {
  3397. if (LoadedItem.TaxGroupId != 0) {
  3398. for (let p = 0; p < LoadedItem.TaxPercentList.length; p++) {
  3399. let percen = LoadedItem.TaxPercentList[p];
  3400. let tax = assessableAmount * percen.Percentage / 100;
  3401. TaxAmount += tax;
  3402. }
  3403. }
  3404. }
  3405. CartItem.BaseQty = BaseQty;
  3406. CartItem.TaxAmount = TaxAmount;
  3407. CartItem.Packs = Quantity;
  3408. CartItem.Amount = amount;
  3409. CartItem.Quantity = Quantity;
  3410. CartItem.AmountWithDiscount = AmountWithDiscount;
  3411. let Foc_elem = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId + "-" + CartItem.RefItemIds.replace(/,/g, "-"));
  3412. if (FromWidget) {
  3413. Foc_elem = $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId + "-" + CartItem.RefItemIds.replace(/,/g, "-"));
  3414. }
  3415. instance.updateItemsDesign(Foc_elem, "EditFocItem_IsOfferDiscountApplied", true, true);
  3416. }
  3417. getSelectionStart(o) {
  3418. }
  3419. isNumberKey(evt) {
  3420. let instance = this;
  3421. if (evt.type == "paste") {
  3422. let pastedData = evt.clipboardData.getData('text');
  3423. let regExp = /[a-zA-Z]/g;
  3424. if (regExp.test(pastedData)) {
  3425. evt.preventDefault();
  3426. return false;
  3427. }
  3428. }
  3429. else if (evt.type == "input") {
  3430. const inputVal = $("#" + instance.g_VisibleContainerId).find(evt.currentTarget).val();
  3431. $("#" + instance.g_VisibleContainerId).find(evt.currentTarget).val(inputVal.replace(/\D/g, ''));
  3432. }
  3433. else {
  3434. if (evt.which != 8 && evt.which != 0 && (evt.which < 48 || evt.which > 57)) {
  3435. return false;
  3436. }
  3437. }
  3438. return true;
  3439. }
  3440. validateFloatKeyPress(el, evt) {
  3441. var instance = this;
  3442. if (evt.type == "input") {
  3443. const inputVal = $("#" + instance.g_VisibleContainerId).find(el).val();
  3444. $("#" + instance.g_VisibleContainerId).find(el).val(inputVal.replace(/[^\d.]|\.(?=.*\.)/g, ''));
  3445. return;
  3446. }
  3447. if (evt.type == "paste") {
  3448. let pastedData = evt.clipboardData.getData('text');
  3449. let regExp = /[^\d.]|\.(?=.*\.)/g;
  3450. if (regExp.test(pastedData)) {
  3451. evt.preventDefault();
  3452. return false;
  3453. }
  3454. return;
  3455. }
  3456. let charCode = (evt.which) ? evt.which : evt.keyCode;
  3457. let number = el.value.split('.');
  3458. if (charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57)) {
  3459. return false;
  3460. }
  3461. if (number.length > 1 && charCode == 46) {
  3462. return false;
  3463. }
  3464. let caratPos = instance.getSelectionStart(el);
  3465. let dotPos = el.value.indexOf(".");
  3466. if (caratPos > dotPos && dotPos > -1 && (number[1].length > 1)) {
  3467. return false;
  3468. }
  3469. return true;
  3470. }
  3471. countDecimals(n) {
  3472. let decimalcount = 0;
  3473. let decimal = n.toString().split(".");
  3474. if (decimal.length == 1) {
  3475. decimalcount = 0;
  3476. }
  3477. else {
  3478. decimalcount = decimal[1].length;
  3479. }
  3480. return decimalcount;
  3481. }
  3482. getIncrementValue(n) {
  3483. let instance = this;
  3484. let incVal = 1;
  3485. let decimalCount = instance.countDecimals(n);
  3486. if (decimalCount == 0) {
  3487. incVal = 1;
  3488. }
  3489. else {
  3490. let dv = "0.";
  3491. for (let i = 0; i < decimalCount - 1; i++) {
  3492. dv += "0";
  3493. }
  3494. dv += "1";
  3495. incVal = Number(dv);
  3496. }
  3497. return incVal;
  3498. }
  3499. checkValidations(ItemId, IsCart) {
  3500. let instance = this;
  3501. let errormessage = "";
  3502. if (ItemId != 0) {
  3503. let element;
  3504. let Item;
  3505. if (IsCart) {
  3506. let CartItem_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds == "");
  3507. Item = instance.g_CartItems_New[CartItem_Index];
  3508. element = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId);
  3509. }
  3510. else {
  3511. let SelectedItem_Index = instance.g_SelectedItems.findIndex(x => x.ItemId == ItemId && x.RefItemIds == "");
  3512. Item = instance.g_SelectedItems[SelectedItem_Index];
  3513. element = $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + ItemId);
  3514. }
  3515. if (Item != undefined) {
  3516. element.find(".tax-error").text("");
  3517. Item.IsError = false;
  3518. let price = Item.UnitPrice;
  3519. let actualprice = Item.ActualPrice;
  3520. if (price == 0) {
  3521. Item.ErrorMsg += "\n Unit price is zero";
  3522. element.find(".tax-error").text("Unit price is zero").removeClass("text-danger").addClass("text-warning");
  3523. }
  3524. if (price < actualprice && instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales) {
  3525. Item.IsError = true;
  3526. element.find(".tax-error").text("Unit price must be greater than " + actualprice + "").addClass("text-danger").removeClass("text-warning");
  3527. Item.ErrorMsg += "\n Unit price must greater than " + actualprice + "";
  3528. }
  3529. if (!instance._order.g_IsAdmin) {
  3530. if (((Item.DiscountPercent > instance._order.g_LeveragePercent) || (((Item.DiscountValue / Item.UnitPrice) * 100) > instance._order.g_LeveragePercent)) && instance._order.g_IsLeverageApplied == true) {
  3531. Item.IsLeverageError = true;
  3532. $("#" + instance.g_VisibleContainerId).find(element).find("#LeverageErrorTxt").removeClass("hidden");
  3533. $("#" + instance.g_VisibleContainerId).find('.empLeverage').text(instance._order.g_LeveragePercent.toString());
  3534. if ($("#" + instance.g_VisibleContainerId).find('.leverage-Warning').hasClass('hidden'))
  3535. $("#" + instance.g_VisibleContainerId).find('.leverage-Warning').removeClass('hidden');
  3536. }
  3537. else {
  3538. Item.IsLeverageError = false;
  3539. $("#" + instance.g_VisibleContainerId).find(element).find("#LeverageErrorTxt").addClass("hidden");
  3540. if (!$("#" + instance.g_VisibleContainerId).find('.leverage-Warning').hasClass('hidden'))
  3541. $("#" + instance.g_VisibleContainerId).find('.leverage-Warning').addClass('hidden');
  3542. }
  3543. }
  3544. else {
  3545. Item.IsLeverageError = false;
  3546. }
  3547. if (Item.HSNId == 0 && !instance._order.g_IsPointsOrder) {
  3548. Item.IsError = true;
  3549. Item.ErrorMsg = "HSN not assigned";
  3550. element.find(".tax-error").text("HSN not assigned").addClass("text-danger").removeClass("text-warning");
  3551. }
  3552. if (Item.IsTaxError && Item.BaseQty != 0 && !instance._order.g_IsPurchasePlanning && IsCart) {
  3553. Item.IsError = true;
  3554. Item.ErrorMsg = "Tax not assigned";
  3555. element.find(".tax-error").text("Tax not assigned").addClass("text-danger").removeClass("text-warning");
  3556. }
  3557. if (Item.DiscountPercent > 100) {
  3558. element.find(".tax-error").text("Discount % can't be greater than 100").addClass("text-danger").removeClass("text-warning");
  3559. Item.ErrorMsg += "\n Discount % can't be greater than 100";
  3560. Item.IsError = true;
  3561. }
  3562. if (Item.AmountWithDiscount < 0) {
  3563. element.find(".tax-error").text("Item total can't be less than zero").addClass("text-danger").removeClass("text-warning");
  3564. Item.ErrorMsg += "\n Item total can't be less than zero";
  3565. Item.IsError = true;
  3566. }
  3567. if (instance._order.g_IsSC_to_PC && !instance._order.g_IsFromPurchaseIndent) {
  3568. let g_SC_PC_Index = instance.g_SC_PC_CartItems.findIndex(x => x.ItemId == Item.ItemId);
  3569. let ActualQty = instance.g_SC_PC_CartItems[g_SC_PC_Index].Quantity;
  3570. if (g_SC_PC_Index != -1) {
  3571. if (Item.Quantity > ActualQty) {
  3572. element.find(".tax-error").text("Qty can't be greater than " + ActualQty).addClass("text-danger").removeClass("text-warning");
  3573. Item.ErrorMsg += "\n Qty can't be greater than " + ActualQty;
  3574. Item.IsError = true;
  3575. }
  3576. }
  3577. }
  3578. }
  3579. }
  3580. instance.checkErrors();
  3581. instance.checkEnablePieces();
  3582. instance.checkEnablePacks();
  3583. return errormessage;
  3584. }
  3585. checkErrors() {
  3586. let instance = this;
  3587. let IsCart = false;
  3588. if (!$("#" + instance.g_VisibleContainerId).find("#Items-list").is(":visible")) {
  3589. IsCart = true;
  3590. }
  3591. let Items = [];
  3592. if (IsCart) {
  3593. Items = instance.g_CartItems_New;
  3594. }
  3595. else {
  3596. Items = instance.g_SelectedItems;
  3597. }
  3598. let errors = Items.filter(x => x.IsError == true);
  3599. let leverageErrors = Items.filter(x => x.IsLeverageError == true);
  3600. if (leverageErrors.length == 0) {
  3601. instance._order.g_IsApprovalRequired = false;
  3602. if (!$("#" + instance.g_VisibleContainerId).find('.leverage-Warning').hasClass('hidden'))
  3603. $("#" + instance.g_VisibleContainerId).find('.leverage-Warning').addClass('hidden');
  3604. }
  3605. else {
  3606. instance._order.g_IsApprovalRequired = true;
  3607. $("#" + instance.g_VisibleContainerId).find('.empLeverage').text(instance._order.g_LeveragePercent.toString());
  3608. if ($("#" + instance.g_VisibleContainerId).find('.leverage-Warning').hasClass('hidden'))
  3609. $("#" + instance.g_VisibleContainerId).find('.leverage-Warning').removeClass('hidden');
  3610. }
  3611. if (errors.length == 0) {
  3612. instance.enableSave();
  3613. }
  3614. else {
  3615. instance.disableSave();
  3616. }
  3617. }
  3618. checkEnablePieces() {
  3619. let instance = this;
  3620. let picesfound = instance.g_CartItems_New.filter(x => x.Pieces > 0);
  3621. if (picesfound.length > 0) {
  3622. $("#" + instance.g_VisibleContainerId).find('#chk_Pieces').attr('disabled', "true");
  3623. $("#" + instance.g_VisibleContainerId).find(".divEnablePieces").removeClass("checkbox-primary");
  3624. }
  3625. else {
  3626. $("#" + instance.g_VisibleContainerId).find('#chk_Pieces').removeAttr('disabled');
  3627. $("#" + instance.g_VisibleContainerId).find(".divEnablePieces").addClass("checkbox-primary");
  3628. }
  3629. }
  3630. checkEnablePacks() {
  3631. let instance = this;
  3632. let packsfound = instance.g_CartItems_New.filter(x => x.Packs > 0);
  3633. if (packsfound.length > 0) {
  3634. $("#" + instance.g_VisibleContainerId).find('#chk_Packs').attr('disabled', "true");
  3635. $("#" + instance.g_VisibleContainerId).find(".divEnablePacks").removeClass("checkbox-primary");
  3636. }
  3637. else {
  3638. $("#" + instance.g_VisibleContainerId).find('#chk_Packs').removeAttr('disabled');
  3639. $("#" + instance.g_VisibleContainerId).find(".divEnablePacks").addClass("checkbox-primary");
  3640. }
  3641. }
  3642. checkLoyalityErrors(element) {
  3643. let instance = this;
  3644. if (instance._order.g_IsPointsOrder) {
  3645. let TotalQty = 0;
  3646. let TotalCartQty = 0;
  3647. let GrossAmount = 0;
  3648. let ItemId = Number($("#" + instance.g_VisibleContainerId).find(element).find(".hfOrder_ItemId").val());
  3649. let TotalPoints = instance._order.g_LoyaltyPoints;
  3650. instance.g_CartItems_New.forEach(x => TotalQty += x.UnitPrice * x.BaseQty);
  3651. if (instance._order.g_LoyaltyPoints < TotalQty) {
  3652. element.find("#txt_Cartons").val(0);
  3653. instance.updateItemsArray(element, "LoyaltyError", false);
  3654. element.find(".tax-error").text("Redeem Quantity can't be greater than Loyalty Points").removeClass("text-danger").addClass("text-warning");
  3655. instance.deleteCartItems(ItemId);
  3656. $("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").find(".cartitem-" + ItemId).remove();
  3657. let ItemIndex = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds == "");
  3658. if (ItemIndex != -1) {
  3659. instance.g_CartItems_New.splice(ItemIndex, 1);
  3660. }
  3661. TotalQty = 0;
  3662. instance.g_CartItems_New.forEach(x => TotalQty += x.UnitPrice * x.BaseQty);
  3663. }
  3664. instance.g_CartItems_New.forEach(x => TotalCartQty += x.BaseQty);
  3665. instance.g_CartItems_New.forEach(x => GrossAmount += x.UnitPrice * x.BaseQty);
  3666. $("#" + instance.g_VisibleContainerId).find("#lblSummary_GrossAmount, #lblSummary_AssessableTotal, #lblSummary_NetTotal").text(GrossAmount);
  3667. $("#" + instance.g_VisibleContainerId).find("#lblSummary_TotalDiscount").text("0.00");
  3668. $("#" + instance.g_VisibleContainerId).find("#OverallOrderQuantity").text(TotalCartQty);
  3669. $("#" + instance.g_VisibleContainerId).find("#AvailablePoints").text(TotalPoints - TotalQty);
  3670. $("#" + instance.g_VisibleContainerId).find("#AvailablePoints_header").text(TotalPoints - TotalQty);
  3671. $("#" + instance.g_VisibleContainerId).find("#RedeemPoints").text(TotalQty);
  3672. }
  3673. }
  3674. disableSave() {
  3675. let instance = this;
  3676. $("#" + instance.g_VisibleContainerId).find(".btn_Save_Form").find("button").attr("disabled", "disabled").css("cursor", "not-allowed");
  3677. $("#" + instance.g_VisibleContainerId).find(".btn_OrderSaveAsDraft").attr("disabled", "disabled").css("cursor", "not-allowed");
  3678. return false;
  3679. }
  3680. enableSave() {
  3681. let instance = this;
  3682. $("#" + instance.g_VisibleContainerId).find(".btn_Save_Form").find("button").removeAttr("disabled").css("cursor", "auto");
  3683. $("#" + instance.g_VisibleContainerId).find(".btn_OrderSaveAsDraft").removeAttr("disabled").css("cursor", "auto");
  3684. }
  3685. checkPendingPopup(ItemId, CartItemIndex, FromWidget = false) {
  3686. let instance = this;
  3687. let branchId = instance._order.g_BranchId;
  3688. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().getPendingOrderItemsByItemAndCustomer(instance._order.g_OrderTypeId, ItemId, instance._order.g_OrganizationId, 0, 20, branchId, instance._order.g_OrderId).then(function (response) {
  3689. if (response.result.length > 0) {
  3690. let quantity = 0;
  3691. let item = [];
  3692. for (let i = 0; i < response.result.length; i++) {
  3693. item = response.result[i];
  3694. quantity += item.Quantity - item.DeliveredQuantity;
  3695. }
  3696. quantity = instance.roundOff(quantity);
  3697. let msg = item.ItemName + " have " + quantity + " pending quantity..! Are you sure to continue ??";
  3698. bootbox.confirm({
  3699. message: msg,
  3700. closeButton: false,
  3701. buttons: {
  3702. confirm: {
  3703. label: 'Yes',
  3704. className: 'btn-success'
  3705. },
  3706. cancel: {
  3707. label: 'No',
  3708. className: 'btn-danger'
  3709. }
  3710. },
  3711. callback: function (result) {
  3712. let Item = instance.g_SelectedItems.find(x => x.ItemId == ItemId);
  3713. let elem = $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + ItemId);
  3714. let cart_elem = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId);
  3715. if (result) {
  3716. if (Item != null) {
  3717. Item.IsCheckPendingItems = false;
  3718. }
  3719. if (FromWidget) {
  3720. instance.checkOffers(FromWidget, "CheckPendingPopUp_FromWidget");
  3721. }
  3722. else {
  3723. if (Item == null || cart_elem.length == 0) {
  3724. instance.addCartItem(ItemId);
  3725. }
  3726. else {
  3727. instance.updateItemsArray(elem, "Plus");
  3728. }
  3729. }
  3730. }
  3731. else {
  3732. $("#" + instance.g_VisibleContainerId).find('#modal_popup_EditLineItem').modal('hide');
  3733. bootbox.hideAll();
  3734. $("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemCount").val(0);
  3735. instance.updateItemsArray(elem, "PendingPopCancel");
  3736. if (instance._order.g_IsPurchasePlanning)
  3737. $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + ItemId).find(".chk_PurPlanItem").prop("checked", false);
  3738. return false;
  3739. }
  3740. }
  3741. });
  3742. }
  3743. else {
  3744. if (CartItemIndex != -1) {
  3745. let elem = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId);
  3746. if (FromWidget) {
  3747. elem = $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + ItemId);
  3748. }
  3749. instance.updateItemsDesign(elem, "EditCartItem", true);
  3750. }
  3751. else {
  3752. instance.addCartItem(ItemId);
  3753. }
  3754. }
  3755. });
  3756. }
  3757. addCartItem(ItemId, IsFocItem = false) {
  3758. let instance = this;
  3759. let CartItems_Index = -1;
  3760. if (IsFocItem) {
  3761. CartItems_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds != "");
  3762. }
  3763. else {
  3764. CartItems_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds == "");
  3765. }
  3766. let CartItm = instance.g_CartItems_New[CartItems_Index];
  3767. let elem = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId);
  3768. let RefItemIds = CartItm.RefItemIds;
  3769. if (RefItemIds != "") {
  3770. elem = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId + "-" + RefItemIds.replace(/,/g, "-"));
  3771. $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId + "-" + RefItemIds.replace(/,/g, "-")).remove();
  3772. }
  3773. let html = instance.getItemDesign(CartItm, false, true);
  3774. if (instance.g_IsCategory && CartItm.CategoryName != "" && CartItm.CategoryName != null && CartItm.CategoryName != undefined) {
  3775. instance._cartDetails.bindElementToCategory(html, CartItm.CategoryName);
  3776. }
  3777. else {
  3778. $("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").append(html);
  3779. }
  3780. elem = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId);
  3781. let evnt = "EditCartItem";
  3782. if (CartItm.IsFocItem) {
  3783. evnt = "EditFocItem";
  3784. }
  3785. if (RefItemIds != "") {
  3786. elem = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId + "-" + RefItemIds.replace(/,/g, "-"));
  3787. }
  3788. instance.updateItemsDesign(elem, evnt, true, IsFocItem);
  3789. $("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").find(".chk_PurPlanItem").addClass("hidden");
  3790. instance.allItemEvents(elem);
  3791. }
  3792. deleteCartItems(ItemId, FromWidget = false, RefItemIds = "", event = "") {
  3793. let instance = this;
  3794. let itemelement = $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId);
  3795. let element_name = "cartitem-";
  3796. if (FromWidget) {
  3797. element_name = "variant-addeditem-";
  3798. }
  3799. $("#" + instance.g_VisibleContainerId).find("." + element_name + ItemId).remove();
  3800. let FocItems = instance.g_CartItems_New.filter(x => x.RefItemIds.indexOf(ItemId) != -1);
  3801. for (let f = 0; f < FocItems.length; f++) {
  3802. let Foc_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == FocItems[f].ItemId && x.RefItemIds == FocItems[f].RefItemIds);
  3803. $("#" + instance.g_VisibleContainerId).find("." + element_name + FocItems[f].ItemId + "-" + FocItems[f].RefItemIds.replace(/,/g, "-")).remove();
  3804. instance.g_CartItems_New.splice(Foc_Index, 1);
  3805. }
  3806. let deletecartitemindex = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds == RefItemIds);
  3807. let deleteitemindex = instance.g_SelectedItems.findIndex(x => x.ItemId == ItemId && x.RefItemIds == RefItemIds);
  3808. if (deleteitemindex != -1) {
  3809. instance.g_SelectedItems.splice(deleteitemindex, 1);
  3810. }
  3811. if (deletecartitemindex != -1) {
  3812. if (!instance._order.g_IsPurchasePlanning) {
  3813. $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId).find(".txtOrder_ItemCount,.txtOrder_ItemPieceCount").val("");
  3814. if (event == "") {
  3815. instance.resetItemDetails(ItemId);
  3816. }
  3817. else {
  3818. if (event == "Plus" || event == "Minus" || event == "Packs" || event == "Minus") {
  3819. instance.resetItemDetails(ItemId);
  3820. }
  3821. }
  3822. $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId).find("#DiscountOpenBracket").addClass('hidden');
  3823. $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId).find("#QuantityAndDiscountSpan").text('');
  3824. $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId).find(".defaultSelectedCartons").removeClass('floating-label-form-group-with-value');
  3825. }
  3826. if (deletecartitemindex != -1) {
  3827. instance.g_CartItems_New.splice(deletecartitemindex, 1);
  3828. if (RefItemIds != "") {
  3829. $("#" + instance.g_VisibleContainerId).find("." + element_name + ItemId + "-" + RefItemIds.replace(/,/g, "-")).remove();
  3830. }
  3831. else {
  3832. $("#" + instance.g_VisibleContainerId).find("." + element_name + ItemId).remove();
  3833. }
  3834. }
  3835. $(this).parents(".cartitem").remove();
  3836. if (!instance._order.g_IsPointsOrder && !instance._order.g_IsPurchasePlanning) {
  3837. instance.checkOffers(false, "DeleteCartItem");
  3838. }
  3839. if (instance.g_CartItems_New.length == 0) {
  3840. $("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").html('<li id="0" class="cartitem list-group-item col-xs-12 hidden clear no-border"></li> <li class="list-group-item col-xs-12 no-border EmptyCartLi"><strong>Your Shopping Cart is empty.</strong></li>');
  3841. }
  3842. instance.getTotals(ItemId);
  3843. instance.checkErrors();
  3844. instance.checkLoyalityErrors(itemelement);
  3845. }
  3846. }
  3847. resetItemDetails(ItemId) {
  3848. let instance = this;
  3849. let LoadedItem_Index = instance.g_LoadedItems.findIndex(x => x.ItemId == ItemId);
  3850. $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId).find("#Ord_txtdiscount, #txt_Description").val("");
  3851. $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId).find(".discountFloatLabels, .descriptionFloatLabels").removeClass('floating-label-form-group-with-value');
  3852. $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId).find(".btnOrder_DiscType").val(2);
  3853. let Items_Price_Index = instance.g_ItemsUnitPrice_New.findIndex(x => x.ItemId == ItemId);
  3854. if (Items_Price_Index != -1) {
  3855. let UnitPrice = instance.g_LoadedItems[LoadedItem_Index].UnitPrice;
  3856. instance.g_ItemsUnitPrice_New[Items_Price_Index].UnitPrice = UnitPrice;
  3857. $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId).find("#txt_editItemPrice").val(UnitPrice);
  3858. $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId).find(".editItemPrice").text(UnitPrice);
  3859. $("#" + instance.g_VisibleContainerId).find('.variant-addeditem-' + ItemId).find("#chkItem_ExchangeDC_" + ItemId).prop("checked", false);
  3860. }
  3861. }
  3862. roundOff(n, decimalValue = 2) {
  3863. return Unibase.Core.Helpers.NumberHelper.Instance().roundNumber(n, decimalValue);
  3864. }
  3865. roundOffIgnoreZerosAfterDecimal(n, decimalValue = 2) {
  3866. n = Number(n);
  3867. return Number(n.toFixed(decimalValue));
  3868. }
  3869. getPriceListTitle(ItemId) {
  3870. let instance = this;
  3871. let Title = "";
  3872. let LoadedItem_Index = instance.g_LoadedItems.findIndex(x => x.ItemId == ItemId);
  3873. if (LoadedItem_Index != -1) {
  3874. let LoadedItem = instance.g_LoadedItems[LoadedItem_Index];
  3875. let PriceListName = LoadedItem.PriceListName;
  3876. let PriceCodeName = instance._order.g_PriceCodeName;
  3877. if (PriceCodeName != "" && PriceCodeName != null && PriceCodeName != undefined) {
  3878. Title = "Price Code - " + PriceCodeName + ", ";
  3879. }
  3880. if (PriceListName != "" && PriceListName != null && PriceListName != undefined) {
  3881. Title += "Price List - " + PriceListName;
  3882. }
  3883. }
  3884. return Title;
  3885. }
  3886. getPriceTypeValues(ItemId, Packs = 0, Pieces = 0) {
  3887. let instance = this;
  3888. let taxpercentage = 0, TaxRate = 0, TaxRateAmount = 0, strTaxPercents = "", CompositePiecePriceTaxRate = 0;
  3889. let LoadedItem = instance.g_LoadedItems.find(x => x.ItemId == ItemId);
  3890. if (LoadedItem != undefined) {
  3891. let taxPercentList = LoadedItem.TaxPercentList;
  3892. let PackSize = LoadedItem.PackSize;
  3893. let ItemUnitPrices = instance.g_ItemsUnitPrice_New.find(x => x.ItemId == ItemId);
  3894. let UnitPrice = 0;
  3895. if (ItemUnitPrices != undefined) {
  3896. UnitPrice = ItemUnitPrices.UnitPrice;
  3897. }
  3898. let CartItemIndex = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId);
  3899. let PiecePrice = Number(UnitPrice) * Number(PackSize);
  3900. if (taxPercentList != null) {
  3901. for (let i = 0; i < taxPercentList.length; i++) {
  3902. let percen = taxPercentList[i];
  3903. taxpercentage += percen.Percentage;
  3904. TaxRate += UnitPrice * percen.Percentage / 100;
  3905. CompositePiecePriceTaxRate += PiecePrice * percen.Percentage / 100;
  3906. strTaxPercents += percen.LedgerId + ":" + percen.Percentage + ",";
  3907. }
  3908. TaxRateAmount = UnitPrice + TaxRate;
  3909. }
  3910. if (TaxRateAmount == 0) {
  3911. TaxRateAmount = UnitPrice;
  3912. }
  3913. let CompositePrice = Number(TaxRateAmount);
  3914. let CompositePiecePrice = 0;
  3915. if (instance.g_IsEnableCompositePiecePrice) {
  3916. CompositePiecePrice = Number(TaxRate) + PiecePrice;
  3917. }
  3918. LoadedItem.CompositePrice = Number(instance.roundOff(CompositePrice));
  3919. LoadedItem.PiecePrice = Number(instance.roundOff(PiecePrice));
  3920. LoadedItem.CompositePiecePrice = Number(instance.roundOff(CompositePiecePrice));
  3921. if (CartItemIndex != -1) {
  3922. instance.g_CartItems_New[CartItemIndex].CompositePrice = Number(instance.roundOff(CompositePrice));
  3923. instance.g_CartItems_New[CartItemIndex].PiecePrice = Number(instance.roundOff(PiecePrice));
  3924. instance.g_CartItems_New[CartItemIndex].CompositePiecePrice = Number(instance.roundOff(CompositePiecePrice));
  3925. }
  3926. }
  3927. }
  3928. getAmountWithTax(ItemId, Amount) {
  3929. let instance = this;
  3930. let TaxRate = 0, AmountWithTax = 0;
  3931. let LoadedItem = instance.g_LoadedItems.find(x => x.ItemId == ItemId);
  3932. if (LoadedItem != undefined) {
  3933. let taxPercentList = LoadedItem.TaxPercentList;
  3934. if (taxPercentList != null) {
  3935. for (let i = 0; i < taxPercentList.length; i++) {
  3936. let percen = taxPercentList[i];
  3937. TaxRate += Amount * percen.Percentage / 100;
  3938. }
  3939. AmountWithTax = Amount + TaxRate;
  3940. }
  3941. }
  3942. return instance.roundOffIgnoreZerosAfterDecimal(AmountWithTax) + '|' + instance.roundOffIgnoreZerosAfterDecimal(TaxRate);
  3943. }
  3944. getTotals(ModifiedItemId = 0) {
  3945. let instance = this;
  3946. let BranchId = 0;
  3947. let BillingAddressId = 0;
  3948. if (instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales || instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim)
  3949. BranchId = Number($("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_billfromaddressid").val());
  3950. else
  3951. BranchId = Number($("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_billingaddressid").val());
  3952. $("#" + instance.g_VisibleContainerId).find(".hdn_branchid").val(BranchId);
  3953. if (instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales || instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim)
  3954. BillingAddressId = Number($("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_billingaddressid").val());
  3955. else
  3956. BillingAddressId = Number($("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_billfromaddressid").val());
  3957. if (isNaN(BillingAddressId)) {
  3958. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  3959. let InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
  3960. if (instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales || instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim)
  3961. BillingAddressId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_billingaddressid").Value);
  3962. else
  3963. BillingAddressId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_billfromaddressid").Value);
  3964. }
  3965. let EstimateId = 0;
  3966. let IsSelectAll = false;
  3967. if (instance._order.g_IsPurchasePlanning) {
  3968. if ($("#" + instance.g_VisibleContainerId).find(".chk_PurPlanItem:visible").length != $("#" + instance.g_VisibleContainerId).find(".chk_PurPlanItem:visible:checked").length) {
  3969. $("#" + instance.g_VisibleContainerId).find('#chk_AllItems').prop('checked', false);
  3970. }
  3971. else {
  3972. $("#" + instance.g_VisibleContainerId).find('#chk_AllItems').prop('checked', true);
  3973. }
  3974. let InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
  3975. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  3976. if (InputParameters.length > 0 && InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_estimateid") != undefined) {
  3977. EstimateId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_estimateid").Value);
  3978. }
  3979. IsSelectAll = $("#" + instance.g_VisibleContainerId).find('#chk_AllItems').is(':checked');
  3980. }
  3981. else {
  3982. ModifiedItemId = 0;
  3983. }
  3984. if (instance._order.g_IsPointsOrder) {
  3985. let GrossAmount = 0;
  3986. let TotalCartQty = 0;
  3987. instance.g_CartItems_New.forEach(x => GrossAmount += x.UnitPrice * x.BaseQty);
  3988. $("#" + instance.g_VisibleContainerId).find("#lblSummary_GrossAmount, #lblSummary_AssessableTotal, #lblSummary_NetTotal").text(instance.roundOff(GrossAmount));
  3989. $("#" + instance.g_VisibleContainerId).find("#lblSummary_TotalDiscount").text("0.00");
  3990. instance.g_CartItems_New.forEach(x => TotalCartQty += x.BaseQty);
  3991. $("#" + instance.g_VisibleContainerId).find("#OverallOrderQuantity").text(TotalCartQty);
  3992. $("#" + instance.g_VisibleContainerId).find(".netpacks").text(instance.g_CartItems_New.length);
  3993. $("#" + instance.g_VisibleContainerId).find("#PriceDetails_Discount, #PriceDetails_AssblAmount").addClass("hidden");
  3994. }
  3995. else {
  3996. let postdata = {
  3997. OrderItems: instance.g_CartItems_New,
  3998. IsCompositePrice: instance.g_IsEnableCompositePrice,
  3999. IsPiecePrice: instance.g_IsEnablePiecePrice,
  4000. IsTaxInclusive: instance._order.g_IsTaxInclusive == undefined ? false : instance._order.g_IsTaxInclusive,
  4001. IsCalculateTax: instance._order.g_IsCalculateTax == undefined ? false : instance._order.g_IsCalculateTax,
  4002. OrderTypeId: instance._order.g_OrderTypeId,
  4003. BranchId: instance._order.g_BranchId,
  4004. BillingAddressId: BillingAddressId,
  4005. InventoryApplyType: instance._order.g_InventoryApplyType,
  4006. PurchasePlanModifiedItemId: Number(ModifiedItemId),
  4007. IsSelectAll: IsSelectAll,
  4008. EstimateId: EstimateId
  4009. };
  4010. instance.g_AppliedTaxGroups = new Array();
  4011. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().getTotals(postdata).then(function (response) {
  4012. instance.g_Totals = response.result;
  4013. let res = instance.g_Totals;
  4014. instance.g_CartItems_New.forEach(c => {
  4015. if (res.ItemWiseTaxGroups != null) {
  4016. let TaxGroupId = res.ItemWiseTaxGroups[c.ItemId];
  4017. c.TaxGroupId = TaxGroupId;
  4018. }
  4019. c.RowTotal = res.OrderItems.find(x => x.ItemId == c.ItemId).RowTotal;
  4020. c.RowDiscount = res.OrderItems.find(x => x.ItemId == c.ItemId).RowDiscount;
  4021. c.TaxTotal = res.OrderItems.find(x => x.ItemId == c.ItemId).TaxTotal;
  4022. });
  4023. if (instance.roundOff(res.TotalScrapDiscountAmount) > 0)
  4024. $("#" + instance.g_VisibleContainerId).find("#div_ScrapDiscount").removeClass("hidden");
  4025. else
  4026. $("#" + instance.g_VisibleContainerId).find("#div_ScrapDiscount").addClass("hidden");
  4027. $("#" + instance.g_VisibleContainerId).find('#lblSummary_GrossAmount, .labelSection_Gross_Value').text(instance.roundOff(res.GrossAmount));
  4028. $("#" + instance.g_VisibleContainerId).find('#lblSummary_TotalDiscount, .labelSection_Discount_Value').text(instance.roundOff(res.TotalDiscount));
  4029. $("#" + instance.g_VisibleContainerId).find('#lblSummary_NetTotal, .labelSection_Total_Value').text(instance.roundOff(res.NetTotal));
  4030. $("#" + instance.g_VisibleContainerId).find('#lblSummary_AssessableTotal').text(instance.roundOff(res.AssessableAmount));
  4031. $("#" + instance.g_VisibleContainerId).find('#lblSummary_TaxTotal').text(instance.roundOff(res.TotalTax));
  4032. $("#" + instance.g_VisibleContainerId).find('#lblSummary_ScrapDiscountAmount').text('-' + (instance.roundOff(res.TotalScrapDiscountAmount)));
  4033. $("#" + instance.g_VisibleContainerId).find(".hdn_scrapdiscountamount").val(instance.roundOff(res.TotalScrapDiscountAmount));
  4034. if (instance._order.g_IsPurchasePlanning) {
  4035. $("#" + instance.g_VisibleContainerId).find(".labelSection_Gross_Value, .labelSection_Discount_Value, .labelSection_Total_Value, .labelSection_GrossAmount, .labelSection_DiscountAmount, .labelSection_NetTotal").addClass("font-weight-bold").addClass("col-sm-12").addClass("text-center");
  4036. if (instance.g_CartItems_New.length == 0) {
  4037. $("#" + instance.g_VisibleContainerId).find("#btnDynamicSave").addClass("disabled").css("cursor", "not-allowed");
  4038. }
  4039. else {
  4040. $("#" + instance.g_VisibleContainerId).find("#btnDynamicSave").removeClass("disabled").css("cursor", "auto");
  4041. }
  4042. }
  4043. $("#" + instance.g_VisibleContainerId).find('#OverallOrderQuantity').text(instance.roundOffIgnoreZerosAfterDecimal(res.TotalQuantity, 2));
  4044. $("#" + instance.g_VisibleContainerId).find(".netpacks").text(instance.g_CartItems_New.length);
  4045. });
  4046. }
  4047. }
  4048. getPurchasePlanTotals(OnlyTotals, IsChangedSelectAllChkbx) {
  4049. let instance = this;
  4050. if ($("#" + instance.g_VisibleContainerId).find(".chk_PurPlanItem:visible").length != $("#" + instance.g_VisibleContainerId).find(".chk_PurPlanItem:visible:checked").length) {
  4051. $("#" + instance.g_VisibleContainerId).find('#chk_AllItems').prop('checked', false);
  4052. }
  4053. else {
  4054. $("#" + instance.g_VisibleContainerId).find('#chk_AllItems').prop('checked', true);
  4055. }
  4056. let EstimateId = 0;
  4057. let IsSelectAll = false;
  4058. if (instance._order.g_IsPurchasePlanning) {
  4059. let InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
  4060. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  4061. if (InputParameters.length > 0 && InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_estimateid") != undefined) {
  4062. EstimateId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_estimateid").Value);
  4063. }
  4064. IsSelectAll = $("#" + instance.g_VisibleContainerId).find('#chk_AllItems').is(':checked');
  4065. }
  4066. let postdata = {
  4067. IsChangedSelectAll: IsChangedSelectAllChkbx,
  4068. IsConfirmed: IsSelectAll,
  4069. IsSelectAll: IsSelectAll,
  4070. EstimateId: EstimateId,
  4071. OnlyTotals: OnlyTotals
  4072. };
  4073. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().getPurchasePlanTotals(postdata).then(function (response) {
  4074. instance.g_Totals = response.result;
  4075. let res = instance.g_Totals;
  4076. if (instance.roundOff(res.TotalScrapDiscountAmount) > 0)
  4077. $("#" + instance.g_VisibleContainerId).find("#div_ScrapDiscount").removeClass("hidden");
  4078. else
  4079. $("#" + instance.g_VisibleContainerId).find("#div_ScrapDiscount").addClass("hidden");
  4080. $("#" + instance.g_VisibleContainerId).find('#lblSummary_GrossAmount, .labelSection_Gross_Value').text(instance.roundOff(res.GrossAmount));
  4081. $("#" + instance.g_VisibleContainerId).find('#lblSummary_TotalDiscount, .labelSection_Discount_Value').text(instance.roundOff(res.TotalDiscount));
  4082. $("#" + instance.g_VisibleContainerId).find('#lblSummary_NetTotal, .labelSection_Total_Value').text(instance.roundOff(res.AssessableAmount));
  4083. });
  4084. }
  4085. getOrderItems(OrderId = 0) {
  4086. let instance = this;
  4087. let ItemList = new Array();
  4088. for (let c = 0; c < instance.g_CartItems_New.length; c++) {
  4089. let orderItemIndex = c;
  4090. let CartItem = instance.g_CartItems_New[c];
  4091. let FocItemIds = "";
  4092. instance.g_CartItems_New.filter(z => z.RefItemIds.indexOf(CartItem.ItemId.toString()) > -1).forEach(x => {
  4093. FocItemIds += x.ItemId + "|";
  4094. });
  4095. if (CartItem.IsFocItem || CartItem.Quantity == 0) {
  4096. continue;
  4097. }
  4098. let Quantity = CartItem.Quantity;
  4099. var Category_Id = $($(".cartitem-" + CartItem.ItemId).parentsUntil("cartItemsSortable")[0]).attr("id");
  4100. if (Category_Id != undefined) {
  4101. Category_Id = Category_Id.replace("catItemsSortable_", "");
  4102. }
  4103. let CategoryName = $("#catTitleSpan_" + Category_Id).text();
  4104. ItemList.push({
  4105. OrderItemId: CartItem.OrderItemId,
  4106. OrderId: OrderId,
  4107. OrderItemIndex: orderItemIndex,
  4108. ItemId: CartItem.ItemId,
  4109. ItemName: CartItem.ItemName,
  4110. UnitPrice: CartItem.UnitPriceWithOutTax,
  4111. PriceListId: CartItem.PriceListId,
  4112. ExpectedPrice: CartItem.ExpectedPrice,
  4113. Quantity: Quantity,
  4114. ConversionQuantity: CartItem.ConversionQuantity,
  4115. TaxGroupId: CartItem.TaxGroupId,
  4116. TaxGroupName: CartItem.TaxGroupName,
  4117. Description: CartItem.Description,
  4118. DiscountPercent: CartItem.DiscountPercent,
  4119. DiscountAmount: CartItem.DiscountAmount,
  4120. DiscountValue: CartItem.DiscountValue,
  4121. DiscountGroupId: CartItem.DiscountGroupId,
  4122. RefNo: "",
  4123. AvailableQty: CartItem.AvailableQuantity,
  4124. ExchangeDC: CartItem.ExchangeDC,
  4125. HideOnInvoice: false,
  4126. Packs: CartItem.Packs,
  4127. Pieces: CartItem.Pieces,
  4128. IsAfterTax: CartItem.IsAfterTax,
  4129. OptOutAmount: CartItem.optoutAmount,
  4130. OptOutCampaignGroupId: CartItem.optoutOfferGroupId,
  4131. IsFoc: CartItem.IsFocItem,
  4132. OrderFromEstimate: false,
  4133. PriceTypeId: Number(instance.g_PriceTypeId),
  4134. RefOrderItemId: Number(CartItem.RefOrderItemId),
  4135. RefItemIds: CartItem.RefItemIds,
  4136. FocItemIds: FocItemIds,
  4137. AlternateUnitId: CartItem.SelectedUnitId,
  4138. DefaultSize: CartItem.DefaultSize,
  4139. SKU: CartItem.SKU,
  4140. RowTotal: CartItem.RowTotal,
  4141. RowDiscount: CartItem.RowDiscount,
  4142. TaxTotal: CartItem.TaxTotal,
  4143. CategoryName: CategoryName
  4144. });
  4145. }
  4146. return ItemList;
  4147. }
  4148. getItemPreview(Itemid) {
  4149. var instance = this;
  4150. instance.fileCacheHelper.loadJsFile('apps/transact/controls/itemdetails/itemscarousel.js', function () {
  4151. instance.navigationHelper.popup(Itemid, '', Bizgaze.Apps.Transact.Controls.ItemDetails.ItemsCarousel.Instance(), null, Unibase.Platform.Helpers.Size.Medium);
  4152. });
  4153. }
  4154. static Instance() {
  4155. if (this.instance === undefined) {
  4156. this.instance = new OrderItems();
  4157. }
  4158. return this.instance;
  4159. }
  4160. }
  4161. Controls.OrderItems = OrderItems;
  4162. })(Controls = Transact.Controls || (Transact.Controls = {}));
  4163. })(Transact = Apps.Transact || (Apps.Transact = {}));
  4164. })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {}));
  4165. })(Bizgaze || (Bizgaze = {}));