Exemplo n.º 1
0
        public async Task <ActionResult> Edit([Bind(Include = "Id,Name,TimeStart,TimeEnd,Duration,Price,IsTransport")] Rates rates)
        {
            if (ModelState.IsValid)
            {
                db.Entry(rates).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(rates));
        }
        public async Task <ActionResult> Edit(int id, FormCollection collection)
        {
            Transport transport = new Transport();

            if (ModelState.IsValid)
            {
                transport              = db.Transport.Find(id);
                transport.IndexNumber  = collection["IndexNumber"];
                transport.SerialNumber = collection["SerialNumber"];
                transport.Status       = int.Parse(collection["Status"]);
                TransportModels transportModels = new TransportModels();
                if (int.TryParse(collection["TransportSelect2"], out int idModel))
                {
                    transportModels = db.TransportModels.Find(idModel);
                }

                transport.TransportModels = transportModels;

                db.Entry(transport).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(transport));
        }
        public async Task <ActionResult> Edit([Bind(Include = "Id,Name,Status,Price")] Accessories accessories)
        {
            if (ModelState.IsValid)
            {
                db.Entry(accessories).State = EntityState.Modified;
                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }
            return(View(accessories));
        }
Exemplo n.º 4
0
        public async Task <ActionResult> Edit(int Id, string Username, string Password, string Passport, string City,
                                              string Home, string Apartment, string Surname, string Street,
                                              string Patronymic, string Phone, string Name)
        {
            User user = db.Users.Include(cu => cu.ContactUser).FirstOrDefault(u => u.Id == Id);

            if (user != null)
            {
                user.Username = Username;
                user.Password = Password;
                var userInitialsName       = (Name != null && Name.Length > 0) ? Name[0] : ' ';
                var userInitialsPatronymic = (Patronymic != null && Patronymic.Length > 0) ? Patronymic[0] : ' ';


                user.ContactUser.Passport   = Passport;
                user.ContactUser.City       = City;
                user.ContactUser.Home       = Home;
                user.ContactUser.Apartment  = Apartment;
                user.ContactUser.Surname    = Surname;
                user.ContactUser.Name       = Name;
                user.ContactUser.Patronymic = Patronymic;
                user.ContactUser.Phone      = Phone;
                user.ContactUser.Street     = Street;
                user.ContactUser.ShortName  = $"{Surname} {userInitialsName}. {userInitialsPatronymic}.";

                if (ModelState.IsValid)
                {
                    db.Entry(user).State = EntityState.Modified;
                    //db.Entry(сontactUser).State = EntityState.Modified;
                    await db.SaveChangesAsync();

                    return(RedirectToAction("Index"));
                }
            }
            return(View(user));
        }
Exemplo n.º 5
0
        public ActionResult Edit(int id, FormCollection collection)
        {
            try
            {
                int dayOfWeek = 0;
                int.TryParse(collection["DayOfWeek"].ToString(), out dayOfWeek);

                var promotions = db.Promotions.Find(id);
                promotions.Name        = collection["Name"];
                promotions.Description = collection["Description"];
                promotions.DayOfWeek   = collection["DayOfWeek"];
                promotions.TimeStart   = TimeSpan.Parse(collection["TimeStart"]);
                promotions.TimeEnd     = TimeSpan.Parse(collection["TimeEnd"]);
                promotions.Discount    = decimal.Parse(collection["Discount"].ToString().Replace('.', ','));


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

                var Models = collection["TransportSelect2"].Split(',');

                var ptm = db.PromotionsTransportModels.Include(p => p.Promotions).Where(p => p.Promotions.Id == id).ToList();
                foreach (var PTM in ptm)
                {
                    db.PromotionsTransportModels.Remove(PTM);
                }

                db.SaveChanges();

                foreach (var model in Models)
                {
                    db.PromotionsTransportModels.Add(new PromotionsTransportModels
                    {
                        TransportModels = db.TransportModels.Find(Convert.ToInt32(model)),
                        Promotions      = promotions
                    });
                }
                db.SaveChanges();

                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                return(View());
            }
        }
Exemplo n.º 6
0
        public ActionResult Edit(int id, FormCollection collection)
        {
            try
            {
                var transportModels = db.TransportModels.Find(id);
                transportModels.Name         = collection["Name"];
                transportModels.Markup       = decimal.Parse(collection["Markup"].ToString().Replace('.', ','));
                transportModels.ChargingTime = decimal.Parse(collection["ChargingTime"].ToString().Replace('.', ','));

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

                return(RedirectToAction("Index"));
            }
            catch (Exception ex)
            {
                return(View());
            }
        }
