Пример #1
0
        public void Mapping_With_AutoMapper_Profiles()
        {
            var configuration = new MapperConfiguration(cfg =>
            {
                cfg.AddProfile <SalesInvoiceMapper>();
                cfg.AddProfile <SalesInvoiceDetailMapper>();
                cfg.AddProfile <SalesInvoiceItemMapper>();
            });
            var mapper = configuration.CreateMapper();

            SalesInvoiceViewModel salesInvoiceViewModel = new SalesInvoiceViewModel {
                Id = 1
            };
            SalesInvoiceModel salesInvoiceModel = mapper.Map <SalesInvoiceModel>(salesInvoiceViewModel);

            Assert.Equal(salesInvoiceViewModel.Id, salesInvoiceModel.Id);

            SalesInvoiceDetailViewModel salesInvoiceDetailViewModel = new SalesInvoiceDetailViewModel {
                Id = 1
            };
            SalesInvoiceDetailModel salesInvoiceDetailModel = mapper.Map <SalesInvoiceDetailModel>(salesInvoiceDetailViewModel);

            Assert.Equal(salesInvoiceDetailViewModel.Id, salesInvoiceDetailModel.Id);

            SalesInvoiceItemViewModel salesInvoiceItemViewModel = new SalesInvoiceItemViewModel {
                Id = 1
            };
            SalesInvoiceItemModel salesInvoiceItemModel = mapper.Map <SalesInvoiceItemModel>(salesInvoiceItemViewModel);

            Assert.Equal(salesInvoiceItemViewModel.Id, salesInvoiceItemModel.Id);
        }
Пример #2
0
        public async Task <bool> UpdateSalesInvoiceDetail(SalesInvoiceDetailModel salesInvoiceDetailModel)
        {
            bool isUpdated = false;

            // get record.
            Salesinvoicedetail salesInvoiceDetail = await GetByIdAsync(w => w.InvoiceDetId == salesInvoiceDetailModel.InvoiceDetId);

            if (null != salesInvoiceDetail)
            {
                // assign values.
                salesInvoiceDetail.InvoiceId           = salesInvoiceDetailModel.InvoiceId;
                salesInvoiceDetail.SrNo                = salesInvoiceDetailModel.SrNo;
                salesInvoiceDetail.Description         = salesInvoiceDetailModel.Description;
                salesInvoiceDetail.UnitOfMeasurementId = salesInvoiceDetailModel.UnitOfMeasurementId;
                salesInvoiceDetail.Quantity            = salesInvoiceDetailModel.Quantity;
                salesInvoiceDetail.PerUnit             = salesInvoiceDetailModel.PerUnit;
                salesInvoiceDetail.UnitPrice           = salesInvoiceDetailModel.UnitPrice;
                salesInvoiceDetail.GrossAmountFc       = 0;
                salesInvoiceDetail.GrossAmount         = 0;
                salesInvoiceDetail.TaxAmountFc         = 0;
                salesInvoiceDetail.TaxAmount           = 0;
                salesInvoiceDetail.NetAmountFc         = 0;
                salesInvoiceDetail.NetAmount           = 0;
                isUpdated = await Update(salesInvoiceDetail);
            }

            if (isUpdated != false)
            {
                await UpdateSalesInvoiceDetailAmount(salesInvoiceDetailModel.InvoiceDetId);

                await salesInvoice.UpdateSalesInvoiceMasterAmount(salesInvoiceDetail.InvoiceId);
            }

            return(isUpdated); // returns.
        }
        public void Read_Return_Success()
        {
            //Setup
            string           testName        = GetCurrentMethod();
            var              dbContext       = _dbContext(testName);
            IIdentityService identityService = new IdentityService {
                Username = "******"
            };
            var model = new SalesInvoiceDetailModel()
            {
                SalesInvoiceItems = new List <SalesInvoiceItemModel>()
                {
                    new SalesInvoiceItemModel()
                }
            };

            dbContext.SalesInvoiceDetails.Add(model);
            dbContext.SaveChanges();

            //Act
            SalesInvoiceDetailLogic unitUnderTest = new SalesInvoiceDetailLogic(GetServiceProvider(testName).Object, identityService, dbContext);
            var result = unitUnderTest.Read(1, 1, "{}", new List <string>()
            {
                ""
            }, null, "{}");

            //Assert
            Assert.True(0 < result.Data.Count);
            Assert.NotEmpty(result.Data);
        }
