feat: inventory report pdf

This commit is contained in:
efrilm
2025-08-15 01:36:50 +07:00
parent 34c0ad5411
commit 2c75fcf582
3 changed files with 606 additions and 2 deletions
@@ -1,5 +1,10 @@
import 'dart:developer';
import 'package:enaklo_pos/core/constants/colors.dart';
import 'package:enaklo_pos/core/extensions/string_ext.dart';
import 'package:enaklo_pos/core/utils/helper_pdf_service.dart';
import 'package:enaklo_pos/core/utils/inventory_report.dart';
import 'package:enaklo_pos/core/utils/permession_handler.dart';
import 'package:enaklo_pos/data/models/response/inventory_analytic_response_model.dart';
import 'package:flutter/material.dart';
@@ -73,7 +78,38 @@ class _InventoryReportWidgetState extends State<InventoryReportWidget> {
children: [
// Download Button
GestureDetector(
onTap: () {},
onTap: () async {
try {
final status =
await PermessionHelper().checkPermission();
if (status) {
final pdfFile =
await InventoryReport.previewPdf(
searchDateFormatted:
widget.searchDateFormatted,
inventory: widget.inventory,
);
log("pdfFile: $pdfFile");
await HelperPdfService.openFile(pdfFile);
} else {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text(
'Storage permission is required to save PDF'),
backgroundColor: Colors.red,
),
);
}
} catch (e) {
log("Error generating PDF: $e");
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text('Failed to generate PDF: $e'),
backgroundColor: Colors.red,
),
);
}
},
child: Container(
padding: const EdgeInsets.all(10),
decoration: BoxDecoration(