// funkcje do operacji na koszyku
// ================================================================================
======
// dodanie produktu do koszyka
function AddToBasket(nId, cCode, cName, nPrice, nQuant)
{
var basket = new TShopBasket();
basket.Read();
basket.Add(nId, cCode, cName, nQuant, nPrice, 0.0);
UpdateBasketDisplay
(basket
.Count(), basket
.BrtAmount
()); basket.Write();
}
// wartosc koszyka
function GetBasketAmount()
{
var basket = new TShopBasket();
var amount = 0;
basket.Read();
{
for (i
= 0; i
< basket
.Count(); i
++) amount += basket.GetBrtAmount(i)
}
return (amount);
}
// ilosc pozycji w koszyku
function GetBasketCount()
{
var basket = new TShopBasket();
basket.Read();
}
// aktualizacja danych o koszyku
function UpdateBasketDisplay(quant, amount)
{
var quantTxt = document.getElementById("basketQuant");
var amountTxt = document.getElementById("basketAmount");
quantTxt.innerHTML = quant;
amountTxt.innerHTML = amount.toFixed(2);
}
// pokazanie stany koszyka
function ShowBasketState()
{
var basket = new TShopBasket();
basket.Read();
var quantTxt = document.getElementById("basketQuant");
var amountTxt = document.getElementById("basketAmount");
quantTxt.innerHTML = GetBasketCount().toFixed(2);
amountTxt.innerHTML = GetBasketAmount().toFixed(2);
}
// wyswietlanie i obsluga koszyka koszyka
// ================================================================================
======
// wyswietlenie tabeli z zawartoscia koszyka
function ShowBasket(isEditable)
{
var table = document.getElementById("basketTable");
var basket = new TShopBasket();
basket.Read();
clearTable();
{
emptyBasket(isEditable);
return -1;
}
for (var i
= 0; i
< basket
.Count(); i
++) addRow(basket, i, isEditable);
addTotal(basket, isEditable);
}
// dodanie wiersza z pozycja koszyka
function addRow(basket, i, isEditable)
{
var table = document.getElementById("basketTable");
var lastRow = table.rows.length;
var row = table.insertRow(lastRow);
row.id = "row_" + i;
// lp
var cell = row.insertCell(0);
var textNode = document.createTextNode(lastRow);
cell.appendChild(textNode);
// nazwa
cell = row.insertCell(1);
textNode = document.createTextNode(basket.GetName(i));
cell.appendChild(textNode);
// ilosc
if (isEditable)
{
cell = row.insertCell(2);
var el = document.createElement("input");
el.type = "text";
el.name = "quant" + i;
el.id = "quant_" + i;
el.size = "5";
el.value = basket.GetQuant(i);
el.setAttribute("onchange", "java script:updateItem('quant_" + i + "', " + i + ");");
cell.appendChild(el);
}
else
{
cell = row.insertCell(2);
textNode = document.createTextNode(basket.GetQuant(i));
cell.appendChild(textNode);
}
// cena
cell = row.insertCell(3);
cell.setAttribute("class", "right");
textNode = document.createTextNode(basket.GetNetPrice(i).toFixed(2));
cell.appendChild(textNode);
// wartosc
cell = row.insertCell(4);
cell.setAttribute("class", "right");
textNode = document.createTextNode(basket.GetNetAmount(i).toFixed(2));
cell.appendChild(textNode);
// link usun
if (isEditable)
{
cell = row.insertCell(5);
var el = document.createElement("a");
el.setAttribute("href", "java script:deleteItem(" + i + ");");
el.innerHTML = "usuń";
cell.appendChild(el);
}
}
// wiersz podsumowania
function addTotal(basket, isEditable)
{
var table = document.getElementById("basketTable");
var lastRow = table.rows.length;
var row = table.insertRow(lastRow);
var cell = row.insertCell(0);
var textNode = document.createTextNode(" ");
if (isEditable)
cell.setAttribute("colspan", "4");
else
cell.setAttribute("colspan", "3");
cell.appendChild(textNode);
// podsumowanie
cell = row.insertCell(1);
cell.setAttribute("class", "right");
var textNode = document.createTextNode(basket.GetNetTotal().toFixed(2));
cell.appendChild(textNode);
}
// pusty koszyk
function emptyBasket(isEditable)
{
var table = document.getElementById("basketTable");
var lastRow = table.rows.length;
var row = table.insertRow(lastRow);
var cell = row.insertCell(0);
var textNode = document.createTextNode("Koszyk jest pusty");
if (isEditable)
cell.setAttribute("colspan", "6");
else
cell.setAttribute("colspan", "5");
cell.appendChild(textNode);
}
// usuniecie produktu z koszyka i wiersza tabeli
function deleteItem(i)
{
var basket = new TShopBasket();
basket.Read();
basket.RemoveIndex(i);
basket.Write();
UpdateBasketDisplay
(basket
.Count(), basket
.BrtAmount
()); clearTable();
ShowBasket(true);
}
// aktualizacja ilosci
function updateItem(idInput, i)
{
var basket = new TShopBasket();
basket.Read();
var inputQuant = document.getElementById(idInput);
var quant = inputQuant.value;
if (isNaN(quant))
{
alert("Nieprawidłowa warto?ć pola ilo?ć !");
inputQuant.value = basket.GetQuant(i);
return;
}
basket.UpdateQuant(i, quant);
basket.Write();
UpdateBasketDisplay
(basket
.Count(), basket
.BrtAmount
()); clearTable();
ShowBasket(true);
}
// czyszczenie tabeli
function clearTable()
{
var table = document.getElementById("basketTable");
while (table.rows.length > 1)
table.deleteRow(table.rows.length - 1);
}
// formularz koszyka
// ================================================================================
======
// funkcja czyszczaca zawartosc koszyka
function ClearBasket()
{
var basket = new TShopBasket();
basket.Read();
basket.Clear();
basket.Write();
window.location.reload();
}
// usuniecie elementu z koszyka i refresh strony
function BasketRemoveItem(nId)
{
var basket = new TShopBasket();
var i;
var nAmount = 0;
basket.Read();
basket.Remove(nId);
basket.Write();
location.reload();
}