アプリケーションノート 5037

バッテリ残量ゲージ


要約: バッテリ残量ゲージの性能を最大化するには、セルの振舞いを完全に理解することができるように、バッテリパックの特性評価を行う必要があります。このアプリケーションノートでは、満充電、定電流放電、およびステップ放電の各定型操作の説明を含む、バッテリの特性評価のためのセットアップおよび手順の概要を示します。また、ステップ放電を実行するための手順についても概説します。

この記事の類似バージョンが「Power Electronics Technology」誌の2011年7月1日号に掲載されました。

はじめに

バッテリ残量ゲージから最高の性能を得るためには、アプリケーションでのセルの振舞いを完全に理解することができるように、バッテリパックの特性評価を行う必要があります。特性評価を行うには、Maximおよび他の残量ゲージメーカーは室温でパックを充電することを推奨しています。次に、重負荷、中負荷、および軽負荷で、室温でパックを放電させます。低温および高温で、中負荷でパックを放電させます。さらに、放電中にパックがどのように緩和するかを観察するために、ステップ放電が推奨されます。このアプリケーションノートでは、MaximのModelGauge™シリーズ(MAX17040/MAX17041およびMAX17043/MAX17044)について、このデータを適切に収集するためのセットアップと手順の概要を示します。その後、収集したデータを使用して、残量ゲージチップで使用するカスタムモデルを作成することができます。

セットアップ

試験対象のセルを、十分なケルビン検出接続を使用して試験システムに接続し、40℃、20℃、および0℃に設定可能な環境チャンバー内に設置してください。さらに、試験システムの温度プローブを、試験対象のセルの表面に密着するように配置してください。
図1. セル特性評価システムのセットアップ
図1. セル特性評価システムのセットアップ
次に、セル特性評価リクエスト(CCR)フォームを作成し、このアプリケーション用の充放電パラメータを記入してください。それを残量ゲージチップのサプライヤに送付して、その特定のバッテリパック向けに残量ゲージをカスタマイズするために使用するプロファイルを作成してください。たとえば、MaximのCCRフォームに記入して返送した場合、残量ゲージチップが適切に設定されていることを確認するためのカスタムプロジェクト番号が割り当てられます。

セル特性評価のパラメータ

アプリケーションで使用する充放電レベルでバッテリパックのサイクルを行ってください。1セルのバッテリパックの値の例を以下に示します。
充電電流:Cレート/2
充電電圧:4.2V
終了電流:50mA
重負荷:1.5 × 標準アクティブ電流
中負荷:1 × 標準アクティブ電流
軽負荷:標準アクティブ電流/4またはCレート/10
エンプティ電圧:3.0V
(注:パック外部ではなくセルのエンプティ電圧を測定してください)。
高温:+40℃
室温:+20℃
低温:0℃

定義

ModelGaugeデバイスと組み合わせて使用するためのセルの適切な特性評価には、3つの基本的な定型操作を実行する必要があります。それらの定型操作とは、満充電、定電流放電、およびステップ放電です。
満充電は、ピーク電圧が充電電圧に達するまで、充電電流でバッテリパックを充電します。その後、電流が終了電流以下に減少するまで電圧が充電電圧に維持されます。特性評価中は、すべての充電を室温で行い、個々の充電のあとに少なくとも60分間にわたりセルを「緩和」させることが推奨されます。充電サイクルの例については、図2を参照してください。
図2. 満充電サイクル中の標準的なバッテリパックの特性
図2. 満充電サイクル中の標準的なバッテリパックの特性
放電は、バッテリパックの電圧がエンプティ電圧に低下するまで、所定のレートで、定電流で電荷を損失させます。個々の放電のあとに、少なくとも60分間にわたりセルを緩和させることが推奨されます。室温において、重負荷、中負荷、および軽負荷で定電流放電を実行してください。高温および低温でも、定電流放電を繰り返してください。定電流でのフルからエンプティまでの放電の例については、図3を参照してください。セルがエンプティ電圧に達したあとは、セルが「緩和」されるため、セル電圧がより高い電圧に回復することに注意してください。
  販売代理店向け単価はございません 以下から見積もりをご請求ください: Model N "); $("#inventoryDetails").removeClass("col-sm-6"); $("#inventoryDetails").addClass("col-sm-12"); } else { var partNumber = encodeURIComponent(part_no); var htmlBulkOrder = "
