/// <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); })); }
/// <summary> /// generate invoice no. /// </summary> /// <param name="companyId"></param> /// <param name="financialYearId"></param> /// <returns> /// return invoice no. /// </returns> public async Task <GenerateNoModel> GenerateInvoiceNo(int companyId, int financialYearId) { int voucherSetupId = 2; // get maxno. int?maxNo = await GetQueryByCondition(w => w.CompanyId == companyId && w.FinancialYearId == financialYearId).MaxAsync(m => m.MaxNo); GenerateNoModel generateNoModel = await common.GenerateVoucherNo(Convert.ToInt32(maxNo), voucherSetupId, companyId, financialYearId); return(generateNoModel); // returns. }
/// <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. }
/// <summary> /// create new purchase invoice. /// </summary> /// <param name="purchaseInvoiceModel"></param> /// <returns> /// return id. /// </returns> public async Task <int> CreatePurchaseInvoice(PurchaseInvoiceModel purchaseInvoiceModel) { int purchaseInvoiceId = 0; GenerateNoModel generateNoModel = await GenerateInvoiceNo(purchaseInvoiceModel.CompanyId, purchaseInvoiceModel.FinancialYearId); // assign values. Purchaseinvoice purchaseInvoice = new Purchaseinvoice(); purchaseInvoice.InvoiceNo = generateNoModel.VoucherNo; purchaseInvoice.MaxNo = generateNoModel.MaxNo; purchaseInvoice.VoucherStyleId = generateNoModel.VoucherStyleId; purchaseInvoice.InvoiceDate = purchaseInvoiceModel.InvoiceDate; purchaseInvoice.SupplierLedgerId = purchaseInvoiceModel.SupplierLedgerId; purchaseInvoice.BillToAddressId = purchaseInvoiceModel.BillToAddressId; purchaseInvoice.AccountLedgerId = purchaseInvoiceModel.AccountLedgerId; purchaseInvoice.SupplierReferenceNo = purchaseInvoiceModel.SupplierReferenceNo; purchaseInvoice.SupplierReferenceDate = purchaseInvoiceModel.SupplierReferenceDate; purchaseInvoice.CreditLimitDays = purchaseInvoiceModel.CreditLimitDays; purchaseInvoice.PaymentTerm = purchaseInvoiceModel.PaymentTerm; purchaseInvoice.Remark = purchaseInvoiceModel.Remark; purchaseInvoice.TaxModelType = purchaseInvoiceModel.TaxModelType; purchaseInvoice.TaxRegisterId = purchaseInvoiceModel.TaxRegisterId; purchaseInvoice.CurrencyId = purchaseInvoiceModel.CurrencyId; purchaseInvoice.ExchangeRate = purchaseInvoiceModel.ExchangeRate; purchaseInvoice.TotalLineItemAmountFc = 0; purchaseInvoice.TotalLineItemAmount = 0; purchaseInvoice.GrossAmountFc = 0; purchaseInvoice.GrossAmount = 0; purchaseInvoice.NetAmountFc = 0; purchaseInvoice.NetAmount = 0; purchaseInvoice.NetAmountFcinWord = ""; purchaseInvoice.TaxAmountFc = 0; purchaseInvoice.TaxAmount = 0; purchaseInvoice.DiscountPercentageOrAmount = purchaseInvoiceModel.DiscountPercentageOrAmount; purchaseInvoice.DiscountPerOrAmountFc = purchaseInvoiceModel.DiscountPerOrAmountFc; purchaseInvoice.DiscountAmountFc = 0; purchaseInvoice.DiscountAmount = 0; purchaseInvoice.StatusId = 1;//purchaseInvoiceModel.StatusId; purchaseInvoice.CompanyId = purchaseInvoiceModel.CompanyId; purchaseInvoice.FinancialYearId = purchaseInvoiceModel.FinancialYearId; purchaseInvoiceId = await Create(purchaseInvoice); if (purchaseInvoiceId != 0) { await UpdatePurchaseInvoiceMasterAmount(purchaseInvoiceId); } return(purchaseInvoiceId); // returns. }