Пример #4
0
        private async Task <SalesInvoiceDetailModel> AssignValueToModel(Salesinvoicedetail salesInvoiceDetail)
        {
            return(await Task.Run(() =>
            {
                SalesInvoiceDetailModel salesInvoiceDetailModel = new SalesInvoiceDetailModel();
                salesInvoiceDetailModel.InvoiceDetId = salesInvoiceDetail.InvoiceDetId;
                salesInvoiceDetailModel.InvoiceId = salesInvoiceDetail.InvoiceId;
                salesInvoiceDetailModel.SrNo = salesInvoiceDetail.SrNo;
                salesInvoiceDetailModel.Description = salesInvoiceDetail.Description;
                salesInvoiceDetailModel.UnitOfMeasurementId = salesInvoiceDetail.UnitOfMeasurementId;
                salesInvoiceDetailModel.Quantity = salesInvoiceDetail.Quantity;
                salesInvoiceDetailModel.PerUnit = salesInvoiceDetail.PerUnit;
                salesInvoiceDetailModel.UnitPrice = salesInvoiceDetail.UnitPrice;
                salesInvoiceDetailModel.GrossAmountFc = salesInvoiceDetail.GrossAmountFc;
                salesInvoiceDetailModel.GrossAmount = salesInvoiceDetail.GrossAmount;
                salesInvoiceDetailModel.TaxAmountFc = salesInvoiceDetail.TaxAmountFc;
                salesInvoiceDetailModel.TaxAmount = salesInvoiceDetail.TaxAmount;
                salesInvoiceDetailModel.NetAmountFc = salesInvoiceDetail.NetAmountFc;
                salesInvoiceDetailModel.NetAmount = salesInvoiceDetail.NetAmount;
                //--####
                salesInvoiceDetailModel.UnitOfMeasurementName = null != salesInvoiceDetail.UnitOfMeasurement ? salesInvoiceDetail.UnitOfMeasurement.UnitOfMeasurementName : null;

                return salesInvoiceDetailModel;
            }));
        }
Пример #5
0
        public async Task <int> CreateSalesInvoiceDetail(SalesInvoiceDetailModel salesInvoiceDetailModel)
        {
            int salesInvoiceDetailId = 0;

            // assign values.
            Salesinvoicedetail salesInvoiceDetail = new Salesinvoicedetail();

            salesInvoiceDetail.InvoiceId           = salesInvoiceDetailModel.InvoiceId;
            salesInvoiceDetail.SrNo                = salesInvoiceDetailModel.SrNo;
            salesInvoiceDetail.Description         = salesInvoiceDetailModel.Description;
            salesInvoiceDetail.UnitOfMeasurementId = salesInvoiceDetailModel.UnitOfMeasurementId;
            salesInvoiceDetail.Quantity            = salesInvoiceDetailModel.Quantity;
            salesInvoiceDetail.PerUnit             = salesInvoiceDetailModel.PerUnit;
            salesInvoiceDetail.UnitPrice           = salesInvoiceDetailModel.UnitPrice;
            salesInvoiceDetail.GrossAmountFc       = 0;
            salesInvoiceDetail.GrossAmount         = 0;
            salesInvoiceDetail.TaxAmountFc         = 0;
            salesInvoiceDetail.TaxAmount           = 0;
            salesInvoiceDetail.NetAmountFc         = 0;
            salesInvoiceDetail.NetAmount           = 0;

            if (salesInvoiceDetailId != 0)
            {
                await UpdateSalesInvoiceDetailAmount(salesInvoiceDetailId);

                await salesInvoice.UpdateSalesInvoiceMasterAmount(salesInvoiceDetail.InvoiceId);
            }

            await Create(salesInvoiceDetail);

            salesInvoiceDetailId = salesInvoiceDetail.InvoiceDetId;

            return(salesInvoiceDetailId); // returns.
        }
        public async Task <JsonResult> SaveInvoiceDetail(SalesInvoiceDetailModel salesInvoiceDetailModel)
        {
            JsonData <JsonStatus> data = new JsonData <JsonStatus>(new JsonStatus());

            if (ModelState.IsValid)
            {
                if (salesInvoiceDetailModel.InvoiceDetId > 0)
                {
                    // update record.
                    if (true == await _salesInvoiceDetail.UpdateSalesInvoiceDetail(salesInvoiceDetailModel))
                    {
                        data.Result.Status = true;
                    }
                }
                else
                {
                    // add new record.
                    if (await _salesInvoiceDetail.CreateSalesInvoiceDetail(salesInvoiceDetailModel) > 0)
                    {
                        data.Result.Status = true;
                    }
                }
            }

            return(Json(data));
        }
        /// <summary>
        /// edit invoice detail.
        /// </summary>
        /// <param name="invoiceDetId"></param>
        /// <returns></returns>
        public async Task <IActionResult> EditInvoiceDetail(int invoiceDetId)
        {
            ViewBag.UnitOfMeasurementList = await _unitOfMeasurement.GetUnitOfMeasurementSelectList();

            SalesInvoiceDetailModel salesInvoiceDetailModel = await _salesInvoiceDetail.GetSalesInvoiceDetailById(invoiceDetId);

            return(await Task.Run(() =>
            {
                return PartialView("_AddInvoiceDetail", salesInvoiceDetailModel);
            }));
        }
