Untitled
unknown
dart
9 months ago
5.8 kB
3
Indexable
import 'package:dspyme_gesloc/controllers/utilidades.dart'; import 'package:dspyme_gesloc/models/cliente.dart'; import 'package:hive/hive.dart'; part 'articulo.g.dart'; @HiveType(typeId: 1, adapterName: "ArticuloAdapter") class Articulo { Articulo( {required this.clave, required this.codigo, this.nombre = "", this.precio = 0, this.descrip = "", this.codbarra = "", this.codarti = "", this.tipoArticulo, this.codigoFamilia, this.stock = 0, this.baja = false, this.pvp = 0, this.tipoIva, this.codean = "", this.codigoProveedor, this.objetoProveedor, this.coste = 0, this.porcentajeMargen = 0, this.fechaSincronizacion}); @HiveField(0) String clave; @HiveField(1) int codigo; @HiveField(2) String nombre; @HiveField(3) double precio; @HiveField(4) String descrip; @HiveField(5) String codbarra; @HiveField(6) String codarti; @HiveField(7) int? codigoFamilia; @HiveField(8) double stock; /// si es contenedor, tarea o producto @HiveField(9) int? tipoArticulo; /// Utilizado en tabla web @HiveField(10) bool baja; @HiveField(11) double pvp; @HiveField(12) int? tipoIva; @HiveField(13) String codean; @HiveField(14) double coste; @HiveField(15) double porcentajeMargen; @HiveField(16) int? codigoProveedor; @HiveField(17) Cliente? objetoProveedor; /// Modificado @HiveField(18) DateTime? fechaSincronizacion; /// Utilizado por select_dialog en vistaweb /// TODO check si se utiliza @override String toString() => nombre; factory Articulo.fromJson(Map<String, dynamic> json) { try { Articulo articulo = Articulo( clave: json["Clave"], codigo: json["Codigo"], ); try { articulo.precio = json["Precio"] == null ? 0.0 : double.parse(json["Precio"].toString()); } catch (e) { print("Error assigning precio: $e"); } try { articulo.nombre = json["Nombre"] ?? ""; } catch (e) { print("Error assigning nombre: $e"); } try { articulo.descrip = json["Texto"] ?? ""; } catch (e) { print("Error assigning Texto: $e"); } try { articulo.codbarra = json["Codbarra"] ?? ""; } catch (e) { print("Error assigning Codbarra: $e"); } try { articulo.codarti = json["Codarti"] ?? ""; } catch (e) { print("Error assigning Codarti: $e"); } try { articulo.tipoArticulo = json["Tipoarticulo"]; } catch (e) { print("Error assigning Tipoarticulo: $e"); } try { articulo.codigoFamilia = json["Familia"]; } catch (e) { print("Error assigning Familia: $e"); } try { articulo.stock = json["Stock"] == null ? 0.0 : double.parse(json["Stock"].toString()); } catch (e) { print("Error assigning Stock: $e"); } try { articulo.baja = json["Baja"] == 1 ? true : false; } catch (e) { print("Error assigning baja: $e"); } try { articulo.pvp = json["Pvp"] == null ? 0.0 : double.parse(json["Pvp"].toString()); } catch (e) { print("Error assigning Pvp: $e"); } try { articulo.tipoIva = json["Tipoiva"]; } catch (e) { print("Error assigning tipoiva: $e"); } try { articulo.codean = json["Codean"] ?? ""; } catch (e) { print("Error assigning Codean: $e"); } try { articulo.codigoProveedor = json["Provee"]; } catch (e) { print("Error assigning codigoProveedor: $e"); } try { articulo.coste = json["Coste"] == null ? 0.0 : double.parse(json["Coste"].toString()); } catch (e) { print("Error assigning coste: $e"); } try { articulo.porcentajeMargen = json["Margen"] == null ? 0.0 : double.parse(json["Margen"].toString()); } catch (e) { print("Error assigning margen: $e"); } try { articulo.fechaSincronizacion = Utilidades.parseFecha(json['Modificado']) ?? DateTime.now(); } catch (e) { print("Error assigning fechaSincronizacion: $e"); } return articulo; } catch (e) { print("Error fromJson Articulo: $e"); return Articulo( clave: json["Clave"], codigo: json["Codigo"], ); } } Map<String, dynamic> toJson() { try { return { "Clave": clave, "Codigo": codigo, "Nombre": nombre, "Precio": precio, "Texto": descrip, "Codbarra": codbarra, "Codarti": codarti, "Tipoarticulo": tipoArticulo, "Familia": codigoFamilia, "Stock": stock, "Baja": baja ? 1 : 0, "Pvp": pvp, "Tipoiva": tipoIva, "Codean": codean, "Coste": coste, "Margen": porcentajeMargen, "Provee": codigoProveedor, "Modificado": fechaSincronizacion?.toIso8601String() }; } catch (e) { throw Exception("Error toJson Articulo: $e"); } } static List<String> camposBasicos = ["Clave", "Codigo", "Nombre", "Descrip"]; static String? textoArticulo(Articulo? articulo) { if (articulo != null) { return "${articulo.codarti.trim()} (${articulo.nombre.trim()})"; } return null; } }
Editor is loading...
Leave a Comment