Untitled

 avatar
unknown
dart
2 years ago
3.8 kB
3
Indexable
import 'package:get/get.dart';
import 'package:iktifaa/App/Common/Services/AuthenticationService/Core/manager.dart';
import 'package:iktifaa/App/Mall/backend/Dto/storeIncome.dart';
import 'package:iktifaa/App/Mall/backend/storesAPIs.dart';

class SalesIncomereportController extends GetxController {
  RxInt selectedMonthIndex = 0.obs;
  final AuthenticationManager authManager = Get.find();
  Rx<StoreIncome> storeIncome = StoreIncome().obs;
  RxInt currentMonth = 0.obs;
  RxBool isLoading = true.obs;
  List<YearData> yearData = <YearData>[];
  RxInt YearName = 2022.obs;
  RxInt yearIndexValue = 0.obs;

  List<SalesData> data = [
    SalesData('Week 1', 100),
    SalesData('Week 2', 200),
    SalesData('Week 3', 300),
    SalesData('Week 4', 400),
  ];

  List<dynamic> monthList = [
    {
      'id': '1',
      'name': 'Jan',
      'nameAr': 'يناير',
    },
    {
      'id': '2',
      'name': 'Feb',
      'nameAr': 'فبراير',
    },
    {
      'id': '3',
      'name': 'Mar',
      'nameAr': 'مارس',
    },
    {
      'id': '4',
      'name': 'Apr',
      'nameAr': 'أبريل',
    },
    {
      'id': '5',
      'name': 'May',
      'nameAr': 'مايو',
    },
    {
      'id': '6',
      'name': 'Jun',
      'nameAr': 'يونيو',
    },
    {
      'id': '7',
      'name': 'Jul',
      'nameAr': 'يوليو',
    },
    {
      'id': '8',
      'name': 'Aug',
      'nameAr': 'أغسطس',
    },
    {
      'id': '9',
      'name': 'Sep',
      'nameAr': 'سبتمبر',
    },
    {
      'id': '10',
      'name': 'Oct',
      'nameAr': 'أكتوبر',
    },
    {
      'id': '11',
      'name': 'Nov',
      'nameAr': 'نوفمبر',
    },
    {
      'id': '12',
      'name': 'Dec',
      'nameAr': 'ديسمبر',
    },
  ].obs;
  void SelectedMonth(int year, int index) {
    yearData =
        storeIncome.value.yearData!.where((element) => element.yearNo.toString() == year.toString()).toList();
    if (index <= (yearData[0].monthdata!.length - 1)) {
      selectedMonthIndex.value = index;
    }
    // selectedMonthIndex.value = index;
    update();
  }

  double getMonthlyIncome(int year, int month) {
    yearData =
        storeIncome.value.yearData!.where((element) => element.yearNo.toString() == year.toString()).toList();
    print('0000000');
    print(yearData.length);
    if (yearData.length > 0) {
      return yearData[0].monthdata![month].totalMonth ?? 0;
    } else {
      return 0;
    }
  }

  double getPercentage(int month) {
    if (month == 0) {
      return 0;
    }
    if (storeIncome.value.monthData?[month].totalMonth == null) {
      return 0;
    }
    if (storeIncome.value.monthData?[month].totalMonth == 0 &&
        storeIncome.value.monthData?[month - 1].totalMonth == 0) {
      return 0;
    }
    if (storeIncome.value.monthData?[month - 1].totalMonth == 0 &&
        storeIncome.value.monthData![month].totalMonth! > 0) {
      return storeIncome.value.monthData![month].totalMonth ?? 0;
    } else {
      return (((storeIncome.value.monthData?[month].totalMonth ?? 0) -
                  (storeIncome.value.monthData?[month - 1].totalMonth ?? 0)) /
              (storeIncome.value.monthData?[month - 1].totalMonth ?? 0)) *
          100;
    }
  }

  @override
  void onInit() async {
    currentMonth.value = DateTime.now().month;
    selectedMonthIndex.value = currentMonth.value - 1;
    storeIncome.value = await StoresAPIs.getStoresBusinessStatistic();
    isLoading.value = false;
    super.onInit();
  }

  // @override
  // void onReady() async {

  //   super.onReady();
  // }
}

class SalesData {
  SalesData(this.year, this.sales);

  final String year;
  final double sales;
}
Editor is loading...