コード例 #1
0
ファイル: Catalog.cs プロジェクト: 756812409/CasierService
 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;
             }
         }
     }));
 }
コード例 #2
0
ファイル: Catalog.cs プロジェクト: 756812409/CasierService
        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;
                }
            }));
        }