コード例 #1
0
        public ActionResult UpdateBillingXml(GetBillItemModel m)
        {
            //GetBillItemModel m = new GetBillItemModel();
            //var data = Id.Split('^');
            //m.ItemId = Convert.ToInt32(data[0]);
            //m.Qty = Convert.ToInt32(data[2]);
            //m.RunningTable = Convert.ToInt32(data[1]);
            //m.Type = data[3];
            var             filepath    = Server.MapPath("~/xmltables/table" + m.RunningTable + ".xml");
            var             KotFilePath = Server.MapPath("~/xmlkot/Kot.xml");
            GetBillingModel model       = new GetBillingModel();
            bool            update      = nibsrepo.CheckBillItem(m, filepath, KotFilePath);

            if (update)
            {
                model = xml.GetBillingItem(m.RunningTable.ToString(), filepath, KotFilePath);
            }


            return(PartialView("_CreatePartial", model));
        }
コード例 #2
0
        public bool CheckBillItem(GetBillItemModel model, string filepath, string KotFilePath)
        {
            XDocument xd = XDocument.Load(filepath);

            int     oulte          = getOutletId();
            var     result         = entities.tblBasePriceItems.Where(o => o.ItemId == model.ItemId).FirstOrDefault();
            var     QtyValue       = Convert.ToInt32(model.Qty);
            decimal finalfullamout = result.FullPrice * QtyValue;

            //decimal finalhalfamout = result.HalfPrice * QtyValue;
            if (model.Type == "Half")
            {
                xml.UpdateKotXmlData(filepath, KotFilePath, model.RunningTable.ToString(), result.tblItem.Name, "0", QtyValue.ToString());
            }
            else
            {
                xml.UpdateKotXmlData(filepath, KotFilePath, model.RunningTable.ToString(), result.tblItem.Name, QtyValue.ToString(), "0");
            }
            var items = from item in xd.Descendants("Items")
                        where item.Element("UserId").Value == oulte.ToString() && item.Element("TableNo").Value == model.RunningTable.ToString() && item.Element("ItemId").Value == model.ItemId.ToString()
                        select item;

            if (items.Count() > 0)
            {
                if (model.Type == "Half")
                {
                    foreach (XElement itemElement in items)
                    {
                        var totalamount = Convert.ToDecimal(finalfullamout) + Convert.ToDecimal(itemElement.Element("Amount").Value); //finalhalfamout
                        var vatamtchrg  = (totalamount * Convert.ToDecimal(Convert.ToDecimal(result.Vat)) / 100);                     //
                        itemElement.SetElementValue("UserId", oulte.ToString());
                        itemElement.SetElementValue("TableNo", model.RunningTable.ToString());
                        itemElement.SetElementValue("ItemId", result.ItemId);
                        itemElement.SetElementValue("ItemName", result.tblItem.Name);
                        itemElement.SetElementValue("FullQty", itemElement.Element("FullQty").Value);
                        itemElement.SetElementValue("Fullprice", result.FullPrice);
                        //itemElement.SetElementValue("HalfPrice", result.HalfPrice);
                        itemElement.SetElementValue("VatAmt", result.Vat);
                        itemElement.SetElementValue("HalfQty", Convert.ToInt32(QtyValue) + Convert.ToInt32(itemElement.Element("HalfQty").Value));
                        itemElement.SetElementValue("Amount", totalamount);
                        itemElement.SetElementValue("VatAmountCharges", vatamtchrg);
                        itemElement.SetElementValue("OfferQty", itemElement.Element("OfferQty").Value);
                    }
                }
                else
                {
                    foreach (XElement itemElement in items)
                    {
                        var totalamount = Convert.ToDecimal(finalfullamout) + Convert.ToDecimal(itemElement.Element("Amount").Value);
                        var vatamtchrg  = (totalamount * Convert.ToDecimal(Convert.ToDecimal(result.Vat)) / 100);
                        itemElement.SetElementValue("UserId", oulte.ToString());
                        itemElement.SetElementValue("TableNo", model.RunningTable.ToString());
                        itemElement.SetElementValue("ItemId", result.ItemId);
                        itemElement.SetElementValue("ItemName", result.tblItem.Name);
                        itemElement.SetElementValue("HalfQty", itemElement.Element("HalfQty").Value);
                        itemElement.SetElementValue("Fullprice", result.FullPrice);
                        //itemElement.SetElementValue("HalfPrice", result.HalfPrice);
                        itemElement.SetElementValue("VatAmt", result.Vat);
                        itemElement.SetElementValue("FullQty", Convert.ToInt32(QtyValue) + Convert.ToInt32(itemElement.Element("FullQty").Value));
                        itemElement.SetElementValue("Amount", totalamount);
                        itemElement.SetElementValue("VatAmountCharges", vatamtchrg);
                        itemElement.SetElementValue("OfferQty", itemElement.Element("OfferQty").Value);
                    }
                }
                xd.Save(filepath);
            }
            else
            {
                if (model.Type == "Half")
                {
                    //var totalamount = Convert.ToDecimal(finalhalfamout);
                    //var vatamtchrg = (totalamount * Convert.ToDecimal(Convert.ToDecimal(result.Vat)) / 100);
                    //var newElement = new XElement("Items",
                    //     new XElement("UserId", oulte.ToString()),
                    //     new XElement("TableNo", model.RunningTable),
                    //     new XElement("ItemId", result.ItemId),
                    //     new XElement("ItemName", result.tblItem.Name),
                    //     new XElement("FullQty", "0"),
                    //     new XElement("HalfQty", QtyValue),
                    //     new XElement("Fullprice", result.FullPrice),
                    //     new XElement("HalfPrice", result.HalfPrice),
                    //     new XElement("Amount", totalamount),
                    //     new XElement("VatAmt", result.Vat),
                    //     new XElement("VatAmountCharges", vatamtchrg),
                    //     new XElement("OfferQty", "0"));
                    //xd.Element("Item").Add(newElement);
                }
                else
                {
                    var totalamount = Convert.ToDecimal(finalfullamout);
                    var vatamtchrg  = (totalamount * Convert.ToDecimal(Convert.ToDecimal(result.Vat)) / 100);
                    var newElement  = new XElement("Items",
                                                   new XElement("UserId", oulte.ToString()),
                                                   new XElement("TableNo", model.RunningTable),
                                                   new XElement("ItemId", result.ItemId),
                                                   new XElement("ItemName", result.tblItem.Name),
                                                   new XElement("FullQty", QtyValue),
                                                   new XElement("HalfQty", "0"),
                                                   new XElement("Fullprice", result.FullPrice),
                                                   //new XElement("HalfPrice", result.HalfPrice),
                                                   new XElement("Amount", totalamount),
                                                   new XElement("VatAmt", result.Vat),
                                                   new XElement("VatAmountCharges", vatamtchrg),
                                                   new XElement("OfferQty", "0"));
                    xd.Element("Item").Add(newElement);
                }


                xd.Save(filepath);
            }
            if (model.Type == "Full")
            {
                SameItemOfferRepository same = new SameItemOfferRepository();
                bool s = same.CallSameBuyOneGetOne(model.ItemId.ToString(), filepath, model.RunningTable.ToString(), model.Qty.ToString(), KotFilePath);
                if (!s)
                {
                    return(true);
                }
                AdminCallHappyHoursRepository hh = new AdminCallHappyHoursRepository();;
                bool Happy = hh.CallHappyHoursDaysOffer(model.ItemId.ToString(), model.RunningTable.ToString(), filepath, KotFilePath);
                if (Happy == true)
                {
                    AdminCallOfferRepository offer = new AdminCallOfferRepository();
                    CallBuyOneGetOneANDBuyTwoGetOneRepository buy = new CallBuyOneGetOneANDBuyTwoGetOneRepository();
                    bool B1g1AndB2G1 = buy.CallOffer(model.ItemId.ToString(), filepath, model.RunningTable.ToString(), model.Qty.ToString(), KotFilePath);
                    if (B1g1AndB2G1)
                    {
                        bool Combo = offer.CallComboOffer(model.ItemId.ToString(), model.RunningTable.ToString(), filepath, KotFilePath);
                        if (Combo == true)
                        {
                            offer.CallAmountBasisOffer(model.ItemId.ToString(), model.RunningTable.ToString(), filepath, KotFilePath, model.Qty.ToString());
                        }
                    }
                    //bool Data = offer.CallOffer(model.ItemId.ToString(), filepath, model.RunningTable.ToString(), model.Qty.ToString(), KotFilePath);
                    //if (Data == true)
                    //{

                    //}
                }
            }
            return(true);
        }