|
@@ -6,7 +6,7 @@ import 'package:sqflite/sqflite.dart';
|
|
import '../models/models.dart';
|
|
import '../models/models.dart';
|
|
|
|
|
|
class RepoService<T> {
|
|
class RepoService<T> {
|
|
- static int dbVersion = 12;
|
|
|
|
|
|
+ static int dbVersion = 13;
|
|
static String dbName = 'joshipos026.db';
|
|
static String dbName = 'joshipos026.db';
|
|
static const String id = Basico.identificadorWeb;
|
|
static const String id = Basico.identificadorWeb;
|
|
static const String idLocal = Basico.identificadorLocal;
|
|
static const String idLocal = Basico.identificadorLocal;
|
|
@@ -116,6 +116,45 @@ class RepoService<T> {
|
|
eliminado TEXT
|
|
eliminado TEXT
|
|
)
|
|
)
|
|
''');
|
|
''');
|
|
|
|
+
|
|
|
|
+ await db.execute('''
|
|
|
|
+ ALTER TABLE Pedido ADD COLUMN idWeb INTEGER;
|
|
|
|
+ ''');
|
|
|
|
+ await db.execute('''
|
|
|
|
+ ALTER TABLE Pedido ADD COLUMN sincronizado TEXT;
|
|
|
|
+ ''');
|
|
|
|
+ await db.execute('''
|
|
|
|
+ ALTER TABLE PedidoProducto ADD COLUMN idWeb INTEGER;
|
|
|
|
+ ''');
|
|
|
|
+ await db.execute('''
|
|
|
|
+ ALTER TABLE PedidoProducto ADD COLUMN sincronizado TEXT;
|
|
|
|
+ ''');
|
|
|
|
+
|
|
|
|
+ await db.insert('Variable', {
|
|
|
|
+ 'nombre': 'Imprimir Ticket Cocina',
|
|
|
|
+ 'clave': 'ticket_cocina',
|
|
|
|
+ 'descripcion':
|
|
|
|
+ 'Variable para imprimir ticket de cocina automaticamente al momento de generar un pedido',
|
|
|
|
+ 'activo': 1,
|
|
|
|
+ 'idLocal': -1,
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ await db.insert('Variable', {
|
|
|
|
+ 'nombre': 'Imprimir Ticket Venta',
|
|
|
|
+ 'clave': 'ticket_venta',
|
|
|
|
+ 'descripcion':
|
|
|
|
+ 'Variable para imprimir ticket de venta automaticamente al momento de generar un pedido',
|
|
|
|
+ 'activo': 1,
|
|
|
|
+ 'idLocal': -1,
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ await db.insert('Variable', {
|
|
|
|
+ 'nombre': 'Sucursal',
|
|
|
|
+ 'clave': 'PRUEBA',
|
|
|
|
+ 'descripcion': 'Sucursal Prueba',
|
|
|
|
+ 'activo': 1,
|
|
|
|
+ 'idLocal': -1,
|
|
|
|
+ });
|
|
}
|
|
}
|
|
|
|
|
|
void _onUpgrade(Database db, int oldVersion, int newVersion) async {
|
|
void _onUpgrade(Database db, int oldVersion, int newVersion) async {
|
|
@@ -420,6 +459,16 @@ class RepoService<T> {
|
|
try {
|
|
try {
|
|
print("Guardando modelo en la base de datos: ${model.runtimeType}");
|
|
print("Guardando modelo en la base de datos: ${model.runtimeType}");
|
|
|
|
|
|
|
|
+ // Comprobar si es un modelo que obtiene las fechas del servidor (Producto o CategoriaProducto)
|
|
|
|
+ if (model is Producto || model is CategoriaProducto) {
|
|
|
|
+ // No hacer nada, las fechas vienen del servidor
|
|
|
|
+ print("Usando fechas del servidor para ${model.runtimeType}");
|
|
|
|
+ } else if (model is Basico) {
|
|
|
|
+ // Generar las fechas localmente para otros modelos
|
|
|
|
+ asignarFechasLocalmente(model);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ // Convertir el modelo a JSON para la base de datos
|
|
String modelo = json.encode(model, toEncodable: toEncodable);
|
|
String modelo = json.encode(model, toEncodable: toEncodable);
|
|
print("Modelo convertido a JSON: $modelo");
|
|
print("Modelo convertido a JSON: $modelo");
|
|
|
|
|
|
@@ -457,6 +506,14 @@ class RepoService<T> {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ void asignarFechasLocalmente(Basico model) {
|
|
|
|
+ DateTime ahora = DateTime.now();
|
|
|
|
+ if (model.creado == null) {
|
|
|
|
+ model.creado = ahora.toUtc();
|
|
|
|
+ }
|
|
|
|
+ model.modificado = ahora.toUtc();
|
|
|
|
+ }
|
|
|
|
+
|
|
Future<void> _guardarToppings(
|
|
Future<void> _guardarToppings(
|
|
Database db, int idProducto, List<Producto>? topings) async {
|
|
Database db, int idProducto, List<Producto>? topings) async {
|
|
await db.delete('ProductoTopping',
|
|
await db.delete('ProductoTopping',
|
|
@@ -776,8 +833,8 @@ class RepoService<T> {
|
|
|
|
|
|
if (categoriaLocal.id != 0 &&
|
|
if (categoriaLocal.id != 0 &&
|
|
categoriaApi.modificado != null &&
|
|
categoriaApi.modificado != null &&
|
|
- categoriaLocal.modificado != null &&
|
|
|
|
- categoriaApi.modificado!.isAfter(categoriaLocal.modificado!)) {
|
|
|
|
|
|
+ (categoriaLocal.modificado == null ||
|
|
|
|
+ categoriaApi.modificado!.isAfter(categoriaLocal.modificado!))) {
|
|
await RepoService().guardar(categoriaApi);
|
|
await RepoService().guardar(categoriaApi);
|
|
} else if (categoriaLocal.id == 0) {
|
|
} else if (categoriaLocal.id == 0) {
|
|
await RepoService().guardar(categoriaApi);
|
|
await RepoService().guardar(categoriaApi);
|
|
@@ -800,7 +857,6 @@ class RepoService<T> {
|
|
|
|
|
|
if (productoLocal.id != 0 &&
|
|
if (productoLocal.id != 0 &&
|
|
productoApi.modificado != null &&
|
|
productoApi.modificado != null &&
|
|
- productoLocal.modificado != null &&
|
|
|
|
productoApi.modificado!.isAfter(productoLocal.modificado!)) {
|
|
productoApi.modificado!.isAfter(productoLocal.modificado!)) {
|
|
await RepoService().guardar(productoApi);
|
|
await RepoService().guardar(productoApi);
|
|
} else if (productoLocal.id == 0) {
|
|
} else if (productoLocal.id == 0) {
|