49 lines
1.9 KiB
Python
49 lines
1.9 KiB
Python
from dataclasses import dataclass
|
|
|
|
from project.main.views.complex_form.state_models import CheckboxState, SelectState
|
|
|
|
|
|
@dataclass
|
|
class WarehouseManagementState:
|
|
product_warehouse: CheckboxState
|
|
delivery_option: SelectState
|
|
allow_negative_stock: CheckboxState
|
|
route_reserve_stock: CheckboxState
|
|
refill_log: CheckboxState
|
|
product_order: CheckboxState
|
|
spare_parts_warehouse: CheckboxState
|
|
purchase_module: CheckboxState
|
|
|
|
@staticmethod
|
|
def from_form(values: dict[str, str]) -> "WarehouseManagementState":
|
|
return WarehouseManagementState(
|
|
product_warehouse=CheckboxState(
|
|
checked=values.get("product_warehouse") == "on"
|
|
),
|
|
delivery_option=SelectState(value=values.get("delivery_option")),
|
|
allow_negative_stock=CheckboxState(
|
|
checked=values.get("allow_negative_stock") == "on"
|
|
),
|
|
route_reserve_stock=CheckboxState(
|
|
checked=values.get("route_reserve_stock") == "on"
|
|
),
|
|
refill_log=CheckboxState(checked=values.get("refill_log") == "on"),
|
|
product_order=CheckboxState(checked=values.get("product_order") == "on"),
|
|
spare_parts_warehouse=CheckboxState(
|
|
checked=values.get("spare_parts_warehouse") == "on"
|
|
),
|
|
purchase_module=CheckboxState(
|
|
checked=values.get("purchase_module") == "on"
|
|
),
|
|
)
|
|
|
|
def control_state(self) -> None:
|
|
self.delivery_option.visible = self.product_warehouse.checked
|
|
self.allow_negative_stock.visible = self.product_warehouse.checked
|
|
self.route_reserve_stock.visible = self.product_warehouse.checked
|
|
self.refill_log.visible = self.product_warehouse.checked
|
|
self.product_order.visible = self.product_warehouse.checked
|
|
self.purchase_module.enabled = (
|
|
self.product_warehouse.checked or self.spare_parts_warehouse.checked
|
|
)
|