예제 #1
0
        public void SaveStoreMaizeStock(StoreMaizeStock storeMaizeStock, bool inOrOut)
        {
            double startStock           = 0;
            double OldMaizeStockBalance = 0;
            double NewMaizeStockBalance = 0;


            OldMaizeStockBalance = GetStockMaizeBalanceForLastSupplyTransaction(storeMaizeStock.StoreId);
            startStock           = OldMaizeStockBalance;


            if (inOrOut == true)
            {
                NewMaizeStockBalance = OldMaizeStockBalance + storeMaizeStock.Quantity;
            }
            else
            {
                NewMaizeStockBalance = OldMaizeStockBalance - storeMaizeStock.Quantity;
            }

            var storeMaizeStockDTO = new DTO.StoreMaizeStockDTO()
            {
                StoreMaizeStockId = storeMaizeStock.StoreMaizeStockId,
                StoreId           = storeMaizeStock.StoreId,
                StartStock        = startStock,
                SupplyId          = storeMaizeStock.SupplyId,
                StockBalance      = NewMaizeStockBalance,
                BranchId          = storeMaizeStock.BranchId,
                Quantity          = storeMaizeStock.Quantity,
                SectorId          = storeMaizeStock.SectorId,
                TimeStamp         = storeMaizeStock.TimeStamp,
            };

            this._dataService.SaveStoreMaizeStock(storeMaizeStockDTO);
        }
예제 #2
0
        public long SaveSupply(Supply supply, string userId)
        {
            var amount = (supply.Price * supply.Quantity);

            var supplyDTO = new DTO.SupplyDTO()
            {
                Quantity         = supply.Quantity,
                SupplyDate       = supply.SupplyDate,
                SupplyNumber     = supply.SupplyNumber,
                BranchId         = supply.BranchId,
                SupplierId       = supply.SupplierId,
                Amount           = amount,
                TruckNumber      = supply.TruckNumber,
                Used             = supply.Used,
                SupplyId         = supply.SupplyId,
                WeightNoteNumber = supply.WeightNoteNumber,
                MoistureContent  = supply.MoistureContent,
                NormalBags       = supply.NormalBags,
                BagsOfStones     = supply.BagsOfStones,
                Price            = supply.Price,
                IsPaid           = supply.IsPaid,
                StatusId         = supply.StatusId,
                CreatedOn        = supply.CreatedOn,
                TimeStamp        = supply.TimeStamp,
                CreatedBy        = supply.CreatedBy,
                Deleted          = supply.Deleted,
                StoreId          = supply.StoreId,
            };

            var supplyId = this._dataService.SaveSupply(supplyDTO, userId);

            var storeMaizeStock = new StoreMaizeStock()
            {
                SupplyId = supplyId,
                Quantity = supply.Quantity,
                StoreId  = supply.StoreId,
                BranchId = supply.BranchId,
                SectorId = Convert.ToInt64(sectorId),
            };

            SaveStoreMaizeStock(storeMaizeStock, true);
            var notes           = "Maize supply";
            var accountActivity = new AccountTransactionActivity()
            {
                AspNetUserId = supply.SupplierId,

                Amount = amount,
                Notes  = notes,

                Action               = "+",
                BranchId             = supply.BranchId,
                TransactionSubTypeId = Convert.ToInt64(supplyTransactionSubTypeId),
                SectorId             = Convert.ToInt64(sectorId),
                Deleted              = supply.Deleted,
                CreatedBy            = userId,
            };
            var accountActivityId = this._accountTransactionActivityService.SaveAccountTransactionActivity(accountActivity, userId);

            return(supplyId);
        }
        public StoreMaizeStock GetLatestMaizeStockForAParticularStore(long storeId)
        {
            StoreMaizeStock storeMaizeStock = new StoreMaizeStock();

            var storeMaizeStocks = this.UnitOfWork.Get <StoreMaizeStock>().AsQueryable().Where(e => e.StoreId == storeId);

            if (storeMaizeStocks.Any())
            {
                storeMaizeStock = storeMaizeStocks.AsQueryable().OrderByDescending(e => e.TimeStamp).First();
                return(storeMaizeStock);
            }
            else
            {
                return(storeMaizeStock);
            }
        }
