示例#1
0
        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);
        }
示例#2
0
        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;
            }
        }