" ; $("#buyQuantityDiv").html(htmlBulkOrder); } } } if( sampleJson.canQuote != true ) { $("#requestQuoteDiv").hide(); } if(sampleJson.leadTime == 0 && !(sampleJson.cf == "true" && sampleJson.carrierType == "Tape") ){ if($('#requestQuoteDiv').css('display') != "block") { $('#forLeadtime').removeClass('hidden'); } //$('#quantity5000').show(); } if(maxInventory == 0) { $("#stdleadTime").html('予想リードタイム'); } if(params == 'Quote'){ $('#rowDiv').addClass("hidden"); $("#quoteRow").removeClass("hidden"); $("#nonQuote").addClass("hidden"); } else { if(leadTime != "" && leadTime != "undefined" && (parseInt(leadTime) > 0 && parseInt(leadTime) < 98) || parseInt(leadTime) == 0 ){ }else { if(userType != "DISTRIBUTOR") { $('#rowDiv div:not("#inventoryDetails,#requestQuoteDiv, #requestQuoteDiv2")').hide(); if($(".requestQuoteFromBuyCart").css('display') == 'none'){ $("#contactSales").show(); } } } } $('#addToCartP').modal('show'); if (userType == "EMPLOYEE" ) { $(document).find('#qtytobuyText').hide(); $(document).find('#product-quantity').hide(); $(document).find('#addToCartButton').hide(); $(document).find('#employeeMsg').show(); } if(sampleJson.cf == "true" && sampleJson.carrierType == "Tape" && maxInventory == 0){ $("#priceBreak").remove(); $("#orderingquotetext").remove(); $("#quantity5000").remove(); $('#useExistingQuote').remove(); $('#borderid').remove(); $('#inventoryDetails').removeClass('col-sm-6'); $('#inventoryDetails').addClass('col-sm-12'); $('#inventoryDetails').css('padding-left', '55px'); $('#inventoryDetails').css('padding-right', '55px'); $("#sotPartswithnostock").html('大変申し訳ございません、在庫切れの為ご要望にお応えすることができません。このパッケージタイプはテストとテープ&リール一体型のテスターを使用している為、最終テスト完了時にリールサイズに満たない端数ロットが生じた場合にのみテープカット品として販売しております。現在はこの端数ロット在庫が売り切れの状態です。ご注文をテープ&リール品番(末尾が+Tまたは+T&R)へ切り替えてのご購入を検討いただくか、またはマキシム製品販売代理店に少数購入が可能かお問合せお願いいたします。'); } } } else { document.getElementById('buyParams').innerHTML = "Default"; digitalErrorFunction('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); bootbox.alert('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); } } }); var url = "/bin/checkQuoteAvailabilty?partNumber=" + encodeURIComponent(part_no) $.ajax({ url: url, dataType: "json", type: 'POST', async: false, xhrFields: { withCredentials: true }, success: function(data) { result = data; if(result != ""){ if(result.quoteList.quotes.quoteAvailable){ var quoteAvailable = result.quoteList.quotes.quoteAvailable; if(quoteAvailable == "true"){ $("#ortext").removeClass("hidden"); $('#useExistingQuote').show(); } } } } }); if (CQ_Analytics.PersonalInfoStoreMgr.getProperty("isLoggedIn") == "") { $.cookie("redirect","widget"); $.cookie("buy",buy); $.cookie("part_no",encodeURIComponent(part_no)); $.cookie("sampQty",sampQty); if(params == "ProductOrderTab"){ $.cookie("orderTab","true"); } } } else if (buy == "sample" && (CQ_Analytics.PersonalInfoStoreMgr.getProperty("isLoggedIn", true) || CQ_Analytics.PersonalInfoStoreMgr.getProperty("isLoggedIn", true) == "true")) { if(userType == "DISTRIBUTOR" || userType == "EMPLOYEE" ){ window.location.href = "https://shop.maximintegrated.com/backoffice/general/index.php?action=DISTRIBUTOR"; return false; } var userId = CQ_Analytics.ProfileDataMgr.getProperty("email"); var isSampleOrderAllowed = "true"; var sampleMessage = ""; var data = "userId="+userId; $.ajax({ type: "post", url: '/bin/validateSampleOrder', async: false, data: data, success: function(msg) { if(msg.error == "genericerrorText"){ digitalErrorFunction('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); bootbox.alert('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); } else if(msg.status == false){ if(msg.message.match("^Your session expired")){ bootbox.confirm('セッションが期限切れです。もう一度ログインしてください。', function(result) { var authorizableId = CQ_Analytics.PersonalInfoStoreMgr.getProperty("authorizableId"); CQ.shared.Util.load("\x2Fbin\x2FLogoutServlet\x3Flanguage\x3Den"+"&authorizableId="+authorizableId); window.location="/jp/mymaxim/login.html"; }); } else { digitalErrorFunction(msg.message); bootbox.alert(msg.message); } } else { isSampleOrderAllowed = msg.output.validateEmailDomain.isOrderAllowed; sampleMessage = msg.output.validateEmailDomain.message; var itemCount = msg.output.validateEmailDomain.itemCount; var orderCount = msg.output.validateEmailDomain.orderCount; if(localStorage.getItem(part_no) == 1) { mycart_widget("sample", function(status){ if(status && typeof _satellite != "undefined") _satellite.track("cart: add"); }); return false; } else { sampleAddToCart(isSampleOrderAllowed, sampQty, part_no, sampleMessage,itemCount,orderCount); } } } }); } else { $.cookie("redirect","widget"); $.cookie("buy",buy); $.cookie("part_no",encodeURIComponent(part_no)); $.cookie("sampQty",sampQty); if(params == "ProductOrderTab"){ $.cookie("orderTab","true"); } gigya.accounts.showScreenSet(aem.login.params); } } } function redirect_rochester(part_no){ var url = 'https://api.rocelec.com/parts/MAX/1?callback=callback&q='+ part_no +'&key=Z3kk1y*'; $.ajax({ type: 'GET', url: url, async: false, jsonpCallback: 'callback', contentType: "application/json", dataType: 'jsonp', success: function(json) { if(json.parts[0] != undefined){ if('permalink' in json.parts[0]){ window.open(json.parts[0].permalink,'_blank'); } else{ digitalErrorFunction('
Rochesterに現在この製品の在庫はございませんが、この製品の調達が可能か Rochester に問い合わせすることができます。もし調達ができない場合 マキシムのテクニカルアプリケーションエンジニアにお問い合わせ ください。置換品として使用可能な同様のデバイスについてアドバイスさせていただきます。
'); bootbox.alert('
Rochesterに現在この製品の在庫はございませんが、この製品の調達が可能か Rochester に問い合わせすることができます。もし調達ができない場合 マキシムのテクニカルアプリケーションエンジニアにお問い合わせ ください。置換品として使用可能な同様のデバイスについてアドバイスさせていただきます。
'); } } else{ if(typeof _satellite != "undefined"){ _satellite.track("rochester-popup"); } bootbox.alert('
Rochesterに現在この製品の在庫はございませんが、この製品の調達が可能か Rochester に問い合わせすることができます。もし調達ができない場合 マキシムのテクニカルアプリケーションエンジニアにお問い合わせ ください。置換品として使用可能な同様のデバイスについてアドバイスさせていただきます。
'); } }, error: function(e) { console.log(e.message); digitalErrorFunction(e.message); } }); } function getDistrbutorInventoryData(partNumber) { if(typeof partNumber != "undefined" && partNumber != "") { var distributors = {}; var distributor_template = Handlebars.compile($("#distributorData").html()); var data = "query="+encodeURIComponent(partNumber); $.ajax({ type: "post", url: '/bin/distributorInventoryComponent', async: true, data: data, success: function(data) { if(data.error == "genericerrorText"){ digitalErrorFunction('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); bootbox.alert('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); } else if(data != null || data != ""){ $('#distributor-loading-image').hide(); if(data != "") { var dataJSON = JSON.parse(data); dataJSON['code']=partNumber; $('#distributor-modal').html(distributor_template(dataJSON)); } } } }); } } function add_to_cart(part_no, buy, params, sampQty,quantity) { var userType = encodeURI(CQ_Analytics.PersonalInfoStoreMgr.getProperty("userType")); if(userType == "") { userType="anonymous"; } var userId = CQ_Analytics.ProfileDataMgr.getProperty("email"); if(params == 'Quote'){ $("#addToCartP").attr('data-quote-id', sampQty.quoteId); $("#addToCartP").attr('data-quote-item-number', sampQty.quoteItemNumber); } if (buy == "part") { var message = ""; var data = "userId="+userId; var isOrderAllowed="true"; $.ajax({ type: "post", url: '/bin/validateRevenueOrder', async: false, data: data, success: function(msg) { if(msg.error == "genericerrorText"){ digitalErrorFunction('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); bootbox.alert('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); } else{ isOrderAllowed = msg.output.validateEmailDomain.isOrderAllowed; message = msg.output.validateEmailDomain.message; } } }); if(isOrderAllowed == "true") { var result; var small_template = Handlebars.compile($("#buyModalBody").html()); document.cookie="mySearchServlet="+window.location+";domain=.maximintegrated.com;path=/"; var servletName = "/bin/SFComponent"; var url = servletName + "?input=single&query=" + encodeURIComponent(part_no); $.ajax({ url: url, dataType: "json", type: 'POST', xhrFields: { withCredentials: true }, success: function(data) { result = data; if(result == "genericerrorText"){ document.cookie="mySearchServlet="+window.location+";domain=.maximintegrated.com;path=/"; digitalErrorFunction('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); bootbox.alert('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); }else if (result != "") { if(result.errors != undefined && result.errors[0].message) { document.cookie="mySearchServlet="+window.location+";domain=.maximintegrated.com;path=/"; digitalErrorFunction('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); bootbox.alert('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); }else { document.cookie="mySearchServlet="+window.location+";domain=.maximintegrated.com;path=/"; var sampleJson = result; var vol = sampleJson.volumePrices; sampleJson.userType = userType; var noPricingMsg = 0; minQty = sampleJson.min; mult = sampleJson.mult; if(vol != undefined && userType != "DISTRIBUTOR" ) { for (var i = 0; i < vol.length; i++) { var j = i + 1; var vol1 = ""; if (j <= vol.length) { if(vol[i].minQuantity < 1000) { stdPricingFlag = 1; if(j == vol.length) { vol1 = vol[i].minQuantity + "+"; } else { vol1 = vol[i].minQuantity + "-" + vol[i].maxQuantity; } } else if(vol[i].minQuantity == 1000) { vol1 = "1000+"; stdPricingFlag = 1; } else { if(i ==0 && vol[i].minQuantity > 1000) { //vol1 = "No standard pricing available"; noPricingMsg++; delete sampleJson.volumePrices[i].formattedValue; } else { delete sampleJson.volumePrices[i]; continue; } } } else if(j == vol.length && j == 1) { vol1 = vol[i].minQuantity + "-" + 24; stdPricingFlag = 1; } sampleJson.volumePrices[i].minQuantity = vol1; } } maxInventory = sampleJson.stock.atpInv; leadTime = sampleJson.leadTime; if (maxInventory == "" || maxInventory == undefined) { maxInventory = 0; } $('#addToCart').html(small_template(sampleJson)); if(userType != "DISTRIBUTOR") { call(quantity); } } } else { document.getElementById('buyParams').innerHTML = "Default"; digitalErrorFunction('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); bootbox.alert('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); } } }); } else { digitalErrorFunction('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); $('#revenuedomainerrordialog').modal('show'); } } else if (buy == "sample") { if(userType == "DISTRIBUTOR" || userType == "EMPLOYEE" ){ window.location.href = "https://shop.maximintegrated.com/backoffice/general/index.php?action=DISTRIBUTOR"; return false; } var isSampleOrderAllowed = "true"; var sampleMessage = ""; var data = "userId="+CQ_Analytics.ProfileDataMgr.getProperty("email"); $.ajax({ type: "post", url: '/bin/validateSampleOrder', async: false, data: data, success: function(msg) { if(msg.error == "genericerrorText"){ digitalErrorFunction('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); bootbox.alert('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); } else if(msg.status == false){ if(msg.message.match("^Your session expired")){ bootbox.confirm('セッションが期限切れです。もう一度ログインしてください。', function(result) { var authorizableId = CQ_Analytics.PersonalInfoStoreMgr.getProperty("authorizableId"); CQ.shared.Util.load("\x2Fbin\x2FLogoutServlet\x3Flanguage\x3Den"+"&authorizableId="+authorizableId); window.location="/jp/mymaxim/login.html"; }); } else { digitalErrorFunction(msg.message); bootbox.alert(msg.message); } }else{ isSampleOrderAllowed = msg.output.validateEmailDomain.isOrderAllowed; sampleMessage = msg.output.validateEmailDomain.message; var itemCount = msg.output.validateEmailDomain.itemCount; var orderCount = msg.output.validateEmailDomain.orderCount; if (localStorage.getItem(part_no) == 1) { mycart_widget("sample", function (status) { if (status && typeof _satellite != "undefined") _satellite.track("cart: add"); }); return false; } else { sampleAddToCart(isSampleOrderAllowed, sampQty, part_no, sampleMessage,itemCount,orderCount); } } } }); } } function sampleAddToCart(isSampleOrderAllowed, sampQty, part_no, sampleMessage,itemCount,orderCount) { if(isSampleOrderAllowed == "true"){ if(typeof orderCount != 'undefined' && parseInt(orderCount) >= 1){ bootbox.alert("マキシムの無料サンプルポリシーは各メンバーのサンプル請求数に制限を設けています。お客様はこの最大数を超えました。このメッセージを誤って受信されたと思われる場合は samples-admin@maximintegrated.com までEメールにてご連絡ください。"); return; } else if(typeof itemCount != 'undefined' && parseInt(itemCount) >= 4){ bootbox.alert("一回のサンプル請求の限度である4ラインを越えました。 ご注文ページで製品検索をして追加製品をご購入ください。"); return; } else{ //var qty = document.getElementById('product-quantity').value; if (sampQty >= 1 || userType == "DISTRIBUTOR" || userType == "EMPLOYEE") { var qty = 1; //taking qty fixed as 5 for sample var data = "input=addtocart&qty=" + qty + "&part_no=" + encodeURIComponent(part_no) + "&CartType=sampleCart&sampleQty="+sampQty+"&usertype="+userType; $.ajax({ type: "post", url: '/bin/cartOperations', async: false, data: data, success: function (msg, textStatus, jqXHR) { if (textStatus == "success") { if (msg == "false") { digitalErrorFunction('最大数量を超えています。操作を続行するためには数量を減らしてください。'); bootbox.alert('最大数量を超えています。操作を続行するためには数量を減らしてください。'); return false; } else if (msg.match("^You") || msg.match("^Product")) { bootbox.confirm('セッションが期限切れです。もう一度ログインしてください。', function (result) { var authorizableId = CQ_Analytics.PersonalInfoStoreMgr.getProperty("authorizableId"); CQ.shared.Util.load("\x2Fbin\x2FLogoutServlet\x3Flanguage\x3Den" + "&authorizableId=" + authorizableId); window.location = "/jp/mymaxim/login.html"; }); } else if (msg.match("^No orderable unit")) { digitalErrorFunction(msg); bootbox.alert(msg); } else { localStorage.setItem(part_no, "1"); mycart_widget("sample", function (status) { if (status && typeof _satellite != "undefined") _satellite.track("cart: add"); }); } } else { digitalErrorFunction('システムエラーが発生しました。カスタマーサポートまでご連絡ください。' + JSON.stringify(msg)); bootbox.alert('システムエラーが発生しました。カスタマーサポートまでご連絡ください。' + JSON.stringify(msg)); } } }); } else { digitalErrorFunction('サンプルに十分の数量がございません。最大サンプル数量:' + sampQty); bootbox.alert('サンプルに十分の数量がございません。最大サンプル数量:' + sampQty); } } } else { if(sampleMessage =='SAMPLEEMAILDENIAL'){ //bootbox.alert(sampleMessage); $('#sampleemaildenialerrordialog').modal('show'); } else{ $('#domainerrordialog').modal('show'); } //bootbox.alert(sampleMessage); } } $(document).on("click", ".useThisBuyQuote", function () { var quantity = ""; quantity = $('#product-quantityBuyQuote').val(); quantity = quantity.trim(); if(quantity.length == 0){ digitalErrorFunction('数量を入力してお進みください'); bootbox.alert('数量を入力してお進みください'); quantity.focus(); return false; } var part_no = $('#Pcode').val(); var quoteId= $(this).data("quote-id"); var quoteItemId = $(this).data("quote-item-id"); $.ajax({ type: "post", url: '/bin/cartOperations', data: "input=addtocart"eId="+quoteId+""eItemNumber="+quoteItemId+"&qty=" + quantity + "&part_no=" + encodeURIComponent(part_no), success: function(msg, textStatus, jqXHR) { if (textStatus == "success") { if(msg.match("^You") || msg.match("^Product")){ if(msg.match("^Your session expired")) { bootbox.confirm('セッションが期限切れです。もう一度ログインしてください。', function(result) { var authorizableId = CQ_Analytics.PersonalInfoStoreMgr.getProperty("authorizableId"); CQ.shared.Util.load("\x2Fbin\x2FLogoutServlet\x3Flanguage\x3Den"+"&authorizableId="+authorizableId); window.location="/jp/mymaxim/login.html"; }); } else { digitalErrorFunction(msg); bootbox.alert(msg); return false; } } else if (msg.match("^No Price found")){ //bootbox.alert(msg); digitalErrorFunction('この製品につきましてはお客様が入力した数量でのお見積もりが必要です。'); bootbox.alert('この製品につきましてはお客様が入力した数量でのお見積もりが必要です。'); return false; } else if(msg.match('この製品につきましてはお客様が入力した数量でのお見積もりが必要です。')){ digitalErrorFunction(msg); bootbox.alert(msg); return false; } else if(msg==""){ digitalErrorFunction('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); bootbox.alert('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); return false; } else if(quoteId != "" && quoteId != undefined && ! msg.match("statusCode=success")) { digitalErrorFunction(msg); bootbox.alert(msg); return false } else { $('#useQuoteModal').modal('hide'); mycart_widget(); if ($("#buyParams").html() == "SavedLater") { //alert("Yes inside"); deleteSavedForLater(part_no); } } } else { digitalErrorFunction('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'+ JSON.stringify(msg)); bootbox.alert('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'+ JSON.stringify(msg)); } } }); }); function call(quantity) { var qty ="",quoteId,quoteItemNumber = ""; if(typeof quantity != "undefined" && quantity !="") { qty=quantity; } else { var value = $('#product-quantity1').val(); if(value != "undefined" && value != "") { qty = value; } else{ qty = document.getElementById('product-quantity').value; } } qty = qty.trim(); var orderInMult = $('#orderInMult').val(); var orderInMin = $('#orderInMin').val(); var inventoryVal = $('#stockAvaliability').val(); var stockAvaliability = $('#stockAvaliability').val(); var cfValue = $('#cfValue').val(); var carrierTypeValue = $('#carrierTypeValue').val(); quoteId=$("#addToCartP").attr('data-quote-id'); quoteItemNumber=$("#addToCartP").attr('data-quote-item-number'); if(quoteId == undefined){ quoteId =""; quoteItemNumber = ""; } if(quoteId != "" && quoteId != undefined){ } else { if(!(cfValue == 'true' && carrierTypeValue == 'Tape')){ if(parseInt(qty) > parseInt(inventoryVal)){ if(qty != "" && orderInMult != "" && orderInMin != "" ){ if(parseInt(qty) < parseInt(orderInMin)){ $('#product-quantity').val(orderInMin); $('#quantity-label').show(); return false; } else if(qty % orderInMult == 0){ $('#quantity-label').hide(); } else { var modvalue = parseInt(qty) % parseInt(orderInMult); var q4 = parseInt(orderInMult)-parseInt(modvalue); var nearestNum = parseInt(qty) + parseInt(q4); //var nearestNum = (Math.round(qty / orderInMult)+1) * orderInMult; $('#product-quantity').val(nearestNum); $('#quantity-label').show(); return false; } } } else if(parseInt(qty) <= parseInt(inventoryVal) && carrierTypeValue == 'Reel'){ if(qty != "" && orderInMult != "" && orderInMin != "" ){ if(parseInt(qty) < parseInt(orderInMin)){ $('#product-quantity').val(orderInMin); $('#quantity-label').show(); return false; } else if(qty % orderInMult == 0){ $('#quantity-label').hide(); } else { var modvalue = parseInt(qty) % parseInt(orderInMult); var q4 = parseInt(orderInMult)-parseInt(modvalue); var nearestNum = parseInt(qty) + parseInt(q4); //var nearestNum = (Math.round(qty / orderInMult)+1) * orderInMult; $('#product-quantity').val(nearestNum); $('#quantity-label').show(); return false; } } } } // Bulk SOT Check if(cfValue == 'true' && carrierTypeValue == 'Tape'){ if(parseInt(stockAvaliability) == 0){ digitalErrorFunction('大変申し訳ございません、在庫切れの為ご要望にお応えすることができません。このパッケージタイプはテストとテープ&リール一体型のテスターを使用している為、最終テスト完了時にリールサイズに満たない端数ロットが生じた場合にのみテープカット品として販売しております。現在はこの端数ロット在庫が売り切れの状態です。ご注文をテープ&リール品番(末尾が+Tまたは+T&R)へ切り替えてのご購入を検討いただくか、またはマキシム製品販売代理店に少数購入が可能かお問合せお願いいたします。'); bootbox.alert('大変申し訳ございません、在庫切れの為ご要望にお応えすることができません。このパッケージタイプはテストとテープ&リール一体型のテスターを使用している為、最終テスト完了時にリールサイズに満たない端数ロットが生じた場合にのみテープカット品として販売しております。現在はこの端数ロット在庫が売り切れの状態です。ご注文をテープ&リール品番(末尾が+Tまたは+T&R)へ切り替えてのご購入を検討いただくか、またはマキシム製品販売代理店に少数購入が可能かお問合せお願いいたします。'); return false; } } } var part_no = document.getElementById('Pcode').value; if(qty.length == 0){ digitalErrorFunction('数量を入力してお進みください'); bootbox.alert('数量を入力してお進みください'); qty.focus(); return false; } if (qty % 1 != 0) { digitalErrorFunction('少数や負の数は使用しないでください(正の整数のみ)'); bootbox.alert('少数や負の数は使用しないでください(正の整数のみ)'); return false; } var userId = CQ_Analytics.ProfileDataMgr.getProperty("email"); if(CQ_Analytics.PersonalInfoStoreMgr.getProperty("isLoggedIn", true) || CQ_Analytics.PersonalInfoStoreMgr.getProperty("isLoggedIn", true) == "true") { var userType = encodeURI(CQ_Analytics.PersonalInfoStoreMgr.getProperty("userType")); if(typeof quantity != "undefined") { $.removeCookie("redirect"); $.removeCookie("part_no"); $.removeCookie("sampQty"); $.removeCookie("quantity"); $.removeCookie("buy"); } var message = ""; var data = "userId="+userId; var isOrderAllowed="true"; $.ajax({ type: "post", url: '/bin/validateRevenueOrder', async: false, data: data, success: function(msg) { if(msg.error == "genericerrorText"){ digitalErrorFunction('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); bootbox.alert('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); } else{ isOrderAllowed = msg.output.validateEmailDomain.isOrderAllowed; message = msg.output.validateEmailDomain.message; } } }); if(isOrderAllowed == "true") { $.ajax({ type: "post", url: '/bin/cartOperations', data: "input=addtocart"eId="+quoteId+""eItemNumber="+quoteItemNumber+"&qty=" + qty + "&part_no=" + encodeURIComponent(part_no), success: function(msg, textStatus, jqXHR) { if (textStatus == "success") { if(msg.match("^You") || msg.match("^Product")){ if(msg.match("^Your session expired")) { bootbox.confirm('セッションが期限切れです。もう一度ログインしてください。', function(result) { var authorizableId = CQ_Analytics.PersonalInfoStoreMgr.getProperty("authorizableId"); CQ.shared.Util.load("\x2Fbin\x2FLogoutServlet\x3Flanguage\x3Den"+"&authorizableId="+authorizableId); //window.location="/jp/storefront.html"; window.location="/jp/mymaxim/login.html"; }); } else { digitalErrorFunction(msg); bootbox.alert(msg); return false; } } else if (msg.match("^No Price found")){ //bootbox.alert(msg); digitalErrorFunction('この製品につきましてはお客様が入力した数量でのお見積もりが必要です。'); bootbox.alert('この製品につきましてはお客様が入力した数量でのお見積もりが必要です。'); return false; }else if(msg.match('この製品につきましてはお客様が入力した数量でのお見積もりが必要です。')){ digitalErrorFunction(msg); bootbox.alert(msg); return false; }else if(msg.match("^zeroInventoryErrorMsg")){ digitalErrorFunction('大変申し訳ございません、在庫切れの為ご要望にお応えすることができません。このパッケージタイプはテストとテープ&リール一体型のテスターを使用している為、最終テスト完了時にリールサイズに満たない端数ロットが生じた場合にのみテープカット品として販売しております。現在はこの端数ロット在庫が売り切れの状態です。ご注文をテープ&リール品番(末尾が+Tまたは+T&R)へ切り替えてのご購入を検討いただくか、またはマキシム製品販売代理店に少数購入が可能かお問合せお願いいたします。'); bootbox.alert('大変申し訳ございません、在庫切れの為ご要望にお応えすることができません。このパッケージタイプはテストとテープ&リール一体型のテスターを使用している為、最終テスト完了時にリールサイズに満たない端数ロットが生じた場合にのみテープカット品として販売しております。現在はこの端数ロット在庫が売り切れの状態です。ご注文をテープ&リール品番(末尾が+Tまたは+T&R)へ切り替えてのご購入を検討いただくか、またはマキシム製品販売代理店に少数購入が可能かお問合せお願いいたします。'); }else if(msg==""){ digitalErrorFunction('System error occured. Contact customer support for assistance.'); bootbox.alert('System error occured. Contact customer support for assistance.'); return false; } else if(quoteId != "" && quoteId != undefined && ! msg.match("statusCode=success")) { digitalErrorFunction(msg); var msgMatch = msg.match("^Quote compliance not met for quote number (.[0-9]*) as compliance is (.[0-9]%)$"); if(msgMatch){ bootbox.alert('Quote compliance not met for quote number '+ msgMatch[1] + ' as compliance is ' + msgMatch[2]); }else { bootbox.alert(msg); } return false } else if(msg.match('To order this part, you must order the entire inventory of')){ bootbox.alert(msg); return false; } else if(msg.match('We are sorry! Unfortunately, there is not enough excess inventory to support this bulk SOT part request')){ bootbox.alert(msg); return false; } else if(msg.match('A valid quote is required to purchase this part')){ bootbox.alert(msg); return false; }else { $('#addToCartP').modal('hide'); mycart_widget("", function(status){ if(status && typeof _satellite != "undefined") _satellite.track("cart: add"); if(msg.match("entryNumber=1") && typeof _satellite != "undefined"){ _satellite.track("cart: open"); } }); if(quoteId != null && quoteId != "" && quoteId != undefined && msg.match("statusCode=success")){ window.digitalQuoteData = { quoteID : quoteId, quoteQuantity : qty, partNo : encodeURIComponent(part_no) } if(typeof _satellite != "undefined"){ _satellite.track("use-quote"); } } if ($("#buyParams").html() == "SavedLater") { //alert("Yes inside"); deleteSavedForLater(part_no); } } } else { digitalErrorFunction('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'+ JSON.stringify(msg)); bootbox.alert('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'+ JSON.stringify(msg)); } } }); } else { digitalErrorFunction('システムエラーが発生しました。カスタマーサポートまでご連絡ください。'); $('#revenuedomainerrordialog').modal('show'); } }else{ $.cookie("quantity",qty); $("#addToCartP").modal("hide"); gigya.accounts.showScreenSet(aem.login.params); } } function redirectBulkOrder(partNumber,quantity){ var url="/jp/storefront/bulk-order.html"; if(typeof partNumber != "undefined" && partNumber != "") { url+="?partNumber="+partNumber; } if(typeof quantity != "undefined" && quantity != "") { url+="&quantity="+quantity; } window.location.href = url; } function redirectToModelN(){ window.open("https://maxim.modeln.com/", '_blank',"width=400,height=150").focus(); } $(document).on('click', '.quoteDetails', function() { $("#useQuoteModal .modal-body").html(""); var index = ""; var quoteNo = ""; var part = $(this).data("part-no"); if(part == "" || part == "undefined") { digitalErrorFunction('有効な型番をご入力ください'); bootbox.alert('有効な型番をご入力ください'); return false; } if(quoteNo != "" && quoteNo != "undefined") { getQuotesList(part, index, quoteNo); } else { getQuotesList(part, index, quoteNo); digitalErrorFunction('有効なお見積もり番号をご入力ください'); //bootbox.alert('有効なお見積もり番号をご入力ください'); //return false; } }); var useQuoteModalTemplate = $("#useQuoteModalBody").html(); function getQuotesList(part, index, quoteId) { var userType = CQ_Analytics.PersonalInfoStoreMgr.getProperty("userType"); var oldPart = $("#partHidden"+index).val(); //oldpart == part to handle unnecessary quotelists api calls for same part. if(part == "" || part == undefined || part.length < 5 || oldPart == part) { return false; } if(userType == "" || userType == undefined){ $("#modelBuyCartButton").trigger("click"); gigya.accounts.showScreenSet(aem.login.params); return false; } var queryString = "quoteId="+quoteId+"&pendingStatus=&summery=disti&quantity=&materialNumber="+encodeURIComponent(part); var materialNumber = part; var activeFlag = 0; $.ajax({ url:"/bin/QuoteMangementServlet", type: 'GET', data: queryString, success:function(data){ //alert(JSON.stringify(data)); var useQuoteTemplate = Handlebars.compile(useQuoteModalTemplate); var useQuoteJson = {quotesList : [], code : materialNumber, index : index}; if(data.status == false) { var useQuoteJson = {quotesList : [], code : materialNumber, index : index, errorMessage : data.error.errorList.errors.message }; $("#modelBuyCartButton").trigger("click"); $("#quoteLineFlag"+index).val("false"); $('#useQuoteModal').html(useQuoteTemplate(useQuoteJson)); $('#useQuoteModal').modal('show'); digitalErrorFunction(data.error.errorList.errors.message); return false; } else { var quoteListJson = data.quoteList.quotes.quote; } if($.type(data.quoteList.quotes.quote) != "array") { if($.type(quoteListJson.quote_items) != "array") { if(quoteListJson.quote_items.product.code == materialNumber) { var quoteId = quoteListJson.ecom_qt_id_h; var quantity = quoteListJson.quote_items.quantity; //var price = findPriceByQuantity(quoteListJson.quote_items.product.volumePrices, quoteListJson.quote_items.quantity); price = (quoteListJson.quote_items.requote_price * 1).toFixed(3); if(userType == "DISTRIBUTOR") { price = (quoteListJson.quote_items.adj_disti_cost * 1).toFixed(3); quoteId = quoteListJson.modelNQuoteNumber; } var total = price * quantity; total =total.toFixed(3); if(quoteListJson.quote_items.quoteItemStatus == "ACTIVE" && quantity != "" && quantity != "undefined"){ activeFlag = 1; useQuoteJson.quotesList.push({"totalCost":total, "quoteItemId" : quoteListJson.quote_items.code, "status" : quoteListJson.quote_items.quoteItemStatus, "quantity":quantity, "entryNumber":quoteListJson.quote_items.item_num,"quoteId": quoteId, "price": price, "orderCompilance": quoteListJson.quote_items.ordcompliance}); } } else { //return useQuoteJson; //break; } } else { for(var i =0; i