# c-entron.NET - Undocumented State Machines & Workflow Use Cases

> **Generated**: 2025-11-11
> **Source**: Enum Analysis from Centron.Entities
> **Total State Machines**: 9 (78% undocumented)
> **Wizard Workflows**: 30+ pages across 4 wizards

---

## 1. HELPDESK TICKET WORKFLOW (5 States)

### State Machine Definition

```
States:
  1. New (Initial)
  2. InProgress (Assigned to technician)
  3. OnHold (Awaiting customer response/parts)
  4. Resolved (Fix applied, awaiting confirmation)
  5. Closed (Completed, resolved)

State Transitions:
  New → InProgress        [Trigger: Assign to technician]
  New → OnHold            [Trigger: Cannot reproduce]
  InProgress → OnHold     [Trigger: Blocked by external dependency]
  OnHold → InProgress     [Trigger: Dependency resolved]
  InProgress → Resolved   [Trigger: Fix verified]
  OnHold → Resolved       [Trigger: Auto-resolve due to inactivity]
  Resolved → Closed       [Trigger: Customer confirmed resolution]
  Closed → InProgress     [Trigger: Customer reports issue not resolved]
  * → Closed              [Trigger: Manual closure by manager]
```

### Associated Use Cases

**UC1: Create Ticket**
- System: New ticket created with status "New"
- Fields: Title, Description, CategoryI3D, PriorityI3D
- Auto-assignments: Assign to On-call technician (optional)

**UC2: Assign Ticket**
- Technician: Move ticket from New → InProgress
- System: Create assignment record, notify assignee
- Auto-escalation: If not assigned within SLA

**UC3: Put Ticket OnHold**
- Technician: Move to OnHold state
- Reason: Awaiting customer info, parts on order, etc.
- SLA: Timer paused while OnHold
- Auto-resume: After specified days or manual action

**UC4: Resolve Ticket**
- Technician: Apply fix, mark InProgress → Resolved
- Action: Send resolution summary to customer
- Feedback: Request customer confirmation

**UC5: Close Ticket**
- Customer: Confirm resolution (manual or auto after X days)
- System: Move Resolved → Closed
- Survey: Request satisfaction rating (NPS)
- Reporting: Include in resolution metrics

**UC6: Reopen Ticket**
- Customer: Reports issue not resolved
- System: Move Closed → InProgress
- Notify: Reassign to original technician
- Escalation: Track reopen count

**UC7: Escalate Ticket**
- Manager: Increase priority if SLA breached
- Action: Move to senior technician
- Notification: Alert management of SLA breach

**UC8: Auto-Close OnHold**
- System: Automatically close if OnHold > X days
- Notification: Send reminder to customer before auto-close
- Use Case: Prevent zombie tickets

---

## 2. CONTINGENT/LICENSING STATE MACHINE (4 States)

### State Machine Definition

```
States:
  1. Open (Available to use)
  2. Reserved (Allocated to customer)
  3. Used (Fully consumed)
  4. Expired (Time period ended)

Transitions:
  Open → Reserved          [Trigger: Customer allocates contingent]
  Open → Used              [Trigger: Full amount consumed]
  Reserved → Used          [Trigger: Customer consumes allocation]
  Reserved → Open          [Trigger: Customer cancels reservation]
  Used → Open              [Trigger: Contingent replenished]
  Any → Expired            [Trigger: Expiration date reached]
  Expired → Open           [Trigger: Contingent renewed]
```

### Associated Use Cases

**UC1: Set Up Contingent**
- Billing: Create contingent container (e.g., 100 GB backup storage)
- Period: Valid from StartDate to EndDate
- Status: Set to "Open"

**UC2: Reserve Contingent**
- Customer: Reserve portion for specific project (e.g., 50 GB)
- System: Move 50 GB from Open → Reserved
- Tracking: Link reservation to contract

**UC3: Consume Contingent**
- Usage: Customer uses reserved amount
- System: Move from Reserved → Used as consumed
- Tracking: Update usage counter

