diff --git a/lib/widget/company_detail.dart b/lib/widget/company_detail.dart index 42478769..56d16d7e 100644 --- a/lib/widget/company_detail.dart +++ b/lib/widget/company_detail.dart @@ -1,6 +1,139 @@ +import 'package:InvenTree/api.dart'; +import 'package:InvenTree/inventree/company.dart'; +import 'package:InvenTree/widget/drawer.dart'; import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:font_awesome_flutter/font_awesome_flutter.dart'; class CompanyDetailWidget extends StatefulWidget { + final InvenTreeCompany company; + + CompanyDetailWidget(this.company, {Key key}) : super(key: key); + + @override + _CompanyDetailState createState() => _CompanyDetailState(company); + +} + + +class _CompanyDetailState extends State { + + final InvenTreeCompany company; + + _CompanyDetailState(this.company) { + // TODO + } + + List _companyTiles() { + + var tiles = List(); + + bool sep = false; + + tiles.add(Card( + child: ListTile( + title: Text("${company.name}"), + subtitle: Text("${company.description}"), + leading: Image( + image: InvenTreeAPI().getImage(company.image), + width: 48, + ), + ), + )); + + if (company.website.isNotEmpty) { + tiles.add(ListTile( + title: Text("${company.website}"), + leading: FaIcon(FontAwesomeIcons.globe), + onTap: () { + // TODO - Open website + }, + )); + + sep = true; + } + + if (company.email.isNotEmpty) { + tiles.add(ListTile( + title: Text("${company.email}"), + leading: FaIcon(FontAwesomeIcons.at), + onTap: () { + // TODO - Open email + }, + )); + + sep = true; + } + + if (company.phone.isNotEmpty) { + tiles.add(ListTile( + title: Text("${company.phone}"), + leading: FaIcon(FontAwesomeIcons.phone), + onTap: () { + // TODO - Call phone number + }, + )); + + sep = true; + } + + // External link + if (company.link.isNotEmpty) { + tiles.add(ListTile( + title: Text("${company.link}"), + leading: FaIcon(FontAwesomeIcons.link), + onTap: () { + // TODO - Open external link + }, + )); + + sep = true; + } + + if (sep) { + tiles.add(Divider()); + } + + if (company.isSupplier) { + // TODO - Add list of supplier parts + // TODO - Add list of purchase orders + + tiles.add(Divider()); + } + + if (company.isCustomer) { + + // TODO - Add list of sales orders + + tiles.add(Divider()); + } + + if (company.notes.isNotEmpty) { + tiles.add(ListTile( + title: Text("Notes"), + leading: FaIcon(FontAwesomeIcons.stickyNote), + onTap: null, + )); + } + + return tiles; + } + + @override + Widget build(BuildContext context) { + + return Scaffold( + appBar: AppBar( + title: Text("${company.name}"), + ), + drawer: new InvenTreeDrawer(context), + body: Center( + child: ListView( + children: _companyTiles(), + ) + ) + ); + } } \ No newline at end of file diff --git a/lib/widget/company_list.dart b/lib/widget/company_list.dart index 1856f0c4..512c198f 100644 --- a/lib/widget/company_list.dart +++ b/lib/widget/company_list.dart @@ -1,4 +1,5 @@ +import 'package:InvenTree/widget/company_detail.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -85,7 +86,7 @@ class _CompanyListState extends State { onTap: () { if (company.pk > 0) { InvenTreeCompany().get(company.pk).then((var c) { - print("Retrieved company: ${c.name}"); + Navigator.push(context, MaterialPageRoute(builder: (context) => CompanyDetailWidget(c))); }); } },