APPLICATION NOTE 2877

Modifying the pulse shape of DS315x using Test Registers


Abstract: This application note describes how to modify the pulse shapes of the DS3151, DS3152, DS3153 and DS3154. While the pulse of the DS315x will always be within specification, sometimes the pulse shape is not exactly what the customer would prefer. This application note will describe how to modify the pulse width and the amplitude in T3, E3 and STS-1 mode and the waveshape of the pulse in T3 and STS-1 mode. All of this can be accomplished by changing the values of the internal test registers. The DS3154DK design kit was used to obtain the scope plots used in this application note.

Introduction

This application note describes how to modify the pulse shapes of the DS3151, DS3152, DS3153, and DS3154 (DS315x). While the pulse of the DS315x will always be within specification, sometimes the pulse shape is not exactly what the customer would prefer. This application note describes how to modify the pulse width and the amplitude in T3, E3, and STS-1 mode and how to modify the waveshape of the pulse in T3 and STS-1 mode. All of this can be accomplished by changing the values of the internal test registers. The DS3154DK design kit was used to obtain the scope plots used in this application note.

Figure 1a.The typical E3 and T3 transmission pulse.

Figure 1b. The typical E3 and T3 transmission pulse.
Figure 1. The typical E3 and T3 transmission pulse.

Figure 1 shows the transmitted pulse shape in E3 and T3 mode without the use of test registers. The pulse width and the amplitude of the pulse can be modified in E3, T3, or STS-1 mode by changing the register values of the test registers at address 0Ah for line interface unit (LIU) port 1, 1Ah for LIU port 2, 2Ah for LIU port 3, and 3Ah for LIU port 4.

Modifying the Pulse Width of the Transmission Pulse in E3, T3, or STS-1 Mode

The LIU can use either an 11-stage delay-locked loop (DLL) circuit or a 12-stage DLL circuit. The more stages present in the DLL, the narrower the pulse width will be, or vice versa. By setting the register addresses 0Ah, 1Ah, 2Ah, and 3Ah (LIU ports 1, 2, 3, and 4, respectively) to a value of 01h, the LIU will use an 11-stage DLL circuit. By setting test register addresses 0Ah, 1Ah, 2Ah, and 3Ah to a value of 02h, the LIU will use a 12-stage DLL circuit.

By default, the E3 mode LIU uses an 11-stage DLL and the TLBO is ignored. In T3 and STS-1 mode, the LIU uses an 11-stage DLL when TLBO = 1 and a 12-stage DLL when TLBO = 0.

In E3 mode, if we want to decrease the pulse width, then we can force the LIU to use a 12-stage DLL by setting the register addresses 0Ah, 1Ah, 2Ah, and 3Ah to 02h for LIU ports 1, 2, 3, and 4, respectively. Figure 2 shows the transformation for the E3 pulse width from a typical pulse shape to a narrower pulse shape.

In T3 and STS-1 mode, when TLBO = 0, the LIU uses a 12-stage DLL. To increase the pulse width, we can force the LIU to use an 11-stage DLL by setting the register addresses 0Ah, 1Ah, 2Ah, and 3Ah to 01h for LIU ports 1, 2, 3, and 4, respectively. Figure 3 shows the transformation of the T3 pulse width from a typical pulse to a wider pulse.

Figure 2a. The typical E3 pulse and the narrower E3 pulse using a 12-stage DLL.

Figure 2b. The typical E3 pulse and the narrower E3 pulse using a 12-stage DLL.
Figure 2. The typical E3 pulse and the narrower E3 pulse using a 12-stage DLL.

Figure 3a. The typical T3 pulse with 12-stage DLL and the wider T3 pulse using an 11-stage DLL when TLBO = 0.

Figure 3b. The typical T3 pulse with 12-stage DLL and the wider T3 pulse using an 11-stage DLL when TLBO = 0.
Figure 3. The typical T3 pulse with 12-stage DLL and the wider T3 pulse using an 11-stage DLL when TLBO = 0.