**UC4: Cancel Reservation**
- Customer: Decide not to use reserved amount
- System: Move back from Reserved → Open
- Usage: Amount returns to available pool

**UC5: Contingent Expiration**
- System: Auto-expire unused contingent on EndDate
- Notification: Alert customer before expiration (optional)
- Renewal: Create new contingent or extend existing

**UC6: Replenish Contingent**
- Billing: Add additional contingent to existing pool
- System: Increase total, reset counter
- Use Case: Upgrade or expand service

**UC7: Track Contingent Usage**
- Reporting: Show Open, Reserved, Used, Expired amounts
- Forecasting: Predict when contingent will be exhausted
- Billing: Charge based on Used amount

---

## 3. CRM PROJECT STATE MACHINE (4 States)

### State Machine Definition

```
States:
  1. Planning (Initial requirements gathering)
  2. InProgress (Active execution)
  3. OnHold (Suspended)
  4. Completed (Finished)

Transitions:
  Planning → InProgress    [Trigger: Project kicked off]
  Planning → Completed     [Trigger: Cancelled before start]
  InProgress → OnHold      [Trigger: Resource unavailable]
  OnHold → InProgress      [Trigger: Issue resolved]
  InProgress → Completed   [Trigger: All deliverables done]
  * → Planning             [Trigger: Replan project]
```

### Associated Use Cases

**UC1: Create CRM Project**
- Sales: Create new project for opportunity
- Status: Initially set to "Planning"
- Scope: Define deliverables, timeline

**UC2: Kick Off Project**
- Project Manager: Planning → InProgress
- Action: Assign resources, set milestone dates
- Notification: Notify team members

**UC3: Suspend Project**
- Manager: Move InProgress → OnHold
- Reason: Budget cut, resource shortage, market change
- Impact: SLA timers paused

**UC4: Resume Project**
- Manager: Move OnHold → InProgress
- Action: Reassign resources
- Notification: Update stakeholders

**UC5: Complete Project**
- Team: InProgress → Completed
- Action: Mark deliverables done
- Feedback: Customer satisfaction survey
- Reporting: Lessons learned, financials

**UC6: Archive Project**
- Manager: Move Completed → Archived
- Use Case: Clean up old projects

---

## 4. SELF-CARE FORM STATE MACHINE (5 States)

### State Machine Definition

```
States:
  1. Draft (Form not submitted)
  2. Submitted (Waiting for approval)
  3. Approved (Accepted by reviewer)
  4. Rejected (Needs revision)
  5. Completed (Action taken)

Transitions:
  Draft → Submitted        [Trigger: User submits]
  Submitted → Approved     [Trigger: Reviewer approves]
  Submitted → Rejected     [Trigger: Reviewer rejects]
  Rejected → Draft         [Trigger: User edits]
  Draft → Submitted        [Trigger: User resubmits]
  Approved → Completed     [Trigger: System processes action]
```

### Associated Use Cases

**UC1: Create Self-Service Request**
- Employee: Create form (e.g., password reset, address change)
- Status: Draft
- Use Case: Employee portal form submission

**UC2: Submit Form for Approval**
- Employee: Submit form to manager/HR
- Status: Draft → Submitted
- Notification: Alert reviewer

**UC3: Review & Approve Form**
- Manager: Validate request
- Status: Submitted → Approved
- Action: Trigger downstream process (e.g., reset password)

**UC4: Reject Form**
- Manager: Request revision
- Status: Submitted → Rejected
- Feedback: Send reason for rejection

**UC5: Edit & Resubmit Form**
- Employee: Revise based on feedback
- Status: Rejected → Draft → Submitted
- Use Case: Iterative approval process

**UC6: Process Approved Form**
- System: Execute action (create account, update data, etc.)
- Status: Approved → Completed
- Notification: Confirm completion to employee

---

## 5. EVENT TRIGGER KINDS (6 Event Types)

### Event Type Classification

Event triggers define automation rules:

1. **OnInsert** - Triggered when record created
2. **OnUpdate** - Triggered when record modified
3. **OnDelete** - Triggered when record deleted
4. **OnWorkflow** - Triggered by workflow step
5. **OnSchedule** - Triggered on date/time
6. **OnExternal** - Triggered by external system

