Ejemplo n.º 1
0
        public bool AddDispatch(Dispatch dispatch)
        {
            _unitOfWork.DispatchRepository.Add(dispatch);

            _unitOfWork.Save();
            return true;
        }
Ejemplo n.º 2
0
        private DeliveryViewModel CreateGoodsReceivingNote(Cats.Models.Hubs.Dispatch dispatch)
        {
            if (dispatch == null)
            {
                return(new DeliveryViewModel());
            }
            var delivery = new DeliveryViewModel();

            delivery.DeliveryDate         = DateTime.Today;
            delivery.DispatchID           = dispatch.DispatchID;
            delivery.DeliveryDate         = DateTime.Today;
            delivery.DocumentReceivedBy   = UserAccountHelper.GetUser(User.Identity.Name).UserProfileID;
            delivery.DocumentReceivedDate = DateTime.Today;
            delivery.DeliveryID           = Guid.NewGuid();
            //delivery.DonorID=dispatch.
            delivery.DriverName      = dispatch.DriverName;
            delivery.FDPID           = dispatch.FDPID.Value;
            delivery.HubID           = dispatch.HubID;
            delivery.TransporterID   = dispatch.TransporterID;
            delivery.InvoiceNo       = dispatch.GIN;
            delivery.PlateNoPrimary  = dispatch.PlateNo_Prime;
            delivery.PlateNoTrailler = dispatch.PlateNo_Trailer;
            delivery.RequisitionNo   = dispatch.RequisitionNo;
            delivery.FDP             = dispatch.FDP.Name;
            delivery.Region          = dispatch.FDP.AdminUnit.AdminUnit2.AdminUnit2.Name;
            delivery.Zone            = dispatch.FDP.AdminUnit.AdminUnit2.Name;
            delivery.Woreda          = dispatch.FDP.AdminUnit.Name;
            delivery.Hub             = dispatch.Hub.Name;
            delivery.Transporter     = dispatch.Transporter.Name;


            //foreach (var dispatchDetail in dispatch.DispatchDetails)
            //{
            //    var deliveryDetail = new DistributionDetail();
            //    deliveryDetail.DistributionID = distribution.DistributionID;
            //    deliveryDetail.DistributionDetailID = Guid.NewGuid();
            //    deliveryDetail.CommodityID = dispatchDetail.CommodityID;
            //    deliveryDetail.ReceivedQuantity = 0;
            //    deliveryDetail.SentQuantity = dispatchDetail.RequestedQuantityInMT;
            //    deliveryDetail.UnitID = dispatchDetail.UnitID;


            //}
            return(delivery);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Generates the dipatch.
        /// </summary>
        /// <returns></returns>
        public Dispatch GenerateDipatch(UserProfile user)
        {
            //TODO:Check if any impact converting default constructor to injuct user
            //UserProfile user = Repository.UserProfile.GetUser(HttpContext.Current.User.Identity.Name);
            Dispatch dispatch = new Dispatch()
            {
                BidNumber    = this.BidNumber,
                CreatedDate  = DateTime.Now,
                DispatchDate = this.DispatchDate,

                DriverName           = this.DriverName,
                DispatchedByStoreMan = DispatchedByStoreMan,
                FDPID           = this.FDPID,
                GIN             = this.GIN,
                PeriodYear      = this.Year,
                PeriodMonth     = this.Month,
                PlateNo_Prime   = this.PlateNo_Prime,
                PlateNo_Trailer = this.PlateNo_Trailer,
                RequisitionNo   = this.RequisitionNo,
                //HubID = user.DefaultHub.HubID;
                // StackNumber = this.StackNumber,
                // StoreID = this.StoreID,
                TransporterID = this.TransporterID,
                HubID         = this.WarehouseID,
                //ProgramID = this.ProgramID,
                WeighBridgeTicketNumber = this.WeighBridgeTicketNumber,
                Round  = this.Round,
                Remark = this.Remark,
                //ProjectNumber = this.ProjectNumber,
                // SINumber = this.SINumber
            };

            if (this.DispatchID.HasValue)
            {
                dispatch.DispatchID = this.DispatchID.Value;
            }
            return(dispatch);
        }
Ejemplo n.º 4
0
        public static DispatchViewModel BindDispatchViewModelBinder(Dispatch dispatch)
        {
            var dispatchViewModel = new DispatchViewModel();
            var dispatchDetail = dispatch.DispatchDetails.FirstOrDefault();
            dispatchViewModel.BidNumber = dispatch.BidNumber;
            dispatchViewModel.DispatchDate = dispatch.DispatchDate;
            dispatchViewModel.DispatchID = dispatch.DispatchID;
            dispatchViewModel.DispatchedByStoreMan = dispatch.DispatchedByStoreMan;
            dispatchViewModel.DriverName = dispatch.DriverName;
            dispatchViewModel.FDP = dispatch.FDP.Name;
            dispatchViewModel.GIN = dispatch.GIN;
            dispatchViewModel.Month = dispatch.PeriodMonth;
            dispatchViewModel.PlateNo_Prime = dispatch.PlateNo_Prime;
            dispatchViewModel.PlateNo_Trailer = dispatch.PlateNo_Trailer;
            //dispatchViewModel.Program = dispatch.program;

            dispatchViewModel.Remark = dispatch.Remark;
            dispatchViewModel.RequisitionNo = dispatch.RequisitionNo;
            dispatchViewModel.Round = dispatch.Round;

            dispatchViewModel.Type = dispatch.Type;
            dispatchViewModel.WeighBridgeTicketNumber = dispatch.WeighBridgeTicketNumber;
            dispatchViewModel.Year = dispatch.PeriodYear;
            if (dispatch.DispatchAllocation.ShippingInstruction != null)
                dispatchViewModel.SINumber = dispatch.DispatchAllocation.ShippingInstruction.Value;
            if (dispatch.DispatchAllocation.ProjectCode != null)
                dispatchViewModel.ProjectNumber = dispatch.DispatchAllocation.ProjectCode.Value;
            //if (dispatchDetail != null)
            //{
            //    dispatchViewModel.CommodityID = dispatchDetail.CommodityID;
            //    dispatchViewModel.Commodity = dispatchDetail.Commodity.Name;

            //}
            if(dispatch.DispatchAllocationID.HasValue)
            dispatchViewModel.DispatchAllocationID = dispatch.DispatchAllocationID.Value;
            return dispatchViewModel;
        }
Ejemplo n.º 5
0
        private void PrepareEdit(Dispatch dispatch, UserProfile user, int type)
        {
            var years = (from y in _periodService.GetYears()
                         select new { Name = y, Id = y }).ToList();
            var months = (from y in _periodService.GetMonths(dispatch.PeriodYear)
                          select new { Name = y, Id = y }).ToList();
            ViewBag.Year = new SelectList(years, "Id", "Name", dispatch.PeriodYear);
            ViewBag.Month = new SelectList(months, "Id", "Name", dispatch.PeriodMonth);
            ViewData["Units"] = _unitService.GetAllUnit().Select(p => new { Id = p.UnitID, p.Name }).ToList();
            var transaction = _dispatchService.GetDispatchTransaction(dispatch.DispatchID);

            ViewBag.TransporterID = new SelectList(_transporterService.GetAllTransporter(), "TransporterID", "Name", dispatch.TransporterID);
            if (type == 1)
            {
                PrepareFDPForEdit(dispatch.FDPID);
            }
            else if (type == 2)
            {
                var tran = _dispatchService.GetDispatchTransaction(dispatch.DispatchID);
                //TODO I think there need's to be a check for this one
                ViewBag.ToHUBs = tran != null ? new SelectList(_hubService.GetAllHub().Select(p => new { Name = string.Format("{0} - {1}", p.Name, p.HubOwner.Name), HubID = p.HubID }), "HubID", "Name", tran.Account.EntityID) : null;
            }

            if (transaction != null)
            {
                ViewBag.StoreID = new SelectList(_storeService.GetStoreByHub(user.DefaultHub.Value), "StoreID", "Name", transaction.StoreID);
                ViewBag.ProgramID = new SelectList(_programService.GetAllProgram(), "ProgramID", "Name", transaction.ProgramID);
                if (transaction.Stack != null)
                    ViewBag.StackNumbers = new SelectList(transaction.Store.Stacks.Select(p => new { Name = p, Id = p }), "Id", "Name", transaction.Stack.Value);
                ViewData["Commodities"] = _commodityService.GetAllParents().Select(c => new CommodityModel { Id = c.CommodityID, Name = c.Name }).ToList();
                ViewBag.CommodityTypeID = new SelectList(_commodityTypeService.GetAllCommodityType(), "CommodityTypeID", "Name", transaction.Commodity.CommodityTypeID);
            }
            else
            {
                ViewBag.StoreID = new SelectList(_storeService.GetStoreByHub(user.DefaultHub.Value), "StoreID",
                                                 "Name"); //, transaction.StoreID);
                ViewBag.ProgramID = new SelectList(_programService.GetAllProgram(), "ProgramID", "Name");
                //, transaction.ProgramID);
                //TODO i'm not so sure about the next line
                var firstOrDefault = _storeService.GetAllStore().FirstOrDefault();
                if (firstOrDefault != null)
                    ViewBag.StackNumbers =
                        new SelectList(firstOrDefault.Stacks.Select(p => new { Name = p, Id = p }), "Id",
                                       "Name"); //, transaction.Stack.Value); )//transaction.Store.Stacks
                ViewData["Commodities"] =
                    _commodityService.GetAllParents().Select(
                        c => new CommodityModel { Id = c.CommodityID, Name = c.Name }).ToList();
                ViewBag.CommodityTypeID = new SelectList(_commodityTypeService.GetAllCommodityType(), "CommodityTypeID", "Name");
            }
            var comms = new List<DispatchDetailModel>();
            ViewBag.SelectedCommodities = comms;
        }
Ejemplo n.º 6
0
 public bool EditDispatch(Dispatch dispatch)
 {
     _unitOfWork.DispatchRepository.Edit(dispatch);
     _unitOfWork.Save();
     return true;
 }
Ejemplo n.º 7
0
 public bool DeleteDispatch(Dispatch dispatch)
 {
     if (dispatch == null) return false;
     _unitOfWork.DispatchRepository.Delete(dispatch);
     _unitOfWork.Save();
     return true;
 }
Ejemplo n.º 8
0
        /// <summary>
        /// Generates the dispatch model.
        /// </summary>
        /// <param name="dispatch">The dispatch.</param>
        /// <param name="Repository">The repository.</param>
        /// <returns></returns>
        public static DispatchModel GenerateDispatchModel(Dispatch dispatch, Transaction transactionObj,
                                                          List <Commodity> commodities,
                                                          List <Transporter> transporters,
                                                          List <Unit> units,
                                                          List <FDP> fdps,
                                                          List <Program> programs,
                                                          List <AdminUnit> regions,
                                                          List <AdminUnit> zones,
                                                          List <Store> stores)
        {
            DispatchModel model = new DispatchModel(commodities,
                                                    transporters,
                                                    units,
                                                    fdps,
                                                    programs,
                                                    regions,
                                                    zones,
                                                    stores);

            model.BidNumber            = dispatch.BidNumber;
            model.DispatchDate         = dispatch.DispatchDate;
            model.DispatchID           = dispatch.DispatchID;
            model.DriverName           = dispatch.DriverName;
            model.DispatchedByStoreMan = dispatch.DispatchedByStoreMan;
            model.FDPID           = dispatch.FDPID;
            model.GIN             = dispatch.GIN;
            model.Month           = dispatch.PeriodMonth;
            model.Year            = dispatch.PeriodYear;
            model.PlateNo_Prime   = dispatch.PlateNo_Prime;
            model.PlateNo_Trailer = dispatch.PlateNo_Trailer;
            model.RequisitionNo   = dispatch.RequisitionNo;
            model.Type            = dispatch.Type;
            //model.StackNumber = dispatch.StackNumber;
            //model.StoreID = dispatch.StoreID;
            model.TransporterID = dispatch.TransporterID;
            model.WarehouseID   = dispatch.HubID;
            //model.ProgramID = dispatch.ProgramID;
            model.WeighBridgeTicketNumber = dispatch.WeighBridgeTicketNumber;
            model.Remark = dispatch.Remark;

            model.OtherDispatchAllocationID = dispatch.OtherDispatchAllocationID;
            model.DispatchAllocationID      = dispatch.DispatchAllocationID;

            // model.ProjectNumber = dispatch.ProjectNumber;
            //model.SINumber = dispatch.SINumber;
            //TODO:Check modification have any impact
            Transaction transaction = transactionObj;// Repository.Dispatch.GetDispatchTransaction(dispatch.DispatchID);

            if (transaction != null)
            {
                if (transaction.Stack != null)
                {
                    model.StackNumber = transaction.Stack.Value;
                }
                if (transaction.StoreID.HasValue)
                {
                    model.StoreID = transaction.StoreID.Value;
                }
                model.ProgramID = transaction.ProgramID;
                //model.ProjectNumber = transaction.ProjectCode.Value;
                model.SINumber        = transaction.ShippingInstruction.Value;
                model.CommodityTypeID = transaction.Commodity.CommodityTypeID;
            }
            model.DispatchDetails = DispatchDetailModel.GenerateDispatchDetailModels(dispatch.DispatchDetails);
            return(model);
        }
Ejemplo n.º 9
0
        /// <summary>
        /// Generates the dipatch.
        /// </summary>
        /// <returns></returns>
        public Dispatch GenerateDipatch(UserProfile user)
        {
            //TODO:Check if any impact converting default constructor to injuct user
            //UserProfile user = Repository.UserProfile.GetUser(HttpContext.Current.User.Identity.Name);
            Dispatch dispatch = new Dispatch()
            {
                BidNumber = this.BidNumber,
                CreatedDate = DateTime.Now,
                DispatchDate = this.DispatchDate,

                DriverName = this.DriverName,
                DispatchedByStoreMan = DispatchedByStoreMan,
                FDPID = this.FDPID,
                GIN = this.GIN,
                PeriodYear = this.Year,
                PeriodMonth = this.Month,
                PlateNo_Prime = this.PlateNo_Prime,
                PlateNo_Trailer = this.PlateNo_Trailer,
                RequisitionNo = this.RequisitionNo,
                //HubID = user.DefaultHub.HubID;
                // StackNumber = this.StackNumber,
                // StoreID = this.StoreID,
                TransporterID = this.TransporterID,
                HubID = this.WarehouseID,
                //ProgramID = this.ProgramID,
                WeighBridgeTicketNumber = this.WeighBridgeTicketNumber,
                Round = this.Round,
                Remark = this.Remark,
                //ProjectNumber = this.ProjectNumber,
                // SINumber = this.SINumber
            };
            if (this.DispatchID.HasValue)
            {
                dispatch.DispatchID = this.DispatchID.Value;
            }
            return dispatch;
        }
Ejemplo n.º 10
0
 //TODO: this section has to be cleaned
 /// <summary>
 /// Gets the positive FDP transaction.
 /// </summary>
 /// <param name="dispatchModel">The dispatch model.</param>
 /// <param name="dispatch">The dispatch.</param>
 /// <param name="detail">The detail.</param>
 /// <returns></returns>
 private Transaction GetGoodsInTransitFDPTransaction(DispatchModel dispatchModel, Dispatch dispatch, DispatchDetailModel detail)
 {
     Transaction transaction2 = new Transaction();
     transaction2.AccountID = _accountService.GetAccountIdWithCreate(Account.Constants.FDP, dispatchModel.FDPID.Value);
     transaction2.ProgramID = dispatchModel.ProgramID;
     transaction2.ParentCommodityID = detail.CommodityID;
     transaction2.CommodityID = detail.CommodityID;
     transaction2.HubID = dispatch.HubID;
     transaction2.HubOwnerID = _unitOfWork.HubRepository.FindById(dispatch.HubID).HubOwnerID;
     transaction2.LedgerID = Ledger.Constants.GOODS_IN_TRANSIT;
     transaction2.QuantityInMT = +detail.DispatchedQuantityMT.Value;
     transaction2.QuantityInUnit = +detail.DispatchedQuantity.Value;
     transaction2.ShippingInstructionID = _shippingInstructionService.GetShipingInstructionId(dispatchModel.SINumber);
     transaction2.ProjectCodeID = _projectCodeService.GetProjectCodeId(dispatchModel.ProjectNumber);
     transaction2.Stack = dispatchModel.StackNumber;
     transaction2.StoreID = dispatchModel.StoreID;
     transaction2.TransactionDate = DateTime.Now;
     transaction2.UnitID = detail.Unit;
     return transaction2;
 }
Ejemplo n.º 11
0
        /// <summary>
        /// Generates the dispatch model.
        /// </summary>
        /// <param name="dispatch">The dispatch.</param>
        /// <param name="Repository">The repository.</param>
        /// <returns></returns>
        public static DispatchModel GenerateDispatchModel(Dispatch dispatch, Transaction transactionObj,
            List<Commodity> commodities,
            List<Transporter> transporters,
            List<Unit> units,
            List<FDP> fdps,
            List<Program> programs,
            List<AdminUnit> regions,
            List<AdminUnit> zones,
            List<Store> stores)
        {
            DispatchModel model = new DispatchModel(commodities,
            transporters,
            units,
            fdps,
            programs,
               regions,
            zones,
              stores);
            model.BidNumber = dispatch.BidNumber;
            model.DispatchDate = dispatch.DispatchDate;
            model.DispatchID = dispatch.DispatchID;
            model.DriverName = dispatch.DriverName;
            model.DispatchedByStoreMan = dispatch.DispatchedByStoreMan;
            model.FDPID = dispatch.FDPID;
            model.GIN = dispatch.GIN;
            model.Month = dispatch.PeriodMonth;
            model.Year = dispatch.PeriodYear;
            model.PlateNo_Prime = dispatch.PlateNo_Prime;
            model.PlateNo_Trailer = dispatch.PlateNo_Trailer;
            model.RequisitionNo = dispatch.RequisitionNo;
            model.Type = dispatch.Type;
            //model.StackNumber = dispatch.StackNumber;
            //model.StoreID = dispatch.StoreID;
            model.TransporterID = dispatch.TransporterID;
            model.WarehouseID = dispatch.HubID;
            //model.ProgramID = dispatch.ProgramID;
            model.WeighBridgeTicketNumber = dispatch.WeighBridgeTicketNumber;
            model.Remark = dispatch.Remark;

            model.OtherDispatchAllocationID = dispatch.OtherDispatchAllocationID;
            model.DispatchAllocationID = dispatch.DispatchAllocationID;

            // model.ProjectNumber = dispatch.ProjectNumber;
            //model.SINumber = dispatch.SINumber;
            //TODO:Check modification have any impact
            Transaction transaction = transactionObj;// Repository.Dispatch.GetDispatchTransaction(dispatch.DispatchID);
            if (transaction != null)
            {
                if (transaction.Stack != null) model.StackNumber = transaction.Stack.Value;
                if (transaction.StoreID.HasValue) model.StoreID = transaction.StoreID.Value;
                model.ProgramID = transaction.ProgramID;
                //model.ProjectNumber = transaction.ProjectCode.Value;
                model.SINumber = transaction.ShippingInstruction.Value;
                model.CommodityTypeID = transaction.Commodity.CommodityTypeID;
            }
            model.DispatchDetails = DispatchDetailModel.GenerateDispatchDetailModels(dispatch.DispatchDetails);
            return model;
        }
Ejemplo n.º 12
0
        public bool RejectToHubs(Dispatch dispatch)
        {
            try
            {
                var despatchDetail = dispatch.DispatchDetails;
                if (despatchDetail!=null)
                {
                    var dispatchIds = new List<DispatchDetail>();
                    foreach (var dispatchD in despatchDetail)
                    {
                        var transactionGroupId = dispatchD.TransactionGroupID;
                        var transaction =
                            _unitOfWork.TransactionRepository.FindBy(t => t.TransactionGroupID == transactionGroupId).
                                ToList();
                        foreach (var items in transaction)
                        {
                            var newTransactionItem = GetNewTranaction(items);

                            if (items.LedgerID == Models.Ledger.Constants.GOODS_IN_TRANSIT)
                            {
                                newTransactionItem.QuantityInMT = -newTransactionItem.QuantityInMT;
                                newTransactionItem.QuantityInUnit = -newTransactionItem.QuantityInUnit;
                            }

                            if (items.LedgerID == Models.Ledger.Constants.GOODS_ON_HAND)
                            {
                                newTransactionItem.QuantityInMT = -newTransactionItem.QuantityInMT;
                                newTransactionItem.QuantityInUnit = -newTransactionItem.QuantityInUnit;
                            }

                            if (items.LedgerID == Models.Ledger.Constants.COMMITED_TO_FDP)
                            {
                                newTransactionItem.QuantityInMT = -newTransactionItem.QuantityInMT;
                                newTransactionItem.QuantityInUnit = -newTransactionItem.QuantityInUnit;
                            }
                            if (items.LedgerID == Models.Ledger.Constants.STATISTICS_FREE_STOCK)
                            {
                                newTransactionItem.QuantityInMT = -newTransactionItem.QuantityInMT;
                                newTransactionItem.QuantityInUnit = -newTransactionItem.QuantityInUnit;
                            }

                            _unitOfWork.TransactionRepository.Add(newTransactionItem);
                        } //tranaction

                        dispatchIds.Add(dispatchD);

                    }

                    foreach (var dispatchDetail in dispatchIds)
                    {
                        _unitOfWork.DispatchDetailRepository.Delete(dispatchDetail);
                    }
                    _unitOfWork.DispatchRepository.Delete(dispatch);
                }

                _unitOfWork.Save();
                return true;
            }
            catch (Exception)
            {

                return false;
            }
        }
Ejemplo n.º 13
0
 public ActionResult Edit(Dispatch dispatch)
 {
     if (ModelState.IsValid)
     {
         _dispatchService.EditDispatch(dispatch);
         return RedirectToAction("Index");
     }
     ViewBag.PeriodID = new SelectList(_periodService.GetAllPeriod(), "PeriodID", "PeriodID", _periodService.GetPeriod(dispatch.PeriodYear, dispatch.PeriodMonth).PeriodID);
     var user = _userProfileService.GetUser(User.Identity.Name);
     ViewBag.StoreID = new SelectList(_storeService.GetStoreByHub(user.DefaultHub.HubID), "StoreID", "Name");
     ViewBag.TransporterID = new SelectList(_transporterService.GetAllTransporter(), "TransporterID", "Name", dispatch.TransporterID);
     ViewBag.HubID = new SelectList(user.UserHubs, "HubID", "Name", dispatch.HubID);
     ViewBag.CommodityTypeID = new SelectList(_commodityTypeService.GetAllCommodityType(), "CommodityTypeID", "Name");
     return View(dispatch);
 }
Ejemplo n.º 14
0
 /// <summary>
 /// Gets the negative HUB Transaction.
 /// </summary>
 /// <param name="dispatchModel">The dispatch model.</param>
 /// <param name="dispatch">The dispatch.</param>
 /// <param name="detail">The detail.</param>
 /// <returns></returns>
 private Transaction GetStatisticsHUBTransaction(DispatchModel dispatchModel, Dispatch dispatch, DispatchDetailModel detail)
 {
     Transaction transaction = new Transaction();
     transaction.TransactionID = Guid.NewGuid();
     transaction.AccountID = _accountService.GetAccountIdWithCreate(Account.Constants.HUB, dispatch.HubID);
     transaction.ProgramID = dispatchModel.ProgramID;
     transaction.ParentCommodityID = detail.CommodityID;
     transaction.CommodityID = detail.CommodityID;
     transaction.HubID = dispatch.HubID;
     transaction.HubOwnerID = _unitOfWork.HubRepository.FindById(dispatch.HubID).HubOwnerID;
     transaction.LedgerID = Cats.Models.Ledger.Constants.STATISTICS_FREE_STOCK;
     transaction.QuantityInMT = -detail.DispatchedQuantityMT.Value;
     transaction.QuantityInUnit = -detail.DispatchedQuantity.Value;
     transaction.ShippingInstructionID = _shippingInstructionService.GetShipingInstructionId(dispatchModel.SINumber);
     //transaction.ProjectCodeID = _projectCodeService.GetProjectCodeId(dispatchModel.ProjectNumber);
     transaction.Stack = dispatchModel.StackNumber;
     transaction.StoreID = dispatchModel.StoreID;
     transaction.TransactionDate = DateTime.Now;
     transaction.UnitID = detail.Unit;
     return transaction;
 }
Ejemplo n.º 15
0
        private Transaction GetGoodsOnHandHUBTransaction(DispatchModel dispatchModel, Dispatch dispatch, DispatchDetailModel detail)
        {
            Transaction transaction2 = new Transaction();
            transaction2.TransactionID = Guid.NewGuid();
            transaction2.AccountID = _accountService.GetAccountIdWithCreate(Account.Constants.HUB, dispatchModel.ToHubID.Value);
            transaction2.ProgramID = dispatchModel.ProgramID;
            transaction2.ParentCommodityID = detail.CommodityID;
            transaction2.CommodityID = detail.CommodityID;
            transaction2.HubID = dispatch.HubID;
            transaction2.HubOwnerID = _unitOfWork.HubRepository.FindById(dispatch.HubID).HubOwnerID;
            transaction2.LedgerID = Cats.Models.Ledger.Constants.GOODS_ON_HAND; //Previously GOODS_ON_HAND_UNCOMMITED
            transaction2.QuantityInMT = -detail.DispatchedQuantityMT.Value;
            transaction2.QuantityInUnit = -detail.DispatchedQuantity.Value;
            transaction2.ShippingInstructionID = _shippingInstructionService.GetShipingInstructionId(dispatchModel.SINumber);

            transaction2.ProjectCodeID = _projectCodeService.GetProjectCodeId(dispatchModel.ProjectNumber);
            transaction2.Stack = dispatchModel.StackNumber;
            transaction2.StoreID = dispatchModel.StoreID;
            transaction2.TransactionDate = DateTime.Now;
            transaction2.UnitID = detail.Unit;
            return transaction2;
        }
Ejemplo n.º 16
0
 private Transaction GetCommitedToFDPTransaction(DispatchModel dispatchModel, Dispatch dispatch, DispatchDetailModel detail)
 {
     Transaction transaction = new Transaction();
     transaction.TransactionID = Guid.NewGuid();
     transaction.AccountID = _accountService.GetAccountIdWithCreate(Account.Constants.FDP, dispatch.FDPID.Value);
     transaction.ProgramID = dispatchModel.ProgramID;
     transaction.ParentCommodityID = detail.CommodityID;
     transaction.CommodityID = detail.CommodityID;
     transaction.HubID = dispatch.HubID;
     transaction.HubOwnerID = _unitOfWork.HubRepository.FindById(dispatch.HubID).HubOwnerID;
     transaction.LedgerID = Cats.Models.Ledger.Constants.COMMITED_TO_FDP;
     transaction.QuantityInMT = +detail.DispatchedQuantityMT.Value;
     transaction.QuantityInUnit = +detail.DispatchedQuantity.Value;
     transaction.ShippingInstructionID = _shippingInstructionService.GetShipingInstructionId(dispatchModel.SINumber);
     transaction.ProjectCodeID = _projectCodeService.GetProjectCodeId(dispatchModel.ProjectNumber);
     transaction.Stack = dispatchModel.StackNumber;
     transaction.StoreID = dispatchModel.StoreID;
     transaction.TransactionDate = DateTime.Now;
     transaction.UnitID = detail.Unit;
     return transaction;
 }
Ejemplo n.º 17
0
        public void SaveDispatchTransaction(DispatchViewModel dispatchViewModel, Boolean reverse=false)
        {
            int transactionsign = reverse ? -1 : 1;
            Dispatch dispatch;
            if (dispatchViewModel.DispatchID != null)
                dispatch = _unitOfWork.DispatchRepository.FindById(dispatchViewModel.DispatchID.GetValueOrDefault());
            else
            {
                dispatch = new Dispatch();
                dispatch.DispatchID = Guid.NewGuid();
            }

            dispatch.BidNumber = dispatchViewModel.BidNumber;
                dispatch.CreatedDate = dispatchViewModel.CreatedDate;
                dispatch.DispatchAllocationID = dispatchViewModel.DispatchAllocationID;
                dispatch.DispatchDate = dispatchViewModel.DispatchDate;

                dispatch.DispatchedByStoreMan = dispatchViewModel.DispatchedByStoreMan;
                dispatch.DriverName = dispatchViewModel.DriverName;
                dispatch.FDPID = dispatchViewModel.FDPID;
                dispatch.GIN = dispatchViewModel.GIN;
                dispatch.HubID = dispatchViewModel.HubID;
                dispatch.PeriodMonth = dispatchViewModel.Month;
                dispatch.PeriodYear = dispatchViewModel.Year;
                dispatch.PlateNo_Prime = dispatchViewModel.PlateNo_Prime;
                dispatch.PlateNo_Trailer = dispatchViewModel.PlateNo_Trailer;
                dispatch.Remark = dispatchViewModel.Remark;
                dispatch.RequisitionNo = dispatchViewModel.RequisitionNo;
                dispatch.Round = dispatchViewModel.Round;
                dispatch.TransporterID = dispatchViewModel.TransporterID;
                dispatch.UserProfileID = dispatchViewModel.UserProfileID;
            dispatch.WeighBridgeTicketNumber = dispatchViewModel.WeighBridgeTicketNumber;

            //dispatch.Type = dispatchViewModel.Type;

            var group = new TransactionGroup();
            group.TransactionGroupID = Guid.NewGuid();

            var dispatchDetail = new DispatchDetail
            {
                DispatchID = dispatch.DispatchID,
                CommodityID = dispatchViewModel.CommodityID,
                CommodityChildID=dispatchViewModel.CommodityChildID,
                Description = dispatchViewModel.Commodity,
                DispatchDetailID = Guid.NewGuid(),
                RequestedQuantityInMT = dispatchViewModel.Quantity,
                RequestedQunatityInUnit = dispatchViewModel.QuantityInUnit,
                QuantityPerUnit = dispatchViewModel.QuantityPerUnit,

                UnitID = dispatchViewModel.UnitID,
                TransactionGroupID = @group.TransactionGroupID
            };

            //var parentCommodityId =
            //    _unitOfWork.CommodityRepository.FindById(dispatchViewModel.CommodityChildID).ParentID ??
            //    dispatchViewModel.CommodityID;
            // Physical movement of stock
            var transactionInTransit = new Transaction
            {
                TransactionID = Guid.NewGuid(),
                AccountID = _accountService.GetAccountIdWithCreate(Account.Constants.FDP, dispatchViewModel.FDPID),
                ProgramID = dispatchViewModel.ProgramID,
                ParentCommodityID = null,
                CommodityID = dispatchViewModel.CommodityID,
                CommodityChildID = dispatchViewModel.CommodityChildID,
                FDPID = dispatchViewModel.FDPID,
                HubID = dispatchViewModel.HubID,
                HubOwnerID = _unitOfWork.HubRepository.FindById(dispatchViewModel.HubID).HubOwnerID,
                LedgerID = Models.Ledger.Constants.GOODS_IN_TRANSIT,
                QuantityInMT = transactionsign * (+ dispatchViewModel.Quantity),
                QuantityInUnit = transactionsign * (+dispatchViewModel.QuantityInUnit),
                ShippingInstructionID = dispatchViewModel.ShippingInstructionID,
                ProjectCodeID = dispatchViewModel.ProjectCodeID,
                Round = dispatchViewModel.Round,
                PlanId = dispatchViewModel.PlanId,
                TransactionDate = DateTime.Now,
                UnitID = dispatchViewModel.UnitID,
                TransactionGroupID = @group.TransactionGroupID
            };
            //transaction2.Stack = dispatchModel.StackNumber;
            //transaction2.StoreID = dispatchModel.StoreID;
            //group.Transactions.Add(transaction2);

            var transactionGoh = new Transaction
            {
                TransactionID = Guid.NewGuid(),
                AccountID = _accountService.GetAccountIdWithCreate(Account.Constants.FDP, dispatchViewModel.FDPID),
                ProgramID = dispatchViewModel.ProgramID,
                ParentCommodityID = null,
                CommodityID = dispatchViewModel.CommodityID,
                CommodityChildID = dispatchViewModel.CommodityChildID,
                FDPID = dispatchViewModel.FDPID,
                HubID = dispatchViewModel.HubID,
                HubOwnerID = _unitOfWork.HubRepository.FindById(dispatchViewModel.HubID).HubOwnerID,
                LedgerID = Models.Ledger.Constants.GOODS_ON_HAND,
                QuantityInMT = transactionsign * (-dispatchViewModel.Quantity),
                QuantityInUnit = transactionsign * (-dispatchViewModel.QuantityInUnit),
                ShippingInstructionID = dispatchViewModel.ShippingInstructionID,
                ProjectCodeID = dispatchViewModel.ProjectCodeID,
                Round = dispatchViewModel.Round,
                PlanId = dispatchViewModel.PlanId,
                TransactionDate = DateTime.Now,
                UnitID = dispatchViewModel.UnitID,
                TransactionGroupID = @group.TransactionGroupID
            };
            //transaction.Stack = dispatch.StackNumber;
            //transaction.StoreID = dispatch.StoreID;

            // plan side of the transaction (Red Border)

            var transactionComitedToFdp = new Transaction
            {
                TransactionID = Guid.NewGuid(),
                AccountID = _accountService.GetAccountIdWithCreate(Account.Constants.FDP, dispatchViewModel.FDPID),
                ProgramID = dispatchViewModel.ProgramID,
                ParentCommodityID = null,
                CommodityID = dispatchViewModel.CommodityID,
                CommodityChildID = dispatchViewModel.CommodityChildID,
                FDPID = dispatchViewModel.FDPID,
                HubID = dispatchViewModel.HubID,
                HubOwnerID = _unitOfWork.HubRepository.FindById(dispatchViewModel.HubID).HubOwnerID,
                LedgerID = Models.Ledger.Constants.COMMITED_TO_FDP,
                QuantityInMT = transactionsign * (+dispatchViewModel.Quantity),
                QuantityInUnit = transactionsign * (+dispatchViewModel.QuantityInUnit),
                ShippingInstructionID = dispatchViewModel.ShippingInstructionID,
                ProjectCodeID = dispatchViewModel.ProjectCodeID,
                Round = dispatchViewModel.Round,
                PlanId = dispatchViewModel.PlanId,
                TransactionDate = DateTime.Now,
                UnitID = dispatchViewModel.UnitID,
                TransactionGroupID = @group.TransactionGroupID
            };
            //transaction2.Stack = dispatchModel.StackNumber;
            //transaction2.StoreID = dispatchModel.StoreID;
            //group.Transactions.Add(transaction2);

            var transactionInTansitFreeStock = new Transaction
            {
                TransactionID = Guid.NewGuid(),
                AccountID = _accountService.GetAccountIdWithCreate(Account.Constants.FDP, dispatchViewModel.FDPID),
                ProgramID = dispatchViewModel.ProgramID,
                ParentCommodityID = null,
                CommodityID = dispatchViewModel.CommodityID,
                CommodityChildID = dispatchViewModel.CommodityChildID,
                FDPID = dispatchViewModel.FDPID,
                HubID = dispatchViewModel.HubID,
                HubOwnerID = _unitOfWork.HubRepository.FindById(dispatchViewModel.HubID).HubOwnerID,
                LedgerID = Cats.Models.Ledger.Constants.STATISTICS_FREE_STOCK,
                QuantityInMT = transactionsign * (-dispatchViewModel.Quantity),
                QuantityInUnit = transactionsign * (-dispatchViewModel.QuantityInUnit),
                ShippingInstructionID = dispatchViewModel.ShippingInstructionID,
                ProjectCodeID = dispatchViewModel.ProjectCodeID,
                Round = dispatchViewModel.Round,
                PlanId = dispatchViewModel.PlanId,
                TransactionDate = DateTime.Now,
                UnitID = dispatchViewModel.UnitID,
                TransactionGroupID = @group.TransactionGroupID
            };
            //transaction.Stack = dispatch.StackNumber;
            //transaction.StoreID = dispatch.StoreID;
            dispatch.DispatchDetails.Clear();
            dispatch.DispatchDetails.Add(dispatchDetail);

            try
            {
                _unitOfWork.TransactionGroupRepository.Add(group);
                _unitOfWork.TransactionRepository.Add(transactionInTransit);
                _unitOfWork.TransactionRepository.Add(transactionGoh);
                _unitOfWork.TransactionRepository.Add(transactionInTansitFreeStock);
                _unitOfWork.TransactionRepository.Add(transactionComitedToFdp);
                if (!reverse)
                {
                    if (dispatchViewModel.DispatchID == null)
                    {
                        _unitOfWork.DispatchRepository.Add(dispatch);
                    }

                    else
                    {
                        _unitOfWork.DispatchRepository.Edit(dispatch);
                    }
                }

            _unitOfWork.Save();

            }

            catch (Exception exp)
            {
                // dbTransaction.Rollback();
                //TODO: Save the detail of this exception somewhere
                throw new Exception("The Dispatch Transaction Cannot be saved. <br />Detail Message :" + exp.Message);
            }
        }
Ejemplo n.º 18
0
        public void SaveDispatchTransaction(DispatchViewModel dispatchViewModel)
        {
            var dispatch = new Dispatch();
            dispatch.BidNumber = dispatchViewModel.BidNumber;
            dispatch.CreatedDate = dispatchViewModel.CreatedDate;
            dispatch.DispatchAllocationID = dispatchViewModel.DispatchAllocationID;
            dispatch.DispatchDate = dispatchViewModel.DispatchDate;
            dispatch.DispatchID = Guid.NewGuid();
            dispatch.DispatchedByStoreMan = dispatchViewModel.DispatchedByStoreMan;
            dispatch.DriverName = dispatchViewModel.DriverName;
            dispatch.FDPID = dispatchViewModel.FDPID;
            dispatch.GIN = dispatchViewModel.GIN;
            dispatch.HubID = dispatchViewModel.HubID;
            dispatch.PeriodMonth = dispatchViewModel.Month;
            dispatch.PeriodYear = dispatchViewModel.Year;
            dispatch.PlateNo_Prime = dispatchViewModel.PlateNo_Prime;
            dispatch.PlateNo_Trailer = dispatchViewModel.PlateNo_Trailer;
            dispatch.Remark = dispatchViewModel.Remark;
            dispatch.RequisitionNo = dispatchViewModel.RequisitionNo;
            dispatch.Round = dispatchViewModel.Round;

            dispatch.TransporterID = dispatchViewModel.TransporterID;
            //dispatch.Type = dispatchViewModel.Type;
            dispatch.UserProfileID = dispatchViewModel.UserProfileID;
            dispatch.WeighBridgeTicketNumber = dispatchViewModel.WeighBridgeTicketNumber;

            TransactionGroup group = new TransactionGroup();
            group.TransactionGroupID = Guid.NewGuid();

            DispatchDetail dispatchDetail = new DispatchDetail();
            dispatchDetail.DispatchID = dispatch.DispatchID;
            dispatchDetail.CommodityID = dispatchViewModel.CommodityID;
            dispatchDetail.Description = dispatchViewModel.Commodity;
            dispatchDetail.DispatchDetailID = Guid.NewGuid();
            dispatchDetail.RequestedQuantityInMT = dispatchViewModel.Quantity;
            dispatchDetail.RequestedQunatityInUnit = dispatchViewModel.QuantityInUnit;
            dispatchDetail.QuantityPerUnit = dispatchViewModel.QuantityPerUnit;
            dispatchDetail.UnitID = dispatchViewModel.UnitID;
            dispatchDetail.TransactionGroupID = group.TransactionGroupID;

                //if (dispatchViewModel.Type == 1)
                //{
                    Transaction transaction2 = new Transaction();
                    transaction2.TransactionID = Guid.NewGuid();
                    transaction2.AccountID = _accountService.GetAccountIdWithCreate(Account.Constants.FDP, dispatchViewModel.FDPID);
                    transaction2.ProgramID = dispatchViewModel.ProgramID;
                    transaction2.ParentCommodityID = dispatchViewModel.CommodityID;
                    transaction2.CommodityID = dispatchViewModel.CommodityID;
                    transaction2.HubID = dispatchViewModel.HubID;
                    transaction2.HubOwnerID = _unitOfWork.HubRepository.FindById(dispatchViewModel.HubID).HubOwnerID;
                    transaction2.LedgerID = Ledger.Constants.GOODS_IN_TRANSIT;
                    transaction2.QuantityInMT = +dispatchViewModel.Quantity;
                    transaction2.QuantityInUnit = +dispatchViewModel.QuantityInUnit;
                    transaction2.ShippingInstructionID = dispatchViewModel.ShippingInstructionID;
                    transaction2.ProjectCodeID = dispatchViewModel.ProjectCodeID;
                    transaction2.Round = dispatchViewModel.Round;
                    transaction2.PlanId = dispatchViewModel.PlanId;
                    //transaction2.Stack = dispatchModel.StackNumber;
                    //transaction2.StoreID = dispatchModel.StoreID;
                    transaction2.TransactionDate = DateTime.Now;
                    transaction2.UnitID = dispatchViewModel.UnitID;
                    transaction2.TransactionGroupID = group.TransactionGroupID;
                    //group.Transactions.Add(transaction2);

                    Transaction transaction = new Transaction();
                    transaction.TransactionID = Guid.NewGuid();
                    transaction.AccountID = _accountService.GetAccountIdWithCreate(Account.Constants.FDP, dispatchViewModel.FDPID);
                    transaction.ProgramID = dispatchViewModel.ProgramID;
                    transaction.ParentCommodityID = dispatchViewModel.CommodityID;
                    transaction.CommodityID = dispatchViewModel.CommodityID;
                    transaction.HubID = dispatchViewModel.HubID;
                    transaction.HubOwnerID = _unitOfWork.HubRepository.FindById(dispatchViewModel.HubID).HubOwnerID;
                    transaction.LedgerID = Ledger.Constants.GOODS_ON_HAND_UNCOMMITED;
                    transaction.QuantityInMT = -dispatchViewModel.Quantity;
                    transaction.QuantityInUnit = -dispatchViewModel.QuantityInUnit;
                    transaction.ShippingInstructionID = dispatchViewModel.ShippingInstructionID;
                    transaction.ProjectCodeID = dispatchViewModel.ProjectCodeID;
                    transaction.Round = dispatchViewModel.Round;
                    transaction.PlanId = dispatchViewModel.PlanId;
                    //transaction.Stack = dispatch.StackNumber;
                    //transaction.StoreID = dispatch.StoreID;
                    transaction.TransactionDate = DateTime.Now;
                    transaction.UnitID = dispatchViewModel.UnitID;
                    transaction.TransactionGroupID = group.TransactionGroupID;

                    // group.Transactions.Add(transaction);
               // }
                //else
                //{
                //    Transaction transaction2 = GetPositiveHUBTransaction(dispatchModel, dispatch, detail);
                //    group.Transactions.Add(transaction2);

                //    Transaction transaction = GetNegativeHUBTransaction(dispatchModel, dispatch, detail);
                //    group.Transactions.Add(transaction);
                //}

                dispatch.DispatchDetails.Add(dispatchDetail);

               // }
            // Try to save this transaction
            //    db.Database.Connection.Open();
            //  DbTransaction dbTransaction = db.Database.Connection.BeginTransaction();
            try
            {
                _unitOfWork.TransactionGroupRepository.Add(group);
                _unitOfWork.TransactionRepository.Add(transaction2);
                _unitOfWork.TransactionRepository.Add(transaction);
                _unitOfWork.DispatchRepository.Add(dispatch);
                _unitOfWork.Save();
                //repository.Dispatch.Add(dispatch);
                //dbTransaction.Commit();
            }

            catch (Exception exp)
            {
                // dbTransaction.Rollback();
                //TODO: Save the detail of this exception somewhere
                throw new Exception("The Dispatch Transaction Cannot be saved. <br />Detail Message :" + exp.Message);
            }

            //if (dispatchViewModel.Type == 1)
            //{
            //    string sms = dispatchViewModel.GetSMSText();
            //    SMS.SendSMS(dispatchViewModel.FDPID.Value, sms);
            //}
        }