Exemplo n.º 7
0
        public ActionResult Create(DateTime DateStart, int CountLock, int UserId,
                                   List <int> AccessoriesId, List <int> TransportId, int?RatesIdTransport,
                                   int addBonuses, int discount, int typeDocumentId, List <int> countTransport, List <int> countAccessories,
                                   decimal cashPayment, decimal cardPayment, decimal cardDeposit, decimal cashDeposit, decimal bonusPayment, string Note, int?promotionsList)
        {
            Order order = new Order();

            if (ModelState.IsValid)
            {
                //Итоговая сумма заказа
                decimal totalSum = 0;

                if (promotionsList != null && promotionsList != -1)
                {
                    totalSum -= db.Promotions.Find(promotionsList).Discount;
                }

                //totalSum += CountLock * 100;

                int statusTransportOrAccesories = DateStart >= DateTime.Now.AddHours(1) ? Convert.ToInt32(StatusTransportOrAccessories.Free) : Convert.ToInt32(StatusTransportOrAccessories.Busy);

                order.DateStart  = DateStart;
                order.DateEnd    = DateStart.AddHours(db.Rates.Find(RatesIdTransport) != null ? db.Rates.Find(RatesIdTransport).Duration : 0);
                order.CountLock  = CountLock;
                order.User       = db.Users.Find(UserId);
                order.Discount   = discount;
                order.AddBonuses = addBonuses;
                order.Note       = Note;

                db.Orders.Add(order);
                db.SaveChanges();

                db.Users.Find(UserId).Bonus += addBonuses - bonusPayment;
                var rate = db.Rates.Find(RatesIdTransport);

                if (TransportId != null)
                {
                    for (int i = 0; i < TransportId.Count; ++i)
                    {
                        //Ищем данные о выбранном тарифе для добавление к заказу и поиску свободных в определенное время

                        var transModel   = TransportId[i];
                        var transpModels = db.Transport.Include(tm => tm.TransportModels).ToList();

                        var rtr1 = db.RatesTransports.Include(tm => tm.TransportModels).Include(r => r.Rates);
                        var rtr  = rtr1.FirstOrDefault(tm => tm.TransportModels.Id == transModel && tm.Rates.Id == RatesIdTransport);

                        totalSum += rtr.Price * countTransport[i];

                        //ищем ТС которые подходят в выбранную дату (свободны) и определенное количество
                        var transp = db.Transport.SqlQuery("CALL transport_date_vw('" + DateStart.ToString("yyyy-MM-dd HH:mm") + "','" + DateStart.AddHours(rate.Duration).ToString("yyyy-MM-dd HH:mm") + "')").ToList();
                        foreach (var transpSQL in transp)
                        {
                            transpSQL.TransportModels = transpModels.FirstOrDefault(tr => tr.Id == transpSQL.Id).TransportModels;
                        }
                        transp = transp.Where(tm => tm.TransportModels.Id == transModel).Take(countTransport[i]).ToList();

                        List <Transport> transports = new List <Transport>();
                        foreach (var trans in transp)
                        {
                            //из полученного списка ранее ищем еще те которые подходят нам по модели
                            transports.Add(db.Transport.Include(tm => tm.TransportModels).FirstOrDefault(tr => tr.Id == trans.Id && tr.TransportModels.Id == transModel));
                        }
                        foreach (var tr in transports)
                        {
                            if (tr != null)
                            {
                                db.Entry(tr).State = EntityState.Modified;
                            }
                        }

                        foreach (var tr in transports)
                        {
                            db.OrderTransport.Add(new OrderTransport()
                            {
                                Transport = tr,
                                Order     = order,
                                Rates     = rate
                            });
                        }
                    }
                }

                if (AccessoriesId != null)
                {
                    for (int i = 0; i < AccessoriesId.Count; ++i)
                    {
                        var idAccesories = AccessoriesId[i];
                        var accName      = db.Accessories.FirstOrDefault(ac => ac.Id == idAccesories).Name;
                        var access       = db.Accessories.SqlQuery("CALL accessories_date_vw('" + DateStart.ToString("yyyy-MM-dd HH:mm") + "','" + DateStart.AddHours(rate.Duration).ToString("yyyy-MM-dd HH:mm") + "')").ToList();

                        access = access.Where(ac => ac.Name == accName).Take(countAccessories[i]).ToList();

                        List <Accessories> accessories = new List <Accessories>();
                        foreach (var acc in access)
                        {
                            //из полученного списка ранее ищем еще те которые подходят нам по модели
                            accessories.Add(db.Accessories.FirstOrDefault(ac => ac.Id == acc.Id && ac.Name == accName));
                        }
                        foreach (var ac in accessories)
                        {
                            if (ac != null)
                            {
                                //меняем статус, если это необходимо
                                //ac.Status = statusTransportOrAccesories;
                                db.Entry(ac).State = EntityState.Modified;
                                totalSum          += ac.Price;
                            }
                        }
                        foreach (var ac in accessories)
                        {
                            db.OrderAccessories.Add(new OrderAccessories()
                            {
                                Accessories = ac,
                                Order       = order,
                            });
                        }
                    }
                }

                var     tdoc    = db.Helpers.Where(h => h.Code == 1 && h.Value == typeDocumentId).ToList();
                Payment payment = new Payment()
                {
                    TypeDocument = tdoc != null && tdoc.Count > 0 ? tdoc[0].Value : 3,
                    CashPayment  = cashPayment,
                    CardPayment  = cardPayment,
                    CardDeposit  = cardDeposit,
                    CashDeposit  = cashDeposit,
                    BonusPayment = bonusPayment,
                    TotalSum     = totalSum
                };
                db.Payment.Add(payment);

                order.Payment = payment;

                var remainder = totalSum - (cardDeposit + cardPayment + cashDeposit + cashPayment + bonusPayment + discount);
                order.StatusOrder = remainder == 0 ? "Оплачен" : "Ожидает оплаты";

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

                return(RedirectToAction("Index"));
            }

            return(View(order));
        }