Similarly, in T3 and STS-1 mode, when TLBO = 1, the LIU uses an 11-stage DLL. To decrease the pulse width, we can force the LIU to use a 12-stage DLL by setting the register addresses 0Ah, 1Ah, 2Ah, and 3Ah to 02h for LIU ports 1, 2, 3, and 4, respectively. Figure 4 shows the transformation of the T3 pulse from a typical pulse shape to a narrower pulse.

Figure 4a. The typical T3 pulse with 11-stage DLL and the narrower T3 pulse using a 12-stage DLL when TLBO = 1.

Figure 4b. The typical T3 pulse with 11-stage DLL and the narrower T3 pulse using a 12-stage DLL when TLBO = 1.
Figure 4. The typical T3 pulse with 11-stage DLL and the narrower T3 pulse using a 12-stage DLL when TLBO = 1.

Modifying the Amplitude of the Transmission Pulse in E3, T3, or STS-1 Mode

By setting the DS315x test register addresses 0Ah, 1Ah, 2Ah, and 3Ah to different values, the amplitude of the transmission pulse can be increased or decreased in E3, T3, and STS-1 mode. When the register addresses 0Ah, 1Ah, 2Ah, and 3Ah are set to a value of 08h, the amplitude is increased by 2% for LIU ports 1, 2, 3, and 4, respectively. Figure 5 shows 2% increase in amplitude for the E3 pulse.