Пример #8
0
        public async Task <SalesInvoiceDetailModel> GetSalesInvoiceDetailById(int salesInvoiceDetailId)
        {
            SalesInvoiceDetailModel salesInvoiceDetailModel = null;

            IList <SalesInvoiceDetailModel> salesInvoiceModelDetailList = await GetSalesInvoiceDetailList(salesInvoiceDetailId, 0);

            if (null != salesInvoiceModelDetailList && salesInvoiceModelDetailList.Any())
            {
                salesInvoiceDetailModel = salesInvoiceModelDetailList.FirstOrDefault();
            }

            return(salesInvoiceDetailModel); // returns.
        }
        /// <summary>
        /// add invoice detail.
        /// </summary>
        /// <param name="invoiceId"></param>
        /// <returns></returns>
        public async Task <IActionResult> AddInvoiceDetail(int invoiceId)
        {
            ViewBag.UnitOfMeasurementList = await _unitOfMeasurement.GetUnitOfMeasurementSelectList();

            SalesInvoiceDetailModel salesInvoiceDetailModel = new SalesInvoiceDetailModel();

            salesInvoiceDetailModel.InvoiceId = invoiceId;
            salesInvoiceDetailModel.SrNo      = await _salesInvoiceDetail.GenerateSrNo(invoiceId);

            return(await Task.Run(() =>
            {
                return PartialView("_AddInvoiceDetail", salesInvoiceDetailModel);
            }));
        }
        public async Task <int> CreateSalesInvoiceDetailTax(SalesInvoiceDetailTaxModel salesInvoiceDetailTaxModel)
        {
            int salesInvoiceDetailTaxId = 0;
            int multiplier = 1;

            SalesInvoiceDetailModel salesInvoiceDetailModel = null;

            salesInvoiceDetailModel = await salesInvoiceDetail.GetSalesInvoiceDetailById((int)salesInvoiceDetailTaxModel.InvoiceDetId);

            // assign values.
            Salesinvoicedetailtax salesInvoiceDetailTax = new Salesinvoicedetailtax();

            salesInvoiceDetailTax.InvoiceDetId          = salesInvoiceDetailTaxModel.InvoiceDetId;
            salesInvoiceDetailTax.SrNo                  = salesInvoiceDetailTaxModel.SrNo;
            salesInvoiceDetailTax.TaxLedgerId           = salesInvoiceDetailTaxModel.TaxLedgerId;
            salesInvoiceDetailTax.TaxPercentageOrAmount = salesInvoiceDetailTaxModel.TaxPercentageOrAmount;
            salesInvoiceDetailTax.TaxPerOrAmountFc      = salesInvoiceDetailTaxModel.TaxPerOrAmountFc;

            if (DiscountType.Percentage.ToString() == salesInvoiceDetailTaxModel.TaxPercentageOrAmount)
            {
                salesInvoiceDetailTaxModel.TaxAmountFc = (salesInvoiceDetailModel.GrossAmountFc * salesInvoiceDetailTaxModel.TaxPerOrAmountFc) / 100;
            }
            else
            {
                salesInvoiceDetailTaxModel.TaxAmountFc = salesInvoiceDetailTaxModel.TaxPerOrAmountFc;
            }

            if (TaxAddOrDeduct.Deduct.ToString() == salesInvoiceDetailTaxModel.TaxAddOrDeduct)
            {
                multiplier = -1;
            }

            salesInvoiceDetailTax.TaxAddOrDeduct = salesInvoiceDetailTaxModel.TaxAddOrDeduct;
            salesInvoiceDetailTax.TaxAmountFc    = multiplier * salesInvoiceDetailTaxModel.TaxAmountFc;
            salesInvoiceDetailTax.TaxAmount      = multiplier * salesInvoiceDetailTaxModel.TaxAmount;
            salesInvoiceDetailTax.Remark         = salesInvoiceDetailTaxModel.Remark;
            await Create(salesInvoiceDetailTax);

            salesInvoiceDetailTaxId = salesInvoiceDetailTax.InvoiceDetTaxId;
            if (salesInvoiceDetailTaxId != 0)
            {
                await salesInvoiceDetail.UpdateSalesInvoiceDetailAmount(salesInvoiceDetailTax.InvoiceDetId);

                salesInvoiceDetailTax = await GetByIdAsync(w => w.InvoiceDetTaxId == salesInvoiceDetailTaxModel.InvoiceDetTaxId);

                await salesInvoice.UpdateSalesInvoiceMasterAmount(salesInvoiceDetailTax.InvoiceDet.InvoiceId);
            }

            return(salesInvoiceDetailTaxId); // returns.
        }
Пример #11
0
        public override async void UpdateAsync(long id, SalesInvoiceModel model)
        {
            try
            {
                if (model.SalesInvoiceDetails != null)
                {
                    HashSet <long> detailIds = salesInvoiceDetailLogic.GetIds(id);
                    foreach (var itemId in detailIds)
                    {
                        SalesInvoiceDetailModel data = model.SalesInvoiceDetails.FirstOrDefault(prop => prop.Id.Equals(itemId));
                        if (data == null)
                        {
                            await salesInvoiceDetailLogic.DeleteAsync(itemId);
                        }
                        else
                        {
                            salesInvoiceDetailLogic.UpdateAsync(itemId, data);
                        }
                    }

                    foreach (SalesInvoiceDetailModel item in model.SalesInvoiceDetails)
                    {
                        if (item.Id == 0)
                        {
                            salesInvoiceDetailLogic.Create(item);
                        }
                    }
                }

                EntityExtension.FlagForUpdate(model, IdentityService.Username, "sales-service");
                DbSet.Update(model);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }