Example #1
0
        public override void Visit(RepetitionLine repetitionLine)
        {
            SaleLine line  = (SaleLine)ticket.GetLine(repetitionLine.Number);
            int      price = Store.Instance().GetPrice(line.Id, line.Units);

            repetitionLine.Price = price;
        }
Example #2
0
        public override void Visit(CancellationLine cancellationLine)
        {
            SaleLine line  = (SaleLine)ticket.GetLine(cancellationLine.Number);
            int      price = Store.Instance().GetPrice(line.Id, line.Units);

            cancellationLine.Price = price;
        }
Example #3
0
 public override void Visit(SaleLine saleLine)
 {
     foreach (var ticketOperation in ticketOperationList)
     {
         ticketOperation.Visit(saleLine);
     }
 }
Example #4
0
        //=======================================
        //Return the sale info against give order id
        //From sale line item
        //=======================================
        public List <SaleLine> getSaleByOrder(int order)
        {
            List <SaleLine> sal = new List <SaleLine>();

            StreamReader sr = new StreamReader("SaleLineItem.txt");
            string       data;

            while ((data = sr.ReadLine()) != null)
            {
                string[] dataParser = data.Split(';');

                SaleLine s = new SaleLine();
                s.LinoNo   = int.Parse(dataParser[0]);
                s.Order_id = int.Parse(dataParser[1]);
                s.ItemId   = int.Parse(dataParser[2]);
                s.Quantity = int.Parse(dataParser[3]);
                s.Amount   = double.Parse(dataParser[4]);

                if (s.Order_id.Equals(order))
                {
                    sal.Add(s);
                }
            }

            sr.Close();

            return(sal);
        }
 public BOSaleLine(Accountant accountant, Sale _sale, SaleLine _line, BOContext context)
     : base(accountant, context)
 {
     mObjectID        = BOType.BOSaleLine;
     mSaleEntity      = _sale;
     mDataSource      = _line;
     mDataSource.Sale = _sale;
 }
