/// <summary>
        /// add new invoice master.
        /// </summary>
        /// <returns></returns>
        public async Task <IActionResult> AddInvoiceMaster()
        {
            ViewBag.CustomerList = await _ledger.GetLedgerSelectList((int)LedgerName.SundryDebtor);

            ViewBag.BankLedgerList = await _ledger.GetLedgerSelectList((int)LedgerName.BankAccount);

            ViewBag.AccountLedgerList = await _ledger.GetLedgerSelectList(0);

            ViewBag.TaxRegisterList = await _taxRegister.GetTaxRegisterSelectList();

            ViewBag.CurrencyList = await _currency.GetCurrencySelectList();

            ViewBag.TaxModelTypeList = EnumHelper.GetEnumListFor <TaxModelType>();
            ViewBag.DiscountTypeList = EnumHelper.GetEnumListFor <DiscountType>();

            UserSessionModel  userSession       = SessionExtension.GetComplexData <UserSessionModel>(HttpContext.Session, "UserSession");
            SalesInvoiceModel salesInvoiceModel = new SalesInvoiceModel();

            salesInvoiceModel.CompanyId       = userSession.CompanyId;
            salesInvoiceModel.FinancialYearId = userSession.FinancialYearId;

            // generate no.
            GenerateNoModel generateNoModel = await _salesInvoice.GenerateInvoiceNo(userSession.CompanyId, userSession.FinancialYearId);

            salesInvoiceModel.InvoiceNo   = generateNoModel.VoucherNo;
            salesInvoiceModel.InvoiceDate = DateTime.Now;

            return(await Task.Run(() =>
            {
                return PartialView("_AddInvoiceMaster", salesInvoiceModel);
            }));
        }
        public async Task <JsonResult> SaveInvoiceMaster(SalesInvoiceModel salesInvoiceModel)
        {
            JsonData <JsonStatus> data = new JsonData <JsonStatus>(new JsonStatus());

            if (ModelState.IsValid)
            {
                if (salesInvoiceModel.InvoiceId > 0)
                {
                    // update record.
                    if (true == await _salesInvoice.UpdateSalesInvoice(salesInvoiceModel))
                    {
                        data.Result.Status = true;
                    }
                }
                else
                {
                    // add new record.
                    if (await _salesInvoice.CreateSalesInvoice(salesInvoiceModel) > 0)
                    {
                        data.Result.Status = true;
                    }
                }
            }

            return(Json(data));
        }
        public async Task <int> CreateAsync(SalesInvoiceModel model)
        {
            int result = 0;

            using (var transaction = DbContext.Database.BeginTransaction())
            {
                try
                {
                    int index = 0;
                    do
                    {
                        model.Code = CodeGenerator.Generate();
                    }while (DbSet.Any(d => d.Code.Equals(model.Code)));

                    SalesInvoiceNumberGenerator(model, index);
                    salesInvoiceLogic.Create(model);
                    index++;

                    result = await DbContext.SaveChangesAsync();

                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }

            return(result);
        }
Esempio n. 4
0
        public async Task <int> DeleteAsync(int id)
        {
            using (var transaction = DbContext.Database.BeginTransaction())
            {
                try
                {
                    SalesInvoiceModel model = await salesInvoiceLogic.ReadByIdAsync(id);

                    if (model != null)
                    {
                        SalesInvoiceModel salesInvoiceModel = new SalesInvoiceModel();
                        salesInvoiceModel = model;
                        await salesInvoiceLogic.DeleteAsync(id);
                    }

                    if (model.SalesInvoiceCategory == "DYEINGPRINTING")
                    {
                        foreach (var detail in model.SalesInvoiceDetails)
                        {
                            var ItemIds = detail.SalesInvoiceItems.Select(s => s.ProductId).ToList();
                            UpdateFalseToShippingOut(detail.ShippingOutId, ItemIds);
                        }
                    }


                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }
            return(await DbContext.SaveChangesAsync());
        }
Esempio n. 5
0
        // end of function
        public List <SalesInvoiceModel> GetAllData(List <SalesInvoiceModel> _SI)
        {
            Sql = "SELECT Batch, Batch2,ChkType, COUNT(ChkType), DeliveryDate FROM Master_Database_SBTC WHERE  SalesInvoice IS NULL " +
                  "AND UnitPrice IS NULL GROUP BY Batch, Batch2, ChkType, DeliveryDate ORDER BY Batch2, DeliveryDate DESC, Batch DESC";
            //DBConnect();
            //getDBConnection(myConnect);
            //myConnect.Open();
            DBConnect();
            cmd       = new MySqlCommand(Sql, myConnect);
            mySqlData = cmd.ExecuteReader();

            while (mySqlData.Read())
            {
                SalesInvoiceModel sales = new SalesInvoiceModel();
                sales.Batch        = !mySqlData.IsDBNull(0) ? mySqlData.GetString(0): "";
                sales.ChequeName   = !mySqlData.IsDBNull(1) ? mySqlData.GetString(1) : "";
                sales.ChkType      = !mySqlData.IsDBNull(2) ? mySqlData.GetString(2) : "";
                sales.Quantity     = !mySqlData.IsDBNull(3) ? mySqlData.GetInt16(3) : 0;
                sales.DeliveryDate = !mySqlData.IsDBNull(4) ? mySqlData.GetDateTime(4) : DateTime.Now;

                _SI.Add(sales);
            }
            DBClosed();
            return(_SI);
        }
        public ActionResult View(long?id)
        {
            SalesInvoiceModel purchaseModel = new SalesInvoiceModel();

            if (UserRolePermissionForPage.View == true)
            {
                if (id > 0)
                {
                    long purchaseInvoiceId = Convert.ToInt64(id);
                    purchaseModel = _iSalesInvoiceService.GetViewSalesInvoiceFoodMenuById(purchaseInvoiceId);
                }
                else
                {
                    purchaseModel.ReferenceNo      = _iSalesInvoiceService.ReferenceNumberFoodMenu().ToString();
                    purchaseModel.SalesInvoiceDate = DateTime.UtcNow.AddMinutes(LoginInfo.Timeoffset);
                }
                purchaseModel.CustomerList = _iDropDownService.GetCustomerList();
                purchaseModel.StoreList    = _iDropDownService.GetStoreList();
                purchaseModel.EmployeeList = _iDropDownService.GetEmployeeList();
                return(View(purchaseModel));
            }
            else
            {
                return(RedirectToAction("NotFound", "Error"));
            }
        }
        public ActionResult GetInvoicePrint(int id)
        {
            SalesInvoiceModel salesInvoiceModel = new SalesInvoiceModel();

            salesInvoiceModel = _iSalesInvoiceService.GetSalesInvoiceReportById(id);
            string html = _iSalesInvoiceService.GetInvoiceHtmlString(salesInvoiceModel);

            var pdf = Pdf
                      .From(html)
                      .OfSize(PaperSize.Letter)
                      .WithTitle("Title")
                      .WithoutOutline()
                      .WithMargins(.25.Centimeters())
                      .Portrait()
                      .Comressed()
                      .Content();

            string webRootPath = _hostingEnvironment.WebRootPath;
            string InvoicePath = Path.Combine(webRootPath, "Sales");
            string FileNmae    = InvoicePath + "\\SalesInvoice_" + DateTime.UtcNow.AddMinutes(LoginInfo.Timeoffset).ToString("MM/dd/yyyy HH:mm").Replace("/", "").Replace(" ", "").Replace(":", "").ToString() + ".pdf";

            Stream myStream = new MemoryStream(pdf);

            using (var fileStream = System.IO.File.Create(FileNmae))
            {
                myStream.Seek(0, SeekOrigin.Begin);
                myStream.CopyTo(fileStream);
            }

            byte[] FileBytes = System.IO.File.ReadAllBytes(FileNmae);
            return(File(FileBytes, "application/pdf"));
        }
        public ActionResult GetFoodMenuList()
        {
            SalesInvoiceModel purchaseModel = new SalesInvoiceModel();

            purchaseModel.FoodMenuList = _iDropDownService.GetFoodMenuListByFoodmenuType(1);
            return(Json(new { purchaseModel.FoodMenuList }));
        }
Esempio n. 9
0
        /// <summary>
        /// update sales invoice.
        /// </summary>
        /// <param name="salesInvoiceModel"></param>
        /// <returns>
        /// return true if success.
        /// </returns>
        public async Task <bool> UpdateSalesInvoice(SalesInvoiceModel salesInvoiceModel)
        {
            bool isUpdated = false;

            // get record.
            Salesinvoice salesInvoice = await GetByIdAsync(w => w.InvoiceId == salesInvoiceModel.InvoiceId);

            if (null != salesInvoice)
            {
                // assign values.
                //salesInvoice.InvoiceId = salesInvoiceModel.InvoiceId;
                //salesInvoice.InvoiceNo = salesInvoiceModel.InvoiceNo;
                salesInvoice.InvoiceDate           = salesInvoiceModel.InvoiceDate;
                salesInvoice.CustomerLedgerId      = salesInvoiceModel.CustomerLedgerId;
                salesInvoice.BillToAddressId       = salesInvoiceModel.BillToAddressId;
                salesInvoice.AccountLedgerId       = salesInvoiceModel.AccountLedgerId;
                salesInvoice.BankLedgerId          = salesInvoiceModel.BankLedgerId;
                salesInvoice.CustomerReferenceNo   = salesInvoiceModel.CustomerReferenceNo;
                salesInvoice.CustomerReferenceDate = salesInvoiceModel.CustomerReferenceDate;
                salesInvoice.CreditLimitDays       = salesInvoiceModel.CreditLimitDays;
                salesInvoice.PaymentTerm           = salesInvoiceModel.PaymentTerm;
                salesInvoice.Remark        = salesInvoiceModel.Remark;
                salesInvoice.TaxModelType  = salesInvoiceModel.TaxModelType;
                salesInvoice.TaxRegisterId = salesInvoiceModel.TaxRegisterId;
                salesInvoice.CurrencyId    = salesInvoiceModel.CurrencyId;
                salesInvoice.ExchangeRate  = salesInvoiceModel.ExchangeRate;

                salesInvoice.TotalLineItemAmountFc = 0;
                salesInvoice.TotalLineItemAmount   = 0;
                salesInvoice.GrossAmountFc         = 0;
                salesInvoice.GrossAmount           = 0;
                salesInvoice.NetAmountFc           = 0;
                salesInvoice.NetAmount             = 0;
                salesInvoice.NetAmountFcinWord     = "";
                salesInvoice.TaxAmountFc           = 0;
                salesInvoice.TaxAmount             = 0;

                salesInvoice.DiscountPercentageOrAmount = salesInvoiceModel.DiscountPercentageOrAmount;
                salesInvoice.DiscountPercentage         = salesInvoiceModel.DiscountPercentage;

                salesInvoice.DiscountAmountFc = 0;
                salesInvoice.DiscountAmount   = 0;

                //salesInvoice.StatusId = salesInvoiceModel.StatusId;
                //salesInvoice.CompanyId = salesInvoiceModel.CompanyId;

                //salesInvoice.FinancialYearId = salesInvoiceModel.FinancialYearId;
                //salesInvoice.MaxNo = salesInvoiceModel.MaxNo;

                isUpdated = await Update(salesInvoice);
            }

            if (isUpdated != false)
            {
                await UpdateSalesInvoiceMasterAmount(salesInvoice.InvoiceId);
            }
            return(isUpdated); // returns.
        }
        /// <summary>
        /// view invoice master.
        /// </summary>
        /// <returns></returns>
        public async Task <IActionResult> ViewInvoiceMaster(int invoiceId)
        {
            SalesInvoiceModel salesInvoiceModel = await _salesInvoice.GetSalesInvoiceById(invoiceId);

            return(await Task.Run(() =>
            {
                return PartialView("_ViewInvoiceMaster", salesInvoiceModel);
            }));
        }
Esempio n. 11
0
        /// <summary>
        /// create new sales invoice.
        /// </summary>
        /// <param name="salesInvoiceModel"></param>
        /// <returns>
        /// return id.
        /// </returns>
        public async Task <int> CreateSalesInvoice(SalesInvoiceModel salesInvoiceModel)
        {
            int salesInvoiceId = 0;

            // generate no.
            GenerateNoModel generateNoModel = await GenerateInvoiceNo(salesInvoiceModel.CompanyId, salesInvoiceModel.FinancialYearId);

            // assign values.
            Salesinvoice salesInvoice = new Salesinvoice();

            salesInvoice.MaxNo                      = generateNoModel.MaxNo;
            salesInvoice.VoucherStyleId             = generateNoModel.VoucherStyleId;
            salesInvoice.InvoiceNo                  = generateNoModel.VoucherNo;
            salesInvoice.InvoiceDate                = salesInvoiceModel.InvoiceDate;
            salesInvoice.CustomerLedgerId           = salesInvoiceModel.CustomerLedgerId;
            salesInvoice.BillToAddressId            = salesInvoiceModel.BillToAddressId;
            salesInvoice.AccountLedgerId            = salesInvoiceModel.AccountLedgerId;
            salesInvoice.BankLedgerId               = salesInvoiceModel.BankLedgerId;
            salesInvoice.CustomerReferenceNo        = salesInvoiceModel.CustomerReferenceNo;
            salesInvoice.CustomerReferenceDate      = salesInvoiceModel.CustomerReferenceDate;
            salesInvoice.CreditLimitDays            = salesInvoiceModel.CreditLimitDays;
            salesInvoice.PaymentTerm                = salesInvoiceModel.PaymentTerm;
            salesInvoice.Remark                     = salesInvoiceModel.Remark;
            salesInvoice.TaxModelType               = salesInvoiceModel.TaxModelType;
            salesInvoice.TaxRegisterId              = salesInvoiceModel.TaxRegisterId;
            salesInvoice.CurrencyId                 = salesInvoiceModel.CurrencyId;
            salesInvoice.ExchangeRate               = salesInvoiceModel.ExchangeRate;
            salesInvoice.TotalLineItemAmountFc      = 0;
            salesInvoice.TotalLineItemAmount        = 0;
            salesInvoice.GrossAmountFc              = 0;
            salesInvoice.GrossAmount                = 0;
            salesInvoice.NetAmountFc                = 0;
            salesInvoice.NetAmount                  = 0;
            salesInvoice.NetAmountFcinWord          = "";
            salesInvoice.TaxAmountFc                = 0;
            salesInvoice.TaxAmount                  = 0;
            salesInvoice.DiscountPercentageOrAmount = salesInvoiceModel.DiscountPercentageOrAmount;
            salesInvoice.DiscountPercentage         = salesInvoiceModel.DiscountPercentage;
            salesInvoice.DiscountAmountFc           = 0;
            salesInvoice.DiscountAmount             = 0;
            salesInvoice.StatusId                   = salesInvoiceModel.StatusId;
            salesInvoice.CompanyId                  = salesInvoiceModel.CompanyId;
            salesInvoice.FinancialYearId            = salesInvoiceModel.FinancialYearId;
            await Create(salesInvoice);

            salesInvoiceId = salesInvoice.InvoiceId;

            if (salesInvoiceId > 0)
            {
                await UpdateSalesInvoiceMasterAmount(salesInvoiceId);
            }

            return(salesInvoiceId); // returns.
        }
        public ActionResult SalesInvoiceFoodMenu(SalesInvoiceModel purchaseModel, string Cancel)
        {
            purchaseModel.CustomerList = _iDropDownService.GetCustomerList();
            purchaseModel.StoreList    = _iDropDownService.GetStoreList();
            purchaseModel.EmployeeList = _iDropDownService.GetEmployeeList();
            string purchaseMessage = string.Empty;

            if (!ModelState.IsValid)
            {
                string errorString = this.ValidationPurchaseInvoice(purchaseModel);
                if (!string.IsNullOrEmpty(errorString))
                {
                    return(Json(new { error = true, message = errorString, status = 201 }));
                }
            }

            if (purchaseModel.SalesInvoiceDetails != null)
            {
                if (purchaseModel.SalesInvoiceDetails.Count > 0)
                {
                    purchaseModel.InventoryType = 1;
                    if (purchaseModel.Id > 0)
                    {
                        int result = _iSalesInvoiceService.UpdatePurchaseInvoiceFoodMenu(purchaseModel);
                        if (result > 0)
                        {
                            purchaseMessage = _locService.GetLocalizedHtmlString("EditSuccss");
                        }
                    }
                    else
                    {
                        purchaseModel.ReferenceNo = _iSalesInvoiceService.ReferenceNumberFoodMenu().ToString();

                        int result = _iSalesInvoiceService.InsertPurchaseInvoiceFoodMenu(purchaseModel);
                        if (result > 0)
                        {
                            purchaseMessage = _locService.GetLocalizedHtmlString("SaveSuccess") + " Reference No is: " + result.ToString();
                        }
                    }
                }
                else
                {
                    purchaseMessage = _locService.GetLocalizedHtmlString("ValidPurchaseInvoiceDetails");
                    return(Json(new { error = true, message = purchaseMessage, status = 201 }));
                }
            }
            else
            {
                purchaseMessage = _locService.GetLocalizedHtmlString("ValidPurchaseInvoiceDetails");
                return(RedirectToAction("SalesInvoice", "SalesInvoiceFoodMenu"));
            }
            return(Json(new { error = false, message = purchaseMessage, status = 200 }));
        }
Esempio n. 13
0
        private async Task <SalesInvoiceModel> AssignValueToModel(Salesinvoice salesInvoice)
        {
            return(await Task.Run(() =>
            {
                SalesInvoiceModel salesInvoiceModel = new SalesInvoiceModel();
                salesInvoiceModel.InvoiceId = salesInvoice.InvoiceId;
                salesInvoiceModel.InvoiceNo = salesInvoice.InvoiceNo;
                salesInvoiceModel.InvoiceDate = salesInvoice.InvoiceDate;
                salesInvoiceModel.CustomerLedgerId = salesInvoice.CustomerLedgerId;
                salesInvoiceModel.BillToAddressId = salesInvoice.BillToAddressId;
                salesInvoiceModel.AccountLedgerId = salesInvoice.AccountLedgerId;
                salesInvoiceModel.BankLedgerId = salesInvoice.BankLedgerId;
                salesInvoiceModel.CustomerReferenceNo = salesInvoice.CustomerReferenceNo;
                salesInvoiceModel.CustomerReferenceDate = salesInvoice.CustomerReferenceDate;
                salesInvoiceModel.CreditLimitDays = salesInvoice.CreditLimitDays;
                salesInvoiceModel.PaymentTerm = salesInvoice.PaymentTerm;
                salesInvoiceModel.Remark = salesInvoice.Remark;
                salesInvoiceModel.TaxModelType = salesInvoice.TaxModelType;
                salesInvoiceModel.TaxRegisterId = salesInvoice.TaxRegisterId;
                salesInvoiceModel.CurrencyId = salesInvoice.CurrencyId;
                salesInvoiceModel.ExchangeRate = salesInvoice.ExchangeRate;
                salesInvoiceModel.TotalLineItemAmountFc = salesInvoice.TotalLineItemAmountFc;
                salesInvoiceModel.TotalLineItemAmount = salesInvoice.TotalLineItemAmount;
                salesInvoiceModel.GrossAmountFc = salesInvoice.GrossAmountFc;
                salesInvoiceModel.GrossAmount = salesInvoice.GrossAmount;
                salesInvoiceModel.NetAmountFc = salesInvoice.NetAmountFc;
                salesInvoiceModel.NetAmount = salesInvoice.NetAmount;
                salesInvoiceModel.NetAmountFcinWord = salesInvoice.NetAmountFcinWord;
                salesInvoiceModel.TaxAmountFc = salesInvoice.TaxAmountFc;
                salesInvoiceModel.TaxAmount = salesInvoice.TaxAmount;
                salesInvoiceModel.DiscountPercentageOrAmount = salesInvoice.DiscountPercentageOrAmount;
                salesInvoiceModel.DiscountPercentage = salesInvoice.DiscountPercentage;
                salesInvoiceModel.DiscountAmountFc = salesInvoice.DiscountAmountFc;
                salesInvoiceModel.DiscountAmount = salesInvoice.DiscountAmount;
                salesInvoiceModel.StatusId = salesInvoice.StatusId;
                salesInvoiceModel.CompanyId = Convert.ToInt32(salesInvoice.CompanyId);
                salesInvoiceModel.FinancialYearId = Convert.ToInt32(salesInvoice.FinancialYearId);
                salesInvoiceModel.MaxNo = Convert.ToInt32(salesInvoice.MaxNo);
                salesInvoiceModel.VoucherStyleId = Convert.ToInt32(salesInvoice.VoucherStyleId);
                // ###
                salesInvoiceModel.CustomerLedgerName = null != salesInvoice.CustomerLedger ? salesInvoice.CustomerLedger.LedgerName : null;
                salesInvoiceModel.BillToAddress = null != salesInvoice.BillToAddress ? salesInvoice.BillToAddress.AddressDescription : null;
                salesInvoiceModel.AccountLedgerName = null != salesInvoice.AccountLedger ? salesInvoice.AccountLedger.LedgerName : null;
                salesInvoiceModel.BankLedgerName = null != salesInvoice.BankLedger ? salesInvoice.BankLedger.LedgerName : null;
                salesInvoiceModel.TaxRegisterName = null != salesInvoice.TaxRegister ? salesInvoice.TaxRegister.TaxRegisterName : null;
                salesInvoiceModel.CurrencyName = null != salesInvoice.Currency ? salesInvoice.Currency.CurrencyName : null;
                salesInvoiceModel.StatusName = null != salesInvoice.Status ? salesInvoice.Status.StatusName : null;
                salesInvoiceModel.PreparedByName = null != salesInvoice.PreparedByUser ? salesInvoice.PreparedByUser.UserName : null;

                return salesInvoiceModel;
            }));
        }
Esempio n. 14
0
        /// <summary>
        /// get sales invoice based on invoiceId
        /// </summary>
        /// <returns>
        /// return record.
        /// </returns>
        public async Task <SalesInvoiceModel> GetSalesInvoiceById(int invoiceId)
        {
            SalesInvoiceModel salesInvoiceModel = null;

            IList <SalesInvoiceModel> salesInvoiceModelList = await GetSalesInvoiceList(invoiceId);

            if (null != salesInvoiceModelList && salesInvoiceModelList.Any())
            {
                salesInvoiceModel = salesInvoiceModelList.FirstOrDefault();
            }

            return(salesInvoiceModel); // returns.
        }
Esempio n. 15
0
        public SalesInvoiceModel GetPurchaseInvoiceFoodMenuById(long purchaseInvoiceId)
        {
            SalesInvoiceModel purchaseModel = new SalesInvoiceModel();

            var model = (from purchase in _iSalesInvoiceRepository.GetPurchaseInvoiceFoodMenuById(purchaseInvoiceId).ToList()
                         select new SalesInvoiceModel()
            {
                Id = purchase.Id,
                SalesId = purchase.SalesId,
                ReferenceNo = purchase.ReferenceNo,
                CustomerId = purchase.CustomerId,
                EmployeeId = purchase.EmployeeId,
                StoreId = purchase.StoreId,
                SalesInvoiceDate = purchase.SalesInvoiceDate,
                GrossAmount = purchase.GrossAmount,
                TaxAmount = purchase.TaxAmount,
                TotalAmount = purchase.TotalAmount,
                PaidAmount = purchase.PaidAmount,
                DueAmount = purchase.DueAmount,
                DeliveryNoteNumber = purchase.DeliveryNoteNumber,
                DeliveryDate = purchase.DeliveryDate,
                DriverName = purchase.DriverName,
                VehicleNumber = purchase.VehicleNumber,
                Notes = purchase.Notes,
                SOReferenceNo = purchase.SOReferenceNo,
                SODate = purchase.SODate
            }).SingleOrDefault();

            if (model != null)
            {
                model.SalesInvoiceDetails = (from purchasedetails in _iSalesInvoiceRepository.GetPurchaseInvoiceFoodMenuDetails(purchaseInvoiceId)
                                             select new SalesInvoiceDetailModel()
                {
                    SalesInvoiceId = purchasedetails.SalesInvoiceId,
                    IngredientId = purchasedetails.IngredientId,
                    FoodMenuId = purchasedetails.FoodMenuId,
                    SOQTY = purchasedetails.SOQTY,
                    InvoiceQty = purchasedetails.InvoiceQty,
                    UnitPrice = purchasedetails.UnitPrice,
                    GrossAmount = purchasedetails.GrossAmount,
                    DiscountPercentage = purchasedetails.DiscountPercentage,
                    DiscountAmount = purchasedetails.DiscountAmount,
                    TaxAmount = purchasedetails.TaxAmount,
                    TotalAmount = purchasedetails.TotalAmount,
                    IngredientName = purchasedetails.IngredientName,
                    FoodMenuName = purchasedetails.FoodMenuName
                }).ToList();
            }
            return(model);
        }
Esempio n. 16
0
 public static bool BatchRecordHasDuplicate(SalesInvoiceModel line, List <SalesInvoiceModel> salesInvoiceList)
 {
     foreach (var item in salesInvoiceList)
     {
         if (line.Quantity == item.Quantity &&
             line.Batch == item.Batch &&
             line.checkName == item.checkName &&
             line.deliveryDate == item.deliveryDate &&
             line.drList == item.drList &&
             line.checkType == item.checkType)
         {
             return(true);
         }
     }
     return(false);
 }
        public async Task <int> CreateSalesInvoiceTax(SalesInvoiceTaxModel salesInvoiceTaxModel)
        {
            int salesInvoiceTaxId = 0;
            int multiplier        = 1;

            // assign values.
            SalesInvoiceModel salesInvoiceModel = null;

            salesInvoiceModel = await salesInvoice.GetSalesInvoiceById((int)salesInvoiceTaxModel.InvoiceId);

            Salesinvoicetax salesInvoiceTax = new Salesinvoicetax();

            salesInvoiceTax.InvoiceId             = salesInvoiceTaxModel.InvoiceId;
            salesInvoiceTax.SrNo                  = salesInvoiceTaxModel.SrNo;
            salesInvoiceTax.TaxLedgerId           = salesInvoiceTaxModel.TaxLedgerId;
            salesInvoiceTax.TaxPercentageOrAmount = salesInvoiceTaxModel.TaxPercentageOrAmount;
            salesInvoiceTax.TaxPerOrAmountFc      = salesInvoiceTaxModel.TaxPerOrAmountFc;

            if (DiscountType.Percentage.ToString() == salesInvoiceTax.TaxPercentageOrAmount)
            {
                salesInvoiceTaxModel.TaxAmountFc = (salesInvoiceModel.GrossAmountFc * salesInvoiceTaxModel.TaxPerOrAmountFc) / 100;
            }
            else
            {
                salesInvoiceTaxModel.TaxAmountFc = salesInvoiceTaxModel.TaxPerOrAmountFc;
            }

            if (TaxAddOrDeduct.Deduct.ToString() == salesInvoiceTaxModel.TaxAddOrDeduct)
            {
                multiplier = -1;
            }

            salesInvoiceTax.TaxAddOrDeduct = salesInvoiceTaxModel.TaxAddOrDeduct;
            salesInvoiceTax.TaxAmountFc    = multiplier * salesInvoiceTaxModel.TaxAmountFc;
            salesInvoiceTax.TaxAmount      = multiplier * salesInvoiceTaxModel.TaxAmount;
            salesInvoiceTax.Remark         = salesInvoiceTaxModel.Remark;
            await Create(salesInvoiceTax);

            salesInvoiceTaxId = salesInvoiceTax.InvoiceTaxId;

            if (salesInvoiceTaxId != 0)
            {
                await salesInvoice.UpdateSalesInvoiceMasterAmount(salesInvoiceTaxId);
            }

            return(salesInvoiceTaxId); // returns.
        }
        private string ValidationPurchaseInvoice(SalesInvoiceModel purchaseModel)
        {
            string ErrorString = string.Empty;

            if (string.IsNullOrEmpty(purchaseModel.CustomerId.ToString()) || purchaseModel.CustomerId == 0)
            {
                ErrorString = _locService.GetLocalizedHtmlString("ValidCustomer");
                return(ErrorString);
            }
            if (purchaseModel.SalesInvoiceDetails == null || purchaseModel.SalesInvoiceDetails.Count < 1)
            {
                ErrorString = _locService.GetLocalizedHtmlString("ValidSalesInvoiceDetails");
                return(ErrorString);
            }

            return(ErrorString);
        }
Esempio n. 19
0
        public async Task <int> UpdateAsync(int id, SalesInvoiceModel model)
        {
            using (var transaction = DbContext.Database.BeginTransaction())
            {
                try
                {
                    salesInvoiceLogic.UpdateAsync(id, model);
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }

            return(await DbContext.SaveChangesAsync());
        }
        // GET: PurchaseInvoice/Create
        public ActionResult SalesInvoiceFoodMenu(long?id, long?purchaseId, string type)
        {
            SalesInvoiceModel purchaseModel = new SalesInvoiceModel();

            if (UserRolePermissionForPage.Add == true || UserRolePermissionForPage.Edit == true || UserRolePermissionForPage.View == true)
            {
                if (purchaseId > 0)
                {
                    if (type == "delivery")
                    {
                        purchaseModel      = _iSalesInvoiceService.GetPurchaseInvoiceFoodMenuByPurchaseId(Convert.ToInt64(purchaseId), type);
                        purchaseModel.Type = "delivery";
                    }
                    else
                    {
                        purchaseModel = _iSalesInvoiceService.GetPurchaseInvoiceFoodMenuByPurchaseId(Convert.ToInt64(purchaseId), type);
                    }

                    purchaseModel.DeliveryDate = DateTime.UtcNow.AddMinutes(LoginInfo.Timeoffset);
                    purchaseModel.ReferenceNo  = _iSalesInvoiceService.ReferenceNumberFoodMenu().ToString();
                }
                else
                {
                    if (id > 0)
                    {
                        ViewBag.ActionType = type;
                        long purchaseInvoiceId = Convert.ToInt64(id);
                        purchaseModel = _iSalesInvoiceService.GetPurchaseInvoiceFoodMenuById(purchaseInvoiceId);
                    }
                    else
                    {
                        purchaseModel.ReferenceNo      = _iSalesInvoiceService.ReferenceNumberFoodMenu().ToString();
                        purchaseModel.SalesInvoiceDate = DateTime.UtcNow.AddMinutes(LoginInfo.Timeoffset);
                        purchaseModel.DeliveryDate     = DateTime.UtcNow.AddMinutes(LoginInfo.Timeoffset);
                    }
                }
                purchaseModel.CustomerList = _iDropDownService.GetCustomerList();
                purchaseModel.StoreList    = _iDropDownService.GetStoreList();
                purchaseModel.EmployeeList = _iDropDownService.GetEmployeeList();
                return(View(purchaseModel));
            }
            else
            {
                return(RedirectToAction("NotFound", "Error"));
            }
        }
Esempio n. 21
0
        private void SalesInvoiceNumberGenerator(SalesInvoiceModel model, int index)
        {
            SalesInvoiceModel lastData = DbSet.IgnoreQueryFilters().Where(w => w.SalesInvoiceType.Equals(model.SalesInvoiceType)).OrderByDescending(o => o.AutoIncreament).FirstOrDefault();

            int YearNow = DateTime.Now.Year;

            if (lastData == null)
            {
                if (model.SalesInvoiceType == "BPF")
                {
                    index = 28;
                }
                else if (model.SalesInvoiceType == "BPS")
                {
                    index = 8;
                }
                else if (model.SalesInvoiceType == "BPP")
                {
                    index = 98;
                }
                else if (model.SalesInvoiceType == "BRG")
                {
                    index = 14;
                }
                else
                {
                    index = 0;
                }
                model.AutoIncreament = 1 + index;
                model.SalesInvoiceNo = $"{model.SalesInvoiceType}/{YearNow}/{model.AutoIncreament.ToString().PadLeft(6, '0')}";
            }
            else
            {
                if (YearNow > lastData.CreatedUtc.Year)
                {
                    model.AutoIncreament = 1 + index;
                    model.SalesInvoiceNo = $"{model.SalesInvoiceType}/{YearNow}/{model.AutoIncreament.ToString().PadLeft(6, '0')}";
                }
                else
                {
                    model.AutoIncreament = lastData.AutoIncreament + (1 + index);
                    model.SalesInvoiceNo = $"{model.SalesInvoiceType}/{YearNow}/{model.AutoIncreament.ToString().PadLeft(6, '0')}";
                }
            }
        }
Esempio n. 22
0
        public async Task <int> CreateAsync(SalesInvoiceModel model)
        {
            int result = 0;

            using (var transaction = DbContext.Database.BeginTransaction())
            {
                try
                {
                    int index = 0;
                    do
                    {
                        model.Code = CodeGenerator.Generate();
                    }while (DbSet.Any(d => d.Code.Equals(model.Code)));

                    SalesInvoiceNumberGenerator(model, index);
                    DeliveryOrderNumberGenerator(model);

                    salesInvoiceLogic.Create(model);
                    index++;

                    result = await DbContext.SaveChangesAsync();

                    if (model.SalesInvoiceCategory == "DYEINGPRINTING")
                    {
                        foreach (var detail in model.SalesInvoiceDetails)
                        {
                            var ItemIds = detail.SalesInvoiceItems.Select(s => s.ProductId).ToList();
                            UpdateTrueToShippingOut(detail.ShippingOutId, ItemIds);
                        }
                    }

                    transaction.Commit();
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }

            return(result);
        }
Esempio n. 23
0
        private void dataGridView2_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0)
            {
                SalesInvoiceModel sales = new SalesInvoiceModel();
                //sales.Batch = "";
                //sales.ChequeName = "";
                //sales.ChkType = "";
                //sales.Quantity = 0;

                if (e.RowIndex >= 0)
                {
                    DataGridViewRow row = dataGridView2.Rows[e.RowIndex];
                    ////  rowCount++;



                    // if (Convert.ToBoolean(dataGridView1.Rows[rowindex].Cells["X"].Value) == true)
                    //  {

                    sales.Batch      = row.Cells[0].Value.ToString();
                    sales.ChequeName = row.Cells[1].Value.ToString();
                    sales.ChkType    = row.Cells[2].Value.ToString();
                    sales.Quantity   = int.Parse(row.Cells[3].Value.ToString());
                    //row.Cells.Remove()
                    //if (listofdata.Count == 0)
                    //{
                    salesInvoice.Add(sales);
                    //}
                    BindingSource checkBind2 = new BindingSource();
                    checkBind2.DataSource    = salesInvoice;
                    dataGridView1.DataSource = checkBind2;
                    dataGridView2.Rows.RemoveAt(e.RowIndex);

                    ToTalChecks = int.Parse(dataGridView2.Rows[e.RowIndex].Cells[3].Value.ToString()) - int.Parse(dataGridView2.Rows[e.RowIndex].Cells[3].Value.ToString());

                    lblTotal.Text = ToTalChecks.ToString();
                    ToTalChecks   = 0;
                }
            }
        }
        /// <summary>
        /// edit invoice master.
        /// </summary>
        /// <returns></returns>
        public async Task <IActionResult> EditInvoiceMaster(int invoiceId)
        {
            ViewBag.CustomerList = await _ledger.GetLedgerSelectList((int)LedgerName.SundryDebtor);

            ViewBag.BankLedgerList = await _ledger.GetLedgerSelectList((int)LedgerName.BankAccount);

            ViewBag.AccountLedgerList = await _ledger.GetLedgerSelectList(0);

            ViewBag.TaxRegisterList = await _taxRegister.GetTaxRegisterSelectList();

            ViewBag.CurrencyList = await _currency.GetCurrencySelectList();

            ViewBag.TaxModelTypeList = EnumHelper.GetEnumListFor <TaxModelType>();
            ViewBag.DiscountTypeList = EnumHelper.GetEnumListFor <DiscountType>();

            SalesInvoiceModel salesInvoiceModel = await _salesInvoice.GetSalesInvoiceById(invoiceId);

            return(await Task.Run(() =>
            {
                return PartialView("_AddInvoiceMaster", salesInvoiceModel);
            }));
        }
        public async Task <int> DeleteAsync(int id)
        {
            using (var transaction = DbContext.Database.BeginTransaction())
            {
                try
                {
                    SalesInvoiceModel model = await salesInvoiceLogic.ReadByIdAsync(id);

                    if (model != null)
                    {
                        SalesInvoiceModel salesInvoiceModel = new SalesInvoiceModel();
                        salesInvoiceModel = model;
                        await salesInvoiceLogic.DeleteAsync(id);
                    }
                }
                catch (Exception e)
                {
                    transaction.Rollback();
                    throw new Exception(e.Message);
                }
            }
            return(await DbContext.SaveChangesAsync());
        }
Esempio n. 26
0
        private void DisplayOldSalesInvoiceList(int salesInvoiceNumber, ref DataTable dt)
        {
            //Get Sales Invoice List Details to be supplied to Global Report Datatable
            DataTable siListDT = new DataTable();

            if (!proc.GetOldSalesInvoiceList(salesInvoiceNumber, ref siListDT))
            {
                MessageBox.Show("Unable to connect to server. (proc.SalesInvoiceExist)\r\n" + proc.errorMessage);
                RefreshView();
                return;
            }

            //Display values on Front End from Finished Table
            foreach (DataRow row in dt.Rows)
            {
                gSalesInvoiceFinished.ClientCode           = row.Field <string>("ClientCode");
                gSalesInvoiceFinished.SalesInvoiceDateTime = row.Field <DateTime>("SalesInvoiceDateTime");
                gSalesInvoiceFinished.GeneratedBy          = row.Field <string>("GeneratedBy");
                gSalesInvoiceFinished.CheckedBy            = row.Field <string>("CheckedBy");
                gSalesInvoiceFinished.ApprovedBy           = row.Field <string>("ApprovedBy");
                gSalesInvoiceFinished.SalesInvoiceNumber   = row.Field <double>("SalesInvoiceNumber");
                gSalesInvoiceFinished.TotalAmount          = row.Field <double>("TotalAmount");
                gSalesInvoiceFinished.VatAmount            = row.Field <double>("VatAmount");
                gSalesInvoiceFinished.NetOfVatAmount       = row.Field <double>("NetOfVatAmount");

                dtpInvoiceDate.Value = gSalesInvoiceFinished.SalesInvoiceDateTime;
                cbCheckedBy.Text     = gSalesInvoiceFinished.CheckedBy;
                cbApprovedBy.Text    = gSalesInvoiceFinished.ApprovedBy;
            }



            foreach (DataRow row in siListDT.Rows)
            {
                SalesInvoiceModel line = new SalesInvoiceModel();

                line.Batch            = row.Field <string>("Batch");
                line.checkName        = row.Field <string>("CheckName");
                line.checkType        = row.Field <string>("ChkType");
                line.deliveryDate     = row.Field <DateTime>("deliverydate");
                line.Quantity         = Convert.ToInt32(row.Field <Int64>("Quantity"));
                line.drList           = row.Field <string>("DRList");
                line.unitPrice        = row.Field <double>("UnitPrice");
                line.lineTotalAmount  = row.Field <double>("LineTotalAmount");
                line.salesInvoiceDate = row.Field <DateTime>("SalesInvoiceDate");

                if (gClient.ShortName == "PNB")
                {
                    //ABANG MUNA
                    //line.PurchaseOrderNumber = Convert.ToInt32(row.Field<Int64>("PurchaseOrderNumber"));
                }

                salesInvoiceList.Add(line);
            }



            //created 'list' variable column sorting by line for datagrid view
            var sortedList = salesInvoiceList
                             .Select
                                 (i => new { i.Quantity, i.Batch, i.checkName, i.drList, i.checkType, i.salesInvoiceDate, i.unitPrice, i.lineTotalAmount })

                             .ToList();

            dgvListToProcess.DataSource = sortedList;
            dgvListToProcess.ClearSelection();

            gbSINo.Enabled               = false;
            pnlActionButtons.Enabled     = true;
            btnCancelSiRecord.Enabled    = true;
            btnReprint.Enabled           = true;
            btnReloadDrList.Enabled      = true;
            btnPrintSalesInvoice.Enabled = false;
            btnViewSelected.Enabled      = false;
        }
Esempio n. 27
0
        private void AddSelectedDRRow()
        {
            if (dgvDRList.SelectedRows != null && dgvDRList.SelectedRows.Count > 0)
            {
                foreach (DataGridViewRow row in dgvDRList.SelectedRows)
                {
                    SalesInvoiceModel line = new SalesInvoiceModel();

                    line.Batch            = row.Cells["batch Name"].Value.ToString();
                    line.checkName        = row.Cells["check name"].Value.ToString();
                    line.checkType        = row.Cells["check type"].Value.ToString();
                    line.salesInvoiceDate = DateTime.Parse(dtpInvoiceDate.Value.ToShortDateString());
                    line.deliveryDate     = DateTime.Parse(row.Cells["Delivery Date"].Value.ToString());
                    line.Quantity         = int.Parse(row.Cells["Quantity"].Value.ToString());


                    //Include Location field if PNB
                    if (gClient.ShortName == "PNB")
                    {
                        line.Location = row.Cells["location"].Value.ToString();
                    }

                    line.drList          = proc.GetDRList(line.Batch, line.checkType, line.deliveryDate, line.Location);
                    line.unitPrice       = double.Parse(proc.GetUnitPrice(line.checkName).ToString("#.##"));
                    line.lineTotalAmount = Math.Round(line.Quantity * line.unitPrice, 2);

                    //Check if record is already inserted
                    if (p.BatchRecordHasDuplicate(line, salesInvoiceList))
                    {
                        MessageBox.Show("Selected Batch already added");
                        return;
                    }


                    //(Validation) Checing of Onhand quantity for PNB
                    if (gClient.ShortName == "PNB")
                    {
                        frmMessageInput xfrm = new frmMessageInput();
                        xfrm.labelMessage = "Input Purchase Order Number:";
                        DialogResult result = xfrm.ShowDialog();
                        if (result == DialogResult.OK)
                        {
                            line.PurchaseOrderNumber = int.Parse(xfrm.userInput);
                            double remainingQuantity = 0;
                            //Check if quantity is sufficient
                            if (!proc.IsQuantityOnHandSufficient(line.Quantity, line.checkName, line.PurchaseOrderNumber, ref remainingQuantity, ref salesInvoiceList))
                            {
                                MessageBox.Show("Error on (Procedure ChequeQuantityIsSufficient) \r\n \r\n" + proc.errorMessage);
                                return;
                            }

                            line.RemainingQuantity = remainingQuantity;
                        }
                        else if (result == DialogResult.Cancel)
                        {
                            return;
                        }
                    }

                    salesInvoiceList.Add(line);
                }

                //created 'list' variable column sorting by line for datagrid view
                var sortedList = salesInvoiceList
                                 .Select
                                     (i => new { i.Quantity, i.Batch, i.checkName, i.drList, i.checkType, i.salesInvoiceDate, i.unitPrice, i.lineTotalAmount })

                                 .ToList();

                dgvListToProcess.DataSource = sortedList;
                dgvListToProcess.ClearSelection();
            }
            else
            {
                MessageBox.Show("Please select at least one record");
            }
        }
        private void DeliveryOrderNumberGenerator(SalesInvoiceModel model)
        {
            SalesInvoiceModel lastData = DbSet.IgnoreQueryFilters().Where(w => w.SalesInvoiceType.Equals(model.SalesInvoiceType)).OrderByDescending(o => o.AutoIncreament).FirstOrDefault();

            int YearNow        = DateTime.Now.Year;
            int MonthNow       = DateTime.Now.Month;
            var YearNowString  = DateTime.Now.ToString("yy");
            var MonthNowString = DateTime.Now.ToString("MM");
            var formatNo       = $"{ model.AutoIncreament}/4.1.0/{MonthNowString}.{YearNowString}";

            if (model.SalesInvoiceType == "BNG")
            {
                model.DeliveryOrderNo = $"B.{formatNo}";
            }
            else if (model.SalesInvoiceType == "BAB")
            {
                model.DeliveryOrderNo = $"BB.{formatNo}";
            }
            else if (model.SalesInvoiceType == "BNS")
            {
                model.DeliveryOrderNo = $"BS.{formatNo}";
            }
            else if (model.SalesInvoiceType == "BRG")
            {
                model.DeliveryOrderNo = $"G.{formatNo}";
            }
            else if (model.SalesInvoiceType == "BAG")
            {
                model.DeliveryOrderNo = $"GG.{formatNo}";
            }
            else if (model.SalesInvoiceType == "BGS")
            {
                model.DeliveryOrderNo = $"GS.{formatNo}";
            }
            else if (model.SalesInvoiceType == "BLL")
            {
                model.DeliveryOrderNo = $"L.{formatNo}";
            }
            else if (model.SalesInvoiceType == "BPF")
            {
                model.DeliveryOrderNo = $"F.{formatNo}";
            }
            else if (model.SalesInvoiceType == "BSF")
            {
                model.DeliveryOrderNo = $"FS.{formatNo}";
            }
            else if (model.SalesInvoiceType == "BPR")
            {
                model.DeliveryOrderNo = $"P.{formatNo}";
            }
            else if (model.SalesInvoiceType == "BSR")
            {
                model.DeliveryOrderNo = $"PS.{formatNo}";
            }
            else if (model.SalesInvoiceType == "BAV")
            {
                model.DeliveryOrderNo = $"V.{formatNo}";
            }
            else if (model.SalesInvoiceType == "BON")
            {
                model.DeliveryOrderNo = $"O.{formatNo}";
            }
            else if (model.SalesInvoiceType == "BGM")
            {
                model.DeliveryOrderNo = $"M.{formatNo}";
            }
            else if (model.SalesInvoiceType == "GPF")
            {
                model.DeliveryOrderNo = $"F.{formatNo}";
            }
            else if (model.SalesInvoiceType == "GPR")
            {
                model.DeliveryOrderNo = $"P.{formatNo}";
            }
            else if (model.SalesInvoiceType == "RON")
            {
                model.DeliveryOrderNo = $"O.{formatNo}";
            }
            else if (model.SalesInvoiceType == "BMK")
            {
                model.DeliveryOrderNo = $"BM.{formatNo}";
            }
            else
            {
                model.DeliveryOrderNo = "";
            }
        }
        private void SalesInvoiceNumberGenerator(SalesInvoiceModel model, int index)
        {
            SalesInvoiceModel lastData = DbSet.IgnoreQueryFilters().Where(w => w.SalesInvoiceType.Equals(model.SalesInvoiceType)).OrderByDescending(o => o.AutoIncreament).FirstOrDefault();

            int YearNow       = DateTime.Now.Year;
            var YearNowString = DateTime.Now.ToString("yy");

            if (lastData == null)
            {
                //Using this if SalesInvoiceType not declare index for each Type
                index = 0;

                //if (model.SalesInvoiceType == "BNG")
                //{
                //    index = 28;
                //}
                //else if (model.SalesInvoiceType == "BAB")
                //{
                //    index = 8;
                //}
                //else if (model.SalesInvoiceType == "BNS")
                //{
                //    index = 98;
                //}
                //else if (model.SalesInvoiceType == "RNG")
                //{
                //    index = 14;
                //}
                //else if (model.SalesInvoiceType == "BRG")
                //{
                //    index = 28;
                //}
                //else if (model.SalesInvoiceType == "BAG")
                //{
                //    index = 8;
                //}
                //else if (model.SalesInvoiceType == "BGS")
                //{
                //    index = 98;
                //}
                //else if (model.SalesInvoiceType == "RRG")
                //{
                //    index = 14;
                //}
                //else if (model.SalesInvoiceType == "BLL")
                //{
                //    index = 8;
                //}
                //else if (model.SalesInvoiceType == "BPF")
                //{
                //    index = 98;
                //}
                //else if (model.SalesInvoiceType == "BSF")
                //{
                //    index = 14;
                //}
                //else if (model.SalesInvoiceType == "RPF")
                //{
                //    index = 28;
                //}
                //else if (model.SalesInvoiceType == "BPR")
                //{
                //    index = 8;
                //}
                //else if (model.SalesInvoiceType == "BSR")
                //{
                //    index = 98;
                //}
                //else if (model.SalesInvoiceType == "RPR")
                //{
                //    index = 14;
                //}
                //else if (model.SalesInvoiceType == "BAV")
                //{
                //    index = 8;
                //}
                //else if (model.SalesInvoiceType == "BON")
                //{
                //    index = 98;
                //}
                //else if (model.SalesInvoiceType == "BGM")
                //{
                //    index = 14;
                //}
                //else if (model.SalesInvoiceType == "GPF")
                //{
                //    index = 28;
                //}
                //else if (model.SalesInvoiceType == "RGF")
                //{
                //    index = 8;
                //}
                //else if (model.SalesInvoiceType == "GPR")
                //{
                //    index = 98;
                //}
                //else if (model.SalesInvoiceType == "RGR")
                //{
                //    index = 14;
                //}
                //else if (model.SalesInvoiceType == "RON")
                //{
                //    index = 14;
                //}
                //else
                //{
                //    index = 0;
                //}

                model.AutoIncreament = 1 + index;
                model.SalesInvoiceNo = $"{YearNowString}{model.SalesInvoiceType}{model.AutoIncreament.ToString().PadLeft(6, '0')}";
            }
            else
            {
                if (YearNow > lastData.CreatedUtc.Year)
                {
                    model.AutoIncreament = 1 + index;
                    model.SalesInvoiceNo = $"{YearNowString}{model.SalesInvoiceType}{model.AutoIncreament.ToString().PadLeft(6, '0')}";
                }
                else
                {
                    model.AutoIncreament = lastData.AutoIncreament + (1 + index);
                    model.SalesInvoiceNo = $"{YearNowString}{model.SalesInvoiceType}{model.AutoIncreament.ToString().PadLeft(6, '0')}";
                }
            }
        }
        public async Task <int> UpdateAsync(int id, SalesInvoiceModel model)
        {
            salesInvoiceLogic.UpdateAsync(id, model);

            return(await DbContext.SaveChangesAsync());
        }