Exemplo n.º 1
0
        public long Insert(InvoiceModel model)
        {
            TblInvoice obj = _mapper.Map <InvoiceModel, TblInvoice>(model);

            obj.Day         = model.InvoiceDate.Day;
            obj.Month       = model.InvoiceDate.Month;
            obj.Year        = model.InvoiceDate.Year;
            obj.InvoiceNo   = "";
            obj.SequenceNo  = 0;
            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 <long> dispatchIdList = model.checkedDispatchId.Split(',').Select(long.Parse).ToList();

            foreach (long dispatchId in dispatchIdList)
            {
                obj.TblInvoiceDetail.Add(new TblInvoiceDetail
                {
                    DispatchId = dispatchId
                });
            }

            _repository.Insert(obj);
            return(obj.InvoiceId);
        }
Exemplo n.º 2
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);
        }