pub struct Quality { /* private fields */ }Expand description
Quality control management interface.
Implementations§
Source§impl Quality
impl Quality
Sourcepub fn create_inspection(&self, input: CreateInspection) -> Result<Inspection>
pub fn create_inspection(&self, input: CreateInspection) -> Result<Inspection>
Create a new inspection.
§Example
use stateset_embedded::{Commerce, CreateInspection, InspectionType};
use uuid::Uuid;
let commerce = Commerce::new(":memory:")?;
let inspection = commerce.quality().create_inspection(CreateInspection {
inspection_type: InspectionType::Receiving,
reference_type: "purchase_order".into(),
reference_id: Uuid::new_v4(),
..Default::default()
})?;Sourcepub fn get_inspection(&self, id: Uuid) -> Result<Option<Inspection>>
pub fn get_inspection(&self, id: Uuid) -> Result<Option<Inspection>>
Get an inspection by ID.
Sourcepub fn get_inspection_by_number(
&self,
number: &str,
) -> Result<Option<Inspection>>
pub fn get_inspection_by_number( &self, number: &str, ) -> Result<Option<Inspection>>
Get an inspection by its number.
Sourcepub fn list_inspections(
&self,
filter: InspectionFilter,
) -> Result<Vec<Inspection>>
pub fn list_inspections( &self, filter: InspectionFilter, ) -> Result<Vec<Inspection>>
List inspections with optional filtering.
Sourcepub fn update_inspection(
&self,
id: Uuid,
input: UpdateInspection,
) -> Result<Inspection>
pub fn update_inspection( &self, id: Uuid, input: UpdateInspection, ) -> Result<Inspection>
Update an inspection.
Sourcepub fn start_inspection(&self, id: Uuid) -> Result<Inspection>
pub fn start_inspection(&self, id: Uuid) -> Result<Inspection>
Start an inspection (set status to InProgress).
Sourcepub fn record_inspection_result(
&self,
input: RecordInspectionResult,
) -> Result<InspectionItem>
pub fn record_inspection_result( &self, input: RecordInspectionResult, ) -> Result<InspectionItem>
Record inspection results for an item.
Sourcepub fn get_inspection_items(
&self,
inspection_id: Uuid,
) -> Result<Vec<InspectionItem>>
pub fn get_inspection_items( &self, inspection_id: Uuid, ) -> Result<Vec<InspectionItem>>
Get inspection items for an inspection.
Sourcepub fn complete_inspection(&self, id: Uuid) -> Result<Inspection>
pub fn complete_inspection(&self, id: Uuid) -> Result<Inspection>
Complete an inspection (mark as Passed or Failed based on results).
Sourcepub fn delete_inspection(&self, id: Uuid) -> Result<()>
pub fn delete_inspection(&self, id: Uuid) -> Result<()>
Delete an inspection (only if Pending).
Sourcepub fn count_inspections(&self, filter: InspectionFilter) -> Result<u64>
pub fn count_inspections(&self, filter: InspectionFilter) -> Result<u64>
Count inspections matching filter.
Sourcepub fn create_ncr(&self, input: CreateNonConformance) -> Result<NonConformance>
pub fn create_ncr(&self, input: CreateNonConformance) -> Result<NonConformance>
Create a non-conformance report (NCR).
§Example
use stateset_embedded::{Commerce, CreateNonConformance, NonConformanceSource, Severity};
use rust_decimal_macros::dec;
let commerce = Commerce::new(":memory:")?;
let ncr = commerce.quality().create_ncr(CreateNonConformance {
source: NonConformanceSource::Inspection,
severity: Severity::Major,
sku: "SKU-001".into(),
quantity_affected: dec!(10),
description: "Parts do not meet specification".into(),
..Default::default()
})?;
println!("Created NCR #{}", ncr.ncr_number);Sourcepub fn get_ncr(&self, id: Uuid) -> Result<Option<NonConformance>>
pub fn get_ncr(&self, id: Uuid) -> Result<Option<NonConformance>>
Get a non-conformance report by ID.
Sourcepub fn get_ncr_by_number(&self, number: &str) -> Result<Option<NonConformance>>
pub fn get_ncr_by_number(&self, number: &str) -> Result<Option<NonConformance>>
Get a non-conformance report by its number.
Sourcepub fn list_ncrs(
&self,
filter: NonConformanceFilter,
) -> Result<Vec<NonConformance>>
pub fn list_ncrs( &self, filter: NonConformanceFilter, ) -> Result<Vec<NonConformance>>
List non-conformance reports with optional filtering.
Sourcepub fn update_ncr(
&self,
id: Uuid,
input: UpdateNonConformance,
) -> Result<NonConformance>
pub fn update_ncr( &self, id: Uuid, input: UpdateNonConformance, ) -> Result<NonConformance>
Update a non-conformance report.
Use this to set root cause, corrective action, disposition, etc.
Sourcepub fn close_ncr(&self, id: Uuid) -> Result<NonConformance>
pub fn close_ncr(&self, id: Uuid) -> Result<NonConformance>
Close an NCR.
Sourcepub fn cancel_ncr(&self, id: Uuid) -> Result<NonConformance>
pub fn cancel_ncr(&self, id: Uuid) -> Result<NonConformance>
Cancel an NCR.
Sourcepub fn count_ncrs(&self, filter: NonConformanceFilter) -> Result<u64>
pub fn count_ncrs(&self, filter: NonConformanceFilter) -> Result<u64>
Count NCRs matching filter.
Sourcepub fn create_hold(&self, input: CreateQualityHold) -> Result<QualityHold>
pub fn create_hold(&self, input: CreateQualityHold) -> Result<QualityHold>
Create a quality hold on inventory.
§Example
use stateset_embedded::{Commerce, CreateQualityHold, HoldType};
use rust_decimal_macros::dec;
let commerce = Commerce::new(":memory:")?;
let hold = commerce.quality().create_hold(CreateQualityHold {
sku: "SKU-001".into(),
lot_number: Some("LOT-2025-001".into()),
quantity_held: dec!(50),
reason: "Pending quality inspection".into(),
hold_type: HoldType::QualityInspection,
placed_by: Some("QA Team".into()),
..Default::default()
})?;
println!("Hold placed on {} units", hold.quantity_held);Sourcepub fn list_holds(&self, filter: QualityHoldFilter) -> Result<Vec<QualityHold>>
pub fn list_holds(&self, filter: QualityHoldFilter) -> Result<Vec<QualityHold>>
List quality holds with optional filtering.
Sourcepub fn release_hold(
&self,
id: Uuid,
input: ReleaseQualityHold,
) -> Result<QualityHold>
pub fn release_hold( &self, id: Uuid, input: ReleaseQualityHold, ) -> Result<QualityHold>
Sourcepub fn get_active_holds_for_sku(&self, sku: &str) -> Result<Vec<QualityHold>>
pub fn get_active_holds_for_sku(&self, sku: &str) -> Result<Vec<QualityHold>>
Get active holds for a SKU.
Sourcepub fn get_active_holds_for_lot(
&self,
lot_number: &str,
) -> Result<Vec<QualityHold>>
pub fn get_active_holds_for_lot( &self, lot_number: &str, ) -> Result<Vec<QualityHold>>
Get active holds for a lot.
Sourcepub fn count_active_holds(&self) -> Result<u64>
pub fn count_active_holds(&self) -> Result<u64>
Count active holds.
Sourcepub fn create_defect_code(&self, input: CreateDefectCode) -> Result<DefectCode>
pub fn create_defect_code(&self, input: CreateDefectCode) -> Result<DefectCode>
Create a defect code.
Sourcepub fn get_defect_code(&self, code: &str) -> Result<Option<DefectCode>>
pub fn get_defect_code(&self, code: &str) -> Result<Option<DefectCode>>
Get a defect code by code.
Sourcepub fn list_defect_codes(
&self,
category: Option<&str>,
) -> Result<Vec<DefectCode>>
pub fn list_defect_codes( &self, category: Option<&str>, ) -> Result<Vec<DefectCode>>
List all defect codes, optionally filtered by category.
Sourcepub fn deactivate_defect_code(&self, id: Uuid) -> Result<()>
pub fn deactivate_defect_code(&self, id: Uuid) -> Result<()>
Deactivate a defect code.
Sourcepub fn get_pending_inspections(&self) -> Result<Vec<Inspection>>
pub fn get_pending_inspections(&self) -> Result<Vec<Inspection>>
Get all pending inspections.
Sourcepub fn get_open_ncrs(&self) -> Result<Vec<NonConformance>>
pub fn get_open_ncrs(&self) -> Result<Vec<NonConformance>>
Get all open NCRs.
Sourcepub fn get_active_holds(&self) -> Result<Vec<QualityHold>>
pub fn get_active_holds(&self) -> Result<Vec<QualityHold>>
Get all active holds.