let createOrderFrame=()=>{
let me = window.myOrderFrame = document.createElement("div");
me.setAttribute("id","frmOrder");
me.className="container-fluid ";
me.innerHTML=`
0
$.00
`;
$('#app').append(me);
me.addToOrder=(openType,optionData)=>{
optionData=JSON.parse(optionData.replace(/'/g,'"'));
console.log("AddToOrder",openType,optionData);
let me=document.createElement("li");
me.multiplier = 100; // assume always 100 multipier
me.price = (openType.substr(0,1)==="b")?optionData.ask:optionData.bid;
me.priceEffect = ((openType.substr(0,1)==="b")?-1:1);
me.quantity = 1; // at this point, we add 1 by default.
me.updateNumbers=()=>{
let prevTotalCostAmount=me.totalCostAmount;
me.singleCostAmount = me.priceEffect * me.multiplier * me.price
me.totalCostAmount = me.singleCostAmount * me.quantity;
if ((prevTotalCostAmount !== undefined) && (prevTotalCostAmount !== me.totalCostAmount)) {
myOrderFrame.costAmount += (me.totalCostAmount - prevTotalCostAmount);
}
if (me.getElementsByClassName("quantity")[0] !== undefined) {
me.getElementsByClassName("quantity")[0].innerText = me.quantity;
me.getElementsByClassName("singlePrice")[0].innerText = me.singleCostAmount.toLocaleString('en',{minimumFractionDigits: 0, maximumFractionDigits: 2}).padStart(6,"\xa0");
me.getElementsByClassName("totalCost")[0].innerText = me.totalCostAmount.toLocaleString('en',{minimumFractionDigits: 0, maximumFractionDigits: 2});
}
};
me.updateNumbers();
me.increaseQty=_=>{
me.quantity += 1;
me.updateNumbers();
}
me.decreaseQty=_=>{
if (me.quantity>1) { // don't go below 0, if we did, we had to chnage the order type to use the correct (bid/ask) price.
me.quantity -= 1;
me.updateNumbers();
}
}
me.displayFrmPriceChange=_=>{
$("#changePriceValue").val(parseInt(me.price*100,10));
let clickElePos=$(event.target).position();
$("#frmChangePrice").css("left",clickElePos.left).css("top",clickElePos.top);
$("#frmChangePrice").data('targetLine',event.target.parentElement);
$("#frmChangePrice").show();
}
me.changePrice=newPrice=>{
me.price=newPrice;
me.updateNumbers();
}
me.removeFromOrder=_=>{
me.quantity=0;
me.updateNumbers();
me.parentElement.removeChild(me);
}
let splitOptionDetails=(input)=>{
let symbolRest=input.split(/ +|_/);
let symbol=symbolRest[0];
let putCall=(symbolRest[1].indexOf("P")>-1)?"P":"C";
let dateStrike = symbolRest[1].split(putCall);
let date = dateStrike[0].replace(/(..)(..)(..)/,"20$3-$1-$2");
let strike = dateStrike[1];
return({symbol:symbol, putCall:putCall, date:date, strike:strike });
}
let optionDetails=splitOptionDetails(optionData.symbol);
me.innerHTML=`
[X]${myMasterFilter.selectedDate}|${myMasterFilter.selectedTime.substr(0,5)}|${((openType==="buy")?" ":"") + openType}@${Math.abs(me.singleCostAmount).toLocaleString('en',{minimumFractionDigits: 0, maximumFractionDigits: 2}).padStart(6,"\xa0")}|${me.quantity}