mejora de class horario
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
import 'package:cloud_firestore/cloud_firestore.dart';
|
import 'package:cloud_firestore/cloud_firestore.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
import 'package:prosappco/src/components/primary_btn.dart';
|
|
||||||
|
|
||||||
typedef TimeCallback = void Function(TimeOfDay? pickedTime);
|
typedef TimeCallback = void Function(TimeOfDay? pickedTime);
|
||||||
|
|
||||||
@@ -132,54 +131,43 @@ class _SchedulePickerState extends State<SchedulePicker> {
|
|||||||
class Schedule {
|
class Schedule {
|
||||||
bool habilitado;
|
bool habilitado;
|
||||||
bool jornadaContinua;
|
bool jornadaContinua;
|
||||||
TimeOfDay? range1Hour1 = TimeOfDay.now();
|
TimeOfDay? range1Hour1;
|
||||||
TimeOfDay? range1Hour2 = TimeOfDay.now();
|
TimeOfDay? range1Hour2;
|
||||||
TimeOfDay? range2Hour1 = TimeOfDay.now();
|
TimeOfDay? range2Hour1;
|
||||||
TimeOfDay? range2Hour2 = TimeOfDay.now();
|
TimeOfDay? range2Hour2;
|
||||||
|
|
||||||
Schedule(this.habilitado, this.jornadaContinua, this.range1Hour1,
|
Schedule(
|
||||||
this.range1Hour2, this.range2Hour1, this.range2Hour2);
|
this.habilitado,
|
||||||
|
this.jornadaContinua,
|
||||||
|
this.range1Hour1,
|
||||||
|
this.range1Hour2,
|
||||||
|
this.range2Hour1,
|
||||||
|
this.range2Hour2,
|
||||||
|
);
|
||||||
|
|
||||||
static Future<Map<String, Schedule>> fromJson(
|
static Schedule fromJson(Map<String, dynamic> json) {
|
||||||
Map<String, dynamic>? json) async {
|
return Schedule(
|
||||||
try {
|
json['habilitado'],
|
||||||
if (json == null) {
|
json['jornadaContinua'],
|
||||||
return {
|
_parseTime(json['range1Hour1']),
|
||||||
"Lunes": Schedule(false, false, null, null, null, null),
|
_parseTime(json['range1Hour2']),
|
||||||
"Martes": Schedule(false, false, null, null, null, null),
|
_parseTime(json['range2Hour1']),
|
||||||
"Miercoles": Schedule(false, false, null, null, null, null),
|
_parseTime(json['range2Hour2']),
|
||||||
"Jueves": Schedule(false, false, null, null, null, null),
|
);
|
||||||
"Viernes": Schedule(false, false, null, null, null, null),
|
}
|
||||||
"Sabado": Schedule(false, false, null, null, null, null),
|
|
||||||
"Domingo": Schedule(false, false, null, null, null, null),
|
|
||||||
};
|
|
||||||
}
|
|
||||||
Map<String, dynamic> horarios = json['horario'];
|
|
||||||
horarios.entries;
|
|
||||||
print('Entrada ${horarios.entries}');
|
|
||||||
var hora = horarios.map((key, value) => MapEntry(
|
|
||||||
key,
|
|
||||||
Schedule(
|
|
||||||
value['habilitado'],
|
|
||||||
value['jornadaContinua'],
|
|
||||||
stringToTimeOfDay(value['range1Hour1']),
|
|
||||||
stringToTimeOfDay(value['range1Hour2']),
|
|
||||||
stringToTimeOfDay(value['range2Hour1']),
|
|
||||||
stringToTimeOfDay(value['range2Hour2']))));
|
|
||||||
|
|
||||||
print('Entradas ${hora}');
|
static TimeOfDay? _parseTime(String? time) {
|
||||||
return hora;
|
if (time == null) return null;
|
||||||
} catch (e) {
|
final components = time.split(' ');
|
||||||
return {
|
final hourMinutes = components[0].split(':');
|
||||||
"Lunes": Schedule(false, false, null, null, null, null),
|
final hour = int.parse(hourMinutes[0]);
|
||||||
"Martes": Schedule(false, false, null, null, null, null),
|
final minutes = int.parse(hourMinutes[1]);
|
||||||
"Miercoles": Schedule(false, false, null, null, null, null),
|
if (components[1] == 'PM' && hour < 12) {
|
||||||
"Jueves": Schedule(false, false, null, null, null, null),
|
return TimeOfDay(hour: hour + 12, minute: minutes);
|
||||||
"Viernes": Schedule(false, false, null, null, null, null),
|
} else if (components[1] == 'AM' && hour == 12) {
|
||||||
"Sabado": Schedule(false, false, null, null, null, null),
|
return TimeOfDay(hour: 0, minute: minutes);
|
||||||
"Domingo": Schedule(false, false, null, null, null, null),
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
return TimeOfDay(hour: hour, minute: minutes);
|
||||||
}
|
}
|
||||||
|
|
||||||
static TimeOfDay stringToTimeOfDay(String? tod) {
|
static TimeOfDay stringToTimeOfDay(String? tod) {
|
||||||
@@ -190,14 +178,24 @@ class Schedule {
|
|||||||
return TimeOfDay.fromDateTime(format.parse(tod));
|
return TimeOfDay.fromDateTime(format.parse(tod));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
String toString() {
|
||||||
|
return 'Schedule(habilitado: $habilitado, jornadaContinua: $jornadaContinua, '
|
||||||
|
'range1Hour1: $range1Hour1, range1Hour2: $range1Hour2, '
|
||||||
|
'range2Hour1: $range2Hour1, range2Hour2: $range2Hour2)';
|
||||||
|
}
|
||||||
|
|
||||||
static Future<Map<String, Schedule>> getHorarios(String uid) async {
|
static Future<Map<String, Schedule>> getHorarios(String uid) async {
|
||||||
try {
|
try {
|
||||||
final snapshot =
|
final snapshot =
|
||||||
await FirebaseFirestore.instance.collection('users').doc(uid).get();
|
await FirebaseFirestore.instance.collection('users').doc(uid).get();
|
||||||
final Map<String, dynamic>? data = snapshot.data();
|
final Map<String, dynamic>? data = snapshot.data();
|
||||||
final Map<String, dynamic>? horarioData = data?['horario'];
|
final Map<String, dynamic>? horarioData = data?['horario'];
|
||||||
print('hola ${fromJson(data)}');
|
final horarios = <String, Schedule>{};
|
||||||
return fromJson(horarioData);
|
horarioData?.forEach((key, value) {
|
||||||
|
horarios[key] = Schedule.fromJson(value);
|
||||||
|
});
|
||||||
|
return horarios;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
print('Error getting user: $e');
|
print('Error getting user: $e');
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -2,7 +2,6 @@ import 'dart:io';
|
|||||||
import 'package:cloud_firestore/cloud_firestore.dart';
|
import 'package:cloud_firestore/cloud_firestore.dart';
|
||||||
import 'package:firebase_storage/firebase_storage.dart';
|
import 'package:firebase_storage/firebase_storage.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_animate/flutter_animate.dart';
|
import 'package:flutter_animate/flutter_animate.dart';
|
||||||
@@ -16,7 +15,6 @@ import 'package:prosappco/src/models/setting_model.dart';
|
|||||||
import 'package:prosappco/src/screens/horario.dart';
|
import 'package:prosappco/src/screens/horario.dart';
|
||||||
import 'package:prosappco/src/screens/professional.dart';
|
import 'package:prosappco/src/screens/professional.dart';
|
||||||
import 'package:prosappco/src/screens/professional_direccion.dart';
|
import 'package:prosappco/src/screens/professional_direccion.dart';
|
||||||
import 'package:prosappco/src/screens/ubicacion.dart';
|
|
||||||
import 'package:prosappco/src/services/select_image_profile.dart';
|
import 'package:prosappco/src/services/select_image_profile.dart';
|
||||||
|
|
||||||
class ProfileProScreen extends StatefulWidget {
|
class ProfileProScreen extends StatefulWidget {
|
||||||
|
|||||||
Reference in New Issue
Block a user