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