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.g_ValidFocItems = [];
  23. this.g_SelectedItems = [];
  24. this.g_AppliedOffers = [];
  25. this.g_LoadedItems = [];
  26. this.g_UOMs = [];
  27. this.g_PurPlanData = [];
  28. this.g_ItemsUnitPrice_New = [];
  29. this.g_CartItems_New = [];
  30. this.g_SC_PC_CartItems = [];
  31. this.g_AppliedTaxGroups = [];
  32. this.g_PageIndex = 0;
  33. this.g_PriceTypeId = 1;
  34. this.g_IsEnablePieces = false;
  35. this.g_IsEnablePacks = false;
  36. this.g_IsEnablePiecePrice = false;
  37. this.g_IsEnableCompositePrice = false;
  38. this.g_IsEnableCompositePiecePrice = false;
  39. this.g_BodyWidth = $('body').width();
  40. this.g_IsExcise = false;
  41. this.g_OfferApplyDate = new Date();
  42. this.g_FromWidget = false;
  43. this.g_FromWidgetEditOrderItemId = 0;
  44. this.g_FromContinueShopping = false;
  45. this.g_IsCategory = false;
  46. this.g_IsFilterApplied = false;
  47. this.g_TagArray = [];
  48. this.g_ContainerId = "";
  49. this.g_VisibleContainerId = "";
  50. this.Modified_Discount = 0;
  51. }
  52. init(formpropertyid, prop, callback) {
  53. let instance = this;
  54. instance.fileCacheHelper.loadJsFiles(["apps/transact/enums/enum.js", "apps/transact/controls/orders/cartdetails.component.js"], function () {
  55. instance.loadControlSettings(prop.ControlJsonText, prop.FormPropertyId);
  56. instance.loadPropertySettings(prop.PropertySettings, prop.FormPropertyId);
  57. });
  58. }
  59. loadControl(containerid, prop) {
  60. let instance = this;
  61. instance.g_ContainerId = containerid;
  62. instance.g_VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  63. instance._order.g_OrderTypeId = Number($("#" + instance.g_VisibleContainerId).find(".hdn_ordertypeid").val());
  64. let html = '<div class="w-100">' +
  65. '<input type = "hidden" id = "hdn_customcontrol" class="value-control" value = "Bizgaze.Apps.Transact.Controls.OrderItems.Instance().getOrderItems();"' +
  66. '<div class="floating-label-form-group div_SearchItem">' +
  67. '<div class="input-group">' +
  68. '<span class="input-group-prepend"></span>' +
  69. '<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>' +
  70. `<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> ` +
  71. '<span class="input-group-prepend input-group-btn p-0">';
  72. instance.fileCacheHelper.loadJsFile("apps/transact/enums/enum.js", function () {
  73. if (instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim || instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim) {
  74. 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>';
  75. }
  76. else {
  77. 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>';
  78. }
  79. html += '</span>' +
  80. '</div>' +
  81. '</div>' +
  82. '</div>' +
  83. '<br/> <div class="InventorySettings"> </div>';
  84. $("#" + instance.g_VisibleContainerId).find("#" + containerid).html(html);
  85. instance.ItemsQrScan();
  86. });
  87. $("#" + instance.g_VisibleContainerId).find("#ItemLoadType").unbind().click(function () {
  88. $("#" + instance.g_VisibleContainerId).find(".div_SearchItem").removeClass("floating-label-form-group-with-value");
  89. });
  90. $("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").focusout(function () {
  91. if ($("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val() == "") {
  92. $("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").attr("placeholder", "Search Items");
  93. }
  94. });
  95. }
  96. ItemsQrScan() {
  97. $("#crpnrd_btn_OpenScanner").addClass("hidden");
  98. if (isMobileApp()) {
  99. $("#crpnrd_btn_OpenScanner").removeClass("hidden");
  100. $("#crpnrd_btn_OpenScanner").click(function () {
  101. Unibase.Platform.Helpers.MobileHelper.Instance().openQrScanner("Bizgaze.Apps.Transact.Controls.OrderItems.Instance().readScanner", "txt_SearchItem");
  102. });
  103. }
  104. else {
  105. $("#crpnrd_btn_OpenScanner").addClass("hidden");
  106. }
  107. }
  108. loadControlSettings(controlsettingjson, formpropertyid) {
  109. return null;
  110. }
  111. loadPropertySettings(propertysettings, formpropertyid) {
  112. return null;
  113. }
  114. bindEditFormDetails(formpropertyid, propval, DocPropertyName) {
  115. return null;
  116. }
  117. loadItems(SearchItem, UpdateAvailability = false, IsUpdateTax = false) {
  118. let instance = this;
  119. $("#" + instance.g_VisibleContainerId).find('.section_Items').removeClass('hidden');
  120. let OrganizationId = instance._order.g_OrganizationId;
  121. let LoBId = $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_lobid").val();
  122. let ShipTo = $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_shippingaddressid").val();
  123. if (ShipTo == null) {
  124. ShipTo = 0;
  125. }
  126. let BranchId = $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_billfromaddressid").val();
  127. if (SearchItem == "Offers" || SearchItem == "All Items" || SearchItem == "Filter" || SearchItem == "Eligible Items") { }
  128. else
  129. SearchItem = (encodeURIComponent(encodeURIComponent(SearchItem).replace('*', '%2A').replace('.', '%2E'))).replace(/\%/g, '!');
  130. if (!instance._order.g_IsPurchasePlanning) {
  131. if (SearchItem == undefined || SearchItem == '') {
  132. SearchItem = ' ';
  133. }
  134. if (SearchItem == "Offers") {
  135. instance._order.g_LoadOffersOnly = true;
  136. SearchItem = '';
  137. if (instance.g_IsFilterApplied) {
  138. instance.g_IsFilterApplied = false;
  139. instance.g_FilteredTags = '';
  140. instance.g_TagArray = [];
  141. Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_Tags = "";
  142. }
  143. }
  144. else if (SearchItem == "All Items") {
  145. instance._order.g_LoadOffersOnly = false;
  146. instance._order.g_LoadEligibleItemsOnly = false;
  147. instance.g_FilteredTags = '';
  148. instance.g_TagArray = [];
  149. Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_Tags = "";
  150. SearchItem = "";
  151. }
  152. else if (SearchItem == "Filter") {
  153. instance._order.g_LoadOffersOnly = false;
  154. }
  155. else if (SearchItem == "Eligible Items") {
  156. instance._order.g_LoadEligibleItemsOnly = true;
  157. SearchItem = "";
  158. }
  159. let PriceCodeId = instance._order.g_PriceCodeId;
  160. let ContactId = OrganizationId;
  161. if (instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales || instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim) {
  162. instance.g_WarehouseId = $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_shipfromaddressid").val();
  163. }
  164. else if (instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Purchase || instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim) {
  165. instance.g_WarehouseId = $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_shippingaddressid").val();
  166. }
  167. let varianturl;
  168. if (SearchItem.replace(" ", "") == "") {
  169. SearchItem = null;
  170. }
  171. if (Number(LoBId) == 0) {
  172. $("#" + instance.g_VisibleContainerId).find(".InventorySettings").empty();
  173. $("#" + 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>');
  174. }
  175. else {
  176. instance.fileCacheHelper.loadJsFile("apps/transact/managers/inventory/itemmanager.js", function () {
  177. let ItemIds = "0";
  178. let Rows = 10;
  179. if (instance._order.g_IsSC_to_PC) {
  180. ItemIds = "";
  181. instance.g_CartItems_New.forEach(x => {
  182. ItemIds += x.ItemId + ",";
  183. });
  184. ItemIds = ItemIds.replace(/,\s*$/, "");
  185. Rows = 0;
  186. $("#" + instance.g_VisibleContainerId).find('.section_Items').addClass('hidden');
  187. }
  188. let postdata = {
  189. PriceCodeId: Number(PriceCodeId),
  190. ContactId: ContactId,
  191. ShippingAddressId: Number(ShipTo),
  192. BranchId: Number(BranchId),
  193. WareHouseId: Number(instance.g_WarehouseId),
  194. LobId: Number(LoBId),
  195. OrderType: instance._order.g_OrderTypeId,
  196. OfferOnly: instance._order.g_LoadOffersOnly,
  197. IsExcise: instance.g_IsExcise,
  198. SearchTerm: SearchItem,
  199. Page: instance.g_PageIndex,
  200. IsCompositePrice: instance.g_IsEnableCompositePrice,
  201. IsPiecePrice: instance.g_IsEnablePiecePrice,
  202. IsCompositePiecePrice: instance.g_IsEnableCompositePiecePrice,
  203. Rows: Rows,
  204. ItemId: ItemIds,
  205. CountryId: instance._order.g_CountryId,
  206. ItemGroupId: 0,
  207. Tags: Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_Tags,
  208. IsPoints: instance._order.g_IsPointsOrder,
  209. Points: instance._order.g_LoyaltyPoints,
  210. IsEligibleItemsOnly: instance._order.g_LoadEligibleItemsOnly
  211. };
  212. let cntId = instance._order.g_OrganizationId;
  213. if (cntId == 0)
  214. cntId = instance._order.g_OrgContactId;
  215. 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")) {
  216. if (Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_Tags.length == 0 && $("#" + instance.g_VisibleContainerId).find("#ItemLoadType option:selected").text() == "Filter") {
  217. instance._order.g_LoadOffersOnly = false;
  218. }
  219. }
  220. varianturl = Bizgaze.Apps.Transact.Managers.ItemManager.Instance().getItemsForOrder(postdata);
  221. instance.navigationHelper.showLoading();
  222. varianturl.then(function (response) {
  223. instance.navigationHelper.hideLoading();
  224. if (UpdateAvailability) {
  225. instance.updateItemsAvailability(response.result);
  226. }
  227. else if (response.result.length > 0) {
  228. instance.itemPagination(response, IsUpdateTax);
  229. if (!instance._order.g_IsPurchasePlanning) {
  230. $("#" + instance.g_VisibleContainerId).find("#btn_CheckOutOrder").removeClass("hidden");
  231. }
  232. if (instance.g_CartItems_New.length == 0) {
  233. $("#" + 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>');
  234. }
  235. instance.navigationHelper.hideLoading();
  236. }
  237. else {
  238. $("#" + instance.g_VisibleContainerId).find(".div_titledetails").addClass("hidden");
  239. if (instance._order.g_LoadOffersOnly) {
  240. $("#" + 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>');
  241. }
  242. else if (instance._order.g_LoadEligibleItemsOnly) {
  243. $("#" + 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>');
  244. }
  245. else {
  246. if (instance._order.g_CreateItem == 1 || instance._order.g_IsAdmin == 1) {
  247. $("#" + 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>');
  248. }
  249. else {
  250. $("#" + 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>');
  251. }
  252. }
  253. if (instance.g_CartItems_New.length == 0 && instance._order.g_IsFromPurchaseIndent) {
  254. let text = "Your Shopping Cart is empty.";
  255. if (instance._order.g_IsFromPurchaseIndent) {
  256. text = "No Pending Purchase Indent Items.";
  257. }
  258. $("#" + 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>');
  259. }
  260. $("#btn_AddNewItem").click(function () {
  261. Bizgaze.Apps.Transact.Controls.OrderItems.Instance().getItemForm();
  262. });
  263. }
  264. });
  265. });
  266. }
  267. }
  268. }
  269. getItemForm() {
  270. let instance = Bizgaze.Apps.Transact.Controls.OrderItems.Instance();
  271. instance.fileCacheHelper.loadJsFiles(['platform/forms/managers/formmanager.js', 'platform/apps/managers/appmanager.js'], function () {
  272. var FormUniqueId = 'Bizgaze_Extension_Transact_Items_App_Items_CreateForm';
  273. Unibase.Platform.Forms.Managers.FormManager.Instance().getFormbyUniqueId(FormUniqueId).then(function (response) {
  274. var successCallBack = {
  275. CallBack: function (ItemId) {
  276. instance.bindNewAddedItem(ItemId);
  277. },
  278. Parameters: null,
  279. };
  280. var onLoadAddItem = {
  281. CallBack: function (ItemId) {
  282. let VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  283. let Parameters = [
  284. { ColumnName: 'lobid', Value: instance._order.g_LobId },
  285. ];
  286. Unibase.Forms.Controls.AutoComplete.Instance().LoadAutoComplete($("#" + VisibleContainerId).find(".txtAutoComplete_productid"), Parameters);
  287. },
  288. Parameters: null,
  289. };
  290. var formviewerObj = {
  291. FormId: response.result.FormId,
  292. AppConfigurationId: 0,
  293. Pk_Value: 0,
  294. PortletWidgetId: 0,
  295. OnSuccess: successCallBack,
  296. OnFail: null,
  297. OnLoad: onLoadAddItem,
  298. };
  299. Unibase.Platform.Forms.Components.FormViewer.Instance().init(formviewerObj);
  300. instance.navigationHelper.hideLoading();
  301. });
  302. });
  303. }
  304. bindNewAddedItem(ItemId) {
  305. let instance = this;
  306. let LoBId = $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_lobid").val();
  307. let ShipTo = $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_shippingaddressid").val();
  308. if (ShipTo == null) {
  309. ShipTo = 0;
  310. }
  311. let BranchId = $("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_billfromaddressid").val();
  312. let postdata = {
  313. PriceCodeId: Number(instance._order.g_PriceCodeId),
  314. ContactId: instance._order.g_OrganizationId,
  315. ShippingAddressId: Number(ShipTo),
  316. BranchId: Number(BranchId),
  317. WareHouseId: Number(instance.g_WarehouseId),
  318. LobId: Number(LoBId),
  319. OrderType: instance._order.g_OrderTypeId,
  320. OfferOnly: false,
  321. IsExcise: instance.g_IsExcise,
  322. SearchTerm: "",
  323. Page: 0,
  324. IsCompositePrice: instance.g_IsEnableCompositePrice,
  325. IsPiecePrice: instance.g_IsEnablePiecePrice,
  326. IsCompositePiecePrice: instance.g_IsEnableCompositePiecePrice,
  327. Rows: 10,
  328. ItemId: ItemId.toString(),
  329. CountryId: instance._order.g_CountryId,
  330. ItemGroupId: 0,
  331. Tags: "",
  332. IsPoints: instance._order.g_IsPointsOrder,
  333. Points: instance._order.g_LoyaltyPoints,
  334. IsEligibleItemsOnly: instance._order.g_LoadEligibleItemsOnly,
  335. ApplyDate: instance.g_OfferApplyDate
  336. };
  337. Bizgaze.Apps.Transact.Managers.ItemManager.Instance().getItemsForOrder(postdata).then(function (res) {
  338. instance.itemPagination(res);
  339. });
  340. }
  341. loadPurchasePlanItems(SearchTerm) {
  342. let instance = this;
  343. let LoadTypeId = Number($("#" + instance.g_VisibleContainerId).find("#ItemLoadType option:selected").val());
  344. SearchTerm = SearchTerm == "" ? null : SearchTerm;
  345. instance.navigationHelper.showLoading();
  346. $("#" + instance.g_VisibleContainerId).find(".divselectall").removeClass('hidden');
  347. let VisibleContainerId = Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds[Unibase.Platform.Helpers.NavigationHelper.ModalContainerIds.length - 1];
  348. $("#" + instance.g_VisibleContainerId).find("#" + VisibleContainerId).find(".Section").addClass("hidden");
  349. $("#" + instance.g_VisibleContainerId).find("#" + VisibleContainerId).find(".section_Items, .section_Calculations").removeClass("hidden");
  350. $("#" + instance.g_VisibleContainerId).find("#" + VisibleContainerId).find("#btn_Checkout").addClass("hidden");
  351. let InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
  352. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  353. let EstimateId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_estimateid").Value);
  354. Bizgaze.Apps.Transact.Managers.OrderManager.Instance().getPurchasePlanItems(EstimateId, LoadTypeId, SearchTerm, 0).then(function (response) {
  355. instance.navigationHelper.hideLoading();
  356. if (response.code == "0") {
  357. var data = response.result;
  358. $("#" + instance.g_VisibleContainerId).find(".variant-addeditem").empty();
  359. instance.itemPagination(response);
  360. }
  361. else {
  362. Unibase.Platform.Forms.Components.FormViewer.Instance().showError(response.code);
  363. }
  364. });
  365. }
  366. itemPagination(response, IsUpdateTax = false) {
  367. let instance = this;
  368. response.result.forEach(x => {
  369. let LoadedItem_Index = instance.g_LoadedItems.findIndex(z => z.ItemId == x.ItemId);
  370. if (LoadedItem_Index == -1) {
  371. instance.g_LoadedItems.push(x);
  372. }
  373. else {
  374. instance.g_LoadedItems[LoadedItem_Index] = x;
  375. }
  376. });
  377. instance.bindItemList(response.result);
  378. if (response.result.length <= 10 && response.result.length != 0) {
  379. $("#" + instance.g_VisibleContainerId).find('#div_OrderItems_pagination').removeClass('hidden');
  380. $("#" + instance.g_VisibleContainerId).find('#ItemsListPagination').removeClass('hidden');
  381. let totalCount = response.result[0].TotalRecords;
  382. if (instance._order.g_IsPurchasePlanning) {
  383. totalCount = response.result.length;
  384. }
  385. let startingValue = 0;
  386. let _count = 0;
  387. let t = (instance.g_PageIndex + 1) * 10;
  388. if (totalCount > 0) {
  389. startingValue = 1;
  390. _count = totalCount;
  391. }
  392. if (totalCount > t)
  393. _count = t;
  394. if (instance.g_PageIndex > 0) {
  395. startingValue += t - 10;
  396. }
  397. let res = startingValue + " - " + _count + " of " + totalCount;
  398. $("#" + instance.g_VisibleContainerId).find('#lblItemTotalRecords').text(res);
  399. $("#" + instance.g_VisibleContainerId).find('.labelSection_ItemsCount').text("Total: " + response.result.length + " Items").addClass("col-sm-12").addClass("text-right").addClass("h5");
  400. let elem = $("#" + instance.g_VisibleContainerId).find('#ItemsListPagination');
  401. elem.pagination(response.result[0].TotalRecords, 10, {
  402. items_per_page: 10,
  403. callback: function (page, component) {
  404. instance.g_PageIndex = page;
  405. instance.loadItems($("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val());
  406. }, current_page: instance.g_PageIndex
  407. });
  408. }
  409. else {
  410. $("#" + instance.g_VisibleContainerId).find('#lblItemTotalRecords').text(response.result.length);
  411. $("#" + instance.g_VisibleContainerId).find('.labelSection_ItemsCount').text("Total: " + response.result.length + " Items").addClass("col-sm-12").addClass("text-right").addClass("h5");
  412. $("#" + instance.g_VisibleContainerId).find("#ItemsListPagination").addClass("hidden");
  413. }
  414. if (IsUpdateTax) {
  415. instance.refreshAllItems(instance.g_FromWidget, "PriceTypeClickEvents");
  416. }
  417. }
  418. bindItemList(items) {
  419. let instance = this;
  420. let LobId = Number($("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_lobid").val());
  421. let BillingAddressId = Number($("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_billingaddressid").val());
  422. let BranchId = Number($("#" + instance.g_VisibleContainerId).find(".txtAutoComplete_billfromaddressid").val());
  423. $("#" + 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>');
  424. if (items.length == 0) {
  425. if (instance._order.g_LoadOffersOnly) {
  426. $("#" + instance.g_VisibleContainerId).find(".variant-list").html('<li><div class="text-center">Offer Items not found.</div></li></ul>');
  427. }
  428. else if (instance._order.g_LoadEligibleItemsOnly) {
  429. $("#" + instance.g_VisibleContainerId).find(".variant-list").html('<li><div class="text-center">Eligible Items not found.</div></li></ul>');
  430. }
  431. else {
  432. $("#" + instance.g_VisibleContainerId).find(".variant-list").html('<li><div class="text-center">Items not found.</div></li></ul>');
  433. }
  434. $("#" + instance.g_VisibleContainerId).find(".div_titledetails").addClass("hidden");
  435. return false;
  436. }
  437. else
  438. $("#" + instance.g_VisibleContainerId).find(".div_titledetails").removeClass("hidden");
  439. let kpi_totalqty = 0;
  440. let kpi_itemscount = 0;
  441. let kpi_totalamount = 0;
  442. let kpi_totalinwardqty = 0;
  443. let kpi_totalinwardamount = 0;
  444. let kpi_ExtraItems = 0;
  445. let kpi_offeritems = 0;
  446. let lbl_Carton = "ml-95";
  447. let lbl_Pieces = "pl-75";
  448. if (instance.g_BodyWidth > 320 && instance.g_BodyWidth < 400) {
  449. lbl_Carton = "ml-45";
  450. lbl_Pieces = "pl-10";
  451. }
  452. if (instance.g_BodyWidth > 400 && instance.g_BodyWidth < 470) {
  453. lbl_Carton = "ml-55";
  454. lbl_Pieces = "pl-25";
  455. }
  456. if (instance.g_BodyWidth > 1300 && instance.g_BodyWidth <= 1600) {
  457. lbl_Carton = "ml-65";
  458. lbl_Pieces = "pl-55";
  459. }
  460. if (instance._order.g_IsPurchasePlanning) {
  461. let temptext = instance.getItemDesignWithTokens_PurchasePlan();
  462. var templateScript = Handlebars.compile(temptext);
  463. var html = "";
  464. $("#" + instance.g_VisibleContainerId).find(".div_PurchasePlanningFooterValues").remove();
  465. $("#" + 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>`);
  466. let TotalSuggestedQty = 0;
  467. let TotalSuggestedValue = 0;
  468. items.forEach(x => {
  469. let url = '';
  470. let ItemImg = "";
  471. let imgtag = "";
  472. let faimg = "";
  473. let LoadedItemIndex = instance.g_LoadedItems.findIndex(y => y.ItemId == x.ItemId);
  474. if (LoadedItemIndex != -1) {
  475. url = instance.g_LoadedItems[LoadedItemIndex].ImageUrl;
  476. if (url == "" || url == undefined || url == null) {
  477. faimg = "";
  478. imgtag = "hidden";
  479. }
  480. else {
  481. faimg = "hidden";
  482. imgtag = "";
  483. }
  484. }
  485. else {
  486. if (x.ImageUrl == "" || x.ImageUrl == undefined || x.ImageUrl == null) {
  487. faimg = "";
  488. imgtag = "hidden";
  489. }
  490. else {
  491. url = x.ImageUrl;
  492. faimg = "hidden";
  493. imgtag = "";
  494. }
  495. }
  496. let Mod_UnitPrice = 0;
  497. let Items_up = instance.g_ItemsUnitPrice_New.filter(y => y.ItemId == x.ItemId);
  498. if (Items_up.length == 0) {
  499. Mod_UnitPrice = x.ConfirmedUnitPrice;
  500. instance.g_ItemsUnitPrice_New.push({
  501. ItemId: x.ItemId,
  502. UnitPrice: x.UnitPrice,
  503. TaxRateAmount: x.TaxRateAmount
  504. });
  505. }
  506. else {
  507. Mod_UnitPrice = Items_up[0].ConfirmedUnitPrice;
  508. }
  509. let PurchasePlanChecked = "";
  510. if (x.IsConfirmed) {
  511. PurchasePlanChecked = "checked";
  512. }
  513. let OrderQuantity = "";
  514. let multiplevalue = "";
  515. if (x.ConfirmedPacks > 0 && x.ConfirmedQty > 0) {
  516. x.SuggestedPacks = x.ConfirmedPacks;
  517. }
  518. if ((x.SuggestedPacks) != 0 && (x.SuggestedPacks) != null && (x.SuggestedPacks) != undefined) {
  519. let unitprice = Number(Mod_UnitPrice);
  520. let packCount = Number(x.PackCount);
  521. let packSize = Number(x.PackSize);
  522. let baseqty = packCount * packSize * x.SuggestedPacks;
  523. OrderQuantity = " X " + (baseqty);
  524. multiplevalue = " = " + (unitprice * baseqty);
  525. TotalSuggestedQty += baseqty;
  526. TotalSuggestedValue += (unitprice * baseqty);
  527. }
  528. let offerDiscountClass = "";
  529. if (x.IsOfferAvailable && x.IsOfferDiscountApplied && !instance._order.g_IsManageOfferDiscount) {
  530. offerDiscountClass = "readonly";
  531. }
  532. let Discount = 0;
  533. if (x.ConfirmedDiscountValue > 0) {
  534. Discount = x.ConfirmedDiscountValue;
  535. }
  536. if (x.ConfirmedDiscountPercent > 0) {
  537. Discount = x.ConfirmedDiscountPercent;
  538. }
  539. let fltngclass_Cartons = "", fltngclass_Pieces = "", PP_Cartons = "", PP_Pieces = "";
  540. if (x.SuggestedPacks != 0) {
  541. PP_Cartons = x.ConfirmedPacks.toString();
  542. }
  543. let CartItem_Index = -1;
  544. CartItem_Index = instance.g_CartItems_New.findIndex(y => y.ItemId == x.ItemId && y.RefItemIds == "");
  545. let CartItem = instance.g_CartItems_New[CartItem_Index];
  546. if (CartItem != undefined) {
  547. PP_Cartons = CartItem.Packs.toString();
  548. PP_Pieces = CartItem.Pieces.toString();
  549. }
  550. if (PP_Cartons == "0") {
  551. PP_Cartons = "";
  552. }
  553. if (PP_Cartons != "") {
  554. fltngclass_Cartons = "floating-label-form-group-with-value";
  555. }
  556. if (PP_Pieces == "0") {
  557. PP_Pieces = "";
  558. }
  559. if (PP_Pieces != "") {
  560. fltngclass_Pieces = "floating-label-form-group-with-value";
  561. }
  562. x.imgurl = url;
  563. x.faimg = faimg;
  564. x.imgtag = imgtag;
  565. x.ItemImg = ItemImg;
  566. x.OrderQuantity = OrderQuantity;
  567. x.multiplevalue = multiplevalue;
  568. x.Mod_UnitPrice = Mod_UnitPrice;
  569. x.offerDiscountClass = offerDiscountClass;
  570. x.PP_Cartons = PP_Cartons;
  571. x.PP_Pieces = PP_Pieces;
  572. x.fltngclass_Cartons = fltngclass_Cartons;
  573. x.fltngclass_Pieces = fltngclass_Pieces;
  574. x.PurchasePlanChecked = PurchasePlanChecked;
  575. x.Discount = Discount;
  576. x.BranchId = '"' + x.BranchId.toString() + '"';
  577. x.IsDisabledCheckBox = x.SuggestedPacks > 0 ? "" : "disabled";
  578. let ItemId = x.ItemId;
  579. html = templateScript(x);
  580. $("#" + instance.g_VisibleContainerId).find(".variant-item:last").after(html);
  581. let element = $("#" + instance.g_VisibleContainerId).find(".variant-item:last");
  582. if (x.UnitPrice == 0 && instance.roundOff(x.SuggestedPacks, 0) > 0) {
  583. if (element.find(".tax-error").text() == "") {
  584. element.find(".tax-error").text("Unit price is zero").removeClass("text-danger").addClass("text-warning");
  585. }
  586. }
  587. instance.allItemEvents(element);
  588. let SelItem = instance.g_SelectedItems.find(x => x.ItemId == ItemId);
  589. if (SelItem != null) {
  590. let element = $("#" + instance.g_VisibleContainerId).find(".variant-item:last");
  591. instance.updateItemsDesign(element, "BindItemList");
  592. let Cartons = SelItem.Packs;
  593. if (instance._order.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  594. Cartons = SelItem.Quantity;
  595. }
  596. if (Cartons == 0) {
  597. $("#" + instance.g_VisibleContainerId).find(element).find(".txtOrder_ItemCount").val("");
  598. }
  599. if (SelItem.Pieces == 0) {
  600. $("#" + instance.g_VisibleContainerId).find(element).find(".txtOrder_ItemPieceCount").val("");
  601. }
  602. instance.checkValidations(ItemId, false);
  603. }
  604. else {
  605. if (instance._order.g_IsPurchasePlanning && x.SuggestedPacks > 0) {
  606. }
  607. else {
  608. $("#" + instance.g_VisibleContainerId).find(element).find(".txtOrder_ItemCount").val("");
  609. $("#" + instance.g_VisibleContainerId).find(element).find(".txtOrder_ItemPieceCount").val("");
  610. }
  611. }
  612. });
  613. TotalSuggestedQty = instance.roundOffIgnoreZerosAfterDecimal(TotalSuggestedQty);
  614. TotalSuggestedValue = instance.roundOffIgnoreZerosAfterDecimal(TotalSuggestedValue);
  615. $("#" + instance.g_VisibleContainerId).find("#spn_Total_Suggested_Qty").text(TotalSuggestedQty);
  616. $("#" + instance.g_VisibleContainerId).find("#spn_Total_Suggested_Value").text(TotalSuggestedValue);
  617. if ($("#" + instance.g_VisibleContainerId).find(".chk_PurPlanItem:visible").length != $("#" + instance.g_VisibleContainerId).find(".chk_PurPlanItem:visible:checked").length) {
  618. $("#" + instance.g_VisibleContainerId).find('#chk_AllItems').prop('checked', false);
  619. }
  620. else {
  621. $("#" + instance.g_VisibleContainerId).find('#chk_AllItems').prop('checked', true);
  622. }
  623. instance.navigationHelper.showLoading();
  624. $("#" + instance.g_VisibleContainerId).find(".variant-list").find(".chk_PurPlanItem:checked").each(function () {
  625. let element = $("#" + instance.g_VisibleContainerId).find(this).closest(".variant-item");
  626. if (element.find("#txt_Cartons").val() != 0 && element.find("#txt_Cartons").val() != "") {
  627. instance.updateItemsArray(element, "PurPlan_AllItems", false);
  628. $("#" + instance.g_VisibleContainerId).find(element).find(".chk_PurPlanItem").prop("checked", true);
  629. }
  630. });
  631. instance.navigationHelper.hideLoading();
  632. instance.getPurchasePlanTotals(true, false);
  633. }
  634. else {
  635. for (let i = 0; i < items.length; i++) {
  636. let data;
  637. if (instance._order.g_IsPurchasePlanning) {
  638. data = items[i];
  639. let kpi_suggestedPacks = items[i].SuggestedPacks;
  640. let kpi_inwardPacks = items[i].InwardOrderPacks;
  641. let kpi_packSize = data.PackSize;
  642. let kpi_packCount = data.PackCount;
  643. let kpi_unitprice = data.UnitPrice;
  644. kpi_totalqty += (Number(kpi_suggestedPacks) * Number(kpi_packSize) * Number(kpi_packCount));
  645. kpi_totalamount += (Number(kpi_suggestedPacks) * Number(kpi_unitprice) * Number(kpi_packSize) * Number(kpi_packCount));
  646. if (Number(kpi_suggestedPacks) > 0) {
  647. kpi_itemscount += kpi_suggestedPacks;
  648. }
  649. kpi_totalinwardqty += (Number(kpi_inwardPacks) * Number(kpi_packSize) * Number(kpi_packCount));
  650. kpi_totalinwardamount += (Number(kpi_inwardPacks) * Number(kpi_unitprice) * Number(kpi_packSize) * Number(kpi_packCount));
  651. }
  652. else {
  653. data = items[i];
  654. }
  655. let ItemId = data.ItemId;
  656. let html = "";
  657. if (instance._order.g_IsPurchasePlanning) {
  658. if ((items[i].SuggestedPacks) != 0 && (items[i].SuggestedPacks) != null && (items[i].SuggestedPacks) != undefined) {
  659. }
  660. else if (data.IsOfferAvailable)
  661. kpi_offeritems++;
  662. else
  663. kpi_ExtraItems++;
  664. html = instance.getItemDesign(items[i]);
  665. }
  666. else {
  667. html = instance.getItemDesign(data);
  668. }
  669. $("#" + instance.g_VisibleContainerId).find(".variant-item:last").after(html);
  670. let element = $("#" + instance.g_VisibleContainerId).find(".variant-item:last");
  671. if (instance._order.g_IsPurchasePlanning) {
  672. if (data.UnitPrice == 0 && instance.roundOff(items[i].SuggestedPacks, 0) > 0) {
  673. if (element.find(".tax-error").text() == "") {
  674. element.find(".tax-error").text("Unit price is zero").removeClass("text-danger").addClass("text-warning");
  675. }
  676. }
  677. }
  678. instance.allItemEvents(element);
  679. let SelItem = instance.g_SelectedItems.find(x => x.ItemId == ItemId);
  680. if (SelItem != null) {
  681. let element = $("#" + instance.g_VisibleContainerId).find(".variant-item:last");
  682. instance.updateItemsDesign(element, "BindItemList");
  683. let Cartons = SelItem.Packs;
  684. if (instance._order.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  685. Cartons = SelItem.Quantity;
  686. }
  687. if (Cartons == 0) {
  688. $("#" + instance.g_VisibleContainerId).find(element).find(".txtOrder_ItemCount").val("");
  689. }
  690. if (SelItem.Pieces == 0) {
  691. $("#" + instance.g_VisibleContainerId).find(element).find(".txtOrder_ItemPieceCount").val("");
  692. }
  693. instance.checkValidations(ItemId, false);
  694. }
  695. else {
  696. if (instance._order.g_IsPurchasePlanning && items[i].SuggestedPacks > 0) {
  697. }
  698. else {
  699. $("#" + instance.g_VisibleContainerId).find(element).find(".txtOrder_ItemCount").val("");
  700. $("#" + instance.g_VisibleContainerId).find(element).find(".txtOrder_ItemPieceCount").val("");
  701. }
  702. }
  703. }
  704. }
  705. let pageHtml = "";
  706. pageHtml = '<div class="row mt-15 col-sm-12"> ' +
  707. '<div class="col-sm-3">' +
  708. '<span class="text-dark ml-30">Total : <span id="lblItemTotalRecords" class="">0</span></span>' +
  709. '</div>' +
  710. '<div class="col-sm-9 hidden" id="div_OrderItems_pagination">' +
  711. '<div id="ItemsListPagination" class="pagination custom-pagination pagination-rounded pull-right mr-20"></div>' +
  712. '</div>' +
  713. '</div>';
  714. $("#" + instance.g_VisibleContainerId).find(".variant-item:last").after(pageHtml);
  715. if (instance._order.g_IsPurchasePlanning) {
  716. $("#" + instance.g_VisibleContainerId).find("#span_SuggPurchaseOrderValue").text(kpi_totalamount);
  717. $("#" + instance.g_VisibleContainerId).find("#span_SuggPurchaseOrderVolume").text(kpi_itemscount);
  718. $("#" + instance.g_VisibleContainerId).find("#span_PurchaseOrderVolume").text(kpi_totalinwardqty);
  719. $("#" + instance.g_VisibleContainerId).find("#span_PurchaseOrderValue").text(kpi_totalinwardamount);
  720. $("#" + instance.g_VisibleContainerId).find("#span_OfferItems").text(kpi_offeritems);
  721. $("#" + instance.g_VisibleContainerId).find("#span_ExtraItems").text(kpi_ExtraItems);
  722. }
  723. if (instance._order.g_IsSC_to_PC) {
  724. for (let i = 0; i < instance.g_CartItems_New.length; i++) {
  725. let Itm = instance.g_CartItems_New[i];
  726. let elem = $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + Itm.ItemId);
  727. if (elem != undefined && elem.length > 0) {
  728. let row = instance.g_LoadedItems.find(x => x.ItemId == Itm.ItemId);
  729. if (row != undefined && row != null) {
  730. $("#" + instance.g_VisibleContainerId).find(elem).find("#txt_editItemPrice").val(row.UnitPrice);
  731. }
  732. if (instance._order.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  733. $("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemCount").val(Itm.Quantity);
  734. }
  735. else {
  736. let onlyPacks = parseInt((Number(Itm.Quantity) / Number(row.PackCount * row.PackSize)).toString());
  737. let remainingQty = Itm.Quantity - (onlyPacks * row.PackCount * row.PackSize);
  738. let onlyPieces = remainingQty / row.PackSize;
  739. Itm.Packs = Number(onlyPacks);
  740. Itm.Pieces = Number(instance.roundOff(onlyPieces));
  741. $("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemCount").val(Itm.Packs);
  742. $("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemPieceCount").val(Itm.Pieces);
  743. }
  744. $("#" + instance.g_VisibleContainerId).find(elem).find(".btnOrder_DiscType").val(Itm.DiscountType);
  745. if (Itm.DiscountPercent > 0) {
  746. $("#" + instance.g_VisibleContainerId).find(elem).find("#Ord_txtdiscount").val(Itm.DiscountPercent);
  747. }
  748. else {
  749. $("#" + instance.g_VisibleContainerId).find(elem).find("#Ord_txtdiscount").val(Itm.DiscountValue);
  750. }
  751. instance.updateItemsArray(elem, "Bind_SC_PC_CartItems", false, 0);
  752. }
  753. let cart_elem = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + Itm.ItemId);
  754. if (cart_elem.length == 0) {
  755. instance.addCartItem(Itm.ItemId);
  756. }
  757. cart_elem = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + Itm.ItemId);
  758. if (cart_elem != undefined && cart_elem.length > 0) {
  759. let row = instance.g_LoadedItems.find(x => x.ItemId == Itm.ItemId);
  760. if (row != undefined && row != null) {
  761. $("#" + instance.g_VisibleContainerId).find(cart_elem).find("#txt_editItemPrice").val(row.UnitPrice);
  762. }
  763. if (instance._order.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  764. $("#" + instance.g_VisibleContainerId).find(cart_elem).find(".txtOrder_ItemCount").val(Itm.Quantity);
  765. }
  766. else {
  767. $("#" + instance.g_VisibleContainerId).find(cart_elem).find(".txtOrder_ItemCount").val(Itm.Packs);
  768. $("#" + instance.g_VisibleContainerId).find(cart_elem).find(".txtOrder_ItemPieceCount").val(Itm.Pieces);
  769. }
  770. $("#" + instance.g_VisibleContainerId).find(cart_elem).find(".btnOrder_DiscType").val(Itm.DiscountType);
  771. if (Itm.DiscountPercent > 0) {
  772. $("#" + instance.g_VisibleContainerId).find(cart_elem).find("#Ord_txtdiscount").val(Itm.DiscountPercent);
  773. }
  774. else {
  775. $("#" + instance.g_VisibleContainerId).find(cart_elem).find("#Ord_txtdiscount").val(Itm.DiscountValue);
  776. }
  777. instance.updateItemsArray(cart_elem, "Bind_SC_PC_CartItems", false);
  778. }
  779. }
  780. }
  781. }
  782. updateItemsArray(elem, event, FromWidget = false, Qty = 0, Pcs = 0) {
  783. let instance = this;
  784. let OrderItemId = 0;
  785. let RefOrderItemId = 0;
  786. let SelectedUnitId = 1;
  787. let SelectedUnitName = "";
  788. let DefaultSize = 0;
  789. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length > 0 && !instance._order.g_IsSC_to_PC && !instance._order.g_IsPurchasePlanning && !instance._order.g_IsFromPurchaseIndent) {
  790. FromWidget = true;
  791. }
  792. 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;
  793. let FocusTxt = instance.getItemFocus(elem);
  794. if (FocusTxt == "Packs") {
  795. IsPacksFocus = true;
  796. }
  797. else {
  798. IsPiecesFocus = true;
  799. }
  800. let IsCalculateTax = instance._order.g_IsCalculateTax;
  801. let ItemIndex = instance.g_CartItems_New.length + 1;
  802. let optoutAmount = 0;
  803. let ItemId = Number($("#" + instance.g_VisibleContainerId).find(elem).find(".hfOrder_ItemId").val());
  804. let Packs = isNaN(Number($("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemCount").val())) ? 0 : Number($("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemCount").val());
  805. let Pieces = isNaN(Number($("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemPieceCount").val())) ? 0 : Number($("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemPieceCount").val());
  806. if (Pieces == 0 && Pcs > 0) {
  807. Pieces = Pcs;
  808. }
  809. let UnitPrice = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#txt_editItemPrice").val());
  810. let UnitPriceWithOutTax = UnitPrice;
  811. let DiscountType = Number($("#" + instance.g_VisibleContainerId).find(elem).find(".btnOrder_DiscType").val());
  812. let IsExchangeDC = $("#" + instance.g_VisibleContainerId).find(elem).find(".chkItem_ExchangeDC").prop("checked");
  813. if (IsExchangeDC == undefined) {
  814. IsExchangeDC = false;
  815. }
  816. let IsAfterTax = $("#" + instance.g_VisibleContainerId).find(elem).find(".divAfterTax").is(':checked');
  817. if (DiscountType == 1) {
  818. DiscountPercent = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#Ord_txtdiscount").val());
  819. DiscountAmount = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#txt_editItemPrice").val()) * Number(DiscountPercent / 100);
  820. AfterDiscountValue = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#txt_editItemPrice").val()) - Number(DiscountAmount);
  821. }
  822. else if (DiscountType == 2) {
  823. DiscountValue = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#Ord_txtdiscount").val());
  824. DiscountAmount = DiscountValue;
  825. AfterDiscountValue = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#txt_editItemPrice").val()) - DiscountValue;
  826. }
  827. let LoadedItems_Index = instance.g_LoadedItems.findIndex(x => x.ItemId == ItemId);
  828. let SelectedItems_Index = -1;
  829. if (instance.g_SelectedItems != undefined) {
  830. SelectedItems_Index = instance.g_SelectedItems.findIndex(x => x.ItemId == ItemId && x.RefItemIds == "");
  831. }
  832. let CartItems_Index = -1;
  833. if (instance.g_CartItems_New != undefined) {
  834. CartItems_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds == "");
  835. if (CartItems_Index != -1) {
  836. IsPacksFocus = instance.g_CartItems_New[CartItems_Index].IsPacksFocus;
  837. IsPiecesFocus = instance.g_CartItems_New[CartItems_Index].IsPiecesFocus;
  838. }
  839. }
  840. let row = instance.g_LoadedItems[LoadedItems_Index];
  841. let PurPlan_Index = instance.g_PurPlanData.findIndex(x => x.ItemId == ItemId);
  842. let PurPlanRow = [];
  843. if (PurPlan_Index != -1) {
  844. PurPlanRow = instance.g_PurPlanData[PurPlan_Index];
  845. }
  846. else {
  847. PurPlanRow = row;
  848. }
  849. let PartNo = row.PartNo;
  850. if (PartNo == undefined || PartNo == "null" || PartNo == null) {
  851. PartNo = "";
  852. }
  853. let Items_up = instance.g_ItemsUnitPrice_New.find(x => x.ItemId == ItemId);
  854. Items_up.UnitPrice = UnitPrice;
  855. if (Items_up.length == 0) {
  856. instance.g_ItemsUnitPrice_New.push({
  857. ItemId: ItemId,
  858. UnitPrice: UnitPrice,
  859. TaxRateAmount: TaxRateAmount
  860. });
  861. }
  862. let Quantity = 0;
  863. let UOMQuantity = 0;
  864. if (instance._order.g_InventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  865. if (instance._order.g_IsPointsOrder) {
  866. row.PackCount = 1;
  867. row.PackSize = 1;
  868. }
  869. BaseQty = Number(Packs);
  870. Quantity = Packs;
  871. let onlyPacks = parseInt((Number(Quantity) / Number(row.PackCount * row.PackSize)).toString());
  872. let remainingQty = Quantity - (onlyPacks * row.PackCount * row.PackSize);
  873. let onlyPieces = remainingQty / row.PackSize;
  874. Packs = Number(onlyPacks);
  875. Pieces = Number(instance.roundOff(onlyPieces));
  876. }
  877. else {
  878. if (Qty != 0) {
  879. BaseQty = Qty;
  880. Quantity = Qty;
  881. }
  882. else {
  883. BaseQty = Number(row.PackCount) * Number(row.PackSize) * Number(Packs) + (Pieces * row.PackSize);
  884. Quantity = ((row.PackCount * row.PackSize) * Packs) + (Pieces * row.PackSize);
  885. }
  886. }
  887. if (row.IsMultipleUOMs) {
  888. SelectedUnitId = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#ddl_MultipleUOMs_" + ItemId).val());
  889. if (SelectedUnitId != 1 && SelectedUnitId != 0) {
  890. let MultipleUOM = row.MultipleUOMs.find(x => x.SchemaDetailId == SelectedUnitId);
  891. UOMQuantity = instance.roundOff(Quantity * (MultipleUOM.AlternateSize / MultipleUOM.DefaultSize));
  892. BaseQty = UOMQuantity;
  893. DefaultSize = MultipleUOM.DefaultSize;
  894. SelectedUnitName = MultipleUOM.AlternateUnitName;
  895. }
  896. }
  897. if (row.IsManualUOM && instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales) {
  898. SelectedUnitId = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#ddl_ManualUOMs_" + ItemId).val());
  899. if (isNaN(SelectedUnitId)) {
  900. SelectedUnitId = 1;
  901. }
  902. UOMQuantity = Number($("#" + instance.g_VisibleContainerId).find(elem).find("#txt_ManualConversionQty").val());
  903. if (UOMQuantity <= 0 || isNaN(UOMQuantity)) {
  904. UOMQuantity = Packs;
  905. }
  906. BaseQty = UOMQuantity;
  907. SelectedUnitName = $("#ddl_ManualUOMs_" + ItemId + " option:selected").text();
  908. }
  909. Quantity = instance.roundOffIgnoreZerosAfterDecimal(Quantity);
  910. UOMQuantity = instance.roundOffIgnoreZerosAfterDecimal(UOMQuantity);
  911. if (event == "Plus" || event == "Packs" || event == "Pieces") {
  912. IsCheckPendingItems = true;
  913. }
  914. else {
  915. if (Quantity == 0 && !FromWidget) {
  916. IsCheckPendingItems = true;
  917. }
  918. }
  919. if (SelectedItems_Index != -1) {
  920. if (event == "Plus" || event == "Packs" || event == "Pieces" || event == "ApplyOffer") {
  921. IsCheckPendingItems = instance.g_SelectedItems[SelectedItems_Index].IsCheckPendingItems;
  922. let qty = instance.g_SelectedItems[SelectedItems_Index].BaseQty;
  923. if (IsCheckPendingItems && qty > 0 && !FromWidget) {
  924. IsCheckPendingItems = false;
  925. }
  926. }
  927. ItemIndex = instance.g_SelectedItems[SelectedItems_Index].ItemIndex;
  928. OrderItemId = instance.g_SelectedItems[SelectedItems_Index].OrderItemId;
  929. RefOrderItemId = instance.g_SelectedItems[SelectedItems_Index].RefOrderItemId;
  930. $("#" + instance.g_VisibleContainerId).find(elem).find(".tax-error").text("");
  931. $("#" + instance.g_VisibleContainerId).find(elem).find("#LeverageErrorTxt").addClass("hidden");
  932. }
  933. if (instance.g_IsEnableCompositePiecePrice) {
  934. Amount = (UnitPriceWithOutTax * Number(BaseQty)) + Number(row.TaxRate);
  935. if (Number(BaseQty) == 0)
  936. Amount = 0;
  937. UnitPrice = instance.roundOffIgnoreZerosAfterDecimal(row.CompositePiecePrice);
  938. }
  939. else if (instance.g_IsEnableCompositePrice) {
  940. let amnt = Number(UnitPriceWithOutTax) * Number(row.TaxPercentage) / 100;
  941. TaxRateAmount = Number(UnitPriceWithOutTax) + Number(amnt);
  942. Amount = Number(BaseQty) * TaxRateAmount;
  943. UnitPrice = instance.roundOffIgnoreZerosAfterDecimal(row.CompositePrice);
  944. }
  945. else if (instance.g_IsEnablePiecePrice) {
  946. Amount = Number(BaseQty) * UnitPriceWithOutTax;
  947. UnitPrice = instance.roundOffIgnoreZerosAfterDecimal(row.PiecePrice);
  948. }
  949. else {
  950. Amount = Number(BaseQty) * UnitPriceWithOutTax;
  951. }
  952. Items_up.TaxRateAmount = TaxRateAmount;
  953. let AssessableAmount = Number(Amount);
  954. let discVal = Number(DiscountValue) * Number(BaseQty);
  955. let discPercent = Number(DiscountPercent);
  956. let DiscAmount = Number((Amount * discPercent) / 100) + Number(discVal);
  957. let discAmt = DiscAmount + Number(optoutAmount);
  958. AssessableAmount = Number(AssessableAmount) - Number(discAmt);
  959. let AmountWithDiscount = instance.roundOffIgnoreZerosAfterDecimal(Number(Amount) - Number(discAmt));
  960. if (IsCalculateTax) {
  961. if (instance.g_IsEnableCompositePiecePrice || instance.g_IsEnableCompositePrice) {
  962. if (row.TaxGroupId == 0) {
  963. IsTaxError = true;
  964. }
  965. else {
  966. TaxGroupId = row.TaxGroupId;
  967. TaxGroupName = row.TaxGroupName;
  968. for (let p = 0; p < row.TaxPercentList.length; p++) {
  969. let percen = row.TaxPercentList[p];
  970. let tax = AssessableAmount * percen.Percentage / 100;
  971. TaxAmount += tax;
  972. }
  973. StrTaxPercents = row.strTaxPercents;
  974. instance.getPriceTypeValues(ItemId, Packs, Pieces);
  975. if (instance.g_IsEnablePiecePrice) {
  976. UnitPrice = row.PiecePrice;
  977. instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.PiecePrice;
  978. }
  979. else if (instance.g_IsEnableCompositePrice) {
  980. UnitPrice = row.CompositePrice;
  981. instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.CompositePrice;
  982. }
  983. else if (instance.g_IsEnableCompositePiecePrice) {
  984. UnitPrice = row.CompositePiecePrice;
  985. instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.Both;
  986. }
  987. else {
  988. instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.None;
  989. }
  990. }
  991. }
  992. }
  993. else {
  994. $("#" + instance.g_VisibleContainerId).find("#TotalTax").addClass("hidden");
  995. $("#" + instance.g_VisibleContainerId).find(".divCustomProperties_istaxinclusive").addClass("hidden");
  996. }
  997. let Description = "";
  998. if (instance.g_FromWidgetEditOrderItemId > 0) {
  999. Description = $("#" + instance.g_VisibleContainerId).find("#txt_Description").val().toString();
  1000. }
  1001. else {
  1002. Description = $("#" + instance.g_VisibleContainerId).find(elem).find("#txt_Description").val().toString();
  1003. }
  1004. if (Description == "") {
  1005. Description = row.Description != null ? row.Description : "";
  1006. }
  1007. if (event == "PendingPopCancel") {
  1008. IsCheckPendingItems = true;
  1009. }
  1010. let ItemData = {
  1011. OrderItemId: OrderItemId,
  1012. ItemIndex: ItemIndex,
  1013. ParentItemId: 0,
  1014. ItemId: ItemId,
  1015. HSNId: row.HSNId,
  1016. ItemName: row.ItemName,
  1017. Packs: Packs,
  1018. Pieces: Pieces,
  1019. PriceListId: row.PriceListId,
  1020. PriceListName: row.PriceListName,
  1021. UnitPrice: UnitPrice,
  1022. UnitPriceWithOutTax: UnitPriceWithOutTax,
  1023. ExpectedPrice: row.UnitPrice,
  1024. ActualPrice: row.UnitPrice,
  1025. PackCount: row.PackCount,
  1026. PackSize: row.PackSize,
  1027. UnitName: row.UnitName,
  1028. Quantity: Quantity,
  1029. SKU: row.SKU,
  1030. PartNo: PartNo,
  1031. Amount: Amount,
  1032. AmountWithDiscount: AmountWithDiscount,
  1033. DiscountPercent: DiscountPercent,
  1034. DiscountValue: DiscountValue,
  1035. DiscountType: DiscountType,
  1036. DiscountAmount: DiscountAmount,
  1037. ItemValueAfterDiscount: AfterDiscountValue,
  1038. StrTaxPercents: StrTaxPercents,
  1039. AvailableQuantity: row.AvailableQuantity,
  1040. AvailablePacks: row.AvailablePacks,
  1041. AvailablePieces: row.AvailablePieces,
  1042. TotalAvailablePieces: row.TotalAvailablePieces,
  1043. ExchangeDC: IsExchangeDC,
  1044. IsAfterTax: IsAfterTax,
  1045. BaseQty: BaseQty,
  1046. IsFocItem: false,
  1047. optoutAmount: optoutAmount,
  1048. TaxGroupId: TaxGroupId,
  1049. TaxGroupName: TaxGroupName,
  1050. TaxAmount: TaxAmount,
  1051. TaxRateAmount: TaxRateAmount,
  1052. TaxRate: row.TaxRate,
  1053. TaxPercentage: row.TaxPercentage,
  1054. IsOfferAvailable: row.IsOfferAvailable,
  1055. Description: Description == undefined ? "" : Description,
  1056. Discountable: row.Discountable,
  1057. PiecePrice: row.PiecePrice,
  1058. CompositePrice: row.CompositePrice,
  1059. CompositePiecePrice: row.CompositePiecePrice,
  1060. IsCheckPendingItems: IsCheckPendingItems,
  1061. IsError: false,
  1062. ErrorMsg: "",
  1063. ErrorClass: "text-danger",
  1064. IsTaxError: IsTaxError,
  1065. IsLeverageError: IsLeverageError,
  1066. IsFocAdded: false,
  1067. RefOrderItemId: RefOrderItemId,
  1068. RefItemIds: "",
  1069. RefItemSKUs: "",
  1070. FocItemIds: "",
  1071. DiscountGroupId: 0,
  1072. IsOfferDiscountApplied: false,
  1073. AppliedOfferVolume: 0,
  1074. AppliedPlanVolumeId: 0,
  1075. AppliedOfferId: 0,
  1076. optoutOfferGroupId: 0,
  1077. SuggestedPacks: PurPlanRow.SuggestedPacks,
  1078. MinPacks: PurPlanRow.MinPacks,
  1079. AvgPacks: PurPlanRow.AvgPacks,
  1080. InwardOrderPacks: PurPlanRow.InwardOrderPacks,
  1081. OutwardOrderPacks: PurPlanRow.OutwardOrderPacks,
  1082. IsManualUOM: row.IsManualUOM,
  1083. UOMs: row.UOMs,
  1084. IsMultipleUOMs: row.IsMultipleUOMs,
  1085. UOMSchemaId: row.UOMSchemaId,
  1086. MultipleUOMs: row.MultipleUOMs,
  1087. SelectedUnitId: SelectedUnitId,
  1088. SelectedUnitName: SelectedUnitName == "" ? row.UnitName : SelectedUnitName,
  1089. DefaultSize: DefaultSize,
  1090. IsBoMAvailable: row.IsBoMAvailable,
  1091. IsSpecialPrice: row.IsSpecialPrice,
  1092. ConversionQuantity: UOMQuantity,
  1093. RowTotal: 0,
  1094. RowDiscount: 0,
  1095. TaxTotal: 0,
  1096. IsPacksFocus: IsPacksFocus,
  1097. IsPiecesFocus: IsPiecesFocus,
  1098. CategoryName: ""
  1099. };
  1100. if (SelectedItems_Index == -1) {
  1101. instance.g_SelectedItems.push(ItemData);
  1102. }
  1103. else {
  1104. instance.g_SelectedItems[SelectedItems_Index] = ItemData;
  1105. }
  1106. if (CartItems_Index == -1) {
  1107. instance.g_CartItems_New.push(ItemData);
  1108. }
  1109. else {
  1110. instance.g_CartItems_New[CartItems_Index] = ItemData;
  1111. }
  1112. let ItemElm = $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + ItemId);
  1113. if (ItemElm.length > 0) {
  1114. instance.updateItemsDesign(ItemElm, event);
  1115. }
  1116. let IsCart = false;
  1117. if ($("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").is(":visible")) {
  1118. IsCart = true;
  1119. }
  1120. if (!FromWidget) {
  1121. if (instance.g_CartItems_New.length == 0) {
  1122. $("#" + 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>');
  1123. }
  1124. else {
  1125. $("#" + instance.g_VisibleContainerId).find(".EmptyCartLi").remove();
  1126. }
  1127. if ($("#" + instance.g_VisibleContainerId).find("#cartItemsSearch").val() != undefined) {
  1128. let value = $("#" + instance.g_VisibleContainerId).find("#cartItemsSearch").val().toString().toLowerCase();
  1129. $("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart li:not(:first-child)").filter(function () {
  1130. $("#" + instance.g_VisibleContainerId).find(this).toggle($("#" + instance.g_VisibleContainerId).find(this).text().toLowerCase().indexOf(value) > -1);
  1131. });
  1132. }
  1133. 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)) {
  1134. if (!IsTaxError && event != "PendingPopCancel") {
  1135. instance.checkPendingPopup(ItemId, CartItems_Index, FromWidget);
  1136. }
  1137. else if (IsTaxError) {
  1138. instance.addCartItem(ItemId);
  1139. }
  1140. }
  1141. else {
  1142. if (CartItems_Index != -1) {
  1143. let Cart_elem = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId);
  1144. if (Cart_elem.length > 0 && !FromWidget) {
  1145. let evnt = "EditCartItem";
  1146. if (event == "RefreshAllItems_InventoryClickEvents") {
  1147. evnt = event;
  1148. }
  1149. instance.updateItemsDesign(Cart_elem, evnt, true);
  1150. }
  1151. }
  1152. else {
  1153. instance.addCartItem(ItemId);
  1154. }
  1155. }
  1156. }
  1157. else {
  1158. if (IsCheckPendingItems && $("#" + instance.g_VisibleContainerId).find(".bootbox-confirm").length == 0) {
  1159. if (!IsTaxError && event != "PendingPopCancel") {
  1160. instance.checkPendingPopup(ItemId, CartItems_Index, FromWidget);
  1161. }
  1162. else if (IsTaxError) {
  1163. instance.addCartItem(ItemId);
  1164. }
  1165. }
  1166. }
  1167. if (BaseQty != 0) {
  1168. instance.checkValidations(ItemId, false);
  1169. instance.checkValidations(ItemId, true);
  1170. }
  1171. else {
  1172. instance.checkEnablePieces();
  1173. instance.checkEnablePacks();
  1174. }
  1175. if (!instance._order.g_IsPointsOrder && (IsCart || FromWidget || instance.g_FromContinueShopping)) {
  1176. if (row.IsOfferAvailable && !FromWidget) {
  1177. instance.checkOffers(FromWidget, "UpdateItemsArray");
  1178. }
  1179. else if (FromWidget) {
  1180. instance.checkOffers(FromWidget, "UpdateItemsArray");
  1181. }
  1182. else {
  1183. if (IsCart || instance._order.g_IsPurchasePlanning) {
  1184. if (event != "PurPlan_AllItems") {
  1185. instance.getTotals(ItemId);
  1186. }
  1187. }
  1188. }
  1189. }
  1190. else {
  1191. if (IsCart || instance._order.g_IsPurchasePlanning) {
  1192. if (event != "PurPlan_AllItems") {
  1193. if (BaseQty != 0) {
  1194. $("#" + instance.g_VisibleContainerId).find(elem).find(".chk_PurPlanItem").prop("checked", true);
  1195. }
  1196. else {
  1197. $("#" + instance.g_VisibleContainerId).find(elem).find(".chk_PurPlanItem").prop("checked", false);
  1198. }
  1199. instance.getTotals(ItemId);
  1200. }
  1201. }
  1202. }
  1203. if (event == "FromWidget") {
  1204. if (SelectedItems_Index != -1) {
  1205. instance.g_SelectedItems[SelectedItems_Index].IsCheckPendingItems = true;
  1206. }
  1207. if (CartItems_Index == -1) {
  1208. instance.g_CartItems_New[CartItems_Index].IsCheckPendingItems = true;
  1209. }
  1210. }
  1211. instance.g_CartItems_New.filter(x => x.BaseQty == 0).forEach(function (c) {
  1212. let ItemId = c.ItemId;
  1213. let ItemElm = $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + ItemId);
  1214. let CartElm = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId);
  1215. $("#" + instance.g_VisibleContainerId).find(ItemElm).find(".divOrders_ItemCount").removeClass("floating-label-form-group-with-value");
  1216. $("#" + instance.g_VisibleContainerId).find(CartElm).find(".divOrders_ItemCount").removeClass("floating-label-form-group-with-value");
  1217. });
  1218. }
  1219. getInventoryDesign(ItemId, IsCart, SuggestedPacks = 0, RefItemIds) {
  1220. let instance = this;
  1221. let html = "";
  1222. let InvType = "", fltngclass_Cartons = "", fltngclass_Pieces = "", PP_Cartons = "", PP_Pieces = "", IsFocItem = false, DisableQuantityTxtBox = "", HideMinusPlusBtns = "";
  1223. if (SuggestedPacks != 0) {
  1224. PP_Cartons = SuggestedPacks.toString();
  1225. }
  1226. let CartItem_Index = -1;
  1227. CartItem_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds == RefItemIds);
  1228. let InventoryTypeId = instance._order.g_InventoryApplyType;
  1229. let CartItem = instance.g_CartItems_New[CartItem_Index];
  1230. if (CartItem != undefined) {
  1231. PP_Cartons = CartItem.Packs.toString();
  1232. PP_Pieces = CartItem.Pieces.toString();
  1233. IsFocItem = CartItem.IsFocItem;
  1234. if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1235. PP_Cartons = CartItem.Quantity.toString();
  1236. PP_Pieces = "0";
  1237. }
  1238. }
  1239. if (PP_Cartons == "0") {
  1240. PP_Cartons = "";
  1241. }
  1242. if (PP_Cartons != "") {
  1243. fltngclass_Cartons = "floating-label-form-group-with-value";
  1244. }
  1245. if (PP_Pieces == "0") {
  1246. PP_Pieces = "";
  1247. }
  1248. if (PP_Pieces != "") {
  1249. fltngclass_Pieces = "floating-label-form-group-with-value";
  1250. }
  1251. if (IsFocItem) {
  1252. DisableQuantityTxtBox = "disabled style='cursor:not-allowed'";
  1253. HideMinusPlusBtns = "hidden";
  1254. }
  1255. let IsEnablePacks = instance.g_IsEnablePacks, IsEnablePieces = instance.g_IsEnablePieces;
  1256. if (IsFocItem) {
  1257. InventoryTypeId = Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity;
  1258. IsEnablePacks = true;
  1259. IsEnablePieces = false;
  1260. }
  1261. if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs || InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces || InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.PacksAndPieces) {
  1262. if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces && !instance.g_IsEnablePacks) {
  1263. $("#" + instance.g_VisibleContainerId).find("#spn_picesTitle").removeClass("hidden").removeClass("col-sm-6").addClass("col-sm-12").removeClass("pr-90");
  1264. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").addClass("hidden").removeClass("pl-40");
  1265. $("#" + instance.g_VisibleContainerId).find(".ItemDetails").addClass("col-sm-8").removeClass("col-sm-6");
  1266. $("#" + instance.g_VisibleContainerId).find(".InventoryTypesTextboxes").addClass("col-sm-4").removeClass("col-sm-6");
  1267. }
  1268. else if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs && !instance.g_IsEnablePieces) {
  1269. $("#" + instance.g_VisibleContainerId).find("#spn_picesTitle").addClass("hidden").removeClass("pr-90");
  1270. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").removeClass("hidden").removeClass("col-sm-6").addClass("col-sm-12").removeClass("pl-40");
  1271. $("#" + instance.g_VisibleContainerId).find(".ItemDetails").addClass("col-sm-8").removeClass("col-sm-6");
  1272. $("#" + instance.g_VisibleContainerId).find(".InventoryTypesTextboxes").addClass("col-sm-4").removeClass("col-sm-6");
  1273. }
  1274. else if (instance.g_IsEnablePacks && instance.g_IsEnablePieces) {
  1275. $("#" + instance.g_VisibleContainerId).find("#spn_picesTitle").removeClass("hidden").removeClass("col-sm-12").addClass("col-sm-6").addClass("pr-90");
  1276. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").removeClass("hidden").removeClass("col-sm-12").addClass("col-sm-6").addClass("pl-40");
  1277. $("#" + instance.g_VisibleContainerId).find(".ItemDetails").removeClass("col-sm-8").addClass("col-sm-6");
  1278. $("#" + instance.g_VisibleContainerId).find(".InventoryTypesTextboxes").removeClass("col-sm-4").addClass("col-sm-6");
  1279. }
  1280. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").text("Cartons");
  1281. $("#" + instance.g_VisibleContainerId).find("#spn_picesTitle").text("Pieces");
  1282. }
  1283. else if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1284. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").text("Quantity");
  1285. $("#" + instance.g_VisibleContainerId).find("#spn_picesTitle").addClass("hidden");
  1286. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").removeClass("hidden").removeClass("col-sm-6").addClass("col-sm-12");
  1287. }
  1288. let cartItemQtyClass = "";
  1289. if (IsCart) {
  1290. cartItemQtyClass = "_editCartItemQuantity";
  1291. }
  1292. let IsShowPacks = "";
  1293. let IsShowPieces = "";
  1294. let PacksSize = "col-5";
  1295. let PiecesSize = "col-5";
  1296. if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1297. IsShowPieces = "hidden";
  1298. PacksSize = "col-10";
  1299. InvType = "Quantity";
  1300. }
  1301. else if (IsEnablePacks && !IsEnablePieces && InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs) {
  1302. IsShowPieces = "hidden";
  1303. PacksSize = "col-10";
  1304. InvType = "Cartons";
  1305. }
  1306. else if (!IsEnablePacks && IsEnablePieces) {
  1307. IsShowPacks = "hidden";
  1308. PiecesSize = "col-10";
  1309. InvType = "Cartons";
  1310. }
  1311. if ((IsEnablePacks && IsEnablePieces) && InventoryTypeId != Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1312. IsShowPacks = "";
  1313. IsShowPieces = "";
  1314. PacksSize = "col-5";
  1315. PiecesSize = "col-5";
  1316. InvType = "Cartons";
  1317. }
  1318. html += `<div class="col-sm-12 ` + cartItemQtyClass + `">
  1319. <div class="row">
  1320. <div class="col-1 input-group mt-20 ma-0 pa-0">
  1321. <span class="input-group-prepend">
  1322. <a href="javascript:;" class="input-group-addon btn quantity-minus" draggable="false"> <i class="fa fa-minus"></i></a>
  1323. </span>
  1324. </div>
  1325. <div class=" ` + PacksSize + ` ` + IsShowPacks + `">
  1326. <div class="floating-label-form-group defaultSelectedCartons divOrders_ItemCount ` + fltngclass_Cartons + `">
  1327. <label class="text-center">` + InvType + `</label>
  1328. <div class="input-group" id="div_Cartons">
  1329. <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 + `>
  1330. </div>
  1331. </div>
  1332. </div>
  1333. <div class="` + PiecesSize + ` ` + cartItemQtyClass + ` ` + IsShowPieces + `">
  1334. <div class="floating-label-form-group defaultSelectedPieces divOrders_ItemPieceCount ` + fltngclass_Pieces + `">
  1335. <label class="text-center">Pieces</label>
  1336. <div class="input-group" id="div_Pieces">
  1337. <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 + `>
  1338. </div>
  1339. </div>
  1340. </div>
  1341. <div class="col-1 input-group mt-20" style="margin-left:-30px">
  1342. <span class="input-group-append">
  1343. <a href="javascript:;" class="quantity-plus input-group-addon btn" draggable="false"><i class="fa fa-plus"></i></a>
  1344. </span>
  1345. </div>
  1346. </div>
  1347. </div>
  1348. </div>`;
  1349. return html;
  1350. }
  1351. getInventoryDesignWithTokens_PurchasePlan() {
  1352. let instance = this;
  1353. let html = "";
  1354. let InvType = "";
  1355. let InventoryTypeId = instance._order.g_InventoryApplyType;
  1356. let IsEnablePacks = instance.g_IsEnablePacks, IsEnablePieces = instance.g_IsEnablePieces;
  1357. if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs || InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces || InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.PacksAndPieces) {
  1358. if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces && !instance.g_IsEnablePacks) {
  1359. $("#" + instance.g_VisibleContainerId).find("#spn_picesTitle").removeClass("hidden").removeClass("col-sm-6").addClass("col-sm-12").removeClass("pr-90");
  1360. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").addClass("hidden").removeClass("pl-40");
  1361. $("#" + instance.g_VisibleContainerId).find(".ItemDetails").addClass("col-sm-8").removeClass("col-sm-6");
  1362. $("#" + instance.g_VisibleContainerId).find(".InventoryTypesTextboxes").addClass("col-sm-4").removeClass("col-sm-6");
  1363. }
  1364. else if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs && !instance.g_IsEnablePieces) {
  1365. $("#" + instance.g_VisibleContainerId).find("#spn_picesTitle").addClass("hidden").removeClass("pr-90");
  1366. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").removeClass("hidden").removeClass("col-sm-6").addClass("col-sm-12").removeClass("pl-40");
  1367. $("#" + instance.g_VisibleContainerId).find(".ItemDetails").addClass("col-sm-8").removeClass("col-sm-6");
  1368. $("#" + instance.g_VisibleContainerId).find(".InventoryTypesTextboxes").addClass("col-sm-4").removeClass("col-sm-6");
  1369. }
  1370. else if (instance.g_IsEnablePacks && instance.g_IsEnablePieces) {
  1371. $("#" + instance.g_VisibleContainerId).find("#spn_picesTitle").removeClass("hidden").removeClass("col-sm-12").addClass("col-sm-6").addClass("pr-90");
  1372. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").removeClass("hidden").removeClass("col-sm-12").addClass("col-sm-6").addClass("pl-40");
  1373. $("#" + instance.g_VisibleContainerId).find(".ItemDetails").removeClass("col-sm-8").addClass("col-sm-6");
  1374. $("#" + instance.g_VisibleContainerId).find(".InventoryTypesTextboxes").removeClass("col-sm-4").addClass("col-sm-6");
  1375. }
  1376. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").text("Cartons");
  1377. $("#" + instance.g_VisibleContainerId).find("#spn_picesTitle").text("Pieces");
  1378. }
  1379. else if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1380. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").text("Quantity");
  1381. $("#" + instance.g_VisibleContainerId).find("#spn_picesTitle").addClass("hidden");
  1382. $("#" + instance.g_VisibleContainerId).find("#spn_InventoryTitle").removeClass("hidden").removeClass("col-sm-6").addClass("col-sm-12");
  1383. }
  1384. if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1385. InvType = "Quantity";
  1386. }
  1387. else if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs) {
  1388. InvType = "Cartons";
  1389. }
  1390. else if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces) {
  1391. InvType = "Pieces";
  1392. }
  1393. if (IsEnablePacks && !IsEnablePieces) {
  1394. html += '<div class="col-sm-12">' +
  1395. '<div class="floating-label-form-group defaultSelectedCartons divOrders_ItemCount {{fltngclass_Cartons}}">' +
  1396. '<label class="text-center">' + InvType + '</label>' +
  1397. '<div class="input-group" id="div_Cartons">' +
  1398. '<span class="input-group-prepend">' +
  1399. '<a href="javascript:;" class="input-group-addon btn quantity-minus" draggable="false"><i class="fa fa-minus"></i></a>' +
  1400. '</span>' +
  1401. '<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}}>' +
  1402. '<span class="input-group-append">' +
  1403. '<a href="javascript:;" class="quantity-plus input-group-addon btn" draggable="false"><i class="fa fa-plus"></i></a>' +
  1404. '</span>' +
  1405. '</div>' +
  1406. '</div>' +
  1407. '</div>';
  1408. }
  1409. else if (!IsEnablePacks && IsEnablePieces) {
  1410. html += '<div class="col-sm-12">' +
  1411. '<div class="floating-label-form-group defaultSelectedPieces divOrders_ItemPieceCount {{fltngclass_Pieces}}">' +
  1412. '<label class="text-center">' + InvType + '</label>' +
  1413. '<div class="input-group" id="div_Pieces">' +
  1414. '<span class="input-group-prepend">' +
  1415. '<a href="javascript:;" class="input-group-addon btn quantity-minus" draggable="false"><i class="fa fa-minus"></i></a>' +
  1416. '</span>' +
  1417. '<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}}>' +
  1418. '<span class="input-group-append">' +
  1419. '<a href="javascript:;" class="quantity-plus input-group-addon btn" draggable="false"><i class="fa fa-plus"></i></a>' +
  1420. '</span>' +
  1421. '</div>' +
  1422. '</div>' +
  1423. '</div>';
  1424. }
  1425. if (IsEnablePacks && IsEnablePieces) {
  1426. html += '<div class="col-sm-12"><div class="row"><div class="col-6">' +
  1427. '<div class="floating-label-form-group defaultSelectedCartons divOrders_ItemCount {{fltngclass_Cartons}}">' +
  1428. '<label class="text-center pl-40">Cartons</label>' +
  1429. '<div class="input-group" id="div_Cartons">' +
  1430. '<span class="input-group-prepend">' +
  1431. '<a href="javascript:;" class="input-group-addon btn quantity-minus" draggable="false"><i class="fa fa-minus"></i></a>' +
  1432. '</span>' +
  1433. '<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}}>' +
  1434. '</div>' +
  1435. '</div>' +
  1436. ' </div>';
  1437. html +=
  1438. '<div class="col-6">' +
  1439. '<div class="floating-label-form-group defaultSelectedPieces divOrders_ItemPieceCount {{fltngclass_Pieces}}"> ' +
  1440. '<label class="text-center pr-20">Pieces</label>' +
  1441. '<div class="input-group" id="div_Pieces">' +
  1442. '<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}}>' +
  1443. '<span class="input-group-append">' +
  1444. '<a href="javascript:;" class="quantity-plus input-group-addon btn" draggable="false"><i class="fa fa-plus"></i></a>' +
  1445. '</span>' +
  1446. '</div>' +
  1447. '</div>' +
  1448. '</div>' +
  1449. '</div>' +
  1450. '</div>';
  1451. }
  1452. html += '</div>';
  1453. return html;
  1454. }
  1455. getItemFocus(element) {
  1456. let instance = this;
  1457. let FocusTxt = "";
  1458. let IsPacksFocus = false;
  1459. let IsPiecesFocus = false;
  1460. let ItemId = element.find(".hfOrder_ItemId").val();
  1461. let ItmIndex = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId);
  1462. if (ItmIndex != -1) {
  1463. IsPacksFocus = instance.g_CartItems_New[ItmIndex].IsPacksFocus;
  1464. IsPiecesFocus = instance.g_CartItems_New[ItmIndex].IsPiecesFocus;
  1465. }
  1466. else {
  1467. let packsClick = Number(element.find(".hfOrder_PacksFocus").val());
  1468. let piecesClick = Number(element.find(".hfOrder_PiecesFocus").val());
  1469. if (packsClick != 0 || piecesClick != 0) {
  1470. IsPacksFocus = Boolean(packsClick);
  1471. IsPiecesFocus = Boolean(piecesClick);
  1472. }
  1473. else {
  1474. let FocusTxt = instance.getDefaultFocusbyInventory(instance._order.g_InventoryApplyType, false);
  1475. if (FocusTxt == "Packs") {
  1476. IsPacksFocus = true;
  1477. }
  1478. else {
  1479. IsPiecesFocus = true;
  1480. }
  1481. }
  1482. }
  1483. if (IsPacksFocus) {
  1484. FocusTxt = "Packs";
  1485. }
  1486. else if (IsPiecesFocus) {
  1487. FocusTxt = "Pieces";
  1488. }
  1489. return FocusTxt;
  1490. }
  1491. getDefaultFocusbyInventory(InventoryTypeId, IsFocItem) {
  1492. let instance = this;
  1493. let FocusTxtbx = "Packs";
  1494. let IsEnablePacks = instance.g_IsEnablePacks, IsEnablePieces = instance.g_IsEnablePieces;
  1495. if (IsFocItem) {
  1496. InventoryTypeId = Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity;
  1497. IsEnablePacks = true;
  1498. IsEnablePieces = false;
  1499. }
  1500. if (InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1501. FocusTxtbx = "Packs";
  1502. }
  1503. else if (IsEnablePacks && !IsEnablePieces && InventoryTypeId == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs) {
  1504. FocusTxtbx = "Packs";
  1505. }
  1506. else if (!IsEnablePacks && IsEnablePieces) {
  1507. FocusTxtbx = "Pieces";
  1508. }
  1509. if ((IsEnablePacks && IsEnablePieces) && InventoryTypeId != Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1510. FocusTxtbx = "Packs";
  1511. }
  1512. return FocusTxtbx;
  1513. }
  1514. getItemDesign(res, FromWidget = false, IsCart = false) {
  1515. let instance = this;
  1516. let html = "";
  1517. let data = res;
  1518. let ItemId = data.ItemId;
  1519. let InventoryType = instance._order.g_InventoryApplyType;
  1520. let url = '';
  1521. let ItemImg = "";
  1522. let LoadedItemIndex = instance.g_LoadedItems.findIndex(x => x.ItemId == ItemId);
  1523. if (LoadedItemIndex != -1) {
  1524. url = instance.g_LoadedItems[LoadedItemIndex].ImageUrl;
  1525. if (url == "" || url == undefined || url == null) {
  1526. ItemImg = ``;
  1527. }
  1528. else {
  1529. ItemImg = `<img class="avatar" style="width:70px;height:70px;" onerror="ReloadImage(event)" data-dynamic="1" src="` + url + `">`;
  1530. }
  1531. }
  1532. else {
  1533. if (data.ImageUrl == "" || data.ImageUrl == undefined || data.ImageUrl == null) {
  1534. ItemImg = ``;
  1535. }
  1536. else {
  1537. url = data.ImageUrl;
  1538. ItemImg = `<img class="avatar" style="width:70px;height:70px;" onerror="ReloadImage(event)" data-dynamic="1" src="` + url + `">`;
  1539. }
  1540. }
  1541. let hidden = "";
  1542. let OrderQuantity = "";
  1543. let multiplevalue = "";
  1544. let Mod_UnitPrice = 0;
  1545. let Items_up = instance.g_ItemsUnitPrice_New.filter(x => x.ItemId == data.ItemId);
  1546. if (Items_up.length == 0) {
  1547. Mod_UnitPrice = data.UnitPrice;
  1548. instance.g_ItemsUnitPrice_New.push({
  1549. ItemId: ItemId,
  1550. UnitPrice: data.UnitPrice,
  1551. TaxRateAmount: data.TaxRateAmount
  1552. });
  1553. }
  1554. else {
  1555. Mod_UnitPrice = Items_up[0].UnitPrice;
  1556. }
  1557. if (instance._order.g_IsPurchasePlanning) {
  1558. if ((res.SuggestedPacks) != 0 && (res.SuggestedPacks) != null && (res.SuggestedPacks) != undefined) {
  1559. let unitprice = Number(Mod_UnitPrice);
  1560. let packCount = Number(data.PackCount);
  1561. let packSize = Number(data.PackSize);
  1562. let baseqty = packCount * packSize * res.SuggestedPacks;
  1563. OrderQuantity = " X " + (baseqty);
  1564. multiplevalue = " = " + (unitprice * baseqty);
  1565. }
  1566. }
  1567. let LiClass = "variant-item variant-addeditem variant-addeditem-" + ItemId;
  1568. let EditUnitPriceClass = 'editItemPriceAccordion_';
  1569. let AvailClass = "ItemAvailability";
  1570. let ExchangeClass = "chkItem_ExchangeDC_" + ItemId;
  1571. let HideDeleteBtn = "";
  1572. let RefItemIds = data.RefItemIds;
  1573. if (RefItemIds == undefined) {
  1574. RefItemIds = "";
  1575. }
  1576. if (IsCart) {
  1577. LiClass = "cartitem cartitem-" + ItemId;
  1578. EditUnitPriceClass = 'editCartItemPriceAccordion_';
  1579. AvailClass = "CartAvailability";
  1580. ExchangeClass = "chkCartItem_ExchangeDC_" + ItemId;
  1581. if (data.IsFocItem) {
  1582. HideDeleteBtn = "hidden";
  1583. if (RefItemIds != "") {
  1584. LiClass = "cartitem cartitem-" + ItemId + "-" + RefItemIds.replace(/,/g, "-");
  1585. }
  1586. }
  1587. }
  1588. else if (FromWidget) {
  1589. if (Bizgaze.Apps.Transact.Controls.AddOrderItems.Instance().g_Edit_OrderItemId > 0) {
  1590. HideDeleteBtn = "hidden";
  1591. }
  1592. if (RefItemIds != "") {
  1593. LiClass = "variant-item variant-addeditem variant-addeditem-" + ItemId + "-" + RefItemIds.replace(/,/g, "-");
  1594. }
  1595. }
  1596. html = '<li id="' + ItemId + '" class="list-group-item ' + LiClass + ' li no-border">' +
  1597. '<input type="hidden" class="hfOrder_ItemId" value="' + ItemId + '" />' +
  1598. '<input type="hidden" class="hfOrder_RefItemId" value="' + RefItemIds + '" />' +
  1599. '<input type="hidden" class="hfOrder_ItemName" value="' + data.ItemName + '" />' +
  1600. '<input type="hidden" class="hfOrder_ItemSKU" value="' + data.SKU + '" />' +
  1601. '<input type="hidden" class="hfOrder_PacksFocus" value="0" />' +
  1602. '<input type="hidden" class="hfOrder_PiecesFocus" value="0" />';
  1603. let DivClass = 'col-sm-8';
  1604. let InventoryTypeDivClass = 'col-sm-4';
  1605. if (instance.g_IsEnablePacks && instance.g_IsEnablePieces) {
  1606. DivClass = 'col-sm-6';
  1607. InventoryTypeDivClass = 'col-sm-6';
  1608. }
  1609. if (`${ItemImg}`.length == 0) {
  1610. html += `<div class="row position-relative">
  1611. <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>
  1612. <div class="ItemDetails ${DivClass} d-flex" id="ItemDetails">
  1613. <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>`;
  1614. }
  1615. else {
  1616. html += `<div class="row position-relative">
  1617. <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>
  1618. <div class="ItemDetails ${DivClass} d-flex" id="ItemDetails">
  1619. <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>`;
  1620. }
  1621. let deleteBtnHtml = '';
  1622. if (IsCart || FromWidget) {
  1623. 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>';
  1624. }
  1625. if (!instance._order.g_IsPurchasePlanning) {
  1626. if ($(window).width() < 768) {
  1627. 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">`;
  1628. }
  1629. else {
  1630. 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">`;
  1631. }
  1632. }
  1633. else {
  1634. 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"/>' +
  1635. '<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">';
  1636. }
  1637. if (data.IsOfferAvailable == true && (data.RefItemId == undefined || data.RefItemId == 0)) {
  1638. if (instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim && instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim) {
  1639. html += '<input type="hidden" class="IsOfferAvailableItem" value="true">';
  1640. 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>';
  1641. }
  1642. }
  1643. if (data.IsDefBoMAvailable) {
  1644. if (instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim && instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim) {
  1645. 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>';
  1646. }
  1647. }
  1648. if (data.IsBoMAvailable) {
  1649. if (instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim && instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim) {
  1650. 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>';
  1651. }
  1652. }
  1653. if (data.IsSpecialPrice && instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim && instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim)
  1654. html += '<span class="btn btn-xs up btn-outline-blue line-height-12 font-10 ml-2 btnItemSpecial ">SP</span>';
  1655. 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>';
  1656. html += '</span></div>';
  1657. if (data.PartNo != "" && data.PartNo != null) {
  1658. html += '<span class="font-weight-300 font-12">SKU : ' + data.SKU + '</span> <span class="font-weight-300"> ( ' + data.PartNo + ' )';
  1659. }
  1660. else {
  1661. html += '<span class="font-weight-300 font-12">SKU : ' + data.SKU;
  1662. }
  1663. if (instance._order.g_IsAdmin == 1 || instance._order.g_IsShowAvailability == 1) {
  1664. html += ', </span> ';
  1665. }
  1666. if (InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs || InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces || InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.PacksAndPieces) {
  1667. if (instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim && instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim) {
  1668. if (instance._order.g_IsAdmin == 1 || instance._order.g_IsShowAvailability == 1) {
  1669. if (instance._order.g_IsPurchasePlanning) {
  1670. 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/>`;
  1671. }
  1672. else {
  1673. if (InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces && !instance.g_IsEnablePacks) {
  1674. html += '<span class="font-12 ' + AvailClass + '">Avail : ' + data.TotalAvailablePieces + ' (' + data.AvailableQuantity + ') </span><span class="text-danger pull-right LessUnitPrice-error"></span>';
  1675. }
  1676. else {
  1677. html += '<span class="font-12 ' + AvailClass + '">Avail : ' + data.AvailablePacks + ' / ' + data.AvailablePieces + ' (' + data.AvailableQuantity + ') </span><span class="text-danger pull-right LessUnitPrice-error"></span>';
  1678. }
  1679. }
  1680. }
  1681. }
  1682. else {
  1683. html += '<span class="font-12 ' + AvailClass + '">Claim Avail : ' + data.AvailablePacks + ' / ' + data.AvailablePieces + ' (' + data.AvailableQuantity + ')</span>';
  1684. }
  1685. }
  1686. else if (InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1687. if (instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim && instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim) {
  1688. if (instance._order.g_IsAdmin == 1 || instance._order.g_IsShowAvailability == 1) {
  1689. if (instance._order.g_IsPurchasePlanning) {
  1690. 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/>';
  1691. }
  1692. else
  1693. html += '<span class="font-12 ' + AvailClass + '">Avail : ' + data.AvailableQuantity + '</span>';
  1694. }
  1695. }
  1696. else
  1697. html += '<span class="font-12 ' + AvailClass + '">Claim Avail : ' + data.AvailableQuantity + '</span>';
  1698. }
  1699. if (instance._order.g_IsPurchasePlanning) {
  1700. html += '<span class="block">MOQ : {{MinPacks}} | ROQ : {{ReorderPacks}} | Suggested : {{SuggestedPacks}} | Avg : {{AvgPacks}} </span>';
  1701. }
  1702. let Price_dataToggle = "";
  1703. if (instance._order.g_IsAdmin == 1 || instance._order.g_ShowPrice == 1) {
  1704. Price_dataToggle = `data-toggle="collapse"`;
  1705. }
  1706. instance.getPriceTypeValues(ItemId);
  1707. let compositeDecimalValue = 0;
  1708. let piecePriceDecimalValue = 0;
  1709. let compositePiecePriceDecimalvalue = 0;
  1710. let Item = instance.g_LoadedItems.find(x => x.ItemId == ItemId);
  1711. if (Item != undefined) {
  1712. compositeDecimalValue = Item.CompositePrice;
  1713. piecePriceDecimalValue = Item.PiecePrice;
  1714. compositePiecePriceDecimalvalue = Item.CompositePiecePrice;
  1715. }
  1716. html += '<br>';
  1717. let PriceTitle = instance.getPriceListTitle(ItemId);
  1718. if (instance.g_IsEnablePiecePrice) {
  1719. if (instance._order.g_IsPurchasePlanning && (res.SuggestedPacks) != 0 && (res.SuggestedPacks) != null && (res.SuggestedPacks) != undefined && Mod_UnitPrice != 0) {
  1720. 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>';
  1721. }
  1722. else
  1723. 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>';
  1724. }
  1725. else if (instance.g_IsEnableCompositePrice) {
  1726. if ((instance._order.g_IsPurchasePlanning && data.SuggestedPacks) != 0 && (data.SuggestedPacks) != null && (data.SuggestedPacks) != undefined && Mod_UnitPrice != 0) {
  1727. 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>';
  1728. }
  1729. else {
  1730. 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>';
  1731. }
  1732. }
  1733. else if (instance.g_IsEnableCompositePiecePrice) {
  1734. if (instance._order.g_IsPurchasePlanning && (data.SuggestedPacks) != 0 && (data.SuggestedPacks) != null && (data.SuggestedPacks) != undefined && Mod_UnitPrice != 0) {
  1735. 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>';
  1736. }
  1737. else
  1738. 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>';
  1739. }
  1740. else {
  1741. if (instance._order.g_IsPurchasePlanning && (res.SuggestedPacks) != 0 && (res.SuggestedPacks) != null && (res.SuggestedPacks) != undefined && Mod_UnitPrice != 0) {
  1742. 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>';
  1743. }
  1744. else {
  1745. let PointsorPrice = "Price";
  1746. if (instance._order.g_IsPointsOrder) {
  1747. PointsorPrice = "Points";
  1748. }
  1749. if (data.IsManualUOM && instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales) {
  1750. 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>';
  1751. }
  1752. else {
  1753. 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>';
  1754. }
  1755. }
  1756. }
  1757. html += '<div id="LeverageErrorTxt" class="text-warning hidden">Leverage % Exceeded</div><div class=" text-danger tax-error"></div>';
  1758. html += '</div>';
  1759. html += '</div>';
  1760. let SuggestedPacks = 0;
  1761. if (instance._order.g_IsPurchasePlanning) {
  1762. SuggestedPacks = res.SuggestedPacks;
  1763. }
  1764. html += '<div id="InventoryTypesTextboxes" class="InventoryTypesTextboxes ' + InventoryTypeDivClass + ' p-0">';
  1765. html += instance.getInventoryDesign(ItemId, IsCart, SuggestedPacks, RefItemIds);
  1766. html += '</div>';
  1767. let classclaim = "";
  1768. if (instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim || instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim) {
  1769. classclaim = "col-sm-7";
  1770. }
  1771. else {
  1772. classclaim = "col-sm-2";
  1773. }
  1774. let IsExpandItem = "";
  1775. if (instance._order.g_ExpandItemSettings && (instance._order.g_IsAdmin == 1 || instance._order.g_ShowPrice == 1)) {
  1776. IsExpandItem = "";
  1777. }
  1778. else {
  1779. IsExpandItem = "collapse";
  1780. }
  1781. html += '<div class="row card py-2 mt-2 mb-0 ' + IsExpandItem + '" id="' + EditUnitPriceClass + '' + ItemId + '">' +
  1782. '<div class="col-sm-12 p-0">' +
  1783. '<div class="input-group">' +
  1784. '<div class="col-sm-2">' +
  1785. '<div class="floating-label-form-group floating-label-form-group-with-value">';
  1786. 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>';
  1787. let offerDiscountClass = "";
  1788. if (data.IsOfferAvailable && data.IsOfferDiscountApplied && IsCart && !instance._order.g_IsManageOfferDiscount) {
  1789. offerDiscountClass = "readonly";
  1790. }
  1791. let IsDiscountHidden = "";
  1792. if (instance._order.g_IsPointsOrder) {
  1793. IsDiscountHidden = "hidden";
  1794. }
  1795. html += '</div>' +
  1796. '<div class="col-sm-2 ' + IsDiscountHidden + '">' +
  1797. '<div class="floating-label-form-group discountFloatLabels">' +
  1798. '<label>Discount</label>' +
  1799. '<div class="input-group">' +
  1800. '<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 + '>' +
  1801. '<div class="input-group-btn">' +
  1802. '<select class="btnOrder_DiscType mt-10 border-blue"><option value="2">Val</option><option value="1">%</option></select>' +
  1803. '</div>' +
  1804. '</div>' +
  1805. '</div>' +
  1806. '</div>';
  1807. if (instance.g_FromWidgetEditOrderItemId == 0) {
  1808. html += '<div class="' + classclaim + '">' +
  1809. '<div class="floating-label-form-group descriptionFloatLabels">' +
  1810. '<label>Description</label>' +
  1811. '<input type="text" id="txt_Description" class="form-control floating-label-control " data-isdynamic="false" placeholder="Description" data-placeholder="Description" data-label="Description">' +
  1812. '</div>' +
  1813. '</div>';
  1814. }
  1815. offerDiscountClass = "";
  1816. let IsItemExchangable = data.Discountable;
  1817. if (instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.SalesClaim && instance._order.g_OrderTypeId != Bizgaze.Apps.Transact.Enums.OrderType.PurchaseClaim) {
  1818. if ((instance._order.g_IsAdmin == 1 && IsItemExchangable) || (instance._order.g_IsShowExchangeDc == 1 && IsItemExchangable)) {
  1819. html += '<div class="col-sm-2 mt-40">' +
  1820. '<div class="custom-control custom-checkbox checkbox-primary">' +
  1821. '<input type="checkbox" class="custom-control-input chkItem_ExchangeDC" id="' + ExchangeClass + '">' +
  1822. '<label class="custom-control-label lbl_ExchangeDC_' + ItemId + '" for="' + ExchangeClass + '">Exchange</label>' +
  1823. '</div>' +
  1824. ' </div>';
  1825. }
  1826. }
  1827. let IsMultipleUOMs = data.IsMultipleUOMs;
  1828. let MultipleUOMs = data.MultipleUOMs;
  1829. if (IsMultipleUOMs) {
  1830. html += '<div id="div_MultipleUOMs_' + ItemId + '" class="div_MultipleUOMs floating-label-form-group-with-value col-sm-4" > ' +
  1831. '<label for= "lbl" id ="lbl_MultipleUOMs_' + ItemId + '"> UOM </label>';
  1832. 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">';
  1833. if (MultipleUOMs.length > 0) {
  1834. html += '<option value="1"> ' + MultipleUOMs[0].DefaultUnitName + ' ( Default Unit ) </option>';
  1835. }
  1836. else {
  1837. html += '<option value="1"> -- Select -- </option>';
  1838. }
  1839. for (var i = 0; i < MultipleUOMs.length; i++) {
  1840. let UOM = MultipleUOMs[i];
  1841. let Conversion = UOM.DefaultSize + " " + UOM.DefaultUnitName + " = " + UOM.AlternateSize + " " + UOM.AlternateUnitName;
  1842. html += '<option value="' + MultipleUOMs[i].SchemaDetailId + '">' + MultipleUOMs[i].AlternateUnitName + ' ( ' + Conversion + ' ) </option>';
  1843. }
  1844. html += '</div> </select>';
  1845. html += '<p class="mt-10 text-warning ItemConversion_' + ItemId + '"> </p>';
  1846. }
  1847. html += '</div>' +
  1848. '</div>';
  1849. html += ' </div>';
  1850. html += '</li>';
  1851. return html;
  1852. }
  1853. getItemDesignWithTokens_PurchasePlan() {
  1854. let instance = this;
  1855. let html = "";
  1856. let InventoryType = instance._order.g_InventoryApplyType;
  1857. html = '<li id="{{ItemId}}" class="list-group-item variant-item variant-addeditem variant-addeditem-{{ItemId}} li no-border">' +
  1858. '<input type="hidden" class="hfOrder_ItemId" value="{{ItemId}}" />' +
  1859. '<input type="hidden" class="hfOrder_RefItemId" value="{{RefItemIds}}" />' +
  1860. '<input type="hidden" class="hfOrder_ItemName" value="{{ItemName}}" />' +
  1861. '<input type="hidden" class="hfOrder_ItemSKU" value="{{SKU}}" />';
  1862. let DivClass = 'col-sm-8';
  1863. let InventoryTypeDivClass = 'col-sm-4';
  1864. if (instance.g_IsEnablePacks && instance.g_IsEnablePieces) {
  1865. DivClass = 'col-sm-6';
  1866. InventoryTypeDivClass = 'col-sm-6';
  1867. }
  1868. html += ' <div class="row">' +
  1869. '<div class="ItemDetails ' + DivClass + '" id="ItemDetails">' +
  1870. '<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>' +
  1871. '<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>';
  1872. 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}}/>' +
  1873. '<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>';
  1874. html += '<span>SKU : {{SKU}}';
  1875. if (instance._order.g_IsAdmin == 1 || instance._order.g_IsShowAvailability == 1) {
  1876. html += ', </span> ';
  1877. }
  1878. let InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId;
  1879. let InputParameters = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters;
  1880. let BranchId = Number(InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_branchid").Value);
  1881. if (InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs || InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces || InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.PacksAndPieces) {
  1882. if (instance._order.g_IsAdmin == 1 || instance._order.g_IsShowAvailability == 1) {
  1883. 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/>`;
  1884. }
  1885. }
  1886. else if (InventoryType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1887. if (instance._order.g_IsAdmin == 1 || instance._order.g_IsShowAvailability == 1) {
  1888. 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/>';
  1889. }
  1890. }
  1891. html += '<span class="block">Saftey Stock : {{MinPacks}} | Suggested : {{SuggestedPacks}} | Avg : {{AvgPacks}} </span>';
  1892. let Price_dataToggle = "";
  1893. if (instance._order.g_IsAdmin == 1 || instance._order.g_ShowPrice == 1) {
  1894. Price_dataToggle = `data-toggle="collapse"`;
  1895. }
  1896. html += '<br>';
  1897. 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>';
  1898. html += '<div id="LeverageErrorTxt" class="text-warning hidden font-10 ">Leverage % Exceeded</div>';
  1899. html += '</div>';
  1900. html += '<div id="InventoryTypesTextboxes" class="InventoryTypesTextboxes ' + InventoryTypeDivClass + '">';
  1901. html += instance.getInventoryDesignWithTokens_PurchasePlan();
  1902. html += '</div>';
  1903. html += '<div class="row collapse card py-2 mt-2 mb-0 " id="editItemPriceAccordion_{{ItemId}}">' +
  1904. '<div class="col-sm-12">' +
  1905. '<div class="input-group">' +
  1906. '<div class="col-sm-2">' +
  1907. '<div class="floating-label-form-group floating-label-form-group-with-value">';
  1908. 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>';
  1909. html += '</div>' +
  1910. '<div class="col-sm-2">' +
  1911. '<div class="floating-label-form-group discountFloatLabels floating-label-form-group-with-value">' +
  1912. '<label>Discount</label>' +
  1913. '<div class="input-group">' +
  1914. '<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}}>' +
  1915. '<div class="input-group-btn">' +
  1916. '<select class="btnOrder_DiscType mt-10 border-blue"><option value="2">Val</option><option value="1">%</option></select>' +
  1917. '</div>' +
  1918. '</div>' +
  1919. '</div>' +
  1920. '</div>' +
  1921. '<div class="col-sm-2">' +
  1922. '<div class="floating-label-form-group descriptionFloatLabels">' +
  1923. '<label>Description</label>' +
  1924. '<input type="text" id="txt_Description" class="form-control floating-label-control " data-isdynamic="false" placeholder="Description" data-placeholder="Description" data-label="Description">' +
  1925. '</div>' +
  1926. '</div>';
  1927. html += '</div>' +
  1928. ' </div>' +
  1929. ' </div>';
  1930. html += '</li>';
  1931. return html;
  1932. }
  1933. getManualUOMDesign(Itm) {
  1934. 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">
  1935. <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">`;
  1936. for (let i = 0; i < Itm.UOMs.length; i++) {
  1937. let Selected = "";
  1938. if (Itm.UOMs[i].UnitId == Itm.UOMSchemaId) {
  1939. Selected = "selected";
  1940. }
  1941. html += `<option value="` + Itm.UOMs[i].UnitId + `" ` + Selected + `>` + Itm.UOMs[i].UnitName + `</option>`;
  1942. }
  1943. html += `</select>`;
  1944. return html;
  1945. }
  1946. bindManualUOMData(elem, Itm, AmountWithDiscount) {
  1947. let instance = this;
  1948. $("#" + instance.g_VisibleContainerId).find(elem).find(".ManualUOM_" + Itm.ItemId).removeClass("hidden");
  1949. $("#" + instance.g_VisibleContainerId).find(elem).find(".ManualUOM_RowTotal").removeClass("hidden").text(" = " + AmountWithDiscount);
  1950. $("#" + instance.g_VisibleContainerId).find(elem).find("#txt_ManualConversionQty").val(Itm.ConversionQuantity);
  1951. $("#" + instance.g_VisibleContainerId).find(elem).find(".dropdown_ManualUOMs").val(Itm.SelectedUnitId);
  1952. }
  1953. updateItemsDesign(elem, evnt, IsCart = false, IsFocItem = false) {
  1954. let instance = this;
  1955. if (elem.length != 0) {
  1956. let ItemId = $("#" + instance.g_VisibleContainerId).find(elem).find(".hfOrder_ItemId").val();
  1957. let RefItemIds = $("#" + instance.g_VisibleContainerId).find(elem).find(".hfOrder_RefItemId").val();
  1958. let CartItem_Index = -1;
  1959. if (IsFocItem) {
  1960. CartItem_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds == RefItemIds);
  1961. }
  1962. else {
  1963. CartItem_Index = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId && x.RefItemIds == "");
  1964. }
  1965. let Itm = instance.g_CartItems_New[CartItem_Index];
  1966. if (Itm == undefined) {
  1967. return false;
  1968. }
  1969. Itm.UnitPrice = Math.abs(Itm.UnitPrice);
  1970. Itm.UnitPriceWithOutTax = Math.abs(Itm.UnitPriceWithOutTax);
  1971. let UnitPrice = Itm.UnitPrice;
  1972. let UnitName = Itm.UnitName;
  1973. let pricelabel = "Price";
  1974. if (instance._order.g_IsPointsOrder) {
  1975. pricelabel = "Points";
  1976. }
  1977. if (instance.g_IsEnablePiecePrice)
  1978. pricelabel = "Piece Price";
  1979. if (instance.g_IsEnableCompositePrice) {
  1980. pricelabel = "Comp. Price";
  1981. }
  1982. if (instance.g_IsEnableCompositePiecePrice) {
  1983. pricelabel = "Comp. Piece Price";
  1984. }
  1985. $("#" + instance.g_VisibleContainerId).find(".sp_PriceType").text(pricelabel + " : ");
  1986. $("#" + instance.g_VisibleContainerId).find(".sp_PriceType").addClass("font-12");
  1987. 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";
  1988. if (IsCart) {
  1989. Cond = !$("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").is(":visible") || evnt == "EditFocItem" || evnt == "AddFocItem_IsOfferDiscountApplied" || evnt == "EditFocItem_IsOfferDiscountApplied" || instance._order.g_IsSC_to_PC;
  1990. }
  1991. if (Cond) {
  1992. let Cartons = Itm.Quantity;
  1993. if (instance._order.g_InventoryApplyType != Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  1994. Cartons = Itm.Packs;
  1995. }
  1996. $("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemCount").val(Cartons);
  1997. $("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemPieceCount").val(Itm.Pieces);
  1998. $("#" + instance.g_VisibleContainerId).find(elem).find("#txt_editItemPrice").val(Itm.UnitPriceWithOutTax);
  1999. $("#" + instance.g_VisibleContainerId).find(elem).find(".btnOrder_DiscType").val(Itm.DiscountType);
  2000. let Discount = Itm.DiscountValue == 0 ? Itm.DiscountPercent : Itm.DiscountValue;
  2001. if (Discount == 0) {
  2002. $("#" + instance.g_VisibleContainerId).find(elem).find("#Ord_txtdiscount").val("");
  2003. }
  2004. else {
  2005. $("#" + instance.g_VisibleContainerId).find(elem).find("#Ord_txtdiscount").val(Discount);
  2006. }
  2007. }
  2008. if (Itm.Description != "" && Itm.Description != null) {
  2009. if (instance.g_FromWidgetEditOrderItemId > 0) {
  2010. $("#" + instance.g_VisibleContainerId).find("#txt_Description").val(Itm.Description);
  2011. }
  2012. else {
  2013. $("#" + instance.g_VisibleContainerId).find(elem).find("#txt_Description").val(Itm.Description);
  2014. }
  2015. $("#" + instance.g_VisibleContainerId).find(elem).find(".descriptionFloatLabels").addClass("floating-label-form-group-with-value");
  2016. }
  2017. if (Itm.Packs > 0) {
  2018. $("#" + instance.g_VisibleContainerId).find(elem).find(".defaultSelectedCartons").addClass("floating-label-form-group-with-value");
  2019. }
  2020. if (Itm.Pieces > 0) {
  2021. $("#" + instance.g_VisibleContainerId).find(elem).find(".defaultSelectedPieces").addClass("floating-label-form-group-with-value");
  2022. }
  2023. $("#" + instance.g_VisibleContainerId).find(elem).find(".CompositePriceCalBreak").html('');
  2024. if (Itm.ExchangeDC) {
  2025. $("#" + instance.g_VisibleContainerId).find(elem).find(".chkItem_ExchangeDC").prop("checked", true);
  2026. }
  2027. else {
  2028. $("#" + instance.g_VisibleContainerId).find(elem).find(".chkItem_ExchangeDC").prop("checked", false);
  2029. }
  2030. let ItemIndex = $("#" + instance.g_VisibleContainerId).find(elem).attr("class").toString().indexOf("variant-addeditem-" + Itm.ItemId);
  2031. if ((Itm.IsOfferAvailable && Itm.IsOfferDiscountApplied && IsCart && ItemIndex == -1 && !instance._order.g_IsManageOfferDiscount) || (Itm.ExchangeDC)) {
  2032. $("#" + instance.g_VisibleContainerId).find(elem).find("#Ord_txtdiscount").attr("disabled", "disabled").css("cursor", "not-allowed");
  2033. $("#" + instance.g_VisibleContainerId).find(elem).find(".btnOrder_DiscType").attr("disabled", "disabled").css("cursor", "not-allowed");
  2034. }
  2035. else {
  2036. $("#" + instance.g_VisibleContainerId).find(elem).find("#Ord_txtdiscount").removeAttr("disabled").removeAttr("style");
  2037. $("#" + instance.g_VisibleContainerId).find(elem).find(".btnOrder_DiscType").removeAttr("disabled").removeAttr("style");
  2038. }
  2039. if (Itm.IsMultipleUOMs) {
  2040. $("#" + instance.g_VisibleContainerId).find(elem).find("#ddl_MultipleUOMs_" + ItemId).val(Itm.SelectedUnitId);
  2041. if (Itm.SelectedUnitId != 1 && Itm.SelectedUnitId != 0) {
  2042. let UOM = Itm.MultipleUOMs.find(x => x.SchemaDetailId == Itm.SelectedUnitId);
  2043. let Conversion = UOM.DefaultSize + " " + UOM.DefaultUnitName + " = " + UOM.AlternateSize + " " + UOM.AlternateUnitName;
  2044. $("#" + instance.g_VisibleContainerId).find(".ItemConversion_" + Itm.ItemId).text(Conversion);
  2045. UnitName = Itm.SelectedUnitName;
  2046. }
  2047. else {
  2048. $("#" + instance.g_VisibleContainerId).find(".ItemConversion_" + Itm.ItemId).text("");
  2049. }
  2050. }
  2051. if (IsCart) {
  2052. if (Itm.ExchangeDC) {
  2053. UnitPrice = -Itm.UnitPrice;
  2054. let ItemName = Itm.ItemName + " (Exchange) ";
  2055. $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId).find(".CartItemName").html(ItemName);
  2056. $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId).find(".CartItemName").append("<input type='checkbox' class='divAfterTax' checked/> After Tax");
  2057. }
  2058. else {
  2059. $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId).find(".CartItemName").html(Itm.ItemName);
  2060. $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId).find(".CartItemName").find(".divAfterTax").remove();
  2061. }
  2062. }
  2063. if (instance.g_FromWidget) {
  2064. if (Itm.ExchangeDC) {
  2065. UnitPrice = -Itm.UnitPrice;
  2066. let ItemName = Itm.ItemName + " (Exchange) ";
  2067. $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + ItemId).find(".CartItemName").html(ItemName);
  2068. $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + ItemId).find(".CartItemName").append("<input type='checkbox' class='divAfterTax' checked/> After Tax");
  2069. }
  2070. else {
  2071. $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + ItemId).find(".CartItemName").html(Itm.ItemName);
  2072. $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + ItemId).find(".CartItemName").find(".divAfterTax").remove();
  2073. }
  2074. }
  2075. let _quantity = instance.roundOffIgnoreZerosAfterDecimal(Itm.BaseQty);
  2076. if (Itm.IsMultipleUOMs && Itm.ConversionQuantity > 0) {
  2077. _quantity = Itm.ConversionQuantity;
  2078. }
  2079. let AmountWithDiscount = instance.roundOffIgnoreZerosAfterDecimal(Number(Itm.AmountWithDiscount));
  2080. if (Itm.Packs == 0 && Itm.Pieces == 0 && Itm.Quantity == 0) {
  2081. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text(Itm.UnitPrice).css({ 'text-decoration': 'underline', 'color': '#5ba8fb' });
  2082. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text("");
  2083. $("#" + instance.g_VisibleContainerId).find(elem).find(".chk_PurPlanItem").prop("checked", false).attr("disabled", "true");
  2084. }
  2085. else {
  2086. $("#" + instance.g_VisibleContainerId).find(elem).find(".chk_PurPlanItem").prop("checked", true).removeAttr("disabled");
  2087. if (Itm.DiscountValue > 0) {
  2088. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text("(" + Itm.UnitPrice).css({ 'text-decoration': 'underline', 'color': '#5ba8fb' });
  2089. if (Itm.IsManualUOM && instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales) {
  2090. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(" - " + Number(Itm.DiscountValue) + ") X ");
  2091. instance.bindManualUOMData(elem, Itm, AmountWithDiscount);
  2092. }
  2093. else {
  2094. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(" - " + Number(Itm.DiscountValue) + ") X " + _quantity + '(' + UnitName + ')' + " = " + AmountWithDiscount);
  2095. }
  2096. $("#" + instance.g_VisibleContainerId).find(elem).find(".discountFloatLabels").addClass("floating-label-form-group-with-value");
  2097. }
  2098. else if (Itm.DiscountPercent > 0) {
  2099. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text("(" + Itm.UnitPrice).css({ 'text-decoration': 'underline', 'color': '#5ba8fb' });
  2100. if (Itm.IsManualUOM && instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales) {
  2101. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(" - " + Number(Itm.DiscountPercent) + "%) X ");
  2102. instance.bindManualUOMData(elem, Itm, AmountWithDiscount);
  2103. }
  2104. else {
  2105. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(" - " + Number(Itm.DiscountPercent) + "%) X " + _quantity + '(' + UnitName + ')' + " = " + AmountWithDiscount);
  2106. }
  2107. $("#" + instance.g_VisibleContainerId).find(elem).find(".discountFloatLabels").addClass("floating-label-form-group-with-value");
  2108. }
  2109. else {
  2110. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text(Number(UnitPrice)).css({
  2111. 'text-decoration': 'underline', 'color': '#5ba8fb'
  2112. });
  2113. if (Itm.IsManualUOM && instance._order.g_OrderTypeId == Bizgaze.Apps.Transact.Enums.OrderType.Sales) {
  2114. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(" X ");
  2115. instance.bindManualUOMData(elem, Itm, AmountWithDiscount);
  2116. }
  2117. else {
  2118. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(" X " + _quantity + '(' + UnitName + ')' + " = " + AmountWithDiscount);
  2119. }
  2120. $("#" + instance.g_VisibleContainerId).find(elem).find(".discountFloatLabels").removeClass("floating-label-form-group-with-value");
  2121. }
  2122. }
  2123. if (Itm.IsFocItem) {
  2124. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").removeAttr("style").removeAttr("data-toggle").removeAttr("data-collapse").attr("disabled", "true").css("cursor", "not-allowed");
  2125. $("#" + instance.g_VisibleContainerId).find(elem).find(".focBadge").removeClass("hidden");
  2126. $("#" + instance.g_VisibleContainerId).find(elem).find("#FocBadgeSKU").text(Itm.RefItemSKUs);
  2127. }
  2128. $("#" + instance.g_VisibleContainerId).find(elem).find("#DiscountOpenBracket").addClass("hidden");
  2129. instance.getPriceTypeValues(ItemId, Itm.Packs, Itm.Pieces);
  2130. let PiecePrice = instance.roundOffIgnoreZerosAfterDecimal(Itm.PiecePrice);
  2131. let CompositePrice = instance.roundOffIgnoreZerosAfterDecimal(Itm.CompositePrice);
  2132. let CompositePiecePrice = instance.roundOffIgnoreZerosAfterDecimal(Itm.CompositePiecePrice);
  2133. if (instance.g_IsEnablePiecePrice) {
  2134. let TotalPieces = (Itm.Packs * Itm.PackCount) + Itm.Pieces;
  2135. if (TotalPieces == 0) {
  2136. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text(PiecePrice);
  2137. }
  2138. else {
  2139. if (Itm.DiscountValue == 0 && Itm.DiscountPercent == 0) {
  2140. let RowTotal = PiecePrice * TotalPieces;
  2141. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text(PiecePrice);
  2142. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(' X ' + TotalPieces + ' Pieces = ' + RowTotal);
  2143. }
  2144. else if (Itm.DiscountValue > 0) {
  2145. let DiscountAmount = Itm.DiscountValue * Itm.PackSize;
  2146. let RowTotal = (PiecePrice - DiscountAmount) * TotalPieces;
  2147. $("#" + instance.g_VisibleContainerId).find(elem).find("#DiscountOpenBracket").removeClass("hidden").text('(');
  2148. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text(PiecePrice);
  2149. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(' - ' + DiscountAmount + ') X ' + TotalPieces + ' Pieces = ' + RowTotal);
  2150. }
  2151. else if (Itm.DiscountPercent > 0) {
  2152. let DiscountAmount = (PiecePrice * Itm.DiscountPercent) / 100;
  2153. let RowTotal = (PiecePrice - DiscountAmount) * TotalPieces;
  2154. $("#" + instance.g_VisibleContainerId).find(elem).find("#DiscountOpenBracket").removeClass("hidden");
  2155. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text(PiecePrice);
  2156. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(' - ' + Itm.DiscountPercent + '%) X ' + TotalPieces + ' Pieces = ' + RowTotal);
  2157. }
  2158. }
  2159. }
  2160. if (instance.g_IsEnableCompositePrice) {
  2161. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text(CompositePrice);
  2162. if (_quantity > 0) {
  2163. if (Itm.DiscountValue == 0 && Itm.DiscountPercent == 0) {
  2164. let RowTotal = instance.roundOffIgnoreZerosAfterDecimal(CompositePrice * _quantity);
  2165. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(' X ' + _quantity + ' ' + UnitName + ' = ' + RowTotal);
  2166. }
  2167. else if (Itm.DiscountValue > 0) {
  2168. let DiscountAmount = Itm.DiscountValue * _quantity;
  2169. let RowTotal = (Itm.UnitPriceWithOutTax * _quantity) - DiscountAmount;
  2170. let AmountWithTax = instance.getAmountWithTax(Itm.ItemId, RowTotal).split('|');
  2171. let RowTotalWithTax = instance.roundOffIgnoreZerosAfterDecimal(AmountWithTax[0]);
  2172. let RowTax = AmountWithTax[1];
  2173. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text('(' + Itm.UnitPriceWithOutTax);
  2174. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(' - ' + Itm.DiscountValue + ') X ' + _quantity + ' ' + UnitName + ' + (' + RowTax + ') = ' + RowTotalWithTax);
  2175. }
  2176. else if (Itm.DiscountPercent > 0) {
  2177. let Amount = (Itm.BaseQty * Itm.UnitPriceWithOutTax);
  2178. let DiscountAmount = (Amount * Itm.DiscountPercent) / 100;
  2179. let RowTotal = (Itm.UnitPriceWithOutTax * _quantity) - DiscountAmount;
  2180. let AmountWithTax = instance.getAmountWithTax(Itm.ItemId, RowTotal).split('|');
  2181. let RowTotalWithTax = instance.roundOffIgnoreZerosAfterDecimal(AmountWithTax[0]);
  2182. let RowTax = AmountWithTax[1];
  2183. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text('(' + Itm.UnitPriceWithOutTax);
  2184. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(' - ' + Itm.DiscountPercent + '%) X ' + _quantity + ' ' + UnitName + ' + (' + RowTax + ') = ' + RowTotalWithTax);
  2185. }
  2186. }
  2187. }
  2188. if (instance.g_IsEnableCompositePiecePrice) {
  2189. let CompositePiecePrice = instance.roundOffIgnoreZerosAfterDecimal(Itm.CompositePiecePrice);
  2190. let PiecePrice = instance.roundOffIgnoreZerosAfterDecimal(Itm.PiecePrice);
  2191. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text(CompositePiecePrice);
  2192. if (_quantity > 0) {
  2193. if (Itm.DiscountValue == 0 && Itm.DiscountPercent == 0) {
  2194. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(' (' + _quantity + ' ' + UnitName + ')');
  2195. }
  2196. else if (Itm.DiscountValue > 0) {
  2197. let DiscountAmount = Itm.DiscountValue * _quantity;
  2198. let RowTotal = PiecePrice - DiscountAmount;
  2199. let AmountWithTax = instance.getAmountWithTax(Itm.ItemId, RowTotal).split('|');
  2200. let RowTotalWithTax = instance.roundOffIgnoreZerosAfterDecimal(AmountWithTax[0]);
  2201. let RowTax = AmountWithTax[1];
  2202. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text('(' + Itm.UnitPriceWithOutTax);
  2203. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(' - ' + Itm.DiscountValue + ') X ' + _quantity + ' ' + UnitName + ' + (' + RowTax + ') = ' + RowTotalWithTax);
  2204. }
  2205. else if (Itm.DiscountPercent > 0) {
  2206. let Amount = (Itm.BaseQty * Itm.UnitPriceWithOutTax);
  2207. let DiscountAmount = (Amount * Itm.DiscountPercent) / 100;
  2208. let RowTotal = PiecePrice - DiscountAmount;
  2209. let AmountWithTax = instance.getAmountWithTax(Itm.ItemId, RowTotal).split('|');
  2210. let RowTotalWithTax = instance.roundOffIgnoreZerosAfterDecimal(AmountWithTax[0]);
  2211. let RowTax = AmountWithTax[1];
  2212. $("#" + instance.g_VisibleContainerId).find(elem).find(".editItemPrice").text('(' + Itm.UnitPriceWithOutTax);
  2213. $("#" + instance.g_VisibleContainerId).find(elem).find("#QuantityAndDiscountSpan").text(' - ' + Itm.DiscountPercent + '%) X ' + _quantity + ' ' + UnitName + ' + (' + RowTax + ') = ' + RowTotalWithTax);
  2214. }
  2215. }
  2216. }
  2217. if (evnt == "RefreshAllItems_InventoryClickEvents" || evnt == "FromWidget") {
  2218. let html = instance.getInventoryDesign(ItemId, IsCart, 0, Itm.RefItemIds);
  2219. $("#" + instance.g_VisibleContainerId).find(elem).find("#InventoryTypesTextboxes").html(html);
  2220. instance.allItemEvents(elem);
  2221. }
  2222. if (instance._order.g_ExpandItemSettings && (instance._order.g_IsAdmin == 1 || instance._order.g_ShowPrice == 1)) {
  2223. $("#editItemPriceAccordion_" + ItemId).removeClass("collapse");
  2224. }
  2225. else {
  2226. $("#editItemPriceAccordion_" + ItemId).addClass("collapse");
  2227. }
  2228. instance.checkErrors();
  2229. instance.checkLoyalityErrors(elem);
  2230. Bizgaze.Apps.Transact.Controls.CartDetails.Instance().hideUnUsedCategories();
  2231. }
  2232. }
  2233. updateItemsAvailability(res) {
  2234. let instance = this;
  2235. let Items = $("#" + instance.g_VisibleContainerId).find(".variant-list").find("li");
  2236. for (let i = 0; i < Items.length; i++) {
  2237. let elem = Items[i];
  2238. let ItemId = $("#" + instance.g_VisibleContainerId).find(elem).find(".hfOrder_ItemId").val();
  2239. if (ItemId > 0) {
  2240. let data = res.find(x => x.ItemId == ItemId);
  2241. $("#" + instance.g_VisibleContainerId).find(elem).find(".ItemAvailability").text('Avail : ' + data.AvailablePacks + ' / ' + data.AvailablePieces + ' (' + data.AvailableQuantity + ')');
  2242. }
  2243. }
  2244. let CartItems = $("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").find("li");
  2245. for (let c = 0; c < CartItems.length; c++) {
  2246. let elem = CartItems[c];
  2247. let ItemId = $("#" + instance.g_VisibleContainerId).find(elem).find(".hfOrder_ItemId").val();
  2248. if (ItemId > 0) {
  2249. let data = res.find(x => x.ItemId == ItemId);
  2250. $("#" + instance.g_VisibleContainerId).find(elem).find(".CartAvailability").text('Avail : ' + data.AvailablePacks + ' / ' + data.AvailablePieces + ' (' + data.AvailableQuantity + ')');
  2251. }
  2252. }
  2253. }
  2254. allItemEvents(elem) {
  2255. let instance = this;
  2256. let timer;
  2257. if (instance._order.g_IsSC_to_PC && !instance._order.g_IsFromPurchaseIndent) {
  2258. $("#" + instance.g_VisibleContainerId).find(elem).find(".quantity-plus").addClass("disabled");
  2259. $("#" + instance.g_VisibleContainerId).find(elem).find("#div_Cartons").find(".input-group-append").css("cursor", "not-allowed");
  2260. }
  2261. $("#" + instance.g_VisibleContainerId).find(".mouseHoverClass").hover(function () {
  2262. $("#" + instance.g_VisibleContainerId).find(this).closest(".variant-item").find('.mouseHoverClass').css({ 'font-weight': '' });
  2263. }, function () { $("#" + instance.g_VisibleContainerId).find(this).closest(".variant-item").find('.mouseHoverClass').css({ 'font-weight': '' }); });
  2264. $("#" + instance.g_VisibleContainerId).find(elem).find(".chk_PurPlanItem").unbind().click(function () {
  2265. let element = elem;
  2266. let ItemId = element.find(".hfOrder_ItemId").val();
  2267. if ($("#" + instance.g_VisibleContainerId).find(this).is(':checked')) {
  2268. instance.updateItemsArray(element, "PurPlan");
  2269. }
  2270. else {
  2271. instance.deleteCartItems(ItemId);
  2272. $("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").find(".cartitem-" + ItemId).remove();
  2273. }
  2274. });
  2275. $("#" + instance.g_VisibleContainerId).find(".editCartItemQuantity").unbind().click(function () {
  2276. let element = elem;
  2277. element.find("._editCartItemQuantity").toggleClass("hidden");
  2278. element.find(".editCartItemQuantity").toggleClass("hidden");
  2279. element.find(".CartAvailability").toggleClass("hidden");
  2280. });
  2281. $("#" + instance.g_VisibleContainerId).find(elem).find('.txtOrder_ItemCount').unbind().click(function () {
  2282. let ItemId = elem.find(".hfOrder_ItemId").val();
  2283. let ItmIndex = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId);
  2284. if (ItmIndex != -1) {
  2285. instance.g_CartItems_New[ItmIndex].IsPacksFocus = true;
  2286. instance.g_CartItems_New[ItmIndex].IsPiecesFocus = false;
  2287. }
  2288. else {
  2289. $("#" + instance.g_VisibleContainerId).find(elem).find(".hfOrder_PacksFocus").val(1);
  2290. $("#" + instance.g_VisibleContainerId).find(elem).find(".hfOrder_PiecesFocus").val(0);
  2291. }
  2292. });
  2293. $("#" + instance.g_VisibleContainerId).find(elem).find('.txtOrder_ItemPieceCount').unbind().click(function () {
  2294. let ItemId = elem.find(".hfOrder_ItemId").val();
  2295. let ItmIndex = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId);
  2296. if (ItmIndex != -1) {
  2297. instance.g_CartItems_New[ItmIndex].IsPacksFocus = false;
  2298. instance.g_CartItems_New[ItmIndex].IsPiecesFocus = true;
  2299. }
  2300. else {
  2301. $("#" + instance.g_VisibleContainerId).find(elem).find(".hfOrder_PacksFocus").val(0);
  2302. $("#" + instance.g_VisibleContainerId).find(elem).find(".hfOrder_PiecesFocus").val(1);
  2303. }
  2304. });
  2305. $("#" + instance.g_VisibleContainerId).find(elem).find(".txteditItemPrice").unbind().keyup(function () {
  2306. clearTimeout(timer);
  2307. timer = setTimeout(function () {
  2308. let element = elem;
  2309. instance.updateItemsArray(element, "UnitPrice");
  2310. }, 300);
  2311. });
  2312. $("#" + instance.g_VisibleContainerId).find(elem).find("#txt_ManualConversionQty").unbind().keyup(function () {
  2313. clearTimeout(timer);
  2314. timer = setTimeout(function () {
  2315. let element = elem;
  2316. instance.updateItemsArray(element, "ManualConversionQty");
  2317. }, 300);
  2318. });
  2319. $("#" + instance.g_VisibleContainerId).find(elem).find(".dropdown_ManualUOMs").unbind().change(function () {
  2320. let element = elem;
  2321. let ItemId = element.find(".hfOrder_ItemId").val();
  2322. let ItmIndex = instance.g_CartItems_New.findIndex(x => x.ItemId == ItemId);
  2323. if (ItmIndex != -1) {
  2324. let SelectedUnitId = Number($("#" + instance.g_VisibleContainerId).find(elem).find(".dropdown_ManualUOMs").val());
  2325. let SelectedUnitName = $("#" + instance.g_VisibleContainerId).find(elem).find(".dropdown_ManualUOMs option:selected").text();
  2326. instance.g_CartItems_New[ItmIndex].SelectedUnitId = SelectedUnitId;
  2327. instance.g_CartItems_New[ItmIndex].SelectedUnitName = SelectedUnitName;
  2328. $("#ulOrder_Cart").find("#ddl_ManualUOMs_" + ItemId).val(SelectedUnitId);
  2329. }
  2330. });
  2331. $("#" + instance.g_VisibleContainerId).find(elem).find(".quantity-plus").unbind().click(function () {
  2332. let element = elem;
  2333. let Packs = Number(element.find(".txtOrder_ItemCount").val());
  2334. let Pieces = 0;
  2335. if (instance.g_IsEnablePieces) {
  2336. Pieces = Number(element.find(".txtOrder_ItemPieceCount").val());
  2337. }
  2338. let IsPacksFocus = false;
  2339. let IsPiecesFocus = false;
  2340. let FocusTxt = instance.getItemFocus(element);
  2341. if (FocusTxt == "Packs") {
  2342. IsPacksFocus = true;
  2343. }
  2344. else {
  2345. IsPiecesFocus = true;
  2346. }
  2347. if (IsPacksFocus) {
  2348. if (element.find("#txt_Pieces").val() == 0) {
  2349. element.find('.divOrders_ItemPieceCount').removeClass('floating-label-form-group-with-value');
  2350. }
  2351. element.find('.divOrders_ItemCount').addClass('floating-label-form-group-with-value');
  2352. let Packs = Number(element.find(".txtOrder_ItemCount").val());
  2353. let incVal = instance.getIncrementValue(Packs);
  2354. let val = instance.roundOffIgnoreZerosAfterDecimal(Packs + incVal);
  2355. element.find(".txtOrder_ItemCount").val(val);
  2356. }
  2357. if (IsPiecesFocus) {
  2358. element.find('.divOrders_ItemPieceCount').addClass('floating-label-form-group-with-value');
  2359. let Pieces = Number(element.find(".txtOrder_ItemPieceCount").val());
  2360. let incVal = instance.getIncrementValue(Pieces);
  2361. let val = instance.roundOffIgnoreZerosAfterDecimal(Pieces + incVal);
  2362. element.find(".txtOrder_ItemPieceCount").val(val);
  2363. }
  2364. instance.updateItemsArray(element, "Plus");
  2365. });
  2366. $("#" + instance.g_VisibleContainerId).find(elem).find(".quantity-minus").unbind().click(function () {
  2367. let element = elem;
  2368. let ItemId = element.find(".hfOrder_ItemId").val();
  2369. let Packs = Number(element.find(".txtOrder_ItemCount").val());
  2370. let Pieces = Number(element.find(".txtOrder_ItemPieceCount").val());
  2371. let IsPacksFocus = false;
  2372. let IsPiecesFocus = false;
  2373. let FocusTxt = instance.getItemFocus(element);
  2374. if (FocusTxt == "Packs") {
  2375. IsPacksFocus = true;
  2376. }
  2377. else {
  2378. IsPiecesFocus = true;
  2379. }
  2380. if (IsPacksFocus) {
  2381. if (element.find("#txt_Pieces").val() == 0) {
  2382. element.find('.divOrders_ItemPieceCount').removeClass('floating-label-form-group-with-value');
  2383. }
  2384. element.find('.divOrders_ItemCount').addClass('floating-label-form-group-with-value');
  2385. let incVal = instance.getIncrementValue(Packs);
  2386. if (Packs > 0) {
  2387. let val = instance.roundOffIgnoreZerosAfterDecimal(Packs - incVal);
  2388. element.find(".txtOrder_ItemCount").val(val);
  2389. }
  2390. else if (Packs == 0 && Pieces > 0) {
  2391. element.find(".txtOrder_ItemCount").val(instance.roundOffIgnoreZerosAfterDecimal(Packs));
  2392. }
  2393. else {
  2394. element.find('.divOrders_ItemCount').removeClass('floating-label-form-group-with-value');
  2395. instance.deleteCartItems(ItemId);
  2396. return false;
  2397. }
  2398. }
  2399. if (IsPiecesFocus) {
  2400. element.find('.divOrders_ItemPieceCount').addClass('floating-label-form-group-with-value');
  2401. let Pieces = Number(element.find(".txtOrder_ItemPieceCount").val());
  2402. let incVal = instance.getIncrementValue(Pieces);
  2403. if (Pieces > 0) {
  2404. let val = instance.roundOffIgnoreZerosAfterDecimal(Pieces - incVal);
  2405. element.find(".txtOrder_ItemPieceCount").val(val);
  2406. }
  2407. else if (Pieces == 0 && Packs > 0) {
  2408. element.find(".txtOrder_ItemPieceCount").val(instance.roundOffIgnoreZerosAfterDecimal(Pieces));
  2409. }
  2410. else {
  2411. element.find('.divOrders_ItemPieceCount').removeClass('floating-label-form-group-with-value');
  2412. instance.deleteCartItems(ItemId);
  2413. return false;
  2414. }
  2415. }
  2416. instance.updateItemsArray(element, "Minus");
  2417. });
  2418. $("#" + instance.g_VisibleContainerId).find(elem).find('.chkItem_ExchangeDC').unbind().change(function () {
  2419. let element = elem;
  2420. let ItemId = element.find(".hfOrder_ItemId").val();
  2421. if (element.find('.chkItem_ExchangeDC').prop("checked")) {
  2422. element.find('#Ord_txtdiscount').val('').prop("disabled", true).css("cursor", "not-allowed");
  2423. $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId).find("#Ord_txtdiscount").val('').prop("disabled", true).css("cursor", "not-allowed");
  2424. }
  2425. else {
  2426. element.find('#Ord_txtdiscount').prop("disabled", false).css("cursor", "auto");
  2427. $("#" + instance.g_VisibleContainerId).find(".cartitem-" + ItemId).find('#Ord_txtdiscount').prop("disabled", false).css("cursor", "auto");
  2428. }
  2429. instance.updateItemsArray(element, "Exchange");
  2430. });
  2431. $("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemCount").keyup(function () {
  2432. clearTimeout(timer);
  2433. timer = setTimeout(function () {
  2434. instance.updateItemsArray(elem, "Packs");
  2435. }, 300);
  2436. });
  2437. $("#" + instance.g_VisibleContainerId).find(elem).find(".txtOrder_ItemPieceCount").keyup(function () {
  2438. clearTimeout(timer);
  2439. timer = setTimeout(function () {
  2440. instance.updateItemsArray(elem, "Pieces");
  2441. }, 300);
  2442. });
  2443. $("#" + instance.g_VisibleContainerId).find(elem).find(".btnOrder_DiscType").unbind().change(function () {
  2444. instance.updateItemsArray(elem, "DiscountType");
  2445. });
  2446. $("#" + instance.g_VisibleContainerId).find(elem).find("#Ord_txtdiscount").unbind().keyup(function () {
  2447. clearTimeout(timer);
  2448. timer = setTimeout(function () {
  2449. instance.updateItemsArray(elem, "Discount");
  2450. }, 300);
  2451. });
  2452. let DescriptionElem = $("#" + instance.g_VisibleContainerId).find(elem).find("#txt_Description");
  2453. if (instance.g_FromWidgetEditOrderItemId > 0) {
  2454. DescriptionElem = $("#" + instance.g_VisibleContainerId).find("#txt_Description");
  2455. }
  2456. $(DescriptionElem).unbind().keyup(function () {
  2457. clearTimeout(timer);
  2458. timer = setTimeout(function () {
  2459. let ItemId = elem.find(".hfOrder_ItemId").val();
  2460. let CartItem = instance.g_CartItems_New.find(x => x.ItemId == ItemId && x.RefItemIds == "");
  2461. if (CartItem != undefined) {
  2462. if (instance.g_FromWidgetEditOrderItemId > 0) {
  2463. CartItem.Description = $("#txt_Description").val().toString();
  2464. }
  2465. else {
  2466. CartItem.Description = elem.find("#txt_Description").val().toString();
  2467. }
  2468. }
  2469. }, 300);
  2470. });
  2471. $("#" + instance.g_VisibleContainerId).find(elem).find(".delete").unbind().click(function () {
  2472. let FromWidget = false;
  2473. if (instance.g_CartItems_New.length <= 10) {
  2474. $("#" + instance.g_VisibleContainerId).find(".CartItemFindTxt").addClass('hidden');
  2475. }
  2476. let message = "Do you really want to delete this item";
  2477. if (instance.g_CartItems_New.length == 1)
  2478. message = "Your cart is going to empty.";
  2479. let itemid = $("#" + instance.g_VisibleContainerId).find(this).parents(".cartitem").find(".hfOrder_ItemId").val();
  2480. if (itemid == undefined) {
  2481. itemid = $("#" + instance.g_VisibleContainerId).find(this).parents(".variant-addeditem").find(".hfOrder_ItemId").val();
  2482. }
  2483. if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length > 0) {
  2484. FromWidget = true;
  2485. }
  2486. bootbox.confirm({
  2487. message: message,
  2488. closeButton: false,
  2489. buttons: {
  2490. confirm: {
  2491. label: 'Yes',
  2492. className: 'btn-success'
  2493. },
  2494. cancel: {
  2495. label: 'No',
  2496. className: 'btn-danger'
  2497. }
  2498. },
  2499. callback: function (result) {
  2500. if (result) {
  2501. instance.deleteCartItems(itemid, FromWidget);
  2502. if (instance._order.g_IsPurchasePlanning)
  2503. $("#" + instance.g_VisibleContainerId).find("#chk_PurPlanItem_" + itemid).prop("checked", false);
  2504. }
  2505. }
  2506. });
  2507. });
  2508. $("#" + instance.g_VisibleContainerId).find(elem).find(".div_MultipleUOMs").change(function () {
  2509. instance.updateItemsArray(elem, "UOMChange");
  2510. });
  2511. }
  2512. readScanner(capturedValue, uniqueId) {
  2513. if (capturedValue != "" && capturedValue != null && capturedValue != undefined) {
  2514. $("#txt_SearchItem").val(capturedValue);
  2515. }
  2516. }
  2517. refreshAllItems(FromWidget = false, evnt) {
  2518. let instance = this;
  2519. for (let i = 0; i < instance.g_LoadedItems.length; i++) {
  2520. let Itm = instance.g_LoadedItems[i];
  2521. let elem = $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + Itm.ItemId);
  2522. if (elem != undefined && elem.length > 0) {
  2523. instance.updateItemsArray(elem, "RefreshAllItems_" + evnt, FromWidget);
  2524. }
  2525. let cart_elem = $("#" + instance.g_VisibleContainerId).find(".cartitem-" + Itm.ItemId);
  2526. if (cart_elem != undefined && cart_elem.length > 0) {
  2527. instance.updateItemsArray(cart_elem, "RefreshAllItems_" + evnt, FromWidget);
  2528. }
  2529. instance.checkValidations(Itm.ItemId, false);
  2530. }
  2531. }
  2532. bindAllItemsQty(FromWidget = false, evnt) {
  2533. let instance = this;
  2534. for (let i = 0; i < instance.g_LoadedItems.length; i++) {
  2535. let Itm = instance.g_LoadedItems[i];
  2536. let elem = $("#" + instance.g_VisibleContainerId).find(".variant-addeditem-" + Itm.ItemId);
  2537. if (elem != undefined && elem.length > 0) {
  2538. let CartIndex = instance.g_CartItems_New.findIndex(x => x.ItemId == Itm.ItemId);
  2539. if (CartIndex != -1) {
  2540. let inventoryApplyType = instance._order.g_InventoryApplyType;
  2541. if (inventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  2542. elem.find("#txt_Cartons").val(instance.g_CartItems_New[CartIndex].Quantity);
  2543. elem.find("#txt_Pieces").val(0);
  2544. }
  2545. else if (inventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Packs) {
  2546. elem.find("#txt_Cartons").val(instance.g_CartItems_New[CartIndex].Packs);
  2547. elem.find("#txt_Pieces").val(instance.g_CartItems_New[CartIndex].Pieces);
  2548. }
  2549. else if (inventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.Pieces) {
  2550. elem.find("#txt_Cartons").val(instance.g_CartItems_New[CartIndex].Packs);
  2551. elem.find("#txt_Pieces").val(instance.g_CartItems_New[CartIndex].Pieces);
  2552. }
  2553. else if (inventoryApplyType == Bizgaze.Apps.Transact.Enums.InventoryApplyType.PacksAndPieces) {
  2554. elem.find("#txt_Cartons").val(instance.g_CartItems_New[CartIndex].Packs);
  2555. elem.find("#txt_Pieces").val(instance.g_CartItems_New[CartIndex].Pieces);
  2556. }
  2557. instance.updateItemsArray(elem, "RefreshAllItems_" + evnt, FromWidget, 0, instance.g_CartItems_New[CartIndex].Pieces);
  2558. }
  2559. else {
  2560. instance.updateItemsArray(elem, "RefreshAllItems_" + evnt, FromWidget);
  2561. }
  2562. }
  2563. }
  2564. }
  2565. showBOMItems(ItemId, ItemName, element) {
  2566. Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(["apps/transact/components/orders/itembomselection.js"], function () {
  2567. Unibase.Platform.Helpers.NavigationHelper.Instance().popup(0, "", Bizgaze.Apps.Transact.Components.Orders.ItemBOMSelection.Instance(), function () {
  2568. Bizgaze.Apps.Transact.Components.Orders.ItemBOMSelection.Instance().LoadBOMItems(ItemId, ItemName);
  2569. }, Unibase.Platform.Helpers.Size.Large);
  2570. });
  2571. }
  2572. itemSettings(FromWidget = false) {
  2573. let instance = this;
  2574. 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 />`;
  2575. let isChkQty = "";
  2576. if (instance.g_FromWidget) {
  2577. isChkQty = "hidden";
  2578. }
  2579. if (instance._order.g_InventoryApplyType != Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity) {
  2580. inventoryHtml += `<div class="row mb-20 div_chk_Qty ` + isChkQty + `" id="div_chk_Qty">
  2581. <div class="col-sm-12">
  2582. <div class="custom-control custom-checkbox divEnableQty checkbox-primary pull-right col-sm-3">
  2583. <input type="checkbox" class="custom-control-input" id="chk_Qty">
  2584. <label class="custom-control-label" for="chk_Qty"> Quantity </label>
  2585. </div>
  2586. </div>
  2587. </div>`;
  2588. }
  2589. 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>`;
  2590. $("#" + instance.g_VisibleContainerId).find(".InventorySettings").html(inventoryHtml);
  2591. $("#" + instance.g_VisibleContainerId).find("#div_ItemList").html('<ul class="variant-list list-group" style="0px -21px"><li class="variant-item hidden"></li>');
  2592. if (!instance._order.g_IsSC_to_PC) {
  2593. instance.g_CartItems_New = [];
  2594. instance.g_SC_PC_CartItems = [];
  2595. instance.g_ItemsUnitPrice_New = [];
  2596. instance.g_SelectedItems = [];
  2597. instance.g_LoadedItems = [];
  2598. }
  2599. $("#" + instance.g_VisibleContainerId).find("#chk_AllItems").unbind().click(function () {
  2600. if ($("#" + instance.g_VisibleContainerId).find('#chk_AllItems').is(':checked')) {
  2601. instance.navigationHelper.showLoading();
  2602. $("#" + instance.g_VisibleContainerId).find(".variant-list").find(".chk_PurPlanItem").each(function () {
  2603. let element = $("#" + instance.g_VisibleContainerId).find(this).closest(".variant-item");
  2604. if (element.find("#txt_Cartons").val() != 0 && element.find("#txt_Cartons").val() != "") {
  2605. instance.updateItemsArray(element, "PurPlan_AllItems", false);
  2606. $("#" + instance.g_VisibleContainerId).find(element).find(".chk_PurPlanItem").prop("checked", true);
  2607. }
  2608. });
  2609. instance.navigationHelper.hideLoading();
  2610. instance.getPurchasePlanTotals(false, true);
  2611. }
  2612. else {
  2613. $("#" + instance.g_VisibleContainerId).find(".variant-list").find(".chk_PurPlanItem").prop("checked", false);
  2614. instance.g_CartItems_New = [];
  2615. $("#" + instance.g_VisibleContainerId).find("#ulOrder_Cart").find(".cartitem").remove();
  2616. $("#" + instance.g_VisibleContainerId).find("#OverallOrderQuantity").text("0");
  2617. $("#" + instance.g_VisibleContainerId).find("#totalOrderItems").text("0");
  2618. instance.getPurchasePlanTotals(false, true);
  2619. }
  2620. });
  2621. instance.inventoryTypeClickEvents(FromWidget);
  2622. instance.priceTypeClickEvents(FromWidget);
  2623. }
  2624. clearItemSearch(IsUpdateTax = false) {
  2625. let instance = this;
  2626. $("#" + instance.g_VisibleContainerId).find(".search-clear-items").addClass("d-none");
  2627. $("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val("");
  2628. if (instance.g_FromWidget) {
  2629. instance.refreshAllItems(instance.g_FromWidget, "PriceTypeClickEvents");
  2630. }
  2631. else {
  2632. Bizgaze.Apps.Transact.Controls.OrderItems.Instance().loadItems("", false, IsUpdateTax);
  2633. }
  2634. }
  2635. itemSettingsEvents() {
  2636. var instance = this;
  2637. let timer;
  2638. $("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").on('input', function () {
  2639. clearTimeout(timer);
  2640. timer = setTimeout(function () {
  2641. var checkvalue = $("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val();
  2642. let check = checkvalue.toString();
  2643. if (check.length != 0) {
  2644. $("#" + instance.g_VisibleContainerId).find(".search-clear-items").removeClass("d-none");
  2645. }
  2646. else {
  2647. $("#" + instance.g_VisibleContainerId).find(".search-clear-items").addClass("d-none");
  2648. }
  2649. instance.g_PageIndex = 0;
  2650. if (instance._order.g_IsPurchasePlanning)
  2651. instance.loadPurchasePlanItems($("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val());
  2652. else
  2653. instance.loadItems($("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val());
  2654. }, 1500);
  2655. });
  2656. $("#" + instance.g_VisibleContainerId).find("#ItemLoadType").change(function () {
  2657. $("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val('');
  2658. $("#" + instance.g_VisibleContainerId).find("#ItemLoadType option[value='0']").remove();
  2659. let type = $("#" + instance.g_VisibleContainerId).find("#ItemLoadType option:selected").text();
  2660. if (type != "Filter" && !Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_OnlyFilters) {
  2661. instance.g_IsFilterApplied = false;
  2662. instance.g_FilteredTags = '';
  2663. Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_TagArray = [];
  2664. Bizgaze.Apps.Transact.Components.OrderFilter.Instance().g_ClearingTags = "";
  2665. }
  2666. instance.g_PageIndex = 0;
  2667. if (instance._order.g_IsPurchasePlanning) {
  2668. instance.loadPurchasePlanItems('');
  2669. }
  2670. else {
  2671. if (type == "Filter") {
  2672. instance.filterPopUp();
  2673. }
  2674. else {
  2675. instance.loadItems(type);
  2676. }
  2677. }
  2678. });
  2679. $("#" + instance.g_VisibleContainerId).find(".ContinueShopping").unbind().click(function () {
  2680. instance.continueShopping();
  2681. });
  2682. }
  2683. filterPopUp() {
  2684. let instance = this;
  2685. instance.navigationHelper.popup(0, '', Bizgaze.Apps.Transact.Components.OrderFilter.Instance(), null, Unibase.Platform.Helpers.Size.Medium);
  2686. }
  2687. inventoryTypeClickEvents(FromWidget) {
  2688. let instance = this;
  2689. $("#" + instance.g_VisibleContainerId).find('#chk_Pieces').click(function () {
  2690. if ($("#" + instance.g_VisibleContainerId).find('#chk_Pieces').is(':checked')) {
  2691. instance.g_IsEnablePieces = true;
  2692. }
  2693. else {
  2694. instance.g_IsEnablePieces = false;
  2695. instance.g_CartItems_New.forEach(x => {
  2696. x.IsPacksFocus = true;
  2697. x.IsPiecesFocus = false;
  2698. });
  2699. }
  2700. instance.refreshAllItems(FromWidget, "InventoryClickEvents");
  2701. });
  2702. $("#" + instance.g_VisibleContainerId).find('#chk_Packs').click(function () {
  2703. if ($("#" + instance.g_VisibleContainerId).find('#chk_Packs').is(':checked')) {
  2704. instance.g_IsEnablePacks = true;
  2705. }
  2706. else {
  2707. instance.g_IsEnablePacks = false;
  2708. instance.g_CartItems_New.forEach(x => {
  2709. x.IsPacksFocus = false;
  2710. x.IsPiecesFocus = true;
  2711. });
  2712. }
  2713. instance.refreshAllItems(FromWidget, "InventoryClickEvents");
  2714. });
  2715. $("#" + instance.g_VisibleContainerId).find('#chk_Qty').click(function () {
  2716. if ($("#" + instance.g_VisibleContainerId).find('#chk_Qty').is(':checked')) {
  2717. instance.g_IsEnablePacks = true;
  2718. instance.g_CartItems_New.forEach(x => {
  2719. x.IsPacksFocus = true;
  2720. x.IsPiecesFocus = false;
  2721. });
  2722. instance._order.g_InventoryApplyType = Bizgaze.Apps.Transact.Enums.InventoryApplyType.Quantity;
  2723. instance._order.setInventorySettings(instance._order.g_InventoryApplyType, false, true);
  2724. }
  2725. else {
  2726. instance._order.g_InventoryApplyType = instance._order.g_LobInventoryApplyType;
  2727. instance._order.setInventorySettings(instance._order.g_InventoryApplyType, false, true);
  2728. if ($("#" + instance.g_VisibleContainerId).find("#chk_Packs").prop("checked")) {
  2729. instance.g_IsEnablePacks = true;
  2730. }
  2731. if ($("#" + instance.g_VisibleContainerId).find("#chk_Pieces").prop("checked")) {
  2732. instance.g_IsEnablePieces = true;
  2733. }
  2734. }
  2735. instance.bindAllItemsQty(FromWidget, "InventoryClickEvents");
  2736. });
  2737. }
  2738. setPriceType() {
  2739. var instance = this;
  2740. if (instance.g_IsEnablePiecePrice) {
  2741. instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.PiecePrice;
  2742. }
  2743. else if (instance.g_IsEnableCompositePrice) {
  2744. instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.CompositePrice;
  2745. }
  2746. else if (instance.g_IsEnableCompositePiecePrice) {
  2747. instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.Both;
  2748. }
  2749. else {
  2750. instance.g_PriceTypeId = Bizgaze.Apps.Transact.Enums.PriceType.None;
  2751. }
  2752. }
  2753. priceTypeClickEvents(FromWidget) {
  2754. let instance = this;
  2755. $("#" + instance.g_VisibleContainerId).find('#chk_PiecePrice').click(function () {
  2756. if ($("#" + instance.g_VisibleContainerId).find('#chk_PiecePrice').is(':checked')) {
  2757. if (instance.g_IsEnableCompositePrice) {
  2758. instance.g_IsEnableCompositePrice = false;
  2759. instance.g_IsEnablePiecePrice = false;
  2760. instance.g_IsEnableCompositePiecePrice = true;
  2761. }
  2762. else {
  2763. instance.g_IsEnablePiecePrice = true;
  2764. instance.g_IsEnableCompositePiecePrice = false;
  2765. instance.g_IsEnableCompositePrice = false;
  2766. }
  2767. }
  2768. else {
  2769. instance.g_IsEnablePiecePrice = false;
  2770. instance.g_IsEnableCompositePiecePrice = false;
  2771. instance.g_IsEnableCompositePrice = $("#" + instance.g_VisibleContainerId).find('#chk_CompositePrice').is(':checked');
  2772. }
  2773. instance.setPriceType();
  2774. if (instance._order.g_IsPurchasePlanning)
  2775. instance.loadPurchasePlanItems($("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val());
  2776. else {
  2777. instance.clearItemSearch(true);
  2778. }
  2779. });
  2780. $("#" + instance.g_VisibleContainerId).find('#chk_CompositePrice').click(function () {
  2781. if ($("#" + instance.g_VisibleContainerId).find('#chk_CompositePrice').is(':checked')) {
  2782. if (instance.g_IsEnablePiecePrice) {
  2783. instance.g_IsEnableCompositePrice = false;
  2784. instance.g_IsEnableCompositePiecePrice = true;
  2785. instance.g_IsEnablePiecePrice = false;
  2786. }
  2787. else {
  2788. instance.g_IsEnableCompositePrice = true;
  2789. instance.g_IsEnableCompositePiecePrice = false;
  2790. instance.g_IsEnablePiecePrice = false;
  2791. }
  2792. }
  2793. else {
  2794. instance.g_IsEnableCompositePrice = false;
  2795. instance.g_IsEnableCompositePiecePrice = false;
  2796. instance.g_IsEnablePiecePrice = $("#" + instance.g_VisibleContainerId).find('#chk_PiecePrice').is(':checked');
  2797. }
  2798. instance.setPriceType();
  2799. if (instance._order.g_IsPurchasePlanning)
  2800. instance.loadPurchasePlanItems($("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val());
  2801. else {
  2802. instance.clearItemSearch(true);
  2803. }
  2804. });
  2805. }
  2806. continueShopping() {
  2807. let instance = this;
  2808. instance.g_FromContinueShopping = true;
  2809. $("#" + instance.g_VisibleContainerId).find(".modal-body").scrollTop(0);
  2810. $("#" + instance.g_VisibleContainerId).find(".tax-error").text("");
  2811. let SearchItem = $("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val();
  2812. if (SearchItem != "" || instance.g_PageIndex != 0) {
  2813. instance.g_PageIndex = 0;
  2814. $("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val("");
  2815. instance.loadItems($("#" + instance.g_VisibleContainerId).find("#txt_SearchItem").val());
  2816. }
  2817. $("#" + instance.g_VisibleContainerId).find(".div_SearchItem").removeClass('floating-label-form-group-with-value');
  2818. $("#" + instance.g_VisibleContainerId).find(".section_CartDetails").addClass('hidden');
  2819. $("#" + instance.g_VisibleContainerId).find(".section_Summary").addClass('hidden');
  2820. $("#" + instance.g_VisibleContainerId).find("#dropup_save").addClass("hidden");
  2821. $("#" + instance.g_VisibleContainerId).find("#btn_Save_New").addClass("hidden");
  2822. $("#" + instance.g_VisibleContainerId).find(".btn_Save_Form").addClass("hidden");
  2823. $("#" + instance.g_VisibleContainerId).find(".section_PriceDetails").addClass('hidden');
  2824. $("#" + instance.g_VisibleContainerId).find(".OrgContactNameLink").removeClass('hidden');
  2825. $("#" + instance.g_VisibleContainerId).find(".section_ContactName").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. Bizgaze.Apps.Transact.Controls.CartDetails.Instance().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 = {}));