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
Binary file added assets/icons/icon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/icons/logotipo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/appbar.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/boleto.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/contrato.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/extrato-bancario.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/fatura.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/notaFiscal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/pessoal.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/recibo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
149 changes: 0 additions & 149 deletions lib/components/categoriaList.dart

This file was deleted.

10 changes: 0 additions & 10 deletions lib/components/modal_edit_del_document.dart

This file was deleted.

159 changes: 159 additions & 0 deletions lib/database/database_config.dart
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
import 'dart:io';
import 'package:path/path.dart';
import 'package:sqflite/sqflite.dart';
import 'package:to_file/models/categoria.dart';
import 'package:path_provider/path_provider.dart';

import '../models/documento.dart';
import '../models/notificacao.dart';

class DatabaseHelper {
DatabaseHelper._privateConstructor();
static final DatabaseHelper instance = DatabaseHelper._privateConstructor();

static Database? _database;
Future<Database> get database async => _database ??= await _initDatabase();

Future<Database> _initDatabase() async {
Directory documentsDirectory = await getApplicationDocumentsDirectory();
print(documentsDirectory.path);
String path = documentsDirectory.path + '/' + 'twofile.db';

return await openDatabase(path, version: 2, onCreate: _onCreate);
}

Future _onCreate(Database db, int version) async {
await db.execute(documentos);
await db.execute(notificacoes);
await db.execute(categorias);
}

String documentos = '''
CREATE TABLE documentos(
id INTEGER PRIMARY KEY AUTOINCREMENT,
nome VARCHAR(255) NOT NULL,
dataCompetencia DATE NULL,
dataValidade DATE NULL,
criadoEm DATE NULL,
categoria_id INT NOT NULL,
FOREIGN KEY (categoria_id) REFERENCES categorias (id)
)''';

String notificacoes = '''
CREATE TABLE notificacoes(
id INTEGER PRIMARY KEY AUTOINCREMENT
)''';

String categorias = '''
CREATE TABLE categorias(
id INTEGER PRIMARY KEY AUTOINCREMENT,
nome TEXT
)''';

//Return Lista de documentos por id categoria
Future<List<Documento>> listDocumentosByCategoriaId(int id) async {
Database db = await instance.database;
var documentos = await db.query('documentos',
orderBy: 'nome', where: 'categoria_id = ?', whereArgs: [id]);
List<Documento> documentosList = documentos.isNotEmpty
? documentos.map((document) => Documento.fromMap(document)).toList()
: [];
return documentosList;
}

//Return Lista de documentos
Future<List<Documento>> listDocumentos() async {
Database db = await instance.database;
var documentos = await db.query('documentos', orderBy: 'nome');
List<Documento> documentosList = documentos.isNotEmpty
? documentos.map((e) => Documento.fromMap(e)).toList()
: [];
return documentosList;
}

//adicionar Documento
Future<int> addDocumento(Documento documento) async {
Database db = await instance.database;
return await db.insert('documentos', documento.toMap());
}

//remover documento
Future<int> removeDocumento(int id) async {
Database db = await instance.database;
return await db.delete('documentos', where: 'id = ?', whereArgs: [id]);
}

//editar documento
Future<int> updateDocumento(Documento documento) async {
Database db = await instance.database;
return await db.update('documentos', documento.toMap(),
where: 'id = ?', whereArgs: [documento.id]);
}

// Retorna todas as categorias
Future<List<Categoria>> todasCategorias() async {
Database db = await instance.database;
List<Map<String, dynamic>> allRows = await db.query('categorias');
List<Categoria> categorias =
allRows.map((categoria) => Categoria.fromMap(categoria)).toList();
return categorias;
}

//Return Lista de dcategorias
Future<List<Categoria>> listCategoriaById() async {
Database db = await instance.database;
var categorias = await db.query('categorias', orderBy: 'id');
List<Categoria> categoriaList = categorias.isNotEmpty
? categorias.map((e) => Categoria.fromMap(e)).toList()
: [];
return categoriaList;
}

//adicionar Categoria
Future<int> addCategoria(Categoria categoria) async {
Database db = await instance.database;
return await db.insert('categorias', categoria.toMap());
}

//remover categoria
Future<int> removeCategoria(int id) async {
Database db = await instance.database;
return await db.delete('categorias', where: 'id = ?', whereArgs: [id]);
}

//editar categoria
Future<int> updateCategoria(Categoria categoria) async {
Database db = await instance.database;
return await db.update('categorias', categoria.toMap(),
where: 'id = ?', whereArgs: [categoria.id]);
}

//Return Lista de dcategorias
Future<List<Notificacao>> listNotificacoes() async {
Database db = await instance.database;
var notificacoes = await db.query('notificacoes', orderBy: 'id');
List<Notificacao> notificacoesList = notificacoes.isNotEmpty
? notificacoes.map((e) => Notificacao.fromMap(e)).toList()
: [];
return notificacoesList;
}

//adicionar Notificacao
Future<int> addNotificacao(Notificacao notificacao) async {
Database db = await instance.database;
return await db.insert('categorias', notificacao.toMap());
}

//remover notificacao
Future<int> removeNotificacao(int id) async {
Database db = await instance.database;
return await db.delete('notificacoes', where: 'id = ?', whereArgs: [id]);
}

//editar categoria
Future<int> updateNotificacao(Notificacao notificacao) async {
Database db = await instance.database;
return await db.update('notificacoes', notificacao.toMap(),
where: 'id = ?', whereArgs: [notificacao.id]);
}
}
38 changes: 19 additions & 19 deletions lib/main.dart
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
import 'package:first_app/pages/listview_categoria_page.dart';
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:to_file/pages/homePage.dart';

main() => runApp(TwoFileApp());

class TwoFileApp extends StatefulWidget {
@override
State<TwoFileApp> createState() => _TwoFileAppState();
void main() {
WidgetsFlutterBinding.ensureInitialized();
runApp(const TwoFileApp());
}

class _TwoFileAppState extends State<TwoFileApp> {
class TwoFileApp extends StatelessWidget {
const TwoFileApp({Key? key}) : super(key: key);

@override
Widget build(BuildContext context) {
final ThemeData tema = ThemeData();

return MaterialApp(
debugShowCheckedModeBanner: false,
home: CategoriaListPage(),
theme: tema.copyWith(
colorScheme: tema.colorScheme.copyWith(
primary: const Color(0xff0C322C),
secondary: Colors.amber,
),
),
);
return const MaterialApp(
localizationsDelegates: [
GlobalWidgetsLocalizations.delegate,
GlobalMaterialLocalizations.delegate,
],
supportedLocales: [
Locale("pt", "BR")
],
debugShowCheckedModeBanner: false,
home: HomePage() // tela inicial do App
);
}
}
28 changes: 22 additions & 6 deletions lib/models/categoria.dart
Original file line number Diff line number Diff line change
@@ -1,9 +1,25 @@
class Categoria{
class Categoria {
int? id;
String nome;
// String? nome_icone;
// DateTime criadoEm;

int? id;
String? nome;
String? nome_icone;
DateTime? timestamp;
Categoria({
this.id,
required this.nome,
});

Categoria({this.nome, this.nome_icone, this.timestamp});
factory Categoria.fromMap(Map<String, dynamic> json) => Categoria(
id: json['id'],
nome: json['name'],
// criadoEm: json['criado_em'],
//inserir o campo nomeIcone
);

Map<String, dynamic> toMap() => {
'id': id,
'name': nome,
// 'criado_em': criadoEm,
//inserir o campo nomeIcone
};
}
Loading