Example #1
0
        public void SaveBuveraGradeSize(BuveraGradeSizeDTO buveraGradeSizeDTO)
        {
            var buveraGradeSize = new BuveraGradeSize()
            {
                BuveraId  = buveraGradeSizeDTO.BuveraId,
                GradeId   = buveraGradeSizeDTO.GradeId,
                StoreId   = buveraGradeSizeDTO.StoreId,
                SizeId    = buveraGradeSizeDTO.SizeId,
                Quantity  = buveraGradeSizeDTO.Quantity,
                Rate      = buveraGradeSizeDTO.Rate,
                Amount    = buveraGradeSizeDTO.Amount,
                TimeStamp = DateTime.Now
            };

            this.UnitOfWork.Get <BuveraGradeSize>().AddNew(buveraGradeSize);
            this.UnitOfWork.SaveChanges();
        }
        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);
        }