2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-04-28 05:26:47 +00:00
inventree-app/lib/widget/order/so_shipment_list.dart
Oliver 3ea5f8934c
Sales order allocation (#464)
* New string

* Typo fix

* Add model for SalesOrderShipment

* Add placeholder button to sales order item

* Create a new shipment from the sales order detail view

* Fix API URL

* Add paginated shipment list

* Upate colors

* Add API form for allocation of stock to sales order

* Build out sales order line detail widge

* Use unallocated quantity

* Update release notes

* linting fix
2023-11-27 22:51:20 +11:00

55 lines
1.7 KiB
Dart

import "package:flutter/material.dart";
import "package:font_awesome_flutter/font_awesome_flutter.dart";
import "package:inventree/app_colors.dart";
import "package:inventree/inventree/sales_order.dart";
import "package:inventree/widget/paginator.dart";
import "package:inventree/inventree/model.dart";
import "package:inventree/l10.dart";
class PaginatedSOShipmentList extends PaginatedSearchWidget {
const PaginatedSOShipmentList(Map<String, String> filters) : super(filters: filters);
@override
String get searchTitle => L10().shipments;
@override
_PaginatedSOShipmentListState createState() => _PaginatedSOShipmentListState();
}
class _PaginatedSOShipmentListState extends PaginatedSearchState<PaginatedSOShipmentList> {
_PaginatedSOShipmentListState() : super();
@override
String get prefix => "so_shipment_";
@override
Map<String, String> get orderingOptions => {};
@override
Map<String, Map<String, dynamic>> get filterOptions => {};
@override
Future<InvenTreePageResponse?> requestPage(int limit, int offset, Map<String, String> params) async {
final page = await InvenTreeSalesOrderShipment().listPaginated(limit, offset, filters: params);
return page;
}
@override
Widget buildItem(BuildContext context, InvenTreeModel model) {
InvenTreeSalesOrderShipment shipment = model as InvenTreeSalesOrderShipment;
return ListTile(
title: Text(shipment.reference),
subtitle: Text(shipment.tracking_number),
leading: shipment.shipped ? FaIcon(FontAwesomeIcons.calendarCheck, color: COLOR_SUCCESS) : FaIcon(FontAwesomeIcons.calendarXmark, color: COLOR_WARNING),
trailing: shipment.shipped ? Text(shipment.shipment_date ?? "") : null
);
}
}