コード例 #1
0
        // GET: /Fiscalizations/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Fiscalization fiscalization = await db.Fiscalizations.FindAsync(id);

            if (fiscalization == null)
            {
                return(HttpNotFound());
            }

            FiscalizationViewModel model = new FiscalizationViewModel();

            model.FiscalizationDate  = fiscalization.FiscalizationDate.ToString("yyyy-MM-dd");
            model.RevievDate         = fiscalization.RevievDate.ToString("yyyy-MM-dd");
            model.UseOfTheDeviceDate = fiscalization.UseOfTheDeviceDate.ToString("yyyy-MM-dd");
            model.City            = fiscalization.City;
            model.CustomerId      = fiscalization.CustomerId;
            model.FiscalizationId = fiscalization.FiscalizationId;
            model.Servisman       = fiscalization.Servisman;

            ViewBag.CustomerId  = new SelectList(db.Customers, "CustomerId", "Name", fiscalization.CustomerId);
            ViewBag.TaxOfficeId = new SelectList(db.TaxOffices, "TaxOfficeId", "Name", fiscalization.TaxOfficeId);

            //select fiscalized (current order) devices and all with status 'NIEFISKALNY'
            var devices = (from d in db.Devices
                           join m in db.Modules on d.DeviceId equals m.DeviceId
                           join f in db.DevicesFolders on d.DevicesFolderId equals f.DevicesFolderId
                           join fm in db.FiscalizationsToModules.DefaultIfEmpty() on m.ModuleId equals fm.ModuleId into lrs
                           from lr in lrs.DefaultIfEmpty()
                           where ((m.Status == "NIEFISKALNY") || (m.Status == "FISKALNY") & (lr.FiscalizationId == fiscalization.FiscalizationId))
                           select new SelectDeviceToFiscalizationViewModel()
            {
                DeviceId = d.DeviceId,
                ModuleId = m.ModuleId,
                AddressId = (from fm in db.FiscalizationsToModules
                             where (fm.FiscalizationId == fiscalization.FiscalizationId) && (m.ModuleId == fm.ModuleId)
                             select fm.AddressId).FirstOrDefault(),
                DeviceName = f.Name,
                SerialNumber = d.SerialNumber,
                UniqueNumber = m.UniqueNumber,
                Status = m.Status,
                Selected = ((from fm in db.FiscalizationsToModules
                             where (fm.FiscalizationId == fiscalization.FiscalizationId) && (m.ModuleId == fm.ModuleId)
                             select fm).Count() > 0),
                Addresses = db.Addresses.Where(i => i.CustomerId == model.CustomerId).ToList()
            }).ToList();

            model.Devices = devices;

            return(View(model));
        }
コード例 #2
0
        // GET: /Fiscalizations/Create
        public ActionResult Create()
        {
            var fiscalizationViewModel = new FiscalizationViewModel();

            fiscalizationViewModel.FiscalizationDate  = DateTime.Now.ToString("yyyy-MM-dd");
            fiscalizationViewModel.UseOfTheDeviceDate = DateTime.Now.ToString("yyyy-MM-dd");
            fiscalizationViewModel.RevievDate         = (DateTime.Now).AddYears(2).ToString("yyyy-MM-dd");

            fiscalizationViewModel.Devices = GetDevicesToFiscalization(0, 0);

            ViewBag.CustomerId  = new SelectList(db.Customers, "CustomerId", "Name");
            ViewBag.TaxOfficeId = new SelectList(db.TaxOffices, "TaxOfficeId", "Name");

            return(View(fiscalizationViewModel));
        }
コード例 #3
0
        public PartialViewResult SetDevicesAddressesByCustomer(int customerId, int fiscalizationId)
        {
            var modelView = new FiscalizationViewModel();

            var adress = db.Addresses.Where(i => i.CustomerId == customerId).ToList();

            modelView.Devices = GetDevicesToFiscalization(customerId, fiscalizationId);

            foreach (var item in modelView.Devices)
            {
                item.Addresses = adress;
            }

            return(PartialView("~/Views/Fiscalizations/EditorTemplates/SelectDeviceToFiscalizationViewModel.cshtml", modelView));
        }
