public TaxCalculationModel GetCalculatedTax(TaxType eTaxType, decimal Qty, decimal Price, decimal BasicAmt, decimal Taxslab, decimal totalAmount) { TaxCalculationModel objIncTax = new TaxCalculationModel(); switch (eTaxType) { case TaxType.VATExl: break; case TaxType.VATIncl: objIncTax = VATInclusive(Qty, Price, BasicAmt, Taxslab, totalAmount); break; case TaxType.CSTExl: break; case TaxType.CSTIncl: break; } return(objIncTax); }
/// <summary> /// Stores the tax calculation results in the database /// </summary> /// <param name="model">TaxCalculationModel</param> /// <returns>Boolean result</returns> public async Task <bool> SaveAsync(TaxCalculationModel model) { try { if (string.IsNullOrEmpty(_connectionString)) { throw new ArgumentNullException($"The {nameof(TaxCalculationRepository)} was unable to retrieve the database connection string from config."); } using (var context = new DataContext(_connectionString)) { context.TaxCalculations.Add(model); var result = await context.SaveChangesAsync(); return(result > 0); } } catch (Exception ex) { _logger.LogError(ex, "Error while trying to store tax calculation."); // rethrow to preserve stack details throw; } }
private TaxCalculationModel VATInclusive(decimal Qty, decimal Price, decimal BasicAmt, decimal Taxslab, decimal totalAmount) { //1. Qty, Taxslab, (price or basic amount or total amount) TaxCalculationModel objIncTax = new TaxCalculationModel(); if (Qty == 0 && Price == 0 && BasicAmt == 0 && totalAmount == 0) { return(objIncTax); } //1. Only Qty and Total Amount is given if (totalAmount > 0) { Price = Price == 0? (totalAmount / Qty) - (totalAmount / Qty) * (Taxslab / (100 + Taxslab)):Price; } //2. Only Qty and Price is given //3. Only Qty and Basic Amount is given if (BasicAmt > 0) { Price = Price == 0 ? BasicAmt / Qty : Price; } //4. Only Qty, Price and Basic Amount is given objIncTax.NetAmount = (Qty * Price); objIncTax.TaxAmount = (objIncTax.NetAmount * Taxslab) / (100 + Taxslab); objIncTax.BasicAmount = objIncTax.NetAmount - objIncTax.TaxAmount; objIncTax.TotalAmount = objIncTax.BasicAmount + objIncTax.TaxAmount; objIncTax.Price = Price; //if (Price == 0) //{ // Price = BasicAmt / Qty; // objIncTax.NetAmount = (Qty * Price); // objIncTax.TaxAmount = (objIncTax.NetAmount * Taxslab) / (100 + Taxslab); // objIncTax.BasicAmount = objIncTax.NetAmount - objIncTax.TaxAmount; // objIncTax.TotalAmount = objIncTax.BasicAmount + objIncTax.TaxAmount; // objIncTax.Price = Price; //} //else //{ // objIncTax.NetAmount = (Qty * Price); // objIncTax.TaxAmount = (objIncTax.NetAmount * Taxslab) / (100 + Taxslab); // objIncTax.BasicAmount = objIncTax.NetAmount - objIncTax.TaxAmount; // objIncTax.TotalAmount = objIncTax.BasicAmount + objIncTax.TaxAmount; // objIncTax.Price = Price; //} return(objIncTax); }
public TaxCalculationModel CSTExeclusive(decimal Qty, decimal Price, decimal BasicAmt, decimal Taxslab) { TaxCalculationModel objExeTax = new TaxCalculationModel(); objExeTax.NetAmount = (Qty * Price); objExeTax.TaxAmount = (objExeTax.NetAmount * Taxslab) / (100); objExeTax.BasicAmount = objExeTax.NetAmount; objExeTax.TotalAmount = objExeTax.BasicAmount + objExeTax.TaxAmount; return(objExeTax); }
public TaxCalculationModel LGSTInclusive(decimal Qty, decimal Price, decimal BasicAmt, decimal Taxslab) { TaxCalculationModel objIncTax = new TaxCalculationModel(); objIncTax.NetAmount = (Qty * Price); objIncTax.TaxAmount = (objIncTax.NetAmount * Taxslab) / (100 + Taxslab); objIncTax.CGSTAmount = objIncTax.TaxAmount / 2; objIncTax.SGSTAmount = objIncTax.TaxAmount / 2; objIncTax.BasicAmount = objIncTax.NetAmount - objIncTax.TaxAmount; objIncTax.TotalAmount = objIncTax.BasicAmount + objIncTax.TaxAmount; return(objIncTax); }
private TaxCalculationModel CSTInclusive(decimal Qty, decimal Price, decimal BasicAmt, decimal Taxslab) { TaxCalculationModel objIncTax = new TaxCalculationModel(); if (Price == 0) { Price = BasicAmt / Qty; objIncTax.NetAmount = (Qty * Price); objIncTax.TaxAmount = (objIncTax.NetAmount * Taxslab) / (100 + Taxslab); objIncTax.BasicAmount = objIncTax.NetAmount - objIncTax.TaxAmount; objIncTax.TotalAmount = objIncTax.BasicAmount + objIncTax.TaxAmount; } else { objIncTax.NetAmount = (Qty * Price); objIncTax.TaxAmount = (objIncTax.NetAmount * Taxslab) / (100 + Taxslab); objIncTax.BasicAmount = objIncTax.NetAmount - objIncTax.TaxAmount; objIncTax.TotalAmount = objIncTax.BasicAmount + objIncTax.TaxAmount; } return(objIncTax); }
private void dvgItemDetails_FocusedColumnChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedColumnChangedEventArgs e) { if (e.FocusedColumn.FieldName == "Item") { dvgItemDetails.ShowEditor(); ((LookUpEdit)dvgItemDetails.ActiveEditor).ShowPopup(); } if (e.FocusedColumn.FieldName == "Unit" || e.FocusedColumn.FieldName == "Per" || e.FocusedColumn.FieldName == "Particulars") { dvgItemDetails.ShowEditor(); ((LookUpEdit)dvgItemDetails.ActiveEditor).ShowPopup(); } //tbxSaleType.SelectedItem.ToString() == "VAT Incl"; GridView view = sender as GridView; if (view.GetFocusedRowCellValue("Qty") == null) { return; } decimal Qty = Convert.ToDecimal(view.GetFocusedRowCellValue(view.Columns["Qty"]).ToString() == string.Empty ? "0.00" : view.GetFocusedRowCellValue(view.Columns["Qty"]).ToString()); decimal Price = Convert.ToDecimal(view.GetFocusedRowCellValue(view.Columns["Price"]).ToString() == string.Empty ? "0.00" : view.GetFocusedRowCellValue(view.Columns["Price"]).ToString()); decimal BasicAmt = Convert.ToDecimal(view.GetFocusedRowCellValue(view.Columns["BasicAmt"]).ToString() == string.Empty ? "0.00" : view.GetFocusedRowCellValue(view.Columns["BasicAmt"]).ToString()); decimal TotalAmt = Convert.ToDecimal(view.GetFocusedRowCellValue(view.Columns["Amount"]).ToString() == string.Empty ? "0.00" : view.GetFocusedRowCellValue(view.Columns["Amount"]).ToString()); decimal TaxSlab = 5; TaxCalculationModel objTax = objSTCal.GetCalculatedTax(TaxType.VATIncl, Qty, Price, BasicAmt, TaxSlab, TotalAmt); //Bind to Grid view based on the model values view.SetFocusedRowCellValue(view.Columns["Amount"], Math.Round(objTax.TotalAmount, 2)); view.SetFocusedRowCellValue(view.Columns["BasicAmt"], Math.Round(objTax.BasicAmount, 2)); view.SetFocusedRowCellValue(view.Columns["TaxAmount"], Math.Round(objTax.TaxAmount, 2)); view.SetFocusedRowCellValue(view.Columns["Price"], Math.Round(objTax.Price, 2)); }