diff --git a/city e-commerce 0.0.1.html b/city e-commerce 0.0.1.html index d3e0a1e..6d2b6b9 100644 --- a/city e-commerce 0.0.1.html +++ b/city e-commerce 0.0.1.html @@ -10006,7 +10006,8 @@ "BUY_ORDERS":"RANCHI_BUY_ORDERS_8", "MESSAGES":"RANCHI_MESSAGES_8", "CASHIERS_DATA":"RANCHI_CASHIERS_DATA_8", - "COURIER_DATA":"RANCHI_COURIER_DATA_8"} + "COURIER_DATA":"RANCHI_COURIER_DATA_8", + "PURCHASED_ITEMS": "RANCHI_PURCHASED_ITEMS_8"} #!#CITY=Ranchi #!#product_categories=Electronics,Clothes & Accessories,Home Appliances, Food #!#cashiers= @@ -10159,9 +10160,18 @@ if(LIVE_USER.user_info.user_role==='BUYER') { LIVE_USER.user_info.set_delivery_receiving_address(); + LIVE_USER.user_info.display_items(); + LIVE_USER.user_info.display_purchased_items(); } if(LIVE_USER.user_info.user_role==='CASHIER') { - LIVE_USER.user_info.retrieve_latest_buy_orders() + LIVE_USER.user_info.validate_buy_orders() + } + if(LIVE_USER.user_info.user_role==='MANAGER') { + LIVE_USER.user_info.get_general_data() + } + if(LIVE_USER.user_info.user_role==='SELLER') { + LIVE_USER.user_info.list_products_to_sell(); + floCloudAPI.requestGeneralData(ecommerce.master_configurations.DATA_TYPE.BUY_ORDERS, {receiverID:myFloID}); } }, @@ -10173,7 +10183,7 @@ for (const key in ecommerce.master_configurations.DATA_TYPE) { if (ecommerce.master_configurations.DATA_TYPE.hasOwnProperty(key)) { const element = ecommerce.master_configurations.DATA_TYPE[key]; - promises.push(floCloudAPI.requestGeneralData(element)); + promises.push(floCloudAPI.requestGeneralData(element, {receiverID:myFloID})); } } await Promise.all(promises); @@ -10297,20 +10307,6 @@ } - ecommerce.ui = { - BUYER: function() { - this.ui_data = {}; - }, - SELLER: function() { - this.ui_data = {}; - }, - CASHIER: function() { - this.ui_data = {}; - }, - COURIER: function() { - this.ui_data = {}; - }, - } @@ -10426,12 +10422,16 @@ }, get_product_details_by_txid: function(txid='') { try { - return Object.values(ecommerce.recent_buy_orders) + const latest_buy_orders = floGlobals.generalData[JSON.stringify( + { application: floGlobals.application, + type: ecommerce.master_configurations.DATA_TYPE.BUY_ORDERS + })]; + return Object.values(latest_buy_orders) .filter(f=>f.message.txid===txid) .map(m=>m.message) } catch (error) { showMessage('Failed to get any product with txid '+txid, 'ERROR'); - reject('Failed to get any product with txid '+txid); + throw new Error('Failed to get any product with txid '+txid); } }, } @@ -10445,20 +10445,22 @@ let productClass = null; if(product_details.product_type==="PHYSICAL") { productClass = "physical_products"; + product_type = 'new_physical_product'; } else if(product_details.product_type==="DIGITAL") { productClass = "digital_products"; + product_type = 'new_digital_product'; } else return false; // Generate a product object const nayaProduct = new ecommerce.products[productClass](product_details); - nayaProduct.new_digital_product.seller_product_certificate={ + nayaProduct[product_type].seller_product_certificate={ seller_public_key: myPubKey, - seller_signature: floCrypto.signData(JSON.stringify(nayaProduct.new_digital_product.product_info), myPrivKey), + seller_signature: floCrypto.signData(JSON.stringify(nayaProduct[product_type].product_info), myPrivKey), } const input_data = {}; - input_data[nayaProduct.new_digital_product.product_info.product_static_information.product_flo_id]=nayaProduct.new_digital_product + input_data[nayaProduct[product_type].product_info.product_static_information.product_flo_id]=nayaProduct[product_type] floCloudAPI.sendGeneralData(input_data, ecommerce.master_configurations.DATA_TYPE.SELLING_PRODUCTS, { receiverID: floGlobals.adminID, senderIDs: [myFloID] }) showMessage("Product added into the cloud successfully.", "SUCCESS"); @@ -10469,22 +10471,119 @@ } }, update_product_status: function(old_product_details, new_product_details) { - const object_values = Object.keys(obj1); - - // SECURITY_CHECK: Test if product_details.product is certified by Admin + try { + const object_values = Object.keys(obj1); + + // SECURITY_CHECK: Test if product_details.product is certified by Admin - for(i in product_details) { - if(object_values.includes(i)) { - obj1[i] = product_details[i]; + for(i in product_details) { + if(object_values.includes(i)) { + obj1[i] = product_details[i]; + } } + //this.list_products_to_sell(); + } catch (error) { + throw new Error(error) } - this.list_products_to_sell(); }, list_products_to_sell: async function() { - // const myProducts = await compactIDB.readAllData('sellerProducts'); - // const mySellingProducts = myProducts.filter(f=>(f.onSale===True && f.stock_available>0)); - // console.table(mySellingProducts); - } + try { + const myProducts = ecommerce.approved_products_list; + const mySellingProducts = myProducts.filter(f=> + (f.product_info.product_static_information.seller_flo_id===myFloID)); + console.table(mySellingProducts); + let t = ``; + for (const product of mySellingProducts) { + let p = product.product_info.product_dynamic_information; + let pid = product.product_info.product_static_information.product_flo_id; + t += `
Product:
`; + t += `Product Name:
`; + t += `Product Description:
`; + t += `Product Image:
`; + t += `Product Selling Price:
`; + t += `Product Location:
`; + t += `Items Available :
`; + t += `On Sale:
`; + t += ``; + t += `UPI Txid: ${bo.payment_to_vendor_txid}
`; + t += `Item: ${product_dynamic_info.product_name}: ${bo.buy_order_data.quantity[product_dynamic_info.product_name]}
`; + t += `Total Price: ${bo.buy_order_data.final_price}
`; + t += ``; + t += `