From f93d9bb275ccf0b1fd1cc356c2a04663ed6e9c1b Mon Sep 17 00:00:00 2001 From: "mr.mojtaba" Date: Sun, 2 Nov 2025 17:27:45 +0330 Subject: [PATCH] feat: new date picker and new logic --- android/local.properties | 4 +- .../remote/chicken/chicken_remote.dart | 3 + .../remote/chicken/chicken_remote_imp.dart | 12 + .../steward_remain_weight.dart | 26 + .../steward_remain_weight.freezed.dart | 562 ++++++++++++++++++ .../steward_remain_weight.g.dart | 33 + .../chicken/chicken_repository.dart | 3 + .../chicken/chicken_repository_imp.dart | 6 + .../pages/steward/root/logic.dart | 22 +- .../steward/sales_in_province/logic.dart | 35 +- .../pages/steward/sales_in_province/view.dart | 26 +- .../steward/sales_out_of_province/logic.dart | 36 +- .../steward/sales_out_of_province/view.dart | 26 +- .../pages/steward/segmentation/logic.dart | 36 +- 14 files changed, 727 insertions(+), 103 deletions(-) create mode 100644 packages/chicken/lib/data/models/response/steward_remain_weight/steward_remain_weight.dart create mode 100644 packages/chicken/lib/data/models/response/steward_remain_weight/steward_remain_weight.freezed.dart create mode 100644 packages/chicken/lib/data/models/response/steward_remain_weight/steward_remain_weight.g.dart diff --git a/android/local.properties b/android/local.properties index 7a96e05..4fc8e59 100644 --- a/android/local.properties +++ b/android/local.properties @@ -1,5 +1,5 @@ sdk.dir=C:/Users/Housh11/AppData/Local/Android/Sdk flutter.sdk=C:\\src\\flutter flutter.buildMode=debug -flutter.versionName=1.3.28 -flutter.versionCode=25 \ No newline at end of file +flutter.versionName=1.3.29 +flutter.versionCode=26 \ No newline at end of file diff --git a/packages/chicken/lib/data/data_source/remote/chicken/chicken_remote.dart b/packages/chicken/lib/data/data_source/remote/chicken/chicken_remote.dart index 213bf09..33eb7be 100644 --- a/packages/chicken/lib/data/data_source/remote/chicken/chicken_remote.dart +++ b/packages/chicken/lib/data/data_source/remote/chicken/chicken_remote.dart @@ -19,6 +19,7 @@ import 'package:rasadyar_chicken/data/models/response/segmentation_model/segment import 'package:rasadyar_chicken/data/models/response/steward_free_bar/steward_free_bar.dart'; import 'package:rasadyar_chicken/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart'; import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart'; +import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart'; import 'package:rasadyar_chicken/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart'; import 'package:rasadyar_chicken/data/models/response/user_profile/user_profile.dart'; import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_arrival.dart' @@ -174,4 +175,6 @@ abstract class ChickenRemoteDatasource { required String token, Map? queryParameters, }); + + Future getStewardRemainWeight({required String token}); } diff --git a/packages/chicken/lib/data/data_source/remote/chicken/chicken_remote_imp.dart b/packages/chicken/lib/data/data_source/remote/chicken/chicken_remote_imp.dart index 129ce05..23ea0ff 100644 --- a/packages/chicken/lib/data/data_source/remote/chicken/chicken_remote_imp.dart +++ b/packages/chicken/lib/data/data_source/remote/chicken/chicken_remote_imp.dart @@ -19,6 +19,7 @@ import 'package:rasadyar_chicken/data/models/response/segmentation_model/segment import 'package:rasadyar_chicken/data/models/response/steward_free_bar/steward_free_bar.dart'; import 'package:rasadyar_chicken/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart'; import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart'; +import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart'; import 'package:rasadyar_chicken/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart'; import 'package:rasadyar_chicken/data/models/response/user_profile/user_profile.dart'; import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_arrival.dart' @@ -533,4 +534,15 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource { return res.data; } + + @override + Future getStewardRemainWeight({required String token}) async { + var res = await _httpClient.get( + '/steward-remain-weight/', + headers: {'Authorization': 'Bearer $token'}, + fromJson: StewardRemainWeight.fromJson, + ); + + return res.data; + } } diff --git a/packages/chicken/lib/data/models/response/steward_remain_weight/steward_remain_weight.dart b/packages/chicken/lib/data/models/response/steward_remain_weight/steward_remain_weight.dart new file mode 100644 index 0000000..398dbb6 --- /dev/null +++ b/packages/chicken/lib/data/models/response/steward_remain_weight/steward_remain_weight.dart @@ -0,0 +1,26 @@ +import 'package:freezed_annotation/freezed_annotation.dart'; + +part 'steward_remain_weight.freezed.dart'; +part 'steward_remain_weight.g.dart'; + +@freezed +abstract class StewardRemainWeight with _$StewardRemainWeight { + const factory StewardRemainWeight({ + List? governmental, + List? free, + }) = _StewardRemainWeight; + + factory StewardRemainWeight.fromJson(Map json) => + _$StewardRemainWeightFromJson(json); +} + +@freezed +abstract class RemainWeightDay with _$RemainWeightDay { + const factory RemainWeightDay({ + String? day, + double? amount, + }) = _RemainWeightDay; + + factory RemainWeightDay.fromJson(Map json) => + _$RemainWeightDayFromJson(json); +} \ No newline at end of file diff --git a/packages/chicken/lib/data/models/response/steward_remain_weight/steward_remain_weight.freezed.dart b/packages/chicken/lib/data/models/response/steward_remain_weight/steward_remain_weight.freezed.dart new file mode 100644 index 0000000..0a02220 --- /dev/null +++ b/packages/chicken/lib/data/models/response/steward_remain_weight/steward_remain_weight.freezed.dart @@ -0,0 +1,562 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND +// coverage:ignore-file +// ignore_for_file: type=lint +// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target, unnecessary_question_mark + +part of 'steward_remain_weight.dart'; + +// ************************************************************************** +// FreezedGenerator +// ************************************************************************** + +// dart format off +T _$identity(T value) => value; + +/// @nodoc +mixin _$StewardRemainWeight { + + List? get governmental; List? get free; +/// Create a copy of StewardRemainWeight +/// with the given fields replaced by the non-null parameter values. +@JsonKey(includeFromJson: false, includeToJson: false) +@pragma('vm:prefer-inline') +$StewardRemainWeightCopyWith get copyWith => _$StewardRemainWeightCopyWithImpl(this as StewardRemainWeight, _$identity); + + /// Serializes this StewardRemainWeight to a JSON map. + Map toJson(); + + +@override +bool operator ==(Object other) { + return identical(this, other) || (other.runtimeType == runtimeType&&other is StewardRemainWeight&&const DeepCollectionEquality().equals(other.governmental, governmental)&&const DeepCollectionEquality().equals(other.free, free)); +} + +@JsonKey(includeFromJson: false, includeToJson: false) +@override +int get hashCode => Object.hash(runtimeType,const DeepCollectionEquality().hash(governmental),const DeepCollectionEquality().hash(free)); + +@override +String toString() { + return 'StewardRemainWeight(governmental: $governmental, free: $free)'; +} + + +} + +/// @nodoc +abstract mixin class $StewardRemainWeightCopyWith<$Res> { + factory $StewardRemainWeightCopyWith(StewardRemainWeight value, $Res Function(StewardRemainWeight) _then) = _$StewardRemainWeightCopyWithImpl; +@useResult +$Res call({ + List? governmental, List? free +}); + + + + +} +/// @nodoc +class _$StewardRemainWeightCopyWithImpl<$Res> + implements $StewardRemainWeightCopyWith<$Res> { + _$StewardRemainWeightCopyWithImpl(this._self, this._then); + + final StewardRemainWeight _self; + final $Res Function(StewardRemainWeight) _then; + +/// Create a copy of StewardRemainWeight +/// with the given fields replaced by the non-null parameter values. +@pragma('vm:prefer-inline') @override $Res call({Object? governmental = freezed,Object? free = freezed,}) { + return _then(_self.copyWith( +governmental: freezed == governmental ? _self.governmental : governmental // ignore: cast_nullable_to_non_nullable +as List?,free: freezed == free ? _self.free : free // ignore: cast_nullable_to_non_nullable +as List?, + )); +} + +} + + +/// Adds pattern-matching-related methods to [StewardRemainWeight]. +extension StewardRemainWeightPatterns on StewardRemainWeight { +/// A variant of `map` that fallback to returning `orElse`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeMap(TResult Function( _StewardRemainWeight value)? $default,{required TResult orElse(),}){ +final _that = this; +switch (_that) { +case _StewardRemainWeight() when $default != null: +return $default(_that);case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// Callbacks receives the raw object, upcasted. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case final Subclass2 value: +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult map(TResult Function( _StewardRemainWeight value) $default,){ +final _that = this; +switch (_that) { +case _StewardRemainWeight(): +return $default(_that);case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `map` that fallback to returning `null`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? mapOrNull(TResult? Function( _StewardRemainWeight value)? $default,){ +final _that = this; +switch (_that) { +case _StewardRemainWeight() when $default != null: +return $default(_that);case _: + return null; + +} +} +/// A variant of `when` that fallback to an `orElse` callback. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeWhen(TResult Function( List? governmental, List? free)? $default,{required TResult orElse(),}) {final _that = this; +switch (_that) { +case _StewardRemainWeight() when $default != null: +return $default(_that.governmental,_that.free);case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// As opposed to `map`, this offers destructuring. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case Subclass2(:final field2): +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult when(TResult Function( List? governmental, List? free) $default,) {final _that = this; +switch (_that) { +case _StewardRemainWeight(): +return $default(_that.governmental,_that.free);case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `when` that fallback to returning `null` +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? whenOrNull(TResult? Function( List? governmental, List? free)? $default,) {final _that = this; +switch (_that) { +case _StewardRemainWeight() when $default != null: +return $default(_that.governmental,_that.free);case _: + return null; + +} +} + +} + +/// @nodoc +@JsonSerializable() + +class _StewardRemainWeight implements StewardRemainWeight { + const _StewardRemainWeight({final List? governmental, final List? free}): _governmental = governmental,_free = free; + factory _StewardRemainWeight.fromJson(Map json) => _$StewardRemainWeightFromJson(json); + + final List? _governmental; +@override List? get governmental { + final value = _governmental; + if (value == null) return null; + if (_governmental is EqualUnmodifiableListView) return _governmental; + // ignore: implicit_dynamic_type + return EqualUnmodifiableListView(value); +} + + final List? _free; +@override List? get free { + final value = _free; + if (value == null) return null; + if (_free is EqualUnmodifiableListView) return _free; + // ignore: implicit_dynamic_type + return EqualUnmodifiableListView(value); +} + + +/// Create a copy of StewardRemainWeight +/// with the given fields replaced by the non-null parameter values. +@override @JsonKey(includeFromJson: false, includeToJson: false) +@pragma('vm:prefer-inline') +_$StewardRemainWeightCopyWith<_StewardRemainWeight> get copyWith => __$StewardRemainWeightCopyWithImpl<_StewardRemainWeight>(this, _$identity); + +@override +Map toJson() { + return _$StewardRemainWeightToJson(this, ); +} + +@override +bool operator ==(Object other) { + return identical(this, other) || (other.runtimeType == runtimeType&&other is _StewardRemainWeight&&const DeepCollectionEquality().equals(other._governmental, _governmental)&&const DeepCollectionEquality().equals(other._free, _free)); +} + +@JsonKey(includeFromJson: false, includeToJson: false) +@override +int get hashCode => Object.hash(runtimeType,const DeepCollectionEquality().hash(_governmental),const DeepCollectionEquality().hash(_free)); + +@override +String toString() { + return 'StewardRemainWeight(governmental: $governmental, free: $free)'; +} + + +} + +/// @nodoc +abstract mixin class _$StewardRemainWeightCopyWith<$Res> implements $StewardRemainWeightCopyWith<$Res> { + factory _$StewardRemainWeightCopyWith(_StewardRemainWeight value, $Res Function(_StewardRemainWeight) _then) = __$StewardRemainWeightCopyWithImpl; +@override @useResult +$Res call({ + List? governmental, List? free +}); + + + + +} +/// @nodoc +class __$StewardRemainWeightCopyWithImpl<$Res> + implements _$StewardRemainWeightCopyWith<$Res> { + __$StewardRemainWeightCopyWithImpl(this._self, this._then); + + final _StewardRemainWeight _self; + final $Res Function(_StewardRemainWeight) _then; + +/// Create a copy of StewardRemainWeight +/// with the given fields replaced by the non-null parameter values. +@override @pragma('vm:prefer-inline') $Res call({Object? governmental = freezed,Object? free = freezed,}) { + return _then(_StewardRemainWeight( +governmental: freezed == governmental ? _self._governmental : governmental // ignore: cast_nullable_to_non_nullable +as List?,free: freezed == free ? _self._free : free // ignore: cast_nullable_to_non_nullable +as List?, + )); +} + + +} + + +/// @nodoc +mixin _$RemainWeightDay { + + String? get day; double? get amount; +/// Create a copy of RemainWeightDay +/// with the given fields replaced by the non-null parameter values. +@JsonKey(includeFromJson: false, includeToJson: false) +@pragma('vm:prefer-inline') +$RemainWeightDayCopyWith get copyWith => _$RemainWeightDayCopyWithImpl(this as RemainWeightDay, _$identity); + + /// Serializes this RemainWeightDay to a JSON map. + Map toJson(); + + +@override +bool operator ==(Object other) { + return identical(this, other) || (other.runtimeType == runtimeType&&other is RemainWeightDay&&(identical(other.day, day) || other.day == day)&&(identical(other.amount, amount) || other.amount == amount)); +} + +@JsonKey(includeFromJson: false, includeToJson: false) +@override +int get hashCode => Object.hash(runtimeType,day,amount); + +@override +String toString() { + return 'RemainWeightDay(day: $day, amount: $amount)'; +} + + +} + +/// @nodoc +abstract mixin class $RemainWeightDayCopyWith<$Res> { + factory $RemainWeightDayCopyWith(RemainWeightDay value, $Res Function(RemainWeightDay) _then) = _$RemainWeightDayCopyWithImpl; +@useResult +$Res call({ + String? day, double? amount +}); + + + + +} +/// @nodoc +class _$RemainWeightDayCopyWithImpl<$Res> + implements $RemainWeightDayCopyWith<$Res> { + _$RemainWeightDayCopyWithImpl(this._self, this._then); + + final RemainWeightDay _self; + final $Res Function(RemainWeightDay) _then; + +/// Create a copy of RemainWeightDay +/// with the given fields replaced by the non-null parameter values. +@pragma('vm:prefer-inline') @override $Res call({Object? day = freezed,Object? amount = freezed,}) { + return _then(_self.copyWith( +day: freezed == day ? _self.day : day // ignore: cast_nullable_to_non_nullable +as String?,amount: freezed == amount ? _self.amount : amount // ignore: cast_nullable_to_non_nullable +as double?, + )); +} + +} + + +/// Adds pattern-matching-related methods to [RemainWeightDay]. +extension RemainWeightDayPatterns on RemainWeightDay { +/// A variant of `map` that fallback to returning `orElse`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeMap(TResult Function( _RemainWeightDay value)? $default,{required TResult orElse(),}){ +final _that = this; +switch (_that) { +case _RemainWeightDay() when $default != null: +return $default(_that);case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// Callbacks receives the raw object, upcasted. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case final Subclass2 value: +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult map(TResult Function( _RemainWeightDay value) $default,){ +final _that = this; +switch (_that) { +case _RemainWeightDay(): +return $default(_that);case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `map` that fallback to returning `null`. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case final Subclass value: +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? mapOrNull(TResult? Function( _RemainWeightDay value)? $default,){ +final _that = this; +switch (_that) { +case _RemainWeightDay() when $default != null: +return $default(_that);case _: + return null; + +} +} +/// A variant of `when` that fallback to an `orElse` callback. +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return orElse(); +/// } +/// ``` + +@optionalTypeArgs TResult maybeWhen(TResult Function( String? day, double? amount)? $default,{required TResult orElse(),}) {final _that = this; +switch (_that) { +case _RemainWeightDay() when $default != null: +return $default(_that.day,_that.amount);case _: + return orElse(); + +} +} +/// A `switch`-like method, using callbacks. +/// +/// As opposed to `map`, this offers destructuring. +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case Subclass2(:final field2): +/// return ...; +/// } +/// ``` + +@optionalTypeArgs TResult when(TResult Function( String? day, double? amount) $default,) {final _that = this; +switch (_that) { +case _RemainWeightDay(): +return $default(_that.day,_that.amount);case _: + throw StateError('Unexpected subclass'); + +} +} +/// A variant of `when` that fallback to returning `null` +/// +/// It is equivalent to doing: +/// ```dart +/// switch (sealedClass) { +/// case Subclass(:final field): +/// return ...; +/// case _: +/// return null; +/// } +/// ``` + +@optionalTypeArgs TResult? whenOrNull(TResult? Function( String? day, double? amount)? $default,) {final _that = this; +switch (_that) { +case _RemainWeightDay() when $default != null: +return $default(_that.day,_that.amount);case _: + return null; + +} +} + +} + +/// @nodoc +@JsonSerializable() + +class _RemainWeightDay implements RemainWeightDay { + const _RemainWeightDay({this.day, this.amount}); + factory _RemainWeightDay.fromJson(Map json) => _$RemainWeightDayFromJson(json); + +@override final String? day; +@override final double? amount; + +/// Create a copy of RemainWeightDay +/// with the given fields replaced by the non-null parameter values. +@override @JsonKey(includeFromJson: false, includeToJson: false) +@pragma('vm:prefer-inline') +_$RemainWeightDayCopyWith<_RemainWeightDay> get copyWith => __$RemainWeightDayCopyWithImpl<_RemainWeightDay>(this, _$identity); + +@override +Map toJson() { + return _$RemainWeightDayToJson(this, ); +} + +@override +bool operator ==(Object other) { + return identical(this, other) || (other.runtimeType == runtimeType&&other is _RemainWeightDay&&(identical(other.day, day) || other.day == day)&&(identical(other.amount, amount) || other.amount == amount)); +} + +@JsonKey(includeFromJson: false, includeToJson: false) +@override +int get hashCode => Object.hash(runtimeType,day,amount); + +@override +String toString() { + return 'RemainWeightDay(day: $day, amount: $amount)'; +} + + +} + +/// @nodoc +abstract mixin class _$RemainWeightDayCopyWith<$Res> implements $RemainWeightDayCopyWith<$Res> { + factory _$RemainWeightDayCopyWith(_RemainWeightDay value, $Res Function(_RemainWeightDay) _then) = __$RemainWeightDayCopyWithImpl; +@override @useResult +$Res call({ + String? day, double? amount +}); + + + + +} +/// @nodoc +class __$RemainWeightDayCopyWithImpl<$Res> + implements _$RemainWeightDayCopyWith<$Res> { + __$RemainWeightDayCopyWithImpl(this._self, this._then); + + final _RemainWeightDay _self; + final $Res Function(_RemainWeightDay) _then; + +/// Create a copy of RemainWeightDay +/// with the given fields replaced by the non-null parameter values. +@override @pragma('vm:prefer-inline') $Res call({Object? day = freezed,Object? amount = freezed,}) { + return _then(_RemainWeightDay( +day: freezed == day ? _self.day : day // ignore: cast_nullable_to_non_nullable +as String?,amount: freezed == amount ? _self.amount : amount // ignore: cast_nullable_to_non_nullable +as double?, + )); +} + + +} + +// dart format on diff --git a/packages/chicken/lib/data/models/response/steward_remain_weight/steward_remain_weight.g.dart b/packages/chicken/lib/data/models/response/steward_remain_weight/steward_remain_weight.g.dart new file mode 100644 index 0000000..dcf65f2 --- /dev/null +++ b/packages/chicken/lib/data/models/response/steward_remain_weight/steward_remain_weight.g.dart @@ -0,0 +1,33 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'steward_remain_weight.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +_StewardRemainWeight _$StewardRemainWeightFromJson(Map json) => + _StewardRemainWeight( + governmental: (json['governmental'] as List?) + ?.map((e) => RemainWeightDay.fromJson(e as Map)) + .toList(), + free: (json['free'] as List?) + ?.map((e) => RemainWeightDay.fromJson(e as Map)) + .toList(), + ); + +Map _$StewardRemainWeightToJson( + _StewardRemainWeight instance, +) => { + 'governmental': instance.governmental, + 'free': instance.free, +}; + +_RemainWeightDay _$RemainWeightDayFromJson(Map json) => + _RemainWeightDay( + day: json['day'] as String?, + amount: (json['amount'] as num?)?.toDouble(), + ); + +Map _$RemainWeightDayToJson(_RemainWeightDay instance) => + {'day': instance.day, 'amount': instance.amount}; diff --git a/packages/chicken/lib/data/repositories/chicken/chicken_repository.dart b/packages/chicken/lib/data/repositories/chicken/chicken_repository.dart index f76ff11..8898e1a 100644 --- a/packages/chicken/lib/data/repositories/chicken/chicken_repository.dart +++ b/packages/chicken/lib/data/repositories/chicken/chicken_repository.dart @@ -19,6 +19,7 @@ import 'package:rasadyar_chicken/data/models/response/segmentation_model/segment import 'package:rasadyar_chicken/data/models/response/steward_free_bar/steward_free_bar.dart'; import 'package:rasadyar_chicken/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart'; import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart'; +import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart'; import 'package:rasadyar_chicken/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart'; import 'package:rasadyar_chicken/data/models/response/user_profile/user_profile.dart'; import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_arrival.dart' @@ -182,6 +183,8 @@ abstract class ChickenRepository { Map? queryParameters, }); + Future getStewardRemainWeight({required String token}); + //endregion diff --git a/packages/chicken/lib/data/repositories/chicken/chicken_repository_imp.dart b/packages/chicken/lib/data/repositories/chicken/chicken_repository_imp.dart index 7732ab4..0ab59c6 100644 --- a/packages/chicken/lib/data/repositories/chicken/chicken_repository_imp.dart +++ b/packages/chicken/lib/data/repositories/chicken/chicken_repository_imp.dart @@ -22,6 +22,7 @@ import 'package:rasadyar_chicken/data/models/response/segmentation_model/segment import 'package:rasadyar_chicken/data/models/response/steward_free_bar/steward_free_bar.dart'; import 'package:rasadyar_chicken/data/models/response/steward_free_bar_dashboard/steward_free_bar_dashboard.dart'; import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart'; +import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart'; import 'package:rasadyar_chicken/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart'; import 'package:rasadyar_chicken/data/models/response/user_profile/user_profile.dart'; import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_arrival.dart' @@ -423,5 +424,10 @@ class ChickenRepositoryImp implements ChickenRepository { ); } + @override + Future getStewardRemainWeight({required String token}) async { + return await remote.getStewardRemainWeight(token: token); + } + //endregion } diff --git a/packages/chicken/lib/presentation/pages/steward/root/logic.dart b/packages/chicken/lib/presentation/pages/steward/root/logic.dart index a17a624..e6fc6fa 100644 --- a/packages/chicken/lib/presentation/pages/steward/root/logic.dart +++ b/packages/chicken/lib/presentation/pages/steward/root/logic.dart @@ -8,6 +8,7 @@ import 'package:rasadyar_chicken/data/models/local/widely_used_local_model.dart' import 'package:rasadyar_chicken/data/models/response/inventory/inventory_model.dart'; import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_province_city_model.dart'; import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; +import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart'; import 'package:rasadyar_chicken/data/models/response/steward_sales_info_dashboard/steward_sales_info_dashboard.dart'; import 'package:rasadyar_chicken/data/models/response/waiting_arrival/waiting_arrival.dart' hide ProductModel; @@ -33,6 +34,7 @@ class StewardRootLogic extends GetxController { RxList rolesProductsModel = RxList(); Rxn widelyUsedList = Rxn(); Rxn stewardSalesInfoDashboard = Rxn(); + Rxn stewardRemainWeight = Rxn(); late DioRemote dioRemote; var tokenService = Get.find(); @@ -53,10 +55,6 @@ class StewardRootLogic extends GetxController { super.onInit(); localDatasource = diChicken.get(); chickenRepository = diChicken.get(); - - /*localDatasource.openBox().then((value) async { - widelyUsedList.value = localDatasource.getAllWidely(); - });*/ } @override @@ -73,6 +71,7 @@ class StewardRootLogic extends GetxController { getRolesProducts(); } getStewardSaleDashboard(); + getStewardRemainWeightData(); if (widelyUsedList.value?.hasInit != true) { //TODO @@ -93,7 +92,9 @@ class StewardRootLogic extends GetxController { getInventory(), getRolesProducts(), getStewardSaleDashboard(), + getStewardRemainWeightData(), getProvinces(), + getStewardRemainWeightData(), ]); } @@ -187,6 +188,19 @@ class StewardRootLogic extends GetxController { ); } + Future getStewardRemainWeightData() async { + safeCall( + call: () async => + await chickenRepository.getStewardRemainWeight(token: tokenService.accessToken.value!), + onSuccess: (result) { + if (result != null) { + stewardRemainWeight.value = result; + } + }, + onError: (error, stacktrace) {}, + ); + } + int getNestedKey() { switch (currentPage.value) { case 0: diff --git a/packages/chicken/lib/presentation/pages/steward/sales_in_province/logic.dart b/packages/chicken/lib/presentation/pages/steward/sales_in_province/logic.dart index 6165b6c..b2fd3dd 100644 --- a/packages/chicken/lib/presentation/pages/steward/sales_in_province/logic.dart +++ b/packages/chicken/lib/presentation/pages/steward/sales_in_province/logic.dart @@ -8,6 +8,7 @@ import 'package:rasadyar_chicken/data/models/response/broadcast_price/broadcast_ import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart'; import 'package:rasadyar_chicken/data/models/response/guild_profile/guild_profile.dart'; import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; +import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart'; import 'package:rasadyar_chicken/presentation/pages/steward/root/logic.dart'; import 'package:rasadyar_chicken/presentation/pages/steward/sale/logic.dart'; import 'package:rasadyar_chicken/presentation/utils/string_utils.dart'; @@ -119,41 +120,29 @@ class SalesInProvinceLogic extends GetxController { _updateGovernmentalProductionDateData(); _updateFreeProductionDateData(); - ever(rootLogic.stewardSalesInfoDashboard, (callback) { + ever(rootLogic.stewardRemainWeight, (callback) { _updateGovernmentalProductionDateData(); _updateFreeProductionDateData(); }); } void _updateGovernmentalProductionDateData() { - var today = Jalali.now(); + List dates = rootLogic.stewardRemainWeight.value?.governmental ?? []; governmentalProductionDateData = { - today.formatCompactDate(): DayData( - value: rootLogic.stewardSalesInfoDashboard.value?.totalGovernmentalRemainWeight?.toInt(), - ), - - today.addDays(-1).formatCompactDate(): DayData( - value: rootLogic.stewardSalesInfoDashboard.value?.totalGovernmentalRemainWeight?.toInt(), - ), - - today.addDays(-2).formatCompactDate(): DayData( - value: rootLogic.stewardSalesInfoDashboard.value?.totalGovernmentalRemainWeight?.toInt(), - ), + for (var element in dates) + element.day.toString().toJalali.formatCompactDate(): DayData( + value: element.amount?.toInt(), + ), }; } void _updateFreeProductionDateData() { - var today = Jalali.now(); + var dates = rootLogic.stewardRemainWeight.value?.free ?? []; freeProductionDateData = { - today.formatCompactDate(): DayData( - value: rootLogic.stewardSalesInfoDashboard.value?.totalFreeRemainWeight?.toInt(), - ), - today.addDays(-1).formatCompactDate(): DayData( - value: rootLogic.stewardSalesInfoDashboard.value?.totalFreeRemainWeight?.toInt(), - ), - today.addDays(-2).formatCompactDate(): DayData( - value: rootLogic.stewardSalesInfoDashboard.value?.totalFreeRemainWeight?.toInt(), - ), + for (var element in dates) + element.day.toString().toJalali.formatCompactDate(): DayData( + value: element.amount?.toInt(), + ), }; } diff --git a/packages/chicken/lib/presentation/pages/steward/sales_in_province/view.dart b/packages/chicken/lib/presentation/pages/steward/sales_in_province/view.dart index 565e27b..db97283 100644 --- a/packages/chicken/lib/presentation/pages/steward/sales_in_province/view.dart +++ b/packages/chicken/lib/presentation/pages/steward/sales_in_province/view.dart @@ -154,7 +154,7 @@ class SalesInProvincePage extends GetView { spacing: 4, children: [ Text( - controller.getBuyerInformation(item)?.user?.fullname ?? 'نداردشششش', + controller.getBuyerInformation(item)?.user?.fullname ?? 'ندارد', textAlign: TextAlign.center, style: AppFonts.yekan14.copyWith(color: AppColor.blueNormal), ), @@ -528,18 +528,6 @@ class SalesInProvincePage extends GetView { label: 'وزن لاشه (کیلوگرم)', ), - Obx(() { - return MonthlyDataCalendar( - label: 'تاریخ تولید گوشت', - selectedDate: controller.productionDate.value?.formatCompactDate(), - onDateSelect: (value) { - controller.productionDate.value = value.date; - }, - dayData: controller.quotaType.value == 1 - ? controller.governmentalProductionDateData - : controller.freeProductionDateData, - ); - }), Visibility( visible: isEditMode == false, child: Column( @@ -752,6 +740,18 @@ class SalesInProvincePage extends GetView { ], ), ), + Obx(() { + return MonthlyDataCalendar( + label: 'تاریخ تولید گوشت', + selectedDate: controller.productionDate.value?.formatCompactDate(), + onDateSelect: (value) { + controller.productionDate.value = value.date; + }, + dayData: controller.quotaType.value == 1 + ? controller.governmentalProductionDateData + : controller.freeProductionDateData, + ); + }), RTextField( variant: RTextFieldVariant.noBorder, controller: controller.pricePerKiloController, diff --git a/packages/chicken/lib/presentation/pages/steward/sales_out_of_province/logic.dart b/packages/chicken/lib/presentation/pages/steward/sales_out_of_province/logic.dart index f2d5ad9..6951b3c 100644 --- a/packages/chicken/lib/presentation/pages/steward/sales_out_of_province/logic.dart +++ b/packages/chicken/lib/presentation/pages/steward/sales_out_of_province/logic.dart @@ -5,6 +5,7 @@ import 'package:rasadyar_chicken/data/models/response/iran_province_city/iran_pr import 'package:rasadyar_chicken/data/models/response/out_province_carcasses_buyer/out_province_carcasses_buyer.dart'; import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; import 'package:rasadyar_chicken/data/models/response/steward_free_sale_bar/steward_free_sale_bar.dart'; +import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart'; import 'package:rasadyar_chicken/presentation/pages/steward/root/logic.dart'; import 'package:rasadyar_chicken/presentation/pages/steward/sale/logic.dart'; import 'package:rasadyar_chicken/presentation/pages/steward/sales_out_of_province_buyers/logic.dart'; @@ -72,42 +73,29 @@ class SalesOutOfProvinceLogic extends GetxController { _updateGovernmentalProductionDateData(); _updateFreeProductionDateData(); - ever(rootLogic.stewardSalesInfoDashboard, (callback) { + ever(rootLogic.stewardRemainWeight, (callback) { _updateGovernmentalProductionDateData(); _updateFreeProductionDateData(); }); } void _updateGovernmentalProductionDateData() { - var today = Jalali.now(); - + List dates = rootLogic.stewardRemainWeight.value?.governmental ?? []; governmentalProductionDateData = { - today.formatCompactDate(): DayData( - value: rootLogic.stewardSalesInfoDashboard.value?.totalGovernmentalRemainWeight?.toInt(), - ), - - today.addDays(-1).formatCompactDate(): DayData( - value: rootLogic.stewardSalesInfoDashboard.value?.totalGovernmentalRemainWeight?.toInt(), - ), - - today.addDays(-2).formatCompactDate(): DayData( - value: rootLogic.stewardSalesInfoDashboard.value?.totalGovernmentalRemainWeight?.toInt(), - ), + for (var element in dates) + element.day.toString().toJalali.formatCompactDate(): DayData( + value: element.amount?.toInt(), + ), }; } void _updateFreeProductionDateData() { - var today = Jalali.now(); + var dates = rootLogic.stewardRemainWeight.value?.free ?? []; freeProductionDateData = { - today.formatCompactDate(): DayData( - value: rootLogic.stewardSalesInfoDashboard.value?.totalFreeRemainWeight?.toInt(), - ), - today.addDays(-1).formatCompactDate(): DayData( - value: rootLogic.stewardSalesInfoDashboard.value?.totalFreeRemainWeight?.toInt(), - ), - today.addDays(-2).formatCompactDate(): DayData( - value: rootLogic.stewardSalesInfoDashboard.value?.totalFreeRemainWeight?.toInt(), - ), + for (var element in dates) + element.day.toString().toJalali.formatCompactDate(): DayData( + value: element.amount?.toInt(), + ), }; } diff --git a/packages/chicken/lib/presentation/pages/steward/sales_out_of_province/view.dart b/packages/chicken/lib/presentation/pages/steward/sales_out_of_province/view.dart index f4a963b..e7bae09 100644 --- a/packages/chicken/lib/presentation/pages/steward/sales_out_of_province/view.dart +++ b/packages/chicken/lib/presentation/pages/steward/sales_out_of_province/view.dart @@ -385,19 +385,6 @@ class SalesOutOfProvincePage extends GetView { child: Column( spacing: 12, children: [ - Obx(() { - return MonthlyDataCalendar( - label: 'تاریخ تولید گوشت', - selectedDate: controller.productionDate.value?.formatCompactDate(), - onDateSelect: (value) { - controller.productionDate.value = value.date; - }, - dayData: controller.quotaType.value == 1 - ? controller.governmentalProductionDateData - : controller.freeProductionDateData, - ); - }), - Container( height: 50.h, clipBehavior: Clip.none, @@ -604,6 +591,19 @@ class SalesOutOfProvincePage extends GetView { ], ), ), + + Obx(() { + return MonthlyDataCalendar( + label: 'تاریخ تولید گوشت', + selectedDate: controller.productionDate.value?.formatCompactDate(), + onDateSelect: (value) { + controller.productionDate.value = value.date; + }, + dayData: controller.quotaType.value == 1 + ? controller.governmentalProductionDateData + : controller.freeProductionDateData, + ); + }), ], ), ), diff --git a/packages/chicken/lib/presentation/pages/steward/segmentation/logic.dart b/packages/chicken/lib/presentation/pages/steward/segmentation/logic.dart index 96453c1..619e21b 100644 --- a/packages/chicken/lib/presentation/pages/steward/segmentation/logic.dart +++ b/packages/chicken/lib/presentation/pages/steward/segmentation/logic.dart @@ -3,6 +3,7 @@ import 'package:flutter/material.dart'; import 'package:rasadyar_chicken/data/models/response/guild/guild_model.dart'; import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart'; import 'package:rasadyar_chicken/data/models/response/segmentation_model/segmentation_model.dart'; +import 'package:rasadyar_chicken/data/models/response/steward_remain_weight/steward_remain_weight.dart'; import 'package:rasadyar_chicken/presentation/pages/steward/root/logic.dart'; import 'package:rasadyar_chicken/presentation/utils/utils.dart'; import 'package:rasadyar_core/core.dart'; @@ -51,42 +52,29 @@ class SegmentationLogic extends GetxController { _updateGovernmentalProductionDateData(); _updateFreeProductionDateData(); - - ever(rootLogic.stewardSalesInfoDashboard, (callback) { + ever(rootLogic.stewardRemainWeight, (callback) { _updateGovernmentalProductionDateData(); _updateFreeProductionDateData(); }); } void _updateGovernmentalProductionDateData() { - var today = Jalali.now(); + List dates = rootLogic.stewardRemainWeight.value?.governmental ?? []; governmentalProductionDateData = { - today.formatCompactDate(): DayData( - value: rootLogic.stewardSalesInfoDashboard.value?.totalGovernmentalRemainWeight?.toInt(), - ), - - today.addDays(-1).formatCompactDate(): DayData( - value: rootLogic.stewardSalesInfoDashboard.value?.totalGovernmentalRemainWeight?.toInt(), - ), - - today.addDays(-2).formatCompactDate(): DayData( - value: rootLogic.stewardSalesInfoDashboard.value?.totalGovernmentalRemainWeight?.toInt(), - ), + for (var element in dates) + element.day.toString().toJalali.formatCompactDate(): DayData( + value: element.amount?.toInt(), + ), }; } void _updateFreeProductionDateData() { - var today = Jalali.now(); + var dates = rootLogic.stewardRemainWeight.value?.free ?? []; freeProductionDateData = { - today.formatCompactDate(): DayData( - value: rootLogic.stewardSalesInfoDashboard.value?.totalFreeRemainWeight?.toInt(), - ), - today.addDays(-1).formatCompactDate(): DayData( - value: rootLogic.stewardSalesInfoDashboard.value?.totalFreeRemainWeight?.toInt(), - ), - today.addDays(-2).formatCompactDate(): DayData( - value: rootLogic.stewardSalesInfoDashboard.value?.totalFreeRemainWeight?.toInt(), - ), + for (var element in dates) + element.day.toString().toJalali.formatCompactDate(): DayData( + value: element.amount?.toInt(), + ), }; }