public long Update(InvoiceModel model) { TblInvoice obj = _mapper.Map <InvoiceModel, TblInvoice>(model); obj.TotalAmount = CustomRepository.GetTotalAmountForInvoice(model.checkedDispatchId).TotalAmount; decimal SgstAmount = Math.Round(obj.TotalAmount * (model.Sgst ?? 0) / 100, 2); decimal IgstAmount = Math.Round(obj.TotalAmount * (model.Igst ?? 0) / 100, 2); decimal CgstAmount = Math.Round(obj.TotalAmount * (model.Cgst ?? 0) / 100, 2); obj.TaxAmount = SgstAmount + IgstAmount + CgstAmount; obj.TotalAmountWithTax = obj.TotalAmount + obj.TaxAmount; obj.AmountInWords = CurrencyHelper.changeCurrencyToWords(obj.TotalAmountWithTax); List <TblInvoiceDetail> invoiceDetailModel = _repositoryDetail.GetAll().Where(m => m.InvoiceId == obj.InvoiceId).ToList(); List <long> originalDispatchId = invoiceDetailModel.Select(m => m.DispatchId).ToList(); List <long> currentDispatchId = model.checkedDispatchId.Split(',').Select(long.Parse).ToList(); List <long> deleteDispatchId = originalDispatchId.Except(currentDispatchId).ToList(); List <long> insertDispatchId = currentDispatchId.Except(originalDispatchId).ToList(); foreach (long deleteId in deleteDispatchId) { TblInvoiceDetail objModel = invoiceDetailModel.FirstOrDefault(m => m.DispatchId == deleteId); if (objModel != null) { _repositoryDetail.Delete(objModel.InvoiceDetailId); } } foreach (long insertingId in insertDispatchId) { TblInvoiceDetail objInsertModel = new TblInvoiceDetail { InvoiceId = obj.InvoiceId, DispatchId = insertingId }; _repositoryDetail.Insert(objInsertModel); } _repository.Update(obj); return(obj.InvoiceId); }
public TblInvoiceDetail GetBillingDetailsSection(string branchCode, string productCode, IConfiguration configuration = null) { try { var _product = GetProducts(productCode).FirstOrDefault(); var invoceDetails = new TblInvoiceDetail(); if (_product == null) { return(invoceDetails); } invoceDetails.UnitId = Convert.ToDecimal(_product.UnitId ?? 0); invoceDetails.UnitName = _product.UnitName; invoceDetails.TaxStructureCode = Convert.ToDecimal(_product.TaxStructureCode ?? 0); invoceDetails.TaxStructureId = Convert.ToDecimal(_product.TaxStructureId ?? 0); invoceDetails.TaxGroupCode = _product.TaxGroupCode; invoceDetails.TaxGroupId = Convert.ToDecimal(_product.TaxGroupId ?? 0); invoceDetails.TaxGroupName = _product.TaxGroupName; invoceDetails.Rate = GetProductRate(branchCode, productCode); invoceDetails.HsnNo = Convert.ToDecimal(_product.HsnNo ?? 0); invoceDetails.ProductCode = _product.ProductCode; invoceDetails.ProductGroupCode = Convert.ToDecimal(_product.ProductGroupCode ?? 0); invoceDetails.ProductGroupId = Convert.ToDecimal(_product.ProductGroupId ?? 0); invoceDetails.ProductId = _product.ProductId; invoceDetails.ProductName = _product.ProductName; if (_product.TaxStructureCode != null) { var taxStructure = GetTaxStructure(Convert.ToDecimal(_product.TaxStructureCode)); invoceDetails.Sgst = taxStructure.Sgst; invoceDetails.Cgst = taxStructure.Sgst; invoceDetails.Igst = taxStructure.Igst; invoceDetails.TotalGst = taxStructure.TotalGst; invoceDetails.ServerDateTime = DateTime.Now; } try { string _ChildBranches = string.Empty; //to get data from child branch string _productCodes = configuration.GetSection("ProductCods").Value; if (!string.IsNullOrEmpty(_productCodes)) { if (_productCodes.ToUpper().Contains(productCode.ToUpper())) { _ChildBranches = configuration.GetSection("ChildBranches:" + branchCode).Value; } } if (string.IsNullOrEmpty(_ChildBranches)) { invoceDetails.AvailStock = Convert.ToDecimal(GetProductQty(branchCode, productCode) ?? 0); } else { invoceDetails.AvailStock = Convert.ToDecimal(GetProductQty(_ChildBranches, productCode) ?? 0); } } catch { } return(invoceDetails); } catch (Exception ex) { throw ex; } }