Exemple #1
0
        public StringBuilder AddOpenFoodToXml(string FilePath, string KotPath, string TableNo, string Name, string Price, string Quantity, string Vat)
        {
            XMLTablesRepository xml = new XMLTablesRepository();
            XDocument           xd  = XDocument.Load(FilePath);
            StringBuilder       sb  = new StringBuilder();
            int OutletId            = xml.getOutletId();
            var items = (from item in xd.Descendants("Items")
                         where item.Element("UserId").Value == OutletId.ToString() &&
                         item.Element("TableNo").Value == TableNo &&
                         item.Element("ItemName").Value == Name.ToString()
                         select item).ToList();

            if (items.Count > 0)
            {
                foreach (XElement itemElement in items)
                {
                    decimal Prices      = Convert.ToInt32(Price) * Convert.ToInt32(Quantity);
                    var     totalamount = Convert.ToDecimal(Prices) + Convert.ToDecimal(itemElement.Element("Amount").Value);
                    var     vatamtchrg  = (totalamount * Convert.ToDecimal(Convert.ToDecimal(Vat)) / 100);
                    int     Full        = Convert.ToInt32(itemElement.Element("FullQty").Value) + Convert.ToInt32(Quantity);
                    itemElement.SetElementValue("FullQty", Full);
                    itemElement.SetElementValue("Amount", totalamount);
                    itemElement.SetElementValue("VatAmountCharges", vatamtchrg);
                }
                xd.Save(FilePath);
            }
            else
            {
                decimal Prices     = Convert.ToDecimal(Price) * Convert.ToDecimal(Quantity);
                var     vatamtchrg = (Convert.ToDecimal(Prices) * Convert.ToDecimal(Convert.ToDecimal(Vat)) / 100);
                var     newElement = new XElement("Items",
                                                  new XElement("UserId", OutletId.ToString()),
                                                  new XElement("TableNo", TableNo),
                                                  new XElement("ItemId", "0"),
                                                  new XElement("ItemName", Name),
                                                  new XElement("FullQty", Quantity),
                                                  new XElement("HalfQty", "0"),
                                                  new XElement("Fullprice", Price),
                                                  new XElement("HalfPrice", "0"),
                                                  new XElement("Amount", Prices),
                                                  new XElement("VatAmt", Vat),
                                                  new XElement("VatAmountCharges", vatamtchrg),
                                                  new XElement("OfferQty", "0"));
                xd.Element("Item").Add(newElement);
                xd.Save(FilePath);
            }
            XDocument kot  = XDocument.Load(KotPath);
            var       data = (from item in kot.Descendants("Items")
                              where item.Element("UserId").Value == OutletId.ToString() &&
                              item.Element("TableNo").Value == TableNo.ToString() &&
                              item.Element("ItemName").Value == Name
                              select item).ToList();

            if (data.Count > 0)
            {
                foreach (XElement itemElement in items)
                {
                    int Full = Convert.ToInt32(Quantity) + Convert.ToInt32(itemElement.Element("FullQty").Value);
                    itemElement.SetElementValue("FullQty", Full);
                }
            }
            else
            {
                var newElement = new XElement("Items",
                                              new XElement("UserId", OutletId.ToString()),
                                              new XElement("TableNo", TableNo),
                                              new XElement("ItemName", Name),
                                              new XElement("FullQty", Quantity),
                                              new XElement("HalfQty", "0"));
                kot.Element("Item").Add(newElement);
            }
            kot.Save(KotPath);
            return(sb);
        }