public void GeneratePO(Product prod, int week, int year, PurchaseOrderType pot, int repositionpoint) { PurchaseOrderStatus pos = PurchaseOrderStatus.Open; // Busco si ya existe una orden de compra abierta para este proveedor PurchaseOrder po = GetPurchaseOrder(prod.Provider, pot, pos); PurchaseOrderItem poi = new PurchaseOrderItem(); poi.PurchaseOrder = po; poi.Product = prod; poi.Forecast = ControllerManager.Forecast.GetProductInfo(prod, Config.CurrentWeek + 1, Config.CurrentDate.Year); if (pot == PurchaseOrderType.Forecast) { poi.QuantitySuggested = poi.Forecast.QuantitySuggested; poi.Quantity = poi.Forecast.QuantitySuggested; } else if (pot == PurchaseOrderType.Manual) { poi.QuantitySuggested = repositionpoint; poi.Quantity = repositionpoint; } po.PurchaseOrderItems.Add(poi); this.Save(po); }
public PurchaseOrder(OrderNo orderNo, Supplier supplier) { OrderNo = orderNo ?? throw new ArgumentNullException(nameof(orderNo)); Supplier = supplier ?? throw new ArgumentNullException(nameof(supplier)); Status = new PurchaseOrderStatus(); }
public IHttpActionResult PutPurchaseOrderStatus(int id, PurchaseOrderStatus purchaseOrderStatus) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != purchaseOrderStatus.PurchaseOrderStatusId) { return(BadRequest()); } db.Entry(purchaseOrderStatus).State = EntityState.Modified; try { db.SaveChanges(); } catch (DbUpdateConcurrencyException) { if (!PurchaseOrderStatusExists(id)) { return(NotFound()); } else { throw; } } return(StatusCode(HttpStatusCode.NoContent)); }
public void GeneratePO(Product prod, int week, int year, PurchaseOrderType pot, int repositionpoint) { PurchaseOrderStatus pos = 0; PurchaseOrder po = GetPurchaseOrder(prod.Provider, pot, pos); PurchaseOrderItem poi = new PurchaseOrderItem(); poi.PurchaseOrder = po; poi.Product = prod; if (pot == (PurchaseOrderType)1) { poi.Forecast = ControllerManager.Forecast.GetProductInfo(prod, Config.CurrentWeek + 1, Config.CurrentDate.Year); poi.QuantitySuggested = poi.Forecast.QuantitySuggested; poi.Quantity = poi.Forecast.QuantitySuggested; } else if (pot == (PurchaseOrderType)2) { poi.Forecast = ControllerManager.Forecast.GetProductInfo(prod, Config.CurrentWeek + 1, Config.CurrentDate.Year); poi.QuantitySuggested = repositionpoint; poi.Quantity = repositionpoint; } po.PurchaseOrderItems.Add(poi); this.Save(po); }
public void ChangeStatus(IList <PurchaseOrder> selectedOC, PurchaseOrderStatus status) { foreach (PurchaseOrder oc in selectedOC) { oc.PurchaseOrderStatus = status; } }
public PurchaseOrder(int id, Provider provider, DateTime date, PurchaseOrderStatus status) { this.id = id; this.provider = provider; this.date = date; this.purchaseOrderStatus = status; }
// When a purchase order is accepted, then process it. public void Accept() { if (_PurchaseOrderStatus == PurchaseOrderStatus.Created) { _OrderProcessor.HandlePurchaseOrder(this); _PurchaseOrderStatus = PurchaseOrderStatus.Accepted; } }
public PurchaseOrderForRemoveProductTask( Guid purchaseOrderId, PurchaseOrderStatus status, IEnumerable <Guid> productIds) { PurchaseOrderId = purchaseOrderId; Status = status; ProductIds = productIds; }
/* * Developer: Sajid Khan * Date: 7-5-19 * Action: Insert purchase order status to database * Input: new status data * output: string of status id */ public async Task <string> Create(PurchaseOrderStatus NewPurchaseOrderStatus) { using (IDbConnection conn = Connection) { var result = await conn.InsertAsync <PurchaseOrderStatus>(NewPurchaseOrderStatus); return(result.ToString()); } }
private bool IsAuditedPO(PurchaseOrderStatus poStatus) { if (poStatus == PurchaseOrderStatus.Returned || poStatus == PurchaseOrderStatus.AutoAbandoned || poStatus == PurchaseOrderStatus.WaitingPMConfirm || poStatus == PurchaseOrderStatus.Abandoned || poStatus == PurchaseOrderStatus.Created || poStatus == PurchaseOrderStatus.WaitingAudit) { return(false); } else { return(true); } }
public IHttpActionResult GetPurchaseOrderStatus(int id) { PurchaseOrderStatus purchaseOrderStatus = db.PurchaseOrderStatus.Find(id); if (purchaseOrderStatus == null) { return(NotFound()); } return(Ok(purchaseOrderStatus)); }
public IHttpActionResult PostPurchaseOrderStatus(PurchaseOrderStatus purchaseOrderStatus) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } db.PurchaseOrderStatus.Add(purchaseOrderStatus); db.SaveChanges(); return(CreatedAtRoute("DefaultApi", new { id = purchaseOrderStatus.PurchaseOrderStatusId }, purchaseOrderStatus)); }
public PurchaseOrderCreated( Guid purchaseOrderId, PurchaseOrderStatus status, Guid vendorId, IEnumerable <PurchaseOrderLine> lines ) { PurchaseOrderId = purchaseOrderId; Status = status; VendorId = vendorId; Lines = lines; }
public PurchaseOrder(Guid id, int reference, PurchaseOrderStatus status, Producer producer, Order order) { if (producer == null) { throw SheaftException.Validation("Impossible de créer la commande, le producteur est requis."); } Id = id; Products = new List <PurchaseOrderProduct>(); DomainEvents = new List <DomainEvent> { new PurchaseOrderCreatedEvent(Id) }; SetSender(order.User); SetVendor(producer); var delivery = order.Deliveries.Single(d => d.DeliveryMode.ProducerId == producer.Id); var address = (int)delivery.DeliveryMode.Kind <= 4 ? new ExpectedAddress(delivery.DeliveryMode.Address.Line1, delivery.DeliveryMode.Address.Line2, delivery.DeliveryMode.Address.Zipcode, delivery.DeliveryMode.Address.City, delivery.DeliveryMode.Address.Country, delivery.DeliveryMode.Address.Longitude, delivery.DeliveryMode.Address.Latitude) : new ExpectedAddress(order.User.Address.Line1, order.User.Address.Line2, order.User.Address.Zipcode, order.User.Address.City, order.User.Address.Country, order.User.Address.Longitude, order.User.Address.Latitude); ExpectedDelivery = new ExpectedPurchaseOrderDelivery(delivery, address); SetComment(delivery.Comment); SetReference(reference); SetStatus(status, true); var orderProducts = order.Products.Where(p => p.ProducerId == producer.Id); foreach (var orderProduct in orderProducts) { AddProduct(orderProduct); } var shouldAddDeliveryFees = delivery.DeliveryMode.ApplyDeliveryFeesWhen is DeliveryFeesApplication.Always || (delivery.DeliveryMode.ApplyDeliveryFeesWhen is DeliveryFeesApplication .TotalLowerThanPurchaseOrderAmount && delivery.DeliveryMode.DeliveryFeesMinPurchaseOrdersAmount.HasValue && delivery.DeliveryMode.DeliveryFeesMinPurchaseOrdersAmount.Value > TotalWholeSalePrice); if (shouldAddDeliveryFees) { ExpectedDelivery?.ApplyDeliveryModeFees(delivery.DeliveryMode); RefreshOrder(); } }
public PurchaseOrder(Guid id, int reference, PurchaseOrderStatus status, DateTimeOffset expectedDeliveryDate, TimeSpan from, TimeSpan to, DeliveryMode deliveryMode, Producer producer, User client, IEnumerable <KeyValuePair <Domain.Product, int> > products, Catalog catalog, bool skipNotification, string comment = null) { if (producer == null) { throw SheaftException.Validation("Impossible de créer la commande, le producteur est requis."); } Id = id; Products = new List <PurchaseOrderProduct>(); DomainEvents = new List <DomainEvent> { new PurchaseOrderCreatedEvent(Id) }; Status = PurchaseOrderStatus.Waiting; CreatedOn = DateTimeOffset.UtcNow; SetSender(client); SetVendor(producer); var address = (int)deliveryMode.Kind <= 4 ? new ExpectedAddress(deliveryMode.Address.Line1, deliveryMode.Address.Line2, deliveryMode.Address.Zipcode, deliveryMode.Address.City, deliveryMode.Address.Country, deliveryMode.Address.Longitude, deliveryMode.Address.Latitude) : new ExpectedAddress(client.Address.Line1, client.Address.Line2, client.Address.Zipcode, client.Address.City, client.Address.Country, client.Address.Longitude, client.Address.Latitude); ExpectedDelivery = new ExpectedPurchaseOrderDelivery(deliveryMode, expectedDeliveryDate, from, to, address); SetComment(comment); SetReference(reference); foreach (var product in products) { AddProduct(new PurchaseOrderProduct(product.Key, catalog.Id, product.Value)); } var shouldAddDeliveryFees = deliveryMode.ApplyDeliveryFeesWhen is DeliveryFeesApplication.Always || (deliveryMode.ApplyDeliveryFeesWhen is DeliveryFeesApplication .TotalLowerThanPurchaseOrderAmount && deliveryMode.DeliveryFeesMinPurchaseOrdersAmount.HasValue && deliveryMode.DeliveryFeesMinPurchaseOrdersAmount.Value > TotalWholeSalePrice); if (shouldAddDeliveryFees) { ExpectedDelivery?.ApplyDeliveryModeFees(deliveryMode); RefreshOrder(); } SetStatus(status, skipNotification); }
public IHttpActionResult DeletePurchaseOrderStatus(int id) { PurchaseOrderStatus purchaseOrderStatus = db.PurchaseOrderStatus.Find(id); if (purchaseOrderStatus == null) { return(NotFound()); } db.PurchaseOrderStatus.Remove(purchaseOrderStatus); db.SaveChanges(); return(Ok(purchaseOrderStatus)); }
/// <summary> /// /// </summary> /// <param name="entity"></param> /// <returns></returns> public static PurchaseOrderStatusViewModel ToViewModel(this PurchaseOrderStatus entity) { return(entity == null ? null : new PurchaseOrderStatusViewModel { Id = entity.Id, Status = entity.Status // //RowGuid = entity.RowGuid, //ModifiedDate = entity.ModifiedDate }); }
public void GenerateFullPO(int week, int year, PurchaseOrderType orderType) { PurchaseOrderStatus orderStatus = PurchaseOrderStatus.Open; IList <Forecast> lst = ControllerManager.Forecast.GetPOList((Config.CurrentWeek == 53) ? 1 : Config.CurrentWeek + 1, (Config.CurrentWeek == 53) ? Config.CurrentDate.Year + 1 : Config.CurrentDate.Year); List <PurchaseOrder> purchaseOrders = GetByCriteria(new EqExpression("PurchaseOrderType", orderType), new EqExpression("PurchaseOrderStatus", orderStatus), new EqExpression("Date", Config.CurrentDate)) as List <PurchaseOrder>; foreach (Forecast forecast in lst) { PurchaseOrder po = purchaseOrders.Find(delegate(PartnerNet.Domain.PurchaseOrder record) { if (record.Provider == forecast.Product.Provider) { return(true); } else { return(false); } }); if (po == null) { po = new PurchaseOrder(); po.Provider = forecast.Product.Provider; po.Date = Config.CurrentDate; po.PurchaseOrderStatus = orderStatus; po.PurchaseOrderType = orderType; po.WOD = WayOfDelivery.Maritimo; purchaseOrders.Add(po); } PurchaseOrderItem poi = new PurchaseOrderItem(); poi.PurchaseOrder = po; poi.Product = forecast.Product; poi.Forecast = forecast; if (orderType == PurchaseOrderType.Forecast) { poi.QuantitySuggested = poi.Forecast.QuantitySuggested; poi.Quantity = poi.Forecast.QuantitySuggested; } po.PurchaseOrderItems.Add(poi); Save(po); } NHibernateSession.Flush(); }
private async Task Submit() { var postatus = new PurchaseOrderStatus() { IsSubmitted = true }; this.PurchaseOrderItem.PurchaseOrderStatus = postatus; var PO = await _purchaseOrdersBusinessService.SubmitPurchaseOrder(this.PurchaseOrderItem); if (PO != null) { _navigationService.NavigateBack(); } }
/// <summary> /// 批量打印 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btnBatchPrint_Click(object sender, RoutedEventArgs e) { List <int> sysNoList = new List <int>(); List <int> noSysNoList = new List <int>(); if (this.QueryResultGrid.ItemsSource != null) { dynamic viewList = this.QueryResultGrid.ItemsSource as dynamic; foreach (var view in viewList) { if (view.IsChecked) { PurchaseOrderStatus status = (PurchaseOrderStatus)Enum.Parse(typeof(PurchaseOrderStatus), view.status.ToString(), false); if (IsAuditedPO(status)) { sysNoList.Add(view.sysno); } else { noSysNoList.Add(view.sysno); } } } if ((sysNoList != null && sysNoList.Count > 0) || (noSysNoList != null && noSysNoList.Count > 0)) { if (noSysNoList != null && noSysNoList.Count > 0) { Window.Alert(string.Format(ResPurchaseOrderQuery.Message_BatchPrintDataError, string.Join("|", noSysNoList)), MessageType.Information); } if (sysNoList == null || sysNoList.Count <= 0) { return; } Dictionary <string, string> filter = new Dictionary <string, string>(); filter.Add("POSysNoList", String.Join("|", sysNoList)); filter.Add("PrintAccessory", "1"); filter.Add("PrintTitle", ResPurchaseOrderQuery.Label_PrintTitle); HtmlViewHelper.WebPrintPreview("PO", "POBatchPrintData", filter); } else { Window.Alert(ResPurchaseOrderQuery.Message_SelectData, MessageType.Information); return; } } }
public async Task <List <PurchaseOrderStatus> > GetAsync(int id) { List <PurchaseOrderStatus> ToReturn = new List <PurchaseOrderStatus>(); try { PurchaseOrderStatus Res = await _PurchaseOrderStatusRepo.GetById(id); ToReturn.Add(Res); } catch (Exception ex) { var logger = _loggerFactory.CreateLogger("internal_error_log"); logger.LogInformation("Problem happened in selecting the data for purchaseorderstatus lis by id with message" + ex.Message); } return(ToReturn); }
private void Hyperlink_PrintWithoutPrice_Click(object sender, RoutedEventArgs e) { DynamicXml getObject = this.QueryResultGrid.SelectedItem as DynamicXml; if (null != getObject) { PurchaseOrderStatus status = (PurchaseOrderStatus)Enum.Parse(typeof(PurchaseOrderStatus), getObject["status"].ToString(), false); if (!IsAuditedPO(status)) { Window.Alert(ResPurchaseOrderQuery.InfoMsg_Error, string.Format(ResPurchaseOrderQuery.AlertMsg_EmailError, getObject["sysno"].ToString())); return; } //打印操作: HtmlViewHelper.WebPrintPreview("PO", "PurchaseOrderWithoutPricePrint", new Dictionary <string, string>() { { "POSysNo", getObject["sysno"].ToString() }, { "PrintAccessory", "1" }, { "PrintTitle", ResPurchaseOrderQuery.Label_PrintTitleWithoutPirce } }); } }
public PurchaseOrder GetPurchaseOrder(Provider provider, PurchaseOrderType pot, PurchaseOrderStatus pos) { ICriteria crit = GetCriteria(); crit.Add(new EqExpression("Provider", provider)); crit.Add(new EqExpression("Date", Config.CurrentDate)); crit.Add(new EqExpression("PurchaseOrderType", pot)); crit.Add(new EqExpression("PurchaseOrderStatus", pos)); PurchaseOrder po = crit.UniqueResult <PurchaseOrder>(); if (po == null) { po = new PurchaseOrder(); po.Provider = provider; po.Date = Config.CurrentDate; po.PurchaseOrderStatus = 0; po.PurchaseOrderType = pot; po.WOD = WayOfDelivery.Maritimo; } return(po); }
public void fvPOStatus_InsertItem() { try { TextBox txtStatusInsert = (TextBox)fvPOStatus.FindControl("txtStatusInsert"); TextBox txtStatusCodeInsert = (TextBox)fvPOStatus.FindControl("txtStatusCodeInsert"); using (FormContext ctx = new FormContext()) { if (!ctx.Statuses.Any(x => x.StatusText == txtStatusInsert.Text)) { PurchaseOrderStatus newStatus = new PurchaseOrderStatus(); newStatus.Status = txtStatusInsert.Text; newStatus.StatusCode = txtStatusCodeInsert.Text; ctx.POStatuses.Add(newStatus); ctx.SaveChanges(); gvPOStatus.DataBind(); lblVariableMessage.Text = ""; } else { lblVariableMessage.Text = "A PO Status named: " + txtStatusInsert.Text + " already exists. Please try again."; } } } catch (Exception ex) { lblVariableMessage.Text = "Unable to add this PO Status. Please contact your system administrator."; } }
public PurchaseOrdersEndpoint Status(PurchaseOrderStatus status) { AddParameter("status", status.ToString().ToUpper()); return(this); }
public void Save_ResultIsPurchaseOrderCreated_PersistsExpectedDocument(PurchaseOrderStatus status) { /// Arrange // Get a purchase order created event. var @event = new PurchaseOrderCreated( purchaseOrderId: Guid.NewGuid(), status: status, vendorId: Guid.NewGuid(), lines: Enumerable.Empty <PurchaseOrderLine>() .Append(new PurchaseOrderLine( productId: Guid.NewGuid(), quantity: 14.25M, measure: "EA", pricePerUnit: 2.24M)) .Append(new PurchaseOrderLine( productId: Guid.NewGuid(), quantity: 5.5M, measure: "FT", pricePerUnit: 0.75M))); // Get some next id. var nextId = Guid.NewGuid(); // Get the expected document dictionary. var expected = new BsonDocument() .Add(new BsonElement("_id", BsonString.Create(nextId.ToString()))) .Add(new BsonElement("_type", BsonString.Create(nameof(PurchaseOrderCreated)))) .Add(new BsonElement(nameof(PurchaseOrderCreated.PurchaseOrderId), new BsonString(@event.PurchaseOrderId.ToString()))) .Add(new BsonElement(nameof(PurchaseOrderCreated.Status), new BsonString(Enum.GetName <PurchaseOrderStatus>(@event.Status)))) .Add(new BsonElement(nameof(PurchaseOrderCreated.VendorId), new BsonString(@event.VendorId.ToString()))) .Add(new BsonElement(nameof(PurchaseOrderCreated.Lines), new BsonArray() .Add(new BsonDocument() .Add(new BsonElement(nameof(PurchaseOrderLine.ProductId), BsonString.Create(@event.Lines.ElementAt(0).ProductId.ToString()))) .Add(new BsonElement(nameof(PurchaseOrderLine.Quantity), BsonDecimal128.Create(@event.Lines.ElementAt(0).Quantity))) .Add(new BsonElement(nameof(PurchaseOrderLine.Measure), BsonString.Create(@event.Lines.ElementAt(0).Measure))) .Add(new BsonElement(nameof(PurchaseOrderLine.PricePerUnit), BsonDecimal128.Create(@event.Lines.ElementAt(0).PricePerUnit)))) .Add(new BsonDocument() .Add(new BsonElement(nameof(PurchaseOrderLine.ProductId), BsonString.Create(@event.Lines.ElementAt(1).ProductId.ToString()))) .Add(new BsonElement(nameof(PurchaseOrderLine.Quantity), BsonDecimal128.Create(@event.Lines.ElementAt(1).Quantity))) .Add(new BsonElement(nameof(PurchaseOrderLine.Measure), BsonString.Create(@event.Lines.ElementAt(1).Measure))) .Add(new BsonElement(nameof(PurchaseOrderLine.PricePerUnit), BsonDecimal128.Create(@event.Lines.ElementAt(1).PricePerUnit)))))); // Mock up a mongo client for the mongo db event store. BsonDocument actual = null; var collection = Mock.Create <IMongoCollection <BsonDocument> >(); Mock.Arrange(() => collection.InsertOne(Arg.IsAny <BsonDocument>(), Arg.IsAny <InsertOneOptions>(), Arg.IsAny <CancellationToken>())) .DoInstead((BsonDocument document) => actual = document); var database = Mock.Create <IMongoDatabase>(); Mock.Arrange(() => database.GetCollection <BsonDocument>(Arg.AnyString, Arg.IsAny <MongoCollectionSettings>())) .Returns(collection); var client = Mock.Create <IMongoClient>(); Mock.Arrange(() => client.GetDatabase(Arg.AnyString, Arg.IsAny <MongoDatabaseSettings>())) .Returns(database); /// Act // Save the event. MongoDBEventStore.Save(client, nextId, @event); /// Assert // Verify that the actual document matches the expected document. Assert.Equal(expected, actual); }
private void Hyperlink_Email_Click(object sender, RoutedEventArgs e) { //验证采购单是否通过审批 : DynamicXml getObject = this.QueryResultGrid.SelectedItem as DynamicXml; if (null != getObject) { PurchaseOrderStatus status = (PurchaseOrderStatus)Enum.Parse(typeof(PurchaseOrderStatus), getObject["status"].ToString(), false); if (!IsAuditedPO(status)) { Window.Alert(ResPurchaseOrderQuery.InfoMsg_Error, string.Format(ResPurchaseOrderQuery.AlertMsg_EmailError, getObject["sysno"].ToString())); return; } //TODO:发送Email: string getPOSysNo = getObject["sysno"].ToString(); //PO单:自动发送邮件地址:AutoMailAddress: string returnAutoSendMailResult = string.Empty; //PO单:已发送邮件MailAddress: string returnMailAddresResult = string.Empty; //供应商:Vendor MailAddress: string returnVendorMailResult = string.Empty; #region 获取、更新MailAddress: //自动Email: if (!string.IsNullOrEmpty(getPOSysNo)) { serviceFacade.LoadPurchaseOrderInfo(getPOSysNo, (obj, args) => { if (args.FaultsHandle()) { return; } PurchaseOrderInfo getPOInfo = args.Result; if (null != getPOInfo) { if (!string.IsNullOrEmpty(getPOInfo.PurchaseOrderBasicInfo.AutoSendMailAddress))//AutoSendMail 不为空 只显示当前AutoSendMail 为空 显示 当前登录账户Email + Vendor 的Email { returnAutoSendMailResult = getPOInfo.PurchaseOrderBasicInfo.AutoSendMailAddress; } else if (!string.IsNullOrEmpty(CPApplication.Current.LoginUser.UserEmailAddress) && !string.IsNullOrEmpty(getPOInfo.VendorInfo.VendorFinanceInfo.AccountContactEmail)) { returnAutoSendMailResult = CPApplication.Current.LoginUser.UserEmailAddress + ";" + getPOInfo.VendorInfo.VendorFinanceInfo.AccountContactEmail; } else if (!string.IsNullOrEmpty(CPApplication.Current.LoginUser.UserEmailAddress) && string.IsNullOrEmpty(getPOInfo.VendorInfo.VendorFinanceInfo.AccountContactEmail)) { returnAutoSendMailResult = CPApplication.Current.LoginUser.UserEmailAddress; } else if (string.IsNullOrEmpty(CPApplication.Current.LoginUser.UserEmailAddress) && !string.IsNullOrEmpty(getPOInfo.VendorInfo.VendorFinanceInfo.AccountContactEmail)) { returnAutoSendMailResult = getPOInfo.VendorInfo.VendorFinanceInfo.AccountContactEmail; } returnVendorMailResult = getPOInfo.VendorInfo.VendorBasicInfo.EmailAddress; returnMailAddresResult = getPOInfo.PurchaseOrderBasicInfo.MailAddress; } PurchaseOrderEmailSendMaintain mailMaintain = new PurchaseOrderEmailSendMaintain(getPOInfo.VendorInfo.SysNo.Value, returnAutoSendMailResult, returnVendorMailResult, returnMailAddresResult); mailMaintain.Dialog = Window.ShowDialog(ResPurchaseOrderQuery.AlertMsg_EmailMaintain, mailMaintain, (obj2, args2) => { if (args2.DialogResult == DialogResultType.OK && args2.Data != null) { Dictionary <string, object> getReturnDict = args2.Data as Dictionary <string, object>; if (null != getReturnDict) { string getUpdatedVendorEmailAddress = getReturnDict["updatedVendorMailAddress"].ToString(); string getSelectedReceivedMailAddress = ""; List <string> getSelectedReceivedMailAddressList = getReturnDict["updatedReceiveMailAddress"] as List <string>; if (null != getSelectedReceivedMailAddress) { getSelectedReceivedMailAddress = string.Join(";", getSelectedReceivedMailAddressList); } PurchaseOrderInfo sendMailInfo = new PurchaseOrderInfo() { PurchaseOrderBasicInfo = new PurchaseOrderBasicInfo() { MailAddress = getSelectedReceivedMailAddress }, SysNo = Convert.ToInt32(getObject["sysno"].ToString()) }; //更新发送邮件地址 : serviceFacade.UpdateMailAddressAndHasSentMail(sendMailInfo, (obj3, args3) => { if (args3.FaultsHandle()) { return; //TODO:弹出Print页面进行打印: //window.open("<%= Url.Action("PrintToEmail")%>/"+InPOSysNO+"$"+InAutoSendMail); } //打印操作: HtmlViewHelper.WebPrintPreview("PO", "PurchaseOrderPrint", new Dictionary <string, string>() { { "POSysNo", getObject["sysno"].ToString() }, { "PrintAccessory", "1" }, { "PrintTitle", "给供应商发采购邮件" } }); }); } } }, new Size(600, 300)); }); } #endregion } }
public void Always_DefaultsStatusToDraft() { var status = new PurchaseOrderStatus(); Assert.That(status.CurrentState, Is.EqualTo(PurchaseOrderStatus.State.Draft)); }
internal void SetStatus(PurchaseOrderStatus newStatus, bool skipNotification) { switch (newStatus) { case PurchaseOrderStatus.Accepted: if (Status is PurchaseOrderStatus.Processing or PurchaseOrderStatus.Accepted) { break; } if (Status != PurchaseOrderStatus.Waiting) { throw SheaftException.Validation("Impossible d'accepter la commande, elle n'est plus en attente."); } if (SenderInfo.Kind == ProfileKind.Consumer && CreatedOn.AddDays(3) < DateTimeOffset.UtcNow) { throw SheaftException.Validation("Impossible d'accepter la commande, le délai de 72h est écoulé."); } AcceptedOn = DateTimeOffset.UtcNow; if (!skipNotification) { DomainEvents.Add(new PurchaseOrderAcceptedEvent(Id)); } break; case PurchaseOrderStatus.Completed: if (Status != PurchaseOrderStatus.Processing) { throw SheaftException.Validation("La commande doit être en préparation pour pouvoir être complétée."); } CompletedOn ??= DateTimeOffset.UtcNow; if (!skipNotification) { DomainEvents.Add(new PurchaseOrderCompletedEvent(Id)); } break; case PurchaseOrderStatus.Delivered: if (Status != PurchaseOrderStatus.Completed) { throw SheaftException.Validation("La commande doit être prête pour pouvoir être livrée."); } break; case PurchaseOrderStatus.Cancelled: if (Status == PurchaseOrderStatus.Cancelled) { throw SheaftException.Validation("La commande a déjà été annulée."); } if (Status == PurchaseOrderStatus.Refused) { throw SheaftException.Validation("La commande a déjà été refusée."); } if (Status == PurchaseOrderStatus.Delivered) { throw SheaftException.Validation("La commande a déjà été livrée."); } if (Status == PurchaseOrderStatus.Expired) { throw SheaftException.Validation("La commande est expirée."); } DroppedOn = DateTimeOffset.UtcNow; if (!skipNotification) { DomainEvents.Add(new PurchaseOrderCancelledEvent(Id)); } break; case PurchaseOrderStatus.Withdrawned: if (Status == PurchaseOrderStatus.Withdrawned) { throw SheaftException.Validation("La commande a déjà été annulée."); } if (Status == PurchaseOrderStatus.Refused) { throw SheaftException.Validation("La commande a déjà été refusée."); } if (Status == PurchaseOrderStatus.Delivered) { throw SheaftException.Validation("La commande a déjà été livrée."); } if (Status == PurchaseOrderStatus.Expired) { throw SheaftException.Validation("La commande est expirée."); } DroppedOn = DateTimeOffset.UtcNow; if (!skipNotification) { DomainEvents.Add(new PurchaseOrderWithdrawnedEvent(Id)); } break; case PurchaseOrderStatus.Refused: if (Status == PurchaseOrderStatus.Cancelled) { throw SheaftException.Validation("La commande a déjà été annulée."); } if (Status == PurchaseOrderStatus.Refused) { throw SheaftException.Validation("La commande a déjà été refusée."); } if (Status == PurchaseOrderStatus.Delivered) { throw SheaftException.Validation("La commande a déjà été livrée."); } if (Status == PurchaseOrderStatus.Expired) { throw SheaftException.Validation("La commande est expirée."); } DroppedOn = DateTimeOffset.UtcNow; if (!skipNotification) { DomainEvents.Add(new PurchaseOrderRefusedEvent(Id)); } break; case PurchaseOrderStatus.Expired: if (Status != PurchaseOrderStatus.Waiting) { throw SheaftException.Validation("La commande ne peut pas être expirée, elle doit être en attente."); } DroppedOn = DateTimeOffset.UtcNow; if (!skipNotification) { DomainEvents.Add(new PurchaseOrderExpiredEvent(Id)); } break; } Status = newStatus; }
protected override void Seed(Tingle_WebForms.Models.FormContext context) { //Seed Roles UserRoles roleUser = new UserRoles { RoleName = "User", RoleDescription = "User can submit forms." }; UserRoles roleReportsUser = new UserRoles { RoleName = "ReportsUser", RoleDescription = "User can view reports, but not edit them." }; UserRoles roleReportsAdmin = new UserRoles { RoleName = "ReportsAdmin", RoleDescription = "User can view and edit reports." }; UserRoles roleSuperUser = new UserRoles { RoleName = "SuperUser", RoleDescription = "User has full administrative rights." }; UserRoles roleDeveloper = new UserRoles { RoleName = "Developer", RoleDescription = "Developer" }; context.UserRoles.AddOrUpdate(u => u.RoleName, roleUser); context.UserRoles.AddOrUpdate(u => u.RoleName, roleReportsUser); context.UserRoles.AddOrUpdate(u => u.RoleName, roleReportsAdmin); context.UserRoles.AddOrUpdate(u => u.RoleName, roleSuperUser); context.UserRoles.AddOrUpdate(u => u.RoleName, roleDeveloper); //Seed Forms TForm expeditedOrder = new TForm { FormCreator = "Admin", FormName = "Expedited Order", FormNameHtml = "Expedited Order", FormUrl = "ExpeditedOrderForm.aspx", Notes = "Expedited Order Form", Status = 1, Timestamp = DateTime.Now }; TForm priceChangeRequest = new TForm { FormCreator = "Admin", FormName = "Price Change Request", FormNameHtml = "Price Change<br />Request", FormUrl = "PriceChangeRequestForm.aspx", Notes = "Price Change Request Form Notes", Status = 0, Timestamp = DateTime.Now }; TForm orderCancellation = new TForm { FormCreator = "Admin", FormName = "Order Cancellation", FormNameHtml = "Order Cancellation", FormUrl = "OrderCancellationForm.aspx", Notes = "Order Cancellation Form Notes", Status = 0, Timestamp = DateTime.Now }; TForm hotRushForm = new TForm { FormCreator = "Admin", FormName = "Hot Rush", FormNameHtml = "Hot Rush", FormUrl = "HotRushForm.aspx", Notes = "Hot Rush Form Notes", Status = 0, Timestamp = DateTime.Now }; TForm lowInventory = new TForm { FormCreator = "Admin", FormName = "Low Inventory", FormNameHtml = "Low Inventory", FormUrl = "LowInventoryForm.aspx", Notes = "Low Inventory Form Notes", Status = 0, Timestamp = DateTime.Now }; TForm sampleRequest = new TForm { FormCreator = "Admin", FormName = "Sample Request", FormNameHtml = "Sample Request", FormUrl = "SampleRequestForm.aspx", Notes = "Sample Request Form Notes", Status = 0, Timestamp = DateTime.Now }; TForm directOrder = new TForm { FormCreator = "Admin", FormName = "Direct Order", FormNameHtml = "Direct Order", FormUrl = "DirectOrderForm.aspx", Notes = "Direct Order Form Notes", Status = 0, Timestamp = DateTime.Now }; TForm requestForCheck = new TForm { FormCreator = "Admin", FormName = "Request For Check", FormNameHtml = "Request For<br />Check", FormUrl = "RequestForCheckForm.aspx", Notes = "Request For Check Form Notes", Status = 0, Timestamp = DateTime.Now }; TForm mustIncludeForm = new TForm { FormCreator = "Admin", FormName = "Must Include", FormNameHtml = "Must Include", FormUrl = "MustIncludeForm.aspx", Notes = "Must Include Form Notes", Status = 0, Timestamp = DateTime.Now }; TForm cannotWaitForContainerForm = new TForm { FormCreator = "Admin", FormName = "Cannot Wait For Container", FormNameHtml = "Cannot<br />Wait For<br />Container", FormUrl = "CannotWaitForContainerForm.aspx", Notes = "Cannot Wait For Container Form Notes", Status = 0, Timestamp = DateTime.Now }; if (!context.TForms.Any(x => x.FormName == orderCancellation.FormName)) { context.TForms.Add(orderCancellation); } if (!context.TForms.Any(x => x.FormName == expeditedOrder.FormName)) { context.TForms.Add(expeditedOrder); } if (!context.TForms.Any(x => x.FormName == priceChangeRequest.FormName)) { context.TForms.Add(priceChangeRequest); } if (!context.TForms.Any(x => x.FormName == hotRushForm.FormName)) { context.TForms.Add(hotRushForm); } if (!context.TForms.Any(x => x.FormName == lowInventory.FormName)) { context.TForms.Add(lowInventory); } if (!context.TForms.Any(x => x.FormName == sampleRequest.FormName)) { context.TForms.Add(sampleRequest); } if (!context.TForms.Any(x => x.FormName == directOrder.FormName)) { context.TForms.Add(directOrder); } if (!context.TForms.Any(x => x.FormName == requestForCheck.FormName)) { context.TForms.Add(requestForCheck); } if (!context.TForms.Any(x => x.FormName == mustIncludeForm.FormName)) { context.TForms.Add(mustIncludeForm); } if (!context.TForms.Any(x => x.FormName == cannotWaitForContainerForm.FormName)) { context.TForms.Add(cannotWaitForContainerForm); } //Seed ExpediteCodes ExpediteCode expCode1 = new ExpediteCode { Code = "EXP100", Description = "Mill Error", Status = 1, Timestamp = DateTime.Now }; ExpediteCode expCode2 = new ExpediteCode { Code = "EXP200", Description = "Customer Error", Status = 1, Timestamp = DateTime.Now }; ExpediteCode expCode3 = new ExpediteCode { Code = "EXP300", Description = "Tingle Error", Status = 1, Timestamp = DateTime.Now }; ExpediteCode expCode4 = new ExpediteCode { Code = "EXP400", Description = "Install Date", Status = 1, Timestamp = DateTime.Now }; ExpediteCode expCode5 = new ExpediteCode { Code = "EXP500", Description = "Can't wait on production date", Status = 1, Timestamp = DateTime.Now }; ExpediteCode expCode6 = new ExpediteCode { Code = "EXP600", Description = "Search Other Distributors", Status = 1, Timestamp = DateTime.Now }; ExpediteCode expCode7 = new ExpediteCode { Code = "EXP777", Description = "General", Status = 1, Timestamp = DateTime.Now }; ExpediteCode expCode8 = new ExpediteCode { Code = "EXP800", Description = "Direct Order", Status = 1, Timestamp = DateTime.Now }; ExpediteCode expCode9 = new ExpediteCode { Code = "EXP911", Description = "Immediate Attn", Status = 1, Timestamp = DateTime.Now }; if (context.ExpediteCodes.Count() < 1) { if (!context.ExpediteCodes.Any(x => x.Code == expCode1.Code)) { context.ExpediteCodes.Add(expCode1); } if (!context.ExpediteCodes.Any(x => x.Code == expCode2.Code)) { context.ExpediteCodes.Add(expCode2); } if (!context.ExpediteCodes.Any(x => x.Code == expCode3.Code)) { context.ExpediteCodes.Add(expCode3); } if (!context.ExpediteCodes.Any(x => x.Code == expCode4.Code)) { context.ExpediteCodes.Add(expCode4); } if (!context.ExpediteCodes.Any(x => x.Code == expCode5.Code)) { context.ExpediteCodes.Add(expCode5); } if (!context.ExpediteCodes.Any(x => x.Code == expCode6.Code)) { context.ExpediteCodes.Add(expCode6); } if (!context.ExpediteCodes.Any(x => x.Code == expCode7.Code)) { context.ExpediteCodes.Add(expCode7); } if (!context.ExpediteCodes.Any(x => x.Code == expCode8.Code)) { context.ExpediteCodes.Add(expCode8); } if (!context.ExpediteCodes.Any(x => x.Code == expCode9.Code)) { context.ExpediteCodes.Add(expCode9); } } //Seed Statuses Status status1 = new Status { StatusText = "In Progress" }; Status status2 = new Status { StatusText = "On Hold" }; Status status3 = new Status { StatusText = "Completed" }; if (!context.Statuses.Any()) { if (!context.Statuses.Any(x => x.StatusText == status1.StatusText)) { context.Statuses.Add(status1); } if (!context.Statuses.Any(x => x.StatusText == status2.StatusText)) { context.Statuses.Add(status2); } if (!context.Statuses.Any(x => x.StatusText == status3.StatusText)) { context.Statuses.Add(status3); } } //Seed PO Statuses PurchaseOrderStatus poStatus1 = new PurchaseOrderStatus { Status = "Open", StatusCode = "O" }; PurchaseOrderStatus poStatus2 = new PurchaseOrderStatus { Status = "Assigned", StatusCode = "A" }; PurchaseOrderStatus poStatus3 = new PurchaseOrderStatus { Status = "Transit", StatusCode = "T" }; PurchaseOrderStatus poStatus4 = new PurchaseOrderStatus { Status = "Future", StatusCode = "F" }; PurchaseOrderStatus poStatus5 = new PurchaseOrderStatus { Status = "Rejected", StatusCode = "R" }; PurchaseOrderStatus poStatus6 = new PurchaseOrderStatus { Status = "Confirmed", StatusCode = "K" }; if (!context.POStatuses.Any()) { context.POStatuses.Add(poStatus1); context.POStatuses.Add(poStatus2); context.POStatuses.Add(poStatus3); context.POStatuses.Add(poStatus4); context.POStatuses.Add(poStatus5); context.POStatuses.Add(poStatus6); } //Seed Prioties Priority pri1 = new Priority { PriorityText = "High" }; Priority pri2 = new Priority { PriorityText = "Normal" }; Priority pri3 = new Priority { PriorityText = "Low" }; if (!context.Priorities.Any()) { context.Priorities.Add(pri1); context.Priorities.Add(pri2); context.Priorities.Add(pri3); } //Seed Price Change Request Products PriceChangeRequestProducts prod1 = new PriceChangeRequestProducts { ProductText = "Armstrong" }; PriceChangeRequestProducts prod2 = new PriceChangeRequestProducts { ProductText = "Other" }; if (!context.PriceChangeRequestProducts.Any()) { context.PriceChangeRequestProducts.Add(prod1); context.PriceChangeRequestProducts.Add(prod2); } //Seed Plants Plant plant1 = new Plant { PlantText = "Dickson" }; Plant plant2 = new Plant { PlantText = "Kankakee" }; Plant plant3 = new Plant { PlantText = "Stillwater" }; Plant plant4 = new Plant { PlantText = "Lancaster" }; Plant plant5 = new Plant { PlantText = "Southgate" }; Plant plant6 = new Plant { PlantText = "Other" }; Plant plant7 = new Plant { PlantText = "West Plains" }; Plant plant8 = new Plant { PlantText = "JacksonTN" }; Plant plant9 = new Plant { PlantText = "Jackson" }; Plant plant10 = new Plant { PlantText = "Beverly" }; Plant plant11 = new Plant { PlantText = "Givens" }; if (!context.Plants.Any()) { context.Plants.Add(plant1); context.Plants.Add(plant2); context.Plants.Add(plant3); context.Plants.Add(plant4); context.Plants.Add(plant5); context.Plants.Add(plant6); context.Plants.Add(plant7); context.Plants.Add(plant8); context.Plants.Add(plant9); context.Plants.Add(plant10); context.Plants.Add(plant11); } //Seed Warehouses Warehouse wh1 = new Warehouse { WarehouseText = "KAN" }; Warehouse wh2 = new Warehouse { WarehouseText = "DEN" }; Warehouse wh3 = new Warehouse { WarehouseText = "STL" }; Warehouse wh4 = new Warehouse { WarehouseText = "HYD" }; Warehouse wh5 = new Warehouse { WarehouseText = "SFG" }; Warehouse wh6 = new Warehouse { WarehouseText = "SFH" }; if (!context.Warehouses.Any()) { context.Warehouses.Add(wh1); context.Warehouses.Add(wh2); context.Warehouses.Add(wh3); context.Warehouses.Add(wh4); context.Warehouses.Add(wh5); context.Warehouses.Add(wh6); } //Seed User Statuses UserStatus us1 = new UserStatus { StatusText = "Online" }; UserStatus us2 = new UserStatus { StatusText = "Away" }; UserStatus us3 = new UserStatus { StatusText = "Busy" }; if (!context.UserStatuses.Any()) { context.UserStatuses.Add(us1); context.UserStatuses.Add(us2); context.UserStatuses.Add(us3); } //Seed Vendors Vendor v1 = new Vendor { Timestamp = DateTime.Now, VendorName = "Armstrong Laminate" }; Vendor v2 = new Vendor { Timestamp = DateTime.Now, VendorName = "Armstrong Wood" }; if (!context.Vendors.Any()) { context.Vendors.Add(v1); context.Vendors.Add(v2); } //Seed Inventory Approval Statuses InventoryApprovalStatus s1 = new InventoryApprovalStatus { StatusDescription = "Pending Approval" }; InventoryApprovalStatus s2 = new InventoryApprovalStatus { StatusDescription = "Approved" }; InventoryApprovalStatus s3 = new InventoryApprovalStatus { StatusDescription = "Ordered" }; InventoryApprovalStatus s4 = new InventoryApprovalStatus { StatusDescription = "Arrived" }; InventoryApprovalStatus s5 = new InventoryApprovalStatus { StatusDescription = "Invoiced" }; InventoryApprovalStatus s6 = new InventoryApprovalStatus { StatusDescription = "Cancelled" }; if (!context.InventoryApprovalStatuses.Any()) { context.InventoryApprovalStatuses.Add(s1); context.InventoryApprovalStatuses.Add(s2); context.InventoryApprovalStatuses.Add(s3); context.InventoryApprovalStatuses.Add(s4); context.InventoryApprovalStatuses.Add(s5); context.InventoryApprovalStatuses.Add(s6); } base.Seed(context); }
private PurchaseOrder(IPurchaseOrderProcessor orderProcessor) { _OrderProcessor = orderProcessor; Id = NextId(); _PurchaseOrderStatus = PurchaseOrderStatus.Created; }