Функция продажи в индексированной базе данных - PullRequest
0 голосов
/ 29 апреля 2020

Я работал над программным обеспечением для аптек. Я создал индексированную базу данных, используя Dex ie

const productdb = (dbname, table) => {
 const db = new Dexie(dbname)
 db.version(1).stores(table);
 db.open();
 return db;
}
let db = productdb("Drugs",{
    drugs: `++id, name, MRP, tradeprice, quantity, expiry, seller`
});

Позже я сделал операции CRUD для добавления данных в базу данных.

const getData = (dbtable, fn) =>{
    let index = 0;
    let obj = {};

dbtable.count((count) =>{
    if(count){
        dbtable.each(table =>{

            obj = Sortobj(table);
            fn(obj, index++);
        })
    }
    else{
        fn(0);
    }
})

const Sortobj = sortobj =>{
    let obj = {};
    obj = {
        id: sortobj.id,
        name: sortobj.name,
        MRP: sortobj.MRP,
        tradeprice: sortobj.tradeprice,
        quantity: sortobj.quantity,
        seller: sortobj.seller,
        expiry: sortobj.expiry,
    }
    return obj;
}
}

const createEle = (tagname, appendTo, fn) =>{
    const element = document.createElement(tagname);
    if(appendTo)appendTo.appendChild(element);
    if(fn)fn(element);
}


const bulkcreate = (dbtable, data) =>{
    let flag = empty(data);
    if(flag){
    dbtable.bulkAdd([data]);
    console.log("Data Inserted");
}
else{
    console.log("Please Provide Data");
}
return flag;
}

const empty = object =>{
    let flag = false;

    for(const value in object){
        if(object[value]!="" && object.hasOwnProperty(value)){
        flag = true;
    }
    else{
        flag = false;
    }
}
return flag;
}

const userid = document.getElementById("userid");
const name = document.getElementById("name");
const MRP = document.getElementById("MRP");
const tradeprice = document.getElementById("tradeprice");
const quantity = document.getElementById("quantity");
const expiry = document.getElementById("expiry");
const seller = document.getElementById("seller");

const btncreate = document.getElementById("btn-create");
const btnread = document.getElementById("btn-read");
const btnupdate = document.getElementById("btn-update");

const notfound = document.getElementById("notfound");

btncreate.onclick = (event) =>{
    let flag = bulkcreate(db.drugs, {
        name: name.value,
        MRP: MRP.value,
        tradeprice: tradeprice.value,
        quantity: quantity.value,
        expiry: expiry.value,
        seller: seller.value,
    });
    name.value = MRP.value = tradeprice.value = quantity.value = expiry.value = seller.value ="";
    getData(db.drugs, (data)=>{
        userid.value = data.id + 1 || 1;
    });
}

btnread.onclick = table;

btnupdate.onclick = () =>{
    const id = parseInt(userid.value || 0);
    if(id){
        db.drugs.update(id,{
            name: name.value,
            MRP: MRP.value,
            tradeprice: tradeprice.value,
            quantity: quantity.value,
            expiry: expiry.value,
            seller: seller.value,
        }).then((updated)=>{
            let get = updated?'data updated': "could'nt update data.";
            console.log(get);
        })
    }
}

window.onload = ()=>{
    textID(userid);
}

function textID(textboxid){
    getData(db.drugs, data =>{
        textboxid.value = data.id + 1 || 1;
    })
}

function table(){
    const tbody = document.getElementById("tbody");
    while(tbody.hasChildNodes()){
        tbody.removeChild(tbody.firstChild);
    }
    getData(db.drugs, (data)=>{
        if(data){
            createEle("tr", tbody, tr =>{
                for(const value in data){
                    createEle("td", tr, td =>{
                        td.textContent = data.price === data[value]?`$ ${data[value]}`: data[value];
                    })
                }
                createEle("td", tr, td =>{
                    createEle("i", td, i =>{
                        i.className += "fas fa-edit btnedit";
                        i.setAttribute('data-id', data.id);
                        i.onclick = editbtn;
                    })
                })
            })
        }
        else{
            notfound.textContent = "No Record found in the database."
        }
    })
}

function editbtn(event){
    let id = event.target.dataset.id;
    id = Number(id);
    db.drugs.get(id, data =>{
        userid.value = data.id || 0;
        name.value = data.name || "";
        MRP.value = data.MRP || "";
        tradeprice.value = data.tradeprice || "";
        quantity.value = data.quantity || "";
        expiry.value = data.expiry || "";
        seller.value = data.seller || "";
    });
}

Теперь я хочу создать 2 входных текста в ячейках один должен иметь «ID» или «имя», а другой - «необходимое количество». Эти входные данные должны быть показаны в виде таблицы из базы данных. Позже они должны быть проданы по нажатию кнопки «Продать» вместе с внесением изменений в индексированную базу данных, т. Е. Путем изменения количества в базе данных.

ПОЖАЛУЙСТА, ЛЮБОЙ ПОСТАВЬТЕ ОТВЕТ НА ЭТО?

...