예제 #4
0
        public void SaveStoreMaizeStock(StoreMaizeStockDTO storeMaizeStockDTO)
        {
            var storeMaizeStock = new StoreMaizeStock()
            {
                StoreMaizeStockId = storeMaizeStockDTO.StoreMaizeStockId,
                StockBalance      = storeMaizeStockDTO.StockBalance,
                SupplyId          = storeMaizeStockDTO.SupplyId,
                StoreId           = storeMaizeStockDTO.StoreId,
                BranchId          = storeMaizeStockDTO.BranchId,
                StartStock        = storeMaizeStockDTO.StartStock,
                SectorId          = storeMaizeStockDTO.SectorId,
                Quantity          = storeMaizeStockDTO.Quantity,
                TimeStamp         = DateTime.Now
            };

            this.UnitOfWork.Get <StoreMaizeStock>().AddNew(storeMaizeStock);
            this.UnitOfWork.SaveChanges();
        }
예제 #5
0
        /// <summary>
        /// Maps StoreMaizeStock EF object to StoreMaizeStock Model Object and
        /// returns the StoreMaizeStock model object.
        /// </summary>
        /// <param name="result">EF StoreMaizeStock object to be mapped.</param>
        /// <returns>StoreMaizeStock Model Object.</returns>
        public StoreMaizeStock MapEFToModel(EF.Models.StoreMaizeStock data)
        {
            var storeMaizeStock = new StoreMaizeStock()
            {
                Quantity     = data.Quantity,
                StockBalance = data.StockBalance,
                StartStock   = data.StartStock,
                SupplyId     = data.SupplyId,
                SupplyNumber = data.Supply != null?Convert.ToString(data.Supply.SupplyNumber) : "",
                                   BranchId          = data.BranchId,
                                   StoreId           = data.StoreId,
                                   StoreName         = data.Store != null ? data.Store.Name : "",
                                   TimeStamp         = data.TimeStamp,
                                   BranchName        = data.Branch != null ? data.Branch.Name : "",
                                   SectorId          = data.SectorId,
                                   SectorName        = data.Sector != null? data.Sector.Name : "",
                                   StoreMaizeStockId = data.StoreMaizeStockId,
            };

            return(storeMaizeStock);
        }
예제 #6
0
        public long SaveBatch(Batch batch, string userId)
        {
            var batchDTO = new DTO.BatchDTO()
            {
                BatchId   = batch.BatchId,
                Name      = batch.Name,
                SectorId  = batch.SectorId,
                Quantity  = batch.Quantity,
                BranchId  = batch.BranchId,
                Deleted   = batch.Deleted,
                CreatedBy = batch.CreatedBy,
                CreatedOn = batch.CreatedOn
            };

            var batchId = this._dataService.SaveBatch(batchDTO, userId);


            if (batch.Supplies.Any())
            {
                EF.Models.Supply supplyObject = new EF.Models.Supply();

                foreach (var batchSupply in batch.Supplies)
                {
                    var batchSupplyDTO = new BatchSupplyDTO()
                    {
                        BatchId  = batchId,
                        SupplyId = batchSupply.SupplyId,
                        Quantity = batchSupply.Quantity,
                    };
                    this._dataService.PurgeBatchSupply(batchId, batchSupply.SupplyId);
                    this._dataService.SaveBatchSupply(batchSupplyDTO);

                    var storeMaizeStock = new StoreMaizeStock()
                    {
                        SupplyId = batchSupply.SupplyId,
                        Quantity = batchSupply.Quantity,
                        StoreId  = batch.StoreId,
                        BranchId = batch.BranchId,
                        SectorId = batch.SectorId,
                    };
                    _supplyService.SaveStoreMaizeStock(storeMaizeStock, false);

                    supplyObject = this._supplyDataService.GetSupply(batchSupply.SupplyId);
                    var supply = new SupplyDTO()
                    {
                        Quantity   = supplyObject.Quantity,
                        SupplyDate = supplyObject.SupplyDate,
                        //SupplyNumber =  supplyObject.SupplyNumber,
                        BranchId         = supplyObject.BranchId,
                        SupplierId       = supplyObject.SupplierId,
                        Amount           = supplyObject.Amount,
                        StoreId          = supplyObject.StoreId,
                        TruckNumber      = supplyObject.TruckNumber,
                        Price            = supplyObject.Price,
                        WeightNoteNumber = supplyObject.WeightNoteNumber,
                        BagsOfStones     = supplyObject.BagsOfStones,
                        NormalBags       = supplyObject.NormalBags,
                        MoistureContent  = supplyObject.MoistureContent,
                        Deleted          = supplyObject.Deleted,
                        AmountToPay      = supplyObject.AmountToPay,
                        DeletedBy        = supplyObject.DeletedBy,
                        DeletedOn        = supplyObject.DeletedOn,
                        StatusId         = Convert.ToInt64(supplyStatusIdInProgress),
                        Used             = true,
                        SupplyId         = supplyObject.SupplyId
                    };
                    this._supplyDataService.SaveSupply(supply, userId);
                }
            }
            return(batchId);
        }
