basico_model.dart 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /// Modelo de datos para retener la informacion basica necesaria de todos los modelos
  2. class Basico {
  3. static const String identificadorLocal = "idLocal";
  4. static const String identificadorWeb = "id";
  5. int id;
  6. int idLocal;
  7. DateTime? creado;
  8. DateTime? modificado;
  9. DateTime? eliminado;
  10. Basico({
  11. this.id = 0,
  12. this.idLocal = -1,
  13. this.creado,
  14. this.modificado,
  15. this.eliminado,
  16. });
  17. static parseDate(origen) {
  18. if (origen == null || origen == "null" || origen == '') {
  19. return null;
  20. }
  21. try {
  22. return DateTime.parse(origen);
  23. } catch (e) {
  24. print("Error al parsear fecha: $e");
  25. return null;
  26. }
  27. }
  28. static double parseDouble(origen) {
  29. if (origen == null) return 0.0;
  30. if (origen == "null") return 0.0;
  31. if (origen == "") return 0.0;
  32. if (origen.runtimeType.toString() == 'double') return origen;
  33. return double.parse(origen.toString());
  34. }
  35. static int parseInt(origen) {
  36. if (origen == null) return 0;
  37. if (origen == "") return 0;
  38. if (origen == "null") return 0;
  39. if (origen.runtimeType.toString() == 'int') return origen;
  40. return int.parse(origen.toString());
  41. }
  42. static String parseString(origen) {
  43. if (origen == "null") return "";
  44. if (origen == null) return "";
  45. if (origen == "") return "";
  46. if (origen == "null") return "";
  47. if (origen.runtimeType.toString() == 'string') return origen;
  48. return origen.toString();
  49. }
  50. static bool? parseBolean(dynamic value) {
  51. if (value == null) {
  52. return null;
  53. }
  54. if (value is bool) {
  55. return value;
  56. }
  57. if (value is int) {
  58. return value == 1;
  59. }
  60. if (value is String) {
  61. return value.toLowerCase() == 'true' || value == '1';
  62. }
  63. return null;
  64. }
  65. Map<String, dynamic> toJson() {
  66. return {
  67. 'id': id,
  68. 'idLocal': idLocal,
  69. 'eliminado': eliminado?.toIso8601String(),
  70. };
  71. }
  72. parseJson(Map<String, dynamic> json) {
  73. id = json['id'] != null ? int.parse(json['id'].toString()) : 0;
  74. idLocal = json['idLocal'] ?? -1;
  75. creado = json['creado'] != null ? parseDate(json['creado']) : creado;
  76. modificado =
  77. json['modificado'] != null ? parseDate(json['modificado']) : modificado;
  78. eliminado =
  79. json['eliminado'] != null ? parseDate(json['eliminado']) : eliminado;
  80. }
  81. }