Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
P
Practica_Flutter_E
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Efren David Jimenez Martinez
Practica_Flutter_E
Commits
a3c2ebea
You need to sign in or sign up before continuing.
Commit
a3c2ebea
authored
Aug 02, 2024
by
Efren David Jimenez Martinez
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Subiendo actividad 8 Formulario categoria
parent
3d1df331
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
67 additions
and
13 deletions
+67
-13
category_service.dart
lib/src/controllers/category_service.dart
+28
-0
category_form.dart
lib/src/pages/category_form.dart
+38
-13
home_page.dart
lib/src/pages/home_page.dart
+1
-0
No files found.
lib/src/controllers/category_service.dart
0 → 100644
View file @
a3c2ebea
import
'dart:convert'
;
import
'package:http/http.dart'
as
http
;
import
'package:practica1_flutter/src/models/category_model.dart'
;
class
CategoryService
{
static
const
String
_baseUrl
=
'https://basic2.visorus.com.mx'
;
Future
<
Map
<
String
,
dynamic
>>
addCategory
(
CategoryModel
category
)
async
{
final
String
url
=
'
$_baseUrl
/categoria'
;
final
Map
<
String
,
dynamic
>
categoryData
=
category
.
toJson
();
try
{
final
http
.
Response
response
=
await
http
.
post
(
Uri
.
parse
(
url
),
body:
json
.
encode
({
"data"
:
[
categoryData
]}),
headers:
{
'Content-Type'
:
'application/json'
},
);
if
(
response
.
statusCode
==
200
)
{
return
{
"statusCode"
:
response
.
statusCode
,
"body"
:
json
.
decode
(
response
.
body
)};
}
else
{
return
{
"statusCode"
:
response
.
statusCode
,
"body"
:
response
.
body
};
}
}
catch
(
e
)
{
return
{
"statusCode"
:
501
,
"body"
:
'
$e
'
};
}
}
}
lib/src/pages/category_form.dart
View file @
a3c2ebea
import
'package:flutter/material.dart'
;
import
'package:flutter/material.dart'
;
class
CategoryForm
extends
StatefulWidget
{
class
CategoryForm
extends
StatelessWidget
{
@override
final
GlobalKey
<
FormState
>
_formKey
=
GlobalKey
<
FormState
>();
_NewCategoryFormState
createState
()
=>
_NewCategoryFormState
();
}
class
_NewCategoryFormState
extends
State
<
CategoryForm
>
{
final
_formKey
=
GlobalKey
<
FormState
>();
final
TextEditingController
_claveController
=
TextEditingController
();
final
TextEditingController
_claveController
=
TextEditingController
();
final
TextEditingController
_fechaCreadoController
=
TextEditingController
();
final
TextEditingController
_fechaCreadoController
=
TextEditingController
();
final
TextEditingController
_nombreController
=
TextEditingController
();
final
TextEditingController
_nombreController
=
TextEditingController
();
// Función para obtener la fecha en milisegundos
int
_getFechaCreadoEnMilisegundos
(
String
fecha
)
{
try
{
// convertimos el String a DateTime y luego obtenemos el tiempo en milisegundos
DateTime
fechaCreado
=
DateTime
.
parse
(
fecha
);
return
fechaCreado
.
millisecondsSinceEpoch
;
}
catch
(
e
)
{
// Si hay un error en la conversión, devolvemos 0
return
0
;
}
}
@override
@override
Widget
build
(
BuildContext
context
)
{
Widget
build
(
BuildContext
context
)
{
return
Scaffold
(
return
Scaffold
(
appBar:
AppBar
(
appBar:
AppBar
(
title:
const
Text
(
'Agregar Categoría'
),
title:
const
Text
(
'Agregar Categoría'
),
backgroundColor:
Colors
.
red
),
),
body:
Padding
(
body:
Padding
(
padding:
const
EdgeInsets
.
all
(
16.0
),
padding:
const
EdgeInsets
.
all
(
16.0
),
...
@@ -25,7 +33,9 @@ class _NewCategoryFormState extends State<CategoryForm> {
...
@@ -25,7 +33,9 @@ class _NewCategoryFormState extends State<CategoryForm> {
children:
[
children:
[
TextFormField
(
TextFormField
(
controller:
_claveController
,
controller:
_claveController
,
decoration:
InputDecoration
(
labelText:
'Clave'
),
decoration:
InputDecoration
(
labelText:
'Clave'
,
border:
OutlineInputBorder
()
),
validator:
(
value
)
{
validator:
(
value
)
{
if
(
value
==
null
||
value
.
isEmpty
)
{
if
(
value
==
null
||
value
.
isEmpty
)
{
return
'Por favor ingrese la clave'
;
return
'Por favor ingrese la clave'
;
...
@@ -33,20 +43,35 @@ class _NewCategoryFormState extends State<CategoryForm> {
...
@@ -33,20 +43,35 @@ class _NewCategoryFormState extends State<CategoryForm> {
return
null
;
return
null
;
},
},
),
),
SizedBox
(
height:
20
),
TextFormField
(
TextFormField
(
controller:
_fechaCreadoController
,
controller:
_fechaCreadoController
,
decoration:
InputDecoration
(
labelText:
'Fecha Creado (milisegundos)'
),
decoration:
InputDecoration
(
labelText:
'Fecha Creado (YYYY-MM-DD)'
,
border:
OutlineInputBorder
()),
validator:
(
value
)
{
validator:
(
value
)
{
if
(
value
==
null
||
value
.
isEmpty
)
{
if
(
value
==
null
||
value
.
isEmpty
)
{
return
'Por favor ingrese la fecha en milisegundos'
;
return
'Por favor ingrese la fecha en formato YYYY-MM-DD'
;
}
// Validación de la fecha
try
{
DateTime
.
parse
(
value
);
}
catch
(
e
)
{
return
'Por favor ingrese una fecha válida'
;
}
}
return
null
;
return
null
;
},
},
keyboardType:
TextInputType
.
number
,
),
),
SizedBox
(
height:
20
),
TextFormField
(
TextFormField
(
//padding: const EdgeInsets.symmetric(horizontal: 80.0), // añado mi margen horizontal
controller:
_nombreController
,
controller:
_nombreController
,
decoration:
InputDecoration
(
labelText:
'Nombre'
),
decoration:
InputDecoration
(
labelText:
'Nombre'
,
border:
OutlineInputBorder
(),
),
validator:
(
value
)
{
validator:
(
value
)
{
if
(
value
==
null
||
value
.
isEmpty
)
{
if
(
value
==
null
||
value
.
isEmpty
)
{
return
'Por favor ingrese el nombre'
;
return
'Por favor ingrese el nombre'
;
...
@@ -61,7 +86,7 @@ class _NewCategoryFormState extends State<CategoryForm> {
...
@@ -61,7 +86,7 @@ class _NewCategoryFormState extends State<CategoryForm> {
// Guardar los valores y mostrar mensaje en consola
// Guardar los valores y mostrar mensaje en consola
print
({
print
({
"clave"
:
_claveController
.
text
,
"clave"
:
_claveController
.
text
,
"fechaCreado"
:
int
.
parse
(
_fechaCreadoController
.
text
),
"fechaCreado"
:
_getFechaCreadoEnMilisegundos
(
_fechaCreadoController
.
text
),
"nombre"
:
_nombreController
.
text
,
"nombre"
:
_nombreController
.
text
,
});
});
}
}
...
...
lib/src/pages/home_page.dart
View file @
a3c2ebea
...
@@ -12,6 +12,7 @@ class HomeSellerPage extends StatelessWidget {
...
@@ -12,6 +12,7 @@ class HomeSellerPage extends StatelessWidget {
child:
Scaffold
(
child:
Scaffold
(
appBar:
AppBar
(
appBar:
AppBar
(
title:
const
Text
(
"ShopMaster"
),
title:
const
Text
(
"ShopMaster"
),
centerTitle:
true
,
foregroundColor:
Colors
.
white
,
foregroundColor:
Colors
.
white
,
backgroundColor:
Colors
.
indigoAccent
,
backgroundColor:
Colors
.
indigoAccent
,
bottom:
const
TabBar
(
bottom:
const
TabBar
(
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment