Implementation
Widget productionPlanWidget() {
List<TableRow> detailsWidget = [];
detailsWidget.add(
TableRow(
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Work Order",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Sales Order",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Production Item",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Production Item Name",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Qty to Manufacture",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Produced Qty",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Warehouse",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Item Code",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Actual Qty",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Ordered Qty",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Projected Qty",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text("BOM", style: TextStyle(fontWeight: FontWeight.bold)),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text("UOM", style: TextStyle(fontWeight: FontWeight.bold)),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text("Name", style: TextStyle(fontWeight: FontWeight.bold)),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Delivery Date",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Grand Total",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"For Warehouse",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Available Qty",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Parent",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Raw Material",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Required Qty/Unit",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Required Qty",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Remaining Qty",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Alloted Qty",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Arrival Date",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
"Arrival Qty",
style: TextStyle(fontWeight: FontWeight.bold),
),
),
],
),
);
for (var prodPlan in productionPlan) {
detailsWidget.add(
TableRow(
children: [
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.work_order),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.sales_order),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.production_item),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.production_item_name),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.qty_to_manufacture.toString()),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.produced_qty),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.warehouse),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.item_code),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.actual_qty.toString()),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.ordered_qty.toString()),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.projected_qty.toString()),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.bom_no),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.stock_uom),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.name),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.delivery_date),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.base_grand_total.toString()),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.for_warehouse),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.available_qty.toString()),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.parent),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.raw_material_name),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.required_qty_per_unit.toString()),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.required_qty.toString()),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.remaining_qty.toString()),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.allotted_qty.toString()),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.arrival_date),
),
Padding(
padding: const EdgeInsets.all(8.0),
child: Text(prodPlan.arrival_qty.toString()),
),
],
),
);
}
return SingleChildScrollView(
child: Padding(
padding: const EdgeInsets.all(8.0),
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Container(
width: 1500,
child: Table(
border: TableBorder.all(color: Colors.black),
children: detailsWidget,
),
),
),
),
);
}