### Associated Use Cases

**UC1: Auto-Create Follow-up Ticket**
- Trigger: OnDelete of ticket (if reopened multiple times)
- Action: Create escalation ticket to manager
- Use Case: Quality control

**UC2: Send Confirmation Email**
- Trigger: OnInsert of invoice
- Action: Email customer invoice PDF
- Use Case: Automated customer communication

**UC3: Update Stock Level**
- Trigger: OnInsert of sales order
- Action: Decrement inventory
- Use Case: Real-time inventory sync

**UC4: Archive Old Tickets**
- Trigger: OnSchedule (daily at 2 AM)
- Action: Move closed tickets to archive
- Use Case: Performance optimization

**UC5: Payment Reminder**
- Trigger: OnSchedule (30 days after invoice)
- Action: Send payment due notice
- Use Case: Collections automation

---

## 6. RECEIPT/DOCUMENT USER STATE (3 States)

### State Machine Definition

```
States:
  1. Draft (Initial/incomplete)
  2. Posted (Submitted to accounting)
  3. Archived (Historical)

Transitions:
  Draft → Posted           [Trigger: User finalizes]
  Posted → Archived        [Trigger: Period close]
```

### Associated Use Cases

**UC1: Create Draft Receipt**
- User: Create receipt, add line items
- Status: Draft
- Edit: Can modify until posted

**UC2: Post Receipt**
- Accounting: Mark complete
- Status: Draft → Posted
- GL Impact: Creates accounting entries

**UC3: Archive Receipt**
- System: Move to archive after period close
- Status: Posted → Archived
- Query: Read-only access for historical

---

## 7. HELPDESK TIMER BILLING STATE (4 States)

### State Machine Definition

```
States:
  1. NotStarted (Timer not activated)
  2. Running (Timer active)
  3. Paused (Timer stopped, can resume)
  4. Billed (Time consumed, invoice generated)

Transitions:
  NotStarted → Running     [Trigger: Technician starts work]
  Running → Paused         [Trigger: Technician takes break]
  Paused → Running         [Trigger: Resume work]
  Running → Billed         [Trigger: Ticket closed]
  Paused → Billed          [Trigger: Ticket closed]
```

### Associated Use Cases

**UC1: Start Timer**
- Technician: Begin work on ticket
- Status: NotStarted → Running
- Tracking: Record start time

**UC2: Pause Timer**
- Technician: Take lunch/break
- Status: Running → Paused
- Tracking: Record pause time

**UC3: Resume Timer**
- Technician: Return from break
- Status: Paused → Running
- Tracking: Update total time

**UC4: Bill for Time**
- System: Generate invoice when ticket closed
- Status: Running/Paused → Billed
- Amount: Calculate from hourly rate
- Use Case: Time-and-materials billing

**UC5: Adjust Time (Manual)**
- Manager: Correct time entry
- Reason: Non-productive time, mistakes
- Action: Update billed amount

---

## WIZARD WORKFLOWS (30+ Pages)

### Wizard 1: Automated Contract Billing (7 Pages)

**Flow**: Select Date → Choose Contracts → Preview → Configure → Send

**Page 1: Separator - "Step 1: Verträge auswählen"**
- Header only

**Page 2: Billing Date & Filters**
- Input: ContractDateFilter (DateTime)
- Filters: CalculationKind, BillingKinds, ContractExtraKind
- Submit: Load matching contracts

**Page 3: Contract Selection**
- Display: Filtered contracts with indicators
- Multi-select: Choose contracts to bill
- Actions: Preview, calculate totals

**Page 4: Separator - "Step 2: Einstellungen"**
- Header only

**Page 5: Send Settings**
- Options: Print, Email, Archive
- Email: Recipient configuration
- Print: Printer selection

**Page 6: Separator - "Step 3: Verträge abrechnen"**
- Header only

**Page 7: Overview & Execute**
- Preview: Summary of invoices to create
- Execute: Confirm and run billing
- Result: Success/error summary

