Unverified Commit bbc19b82 authored by bitsoko's avatar bitsoko Committed by GitHub

Merge pull request #56 from bitsoko-services/master

updates and fixes
parents 4bd06ceb 752f6f81
......@@ -228,16 +228,19 @@ select {
.ps-scrollbar-y-rail {
z-index: 9999;
}
/************** Progress Dots Start *******************/
@keyframes blink {
0% {
opacity: .2;
opacity: .2;
}
20% {
opacity: 1;
opacity: 1;
}
100% {
opacity: .2;
opacity: .2;
}
}
......@@ -255,6 +258,7 @@ select {
.saving span:nth-child(3) {
animation-delay: .4s;
}
/************** Progress Dots End **************************/
/***************************************
CHOOSE WALLET MODAL
......@@ -4730,6 +4734,63 @@ ul.side-nav.leftside-navigation li:hover {
font-weight: 700;
}
/*******************************************
Autocomplete Input
*********************************************/
.autocomplete {
/*the container must be positioned relative:*/
position: relative;
display: inline-block;
}
input {
border: 1px solid transparent;
background-color: #f1f1f1;
padding: 10px;
font-size: 16px;
}
input[type=text] {
background-color: #f1f1f1;
width: 100%;
}
input[type=submit] {
background-color: DodgerBlue;
color: #fff;
cursor: pointer;
}
.autocomplete-items {
position: absolute;
border: 1px solid #d4d4d4;
border-bottom: none;
border-top: none;
z-index: 99;
/*position the autocomplete items to be the same width as the container:*/
top: 100%;
left: 0;
right: 0;
}
.autocomplete-items div {
padding: 10px;
cursor: pointer;
background-color: #fff;
border-bottom: 1px solid #d4d4d4;
}
.autocomplete-items div:hover {
/*when hovering an item:*/
background-color: #e9e9e9;
}
.autocomplete-active {
/*when navigating through the items using the arrow keys:*/
background-color: DodgerBlue !important;
color: #ffffff;
}
/*******************************************
Token Section
*********************************************/
......
......@@ -325,11 +325,8 @@
</svg>
</div>
<h5 style="text-align: center; padding: 5%; margin:0px;">Add Operators</h5>
<div class="row" style="margin-bottom: 0px;">
<div class="input-field col s12 deliveryField" style="margin-top:30px;">
<input id="delivery-members" type="text" class="validate" placeholder="username">
<ul class="autocomplete-content dropdown-content"></ul>
</div>
<div class="autocomplete" style="width: 90%; display: block; margin: 20px auto;">
<input id="delivery-members" type="text" name="myCountry" placeholder="Enter name">
</div>
<div class="row" style="text-align: center;">
<button class="btn" onclick="manageOperators();">add</button>
......@@ -380,9 +377,8 @@
</div>
<h5 style="text-align: center; padding: 5%; margin:0px;">Add Managers</h5>
<div class="row" style="margin-bottom: 0px;">
<div class="input-field col s12 addNewManager" style="margin-top:30px;">
<input id="storeManagers" type="text" class="validate" placeholder="username">
<ul class="autocomplete-content dropdown-content"></ul>
<div class="autocomplete" style="width: 90%; display: block; margin: 20px auto;">
<input id="storeManagers" type="text" name="myCountry" placeholder="Enter name">
</div>
</div>
<div class="row" style="text-align: center;">
......@@ -712,22 +708,25 @@
<p style="text-align: center; padding: 0px 5%; margin: 0px;">Disposable, sealable, grease-proof wrapping, perfect for soups, sauces, fries, burgers and more</p></br>
<div class="row" style="text-align: center; background: #ecebeb; margin-top: 10px;">
<div class="row" style="margin: 0px; padding: 5px 0px;">
<div class="col s3" style="padding:0px;">
<div style="padding:0px; width: 20%; float: left; font-size: 0.7em;">
<div class="col s12" style="text-align: center; font-size: 1em;">Tiny<br>5 x 10<br>Kes. 1</div>
</div>
<div class="col s3" style="padding:0px;">
<div style="padding:0px; width: 20%; float: left; font-size: 0.7em;">
<div class="col s12" style="text-align: center; font-size: 1em;">Small<br>10 x 20<br>Kes. 3</div>
</div>
<div class="col s3" style="padding:0px;">
<div style="padding:0px; width: 20%; float: left; font-size: 0.7em;">
<div class="col s12" style="text-align: center; font-size: 1em;">Medium<br>15 x 30<br>Kes. 5</div>
</div>
<div class="col s3" style="padding:0px;">
<div class="col s12" style="text-align: center; font-size: 1em;">Large<br>20 x 45<br>Kes. 8</div>
<div style="padding:0px; width: 20%; float: left; font-size: 0.7em;">
<div class="col s12" style="text-align: center; font-size: 1em;">Large<br>20 x 45<br>Kes. 7</div>
</div>
<div style="padding:0px; width: 20%; float: left; font-size: 0.7em;">
<div class="col s12" style="text-align: center; font-size: 1em;">Extra Large<br>20 x 45<br>Kes. 9</div>
</div>
</div>
</div>
<div class="row packInput" style="text-align: center;">
<form action="#" style="width: fit-content; display: block; margin-left: auto; margin-right: auto;">
<form action="#" style="width: fit-content; display: block; margin-left: auto; margin-right: auto; width: 90%;">
<p>
<label style="display: block;">
<input class="packCheckbox" id="wrappingBagTiny" packagingType="wrappingBag" type="checkbox" />
......@@ -776,6 +775,18 @@
</span>
</label>
</p>
<p>
<label style="display: block;">
<input class="packCheckbox" id="wrappingBagExtLarge" packagingType="wrappingBag" type="checkbox" />
<span class="packCounter" style="color: black; display: block; text-align: left;">Extra Large:
<span style="padding-left: 25px;float: right;">
<a href="#" class="opacitySelectedColor packMinus disabled btn" style="color: white; border: none; border-radius: 50%; height: 25px; width: 25px; line-height: 20px; padding: 2px 9px;" disabled="disabled">-</a>
<input disabled="disabled" step="50" value="100" style="width: 50px; text-align: center; height: 1.5rem; padding-left: 10px;" type="number" id="wrappingLarge-9" />
<a href="#" class="opacitySelectedColor packPlus disabled btn" style="color: white; border: none; border-radius: 50%; height: 25px; width: 25px; line-height: 20px; padding: 2px 9px;" disabled="disabled">+</a>
</span>
</span>
</label>
</p>
</form>
<div style="display: block; width: 100%; background: #000000eb; color: white; padding: 10px;">Delivery: <span class="delPrice">0 kes</span> | Packaging: <span class="packPriceVal">0 kes</span></div>
</div>
......@@ -1431,13 +1442,12 @@
<path style="fill:#231F20;" d="M224,344h64c13.255,0,24-10.745,24-24s-10.745-24-24-24h-64c-13.255,0-24,10.745-24,24 S210.745,344,224,344z M224,312h64c4.418,0,8,3.582,8,8s-3.582,8-8,8h-64c-4.418,0-8-3.582-8-8S219.582,312,224,312z"></path>
</svg>
</div>
<h5 style="margin:0px;font-size: 1.3rem;padding-top: 10px;">SPONSORED PRODUCTS</h5>
<h5 style="margin:0px;font-size: 1.3rem;padding-top: 10px;">Add Items To Your Inventory</h5>
</div>
<div class="col s12">
<div class="row">
<div class="input-field col s12">
<input type="text" id="check-prod-input" class="autocomplete sponsoredPrd" placeholder="Add Sponsored Products">
<label for="check-prod-input"></label>
<div class="autocomplete" style="width: 90%; display: block; margin: 20px auto;">
<input id="check-prod-input" type="text" name="myCountry" placeholder="Add Sponsored Products" class="sponsoredPrd">
</div>
</div>
<div class="row sprndProd"></div>
......@@ -2856,9 +2866,8 @@
<div class="row storeSettingsDivs">
<h6>Transfer Store</h6>
<div class="row">
<div class="input-field col s12">
<input id="transfer-shop" type="text" class="validate" placeholder="username" stitm="shopTransfer">
<label for="transfer-shop" class="">Transfer Shop</label>
<div class="autocomplete" style="width: 90%; display: block; margin: 20px auto;">
<input id="transfer-shop" type="text" name="myCountry" placeholder="Enter name">
</div>
</div>
</div>
......
var deliveryGuysNames = new Array();
var insufficientOrderNum;
var creditTopup;
......@@ -731,22 +732,83 @@ function userNamesInput() {
for (var iii in e.users) {
var nm = e.users[iii].name;
var icn = e.users[iii].icon;
deliveryGuysNames.push(nm)
//var id = e.users[iii].id;
dat[nm] = icn;
}
$("#transfer-shop").autocomplete({
data: dat
});
$("#storeManagers").autocomplete({
data: dat
});
$("#delivery-members").autocomplete({
data: dat
});
autocomplete(document.getElementById("delivery-members"), deliveryGuysNames);
autocomplete(document.getElementById("storeManagers"), deliveryGuysNames);
autocomplete(document.getElementById("transfer-shop"), deliveryGuysNames);
});
}
function autocomplete(inp, arr) {
var currentFocus;
inp.addEventListener("input", function(e) {
var a, b, i, val = this.value;
closeAllLists();
if (!val) { return false;}
currentFocus = -1;
a = document.createElement("DIV");
a.setAttribute("id", this.id + "autocomplete-list");
a.setAttribute("class", "autocomplete-items");
this.parentNode.appendChild(a);
for (i = 0; i < arr.length; i++) {
if (arr[i].substr(0, val.length).toUpperCase() == val.toUpperCase()) {
b = document.createElement("DIV");
b.innerHTML = "<strong>" + arr[i].substr(0, val.length) + "</strong>";
b.innerHTML += arr[i].substr(val.length);
b.innerHTML += "<input type='hidden' value='" + arr[i] + "'>";
b.addEventListener("click", function(e) {
inp.value = this.getElementsByTagName("input")[0].value;
closeAllLists();
});
a.appendChild(b);
}
}
});
inp.addEventListener("keydown", function(e) {
var x = document.getElementById(this.id + "autocomplete-list");
if (x) x = x.getElementsByTagName("div");
if (e.keyCode == 40) {
currentFocus++;
addActive(x);
} else if (e.keyCode == 38) {
currentFocus--;
addActive(x);
} else if (e.keyCode == 13) {
e.preventDefault();
if (currentFocus > -1) {
if (x) x[currentFocus].click();
}
}
});
function addActive(x) {
if (!x) return false;
removeActive(x);
if (currentFocus >= x.length) currentFocus = 0;
if (currentFocus < 0) currentFocus = (x.length - 1);
x[currentFocus].classList.add("autocomplete-active");
}
function removeActive(x) {
for (var i = 0; i < x.length; i++) {
x[i].classList.remove("autocomplete-active");
}
}
function closeAllLists(elmnt) {
var x = document.getElementsByClassName("autocomplete-items");
for (var i = 0; i < x.length; i++) {
if (elmnt != x[i] && elmnt != inp) {
x[i].parentNode.removeChild(x[i]);
}
}
}
document.addEventListener("click", function (e) {
closeAllLists(e.target);
});
}
function persistentFunc() {
if (navigator.storage && navigator.storage.persist)
navigator.storage.persisted().then(persistent => {
......
......@@ -19,17 +19,46 @@ function sponpProdNamesInput() {
filter: 'sponsored'
}).then(function(e) {
var dat = {}
var itemDat = new Array();
sponProds = e.products;
for (var iii in e.products) {
var nm = e.products[iii].name + " - " + e.products[iii].price;
var icn = e.products[iii].icon;
var itemName = e.products[iii].name
//var id = e.users[iii].id;
dat[nm] = icn;
itemDat.push(itemName)
}
inventoryInput = M.Autocomplete.init(document.querySelectorAll('#check-prod-input'), {});
inventoryInput[0].updateData(dat);
autocomplete(document.getElementById("check-prod-input"), itemDat);
});
}
//Process Inventory Order
function inventoryOrder(prid) {
var quantity = document.getElementById("prodRestNo-" + prid).value;
var prodPrice = document.getElementById("prodPrice-" + prid).value;
var totalCost = quantity * prodPrice;
if (totalCost > shopBalance) {
getInsufficientFundsOrderbook(JSON.stringify(totalCost));
} else {
doFetch({
action: 'inventoryOrder',
shop: localStorage.getItem('soko-active-store'),
item: prid,
quantity: quantity,
price: prodPrice,
}).then(function(e) {
if (e.status == 'ok') {
M.toast({
html: 'Order request sent successfully'
})
} else {
M.toast({
html: 'Error!!! Try again later'
})
}
})
}
}
......@@ -48,6 +48,11 @@ function packagingDataArray() {
} else {
wrappingBagDataArray["large-8"] = "0"
}
if ($("#wrappingBagLarge").prop("checked") == true) {
wrappingBagDataArray["large-9"] = $("#wrappingLarge-9").val()
} else {
wrappingBagDataArray["large-9"] = "0"
}
resolve(wrappingBagDataArray);
}
});
......@@ -61,7 +66,7 @@ function wrappingBagModal(activePackaging) {
getDistanceFromLatLonInKm(e.coords.latitude, e.coords.longitude, -1.284723, 36.8178113).then(function(distance) {
$('#' + activePackaging + '').modal('open');
var distance = distance
delPrice = distance * 30
delPrice = distance * 10
$('.delPrice').html(numberify(delPrice))
if (baseCd == undefined) {
baseCd = 'kes'
......@@ -140,7 +145,8 @@ function packagingTotalCost() {
var tinyWrappingBag = $("#wrappingTiny-1").val() * 1
var smallWrappingBag = $("#wrappingSmall-3").val() * 3
var meduiumWrappingBag = $("#wrappingMeduim-5").val() * 5
var largeWrappingBag = $("#wrappingLarge-8").val() * 8
var largeWrappingBag = $("#wrappingLarge-8").val() * 7
var exLargeWrappingBag = $("#wrappingLarge-8").val() * 9
if (packagingType == 'paperBag') {
if ($("#smallPaperbag").prop("disabled") == true) {
......@@ -168,7 +174,10 @@ function packagingTotalCost() {
if ($("#wrappingBagLarge").prop("checked") == false) {
largeWrappingBag = 0
}
var totalCost = tinyWrappingBag + smallWrappingBag + meduiumWrappingBag + largeWrappingBag
if ($("#wrappingBagExtLarge").prop("checked") == false) {
exLargeWrappingBag = 0
}
var totalCost = tinyWrappingBag + smallWrappingBag + meduiumWrappingBag + largeWrappingBag + exLargeWrappingBag
$(".packPrice").html(parseInt(totalCost) + parseInt(numberify(delPrice)) + " " + baseCd);
$(".packPriceVal").html(totalCost + " " + baseCd);
}
......
......@@ -171,17 +171,17 @@ $(document).on('touchstart click', '#noSponsoredBtn', function (event) {
$("#rmvSpnsrdProd").hide();
});
$('#spnsrdModal').on('click', $('ul.autocomplete-content li'), function () {
var value = $('.sponsoredPrd').val();
$('#spnsrdModal').on('click', $('.autocomplete-items div'), function () {
var value = $('#check-prod-input').val();
if (value != '') {
var sponsoredProduct = $('.sponsoredPrd').val();
var sponsoredProduct = value;
for (var i in sponProds) {
var name = sponProds[i].name;
var id = sponProds[i].id;
var price = sponProds[i].price;
if (sponsoredProduct == name + " - " + price) {
if (sponsoredProduct == name) {
M.toast({
html: 'Adding sponsored produc',
html: 'Adding sponsored product',
classes: 'spnsrdTst',
displayLength: 10000
})
......@@ -257,7 +257,7 @@ function productsUpdater() {
'<option value="4">per Week</option>' +
'<option value="5">per Month</option>' +
'<option value="6">per Litre</option>' +
'</select></div></div></div><div style="width: 100%;text-align: center;margin: 20px 0px 0px;color: rgba(0,0,0,0.4);">availability</div>' + '<div class="row"><div class="input-field col s6">' + '<input placeholder="" prnm="rstQuantity" id="prodRestNo-' + reqs[i].id + '" type="number" value="' + reqs[i].rstQuantity + '" class="validate" min="0" prid="' + reqs[i].id + '" max="1000">' + '<label for="prodRestNo-' + reqs[i].id + '" class="active"> Quantity</label></div>' + '<div class="input-field col s6"><div class="select-wrapper initialized">' + '<select id="prodRestDur-' + reqs[i].id + '" prnm="rstDuration" class="initialized">' + '<option value="" disabled="" selected="' + reqs[i].rstDuration + '">duration</option>' + '<option value="day">per Day</option>' + '<option value="week">per Week</option>' + '<option value="month">per Month</option><option value="litre">per Litre</option>' + '</select></div></div></div>' + '<div class="row" style="text-align: right;margin: 20px 0px;"> </div>' + '</form></div></li><div class="divider" style="margin-top:2px;"></div>');
'</select></div></div></div><div style="width: 100%;text-align: center;margin: 20px 0px 0px;color: rgba(0,0,0,0.4);">availability</div>' + '<div class="row"><div class="input-field col s6">' + '<input placeholder="" prnm="rstQuantity" id="prodRestNo-' + reqs[i].id + '" type="number" value="' + reqs[i].rstQuantity + '" class="validate" min="0" prid="' + reqs[i].id + '" max="1000">' + '<label for="prodRestNo-' + reqs[i].id + '" class="active"> Quantity</label></div>' + '<div class="input-field col s6"><div class="select-wrapper initialized">' + '<select id="prodRestDur-' + reqs[i].id + '" prnm="rstDuration" class="initialized">' + '<option value="" disabled="" selected="' + reqs[i].rstDuration + '">duration</option>' + '<option value="day">per Day</option>' + '<option value="week">per Week</option>' + '<option value="month">per Month</option><option value="litre">per Litre</option>' + '</select></div></div></div>' + '<div class="row" style="text-align: right;margin: 20px 0px;"><div class="btn opacitySelectedColor processInventoryOrder" style="display: block; margin: 0px auto;" onclick="inventoryOrder(' + reqs[i].id + ')">purchase order</div> </div>' + '</form></div></li>');
if (reqs[i].sponsored == "true") {
var sprndhtml = "";
......
This diff is collapsed.
......@@ -41,11 +41,11 @@ function refreshSalesOrders() {
pendOds = false;
var storeTotalBal = []
for (var ii in alOds) {
var storeBal = alOds[ii].proPrice
var storeBal = alOds[ii].proPrice;
if (alOds[ii].state == 'pending') {
pendOds = true;
} else if (alOds[ii].state == 'completed') {
} else if (alOds[ii].state == 'complete') {
storeTotalBal.push(storeBal);
}
......
......@@ -290,6 +290,7 @@ function doSwitchStore() {
verifyNo();
addManagers();
deliveryMbr();
$('.sprndProd').html('')
}
$('#switchStoreModal').modal({
onCloseEnd: loadStoreFunc()
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment