public IActionResult Save(InvoiceCreateViewModel viewModel) { if (viewModel.Tax == null) { return(View("Error")); } Random rnd = new Random(); var invoice = _serviceInvoice.Insert(new Invoice { DateCreation = DateTime.Now, InvoiceNumber = GenerateProductNumber(10, rnd), RecipientName = viewModel.RecipientName, PaymentDate = DateTime.Now.AddDays(7), UserId = _userManager.GetUserId(HttpContext.User) }); foreach (var item in viewModel.SelectedItems) { var itemInDb = _serviceItem.Get(x => x.Id == item.Id); _serviceInvoiceItems.Insert(new InvoiceItems { InvoiceId = invoice.Id, ItemId = item.Id, QuantitySold = item.Quantity, PriceWithTax = calculateService.CalculatePrice(itemInDb.Price, item.Quantity, viewModel.Tax), PriceWithoutTax = calculateService.CalculatePrice(itemInDb.Price, item.Quantity), Tax = viewModel.Tax }); } return(RedirectToAction(nameof(Index), "Home")); }
public PartialViewResult AddProduct(InvoiceCreateViewModel invoiceCreateViewModel) { var invoice = AddOrUpdateInvoice(invoiceCreateViewModel); var products = GetInvoiceProducts(invoice.Id); return(PartialView("_ProductsPartial", products)); }
public ActionResult Index(InvoiceCreateViewModel Model) { //1. 設定開立發票資訊 InvoiceCreate invc = new InvoiceCreate(); invc.MerchantID = Model.MerchantID; invc.RelateNumber = Model.RelateNumber; invc.AllPayMid = Model.AllPayMid; invc.CarruerNum = Model.CarruerNum; invc.ClearanceMark = Model.ClearanceMark; invc.carruerType = Model.CarruerType; invc.CarruerNum = Model.CarruerNum; invc.Print = Model.Print; invc.Donation = Model.Donation; invc.CustomerID = Model.CustomerID; invc.CustomerIdentifier = Model.CustomerIdentifier; invc.CustomerAddr = Model.CustomerAddr; invc.CustomerName = Model.CustomerName; invc.CustomerPhone = Model.CustomerPhone; invc.CustomerEmail = Model.CustomerEmail; invc.SalesAmount = Model.SalesAmount; invc.LoveCode = Model.LoveCode; invc.vat = Model.vat; invc.TaxType = Model.TaxType; invc.invType = Model.InvType; invc.Items.Add(new Item() { ItemName = Model.ItemName, ItemPrice = Model.ItemPrice, ItemCount = Model.ItemCount, ItemWord = Model.ItemWord, ItemAmount = Model.ItemAmount }); //2. 初始化發票Service物件 Invoice <InvoiceCreate> inv = new Invoice <InvoiceCreate>(); //3. 指定測試環境, 上線時請記得改Prod inv.Environment = EInvoice.Integration.Enumeration.EnvironmentEnum.Stage; //4. 設定歐付寶提供的 Key 和 IV inv.HashIV = "q9jcZX8Ib9LM8wYk"; inv.HashKey = "ejCk326UnaZWKisg"; //5. 執行API的回傳結果(JSON)字串 string json = inv.post(invc); //6. 解序列化,還原成物件使用 //InvoiceCreateReturn obj = new InvoiceCreateReturn(); //obj = JsonConvert.DeserializeObject<InvoiceCreateReturn>(json); //obj.XXX; // ... ViewBag.message = json; return(View()); }
// GET: Invoices/Create public async Task <IActionResult> Create() { var vm = new InvoiceCreateViewModel() { AppUserSelectList = new SelectList(await _bll.AppUsers.AllAsync(), nameof(BLL.App.DTO.Identity.AppUser.Id), nameof(BLL.App.DTO.Identity.AppUser.Id)) }; return(View(vm)); }
public ActionResult Create([Bind(Include = "Id,Name,Currency,ClientId,ProductId,Price,Quantity")] InvoiceCreateViewModel invoiceViewModel) { if (ModelState.IsValid) { AddOrUpdateInvoice(invoiceViewModel); return(RedirectToAction("Index")); } ViewBag.Clients = new SelectList(db.Clients, "Id", "Name", invoiceViewModel.ClientId); ViewBag.Products = new SelectList(db.Products, "Id", "ProductName", invoiceViewModel.ProductId); return(View(invoiceViewModel)); }
public JsonResult CreateInvoice([FromBody] InvoiceCreateViewModel data) { try { if (ModelState.IsValid) { var customer = new Customer { Name = data.PersonName, Surname = data.PersonSurname, Address = data.PersonAddress, Email = data.PersonEmail, Phone = data.PersonPhone }; _context.Customers.Add(customer); _context.SaveChanges(); var invoice = new Invoice { Customer = _context.Customers.LastOrDefault(x => x.Phone == customer.Phone), InvoiceDate = data.InvoiceDate, InvoiceNo = data.InvoiceNo, TotalPrice = data.TotalPrice }; _context.Invoices.Add(invoice); _context.SaveChanges(); foreach (var product in data.Products) { var invoiceDetail = new InvoiceDetail { Invoice = _context.Invoices.LastOrDefault(), Piece = product.Piece, ProductName = product.ProductName, UnitPrice = product.UnitPrice, Price = product.Price }; _context.InvoiceDetails.Add(invoiceDetail); } _context.SaveChanges(); return(Json(new { success = true, message = "Kaydedildi." })); } } catch (Exception) { return(Json(new { success = false, message = "Bir hata oluştu" })); } return(Json(new { success = false, message = "Eksik veya yanlış bilgi girildi." })); }
public async Task <IActionResult> Create(InvoiceCreateViewModel vm) { if (ModelState.IsValid) { _bll.Invoices.Add(vm.Invoice); await _bll.SaveChangesAsync(); return(RedirectToAction(nameof(Index))); } vm.AppUserSelectList = new SelectList(await _bll.AppUsers.AllAsync(), nameof(BLL.App.DTO.Identity.AppUser.Id), nameof(BLL.App.DTO.Identity.AppUser.Id), vm.Invoice.AppUserId); return(View(vm)); }
private Invoice AddOrUpdateInvoice(InvoiceCreateViewModel invoiceCreateViewModel) { Invoice invoice = db.Invoices .Include(i => i.InvoiceProducts) .Include(i => i.InvoiceProducts.Select(ip => ip.Product)) .SingleOrDefault(i => i.Name.Equals(invoiceCreateViewModel.Name)); if (invoice == null) { invoice = AddInvoiceProduct(invoiceCreateViewModel); } else { UpdateInvoiceProduct(invoiceCreateViewModel, invoice); } return(invoice); }
private void UpdateInvoiceProduct(InvoiceCreateViewModel invoiceViewModel, Invoice invoice) { db.InvoiceProducts.Add(new InvoiceProduct { InvoiceId = invoice.Id, ProductId = invoiceViewModel.ProductId, Quantity = invoiceViewModel.Quantity, Invoice = invoice, Product = db.Products.SingleOrDefault(p => p.Id.Equals(invoiceViewModel.ProductId)) }); invoice.Name = invoiceViewModel.Name; invoice.ClientId = invoiceViewModel.ClientId; invoice.Currency = invoiceViewModel.Currency; db.Entry(invoice).State = EntityState.Modified; db.SaveChanges(); }
// GET: Invoices/Create public ActionResult Create(int?id) { ViewBag.ClientId = new SelectList(db.Clients, "Id", "Name"); ViewBag.Products = new SelectList(db.Products, "Id", "ProductName"); if (id != null) { Invoice invoice = db.Invoices.Single(i => i.Id.Equals(id.Value)); InvoiceCreateViewModel invoiceCreateViewModel = new InvoiceCreateViewModel { ClientId = invoice.ClientId, Currency = invoice.Currency, InvoiceId = invoice.Id, Name = invoice.Name }; return(View(invoiceCreateViewModel)); } return(View()); }
// GET: Invoices/Edit/5 public ActionResult Edit(int?id) { ViewBag.ClientId = new SelectList(db.Clients, "Id", "Name"); ViewBag.Products = new SelectList(db.Products, "Id", "ProductName"); var firstProduct = db.Products.FirstOrDefault(); if (firstProduct != null) { ViewBag.FirstProductPrice = firstProduct.Price; } else { ViewBag.FirstProductPrice = 0; } if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } Invoice invoice = db.Invoices.Find(id); if (invoice == null) { return(HttpNotFound()); } InvoiceCreateViewModel invoiceCreateViewModel = new InvoiceCreateViewModel { ClientId = invoice.ClientId, Currency = invoice.Currency, InvoiceId = invoice.Id, Name = invoice.Name, ProductId = 0 }; return(View(invoiceCreateViewModel)); }
private Invoice AddInvoiceProduct(InvoiceCreateViewModel invoiceViewModel) { Invoice invoice = new Invoice { ClientId = invoiceViewModel.ClientId, Currency = invoiceViewModel.Currency, Name = invoiceViewModel.Name }; db.Invoices.Add(invoice); db.InvoiceProducts.Add(new InvoiceProduct { InvoiceId = invoiceViewModel.InvoiceId, ProductId = invoiceViewModel.ProductId, Quantity = invoiceViewModel.Quantity, Invoice = invoice, Product = db.Products.SingleOrDefault(p => p.Id.Equals(invoiceViewModel.ProductId)) }); db.SaveChanges(); return(invoice); }
public ActionResult New() { var patients = new List <Patient> { new Patient { PatientId = 1, FirstName = "Sethu", LastName = "Mazibuko", IdNumber = 8922 }, new Patient { PatientId = 2, FirstName = "Lucky", LastName = "Zulu", IdNumber = 8922 }, new Patient { PatientId = 3, FirstName = "Zama", LastName = "Gumbi", IdNumber = 8922 }, new Patient { PatientId = 4, FirstName = "Menzi", LastName = "Peterson", IdNumber = 8922 }, new Patient { PatientId = 5, FirstName = "Luke", LastName = "Swan", IdNumber = 8922 } }; var viewModel = new InvoiceCreateViewModel() { InvoiceLines = new List <InvoiceLine> { new InvoiceLine { Code = "TT25", Description = "RMI", InvoiceLineId = 109, LineTotal = 1000, Qty = 1, }, new InvoiceLine { Code = "TT29", Description = "Lung Scan", InvoiceLineId = 110, LineTotal = 289, Qty = 1, } }, Patients = patients }; return(View("New", viewModel)); }
public InvoiceCreateView() { InitializeComponent(); DataContext = new InvoiceCreateViewModel(this); }