Figure 5a.  The typical E3 pulse and the same pulse increased by 2% in amplitude by setting the test register value to 08h.

  Distributor book cost is not available. Please Request a Quote in 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('Lead time'); } 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('Unfortunately there is no inventory to support this request. We only sell this type of product when we have excess inventory available because this package type comes off of our testers in reels. When we have excess inventory from a lot that completes final test, we can sell this product on cut tape strips in quantities less than reel size until it is sold out, which is currently the case. Please change your order to the tape & reel part number (usually ending in +T or +T&R) if you would like to order this product or check with our distribution partners in your region for smaller quantities.'); } } } else { document.getElementById('buyParams').innerHTML = "Default"; digitalErrorFunction('System error occured. customer support for assistance.'); bootbox.alert('System error occured. customer support for assistance.'); } } }); 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('System error occured. Contact customer support for assistance.'); bootbox.alert('System error occured. Contact customer support for assistance.'); } else if(msg.status == false){ if(msg.message.match("^Your session expired")){ bootbox.confirm('Your session expired. Please login and try again.', function(result) { var authorizableId = CQ_Analytics.PersonalInfoStoreMgr.getProperty("authorizableId"); CQ.shared.Util.load("\x2Fbin\x2FLogoutServlet\x3Flanguage\x3Den"+"&authorizableId="+authorizableId); window.location="/en/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 currently does not carry this part, but you can contact them here to see if they are able to procure it. If not, please contact our technical applications engineers , who can help in finding a similar device you could use as a replacement.
'); bootbox.alert('
Rochester currently does not carry this part, but you can contact them here to see if they are able to procure it. If not, please contact our technical applications engineers , who can help in finding a similar device you could use as a replacement.
'); } } else{ if(typeof _satellite != "undefined"){ _satellite.track("rochester-popup"); } bootbox.alert('
Rochester currently does not carry this part, but you can contact them here to see if they are able to procure it. If not, please contact our technical applications engineers , who can help in finding a similar device you could use as a replacement.
'); } }, 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('System error occured. Contact customer support for assistance.'); bootbox.alert('System error occured. Contact customer support for assistance.'); } 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('System error occured. Contact customer support for assistance.'); bootbox.alert('System error occured. Contact customer support for assistance.'); } 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('System error occured. Contact customer support for assistance.'); bootbox.alert('System error occured. Contact customer support for assistance.'); }else if (result != "") { if(result.errors != undefined && result.errors[0].message) { document.cookie="mySearchServlet="+window.location+";domain=.maximintegrated.com;path=/"; digitalErrorFunction('System error occured. Contact customer support for assistance.'); bootbox.alert('System error occured. Contact customer support for assistance.'); }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('System error occured. customer support for assistance.'); bootbox.alert('System error occured. customer support for assistance.'); } } }); } else { digitalErrorFunction('System error occured. Contact customer support for assistance.'); $('#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('System error occured. Contact customer support for assistance.'); bootbox.alert('System error occured. Contact customer support for assistance.'); } else if(msg.status == false){ if(msg.message.match("^Your session expired")){ bootbox.confirm('Your session expired. Please login and try again.', function(result) { var authorizableId = CQ_Analytics.PersonalInfoStoreMgr.getProperty("authorizableId"); CQ.shared.Util.load("\x2Fbin\x2FLogoutServlet\x3Flanguage\x3Den"+"&authorizableId="+authorizableId); window.location="/en/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("Maxim's free sample policy limits the number of orders that each member is allowed.You have exceeded this maximum.If you feel you have received this message in error, please email samples-admin@maximintegrated.com "); return; } else if(typeof itemCount != 'undefined' && parseInt(itemCount) >= 4){ bootbox.alert("You have exceeded the sample line maximum of four (4) lines per order. You may purchase additional parts by visiting our ordering page here, and searching for parts to order."); 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('Maximum quantity exceeded. Please lower the quantity to proceed.'); bootbox.alert('Maximum quantity exceeded. Please lower the quantity to proceed.'); return false; } else if (msg.match("^You") || msg.match("^Product")) { bootbox.confirm('Your session expired. Please login and try again.', function (result) { var authorizableId = CQ_Analytics.PersonalInfoStoreMgr.getProperty("authorizableId"); CQ.shared.Util.load("\x2Fbin\x2FLogoutServlet\x3Flanguage\x3Den" + "&authorizableId=" + authorizableId); window.location = "/en/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('System error occured. Contact customer support for assistance.' + JSON.stringify(msg)); bootbox.alert('System error occured. Contact customer support for assistance.' + JSON.stringify(msg)); } } }); } else { digitalErrorFunction('Not enough quantity available for samples, the max quantity available for sample is' + sampQty); bootbox.alert('Not enough quantity available for samples, the max quantity available for sample is' + 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('Enter quantity to proceed'); bootbox.alert('Enter quantity to proceed'); 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('Your session expired. Please login and try again.', function(result) { var authorizableId = CQ_Analytics.PersonalInfoStoreMgr.getProperty("authorizableId"); CQ.shared.Util.load("\x2Fbin\x2FLogoutServlet\x3Flanguage\x3Den"+"&authorizableId="+authorizableId); window.location="/en/mymaxim/login.html"; }); } else { digitalErrorFunction(msg); bootbox.alert(msg); return false; } } else if (msg.match("^No Price found")){ //bootbox.alert(msg); digitalErrorFunction('This part requires a quote for the quantity you have entered.'); bootbox.alert('This part requires a quote for the quantity you have entered.'); return false; } else if(msg.match('This part requires a quote for the quantity you have entered.')){ digitalErrorFunction(msg); bootbox.alert(msg); return false; } 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); bootbox.alert(msg); return false } else { $('#useQuoteModal').modal('hide'); mycart_widget(); if ($("#buyParams").html() == "SavedLater") { //alert("Yes inside"); deleteSavedForLater(part_no); } } } else { digitalErrorFunction('System error occured. Contact customer support for assistance.'+ JSON.stringify(msg)); bootbox.alert('System error occured. Contact customer support for assistance.'+ 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('Unfortunately there is no inventory to support this request. We only sell this type of product when we have excess inventory available because this package type comes off of our testers in reels. When we have excess inventory from a lot that completes final test, we can sell this product on cut tape strips in quantities less than reel size until it is sold out, which is currently the case. Please change your order to the tape & reel part number (usually ending in +T or +T&R) if you would like to order this product or check with our distribution partners in your region for smaller quantities.'); bootbox.alert('Unfortunately there is no inventory to support this request. We only sell this type of product when we have excess inventory available because this package type comes off of our testers in reels. When we have excess inventory from a lot that completes final test, we can sell this product on cut tape strips in quantities less than reel size until it is sold out, which is currently the case. Please change your order to the tape & reel part number (usually ending in +T or +T&R) if you would like to order this product or check with our distribution partners in your region for smaller quantities.'); return false; } } } var part_no = document.getElementById('Pcode').value; if(qty.length == 0){ digitalErrorFunction('Enter quantity to proceed'); bootbox.alert('Enter quantity to proceed'); qty.focus(); return false; } if (qty % 1 != 0) { digitalErrorFunction('Please do not use decimals or negatives (positive integers only).'); bootbox.alert('Please do not use decimals or negatives (positive integers only).'); 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('System error occured. Contact customer support for assistance.'); bootbox.alert('System error occured. Contact customer support for assistance.'); } 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('Your session expired. Please login and try again.', function(result) { var authorizableId = CQ_Analytics.PersonalInfoStoreMgr.getProperty("authorizableId"); CQ.shared.Util.load("\x2Fbin\x2FLogoutServlet\x3Flanguage\x3Den"+"&authorizableId="+authorizableId); //window.location="/en/storefront.html"; window.location="/en/mymaxim/login.html"; }); } else { digitalErrorFunction(msg); bootbox.alert(msg); return false; } } else if (msg.match("^No Price found")){ //bootbox.alert(msg); digitalErrorFunction('This part requires a quote for the quantity you have entered.'); bootbox.alert('This part requires a quote for the quantity you have entered.'); return false; }else if(msg.match('This part requires a quote for the quantity you have entered.')){ digitalErrorFunction(msg); bootbox.alert(msg); return false; }else if(msg.match("^zeroInventoryErrorMsg")){ digitalErrorFunction('Unfortunately there is no inventory to support this request. We only sell this type of product when we have excess inventory available because this package type comes off of our testers in reels. When we have excess inventory from a lot that completes final test, we can sell this product on cut tape strips in quantities less than reel size until it is sold out, which is currently the case. Please change your order to the tape & reel part number (usually ending in +T or +T&R) if you would like to order this product or check with our distribution partners in your region for smaller quantities.'); bootbox.alert('Unfortunately there is no inventory to support this request. We only sell this type of product when we have excess inventory available because this package type comes off of our testers in reels. When we have excess inventory from a lot that completes final test, we can sell this product on cut tape strips in quantities less than reel size until it is sold out, which is currently the case. Please change your order to the tape & reel part number (usually ending in +T or +T&R) if you would like to order this product or check with our distribution partners in your region for smaller quantities.'); }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('System error occured. Contact customer support for assistance.'+ JSON.stringify(msg)); bootbox.alert('System error occured. Contact customer support for assistance.'+ JSON.stringify(msg)); } } }); } else { digitalErrorFunction('System error occured. Contact customer support for assistance.'); $('#revenuedomainerrordialog').modal('show'); } }else{ $.cookie("quantity",qty); $("#addToCartP").modal("hide"); gigya.accounts.showScreenSet(aem.login.params); } } function redirectBulkOrder(partNumber,quantity){ var url="/en/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('Please enter a valid part number.'); bootbox.alert('Please enter a valid part number.'); return false; } if(quoteNo != "" && quoteNo != "undefined") { getQuotesList(part, index, quoteNo); } else { getQuotesList(part, index, quoteNo); digitalErrorFunction('Enter valid quote number'); //bootbox.alert('Enter valid quote number'); //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