예제 #7
0
        public long SaveSupply(Supply supply, string userId)
        {
            double amount = 0, totalBags = 0, offloadingFee = 0, amountToPay = 0;

            amount = (supply.Price * supply.Quantity);

            var supplies = GetAllSuppliesForAParticularSupplier(supply.SupplierId);

            if (supplies.Any())
            {
                foreach (var supplierSupply in supplies)
                {
                    bool equals = supplierSupply.WeightNoteNumber.Equals(supply.WeightNoteNumber, StringComparison.OrdinalIgnoreCase);

                    if (equals)
                    {
                        return(-1);
                    }
                }
            }

            if (supply.Offloading == "NO")
            {
                totalBags     = supply.NormalBags + supply.BagsOfStones;
                offloadingFee = totalBags * (Convert.ToDouble(offloadingRate));
                amountToPay   = amount - offloadingFee;
            }
            else
            {
                amountToPay = amount;
            }
            var supplyDTO = new DTO.SupplyDTO()
            {
                Quantity   = supply.Quantity,
                SupplyDate = supply.SupplyDate,
                //SupplyNumber = supply.SupplyNumber,
                BranchId         = supply.BranchId,
                SupplierId       = supply.SupplierId,
                Amount           = amount,
                TruckNumber      = supply.TruckNumber,
                AmountToPay      = amountToPay,
                Used             = supply.Used,
                SupplyId         = supply.SupplyId,
                WeightNoteNumber = supply.WeightNoteNumber,
                MoistureContent  = supply.MoistureContent,
                NormalBags       = supply.NormalBags,
                BagsOfStones     = supply.BagsOfStones,
                Price            = supply.Price,
                IsPaid           = supply.IsPaid,
                StatusId         = supply.StatusId,
                CreatedOn        = supply.CreatedOn,
                TimeStamp        = supply.TimeStamp,
                CreatedBy        = supply.CreatedBy,
                Deleted          = supply.Deleted,
                StoreId          = supply.StoreId,
                Offloading       = supply.Offloading,
            };

            var supplyId = this._dataService.SaveSupply(supplyDTO, userId);

            var storeMaizeStock = new StoreMaizeStock()
            {
                SupplyId = supplyId,
                Quantity = supply.Quantity,
                StoreId  = supply.StoreId,
                BranchId = supply.BranchId,
                SectorId = Convert.ToInt64(sectorId),
            };

            SaveStoreMaizeStock(storeMaizeStock, true);
            var notes           = "Maize supply";
            var accountActivity = new AccountTransactionActivity()
            {
                AspNetUserId = supply.SupplierId,

                Amount               = amount,
                Notes                = notes,
                Action               = "+",
                BranchId             = supply.BranchId,
                TransactionSubTypeId = Convert.ToInt64(supplyTransactionSubTypeId),
                SectorId             = Convert.ToInt64(sectorId),
                Deleted              = supply.Deleted,
                CreatedBy            = userId,
                SupplyId             = supplyId,
            };
            var accountActivityId = this._accountTransactionActivityService.SaveAccountTransactionActivity(accountActivity, userId);



            var offLoadingNotes           = "Offloading fee";
            var accountActivityOffloading = new AccountTransactionActivity()
            {
                AspNetUserId = supply.SupplierId,

                Amount               = offloadingFee,
                Notes                = offLoadingNotes,
                Action               = "-",
                BranchId             = supply.BranchId,
                TransactionSubTypeId = Convert.ToInt64(offLoadingTransactionSubTypeId),
                SectorId             = Convert.ToInt64(sectorId),
                Deleted              = supply.Deleted,
                CreatedBy            = userId,
                SupplyId             = supplyId,
            };
            var accountActivityOffloadingId = this._accountTransactionActivityService.SaveAccountTransactionActivity(accountActivityOffloading, userId);



            return(supplyId);
        }