pedido_model.dart 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. import 'package:intl/intl.dart';
  2. import 'basico_model.dart';
  3. import 'pedido_producto_model.dart';
  4. import '../services/services.dart';
  5. class Pedido extends Basico {
  6. int? folio;
  7. String? estatus;
  8. String? comentarios;
  9. String? peticion;
  10. String? nombreCliente;
  11. double? totalPedido;
  12. int? descuento;
  13. int? idCliente;
  14. int? idMesa;
  15. String? terminado;
  16. int? cerrar;
  17. int? idUsuario;
  18. int? idModificador;
  19. int? idCancelado;
  20. String? tipoPago;
  21. double? cantEfectivo;
  22. double? cantTarjeta;
  23. double? cantTransferencia;
  24. List<PedidoProducto> productos = [];
  25. int? idWeb;
  26. String? sincronizado;
  27. Pedido({
  28. super.id,
  29. this.folio,
  30. this.estatus,
  31. this.comentarios,
  32. this.peticion,
  33. this.nombreCliente,
  34. this.totalPedido,
  35. this.descuento,
  36. this.idCliente,
  37. this.idMesa,
  38. this.terminado,
  39. this.cerrar,
  40. this.idUsuario,
  41. this.idModificador,
  42. this.idCancelado,
  43. this.tipoPago,
  44. this.cantEfectivo,
  45. this.cantTarjeta,
  46. this.cantTransferencia,
  47. this.productos = const [],
  48. this.idWeb,
  49. this.sincronizado,
  50. });
  51. @override
  52. Map<String, dynamic> toJson() {
  53. return {
  54. 'id': id,
  55. 'folio': folio,
  56. 'estatus': estatus,
  57. 'comentarios': comentarios,
  58. 'peticion': peticion,
  59. 'nombreCliente': nombreCliente,
  60. 'totalPedido': totalPedido,
  61. 'descuento': descuento,
  62. 'idCliente': idCliente,
  63. 'idMesa': idMesa,
  64. 'terminado': terminado,
  65. 'cerrar': cerrar,
  66. 'idUsuario': idUsuario,
  67. 'idModificador': idModificador,
  68. 'idCancelado': idCancelado,
  69. 'tipoPago': tipoPago,
  70. 'cantEfectivo': cantEfectivo,
  71. 'cantTarjeta': cantTarjeta,
  72. 'cantTransferencia': cantTransferencia,
  73. 'sincronizado': sincronizado,
  74. }..addAll(super.toJson());
  75. }
  76. Map<String, dynamic> toApi() {
  77. idLocal = id;
  78. Map<String, dynamic> apiMap = {
  79. 'idLocal': idLocal,
  80. 'folio': folio,
  81. 'estatus': estatus,
  82. 'comentarios': comentarios,
  83. 'nombreCliente': nombreCliente,
  84. 'creado': peticion,
  85. 'tipoPago': tipoPago,
  86. 'totalPedido': totalPedido,
  87. 'descuento': descuento,
  88. 'cantEfectivo': cantEfectivo,
  89. 'cantTarjeta': cantTarjeta,
  90. 'cantTransferencia': cantTransferencia,
  91. 'productos': productos.map((producto) => producto.toApi()).toList(),
  92. };
  93. Map<String, dynamic> basicoMap = super.toJson();
  94. basicoMap.remove('id');
  95. basicoMap.remove('eliminado');
  96. apiMap.addAll(basicoMap);
  97. return apiMap;
  98. }
  99. Pedido.fromJson(Map<String, dynamic> json) {
  100. super.parseJson(json);
  101. id = (json['id'] as int?)!;
  102. folio = Basico.parseInt(json['folio']);
  103. estatus = Basico.parseString(json['estatus']);
  104. comentarios = Basico.parseString(json['comentarios']);
  105. peticion = Basico.parseString(json['peticion']);
  106. nombreCliente = Basico.parseString(json['nombreCliente']);
  107. totalPedido = Basico.parseDouble(json['totalPedido']);
  108. descuento = Basico.parseInt(json['descuento']);
  109. idCliente = Basico.parseInt(json['idCliente']);
  110. idMesa = Basico.parseInt(json['idMesa']);
  111. terminado = Basico.parseString(json['terminado']);
  112. cerrar = Basico.parseInt(json['cerrar']);
  113. idUsuario = Basico.parseInt(json['idUsuario']);
  114. idModificador = Basico.parseInt(json['idModificador']);
  115. idCancelado = Basico.parseInt(json['idCancelado']);
  116. tipoPago = Basico.parseString(json['tipoPago']);
  117. cantEfectivo = Basico.parseDouble(json['cantEfectivo']);
  118. cantTarjeta = Basico.parseDouble(json['cantTarjeta']);
  119. cantTransferencia = Basico.parseDouble(json['cantTransferencia']);
  120. idWeb = Basico.parseInt(json['idWeb']);
  121. sincronizado = Basico.parseString(json['sincronizado']);
  122. List<PedidoProducto> _productos = [];
  123. if (json["productos"] != null && (json["productos"] as List).isNotEmpty) {
  124. for (var i in (json["productos"] as List)) {
  125. PedidoProducto m = PedidoProducto.fromJson(i);
  126. _productos.add(m);
  127. }
  128. }
  129. productos = _productos;
  130. }
  131. }