Untitled
unknown
plain_text
2 years ago
6.2 kB
5
Indexable
import 'dart:async'; import 'dart:io'; import 'package:ceramic_quotation/app/constant/app_string.dart'; import 'package:ceramic_quotation/app/database/database_service.dart'; import 'package:ceramic_quotation/app/model/product_model/product_model.dart'; import 'package:ceramic_quotation/app/model/product_model/product_request_model.dart'; import 'package:ceramic_quotation/app/modules/product/product_service/product_service.dart'; import 'package:ceramic_quotation/app/utils/app_prefrence.dart'; import 'package:dio/dio.dart'; import 'package:file_picker/file_picker.dart'; import 'package:filesystem_picker/filesystem_picker.dart'; import 'package:flutter/material.dart'; import 'package:get/get.dart' hide FormData, MultipartFile; import 'package:path_provider/path_provider.dart'; import '../../../model/sorting_model/product_sorting_model.dart'; class ProductController extends GetxController { final TextEditingController mrp = TextEditingController(); final TextEditingController productId = TextEditingController(); final TextEditingController skycode = TextEditingController(); final TextEditingController name = TextEditingController(); final DatabaseService databaseService = DatabaseService(); Dio dio = Dio(); String? dirPath; File? file; double progress = 0; var dataList = []; var createPath; List<ProductModel> dataListValue = []; int? sortColumnIndex; ProductModel? productModel; List<ProductData>? productData; bool isSelected = false; List<bool>? checkBoxValues; List<ProductData> itemAddList = []; bool closeDialog = true; double totalAmouint = 0; bool sortAscending = true; Directory? root = Platform.isMacOS ? Directory("/Users/imac/") : Directory("/storage/emulated/0/"); List<FileSystemEntity>? imageList; filterImage() async { imageList = Directory(AppPreference.getString("folder_path")).listSync( recursive: true, ); return imageList; } sum(double mrp, double qty, int index) { var qAmt = mrp * qty; itemAddList[index].gAmt = qAmt; update(); return qAmt; } double? Disc({ required double mrp, required double dis_per, required int index, }) { double discountAmt = mrp * (dis_per) / 100; itemAddList[index].nAmt = (double.parse(mrp.toString()) - discountAmt); update(); return itemAddList[index].nAmt; } startTimer() { new Timer.periodic( Duration(seconds: 2), (Timer timer) { if (progress == 1) { timer.cancel(); Get.back(); getProduct(); } else { progress += 0.2; } update(); }, ); } Future<String> createFolders(String cow) async { final dir = Directory((Platform.isMacOS ? await getApplicationSupportDirectory() : Platform.isAndroid ? await getExternalStorageDirectory() : await getApplicationSupportDirectory())! .path + '/$cow'); dirPath = dir.path; AppPreference.set("folder_path", "${dir.path}/"); if ((await dir.exists())) { print(AppString.alreadyExist + dir.absolute.path); return dir.path; } else { dir.create(); print(AppString.createFolder + dir.path); return dir.path; } } folderPicker(BuildContext context) async { final path = await FilesystemPicker.open( title: AppString.saveFolder, context: context, rootDirectory: root!, fsType: FilesystemType.folder, pickText: AppString.pickText, ); if (path == null) return; if (path != null) { try { dataList = Directory(path).listSync().map((e) => e.path).toList(); for (int i = 0; i < dataList.length; i++) { var file = await moveFile( File(dataList[i]), "${dirPath!}/${File(dataList[i]).path.split("/").last}", ); } } catch (e) {} } print(path); } Future<File> moveFile(File sourceFile, String newPath) async { try { return await sourceFile.rename(newPath); } catch (e) { final newFile = await sourceFile.copy(newPath); await sourceFile.delete(); return newFile; } } void ExcelFileUpload() async { final result = await FilePicker.platform.pickFiles( allowMultiple: false, type: FileType.any, allowedExtensions: [ 'xls', 'xlsx', ], ); if (result == null) return; if (result != null) { file = File(result.files.first.path!); ProductService().getUpload(file!); } } getProduct() async { productModel = await ProductService().getRequest(); final itemAddList = productModel!.data; databaseService.savePromotions(itemAddList ?? []); update(); runFilter(""); return productModel; } void sorting<T>( Comparable<T> Function(Dessert d) getField, int columnIndex, bool ascending, ) { sortColumnIndex = columnIndex; sortAscending = ascending; update(); } @override onInit() async { filterImage(); await getProduct(); itemAddList.add(ProductData( isSelected: true, isactive: "", id: "", companay: "", category: "", skycode: "", name: "", hsn: "", description: "", mrp: "", v: 0, )); super.onInit(); } getDataUpdate( ProductUpdateRequestModel? productUpdateRequestModel, context, ) async { productModel = await ProductService() .productUpdate(productUpdateRequestModel, context); update(); getProduct(); return productModel; } runFilter(String enteredKeyword) { productData = enteredKeyword.isEmpty ? productModel!.data : productModel!.data! .where((element) => element.skycode! .toLowerCase() .contains(enteredKeyword.toLowerCase())) .toList(); update(); } selectAllValue(bool value) { isSelected = value; productData?.forEach((element) { if (isSelected) { element.isSelected = isSelected; } else { element.isSelected = isSelected; } }); update(); } }
Editor is loading...