Files
home-control/lib/models/servicio.dart
Super User bbd20f66da Facturas recurrentes, edición, padding, y política de privacidad
- Servicio: nuevo campo esRecurrente + migración DB v2
- Al marcar pagada una factura recurrente se genera la siguiente
- Editar facturas existentes desde CrearFacturaScreen
- Nuevo método actualizarFactura en FacturaProvider
- padding inferior en listas de facturas y servicios (último item visible)
- Nota de factura visible en subtítulo
- Filtro Vencidas corregido
- Monto pendiente total visible en dashboard
- Botón undo para revertir factura pagada
- Configuración de release signing (keystore)
- Pantalla de política de privacidad en la app + PRIVACY_POLICY.md
2026-06-15 21:45:59 -04:00

59 lines
1.5 KiB
Dart

class Servicio {
final int? id;
final String nombre;
final String icono;
final int color;
final int diaVencimiento;
final String fechaCreacion;
final bool esRecurrente;
Servicio({
this.id,
required this.nombre,
required this.icono,
required this.color,
required this.diaVencimiento,
required this.fechaCreacion,
this.esRecurrente = false,
});
Servicio copyWith({
int? id,
String? nombre,
String? icono,
int? color,
int? diaVencimiento,
String? fechaCreacion,
bool? esRecurrente,
}) =>
Servicio(
id: id ?? this.id,
nombre: nombre ?? this.nombre,
icono: icono ?? this.icono,
color: color ?? this.color,
diaVencimiento: diaVencimiento ?? this.diaVencimiento,
fechaCreacion: fechaCreacion ?? this.fechaCreacion,
esRecurrente: esRecurrente ?? this.esRecurrente,
);
Map<String, dynamic> toMap() => {
'id': id,
'nombre': nombre,
'icono': icono,
'color': color,
'dia_vencimiento': diaVencimiento,
'fecha_creacion': fechaCreacion,
'es_recurrente': esRecurrente ? 1 : 0,
};
factory Servicio.fromMap(Map<String, dynamic> map) => Servicio(
id: map['id'] as int?,
nombre: map['nombre'] as String,
icono: map['icono'] as String,
color: map['color'] as int,
diaVencimiento: map['dia_vencimiento'] as int,
fechaCreacion: map['fecha_creacion'] as String,
esRecurrente: (map['es_recurrente'] as int? ?? 0) == 1,
);
}