Overview
TheEncomienda class represents a shipment/package in the App Courier system. It contains comprehensive information about the sender (remitente), recipient (destinatario), delivery details, and tracking information.
Location: lib/models/encomienda.dart
Class Definition
Constructor
JSON Serialization
fromJson (Standard API Response)
Parses encomienda data from the standard list endpoint:fromSolicitudJson (Solicitud API Response)
Parses encomienda data from solicitud-specific endpoints:toJson (Create Encomienda)
Serializes encomienda for creation endpoint:solicitudEnvioToJson (Create Solicitud)
Serializes encomienda for solicitud creation:Field Groups
Identification Fields
Identification Fields
- id: Unique encomienda ID (String)
- idEncomienda: Numeric encomienda ID
- idUsuarioSolicita: User who created the solicitud
- serieRemito: Tracking number (e.g., “REM-2024-001234”)
Branch Fields
Branch Fields
- agenciaOrigen: Origin branch name
- agenciaDestino: Destination branch name
- idAgenciaDestino: Destination branch ID
Sender (Remitente) Fields
Sender (Remitente) Fields
- idRemitente: Customer ID of sender
- remitente: Full name
- remitenteDocumento: DNI/RUC
- remitenteDireccion: Address
- remitenteReferencia: Address reference
- remitenteContacto: Contact person name
- remitenteCelular: Phone number
- Geographic IDs: Department, Province, District IDs
- Geographic Names: Department, Province, District names
Recipient (Destinatario) Fields
Recipient (Destinatario) Fields
- idDestinatario: Customer ID of recipient
- destinatario: Full name
- destinatarioDocumento: DNI/RUC
- destinatarioDireccion: Address
- destinatarioReferencia: Address reference
- destinatarioContacto: Contact person name
- destinatarioCelular: Phone number
- Geographic IDs: Department, Province, District IDs
- Geographic Names: Department, Province, District names
Shipment Details
Shipment Details
- tipoPago: Payment type (“Efectivo”, “Deposito”, etc.)
- tipoEntrega: Delivery type (“Agencia a Agencia”, “Domicilio a Domicilio”, etc.)
- tipoEnvio: Shipping type (“Normal”, “Express”)
- costoTotal: Total cost
- kg: Weight in kilograms
- cantidad: Number of packages
- fecha: Creation date
- hora: Creation time
- fechaEntrega: Delivery date
- medio: Transport method
- observacion: Additional notes
- guiaRemitente: Sender’s tracking reference
Tracking Fields
Tracking Fields
- ultimoEstado: Current status text
- colorEstado: Status color for UI
- motorizado: Assigned driver name(s)
- cantidadTotal: Total quantity
Payment Fields
Payment Fields
- banco: Bank name (for deposit payments)
- nroOperacion: Operation number (for deposit payments)
Usage Examples
Create New Encomienda
Display Encomienda Details
Parse from API Response
Related Models
- Customer Model - Sender and recipient details
- Motorizado Model - Driver assignment
- HistorialEstado - Status history tracking
- Estado - Available status transitions
- PrecioCalculo - Price calculation results
- Imagen - Delivery proof images
Service Methods
TheEncomiendaService provides methods for working with encomiendas:
getEncomiendas()- List encomiendas with filterscreateEncomienda()- Create new encomiendagetEncomiendaByRemito()- Find by tracking numbergetHistorialEstados()- Get status historyaddEstadoEncomienda()- Add new statuscalcularPrecio()- Calculate shipping costasignarMotorizadosAEncomienda()- Assign drivers