/// <summary> /// Saves a new Buvera or updates an already existing Buvera. /// </summary> /// <param name="BuveraDTO">Buvera to be saved or updated.</param> /// <param name="userId">userId of the Buvera creating or updating</param> /// <returns>BuveraId</returns> public long SaveBuvera(BuveraDTO buveraDTO, string userId) { long buveraId = 0; if (buveraDTO.BuveraId == 0) { var buvera = new Buvera() { TotalCost = buveraDTO.TotalCost, StoreId = buveraDTO.StoreId, FromSupplier = buveraDTO.FromSupplier, ToReceiver = buveraDTO.ToReceiver, BranchId = buveraDTO.BranchId, TotalQuantity = buveraDTO.TotalQuantity, CreatedOn = DateTime.Now, TimeStamp = DateTime.Now, CreatedBy = userId, Deleted = false, }; this.UnitOfWork.Get <Buvera>().AddNew(buvera); this.UnitOfWork.SaveChanges(); buveraId = buvera.BuveraId; return(buveraId); } else { var result = this.UnitOfWork.Get <Buvera>().AsQueryable() .FirstOrDefault(e => e.BuveraId == buveraDTO.BuveraId); if (result != null) { result.BuveraId = buveraDTO.BuveraId; result.TotalCost = buveraDTO.TotalCost; result.FromSupplier = buveraDTO.FromSupplier; result.ToReceiver = buveraDTO.ToReceiver; result.TotalQuantity = buveraDTO.TotalQuantity; result.BranchId = buveraDTO.BranchId; result.StoreId = buveraDTO.StoreId; result.UpdatedBy = userId; result.TimeStamp = DateTime.Now; this.UnitOfWork.Get <Buvera>().Update(result); this.UnitOfWork.SaveChanges(); } return(buveraDTO.BuveraId); } }
public long Save(Buvera model) { var BuveraId = _buveraService.SaveBuvera(model, userId); return(BuveraId); }
public long IssueBuvera(Buvera buvera, string userId) { bool inOrOut = false; var fromSupplierStore = GetStoreName(buvera.StoreId); var toReceiverStore = GetStoreName(Convert.ToInt64(buvera.ToReceiver)); var buveraDTO = new DTO.BuveraDTO() { BuveraId = buvera.BuveraId, TotalCost = buvera.TotalCost, TotalQuantity = buvera.TotalQuantity, BranchId = buvera.BranchId, FromSupplier = fromSupplierStore, ToReceiver = toReceiverStore, StoreId = Convert.ToInt64(buvera.ToReceiver), Deleted = buvera.Deleted, CreatedBy = buvera.CreatedBy, CreatedOn = buvera.CreatedOn }; var buveraId = this._dataService.SaveBuvera(buveraDTO, userId); if (buvera.Grades != null) { if (buvera.Grades.Any()) { List <BuveraGradeSize> buveraGradeSizeList = new List <BuveraGradeSize>(); foreach (var grade in buvera.Grades) { var gradeId = grade.GradeId; if (grade.Denominations != null) { if (grade.Denominations.Any()) { foreach (var denomination in grade.Denominations) { var sizeRate = GetRateOfAParticularSize(denomination.DenominationId); var buveraGradeSize = new BuveraGradeSize() { GradeId = gradeId, SizeId = denomination.DenominationId, BuveraId = buveraId, StoreId = Convert.ToInt64(buvera.ToReceiver), Amount = Convert.ToDouble(denomination.Quantity * sizeRate), Rate = sizeRate, Quantity = denomination.Quantity, TimeStamp = DateTime.Now }; buveraGradeSizeList.Add(buveraGradeSize); inOrOut = true; //Method that adds buvera into storeBuveraGradeSize table(storeBuvera stock) var storeBuveraGradeSize = new StoreBuveraGradeSizeDTO() { StoreId = Convert.ToInt64(buvera.ToReceiver), GradeId = buveraGradeSize.GradeId, SizeId = buveraGradeSize.SizeId, Quantity = buveraGradeSize.Quantity, }; this._dataService.SaveStoreBuveraGradeSize(storeBuveraGradeSize, inOrOut); //Method that updates buvera into storeBuveraGradeSize table(storeBuvera stock) var fromStoreBuveraGradeSize = new StoreBuveraGradeSizeDTO() { StoreId = buvera.StoreId, GradeId = buveraGradeSize.GradeId, SizeId = buveraGradeSize.SizeId, Quantity = buveraGradeSize.Quantity, }; this._dataService.SaveStoreBuveraGradeSize(fromStoreBuveraGradeSize, false); } } } } this._dataService.PurgeBuveraGradeSize(buveraId); this.SaveBuveraGradeSizeList(buveraGradeSizeList); } } return(buveraId); }
/// <summary> /// Maps Buvera EF object to Buvera Model Object and /// returns the Buvera model object. /// </summary> /// <param name="result">EF Buvera object to be mapped.</param> /// <returns>Buvera Model Object.</returns> public Buvera MapEFToModel(EF.Models.Buvera data) { var buvera = new Buvera() { TotalCost = data.TotalCost, BranchName = data.Branch != null? data.Branch.Name:"", BranchId = data.BranchId, TotalQuantity = data.TotalQuantity, StoreId = data.StoreId, BuveraId = data.BuveraId, FromSupplier = data.FromSupplier, ToReceiver = data.ToReceiver, StoreName = data.Store != null? data.Store.Name:"", CreatedOn = data.CreatedOn, TimeStamp = data.TimeStamp, Deleted = data.Deleted, CreatedBy = _userService.GetUserFullName(data.AspNetUser), UpdatedBy = _userService.GetUserFullName(data.AspNetUser2) }; if (data.BuveraGradeSizes != null) { if (data.BuveraGradeSizes.Any()) { List <Grade> grades = new List <Grade>(); var distinctGrades = data.BuveraGradeSizes.GroupBy(g => g.GradeId).Select(o => o.First()).ToList(); foreach (var buveraGradeSize in distinctGrades) { var grade = new Grade() { GradeId = buveraGradeSize.Grade.GradeId, Value = buveraGradeSize.Grade.Value, CreatedOn = buveraGradeSize.Grade.CreatedOn, TimeStamp = buveraGradeSize.Grade.TimeStamp, Deleted = buveraGradeSize.Grade.Deleted, CreatedBy = _userService.GetUserFullName(buveraGradeSize.Grade.AspNetUser), UpdatedBy = _userService.GetUserFullName(buveraGradeSize.Grade.AspNetUser1), }; List <Denomination> denominations = new List <Denomination>(); if (buveraGradeSize.Grade.BuveraGradeSizes != null) { if (buveraGradeSize.Grade.BuveraGradeSizes.Any()) { var distinctSizes = buveraGradeSize.Grade.BuveraGradeSizes.GroupBy(s => s.SizeId).Select(o => o.First()).ToList(); foreach (var ogs in distinctSizes) { var denomination = new Denomination() { DenominationId = ogs.SizeId, Value = ogs.Size != null ? ogs.Size.Value : 0, Quantity = ogs.Quantity }; // Buvera.TotalQuantity += (ogs.Quantity * ogs.Size.Value); denominations.Add(denomination); } } grade.Denominations = denominations; } grades.Add(grade); } buvera.Grades = grades; } } return(buvera); }