Example #6
0
        public ActionResult DeleteConfirmed(int id)
        {
            SaleLine saleLine = db.SaleLines.Find(id);

            db.SaleLines.Remove(saleLine);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
Example #7
0
 public static SaleLineDto FromEntity(SaleLine saleLine)
 {
     return(new SaleLineDto
     {
         Id = saleLine.Id,
         Cuantity = saleLine.Cuantity,
         Product = ProductDto.FromEntity(saleLine.Product),
         SubTotal = saleLine.SubTotal
     });
 }
        private DbDeleteStatement GetQuery_DeleteQuery(SaleLine _obj)
        {
            DbDeleteStatement clause = DbMgr.CreateDeleteClause();

            clause
            .DeleteFrom("SaleLines")
            .Criteria
            .IsEqual("SaleLines", "SaleLineID", _obj.SaleLineID);
            return(clause);
        }
        private DbUpdateStatement GetQuery_UpdateQuery(SaleLine _obj)
        {
            DbUpdateStatement clause = DbMgr.CreateUpdateClause();

            clause
            .UpdateColumns(GetFields(_obj))
            .From("SaleLines")
            .Criteria
            .IsEqual("SaleLines", "SaleLineID", _obj.SaleLineID);
            return(clause);
        }
        private DbInsertStatement GetQuery_InsertQuery(SaleLine _obj)
        {
            Dictionary <string, DbFieldEntry> fields = GetFields(_obj);

            DbInsertStatement clause = DbMgr.CreateInsertClause();

            clause
            .InsertColumns(fields)
            .Into("SaleLines");

            return(clause);
        }
Example #11
0
 public ActionResult Edit([Bind(Include = "IdSaleLine,IdProduct,LinePrice,LineDiscount,LineQuantity,LineTotal,IdSale")] SaleLine saleLine)
 {
     if (ModelState.IsValid)
     {
         db.Entry(saleLine).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.IdProduct = new SelectList(db.Products, "IdProduct", "ProductDescription", saleLine.IdProduct);
     ViewBag.IdSale    = new SelectList(db.Sales, "IdSale", "SaleAddress", saleLine.IdSale);
     return(View(saleLine));
 }
 public ActionResult Edit([Bind(Include = "ID,SaleID,ItemID,Quantity,Price")] SaleLine saleLine)
 {
     if (ModelState.IsValid)
     {
         db.Entry(saleLine).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.ItemID = new SelectList(db.Items, "ID", "Name", saleLine.ItemID);
     ViewBag.SaleID = new SelectList(db.Sales, "ID", "ID", saleLine.SaleID);
     return(View(saleLine));
 }
 protected void Update(SaleLine data_proxy)
 {
     if (RecordContext == BOContext.Record_Create)
     {
         mSaleEntity.SaleLines.Add(data_proxy);
         mSaleEntity.Evaluate();
     }
     else
     {
         mDataSource.AssignFrom(data_proxy);
         mSaleEntity.Evaluate();
     }
 }
Example #14
0
        // GET: SaleLines/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            SaleLine saleLine = db.SaleLines.Find(id);

            if (saleLine == null)
            {
                return(HttpNotFound());
            }
            return(View(saleLine));
        }
        protected override OpResult _Delete(SaleLine _obj)
        {
            if (_obj == null)
            {
                return(OpResult.NotifyDeleteAction(OpResult.ResultStatus.ObjectIsNull, _obj, "SaleLine object cannot be deleted as it is null"));
            }

            if (Exists(_obj))
            {
                ExecuteNonQuery(GetQuery_DeleteQuery(_obj));
                return(OpResult.NotifyDeleteAction(OpResult.ResultStatus.ExistsAndDeleted, _obj));
            }

            return(OpResult.NotifyDeleteAction(OpResult.ResultStatus.NotExists, _obj, "SaleLine object cannot be deleted as it does not exist"));;
        }
Example #16
0
        // GET: SaleLines/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            SaleLine saleLine = db.SaleLines.Find(id);

            if (saleLine == null)
            {
                return(HttpNotFound());
            }
            ViewBag.IdProduct = new SelectList(db.Products, "IdProduct", "ProductDescription", saleLine.IdProduct);
            ViewBag.IdSale    = new SelectList(db.Sales, "IdSale", "SaleAddress", saleLine.IdSale);
            return(View(saleLine));
        }
        // GET: SaleLines1/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            SaleLine saleLine = db.SaleLines.Find(id);

            if (saleLine == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ItemID = new SelectList(db.Items, "ID", "Name", saleLine.ItemID);
            ViewBag.SaleID = new SelectList(db.Sales, "ID", "ID", saleLine.SaleID);
            return(View(saleLine));
        }
Example #18
0
        public JsonResult CreateSale(SaleVM O)
        {
            //CustomerName contiene el id del cliente
            bool status = false;
            Sale sale   = new Sale();
            var  cusid  = Int32.Parse(O.CustomerName);


            if (ModelState.IsValid)
            {
                sale.SaleDate    = O.SaleDate;
                sale.SaleAddress = O.SaleAddress;
                sale.Comments    = O.Comments;
                sale.SaleTotal   = O.SaleTotal;
                sale.IdCustomer  = cusid;
                db.Sales.Add(sale);
                db.SaveChanges();

                foreach (var i in O.SaleLines)
                {
                    SaleLine saleline = new SaleLine();
                    saleline.IdProduct    = i.IdProduct;
                    saleline.LinePrice    = i.LinePrice;
                    saleline.LineDiscount = i.LineDiscount;
                    saleline.LineQuantity = i.LineQuantity;
                    saleline.LineTotal    = i.LineTotal;
                    saleline.IdSale       = sale.IdSale;
                    db.SaleLines.Add(saleline);
                    db.SaveChanges();

                    Product prod = new Product();
                    prod = db.Products.Find(i.IdProduct);
                    prod.ParcialStock    = prod.ParcialStock - i.LineQuantity;
                    db.Entry(prod).State = EntityState.Modified;
                    db.SaveChanges();
                }
                status = true;
            }
            else
            {
                status = false;
            }
            return(new JsonResult {
                Data = new { status = status }
            });
        }
Example #19
0
        public dynamic AddMakeSale(string sess, [FromBody] Sale AddObject)
        {
            {
                var admin = db.Users.Where(zz => zz.SessionID == sess).ToList();
                if (admin == null)
                {
                    dynamic toReturn = new ExpandoObject();
                    toReturn.Error = "Session is no longer available";
                    return(toReturn);
                }
                if (AddObject != null)
                {
                    Sale MakeSale = new Sale();
                    MakeSale.ClientID   = AddObject.ClientID;
                    MakeSale.StatusID   = 1;
                    MakeSale.ReminderID = 2;
                    MakeSale.Date       = DateTime.Now;
                    db.Sales.Add(MakeSale);
                    db.SaveChanges();

                    int SaleID   = db.Sales.Where(zz => zz.ClientID == AddObject.ClientID).Select(zz => zz.SaleID).LastOrDefault();
                    int BasketID = db.Baskets.Where(zz => zz.ClientID == AddObject.ClientID).Select(zz => zz.BasketID).FirstOrDefault();

                    List <BasketLine> getBasket = db.BasketLines.Where(zz => zz.BasketID == BasketID).ToList();

                    foreach (BasketLine items in getBasket)
                    {
                        SaleLine AddSaleLine = new SaleLine();
                        AddSaleLine.Quantity  = items.Quantity;
                        AddSaleLine.ProductID = items.ProductID;
                        AddSaleLine.SaleID    = SaleID;
                        db.SaleLines.Add(AddSaleLine);
                        db.SaveChanges();
                    }

                    return("success");
                }
                else
                {
                    return(null);
                }
            }
        }
        protected override OpResult _Store(SaleLine _obj)
        {
            if (_obj == null)
            {
                return(OpResult.NotifyStoreAction(OpResult.ResultStatus.ObjectIsNull, _obj, "SaleLine object cannot be created as it is null"));
            }

            if (Exists(_obj))
            {
                ExecuteNonQuery(GetQuery_UpdateQuery(_obj));
                return(OpResult.NotifyStoreAction(OpResult.ResultStatus.Updated, _obj));
            }

            ExecuteNonQuery(GetQuery_InsertQuery(_obj));
            if (_obj.SaleLineID == null)
            {
                _obj.SaleLineID = DbMgr.GetLastInsertID();
            }
            _obj.FromDb = true;
            return(OpResult.NotifyStoreAction(OpResult.ResultStatus.Created, _obj));
        }
        public async Task <bool> CreateSaleAsync(List <Product> products, string userId)
        {
            var user = await _userManager.FindByIdAsync(userId);

            var sale = new Sale();

            List <SaleLine> saleLines = new List <SaleLine>();

            foreach (var product in products)
            {
                //TODO Fix product adding
                var saleLine = new SaleLine
                {
                    Product   = _products.GetProductByID(product.ProductID),
                    Quantity  = product.Quantity,
                    LineTotal = product.Quantity * product.Price
                };
                saleLines.Add(saleLine);
            }

            sale.Buyer         = user;
            sale.CreatedDate   = DateTime.UtcNow;
            sale.TotalAmount   = saleLines.Sum(x => x.LineTotal).ToString(CultureInfo.InvariantCulture);
            sale.TotalQuantity = saleLines.Sum(x => x.Quantity).ToString();
            sale.PurchaseList  = saleLines;
            try
            {
                _context.InsertSale(sale);
            }
            catch (DbException e)
            {
                //TODO Add logging
                return(false);
            }
            return(true);
        }
        //========================================
        // updateQuantity(int id, int quantity) is updating item quantity
        //in the file
        //========================================
        public bool updateQuantity(int id, int quantity)
        {
            item c = i_Info.Search(id);

            if (c.Quantity >= quantity)
            {
                c.Quantity = c.Quantity - quantity;
                // i_Info.updateItem();
                SaleLine s = new SaleLine();
                count.LineNo = count.LineNo + 1;
                s.LinoNo     = count.LineNo;
                s.Order_id   = count.OrderCounter;
                s.Quantity   = quantity;
                s.Amount     = c.Price;
                s.ItemId     = id;
                saleLineItems.Add(s);
                i_Info.updateItem();

                return(true);
            }


            return(false);
        }
Example #23
0
        public JsonResult EditSales(Sale sale)
        {
            Sale       s    = db.Sales.Find(sale.IdSale);
            List <int> list = new List <int>();

            foreach (var item in s.SaleLines.ToList())
            {
                list.Add(item.IdSaleLine);
            }

            foreach (var elim in list)
            {
                SaleLine eline = db.SaleLines.Find(elim);

                Product product = db.Products.Find(eline.IdProduct);
                product.ParcialStock = product.ParcialStock + eline.LineQuantity;
                if (sale.SaleState == SaleState.Finalizada)
                {
                    product.Stock = product.Stock + eline.LineQuantity;
                }

                db.Entry(product).State = EntityState.Modified;

                db.SaleLines.Remove(eline);
                db.SaveChanges();
            }

            if (ModelState.IsValid)
            {
                if (sale.IdCustomer != 0)
                {
                    s.IdCustomer = sale.IdCustomer;
                }
                s.SaleDate  = sale.SaleDate;
                s.SaleState = sale.SaleState;
                s.SaleTotal = sale.SaleTotal;
                s.Comments  = sale.Comments;

                db.Entry(s).State = EntityState.Modified;
                db.SaveChanges();

                if (sale.SaleLines != null)
                {
                    foreach (var i in sale.SaleLines)
                    {
                        var sl = new SaleLine();

                        sl.IdSale          = s.IdSale;
                        sl.IdProduct       = i.IdProduct;
                        sl.LinePrice       = i.LinePrice;
                        sl.LineQuantity    = i.LineQuantity;
                        sl.LineDiscount    = i.LineDiscount;
                        sl.LineTotal       = i.LineTotal;
                        sl.LineTotalReturn = i.LineTotal;

                        Product product = db.Products.Find(i.IdProduct);
                        product.ParcialStock = product.ParcialStock - i.LineQuantity;
                        if (sale.SaleState == SaleState.Finalizada)
                        {
                            product.Stock = product.Stock - i.LineQuantity;
                        }
                        db.Entry(product).State = EntityState.Modified;

                        db.SaleLines.Add(sl);
                        db.SaveChanges();
                    }
                }

                return(new JsonResult {
                    Data = new { status = true }
                });
            }
            else
            {
                return(new JsonResult {
                    Data = new { status = false }
                });
            }
        }
Example #24
0
        public override void Visit(SaleLine saleLine)
        {
            int price = Store.Instance().GetPrice(saleLine.Id, saleLine.Units);

            saleLine.Price = price;
        }
Example #25
0
 public virtual void Visit(SaleLine saleLine)
 {
 }
Example #26
0
 public void OpenSaleLine(SaleLine saleLine)
 {
     mSalePresenter.ShowSaleLine(mAccountant.OpenSaleLine(saleLine));
 }
Example #27
0
 public void DeleteSaleLine(SaleLine saleLine)
 {
     mAccountant.DeleteSaleLine(saleLine);
 }
Example #28
0
        public JsonResult CreateSale(SaleVM O)
        {
            //CustomerName contiene el id del cliente
            bool status = false;
            bool final  = false;

            if (O.SaleState == "1")
            {
                final = true;
            }



            Sale sale = new Sale();
            Bill bill = new Bill();

            var cusid = Int32.Parse(O.CustomerName);


            if (ModelState.IsValid)
            {
                if (final)
                {
                    sale.SaleState = SaleState.Finalizada;
                }
                else
                {
                    sale.SaleState = SaleState.Pendiente;
                }
                bill.SaleTotal   = O.SaleTotal;
                bill.Comments    = O.Comments;
                bill.SaleDate    = O.SaleDate;
                bill.SaleAddress = O.SaleAddress;
                bill.LinesTotal  = O.SaleTotal;
                if (cusid != 0)
                {
                    bill.IdCustomer = cusid;
                }
                db.Bills.Add(bill);
                db.SaveChanges();

                sale.SaleDate    = O.SaleDate;
                sale.SaleAddress = O.SaleAddress;
                sale.Comments    = O.Comments;
                sale.SaleTotal   = O.SaleTotal;
                sale.LinesTotal  = O.SaleTotal;
                sale.IdBill      = bill.IdBill;
                if (cusid != 0)
                {
                    sale.IdCustomer = cusid;
                }



                db.Sales.Add(sale);
                db.SaveChanges();

                foreach (var i in O.SaleLines)
                {
                    BillLine billline = new BillLine();
                    billline.IdProduct    = i.IdProduct;
                    billline.LinePrice    = i.LinePrice;
                    billline.LineDiscount = i.LineDiscount;
                    billline.LineQuantity = i.LineQuantity;
                    billline.LineTotal    = i.LineTotal;
                    billline.IdBill       = bill.IdBill;
                    db.BillLines.Add(billline);
                    db.SaveChanges();

                    SaleLine saleline = new SaleLine();
                    saleline.IdProduct    = i.IdProduct;
                    saleline.LinePrice    = i.LinePrice;
                    saleline.LineDiscount = i.LineDiscount;
                    saleline.LineQuantity = i.LineQuantity;
                    saleline.LineTotal    = i.LineTotal;
                    saleline.IdSale       = sale.IdSale;

                    db.SaleLines.Add(saleline);
                    db.SaveChanges();

                    Product prod = new Product();
                    prod = db.Products.Find(i.IdProduct);
                    if (final)
                    {
                        prod.Stock = prod.Stock - i.LineQuantity;
                    }
                    prod.ParcialStock    = prod.ParcialStock - i.LineQuantity;
                    db.Entry(prod).State = EntityState.Modified;
                    db.SaveChanges();
                }
                status = true;
            }
            else
            {
                status = false;
            }
            return(new JsonResult {
                Data = new { status = status }
            });
        }
Example #29
0
 public override void Visit(SaleLine line)
 {
 }
Example #30
0
        /// <summary>
        /// Method to create sale model
        /// </summary>
        /// <param name="sale">Sale</param>
        /// <param name="editLines"></param>
        /// <param name="enableExactExchange">Enable exact exchange button or not</param>
        /// <param name="writeOff">Write off</param>
        /// <param name="message">Message</param>
        /// <returns>Sale model</returns>
        public static SaleModel CreateSaleModel(Sale sale, List <SaleLineEdit> editLines,
                                                bool enableExactExchange, bool writeOff, List <object> message = null)
        {
            var store  = CacheManager.GetStoreInfo();
            var offSet = store?.OffSet ?? 0;

            sale.HasCarwashProducts = false;
            foreach (Sale_Line sl in sale.Sale_Lines)
            {
                if (sl.IsCarwashProduct)
                {
                    sale.HasCarwashProducts = true;
                }
            }

            var saleModel = new SaleModel
            {
                TillNumber         = sale.TillNumber,
                SaleNumber         = sale.Sale_Num,
                Customer           = sale.Customer.Name,
                EnableExactChange  = enableExactExchange,
                TotalAmount        = sale.Sale_Totals.TotalLabel,
                Summary            = sale.Sale_Totals.SummaryLabel,
                SaleLineErrors     = message,
                HasCarwashProducts = sale.HasCarwashProducts
            };

            var writeOffSaleLine = true;

            foreach (Sale_Line saleLine in sale.Sale_Lines)
            {
                var lineEdit    = editLines.FirstOrDefault(e => e.LineNumber == saleLine.Line_Num);
                var newSaleLine = new SaleLine
                {
                    LineNumber = saleLine.Line_Num,
                    StockCode  = saleLine.Stock_Code
                };
                //Tony 03/19/2019
                newSaleLine.Dept = saleLine.Dept;
                if (saleLine.ProductIsFuel)
                {
                    //shiny end
                    if (saleLine.IsPropane)
                    {
                        //shiny end
                        if (saleLine.IsPropane)
                        {
                            newSaleLine.Description = saleLine.Description + " " + ResourceManager.GetResString(371, offSet);
                        }
                        else
                        {
                            newSaleLine.Description = saleLine.Description + " " + ResourceManager.GetResString(281, offSet) + " " + Convert.ToString(saleLine.pumpID);
                        }
                    }
                    else
                    {
                        newSaleLine.Description = saleLine.Description + " " + ResourceManager.GetResString(281, offSet) +
                                                  " " + Convert.ToString(saleLine.pumpID);
                    }
                }
                else
                {
                    newSaleLine.Description = saleLine.Description;
                }

                // Derive the format strings for quantity and price.

                var fs = Convert.ToString(saleLine.QUANT_DEC == 0 ? "0" : "0." + new string('0', saleLine.QUANT_DEC));
                newSaleLine.Quantity = saleLine.Quantity.ToString(fs);
                //WriteToLogFile "Qty changed on main screen for index " & Index & " to " & SL.Quantity
                fs = Convert.ToString(saleLine.PRICE_DEC == 0 ? "0" : "0." + new string('0', saleLine.PRICE_DEC));
                newSaleLine.Price = saleLine.NoPriceFormat ? saleLine.price.ToString(CultureInfo.InvariantCulture) : saleLine.price.ToString(fs);

                // Show % or $ discounts
                if (saleLine.Discount_Rate > 0)
                {
                    newSaleLine.DiscountRate = saleLine.Discount_Type == "%" ? saleLine.Discount_Rate.ToString("#0.00") : saleLine.Discount_Rate.ToString(CultureInfo.InvariantCulture);
                }
                else
                {
                    newSaleLine.DiscountRate = "";
                }

                newSaleLine.Amount = saleLine.Amount == 0 ? "0.00" : (saleLine.Amount - Convert.ToDecimal(saleLine.Line_Discount)).ToString("###,##0.00");
                if (saleLine.ProductIsFuel || saleLine.Gift_Certificate)
                {
                    writeOffSaleLine = false;
                }
                newSaleLine.DiscountType        = saleLine.Discount_Type;
                newSaleLine.AllowPriceChange    = lineEdit != null && lineEdit.AllowPriceChange;
                newSaleLine.AllowQuantityChange = lineEdit != null && lineEdit.AllowQuantityChange;
                newSaleLine.AllowDiscountChange = lineEdit != null && lineEdit.AllowDiscountChange && !(saleLine.FuelRebateEligible && sale.Customer.UseFuelRebate && sale.Customer.UseFuelRebateDiscount);
                newSaleLine.AllowDiscountReason = lineEdit != null && lineEdit.AllowDiscountReason;
                newSaleLine.AllowPriceReason    = lineEdit != null && lineEdit.AllowPriceReason;
                newSaleLine.AllowReturnReason   = lineEdit != null && lineEdit.AllowReturnReason;
                newSaleLine.ConfirmDelete       = lineEdit != null && lineEdit.ConfirmDelete;
                saleModel.SaleLines.Add(newSaleLine);
            }
            saleModel.EnableWriteOffButton = writeOff && sale.Sale_Lines.Count != 0 && writeOffSaleLine;
            saleModel.CustomerDisplayText  = sale.CustomerDisplay;
            return(saleModel);
        }