コード例 #4
0
        public async Task <ActionResult> Create([Bind(Include = "FiscalizationId,TaxOfficeId,CustomerId,ModuleId,FiscalizationDate,RevievDate,OrderDate,City,UseOfTheDeviceDate, Devices,Servisman")] FiscalizationViewModel fiscalizationVM)
        {
            //need to be refactor
            var selectedCount = 0;

            foreach (var item in fiscalizationVM.Devices)
            {
                if (item.Selected)
                {
                    selectedCount++;
                }
            }

            if (selectedCount == 0)
            {
                ModelState.AddModelError("ValidationMessage", "Nie zaznaczono żadnych urządzeń");
                ViewBag.DevicesCountError = "noneSelected";
            }
            else
            {
                for (int i = 0; i < fiscalizationVM.Devices.Count; i++)
                {
                    if (!fiscalizationVM.Devices[i].Selected)
                    {
                        try
                        {
                            ModelState.Remove("Devices[" + i + "].AddressId");
                        }
                        catch (NotSupportedException /*e*/)
                        {
                        }
                    }
                }
            }

            if (ModelState.IsValid)
            {
                Fiscalization fiscalization = new Fiscalization();

                fiscalization.CustomerId  = fiscalizationVM.CustomerId;
                fiscalization.TaxOfficeId = fiscalizationVM.TaxOfficeId;

                fiscalization.FiscalizationDate  = DateTime.ParseExact(fiscalizationVM.FiscalizationDate, @"yyyy-MM-dd", CultureInfo.InvariantCulture);
                fiscalization.UseOfTheDeviceDate = DateTime.ParseExact(fiscalizationVM.UseOfTheDeviceDate, @"yyyy-MM-dd", CultureInfo.InvariantCulture);
                fiscalization.RevievDate         = DateTime.ParseExact(fiscalizationVM.RevievDate, @"yyyy-MM-dd", CultureInfo.InvariantCulture);

                fiscalization.City      = fiscalizationVM.City;
                fiscalization.Servisman = fiscalizationVM.Servisman;

                db.Fiscalizations.Add(fiscalization);

                foreach (var item in fiscalizationVM.Devices)
                {
                    if (item.Selected == true)
                    {
                        var device = db.Devices.Find(item.DeviceId);
                        if (device != null)
                        {
                            device.InterimReviewDate = fiscalization.RevievDate;
                        }

                        var module = db.Modules.Find(item.ModuleId);

                        if (module != null)
                        {
                            module.Status = "FISKALNY";
                            db.FiscalizationsToModules.Add(new FiscalizationToModules()
                            {
                                FiscalizationId = fiscalization.FiscalizationId, ModuleId = module.ModuleId, AddressId = item.AddressId
                            });
                            db.Entry(module).State = EntityState.Modified;
                        }
                    }
                }

                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            ViewBag.CustomerId  = new SelectList(db.Customers, "CustomerId", "Name", fiscalizationVM.CustomerId);
            ViewBag.TaxOfficeId = new SelectList(db.TaxOffices, "TaxOfficeId", "Name", fiscalizationVM.TaxOfficeId);

            var adress = db.Addresses.Where(i => i.CustomerId == fiscalizationVM.CustomerId).ToList();

            foreach (var item in fiscalizationVM.Devices)
            {
                item.Addresses = adress;
            }

            return(View(fiscalizationVM));
        }
コード例 #5
0
        public async Task <ActionResult> Edit([Bind(Include = "FiscalizationId,TaxOfficeId,CustomerId,ModuleId,FiscalizationDate,RevievDate,OrderDate,City,UseOfTheDeviceDate, Devices,Servisman")] FiscalizationViewModel model)
        {
            var selectedCount = 0;

            foreach (var item in model.Devices)
            {
                if (item.Selected)
                {
                    selectedCount++;
                }
            }

            if (selectedCount == 0)
            {
                ModelState.AddModelError("ValidationMessage", "Nie zaznaczono żadnych urządzeń");
                ViewBag.DevicesCountError = "Nie zaznaczono żadnych urządzeń";
            }
            else
            {
                for (int i = 0; i < model.Devices.Count; i++)
                {
                    if (model.Devices[i].Selected && (model.Devices[i].AddressId == 0))
                    {
                        ModelState.AddModelError("Devices[" + i + "].AddressId", "Wybierz miejsce instalacji");
                    }
                    else
                    {
                        try
                        {
                            ModelState.Remove("Devices[" + i + "].AddressId");
                        }
                        catch (NotSupportedException /*e*/)
                        {
                        }
                    }
                }
            }
            if (ModelState.IsValid)
            {
                Fiscalization fiscalization = db.Fiscalizations.FirstOrDefault(f => f.FiscalizationId == model.FiscalizationId);
                if (fiscalization == null)
                {
                    return(HttpNotFound());
                }

                fiscalization.CustomerId  = model.CustomerId;
                fiscalization.TaxOfficeId = model.TaxOfficeId;

                fiscalization.FiscalizationDate  = DateTime.ParseExact(model.FiscalizationDate, @"yyyy-MM-dd", CultureInfo.InvariantCulture);
                fiscalization.UseOfTheDeviceDate = DateTime.ParseExact(model.UseOfTheDeviceDate, @"yyyy-MM-dd", CultureInfo.InvariantCulture);
                fiscalization.RevievDate         = DateTime.ParseExact(model.RevievDate, @"yyyy-MM-dd", CultureInfo.InvariantCulture);

                fiscalization.City      = model.City;
                fiscalization.Servisman = model.Servisman;

                foreach (var item in db.FiscalizationsToModules)
                {
                    if (item.FiscalizationId == fiscalization.FiscalizationId)
                    {
                        Module module = db.Modules.Find(item.ModuleId);
                        module.Status        = "NIEFISKALNY";
                        db.Entry(item).State = System.Data.Entity.EntityState.Deleted;
                    }
                }

                var selectedIds = model.GetSelectedIds();

                foreach (var item in selectedIds)
                {
                    var device = db.Devices.Find(item.DeviceId);
                    if (device != null)
                    {
                        device.InterimReviewDate = fiscalization.RevievDate;
                    }

                    var module = db.Modules.Find(item.ModuleId);
                    if (module != null)
                    {
                        module.Status = "FISKALNY";
                        db.FiscalizationsToModules.Add(new FiscalizationToModules()
                        {
                            FiscalizationId = fiscalization.FiscalizationId, ModuleId = module.ModuleId, AddressId = item.AddressId
                        });
                        db.Entry(module).State = EntityState.Modified;
                    }
                }

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

                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            ViewBag.CustomerId  = new SelectList(db.Customers, "CustomerId", "Name", model.CustomerId);
            ViewBag.TaxOfficeId = new SelectList(db.TaxOffices, "TaxOfficeId", "Name", model.TaxOfficeId);

            var adress = db.Addresses.Where(i => i.CustomerId == model.CustomerId).ToList();

            foreach (var item in model.Devices)
            {
                item.Addresses = adress;
            }
            return(View(model));
        }