import 'package:intl/intl.dart'; import 'basico_model.dart'; import 'pedido_producto_model.dart'; import '../services/services.dart'; class Pedido extends Basico { int? folio; String? estatus; String? comentarios; String? peticion; String? nombreCliente; double? totalPedido; int? descuento; int? idCliente; int? idMesa; String? terminado; int? cerrar; int? idUsuario; int? idModificador; int? idCancelado; String? tipoPago; double? cantEfectivo; double? cantTarjeta; double? cantTransferencia; List productos = []; int? idWeb; String? sincronizado; Pedido({ super.id, this.folio, this.estatus, this.comentarios, this.peticion, this.nombreCliente, this.totalPedido, this.descuento, this.idCliente, this.idMesa, this.terminado, this.cerrar, this.idUsuario, this.idModificador, this.idCancelado, this.tipoPago, this.cantEfectivo, this.cantTarjeta, this.cantTransferencia, this.productos = const [], this.idWeb, this.sincronizado, }); @override Map toJson() { return { 'id': id, 'folio': folio, 'estatus': estatus, 'comentarios': comentarios, 'peticion': peticion, 'nombreCliente': nombreCliente, 'totalPedido': totalPedido, 'descuento': descuento, 'idCliente': idCliente, 'idMesa': idMesa, 'terminado': terminado, 'cerrar': cerrar, 'idUsuario': idUsuario, 'idModificador': idModificador, 'idCancelado': idCancelado, 'tipoPago': tipoPago, 'cantEfectivo': cantEfectivo, 'cantTarjeta': cantTarjeta, 'cantTransferencia': cantTransferencia, }..addAll(super.toJson()); } Map toApi() { idLocal = id; DateTime? fechaPeticion = peticion != null ? DateFormat('dd-MM-yyyy kk:mm:ss').parse(peticion!) : null; String? fechaPeticionIso = fechaPeticion?.toIso8601String(); Map apiMap = { 'idLocal': idLocal, 'folio': folio, 'estatus': estatus, 'comentarios': comentarios, 'nombreCliente': nombreCliente, 'creado': fechaPeticionIso, 'tipoPago': tipoPago, 'totalPedido': totalPedido, 'descuento': descuento, 'cantEfectivo': cantEfectivo, 'cantTarjeta': cantTarjeta, 'cantTransferencia': cantTransferencia, 'productos': productos.map((producto) => producto.toApi()).toList(), }; Map basicoMap = super.toJson(); basicoMap.remove('id'); basicoMap.remove('eliminado'); apiMap.addAll(basicoMap); return apiMap; } Pedido.fromJson(Map json) { super.parseJson(json); id = (json['id'] as int?)!; folio = Basico.parseInt(json['folio']); estatus = Basico.parseString(json['estatus']); comentarios = Basico.parseString(json['comentarios']); peticion = Basico.parseString(json['peticion']); nombreCliente = Basico.parseString(json['nombreCliente']); totalPedido = Basico.parseDouble(json['totalPedido']); descuento = Basico.parseInt(json['descuento']); idCliente = Basico.parseInt(json['idCliente']); idMesa = Basico.parseInt(json['idMesa']); terminado = Basico.parseString(json['terminado']); cerrar = Basico.parseInt(json['cerrar']); idUsuario = Basico.parseInt(json['idUsuario']); idModificador = Basico.parseInt(json['idModificador']); idCancelado = Basico.parseInt(json['idCancelado']); tipoPago = Basico.parseString(json['tipoPago']); cantEfectivo = Basico.parseDouble(json['cantEfectivo']); cantTarjeta = Basico.parseDouble(json['cantTarjeta']); cantTransferencia = Basico.parseDouble(json['cantTransferencia']); idWeb = Basico.parseInt(json['idWeb']); sincronizado = Basico.parseString(json['sincronizado']); List _productos = []; if (json["productos"] != null && (json["productos"] as List).isNotEmpty) { for (var i in (json["productos"] as List)) { PedidoProducto m = PedidoProducto.fromJson(i); _productos.add(m); } } productos = _productos; } }