public async Task <InvoiceHeaderSet> InsertInvoiceDeitails(int invoiceHeader, int quantity, string number) { return(await Task.Factory.StartNew(() => { using (CasierContents context = new CasierContents()) { { InvoiceHeaderSet findInvoiceHeaderSet = context.InvoiceHeaderSet.Include("InvoiceHeaderDetailsSet.ItemSet").Where(x => x.InvoiceHeaderSetId == invoiceHeader).FirstOrDefault() ?? null; { if (findInvoiceHeaderSet.InvoiceHeaderDetailsSet.Count == 0) { InvoiceHeaderDetailsSet CreateNewInvoiceHeaderDetailset = new InvoiceHeaderDetailsSet(); CreateNewInvoiceHeaderDetailset.OrderTime = DateTime.Now; ItemSet itemSet = context.ItemSet.Where(x => x.Number == number).FirstOrDefault() ?? null; CreateNewInvoiceHeaderDetailset.ItemSet = itemSet; if (CreateNewInvoiceHeaderDetailset.Quantity == null) { CreateNewInvoiceHeaderDetailset.Quantity = (short)quantity; } findInvoiceHeaderSet.InvoiceHeaderDetailsSet.Add(CreateNewInvoiceHeaderDetailset); } // hvis der er flere items så skal der lægges sammen. else if (findInvoiceHeaderSet.InvoiceHeaderDetailsSet.Count > 0) { var findTheCOrrectOne = findInvoiceHeaderSet.InvoiceHeaderDetailsSet.Where(x => x.ItemSet.Number == number).FirstOrDefault(); if (findTheCOrrectOne != null) { if (findTheCOrrectOne.Quantity != null) { findTheCOrrectOne.Quantity += (short)quantity; } else { findTheCOrrectOne.Quantity = (short)quantity; } if (findTheCOrrectOne.Quantity <= 0) { context.InvoiceHeaderDetailsSet.Remove(findTheCOrrectOne); } } else if (findTheCOrrectOne == null && quantity > 0) { InvoiceHeaderDetailsSet CreateNewInvoiceHeaderDetailsets = new InvoiceHeaderDetailsSet(); CreateNewInvoiceHeaderDetailsets.OrderTime = DateTime.Now; ItemSet itemSet = context.ItemSet.Where(x => x.Number == number).FirstOrDefault() ?? null; CreateNewInvoiceHeaderDetailsets.ItemSet = itemSet; itemSet.InvoiceHeaderDetailsSet.Add(CreateNewInvoiceHeaderDetailsets); CreateNewInvoiceHeaderDetailsets.Quantity = (short)quantity; findInvoiceHeaderSet.InvoiceHeaderDetailsSet.Add(CreateNewInvoiceHeaderDetailsets); } } } context.SaveChanges(); context.InvoiceHeaderSet.Add(findInvoiceHeaderSet); return findInvoiceHeaderSet; } } })); }
public async Task <InvoiceHeaderSet> splitUpForV(InvoiceHeaderSet invoiceHeaderSet, List <InvoiceHeaderDetailsSet> invoiceDetails, bool takeAway, int total) { return(await Task.Factory.StartNew(() => { using (CasierContents context = new CasierContents()) { int TakeAwayTotal = 0; InvoiceHeaderSet currentInvoiceHeaderSet = new InvoiceHeaderSet(); currentInvoiceHeaderSet.PayDate = DateTime.Now; currentInvoiceHeaderSet.Number = invoiceHeaderSet.Number; //currentInvoiceHeaderSet.InvoiceHeaderDetailsSet = invoiceDetails; foreach (var item in invoiceDetails) { InvoiceHeaderDetailsSet CreateNewInvoiceHeaderDetailsets = new InvoiceHeaderDetailsSet(); ItemSet itemSet = context.ItemSet.Where(x => x.Number == item.ItemSet.Number).FirstOrDefault() ?? null; CreateNewInvoiceHeaderDetailsets.ItemSet = itemSet; CreateNewInvoiceHeaderDetailsets.Quantity = item.Quantity; CreateNewInvoiceHeaderDetailsets.OrderTime = DateTime.Now; currentInvoiceHeaderSet.InvoiceHeaderDetailsSet.Add(CreateNewInvoiceHeaderDetailsets); int quantity = (int)item.Quantity; int price = (int)(item.ItemSet.Price); int sum = quantity *price; if (item.ItemSet.Discount != null) { int rabat = (int)item.ItemSet.Price * (int)item.ItemSet.Discount / 100; sum = sum - rabat; } TakeAwayTotal += (int)sum; } if (takeAway) { currentInvoiceHeaderSet.Total = TakeAwayTotal; } else { currentInvoiceHeaderSet.Total = total; } context.InvoiceHeaderSet.Add(currentInvoiceHeaderSet); // context.SaveChanges(); // update newone InvoiceHeaderSet currentInvoiceHeader = context.InvoiceHeaderSet.Include("InvoiceHeaderDetailsSet.ItemSet").Where(x => x.InvoiceHeaderSetId == invoiceHeaderSet.InvoiceHeaderSetId).FirstOrDefault() ?? null; foreach (var item in invoiceHeaderSet.InvoiceHeaderDetailsSet) { context.InvoiceHeaderDetailsSet.AddOrUpdate(item); } context.SaveChanges(); return currentInvoiceHeader; } })); }