public bool AddDispatch(Dispatch dispatch) { _unitOfWork.DispatchRepository.Add(dispatch); _unitOfWork.Save(); return true; }
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); }
/// <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); }
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; }
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; }
public bool EditDispatch(Dispatch dispatch) { _unitOfWork.DispatchRepository.Edit(dispatch); _unitOfWork.Save(); return true; }
public bool DeleteDispatch(Dispatch dispatch) { if (dispatch == null) return false; _unitOfWork.DispatchRepository.Delete(dispatch); _unitOfWork.Save(); return true; }
/// <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); }
/// <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; }
//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; }
/// <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; }
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; } }
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); }
/// <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; }
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; }
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; }
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); } }
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); //} }