public InvoiceHistoryProducts SaveInvoiceProducts(InvoiceHistoryProducts SelectedProducts)
 {
     //Invoice related products
     _Context.InvoiceHistoryProducts.Add(SelectedProducts);
     _Context.SaveChanges();
     return(SelectedProducts);
 }
        public IActionResult CreateInvoice(Invoice model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    InvoiceHistory IHmodel = new InvoiceHistory();
                    IHmodel.CustomerID        = model.CustomerID;
                    IHmodel.LayoutName        = model.LayoutName ?? 1.ToString();
                    IHmodel.SpecificNotes     = model.SpecificNotes;
                    IHmodel.Status            = model.Status;
                    IHmodel.TotalTaxes        = model.TotalTaxes;
                    IHmodel.TotalWithoutTax   = model.TotalWithoutTax;
                    IHmodel.InvoiceDate       = Convert.ToDateTime(model.InvoiceDate);
                    IHmodel.InvoiceDueDate    = Convert.ToDateTime(model.InvoiceDueDate);
                    IHmodel.InvoiceNo         = model.InvoiceNo;
                    IHmodel.ShareableID       = Guid.NewGuid().ToString();
                    IHmodel.TotalWithTaxes    = Convert.ToDecimal(model.TotalWithoutTax) + Convert.ToDecimal(model.TotalTaxes);
                    IHmodel.ShowPaymentButton = false;
                    IHmodel.CreatedDate       = System.DateTime.UtcNow;

                    int RefInvoiceHistpryID = _InvoiceService.SaveInvoice(IHmodel).ID;

                    foreach (var item in model.SlectedItems)
                    {
                        InvoiceHistoryProducts IHP = new InvoiceHistoryProducts();

                        string[] arr      = item.Split('-');
                        int      Pid      = Convert.ToInt32(arr[0]);
                        int      Quantity = Convert.ToInt32(arr[1]);

                        decimal Price = _ProductService.GetProductByID(Pid).ProductUnitPrice;

                        IHP.ProdcutID        = Pid;
                        IHP.ProductUnitPrice = Price;
                        IHP.ProdcutUnits     = Quantity;
                        IHP.ProdcutSubTotal  = Price * Convert.ToDecimal(Quantity);
                        IHP.InvoiceHistoryID = RefInvoiceHistpryID;
                        _InvoiceService.SaveInvoiceProducts(IHP);
                    }

                    return(RedirectToAction("InvoiceHistoryList"));    // need to do
                }
                catch (Exception ex)
                {
                    TempData["Error"] = "Sorry, Some error occourred";
                    return(RedirectToAction("CreateInvoice"));
                }
            }
            else
            {
                model.AllStatusList = StatusList;
                model.LayoutName    = model.LayoutName;
                model.AllProducts   = _ProductService.AllProductListForDdl();
                model.GS            = _GeneralService.GetGeneralSettings();
                return(View(model));
            }
        }
 public InvoiceHistoryProducts DeleteInvoiceProdcuts(InvoiceHistoryProducts SelectedProduct)
 {
     _Context.InvoiceHistoryProducts.Remove(SelectedProduct);
     _Context.SaveChanges();
     return(SelectedProduct);
 }