Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion android/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ android {
applicationId = "com.example.store_sqlite"
// You can update the following values to match your application needs.
// For more information, see: https://flutter.dev/to/review-gradle-config.
minSdk = flutter.minSdkVersion
minSdk = 26
targetSdk = flutter.targetSdkVersion
versionCode = flutter.versionCode
versionName = flutter.versionName
Expand Down
Binary file added assets/img/logo_pizza.jfif
Binary file not shown.
28 changes: 28 additions & 0 deletions lib/controller/Comunidad_controller.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import 'package:store_sqlite/database/database.dart';
import 'package:store_sqlite/models/comunidad_model.dart';

class ComunidadController {
final TiendaDataBase _dataBase = TiendaDataBase();

Future<int> insertarComunidad(String table, Map<String, dynamic> row) async {
final db = await _dataBase.database;
return await db.insert(table, row);
}

Future<List<ComunidadModel>?> mostrarTodasLasComunidades() async {
var con = await _dataBase.database;
var result = await con.query('comunidad');
return result.map((comunidad)=>ComunidadModel.fromMap(comunidad)).toList();
}

Future<int> actualizarComunidad(String table, Map<String, dynamic> row) async {
var con = await _dataBase.database;
return await con
.update(table, row, where: 'id_comunidad = ?', whereArgs: [row['id_comunidad']]);
}
Future<int> eliminarComunidad(String table, int id_comunidad) async {
var con = await _dataBase.database;
return await con.delete(table, where: 'id_comunidad = ?', whereArgs: [id_comunidad]);
}

}
40 changes: 40 additions & 0 deletions lib/controller/carrito_controller.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import 'package:store_sqlite/database/database.dart';
import 'package:store_sqlite/models/carrito_model.dart';

class CarritoController {
final TiendaDataBase _dataBase = TiendaDataBase();

Future<int> insertCarrito(String table, Map<String, dynamic> row) async {
final db = await _dataBase.database;
return await db.insert(table, row);
}

Future<List<CarritoModel>?> mostrarCarritos() async {
var con = await _dataBase.database;
var result = await con.query('id_carrito');
return result.map((carrito) => CarritoModel.fromMap(carrito)).toList();
}
Future<List<Map<String, dynamic>>?> mostrarTodosLosCarritos() async {
var con = await _dataBase.database;
var result = await con.rawQuery('''
SELECT *,sum(cantidad) as cantidad, sum(subtotal) as subtotal
FROM carrito c
inner join producto p on c.id_producto = p.id_producto
group by p.id_producto
'''); // Aquí se pasa el parámetro
print(result);
return result;
}

Future<int> actualizarCarrito(String table, Map<String, dynamic> row) async {
var con = await _dataBase.database;
return await con.update(table, row,
where: 'id_carrito = ?', whereArgs: [row['id_carrito']]);
}

Future<int> eliminarCarrito(String table, int id_carrito) async {
var con = await _dataBase.database;
return await con
.delete(table, where: 'id_carrito = ?', whereArgs: [id_carrito]);
}
}
30 changes: 30 additions & 0 deletions lib/controller/categoria_controller.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
import 'package:sqflite/sqflite.dart';
import 'package:store_sqlite/database/database.dart';
import 'package:store_sqlite/models/categoria_model.dart';

class CategoriaController {
final TiendaDataBase _dataBase = TiendaDataBase();

Future<int> insertCategoria(String table, Map<String, dynamic> row) async {
final db = await _dataBase.database;
return await db.insert(table, row);
}

Future<List<CategoriaModel>?> mostrarTodasLasCategorias() async {
var con = await _dataBase.database;
var result = await con.query('categoria');
return result.map((categoria)=>CategoriaModel.fromMap(categoria)).toList();
}

Future<int> actualizarCategoria(String table, Map<String, dynamic> row) async {
var con = await _dataBase.database;
return await con
.update(table, row, where: 'id_categoria = ?', whereArgs: [row['id_categoria']]);
}
Future<int> eliminarCategoria(String table, int id_categoria) async {
var con = await _dataBase.database;
return await con.delete(table, where: 'id_categoria = ?', whereArgs: [id_categoria]);
}

// Métodos adicionales como update, delete, etc.
}
28 changes: 28 additions & 0 deletions lib/controller/direccion_controller.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import 'package:store_sqlite/database/database.dart';
import 'package:store_sqlite/models/direccion_model.dart';

class DireccionController {
final TiendaDataBase _dataBase = TiendaDataBase();

Future<int> insertDireccion(String table, Map<String, dynamic> row) async {
final db = await _dataBase.database;
return await db.insert(table, row);
}

Future<List<DireccionModel>?> mostrarTodasLasDirecciones() async {
var con = await _dataBase.database;
var result = await con.query('categoria');
return result.map((direccion)=>DireccionModel.fromMap(direccion)).toList();
}

Future<int> actualizarDireccion(String table, Map<String, dynamic> row) async {
var con = await _dataBase.database;
return await con
.update(table, row, where: 'id_direccion = ?', whereArgs: [row['id_direccion']]);
}
Future<int> eliminarDireccion(String table, int id_direccion) async {
var con = await _dataBase.database;
return await con.delete(table, where: 'id_direccion = ?', whereArgs: [id_direccion]);
}

}
28 changes: 28 additions & 0 deletions lib/controller/listaPedido_controller.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import 'package:store_sqlite/database/database.dart';
import 'package:store_sqlite/models/lista_pedido_model.dart';

class ListapedidoController {
final TiendaDataBase _dataBase = TiendaDataBase();

Future<int> insertarListaPedido(String table, Map<String, dynamic> row) async {
final db = await _dataBase.database;
return await db.insert(table, row);
}

Future<List<ListaPedidoModel>?> mostrarTodosLosListaPedidos() async {
var con = await _dataBase.database;
var result = await con.query('lista_pedido');
return result.map((lista_pedido)=>ListaPedidoModel.fromMap(lista_pedido)).toList();
}

Future<int> actualizarListaPedido(String table, Map<String, dynamic> row) async {
var con = await _dataBase.database;
return await con
.update(table, row, where: 'id_lista_pedido = ?', whereArgs: [row['id_lista_pedido']]);
}
Future<int> eliminarListaPedido(String table, int id_lista_pedido) async {
var con = await _dataBase.database;
return await con.delete(table, where: 'id_lista_pedido = ?', whereArgs: [id_lista_pedido]);
}

}
29 changes: 29 additions & 0 deletions lib/controller/municipio_controller.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
import 'package:store_sqlite/database/database.dart';
import 'package:store_sqlite/models/municipio_model.dart';

class MunicipioController {
final TiendaDataBase _dataBase = TiendaDataBase();

Future<int> insertarMunicipio(String table, Map<String, dynamic> row) async {
final db = await _dataBase.database;
return await db.insert(table, row);
}

Future<List<MunicipioModel>?> mostrarTodosLosMunicipios() async {
var con = await _dataBase.database;
var result = await con.query('municipio');
return result.map((municipio)=>MunicipioModel.fromMap(municipio)).toList();
}

Future<int> actualizarMunicipio(String table, Map<String, dynamic> row) async {
var con = await _dataBase.database;
return await con
.update(table, row, where: 'id_municipio = ?', whereArgs: [row['id_municipio']]);
}
Future<int> eliminarMunicipio(String table, int id_municipio) async {
var con = await _dataBase.database;
return await con.delete(table, where: 'id_municipio = ?', whereArgs: [id_municipio]);
}


}
120 changes: 120 additions & 0 deletions lib/controller/pedido_controller.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
import 'package:store_sqlite/database/database.dart';
import 'package:store_sqlite/models/pedido_model.dart';

class PedidoController {
final TiendaDataBase _dataBase = TiendaDataBase();

Future<int> insertarPedido(String table, Map<String, dynamic> row) async {
final db = await _dataBase.database;
return await db.insert(table, row);
}

Future<List<PedidoModel>?> mostrarTodosLosPedidos(int opc) async {
var con = await _dataBase.database;

// Definimos el tipo de result para mayor claridad.
List<Map<String, dynamic>> result;

switch (opc) {
case 0:
result =
await con.query('pedido', where: 'id_status = ?', whereArgs: [2]);
break;
case 1:
result = await con.query('pedido');
break;
case 2:
result =
await con.query('pedido', where: 'id_status = ?', whereArgs: [1]);
break;
default:
return []; // Si opc no coincide con ninguno, retornamos una lista vacía.
}

// Verificamos si result está vacío o nulo antes de mapear.
if (result.isNotEmpty) {
return result.map((pedido) => PedidoModel.fromMap(pedido)).toList();
} else {
return [];
}
}

Future<int> actualizarPedido(String table, Map<String, dynamic> row) async {
var con = await _dataBase.database;
return await con.update(table, row,
where: 'id_pedido = ?', whereArgs: [row['id_pedido']]);
}

Future<int> eliminarPedido(String table, int id_pedido) async {
var con = await _dataBase.database;
return await con
.delete(table, where: 'id_pedido = ?', whereArgs: [id_pedido]);
}

Future<List<Map<String, dynamic>>?> mostrarPedidosConListaPedido(
int? id_pedido) async {
var con = await _dataBase.database;
var result = await con.rawQuery('''
SELECT *
FROM lista_pedido
inner join producto on lista_pedido.id_producto=producto.id_producto
where id_pedido=?
''', [id_pedido]); // Aquí se pasa el parámetro
print(id_pedido);
print(result);
return result;
}

Future<List<Map<String, dynamic>>?> mostrarTodosLosPedidosSinId() async {
var con = await _dataBase.database;
var result = await con.rawQuery('''
SELECT *
FROM pedido p
inner join direccion d on p.id_direccion=d.id_direccion
'''); // Aquí se pasa el parámetro

print(result);
return result;
}

Future<List<Map<String, dynamic>>?> mostrarPedidoDatosCliente(
int? id_pedido) async {
var con = await _dataBase.database;
var result = await con.rawQuery('''
Select * from direccion d
inner join pedido p on d.id_direccion=p.id_direccion
inner join comunidad c on d.id_comunidad=c.id_comunidad
inner join municipio m on c.id_municipio=m.id_municipio
where p.id_pedido=?
group by p.id_pedido
limit 1
''', [id_pedido]); // Aquí se pasa el parámetro
print(id_pedido);
print(result);
return result;

// SELECT
// pedido.id_pedido,
// pedido.fecha_entrega,
// pedido.id_status,
// direccion.calle,
// direccion.colonia,
// direccion.no_exterior,
// direccion.no_interior,
// direccion.num_telefono,
// FROM
// lista_pedido
// INNER JOIN
// producto ON lista_pedido.id_producto = producto.id_producto
// INNER JOIN
// pedido ON lista_pedido.id_pedido = pedido.id_pedido
// INNER JOIN
// direccion ON pedido.id_direccion = direccion.id_direccion
// INNER JOIN
// categoria ON producto.id_categoria = categoria.id_categoria
// WHERE
// lista_pedido.id_pedido = ?
// GROUP BY
// pedido.id_pedido;
}
}
42 changes: 42 additions & 0 deletions lib/controller/producto_controller.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
import 'package:store_sqlite/database/database.dart';
import 'package:store_sqlite/models/producto_model.dart';

class ProductoController {
final TiendaDataBase _dataBase = TiendaDataBase();

Future<int> insertProducto(String table, Map<String, dynamic> row) async {
final db = await _dataBase.database;
return await db.insert(table, row);
}

Future<List<ProductoModel>?> mostrarTodosLosProductos() async {
var con = await _dataBase.database;
var result = await con.query('producto');
return result.map((producto) => ProductoModel.fromMap(producto)).toList();
}

Future<List<Map<String, dynamic>>?> mostrarProductosConCategoria() async {
var con = await _dataBase.database;
var result = await con.rawQuery(
'''
SELECT *
FROM producto p
inner join categoria c on p.id_categoria=c.id_categoria
''',
);
return result;
}


Future<int> actualizarProducto(String table, Map<String, dynamic> row) async {
var con = await _dataBase.database;
return await con.update(table, row,
where: 'id_producto = ?', whereArgs: [row['id_producto']]);
}

Future<int> eliminarProducto(String table, int id_producto) async {
var con = await _dataBase.database;
return await con
.delete(table, where: 'id_producto = ?', whereArgs: [id_producto]);
}
}
28 changes: 28 additions & 0 deletions lib/controller/status_controller.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
import 'package:store_sqlite/database/database.dart';
import 'package:store_sqlite/models/status_model.dart';

class StatusController {
final TiendaDataBase _dataBase = TiendaDataBase();

Future<int> insertarNuevoStatus(String table, Map<String, dynamic> row) async {
final db = await _dataBase.database;
return await db.insert(table, row);
}

Future<List<StatusModel>?> mostrarTodosLosStatus() async {
var con = await _dataBase.database;
var result = await con.query('status');
return result.map((status)=>StatusModel.fromMap(status)).toList();
}

Future<int> actualizarStatus(String table, Map<String, dynamic> row) async {
var con = await _dataBase.database;
return await con
.update(table, row, where: 'id_status = ?', whereArgs: [row['id_status']]);
}
Future<int> eliminarStatus(String table, int id_status) async {
var con = await _dataBase.database;
return await con.delete(table, where: 'id_status = ?', whereArgs: [id_status]);
}

}
Loading