#[non_exhaustive]pub enum PurchaseOrderStatus {
Draft,
PendingApproval,
Approved,
Sent,
Acknowledged,
PartiallyReceived,
Received,
Completed,
Cancelled,
OnHold,
}Expand description
Purchase order status
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Draft
Draft - not yet submitted
PendingApproval
Pending approval
Approved
Approved, ready to send
Sent
Sent to supplier
Acknowledged
Acknowledged by supplier
PartiallyReceived
Partially received
Received
Fully received
Completed
Completed/closed
Cancelled
Cancelled
OnHold
On hold
Implementations§
Source§impl PurchaseOrderStatus
impl PurchaseOrderStatus
Sourcepub fn can_transition_to(self, next: PurchaseOrderStatus) -> bool
pub fn can_transition_to(self, next: PurchaseOrderStatus) -> bool
Check if a status transition is allowed.
Models the purchase order lifecycle:
draft → pending_approval → approved → sent → acknowledged →
partially_received → received → completed.
OnHold is reachable from PendingApproval, Approved, Sent, and
Acknowledged, and can be released back to any of those states.
Cancellation is allowed from any non-terminal state before the PO is
fully received. Completed and Cancelled are terminal.
Note: the SQLite store (stateset-db::sqlite::purchase_orders) only
enforces the draft-only guard on submit_for_approval; other
transition methods should consult this guard.
Sourcepub const fn is_terminal(self) -> bool
pub const fn is_terminal(self) -> bool
Returns true if this status is terminal (no further transitions).
Trait Implementations§
Source§impl Clone for PurchaseOrderStatus
impl Clone for PurchaseOrderStatus
Source§fn clone(&self) -> PurchaseOrderStatus
fn clone(&self) -> PurchaseOrderStatus
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for PurchaseOrderStatus
Source§impl Debug for PurchaseOrderStatus
impl Debug for PurchaseOrderStatus
Source§impl Default for PurchaseOrderStatus
impl Default for PurchaseOrderStatus
Source§fn default() -> PurchaseOrderStatus
fn default() -> PurchaseOrderStatus
Source§impl<'de> Deserialize<'de> for PurchaseOrderStatus
impl<'de> Deserialize<'de> for PurchaseOrderStatus
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<PurchaseOrderStatus, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<PurchaseOrderStatus, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
Source§impl Display for PurchaseOrderStatus
impl Display for PurchaseOrderStatus
impl Eq for PurchaseOrderStatus
Source§impl FromStr for PurchaseOrderStatus
impl FromStr for PurchaseOrderStatus
Source§impl PartialEq for PurchaseOrderStatus
impl PartialEq for PurchaseOrderStatus
Source§impl Serialize for PurchaseOrderStatus
impl Serialize for PurchaseOrderStatus
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for PurchaseOrderStatus
Auto Trait Implementations§
impl Freeze for PurchaseOrderStatus
impl RefUnwindSafe for PurchaseOrderStatus
impl Send for PurchaseOrderStatus
impl Sync for PurchaseOrderStatus
impl Unpin for PurchaseOrderStatus
impl UnsafeUnpin for PurchaseOrderStatus
impl UnwindSafe for PurchaseOrderStatus
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ToStringFallible for Twhere
T: Display,
impl<T> ToStringFallible for Twhere
T: Display,
Source§fn try_to_string(&self) -> Result<String, TryReserveError>
fn try_to_string(&self) -> Result<String, TryReserveError>
ToString::to_string, but without panic on OOM.