public DispatchViewModel CreateDispatchFromDispatchAllocation(Guid dispatchAllocationId,decimal quantityInUnit) { var dispatchAllocation = _unitOfWork.DispatchAllocationRepository.FindById(dispatchAllocationId); var dispatch = new DispatchViewModel(); dispatch.BidNumber = dispatchAllocation.BidRefNo; dispatch.CreatedDate = DateTime.Today; dispatch.DispatchAllocationID = dispatchAllocation.DispatchAllocationID; dispatch.DispatchDate = DateTime.Today; //dispatch.DispatchID = Guid.NewGuid(); dispatch.DispatchedByStoreMan = string.Empty; dispatch.DriverName = string.Empty; dispatch.FDPID = dispatchAllocation.FDPID; dispatch.GIN = string.Empty; dispatch.HubID = dispatchAllocation.HubID; if(dispatchAllocation.ProgramID.HasValue) dispatch.ProgramID = dispatchAllocation.ProgramID.Value; if (dispatchAllocation.Month.HasValue) dispatch.Month = dispatchAllocation.Month.Value; if (dispatchAllocation.Year.HasValue) dispatch.Year = dispatchAllocation.Year.Value; dispatch.PlateNo_Prime = string.Empty; dispatch.PlateNo_Trailer = string.Empty; dispatch.Remark = string.Empty; dispatch.RequisitionNo = dispatchAllocation.RequisitionNo; dispatch.RequisitionId = dispatchAllocation.RequisitionId; dispatch.ProgramID = dispatchAllocation.ProgramID.HasValue?dispatchAllocation.ProgramID.Value:0; if (dispatchAllocation.Round.HasValue) dispatch.Round = dispatchAllocation.Round.Value; if (dispatchAllocation.TransporterID.HasValue) dispatch.TransporterID = dispatchAllocation.TransporterID.Value; dispatch.WeighBridgeTicketNumber = string.Empty; // Dispatch dispatchDetail = new DispatchDetail(); var parentCommodityId = _unitOfWork.CommodityRepository.FindById(dispatchAllocation.CommodityID).ParentID ?? dispatchAllocation.CommodityID; dispatch.CommodityID = parentCommodityId; dispatch.CommodityChildID = dispatchAllocation.CommodityID; dispatch.Commodity = dispatchAllocation.Commodity.Name; //dispatch.DispatchDetailID = Guid.NewGuid(); dispatch.DispatchID = dispatch.DispatchID; dispatch.Quantity = 0; dispatch.QuantityInUnit = 0; dispatch.UnitID = dispatchAllocation.Unit; dispatch.ShippingInstructionID = dispatchAllocation.ShippingInstructionID; dispatch.ProjectCodeID = dispatchAllocation.ProjectCodeID; // dispatch.PartitionId = 0; //dispatch.DispatchDetails.Add(dispatchDetail); dispatch.plannedAmount = dispatchAllocation.Amount; 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 List<DispatchViewModel> MapDispatchToDispatchViewModel(List<Dispatch> dispatches ) { List< DispatchViewModel> dispatchViewModels=new List<DispatchViewModel>(); foreach (var dispatch in dispatches) { var id1 = dispatch.DispatchAllocationID.Value; var dispatchAllocation = _unitOfWork.DispatchAllocationRepository.Get(t=>t.DispatchAllocationID==id1,null,"Program").FirstOrDefault(); var dispatchViewModel = new DispatchViewModel(); dispatchViewModel.BidNumber = dispatch.BidNumber; dispatchViewModel.CreatedDate = dispatch.CreatedDate; dispatchViewModel.DispatchAllocationID = dispatch.DispatchAllocationID.Value; dispatchViewModel.DispatchDate = dispatch.DispatchDate; dispatchViewModel.DispatchID = dispatch.DispatchID; dispatchViewModel.DispatchedByStoreMan = dispatch.DispatchedByStoreMan; dispatchViewModel.DriverName = string.Empty; if(dispatch.FDPID.HasValue) dispatchViewModel.FDPID = dispatch.FDPID.Value; dispatchViewModel.FDP = dispatch.FDP.Name; dispatchViewModel.Region = dispatch.FDP.AdminUnit.AdminUnit2.AdminUnit2.Name; dispatchViewModel.Zone = dispatch.FDP.AdminUnit.AdminUnit2.Name; dispatchViewModel.Woreda = dispatch.FDP.AdminUnit.Name; dispatchViewModel.GIN = dispatch.GIN; dispatchViewModel.HubID = dispatch.HubID; // dispatch.ProgramID = dispatchAllocation.ProgramID; dispatchViewModel.Program = dispatchAllocation.Program.Name; dispatchViewModel.Month = dispatch.PeriodMonth; dispatchViewModel.Year = dispatch.PeriodYear; dispatchViewModel.PlateNo_Prime = dispatch.PlateNo_Prime; dispatchViewModel.PlateNo_Trailer = dispatch.PlateNo_Trailer; dispatchViewModel.Remark = dispatch.Remark; dispatchViewModel.RequisitionNo = dispatch.RequisitionNo; dispatchViewModel.ProgramID = dispatchAllocation.ProgramID.HasValue ? dispatchAllocation.ProgramID.Value : 0; dispatchViewModel.Round = dispatch.Round; dispatchViewModel.TransporterID = dispatch.TransporterID; dispatchViewModel.WeighBridgeTicketNumber = dispatch.WeighBridgeTicketNumber; var dispatchDetail = dispatch.DispatchDetails.FirstOrDefault(); dispatchViewModel.CommodityID = dispatchDetail.CommodityID; dispatchViewModel.Commodity = dispatchDetail.Commodity.Name; //dispatch.DispatchDetailID = Guid.NewGuid(); dispatchViewModel.DispatchID = dispatchDetail.DispatchID; dispatchViewModel.Quantity = dispatchDetail.RequestedQuantityInMT; dispatchViewModel.QuantityInUnit = dispatchDetail.RequestedQunatityInUnit; dispatchViewModel.UnitID = dispatchDetail.UnitID; dispatchViewModel.ShippingInstructionID = dispatchAllocation.ShippingInstructionID; dispatchViewModel.ProjectCodeID = dispatchAllocation.ProjectCodeID; dispatchViewModels.Add(dispatchViewModel); } return dispatchViewModels; }
public ActionResult CreateDispatch(DispatchViewModel dispatchviewmodel) { ViewBag.UnitID = new SelectList(_unitService.GetAllUnit(), "UnitID", "Name", dispatchviewmodel.UnitID); if (ModelState.IsValid) { var reliefReq = _reliefRequisitionService.FindBy(n => n.RequisitionID == dispatchviewmodel.RequisitionId). FirstOrDefault(); DispatchViewModel dispatch = _dispatchService.CreateDispatchFromDispatchAllocation(dispatchviewmodel.DispatchAllocationID, 0); if (reliefReq != null) dispatch.PlanId = reliefReq.RegionalRequest.PlanID; dispatch.UserProfileID = dispatchviewmodel.UserProfileID; dispatch.PlateNo_Prime = dispatchviewmodel.PlateNo_Prime; dispatch.PlateNo_Trailer = dispatchviewmodel.PlateNo_Trailer; dispatch.GIN = dispatchviewmodel.GIN; dispatch.DispatchDate = dispatchviewmodel.DispatchDate; dispatch.DispatchedByStoreMan = dispatchviewmodel.DispatchedByStoreMan; dispatch.WeighBridgeTicketNumber = dispatchviewmodel.WeighBridgeTicketNumber; dispatch.DriverName = dispatchviewmodel.DriverName; dispatch.Remark = dispatchviewmodel.Remark; dispatch.UnitID = dispatchviewmodel.UnitID; dispatch.QuantityInUnit = dispatchviewmodel.QuantityInUnit; dispatch.QuantityPerUnit = dispatchviewmodel.QuantityPerUnit; dispatch.FDP = dispatchviewmodel.FDP; dispatch.Transporter = dispatchviewmodel.Transporter; dispatch.HubID = dispatchviewmodel.HubID; dispatch.RequisitionId = dispatchviewmodel.RequisitionId; dispatch.Quantity = UserProfile.PreferedWeightMeasurment.ToLower() == "mt" ? dispatchviewmodel.Quantity : dispatchviewmodel.Quantity / 10; _transactionService.SaveDispatchTransaction(dispatch); var contacts = _contactService.FindBy(c => c.FDPID == dispatch.FDPID); foreach (var contact in contacts) { var hub = _hubService.FindById(dispatch.HubID).Name; var message = new SmsOutgoingMessage() { //id = Guid.NewGuid().ToString(), to = contact.PhoneNo, message = "Hello," + contact.FirstName + " There is a new dispatch with GIN " + dispatch.GIN + " from " + hub + " hub. COMMODITY: " + dispatch.Commodity + " QUT: " + dispatch.Quantity + " MT." + "Transporter: '" + dispatch.Transporter + "' Plate No.: " + dispatch.PlateNo_Prime + "-" + dispatch.PlateNo_Trailer + " Date: " + DateTime.Today.ToShortDateString(), }; var sms = new SMS() { MobileNumber = contact.PhoneNo, Text = "Hello," + contact.FirstName + " There is a new dispatch with GIN " + dispatch.GIN + " from " + hub + " hub. COMMODITY: " + dispatch.Commodity + " QUT: " + dispatch.Quantity + " MT." + "Transporter: '" + dispatch.Transporter + "' Plate No.: " + dispatch.PlateNo_Prime + "-" + dispatch.PlateNo_Trailer + " Date: " + DateTime.Today.ToShortDateString(), Status = 1, InOutInd = "O", }; _smsService.AddSMS(sms); //var result = _smsGatewayService.SendSMS(message); } return RedirectToAction("Index", "Dispatch"); } return View(dispatchviewmodel); }
public List<DispatchViewModel> GetAllTransportersWithoutGrn() { var dispatchAllocationIds = _unitOfWork.DispatchAllocationRepository.GetAll().Select(t => t.DispatchAllocationID).ToList(); var dispatches = _unitOfWork.DispatchRepository.Get(t => dispatchAllocationIds.Contains(t.DispatchAllocationID.Value), null, "DispatchDetails") .ToList(); List<DispatchViewModel> dispatchViewModels = new List<DispatchViewModel>(); foreach (var dispatch in dispatches) { var dispatchViewModel = new DispatchViewModel(); dispatchViewModel.DispatchID = dispatch.DispatchID; dispatchViewModel.DispatchDate = dispatch.DispatchDate; dispatchViewModel.Transporter = dispatch.Transporter.Name; dispatchViewModel.BidNumber = dispatch.BidNumber; dispatchViewModel.FDP = dispatch.FDP.Name; dispatchViewModels.Add(dispatchViewModel); } return dispatchViewModels; }
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); //} }
public ActionResult CreateDispatch(DispatchViewModel dispatchviewmodel) { ViewBag.UnitID = new SelectList(_unitService.GetAllUnit(), "UnitID", "Name", dispatchviewmodel.UnitID); if (ModelState.IsValid) { var reliefReq = _reliefRequisitionService.FindBy(n => n.RequisitionID == dispatchviewmodel.RequisitionId). FirstOrDefault(); DispatchViewModel dispatch = _dispatchService.CreateDispatchFromDispatchAllocation(dispatchviewmodel.DispatchAllocationID, 0); if (reliefReq != null) dispatch.PlanId = reliefReq.RegionalRequest.PlanID; dispatch.UserProfileID = dispatchviewmodel.UserProfileID; dispatch.PlateNo_Prime = dispatchviewmodel.PlateNo_Prime; dispatch.PlateNo_Trailer = dispatchviewmodel.PlateNo_Trailer; dispatch.GIN = dispatchviewmodel.GIN; dispatch.DispatchDate = dispatchviewmodel.DispatchDate; dispatch.DispatchedByStoreMan = dispatchviewmodel.DispatchedByStoreMan; dispatch.WeighBridgeTicketNumber = dispatchviewmodel.WeighBridgeTicketNumber; dispatch.DriverName = dispatchviewmodel.DriverName; dispatch.Remark = dispatchviewmodel.Remark; dispatch.UnitID = dispatchviewmodel.UnitID; dispatch.QuantityInUnit = dispatchviewmodel.QuantityInUnit; dispatch.QuantityPerUnit = dispatchviewmodel.QuantityPerUnit; dispatch.Quantity = dispatchviewmodel.QuantityPerUnit.GetValueOrDefault()/10; dispatch.FDP = dispatchviewmodel.FDP; dispatch.Transporter = dispatchviewmodel.Transporter; dispatch.HubID = dispatchviewmodel.HubID; dispatch.RequisitionId = dispatchviewmodel.RequisitionId; dispatch.DispatchID = dispatchviewmodel.DispatchID; dispatch.CommodityID = dispatchviewmodel.CommodityID; dispatch.CommodityChildID = dispatchviewmodel.CommodityChildID; //dispatch.Quantity = UserProfile.PreferedWeightMeasurment.ToLower() == "mt" ? dispatchviewmodel.Quantity : dispatchviewmodel.Quantity / 10; //if its being edited reverse previous transaction before saving the new one; var prevdispatch = _dispatchService.FindById(dispatchviewmodel.DispatchID.GetValueOrDefault()); if (prevdispatch != null) { var prevdispatchdetail = prevdispatch.DispatchDetails.FirstOrDefault(); _transactionService.SaveDispatchTransaction( new DispatchViewModel { CommodityID = prevdispatchdetail.CommodityID, Quantity = prevdispatchdetail.DispatchedQuantityInMT, QuantityInUnit = prevdispatchdetail.DispatchedQuantityInUnit, ShippingInstructionID = dispatchviewmodel.ShippingInstructionID, ProjectCodeID = dispatchviewmodel.ProjectCodeID, PlanId = dispatchviewmodel.PlanId, UnitID = dispatchviewmodel.UnitID, BidNumber = prevdispatch.BidNumber, CreatedDate = prevdispatch.CreatedDate, DispatchAllocationID = prevdispatch.DispatchAllocationID.GetValueOrDefault(), DispatchDate = prevdispatch.DispatchDate, DispatchID = prevdispatch.DispatchID, DispatchedByStoreMan = prevdispatch.DispatchedByStoreMan, DriverName = prevdispatch.DriverName, FDPID = prevdispatch.FDPID.GetValueOrDefault(), ProgramID = dispatchviewmodel.ProgramID, GIN = prevdispatch.GIN, HubID = prevdispatch.HubID, Month = prevdispatch.PeriodMonth, Year = prevdispatch.PeriodYear, PlateNo_Prime = prevdispatch.PlateNo_Prime, PlateNo_Trailer = prevdispatch.PlateNo_Trailer, Remark = prevdispatch.Remark, RequisitionNo = prevdispatch.RequisitionNo, Round = prevdispatch.Round, TransporterID = prevdispatch.TransporterID, UserProfileID = prevdispatch.UserProfileID, WeighBridgeTicketNumber = prevdispatch.WeighBridgeTicketNumber }, true); } _transactionService.SaveDispatchTransaction(dispatch); var contacts = _contactService.FindBy(c => c.FDPID == dispatch.FDPID); if (_dispatchService.FindByAllocationId(dispatchviewmodel.DispatchAllocationID)==null) { DispatchAllocation totalAllocated = _dispatchAllocationService.FindById(dispatchviewmodel.DispatchAllocationID); foreach (var contact in contacts) { var hub = _hubService.FindById(dispatch.HubID).Name; var sms = new SMS() { MobileNumber = contact.PhoneNo, Text = "Hello," + contact.FirstName + " There is a new dispatch from " + hub + " hub. COMMODITY: " + dispatch.Commodity + " QUT: " + totalAllocated.Amount + " MT." + "Strarting from:" + DateTime.Today.ToShortDateString(), Status = 1, InOutInd = "O", }; _smsService.AddSMS(sms); //var result = _smsGatewayService.SendSMS(message); } /* foreach (var contact in contacts) { var hub = _hubService.FindById(dispatch.HubID).Name; var message = new SmsOutgoingMessage() { //id = Guid.NewGuid().ToString(), to = contact.PhoneNo, message = "Hello," + contact.FirstName + " There is a new dispatch with GIN " + dispatch.GIN + " from " + hub + " hub. COMMODITY: " + dispatch.Commodity + " QUT: " + dispatch.Quantity + " MT." + "Transporter: '" + dispatch.Transporter + "' Plate No.: " + dispatch.PlateNo_Prime + "-" + dispatch.PlateNo_Trailer + " Date: " + DateTime.Today.ToShortDateString(), }; var sms = new SMS() { MobileNumber = contact.PhoneNo, Text = "Hello," + contact.FirstName + " There is a new dispatch with GIN " + dispatch.GIN + " from " + hub + " hub. COMMODITY: " + dispatch.Commodity + " QUT: " + dispatch.Quantity + " MT." + "Transporter: '" + dispatch.Transporter + "' Plate No.: " + dispatch.PlateNo_Prime + "-" + dispatch.PlateNo_Trailer + " Date: " + DateTime.Today.ToShortDateString(), Status = 1, InOutInd = "O", }; _smsService.AddSMS(sms); //var result = _smsGatewayService.SendSMS(message); } * */ } return RedirectToAction("Index", "Dispatch"); } return View(dispatchviewmodel); }