**UC: Complete Automated Billing Run**
1. Specify billing date
2. Filter contracts (date, type, kind, interval)
3. Review matching contracts
4. Configure delivery method
5. Preview invoices
6. Execute billing
7. Receive confirmation

---

### Wizard 2: Campaign Management (9 Pages)

**Page 1: Customer Selection**
- Add customers to campaign

**Page 2: Campaign Phase Definition**
- Define campaign phases (awareness, consideration, decision)

**Page 3: Employee Assignment**
- Assign sales reps to campaign

**Page 4: Campaign Information**
- Enter campaign name, budget, timeline

**Page 5: Campaign Reasons/Goals**
- Define success criteria

**Page 6: Summary**
- Review all settings

**And more pages for specific campaign types...**

**UC: Execute Multi-Phase Campaign**
1. Select target customers
2. Define campaign funnel
3. Assign team members
4. Set budget and goals
5. Define success metrics
6. Launch campaign
7. Track progress

---

### Wizard 3: Contract Management (13 Pages)

**Page 1: Contract Details**
- Contract number, customer, type, dates

**Page 2: Billing Address**
- Shipping/billing address selection

**Page 3: Positions/Line Items**
- Add articles, quantities, prices

**Page 4: Provision Settings**
- Commission structure, bonus rules

**Page 5: Controlling Parameters**
- Cost centers, budget allocation

**Page 6: Reductions/Discounts**
- Apply volume discounts, promotional rates

**Page 7: Contingent Settings**
- Set usage limits (GB, minutes, incidents)

**Page 8: Task Generation**
- Auto-create tasks from contract milestones

**Page 9: Email Templates**
- Select templates for notifications

**Page 10: Master Data**
- Link master records (contacts, accounts)

**Page 11: Article References**
- Link articles/services to contract

**Page 12: Attachments**
- Upload contract documents, SOWs

**Page 13: Maintenance & Logs**
- View contract history

**UC: Create Complex Contract**
1. Enter contract header information
2. Configure billing details
3. Add line items with pricing
4. Set up commission structure
5. Define budget controls
6. Apply usage limits
7. Define contingent pool
8. Auto-generate tasks
9. Link templates
10. Configure notifications
11. Attach supporting documents
12. Review contract summary
13. Save contract with audit trail

---

## Validation Rules Discovery (431 Total)

**Key Validation Domains**:

1. **Customer Validations** (45 rules)
   - Credit limit checks
   - Payment term validations
   - Active status verification

2. **Order Validations** (60 rules)
   - Item availability
   - Price verification
   - Tax calculation
   - Discount limits

3. **Billing Validations** (80 rules)
   - Invoice date range
   - Amount verification
   - Contract status
   - Customer qualification

4. **Helpdesk Validations** (55 rules)
   - Category/priority mapping
   - SLA time calculation
   - Assignment validation
   - Status transition rules

5. **Financial Validations** (70 rules)
   - GL account validation
   - Tax code verification
   - Exchange rate checks
   - Rounding rules

6. **System Validations** (121 rules)
   - User rights verification
   - Lock/delete prevention
   - Duplicate detection
   - Data integrity checks

---

## Summary Statistics

| Component | Count | Documented | Gap |
|-----------|-------|-----------|-----|
| State Machines | 9 | 1 | 89% |
| Wizard Workflows | 4 | 0 | 100% |
| Wizard Pages | 30+ | 0 | 100% |
| Validation Rules | 431 | ~50 | 88% |
| **Total** | **474** | **~51** | **89%** |

---

## Recommendations

### High Priority
1. **Document all state machines** with transition diagrams
2. **Create wizard flowcharts** with decision points
3. **Centralize validation rules** with business logic explanations
4. **Map state machine transitions** to use cases

### Medium Priority
5. **Add SLA time calculations** to ticket state machine
6. **Document escalation rules** for state transitions
7. **Create user documentation** for wizard workflows

### Implementation
- Use state diagram notation (PlantUML, Mermaid)
- Link to code implementations
- Include business rule explanations
- Provide transition examples

