Overview
Inventory Transfers allow you to move items between different warehouse locations within EnvaSistema. This operation maintains accurate location-based inventory tracking and ensures proper stock allocation across multiple storage areas or warehouses.Transfers require both an origin and destination location to be specified before the operation can be completed.
Purpose
The Transferencia de Inventario feature enables:- Moving inventory between different warehouse locations
- Reallocating stock for operational efficiency
- Balancing inventory across multiple sites
- Tracking item movement history
- Maintaining location-based inventory accuracy
Use Cases
Location Rebalancing
Redistribute inventory to balance stock levels across warehouses
Operational Transfers
Move items to locations where they’re needed for production or fulfillment
Storage Optimization
Relocate items to more appropriate storage areas
Site Consolidation
Transfer inventory when consolidating or reorganizing warehouse spaces
Available Locations
EnvaSistema supports transfers between the following warehouse locations:CUAVES
Primary warehouse location
MUEBLE
Furniture storage area
JOSE GALVEZ
José Gálvez facility
ENVA
ENVA main location
Location Configuration
Location Configuration
The locations are defined in TransferenciaInventarioScreen.kt:29:These locations appear in dropdown menus for origin and destination selection.
Transfer Workflow
Navigate to Transfers
From the main menu, tap Movimientos to go directly to the Transferencia de Inventario screen.
Unlike Ingresos and Salidas which have sub-menus, Movimientos goes directly to the transfer screen.
Select Origin Location
In the white “UBICACIONES” card:
- Tap the Origen dropdown (marked with a green location icon)
- Select the location where items currently reside
- The dropdown displays ”— Origen —” until a selection is made
Select Destination Location
In the same card:
- Tap the Destino dropdown (marked with a blue location icon)
- Choose where items will be transferred to
- The dropdown shows ”— Destino —” as placeholder text
Scan Items to Transfer
Press the lateral button to scan QR codes of items being transferred. The info banner reads: “Escanee los códigos QR de las piezas o mangas a transferir”The counter label shows: “Ítems a transferir” (Items to transfer)
Review Transfer Details
Before confirming, verify:
- Origin location is correct
- Destination location is correct
- Origin ≠ Destination
- Scanned item count is accurate
- A transfer icon (⇄) appears between the location fields
Screen Layout
The Transferencia de Inventario screen (TransferenciaInventarioScreen.kt:23-204) features a unique dual-location selector layout.Header Section
- Title: “Transferencia de Inventario”
- Subtitle: “MOVIMIENTOS INTERNOS” (Internal Movements)
- Color: Standard blue (
Color(0xFF0061A6))
Location Selector Card
- Layout Structure
- Origin Selector
- Destination Selector
A white elevated card contains:Card Header
- “UBICACIONES” label in gray
- 12sp font size with bold weight
- 0.5sp letter spacing
- Left column: Origin (Origen)
- Right column: Destination (Destino)
- Transfer icon (⇄) centered between columns
- Each column has equal width (
modifier = Modifier.weight(1f))
Dropdown Menu Behavior
Implementation Details
Implementation Details
Each location field uses Material 3 The dropdowns:
DropdownMenu components:- Show all four locations as options
- Close automatically after selection
- Update the respective field value
- Trigger validation for the save button
OutlinedCard with clickable modifier to trigger dropdown display:Scanning Interface
Below the location card, the standard scanning interface includes:- Info banner: “Escanee los códigos QR de las piezas o mangas a transferir”
- Large scan area with QR code icon
- Counter badge with “Ítems a transferir” label
- Empty state message when no items scanned
Action Button
“Confirmar Transferencia” button features:- SyncAlt icon (⇄ arrows)
- 56dp height
- Full width with 16dp rounded corners
- Conditional enabling based on validation logic
Validation Rules
The transfer operation enforces several validation rules to ensure data integrity:Required Fields
Required Fields
All three components must be completed:
- Origin location must be selected
- Destination location must be selected
- At least one item must be scanned
Location Logic
Location Logic
Origin ≠ Destination RuleThe system prevents transferring items to the same location:This validation ensures logical transfers and prevents database inconsistencies.
Button State
Button State
Visual Design Elements
Color Coding
The transfer screen uses strategic color coding for clarity:| Element | Color | Hex Code | Purpose |
|---|---|---|---|
| Origin Icon | Green | #4CAF50 | Indicates source location |
| Destination Icon | Blue | #0061A6 | Indicates target location |
| Transfer Icon | Gray | #BDBDBD | Neutral connector between locations |
| Required Asterisk | Red | #FF0000 | Highlights mandatory fields |
| Enabled Button | Blue | #0061A6 | Ready for action |
| Disabled Button | Gray | #B0BEC5 | Not ready for action |
Icon Usage
- LocationOn Icon: Used for both origin and destination
- SyncAlt Icon: Bidirectional arrows for transfer action and button
- ArrowDropDown Icon: Indicates dropdown functionality
- QrCodeScanner Icon: Standard scanning interface
Spacing and Layout
Design Specifications
Design Specifications
Key measurements from the implementation:
- Card padding: 16dp
- Section spacing: 16dp vertical gaps
- Icon size: 16dp for location pins, 20dp for transfer icon
- Icon spacing: 4dp between icon and text
- Dropdown padding: 12dp inside cards
- Button height: 56dp
- Border radius: 12dp for fields, 16dp for cards and buttons
Best Practices
Planning Transfers
Planning Transfers
Before starting:
- Verify destination has physical space for items
- Confirm items are at the origin location
- Coordinate with staff at destination location
- Check if items need special handling during transfer
- Select origin first, then destination
- Double-check location names before confirming
- Ensure you have the correct location identifiers
Scanning Items
Scanning Items
For accuracy:
- Scan all items being physically transferred
- Verify each scan registers (watch the counter)
- Match digital count with physical item count
- Group related items together when possible
- Ensure QR codes are readable
- Confirm items belong to the origin location
- Verify items are authorized for transfer
Completing Transfers
Completing Transfers
Before confirming:
- Review origin and destination selections
- Verify item count is correct
- Ensure the transfer icon appears between locations
- Confirm the button is enabled (blue)
- Physically move items to destination
- Update any external documentation
- Verify items appear in destination inventory
- File any required paperwork
Error Prevention
Error Prevention
Common mistakes to avoid:
- Don’t select the same location for origin and destination
- Don’t start scanning before selecting locations
- Don’t transfer items not physically present at origin
- Don’t confirm without verifying the item count
- Use the back button to cancel and restart
- Reselect locations if needed
- The system prevents same-location transfers automatically
Technical Implementation
State Management
Reactive State
Reactive State
The screen uses Compose state management:State changes trigger UI recomposition, enabling reactive validation and button state updates.
Reusable Component
The transfer screen extendsScanningLayout with custom:
isSaveButtonEnabledlambda for complex validationextraContentparameter for the location selector card- Custom counter label: “Ítems a transferir”
- Custom button text and icon
Validation Lambda
Button Enable Logic
Button Enable Logic
Navigation Context
Direct Access: Unlike Ingresos and Salidas which have sub-menus, the Movimientos option in the main menu navigates directly to the Transferencia de Inventario screen.From AppNavigation.kt:96-98:
Navigation Flow
- Home Screen → Tap “Movimientos” button
- Transfer Screen → Appears immediately (no sub-menu)
- Back Button → Returns to home screen
- Title: “Transferencia de Inventario”
- Subtitle: “MOVIMIENTOS INTERNOS”
- Back arrow in top-left
Example Scenarios
- Rebalancing Stock
- Production Support
- Storage Reorganization
Scenario: CUAVES has excess inventory that’s needed at MUEBLESteps:
- Select Origen: CUAVES
- Select Destino: MUEBLE
- Scan 15 items at CUAVES location
- Confirm transfer shows “15 Ítems a transferir”
- Tap “Confirmar Transferencia”
- Physically move the 15 items to MUEBLE
- Inventory updates automatically
Related Operations
Inbound Operations
Add inventory to locations
Outbound Operations
Remove inventory from locations
Transformations
Change inventory composition