feat : new dashboard and inventory_widget

This commit is contained in:
2025-10-08 17:01:33 +03:30
parent 665ef9abf7
commit be6e16f54e
28 changed files with 1020 additions and 126 deletions

View File

@@ -1,5 +1,5 @@
sdk.dir=C:/Users/Housh11/AppData/Local/Android/Sdk
flutter.sdk=C:\\src\\flutter
flutter.buildMode=release
flutter.versionName=1.3.19
flutter.versionCode=16
flutter.versionName=1.3.20
flutter.versionCode=17

View File

@@ -1,5 +1,5 @@
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="30" height="30" rx="8" fill="#9758FF"/>
<rect width="30" height="30" rx="8" />
<path d="M20.6 8.31125L14.95 5.27125C14.35 4.95125 13.64 4.95125 13.04 5.27125L7.39998 8.31125C6.98998 8.54125 6.72998 8.98125 6.72998 9.46125C6.72998 9.95125 6.97998 10.3913 7.39998 10.6112L13.05 13.6512C13.35 13.8112 13.68 13.8913 14 13.8913C14.32 13.8913 14.66 13.8112 14.95 13.6512L20.6 10.6112C21.01 10.3913 21.27 9.95125 21.27 9.46125C21.27 8.98125 21.01 8.54125 20.6 8.31125Z"
fill="white"/>
<path d="M12.12 14.7106L6.87 12.0906C6.46 11.8806 6 11.9106 5.61 12.1406C5.23 12.3806 5 12.7906 5 13.2406V18.2006C5 19.0606 5.48 19.8306 6.25 20.2206L11.5 22.8406C11.68 22.9306 11.88 22.9806 12.08 22.9806C12.31 22.9806 12.55 22.9106 12.76 22.7906C13.14 22.5506 13.37 22.1406 13.37 21.6906V16.7306C13.36 15.8706 12.88 15.1006 12.12 14.7106Z"

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@@ -1,5 +1,4 @@
<svg width="30" height="30" viewBox="0 0 30 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="30" height="30" rx="8" fill="#FFAE00"/>
<path d="M25 24.2512H23.75V14.0012C23.75 11.5812 22.42 10.2512 20 10.2512H15.75V9.02116C16.33 9.16116 16.91 9.24116 17.5 9.24116C18.44 9.24116 19.38 9.06116 20.28 8.70116C20.56 8.59116 20.75 8.31117 20.75 8.00117V5.00117C20.75 4.75117 20.63 4.52117 20.42 4.38117C20.21 4.24117 19.95 4.21117 19.72 4.30117C18.29 4.87117 16.71 4.87117 15.28 4.30117C15.05 4.21117 14.79 4.24117 14.58 4.38117C14.37 4.52117 14.25 4.75117 14.25 5.00117V8.00117V10.2512H10C7.58 10.2512 6.25 11.5812 6.25 14.0012V24.2512H5C4.59 24.2512 4.25 24.5912 4.25 25.0012C4.25 25.4112 4.59 25.7512 5 25.7512H7H23H25C25.41 25.7512 25.75 25.4112 25.75 25.0012C25.75 24.5912 25.41 24.2512 25 24.2512ZM10.24 24.2512H7.75V15.7512H10.24V24.2512ZM14.24 24.2512H11.74V15.7512H14.24V24.2512ZM18.24 24.2512H15.74V15.7512H18.24V24.2512ZM22.25 24.2512H19.74V15.7512H22.25V24.2512Z"
fill="white"/>
</svg>

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 968 B

Binary file not shown.

BIN
doc/inner_splash.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

View File

@@ -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_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'
hide ProductModel;
@@ -156,4 +157,8 @@ abstract class ChickenRemoteDatasource {
Future<BroadcastPrice?> getBroadcastPrice({required String token});
Future<StewardSalesInfoDashboard?> getStewardSalesInfoDashboard({
required String token,
Map<String, dynamic>? queryParameters,
});
}

View File

@@ -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_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'
hide ProductModel;
@@ -494,4 +495,19 @@ class ChickenRemoteDatasourceImp implements ChickenRemoteDatasource {
return res.data;
}
@override
Future<StewardSalesInfoDashboard?> getStewardSalesInfoDashboard({
required String token,
Map<String, dynamic>? queryParameters,
}) async {
var res = await _httpClient.get(
'/steward-sales-info-dashboard/',
queryParameters: queryParameters,
headers: {'Authorization': 'Bearer $token'},
fromJson: (json) => StewardSalesInfoDashboard.fromJson(json),
);
return res.data;
}
}

View File

@@ -0,0 +1,28 @@
import 'package:freezed_annotation/freezed_annotation.dart';
part 'steward_sales_info_dashboard.freezed.dart';
part 'steward_sales_info_dashboard.g.dart';
@freezed
abstract class StewardSalesInfoDashboard with _$StewardSalesInfoDashboard {
const factory StewardSalesInfoDashboard({
double? totalGovernmentalInputWeight,
double? totalFreeInputWeight,
double? totalGovernmentalOutputWeight,
double? totalFreeOutputWeight,
double? totalGovernmentalRemainWeight,
double? totalFreeRemainWeight,
double? totalStewardFreeSaleBarCarcassesWeight,
double? totalStewardInProvinceAllocationsWeight,
double? segmentationsWeight,
double? totalSellingInProvinceGovernmentalWeight,
double? totalSellingInProvinceFreeWeight,
double? totalCommitmentSellingInProvinceGovernmentalWeight,
double? totalCommitmentSellingInProvinceGovernmentalRemainWeight,
double? totalCommitmentSellingInProvinceFreeWeight,
double? totalCommitmentSellingInProvinceFreeRemainWeight,
}) = _StewardSalesInfoDashboard;
factory StewardSalesInfoDashboard.fromJson(Map<String, dynamic> json) =>
_$StewardSalesInfoDashboardFromJson(json);
}

View File

@@ -0,0 +1,319 @@
// 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_sales_info_dashboard.dart';
// **************************************************************************
// FreezedGenerator
// **************************************************************************
// dart format off
T _$identity<T>(T value) => value;
/// @nodoc
mixin _$StewardSalesInfoDashboard {
double? get totalGovernmentalInputWeight; double? get totalFreeInputWeight; double? get totalGovernmentalOutputWeight; double? get totalFreeOutputWeight; double? get totalGovernmentalRemainWeight; double? get totalFreeRemainWeight; double? get totalStewardFreeSaleBarCarcassesWeight; double? get totalStewardInProvinceAllocationsWeight; double? get segmentationsWeight; double? get totalSellingInProvinceGovernmentalWeight; double? get totalSellingInProvinceFreeWeight; double? get totalCommitmentSellingInProvinceGovernmentalWeight; double? get totalCommitmentSellingInProvinceGovernmentalRemainWeight; double? get totalCommitmentSellingInProvinceFreeWeight; double? get totalCommitmentSellingInProvinceFreeRemainWeight;
/// Create a copy of StewardSalesInfoDashboard
/// with the given fields replaced by the non-null parameter values.
@JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
$StewardSalesInfoDashboardCopyWith<StewardSalesInfoDashboard> get copyWith => _$StewardSalesInfoDashboardCopyWithImpl<StewardSalesInfoDashboard>(this as StewardSalesInfoDashboard, _$identity);
/// Serializes this StewardSalesInfoDashboard to a JSON map.
Map<String, dynamic> toJson();
@override
bool operator ==(Object other) {
return identical(this, other) || (other.runtimeType == runtimeType&&other is StewardSalesInfoDashboard&&(identical(other.totalGovernmentalInputWeight, totalGovernmentalInputWeight) || other.totalGovernmentalInputWeight == totalGovernmentalInputWeight)&&(identical(other.totalFreeInputWeight, totalFreeInputWeight) || other.totalFreeInputWeight == totalFreeInputWeight)&&(identical(other.totalGovernmentalOutputWeight, totalGovernmentalOutputWeight) || other.totalGovernmentalOutputWeight == totalGovernmentalOutputWeight)&&(identical(other.totalFreeOutputWeight, totalFreeOutputWeight) || other.totalFreeOutputWeight == totalFreeOutputWeight)&&(identical(other.totalGovernmentalRemainWeight, totalGovernmentalRemainWeight) || other.totalGovernmentalRemainWeight == totalGovernmentalRemainWeight)&&(identical(other.totalFreeRemainWeight, totalFreeRemainWeight) || other.totalFreeRemainWeight == totalFreeRemainWeight)&&(identical(other.totalStewardFreeSaleBarCarcassesWeight, totalStewardFreeSaleBarCarcassesWeight) || other.totalStewardFreeSaleBarCarcassesWeight == totalStewardFreeSaleBarCarcassesWeight)&&(identical(other.totalStewardInProvinceAllocationsWeight, totalStewardInProvinceAllocationsWeight) || other.totalStewardInProvinceAllocationsWeight == totalStewardInProvinceAllocationsWeight)&&(identical(other.segmentationsWeight, segmentationsWeight) || other.segmentationsWeight == segmentationsWeight)&&(identical(other.totalSellingInProvinceGovernmentalWeight, totalSellingInProvinceGovernmentalWeight) || other.totalSellingInProvinceGovernmentalWeight == totalSellingInProvinceGovernmentalWeight)&&(identical(other.totalSellingInProvinceFreeWeight, totalSellingInProvinceFreeWeight) || other.totalSellingInProvinceFreeWeight == totalSellingInProvinceFreeWeight)&&(identical(other.totalCommitmentSellingInProvinceGovernmentalWeight, totalCommitmentSellingInProvinceGovernmentalWeight) || other.totalCommitmentSellingInProvinceGovernmentalWeight == totalCommitmentSellingInProvinceGovernmentalWeight)&&(identical(other.totalCommitmentSellingInProvinceGovernmentalRemainWeight, totalCommitmentSellingInProvinceGovernmentalRemainWeight) || other.totalCommitmentSellingInProvinceGovernmentalRemainWeight == totalCommitmentSellingInProvinceGovernmentalRemainWeight)&&(identical(other.totalCommitmentSellingInProvinceFreeWeight, totalCommitmentSellingInProvinceFreeWeight) || other.totalCommitmentSellingInProvinceFreeWeight == totalCommitmentSellingInProvinceFreeWeight)&&(identical(other.totalCommitmentSellingInProvinceFreeRemainWeight, totalCommitmentSellingInProvinceFreeRemainWeight) || other.totalCommitmentSellingInProvinceFreeRemainWeight == totalCommitmentSellingInProvinceFreeRemainWeight));
}
@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(runtimeType,totalGovernmentalInputWeight,totalFreeInputWeight,totalGovernmentalOutputWeight,totalFreeOutputWeight,totalGovernmentalRemainWeight,totalFreeRemainWeight,totalStewardFreeSaleBarCarcassesWeight,totalStewardInProvinceAllocationsWeight,segmentationsWeight,totalSellingInProvinceGovernmentalWeight,totalSellingInProvinceFreeWeight,totalCommitmentSellingInProvinceGovernmentalWeight,totalCommitmentSellingInProvinceGovernmentalRemainWeight,totalCommitmentSellingInProvinceFreeWeight,totalCommitmentSellingInProvinceFreeRemainWeight);
@override
String toString() {
return 'StewardSalesInfoDashboard(totalGovernmentalInputWeight: $totalGovernmentalInputWeight, totalFreeInputWeight: $totalFreeInputWeight, totalGovernmentalOutputWeight: $totalGovernmentalOutputWeight, totalFreeOutputWeight: $totalFreeOutputWeight, totalGovernmentalRemainWeight: $totalGovernmentalRemainWeight, totalFreeRemainWeight: $totalFreeRemainWeight, totalStewardFreeSaleBarCarcassesWeight: $totalStewardFreeSaleBarCarcassesWeight, totalStewardInProvinceAllocationsWeight: $totalStewardInProvinceAllocationsWeight, segmentationsWeight: $segmentationsWeight, totalSellingInProvinceGovernmentalWeight: $totalSellingInProvinceGovernmentalWeight, totalSellingInProvinceFreeWeight: $totalSellingInProvinceFreeWeight, totalCommitmentSellingInProvinceGovernmentalWeight: $totalCommitmentSellingInProvinceGovernmentalWeight, totalCommitmentSellingInProvinceGovernmentalRemainWeight: $totalCommitmentSellingInProvinceGovernmentalRemainWeight, totalCommitmentSellingInProvinceFreeWeight: $totalCommitmentSellingInProvinceFreeWeight, totalCommitmentSellingInProvinceFreeRemainWeight: $totalCommitmentSellingInProvinceFreeRemainWeight)';
}
}
/// @nodoc
abstract mixin class $StewardSalesInfoDashboardCopyWith<$Res> {
factory $StewardSalesInfoDashboardCopyWith(StewardSalesInfoDashboard value, $Res Function(StewardSalesInfoDashboard) _then) = _$StewardSalesInfoDashboardCopyWithImpl;
@useResult
$Res call({
double? totalGovernmentalInputWeight, double? totalFreeInputWeight, double? totalGovernmentalOutputWeight, double? totalFreeOutputWeight, double? totalGovernmentalRemainWeight, double? totalFreeRemainWeight, double? totalStewardFreeSaleBarCarcassesWeight, double? totalStewardInProvinceAllocationsWeight, double? segmentationsWeight, double? totalSellingInProvinceGovernmentalWeight, double? totalSellingInProvinceFreeWeight, double? totalCommitmentSellingInProvinceGovernmentalWeight, double? totalCommitmentSellingInProvinceGovernmentalRemainWeight, double? totalCommitmentSellingInProvinceFreeWeight, double? totalCommitmentSellingInProvinceFreeRemainWeight
});
}
/// @nodoc
class _$StewardSalesInfoDashboardCopyWithImpl<$Res>
implements $StewardSalesInfoDashboardCopyWith<$Res> {
_$StewardSalesInfoDashboardCopyWithImpl(this._self, this._then);
final StewardSalesInfoDashboard _self;
final $Res Function(StewardSalesInfoDashboard) _then;
/// Create a copy of StewardSalesInfoDashboard
/// with the given fields replaced by the non-null parameter values.
@pragma('vm:prefer-inline') @override $Res call({Object? totalGovernmentalInputWeight = freezed,Object? totalFreeInputWeight = freezed,Object? totalGovernmentalOutputWeight = freezed,Object? totalFreeOutputWeight = freezed,Object? totalGovernmentalRemainWeight = freezed,Object? totalFreeRemainWeight = freezed,Object? totalStewardFreeSaleBarCarcassesWeight = freezed,Object? totalStewardInProvinceAllocationsWeight = freezed,Object? segmentationsWeight = freezed,Object? totalSellingInProvinceGovernmentalWeight = freezed,Object? totalSellingInProvinceFreeWeight = freezed,Object? totalCommitmentSellingInProvinceGovernmentalWeight = freezed,Object? totalCommitmentSellingInProvinceGovernmentalRemainWeight = freezed,Object? totalCommitmentSellingInProvinceFreeWeight = freezed,Object? totalCommitmentSellingInProvinceFreeRemainWeight = freezed,}) {
return _then(_self.copyWith(
totalGovernmentalInputWeight: freezed == totalGovernmentalInputWeight ? _self.totalGovernmentalInputWeight : totalGovernmentalInputWeight // ignore: cast_nullable_to_non_nullable
as double?,totalFreeInputWeight: freezed == totalFreeInputWeight ? _self.totalFreeInputWeight : totalFreeInputWeight // ignore: cast_nullable_to_non_nullable
as double?,totalGovernmentalOutputWeight: freezed == totalGovernmentalOutputWeight ? _self.totalGovernmentalOutputWeight : totalGovernmentalOutputWeight // ignore: cast_nullable_to_non_nullable
as double?,totalFreeOutputWeight: freezed == totalFreeOutputWeight ? _self.totalFreeOutputWeight : totalFreeOutputWeight // ignore: cast_nullable_to_non_nullable
as double?,totalGovernmentalRemainWeight: freezed == totalGovernmentalRemainWeight ? _self.totalGovernmentalRemainWeight : totalGovernmentalRemainWeight // ignore: cast_nullable_to_non_nullable
as double?,totalFreeRemainWeight: freezed == totalFreeRemainWeight ? _self.totalFreeRemainWeight : totalFreeRemainWeight // ignore: cast_nullable_to_non_nullable
as double?,totalStewardFreeSaleBarCarcassesWeight: freezed == totalStewardFreeSaleBarCarcassesWeight ? _self.totalStewardFreeSaleBarCarcassesWeight : totalStewardFreeSaleBarCarcassesWeight // ignore: cast_nullable_to_non_nullable
as double?,totalStewardInProvinceAllocationsWeight: freezed == totalStewardInProvinceAllocationsWeight ? _self.totalStewardInProvinceAllocationsWeight : totalStewardInProvinceAllocationsWeight // ignore: cast_nullable_to_non_nullable
as double?,segmentationsWeight: freezed == segmentationsWeight ? _self.segmentationsWeight : segmentationsWeight // ignore: cast_nullable_to_non_nullable
as double?,totalSellingInProvinceGovernmentalWeight: freezed == totalSellingInProvinceGovernmentalWeight ? _self.totalSellingInProvinceGovernmentalWeight : totalSellingInProvinceGovernmentalWeight // ignore: cast_nullable_to_non_nullable
as double?,totalSellingInProvinceFreeWeight: freezed == totalSellingInProvinceFreeWeight ? _self.totalSellingInProvinceFreeWeight : totalSellingInProvinceFreeWeight // ignore: cast_nullable_to_non_nullable
as double?,totalCommitmentSellingInProvinceGovernmentalWeight: freezed == totalCommitmentSellingInProvinceGovernmentalWeight ? _self.totalCommitmentSellingInProvinceGovernmentalWeight : totalCommitmentSellingInProvinceGovernmentalWeight // ignore: cast_nullable_to_non_nullable
as double?,totalCommitmentSellingInProvinceGovernmentalRemainWeight: freezed == totalCommitmentSellingInProvinceGovernmentalRemainWeight ? _self.totalCommitmentSellingInProvinceGovernmentalRemainWeight : totalCommitmentSellingInProvinceGovernmentalRemainWeight // ignore: cast_nullable_to_non_nullable
as double?,totalCommitmentSellingInProvinceFreeWeight: freezed == totalCommitmentSellingInProvinceFreeWeight ? _self.totalCommitmentSellingInProvinceFreeWeight : totalCommitmentSellingInProvinceFreeWeight // ignore: cast_nullable_to_non_nullable
as double?,totalCommitmentSellingInProvinceFreeRemainWeight: freezed == totalCommitmentSellingInProvinceFreeRemainWeight ? _self.totalCommitmentSellingInProvinceFreeRemainWeight : totalCommitmentSellingInProvinceFreeRemainWeight // ignore: cast_nullable_to_non_nullable
as double?,
));
}
}
/// Adds pattern-matching-related methods to [StewardSalesInfoDashboard].
extension StewardSalesInfoDashboardPatterns on StewardSalesInfoDashboard {
/// 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 extends Object?>(TResult Function( _StewardSalesInfoDashboard value)? $default,{required TResult orElse(),}){
final _that = this;
switch (_that) {
case _StewardSalesInfoDashboard() 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 extends Object?>(TResult Function( _StewardSalesInfoDashboard value) $default,){
final _that = this;
switch (_that) {
case _StewardSalesInfoDashboard():
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 extends Object?>(TResult? Function( _StewardSalesInfoDashboard value)? $default,){
final _that = this;
switch (_that) {
case _StewardSalesInfoDashboard() 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 extends Object?>(TResult Function( double? totalGovernmentalInputWeight, double? totalFreeInputWeight, double? totalGovernmentalOutputWeight, double? totalFreeOutputWeight, double? totalGovernmentalRemainWeight, double? totalFreeRemainWeight, double? totalStewardFreeSaleBarCarcassesWeight, double? totalStewardInProvinceAllocationsWeight, double? segmentationsWeight, double? totalSellingInProvinceGovernmentalWeight, double? totalSellingInProvinceFreeWeight, double? totalCommitmentSellingInProvinceGovernmentalWeight, double? totalCommitmentSellingInProvinceGovernmentalRemainWeight, double? totalCommitmentSellingInProvinceFreeWeight, double? totalCommitmentSellingInProvinceFreeRemainWeight)? $default,{required TResult orElse(),}) {final _that = this;
switch (_that) {
case _StewardSalesInfoDashboard() when $default != null:
return $default(_that.totalGovernmentalInputWeight,_that.totalFreeInputWeight,_that.totalGovernmentalOutputWeight,_that.totalFreeOutputWeight,_that.totalGovernmentalRemainWeight,_that.totalFreeRemainWeight,_that.totalStewardFreeSaleBarCarcassesWeight,_that.totalStewardInProvinceAllocationsWeight,_that.segmentationsWeight,_that.totalSellingInProvinceGovernmentalWeight,_that.totalSellingInProvinceFreeWeight,_that.totalCommitmentSellingInProvinceGovernmentalWeight,_that.totalCommitmentSellingInProvinceGovernmentalRemainWeight,_that.totalCommitmentSellingInProvinceFreeWeight,_that.totalCommitmentSellingInProvinceFreeRemainWeight);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 extends Object?>(TResult Function( double? totalGovernmentalInputWeight, double? totalFreeInputWeight, double? totalGovernmentalOutputWeight, double? totalFreeOutputWeight, double? totalGovernmentalRemainWeight, double? totalFreeRemainWeight, double? totalStewardFreeSaleBarCarcassesWeight, double? totalStewardInProvinceAllocationsWeight, double? segmentationsWeight, double? totalSellingInProvinceGovernmentalWeight, double? totalSellingInProvinceFreeWeight, double? totalCommitmentSellingInProvinceGovernmentalWeight, double? totalCommitmentSellingInProvinceGovernmentalRemainWeight, double? totalCommitmentSellingInProvinceFreeWeight, double? totalCommitmentSellingInProvinceFreeRemainWeight) $default,) {final _that = this;
switch (_that) {
case _StewardSalesInfoDashboard():
return $default(_that.totalGovernmentalInputWeight,_that.totalFreeInputWeight,_that.totalGovernmentalOutputWeight,_that.totalFreeOutputWeight,_that.totalGovernmentalRemainWeight,_that.totalFreeRemainWeight,_that.totalStewardFreeSaleBarCarcassesWeight,_that.totalStewardInProvinceAllocationsWeight,_that.segmentationsWeight,_that.totalSellingInProvinceGovernmentalWeight,_that.totalSellingInProvinceFreeWeight,_that.totalCommitmentSellingInProvinceGovernmentalWeight,_that.totalCommitmentSellingInProvinceGovernmentalRemainWeight,_that.totalCommitmentSellingInProvinceFreeWeight,_that.totalCommitmentSellingInProvinceFreeRemainWeight);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 extends Object?>(TResult? Function( double? totalGovernmentalInputWeight, double? totalFreeInputWeight, double? totalGovernmentalOutputWeight, double? totalFreeOutputWeight, double? totalGovernmentalRemainWeight, double? totalFreeRemainWeight, double? totalStewardFreeSaleBarCarcassesWeight, double? totalStewardInProvinceAllocationsWeight, double? segmentationsWeight, double? totalSellingInProvinceGovernmentalWeight, double? totalSellingInProvinceFreeWeight, double? totalCommitmentSellingInProvinceGovernmentalWeight, double? totalCommitmentSellingInProvinceGovernmentalRemainWeight, double? totalCommitmentSellingInProvinceFreeWeight, double? totalCommitmentSellingInProvinceFreeRemainWeight)? $default,) {final _that = this;
switch (_that) {
case _StewardSalesInfoDashboard() when $default != null:
return $default(_that.totalGovernmentalInputWeight,_that.totalFreeInputWeight,_that.totalGovernmentalOutputWeight,_that.totalFreeOutputWeight,_that.totalGovernmentalRemainWeight,_that.totalFreeRemainWeight,_that.totalStewardFreeSaleBarCarcassesWeight,_that.totalStewardInProvinceAllocationsWeight,_that.segmentationsWeight,_that.totalSellingInProvinceGovernmentalWeight,_that.totalSellingInProvinceFreeWeight,_that.totalCommitmentSellingInProvinceGovernmentalWeight,_that.totalCommitmentSellingInProvinceGovernmentalRemainWeight,_that.totalCommitmentSellingInProvinceFreeWeight,_that.totalCommitmentSellingInProvinceFreeRemainWeight);case _:
return null;
}
}
}
/// @nodoc
@JsonSerializable()
class _StewardSalesInfoDashboard implements StewardSalesInfoDashboard {
const _StewardSalesInfoDashboard({this.totalGovernmentalInputWeight, this.totalFreeInputWeight, this.totalGovernmentalOutputWeight, this.totalFreeOutputWeight, this.totalGovernmentalRemainWeight, this.totalFreeRemainWeight, this.totalStewardFreeSaleBarCarcassesWeight, this.totalStewardInProvinceAllocationsWeight, this.segmentationsWeight, this.totalSellingInProvinceGovernmentalWeight, this.totalSellingInProvinceFreeWeight, this.totalCommitmentSellingInProvinceGovernmentalWeight, this.totalCommitmentSellingInProvinceGovernmentalRemainWeight, this.totalCommitmentSellingInProvinceFreeWeight, this.totalCommitmentSellingInProvinceFreeRemainWeight});
factory _StewardSalesInfoDashboard.fromJson(Map<String, dynamic> json) => _$StewardSalesInfoDashboardFromJson(json);
@override final double? totalGovernmentalInputWeight;
@override final double? totalFreeInputWeight;
@override final double? totalGovernmentalOutputWeight;
@override final double? totalFreeOutputWeight;
@override final double? totalGovernmentalRemainWeight;
@override final double? totalFreeRemainWeight;
@override final double? totalStewardFreeSaleBarCarcassesWeight;
@override final double? totalStewardInProvinceAllocationsWeight;
@override final double? segmentationsWeight;
@override final double? totalSellingInProvinceGovernmentalWeight;
@override final double? totalSellingInProvinceFreeWeight;
@override final double? totalCommitmentSellingInProvinceGovernmentalWeight;
@override final double? totalCommitmentSellingInProvinceGovernmentalRemainWeight;
@override final double? totalCommitmentSellingInProvinceFreeWeight;
@override final double? totalCommitmentSellingInProvinceFreeRemainWeight;
/// Create a copy of StewardSalesInfoDashboard
/// with the given fields replaced by the non-null parameter values.
@override @JsonKey(includeFromJson: false, includeToJson: false)
@pragma('vm:prefer-inline')
_$StewardSalesInfoDashboardCopyWith<_StewardSalesInfoDashboard> get copyWith => __$StewardSalesInfoDashboardCopyWithImpl<_StewardSalesInfoDashboard>(this, _$identity);
@override
Map<String, dynamic> toJson() {
return _$StewardSalesInfoDashboardToJson(this, );
}
@override
bool operator ==(Object other) {
return identical(this, other) || (other.runtimeType == runtimeType&&other is _StewardSalesInfoDashboard&&(identical(other.totalGovernmentalInputWeight, totalGovernmentalInputWeight) || other.totalGovernmentalInputWeight == totalGovernmentalInputWeight)&&(identical(other.totalFreeInputWeight, totalFreeInputWeight) || other.totalFreeInputWeight == totalFreeInputWeight)&&(identical(other.totalGovernmentalOutputWeight, totalGovernmentalOutputWeight) || other.totalGovernmentalOutputWeight == totalGovernmentalOutputWeight)&&(identical(other.totalFreeOutputWeight, totalFreeOutputWeight) || other.totalFreeOutputWeight == totalFreeOutputWeight)&&(identical(other.totalGovernmentalRemainWeight, totalGovernmentalRemainWeight) || other.totalGovernmentalRemainWeight == totalGovernmentalRemainWeight)&&(identical(other.totalFreeRemainWeight, totalFreeRemainWeight) || other.totalFreeRemainWeight == totalFreeRemainWeight)&&(identical(other.totalStewardFreeSaleBarCarcassesWeight, totalStewardFreeSaleBarCarcassesWeight) || other.totalStewardFreeSaleBarCarcassesWeight == totalStewardFreeSaleBarCarcassesWeight)&&(identical(other.totalStewardInProvinceAllocationsWeight, totalStewardInProvinceAllocationsWeight) || other.totalStewardInProvinceAllocationsWeight == totalStewardInProvinceAllocationsWeight)&&(identical(other.segmentationsWeight, segmentationsWeight) || other.segmentationsWeight == segmentationsWeight)&&(identical(other.totalSellingInProvinceGovernmentalWeight, totalSellingInProvinceGovernmentalWeight) || other.totalSellingInProvinceGovernmentalWeight == totalSellingInProvinceGovernmentalWeight)&&(identical(other.totalSellingInProvinceFreeWeight, totalSellingInProvinceFreeWeight) || other.totalSellingInProvinceFreeWeight == totalSellingInProvinceFreeWeight)&&(identical(other.totalCommitmentSellingInProvinceGovernmentalWeight, totalCommitmentSellingInProvinceGovernmentalWeight) || other.totalCommitmentSellingInProvinceGovernmentalWeight == totalCommitmentSellingInProvinceGovernmentalWeight)&&(identical(other.totalCommitmentSellingInProvinceGovernmentalRemainWeight, totalCommitmentSellingInProvinceGovernmentalRemainWeight) || other.totalCommitmentSellingInProvinceGovernmentalRemainWeight == totalCommitmentSellingInProvinceGovernmentalRemainWeight)&&(identical(other.totalCommitmentSellingInProvinceFreeWeight, totalCommitmentSellingInProvinceFreeWeight) || other.totalCommitmentSellingInProvinceFreeWeight == totalCommitmentSellingInProvinceFreeWeight)&&(identical(other.totalCommitmentSellingInProvinceFreeRemainWeight, totalCommitmentSellingInProvinceFreeRemainWeight) || other.totalCommitmentSellingInProvinceFreeRemainWeight == totalCommitmentSellingInProvinceFreeRemainWeight));
}
@JsonKey(includeFromJson: false, includeToJson: false)
@override
int get hashCode => Object.hash(runtimeType,totalGovernmentalInputWeight,totalFreeInputWeight,totalGovernmentalOutputWeight,totalFreeOutputWeight,totalGovernmentalRemainWeight,totalFreeRemainWeight,totalStewardFreeSaleBarCarcassesWeight,totalStewardInProvinceAllocationsWeight,segmentationsWeight,totalSellingInProvinceGovernmentalWeight,totalSellingInProvinceFreeWeight,totalCommitmentSellingInProvinceGovernmentalWeight,totalCommitmentSellingInProvinceGovernmentalRemainWeight,totalCommitmentSellingInProvinceFreeWeight,totalCommitmentSellingInProvinceFreeRemainWeight);
@override
String toString() {
return 'StewardSalesInfoDashboard(totalGovernmentalInputWeight: $totalGovernmentalInputWeight, totalFreeInputWeight: $totalFreeInputWeight, totalGovernmentalOutputWeight: $totalGovernmentalOutputWeight, totalFreeOutputWeight: $totalFreeOutputWeight, totalGovernmentalRemainWeight: $totalGovernmentalRemainWeight, totalFreeRemainWeight: $totalFreeRemainWeight, totalStewardFreeSaleBarCarcassesWeight: $totalStewardFreeSaleBarCarcassesWeight, totalStewardInProvinceAllocationsWeight: $totalStewardInProvinceAllocationsWeight, segmentationsWeight: $segmentationsWeight, totalSellingInProvinceGovernmentalWeight: $totalSellingInProvinceGovernmentalWeight, totalSellingInProvinceFreeWeight: $totalSellingInProvinceFreeWeight, totalCommitmentSellingInProvinceGovernmentalWeight: $totalCommitmentSellingInProvinceGovernmentalWeight, totalCommitmentSellingInProvinceGovernmentalRemainWeight: $totalCommitmentSellingInProvinceGovernmentalRemainWeight, totalCommitmentSellingInProvinceFreeWeight: $totalCommitmentSellingInProvinceFreeWeight, totalCommitmentSellingInProvinceFreeRemainWeight: $totalCommitmentSellingInProvinceFreeRemainWeight)';
}
}
/// @nodoc
abstract mixin class _$StewardSalesInfoDashboardCopyWith<$Res> implements $StewardSalesInfoDashboardCopyWith<$Res> {
factory _$StewardSalesInfoDashboardCopyWith(_StewardSalesInfoDashboard value, $Res Function(_StewardSalesInfoDashboard) _then) = __$StewardSalesInfoDashboardCopyWithImpl;
@override @useResult
$Res call({
double? totalGovernmentalInputWeight, double? totalFreeInputWeight, double? totalGovernmentalOutputWeight, double? totalFreeOutputWeight, double? totalGovernmentalRemainWeight, double? totalFreeRemainWeight, double? totalStewardFreeSaleBarCarcassesWeight, double? totalStewardInProvinceAllocationsWeight, double? segmentationsWeight, double? totalSellingInProvinceGovernmentalWeight, double? totalSellingInProvinceFreeWeight, double? totalCommitmentSellingInProvinceGovernmentalWeight, double? totalCommitmentSellingInProvinceGovernmentalRemainWeight, double? totalCommitmentSellingInProvinceFreeWeight, double? totalCommitmentSellingInProvinceFreeRemainWeight
});
}
/// @nodoc
class __$StewardSalesInfoDashboardCopyWithImpl<$Res>
implements _$StewardSalesInfoDashboardCopyWith<$Res> {
__$StewardSalesInfoDashboardCopyWithImpl(this._self, this._then);
final _StewardSalesInfoDashboard _self;
final $Res Function(_StewardSalesInfoDashboard) _then;
/// Create a copy of StewardSalesInfoDashboard
/// with the given fields replaced by the non-null parameter values.
@override @pragma('vm:prefer-inline') $Res call({Object? totalGovernmentalInputWeight = freezed,Object? totalFreeInputWeight = freezed,Object? totalGovernmentalOutputWeight = freezed,Object? totalFreeOutputWeight = freezed,Object? totalGovernmentalRemainWeight = freezed,Object? totalFreeRemainWeight = freezed,Object? totalStewardFreeSaleBarCarcassesWeight = freezed,Object? totalStewardInProvinceAllocationsWeight = freezed,Object? segmentationsWeight = freezed,Object? totalSellingInProvinceGovernmentalWeight = freezed,Object? totalSellingInProvinceFreeWeight = freezed,Object? totalCommitmentSellingInProvinceGovernmentalWeight = freezed,Object? totalCommitmentSellingInProvinceGovernmentalRemainWeight = freezed,Object? totalCommitmentSellingInProvinceFreeWeight = freezed,Object? totalCommitmentSellingInProvinceFreeRemainWeight = freezed,}) {
return _then(_StewardSalesInfoDashboard(
totalGovernmentalInputWeight: freezed == totalGovernmentalInputWeight ? _self.totalGovernmentalInputWeight : totalGovernmentalInputWeight // ignore: cast_nullable_to_non_nullable
as double?,totalFreeInputWeight: freezed == totalFreeInputWeight ? _self.totalFreeInputWeight : totalFreeInputWeight // ignore: cast_nullable_to_non_nullable
as double?,totalGovernmentalOutputWeight: freezed == totalGovernmentalOutputWeight ? _self.totalGovernmentalOutputWeight : totalGovernmentalOutputWeight // ignore: cast_nullable_to_non_nullable
as double?,totalFreeOutputWeight: freezed == totalFreeOutputWeight ? _self.totalFreeOutputWeight : totalFreeOutputWeight // ignore: cast_nullable_to_non_nullable
as double?,totalGovernmentalRemainWeight: freezed == totalGovernmentalRemainWeight ? _self.totalGovernmentalRemainWeight : totalGovernmentalRemainWeight // ignore: cast_nullable_to_non_nullable
as double?,totalFreeRemainWeight: freezed == totalFreeRemainWeight ? _self.totalFreeRemainWeight : totalFreeRemainWeight // ignore: cast_nullable_to_non_nullable
as double?,totalStewardFreeSaleBarCarcassesWeight: freezed == totalStewardFreeSaleBarCarcassesWeight ? _self.totalStewardFreeSaleBarCarcassesWeight : totalStewardFreeSaleBarCarcassesWeight // ignore: cast_nullable_to_non_nullable
as double?,totalStewardInProvinceAllocationsWeight: freezed == totalStewardInProvinceAllocationsWeight ? _self.totalStewardInProvinceAllocationsWeight : totalStewardInProvinceAllocationsWeight // ignore: cast_nullable_to_non_nullable
as double?,segmentationsWeight: freezed == segmentationsWeight ? _self.segmentationsWeight : segmentationsWeight // ignore: cast_nullable_to_non_nullable
as double?,totalSellingInProvinceGovernmentalWeight: freezed == totalSellingInProvinceGovernmentalWeight ? _self.totalSellingInProvinceGovernmentalWeight : totalSellingInProvinceGovernmentalWeight // ignore: cast_nullable_to_non_nullable
as double?,totalSellingInProvinceFreeWeight: freezed == totalSellingInProvinceFreeWeight ? _self.totalSellingInProvinceFreeWeight : totalSellingInProvinceFreeWeight // ignore: cast_nullable_to_non_nullable
as double?,totalCommitmentSellingInProvinceGovernmentalWeight: freezed == totalCommitmentSellingInProvinceGovernmentalWeight ? _self.totalCommitmentSellingInProvinceGovernmentalWeight : totalCommitmentSellingInProvinceGovernmentalWeight // ignore: cast_nullable_to_non_nullable
as double?,totalCommitmentSellingInProvinceGovernmentalRemainWeight: freezed == totalCommitmentSellingInProvinceGovernmentalRemainWeight ? _self.totalCommitmentSellingInProvinceGovernmentalRemainWeight : totalCommitmentSellingInProvinceGovernmentalRemainWeight // ignore: cast_nullable_to_non_nullable
as double?,totalCommitmentSellingInProvinceFreeWeight: freezed == totalCommitmentSellingInProvinceFreeWeight ? _self.totalCommitmentSellingInProvinceFreeWeight : totalCommitmentSellingInProvinceFreeWeight // ignore: cast_nullable_to_non_nullable
as double?,totalCommitmentSellingInProvinceFreeRemainWeight: freezed == totalCommitmentSellingInProvinceFreeRemainWeight ? _self.totalCommitmentSellingInProvinceFreeRemainWeight : totalCommitmentSellingInProvinceFreeRemainWeight // ignore: cast_nullable_to_non_nullable
as double?,
));
}
}
// dart format on

View File

@@ -0,0 +1,74 @@
// GENERATED CODE - DO NOT MODIFY BY HAND
part of 'steward_sales_info_dashboard.dart';
// **************************************************************************
// JsonSerializableGenerator
// **************************************************************************
_StewardSalesInfoDashboard _$StewardSalesInfoDashboardFromJson(
Map<String, dynamic> json,
) => _StewardSalesInfoDashboard(
totalGovernmentalInputWeight:
(json['total_governmental_input_weight'] as num?)?.toDouble(),
totalFreeInputWeight: (json['total_free_input_weight'] as num?)?.toDouble(),
totalGovernmentalOutputWeight:
(json['total_governmental_output_weight'] as num?)?.toDouble(),
totalFreeOutputWeight: (json['total_free_output_weight'] as num?)?.toDouble(),
totalGovernmentalRemainWeight:
(json['total_governmental_remain_weight'] as num?)?.toDouble(),
totalFreeRemainWeight: (json['total_free_remain_weight'] as num?)?.toDouble(),
totalStewardFreeSaleBarCarcassesWeight:
(json['total_steward_free_sale_bar_carcasses_weight'] as num?)
?.toDouble(),
totalStewardInProvinceAllocationsWeight:
(json['total_steward_in_province_allocations_weight'] as num?)
?.toDouble(),
segmentationsWeight: (json['segmentations_weight'] as num?)?.toDouble(),
totalSellingInProvinceGovernmentalWeight:
(json['total_selling_in_province_governmental_weight'] as num?)
?.toDouble(),
totalSellingInProvinceFreeWeight:
(json['total_selling_in_province_free_weight'] as num?)?.toDouble(),
totalCommitmentSellingInProvinceGovernmentalWeight:
(json['total_commitment_selling_in_province_governmental_weight'] as num?)
?.toDouble(),
totalCommitmentSellingInProvinceGovernmentalRemainWeight:
(json['total_commitment_selling_in_province_governmental_remain_weight']
as num?)
?.toDouble(),
totalCommitmentSellingInProvinceFreeWeight:
(json['total_commitment_selling_in_province_free_weight'] as num?)
?.toDouble(),
totalCommitmentSellingInProvinceFreeRemainWeight:
(json['total_commitment_selling_in_province_free_remain_weight'] as num?)
?.toDouble(),
);
Map<String, dynamic> _$StewardSalesInfoDashboardToJson(
_StewardSalesInfoDashboard instance,
) => <String, dynamic>{
'total_governmental_input_weight': instance.totalGovernmentalInputWeight,
'total_free_input_weight': instance.totalFreeInputWeight,
'total_governmental_output_weight': instance.totalGovernmentalOutputWeight,
'total_free_output_weight': instance.totalFreeOutputWeight,
'total_governmental_remain_weight': instance.totalGovernmentalRemainWeight,
'total_free_remain_weight': instance.totalFreeRemainWeight,
'total_steward_free_sale_bar_carcasses_weight':
instance.totalStewardFreeSaleBarCarcassesWeight,
'total_steward_in_province_allocations_weight':
instance.totalStewardInProvinceAllocationsWeight,
'segmentations_weight': instance.segmentationsWeight,
'total_selling_in_province_governmental_weight':
instance.totalSellingInProvinceGovernmentalWeight,
'total_selling_in_province_free_weight':
instance.totalSellingInProvinceFreeWeight,
'total_commitment_selling_in_province_governmental_weight':
instance.totalCommitmentSellingInProvinceGovernmentalWeight,
'total_commitment_selling_in_province_governmental_remain_weight':
instance.totalCommitmentSellingInProvinceGovernmentalRemainWeight,
'total_commitment_selling_in_province_free_weight':
instance.totalCommitmentSellingInProvinceFreeWeight,
'total_commitment_selling_in_province_free_remain_weight':
instance.totalCommitmentSellingInProvinceFreeRemainWeight,
};

View File

@@ -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_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'
hide ProductModel;
@@ -160,6 +161,12 @@ abstract class ChickenRepository {
Future<SegmentationModel?> deleteSegmentation({required String token, required String key});
Future<BroadcastPrice?> getBroadcastPrice({required String token});
Future<StewardSalesInfoDashboard?> getStewardSalesInfoDashboard({
required String token,
Map<String, dynamic>? queryParameters,
});
//endregion

View File

@@ -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_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'
hide ProductModel;
@@ -339,5 +340,16 @@ class ChickenRepositoryImp implements ChickenRepository {
@override
Future<void> initWidleyUsed() async {}
@override
Future<StewardSalesInfoDashboard?> getStewardSalesInfoDashboard({
required String token,
Map<String, dynamic>? queryParameters,
}) async {
return await remote.getStewardSalesInfoDashboard(
token: token,
queryParameters: queryParameters,
);
}
//endregion
}

View File

@@ -11,7 +11,7 @@ class BuyInProvinceLogic extends GetxController {
Rx<Jalali> fromDateFilter = Jalali.now().obs;
Rx<Jalali> toDateFilter = Jalali.now().obs;
StewardRootLogic get rootLogic => Get.find<StewardRootLogic>();
StewardRootLogic rootLogic = Get.find<StewardRootLogic>();
BuyLogic get buyLogic => Get.find<BuyLogic>();
RxInt selectedSegmentIndex = 0.obs;
@@ -84,6 +84,7 @@ class BuyInProvinceLogic extends GetxController {
Future<void> onRefresh() async {
final isWaiting = selectedSegmentIndex.value == 0;
await rootLogic.onRefresh();
await Future.wait([buyWaitingLogic.getWaitingArrivals(), buyAllLogic.getAllArrivals()]);
}
}

View File

@@ -32,7 +32,7 @@ class BuyOutOfProvinceLogic extends GetxController {
RxnString _base64Image = RxnString();
RxnString editImageUrl = RxnString();
StewardRootLogic get rootLogic => Get.find<StewardRootLogic>();
StewardRootLogic rootLogic = Get.find<StewardRootLogic>();
BuyLogic get buyLogic => Get.find<BuyLogic>();
@@ -51,6 +51,8 @@ class BuyOutOfProvinceLogic extends GetxController {
void onInit() {
super.onInit();
routesName = [...buyLogic.routesName, 'خارج استان'].toList();
fLog('BuyOutOfProvinceLogic ${rootLogic.stewardSalesInfoDashboard}');
}
@override
@@ -238,6 +240,7 @@ class BuyOutOfProvinceLogic extends GetxController {
Future<void> onRefresh() async {
currentPage.value = 1;
await rootLogic.onRefresh();
await getStewardPurchaseOutOfProvince();
}
}

View File

@@ -219,7 +219,9 @@ class BuyOutOfProvincePage extends GetView<BuyOutOfProvinceLogic> {
buildDeleteDialog(
onConfirm: () => controller.deleteStewardPurchaseOutOfProvince(item.key!),
onRefresh: () => controller.getStewardPurchaseOutOfProvince(),
);
).then((value) {
controller.onRefresh();
});
},
borderColor: AppColor.redNormal,
),

View File

@@ -1,5 +1,6 @@
import 'package:rasadyar_chicken/data/models/response/bar_information/bar_information.dart';
import 'package:rasadyar_chicken/data/models/response/kill_house_distribution_info/kill_house_distribution_info.dart';
import 'package:rasadyar_chicken/data/models/response/roles_products/roles_products.dart';
import 'package:rasadyar_chicken/presentation/pages/steward/root/logic.dart';
import 'package:rasadyar_core/core.dart';
@@ -9,16 +10,42 @@ class HomeLogic extends GetxController {
Rxn<KillHouseDistributionInfo> killHouseDistributionInfo = Rxn<KillHouseDistributionInfo>();
Rxn<BarInformation> barInformation = Rxn();
RxList<Map<String, String?>> inventoryItems = [
{'خریدهای دولتی داخل استان': null},
{'خریدهای آزاد داخل استان': null},
{'وزن خریدهای خارج استان': null},
{'کل ورودی به انبار': null},
{'کل فروش': null},
{'مانده انبار': null},
].obs;
RxList<Map<String, String>> broadcastItems = [
{'وزن دولتی': '2،225،256'},
{'وزن آزاد': '2،225،256'},
{'فروش دولتی': '2،225،256'},
{'فروش آزاد': '2،225،256'},
{'توزیع داخل استان': '2،225،256'},
{'توزیع خارج استان': '2،225،256'},
{'قطعه بندی': '2،225،256'},
].obs;
RxBool isExpanded = false.obs;
@override
void onReady() {
super.onReady();
refreshData();
}
Future<void> refreshData() async {
await Future.wait([getGeneralBarsInformation(), getTodayBars(), getDistributionInformation()]);
await Future.wait([
getGeneralBarsInformation(),
getTodayBars(),
getDistributionInformation(),
rootLogic.getRolesProducts(),
rootLogic.getInventory(),
]);
}
Future<void> getGeneralBarsInformation() async {

View File

@@ -17,14 +17,16 @@ class HomePage extends GetView<HomeLogic> {
scrollable: true,
isBase: true,
onRefresh: controller.refreshData,
child: Column(
children: [
SizedBox(height: 18.h),
mainInformation(),
SizedBox(height: 8.h),
WidelyUsedWidget(),
SizedBox(height: 20),
],
child: SingleChildScrollView(
child: Column(
children: [
SizedBox(height: 18.h),
mainInformation(),
SizedBox(height: 8.h),
WidelyUsedWidget(),
SizedBox(height: 20),
],
),
),
);
}
@@ -68,32 +70,13 @@ class HomePage extends GetView<HomeLogic> {
),
SizedBox(height: 8),
_todayShipmentWidget(),
//_todayShipmentWidget2(),
_todayShipmentWidget2(),
_inventoryWidget(),
Row(
children: [
Text(
'اطلاعات بارها',
textAlign: TextAlign.right,
style: AppFonts.yekan16,
),
],
),
_informationShipment(),
Row(
children: [
Text(
'اطلاعات توزیع',
textAlign: TextAlign.right,
style: AppFonts.yekan16,
),
],
),
distributionInformationWidget(),
_inventoryListWidget(),
SizedBox(height: 8),
broadCastList(),
SizedBox(height: 8),
commitmentsList(),
],
),
)
@@ -108,7 +91,7 @@ class HomePage extends GetView<HomeLogic> {
children: [Icon(CupertinoIcons.chevron_down, size: 18)],
),
_todayShipmentWidget(),
// _todayShipmentWidget2(),
_todayShipmentWidget2(),
_inventoryWidget(),
],
),
@@ -149,6 +132,93 @@ class HomePage extends GetView<HomeLogic> {
);
}
//todo
Widget broadCastList() {
return ObxValue((data) {
return Column(
children: [
Row(
children: [
SizedBox(width: 5.w),
Text('اطلاعات پخش', textAlign: TextAlign.right, style: AppFonts.yekan16),
],
),
SizedBox(height: 8.h),
Row(
spacing: 8,
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Expanded(
child: broadcastItem(
title: 'وزن دولتی',
titleBgColor: const Color(0xFFB8E7DC),
valueBgColor: const Color(0xFFE6FAF5),
value: data.value?.totalGovernmentalInputWeight.separatedByComma,
),
),
Expanded(
child: broadcastItem(
title: 'وزن آزاد',
value: data.value?.totalFreeInputWeight.separatedByComma,
titleBgColor: const Color(0xFFDDE2F0),
valueBgColor: const Color(0xFFEAEFFF),
),
),
Expanded(
child: broadcastItem(
title: 'فروش دولتی',
value: data.value?.totalGovernmentalOutputWeight.separatedByComma,
titleBgColor: const Color(0xFFEBC4CE),
valueBgColor: const Color(0xFFEDDCE0),
),
),
Expanded(
child: broadcastItem(
title: 'فروش آزاد',
value: data.value?.totalFreeOutputWeight.separatedByComma,
titleBgColor: const Color(0xFFC2D3F2),
valueBgColor: const Color(0xFFECF2FF),
),
),
],
),
SizedBox(height: 8.h),
Row(
spacing: 8,
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Expanded(
child: broadcastItem(
title: 'مانده دولتی',
value: data.value?.totalGovernmentalRemainWeight.separatedByComma,
titleBgColor: const Color(0xFFB8E7DC),
valueBgColor: const Color(0xFFE6FAF5),
),
),
Expanded(
child: broadcastItem(
title: 'مانده آزاد',
value: data.value?.totalFreeRemainWeight.separatedByComma,
titleBgColor: const Color(0xFFDDE2F0),
valueBgColor: const Color(0xFFEAEFFF),
),
),
Expanded(
child: broadcastItem(
title: 'فروش خارج استان',
value: data.value?.totalStewardFreeSaleBarCarcassesWeight.separatedByComma,
titleBgColor: const Color(0xFFEBC4CE),
valueBgColor: const Color(0xFFEDDCE0),
),
),
],
),
],
);
}, controller.rootLogic.stewardSalesInfoDashboard);
}
Widget distributionInformationWidget() {
return Padding(
padding: const EdgeInsets.fromLTRB(0, 8, 0, 13),
@@ -247,9 +317,9 @@ class HomePage extends GetView<HomeLogic> {
isLoading: data.value == null,
description: data.value?.totalRemainWeight.separatedByCommaFa ?? '0',
iconPath: Assets.vec.cubeSearchSvg.path,
iconColor: const Color(0xFF426060),
bgDescriptionColor: const Color(0xFFC7DFE0),
bgLabelColor: const Color(0xFFA5D1D2),
bgDescriptionColor: const Color(0xFFEAEFFF),
bgLabelColor: const Color(0xFFBDD4FF),
iconColor: AppColor.textColor,
),
),
Expanded(
@@ -279,16 +349,29 @@ class HomePage extends GetView<HomeLogic> {
child: ObxValue(
(data) => _informationLabelCard(
title: 'بارهای امروز',
titleColor: AppColor.blueNormal,
borderColor: Color(0xFF77A6FF),
titleColor: AppColor.textColor,
borderColor: Color(0xFFFFAE00),
isLoading: data.value == null,
description: data.value?.separatedByCommaFa ?? '0',
iconPath: Assets.vec.cubeScanWithLabelSvg.path,
icon: Container(
width: 24.w,
height: 24.h,
padding: EdgeInsets.all(2),
decoration: BoxDecoration(
color: const Color(0xFFFFAE00),
borderRadius: BorderRadius.circular(8),
),
child: Assets.vec.cubeScanSvg.svg(
width: 12.w,
height: 12.h,
colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn),
),
),
bgDescriptionColor: Colors.white,
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [AppColor.blueLight, Colors.white],
colors: [const Color(0xFFFFD883), const Color(0xFFFFFBF1)],
),
),
controller.totalWeightTodayBars,
@@ -298,18 +381,31 @@ class HomePage extends GetView<HomeLogic> {
Expanded(
child: ObxValue((data) {
return _informationLabelCard(
title: 'درانتظار تایید',
borderColor: AppColor.greenNormal,
title: 'درانتظار',
borderColor: const Color(0xFF9758FF),
isLoading: data.value == null,
description: data.value?.totalNotEnteredBars.separatedByCommaFa ?? '0',
unit:
'(${data.value?.totalNotEnteredKillHouseRequestsWeight.separatedByCommaFa})\nکیلوگرم',
iconPath: Assets.vec.cubeCardSvg.path,
icon: Container(
width: 24.w,
height: 24.h,
padding: EdgeInsets.all(2),
decoration: BoxDecoration(
color: const Color(0xFF9758FF),
borderRadius: BorderRadius.circular(8),
),
child: Assets.vec.cubeCardFreeSvg.svg(
width: 12.w,
height: 12.h,
colorFilter: const ColorFilter.mode(Colors.white, BlendMode.srcIn),
),
),
bgDescriptionColor: Colors.white,
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [const Color(0xFFD9F7F0), Colors.white],
colors: [const Color(0xFFD8C1FF), const Color(0xFFFBF9FF)],
),
);
}, controller.barInformation),
@@ -320,50 +416,103 @@ class HomePage extends GetView<HomeLogic> {
}
Widget _todayShipmentWidget2() {
return Padding(
padding: const EdgeInsets.fromLTRB(0, 10, 0, 13),
child: Row(
spacing: 8,
children: [
Expanded(
child: ObxValue(
(data) => _informationLabelCard(
return ObxValue((data) {
return Padding(
padding: const EdgeInsets.fromLTRB(0, 10, 0, 13),
child: Row(
spacing: 8,
children: [
Expanded(
child: _informationLabelCard(
title: 'مانده دولتی',
titleColor: AppColor.blueNormal,
borderColor: Color(0xFFFFAE00),
isLoading: data.value == null,
description: data.value?.separatedByCommaFa ?? '0',
description: data.value?.totalGovernmentalRemainWeight?.separatedByCommaFa ?? '0',
iconPath: Assets.vec.cubeCardGovermentSvg.path,
bgDescriptionColor: Colors.white,
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [Color(0xFFFFD47A), Colors.white],
),
iconColor: AppColor.textColor,
bgDescriptionColor: const Color(0xFFF5ECEE),
bgLabelColor: const Color(0xFFDEC1C7),
),
controller.totalWeightTodayBars,
),
),
Expanded(
child: ObxValue((data) {
return _informationLabelCard(
Expanded(
child: _informationLabelCard(
title: 'مانده آزاد',
borderColor: const Color(0xFF9758FF),
isLoading: data.value == null,
description: data.value?.totalNotEnteredBars.separatedByCommaFa ?? '0',
unit:
'(${data.value?.totalNotEnteredKillHouseRequestsWeight.separatedByCommaFa})\nکیلوگرم',
description: data.value?.totalFreeRemainWeight.separatedByCommaFa ?? '0',
unit: 'کیلوگرم',
iconPath: Assets.vec.cubeCardFreeSvg.path,
bgDescriptionColor: Colors.white,
gradient: LinearGradient(
begin: Alignment.topCenter,
end: Alignment.bottomCenter,
colors: [const Color(0xFFD3B9FF), Colors.white],
),
);
}, controller.barInformation),
iconColor: AppColor.textColor,
bgDescriptionColor: const Color(0xFFD0ECED),
bgLabelColor: const Color(0xFFA5D1D2),
),
),
],
),
);
}, controller.rootLogic.stewardSalesInfoDashboard);
}
Widget _inventoryListWidget() {
return ObxValue((data) {
var model = data[0];
return Container(
padding: EdgeInsets.fromLTRB(16.w, 0, 11.w, 0),
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
color: const Color(0xB2EDF1FF),
),
alignment: Alignment.center,
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
inventoryListItem(
title: 'خریدهای دولتی داخل استان',
value: model.receiveGovernmentalCarcassesWeight.separatedByComma,
),
Divider(),
inventoryListItem(
title: 'خریدهای آزاد داخل استان',
value: model.receiveFreeCarcassesWeight?.separatedByComma,
),
Divider(),
inventoryListItem(
title: 'وزن خریدهای خارج استان',
value: model.freeBuyingCarcassesWeight?.separatedByComma,
),
Divider(),
inventoryListItem(
title: 'کل ورودی به انبار',
value: model.totalCarcassesWeight?.separatedByComma,
),
Divider(),
inventoryListItem(title: 'کل فروش', value: model.realAllocatedWeight?.separatedByComma),
Divider(),
inventoryListItem(
title: 'مانده انبار',
value: model.totalRemainWeight?.separatedByComma,
),
],
),
);
}, controller.rootLogic.rolesProductsModel);
}
Widget inventoryListItem({required String title, required String? value}) {
return Container(
height: 45.h,
child: Row(
children: [
Text(
title,
style: AppFonts.yekan14.copyWith(color: const Color(0xFF353535), height: 1.2),
),
Spacer(),
value == null
? Center(child: CupertinoActivityIndicator())
: Text(value, style: AppFonts.yekan14.copyWith(color: const Color(0xFF353535))),
SizedBox(width: 20.w),
Text('کیلوگرم', style: AppFonts.yekan10.copyWith(color: const Color(0xFF353535))),
],
),
);
@@ -372,8 +521,9 @@ class HomePage extends GetView<HomeLogic> {
Container _informationLabelCard({
required String title,
required String description,
required String iconPath,
required Color bgDescriptionColor,
String? iconPath,
Widget? icon,
Color? borderColor,
String unit = 'کیلوگرم',
bool isLoading = false,
@@ -383,7 +533,7 @@ class HomePage extends GetView<HomeLogic> {
LinearGradient? gradient,
}) {
return Container(
height: 82,
height: 65.h,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(8),
border: borderColor != null ? Border.all(width: 1, color: borderColor) : null,
@@ -405,15 +555,16 @@ class HomePage extends GetView<HomeLogic> {
),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
spacing: 4,
spacing: 5,
children: [
SvgGenImage.vec(iconPath).svg(
width: 24,
height: 24,
colorFilter: iconColor != null
? ColorFilter.mode(iconColor, BlendMode.srcIn)
: null,
),
icon ??
SvgGenImage.vec(iconPath!).svg(
width: 24.w,
height: 24.h,
colorFilter: iconColor != null
? ColorFilter.mode(iconColor, BlendMode.srcIn)
: null,
),
Text(
title,
textAlign: TextAlign.right,
@@ -639,6 +790,64 @@ class HomePage extends GetView<HomeLogic> {
);
}
Widget broadcastItem({
int? width,
int? height,
String? title,
String? value,
String? unit,
Color? titleBgColor,
Color? valueBgColor,
Color? unitBgColor,
TextStyle? titleStyle,
TextStyle? valueStyle,
TextStyle? unitStyle,
}) {
return Container(
height: height?.h ?? 73.h,
clipBehavior: Clip.hardEdge,
decoration: BoxDecoration(color: valueBgColor, borderRadius: BorderRadius.circular(8)),
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Container(
padding: EdgeInsets.symmetric(vertical: 4.h),
decoration: BoxDecoration(color: titleBgColor),
child: Row(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
title ?? 'بدون تیتر',
textAlign: TextAlign.center,
style: titleStyle ?? AppFonts.yekan12.copyWith(color: const Color(0xFF3E3E3E)),
),
],
),
),
SizedBox(height: 4),
(value != null)
? Padding(
padding: const EdgeInsets.symmetric(horizontal: 11.0),
child: Text(
value,
textAlign: TextAlign.right,
style: valueStyle ?? AppFonts.yekan14.copyWith(color: AppColor.textColor),
),
)
: Center(child: CupertinoActivityIndicator()),
Text(
unit ?? 'کیلوگرم',
textAlign: TextAlign.center,
style: unitStyle ?? AppFonts.yekan10.copyWith(color: Color(0xFF717171)),
),
SizedBox(height: 4.h),
],
),
);
}
Widget cardWidget({
required String title,
required String iconPath,
@@ -674,4 +883,114 @@ class HomePage extends GetView<HomeLogic> {
),
);
}
Widget commitmentsList() {
return ObxValue((data) {
return Column(
spacing: 2.h,
children: [
Row(
children: [
SizedBox(width: 5.w),
Text('تعهدات', textAlign: TextAlign.right, style: AppFonts.yekan16),
],
),
commitmentsItemList(
title: 'تعهد دولتی توزیع داخل استان',
value: data.value?.totalCommitmentSellingInProvinceGovernmentalWeight.separatedByComma,
labelColor: const Color(0xFFB9E8DC),
bgColor: const Color(0xFFF3F9F8),
),
commitmentsItemList(
title: 'توزیع دولتی داخل استان',
value: data.value?.totalSellingInProvinceGovernmentalWeight.separatedByComma,
labelColor: const Color(0xFFC3D4F3),
bgColor: const Color(0xFFECF3FF),
),
commitmentsItemList(
title: 'باقیمانده تعهد دولتی توزیع داخل استان',
value: data
.value
?.totalCommitmentSellingInProvinceGovernmentalRemainWeight
.separatedByComma,
labelColor: const Color(0xFFEBC5CE),
bgColor: const Color(0xFFFFF1F4),
),
commitmentsItemList(
title: 'تعهد آزاد توزیع داخل استان',
value: data.value?.totalCommitmentSellingInProvinceFreeWeight.separatedByComma,
labelColor: const Color(0xFFC7DADA),
bgColor: const Color(0xFFE5F7F7),
),
commitmentsItemList(
title: 'توزیع آزاد داخل استان',
value: data.value?.totalSellingInProvinceFreeWeight.separatedByComma,
labelColor: const Color(0xFFE0D6ED),
bgColor: const Color(0xFFF5EDFF),
),
commitmentsItemList(
title: 'باقیمانده تعهد آزاد توزیع داخل استان',
value: data.value?.totalCommitmentSellingInProvinceFreeRemainWeight.separatedByComma,
labelColor: const Color(0xFFEBC5CE),
bgColor: const Color(0xFFFFF1F4),
),
],
);
}, controller.rootLogic.stewardSalesInfoDashboard);
}
Container commitmentsItemList({
required String title,
required String? value,
required Color labelColor,
required Color bgColor,
}) {
return Container(
width: Get.width,
child: Row(
children: [
Container(height: 48.h, width: 4.w, color: labelColor),
Expanded(
child: Container(
height: 48.h,
padding: EdgeInsets.symmetric(horizontal: 14.w),
decoration: BoxDecoration(
color: bgColor,
borderRadius: BorderRadius.only(
topLeft: Radius.circular(8),
bottomLeft: Radius.circular(8),
),
),
child: Row(
children: [
Text(
title,
textAlign: TextAlign.right,
style: AppFonts.yekan12.copyWith(color: AppColor.textColor),
),
Spacer(),
value == null
? Center(child: CupertinoActivityIndicator())
: Text(
value,
textAlign: TextAlign.right,
style: AppFonts.yekan16.copyWith(color: AppColor.textColor),
),
SizedBox(width: 8.w),
Text(
'کیلوگرم',
textAlign: TextAlign.right,
style: AppFonts.yekan10.copyWith(color: AppColor.textColor),
),
],
),
),
),
],
),
);
}
}

View File

@@ -1,6 +1,5 @@
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';
import 'package:rasadyar_chicken/data/data_source/local/chicken_local.dart';
import 'package:rasadyar_chicken/data/di/chicken_di.dart';
@@ -8,6 +7,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_sales_info_dashboard/steward_sales_info_dashboard.dart';
import 'package:rasadyar_chicken/data/repositories/chicken/chicken_repository.dart';
import 'package:rasadyar_chicken/presentation/pages/common/profile/view.dart';
import 'package:rasadyar_chicken/presentation/pages/steward/buy/view.dart';
@@ -29,6 +29,7 @@ class StewardRootLogic extends GetxController {
final defaultRoutes = <int, String>{0: ChickenRoutes.buySteward, 1: ChickenRoutes.saleSteward};
RxList<ProductModel> rolesProductsModel = RxList<ProductModel>();
Rxn<WidelyUsedLocalModel> widelyUsedList = Rxn<WidelyUsedLocalModel>();
Rxn<StewardSalesInfoDashboard> stewardSalesInfoDashboard = Rxn<StewardSalesInfoDashboard>();
late DioRemote dioRemote;
var tokenService = Get.find<TokenStorageService>();
@@ -68,6 +69,7 @@ class StewardRootLogic extends GetxController {
if (rolesProductsModel.isEmpty) {
getRolesProducts();
}
getStewardSaleDashboard();
if (widelyUsedList.value?.hasInit != true) {
//TODO
@@ -83,6 +85,15 @@ class StewardRootLogic extends GetxController {
super.onClose();
}
Future<void> onRefresh() async {
await Future.wait([
getInventory(),
getRolesProducts(),
getStewardSaleDashboard(),
getProvinces(),
]);
}
void toggleExpanded(int index) {
if (inventoryExpandedList.keys.contains(index)) {
inventoryExpandedList.remove(index);
@@ -158,6 +169,21 @@ class StewardRootLogic extends GetxController {
);
}
Future<void> getStewardSaleDashboard() async {
safeCall(
call: () async => await chickenRepository.getStewardSalesInfoDashboard(
token: tokenService.accessToken.value!,
queryParameters: buildRawQueryParams(role: 'Steward'),
),
onSuccess: (result) {
if (result != null) {
stewardSalesInfoDashboard.value = result;
}
},
onError: (error, stacktrace) {},
);
}
int getNestedKey() {
switch (currentPage.value) {
case 0:
@@ -184,10 +210,9 @@ class StewardRootLogic extends GetxController {
final currentRoute = currentNestedKey?.currentState;
fLog(Get.currentRoute);
/*
/*
fLog("onPopScopTaped ==> ${currentNestedKey?.currentState?.canPop()}");
if (currentNestedKey?.currentState?.canPop() == true) {
iLog(currentNestedKey?.currentState?.canPop());

View File

@@ -454,7 +454,7 @@ class SalesInProvinceLogic extends GetxController {
Future<void> onRefresh() async {
currentPage.value = 1;
hasMoreDataAllocationsMade.value = true;
await rootLogic.onRefresh();
await Future.wait([getAllocatedMade()]);
}
}

View File

@@ -354,10 +354,10 @@ class SalesInProvincePage extends GetView<SalesInProvinceLogic> {
buildDeleteDialog(
onConfirm: () async {
controller.isExpandedList.remove(index);
// controller.denyAllocation(item.key ?? '');
//await controller.deleteAllocation(item);
await controller.deleteAllocation(item);
},
onRefresh: () => controller.getAllocatedMade(),
onRefresh: controller.onRefresh,
);
},
borderColor: AppColor.redNormal,
@@ -401,7 +401,7 @@ class SalesInProvincePage extends GetView<SalesInProvinceLogic> {
SizedBox(
height: 40,
child: ObxValue((data) {
return RadioGroup(
return RadioGroup(
groupValue: controller.saleType.value,
onChanged: (value) {
controller.saleType.value = value!;

View File

@@ -13,7 +13,7 @@ import 'package:rasadyar_chicken/presentation/utils/utils.dart';
import 'package:rasadyar_core/core.dart';
class SalesOutOfProvinceLogic extends GetxController {
StewardRootLogic get rootLogic => Get.find<StewardRootLogic>();
StewardRootLogic rootLogic = Get.find<StewardRootLogic>();
SaleLogic get saleLogic => Get.find<SaleLogic>();
@@ -215,6 +215,7 @@ class SalesOutOfProvinceLogic extends GetxController {
Future<void> onRefresh() async {
currentPage.value = 1;
await rootLogic.onRefresh();
await getOutProvinceSales();

View File

@@ -318,7 +318,7 @@ class SalesOutOfProvincePage extends GetView<SalesOutOfProvinceLogic> {
controller.isExpandedList.remove(index);
controller.deleteStewardPurchaseOutOfProvince(item.key!);
},
onRefresh: () => controller.getOutProvinceSales(),
onRefresh: () => controller.onRefresh(),
);
},
borderColor: AppColor.redNormal,

View File

@@ -9,7 +9,7 @@ import 'package:rasadyar_chicken/presentation/utils/utils.dart';
import 'package:rasadyar_core/core.dart';
class SalesOutOfProvinceBuyersLogic extends GetxController {
StewardRootLogic get rootLogic => Get.find<StewardRootLogic>();
StewardRootLogic rootLogic = Get.find<StewardRootLogic>();
SaleLogic get saleLogic => Get.find<SaleLogic>();
@@ -212,6 +212,7 @@ class SalesOutOfProvinceBuyersLogic extends GetxController {
Future<void> onRefresh() async {
currentPage.value = 1;
await rootLogic.onRefresh();
await getOutProvinceCarcassesBuyer();
}
}

View File

@@ -12,7 +12,7 @@ import 'package:rasadyar_chicken/presentation/utils/utils.dart';
import 'package:rasadyar_core/core.dart';
class SalesOutOfProvinceSalesListLogic extends GetxController {
StewardRootLogic get rootLogic => Get.find<StewardRootLogic>();
StewardRootLogic rootLogic = Get.find<StewardRootLogic>();
SaleLogic get saleLogic => Get.find<SaleLogic>();

View File

@@ -196,7 +196,6 @@ class SegmentationLogic extends GetxController {
onSuccess: (result) {
res = true;
isSubmitButtonEnabled.value = true;
},
onError: (error, stacktrace) {
res = false;
@@ -221,9 +220,9 @@ class SegmentationLogic extends GetxController {
);
}
Future<void> onRefresh() async {
currentPage.value = 1;
await rootLogic.onRefresh();
await getAllSegmentation();
}
}

View File

@@ -242,7 +242,7 @@ class SegmentationPage extends GetView<SegmentationLogic> {
controller.isExpandedList.remove(index);
controller.deleteSegmentation(item.key!);
},
onRefresh: () => controller.getAllSegmentation(),
onRefresh: () => controller.onRefresh(),
);
},
borderColor: AppColor.redNormal,

View File

@@ -1,3 +1,4 @@
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:rasadyar_chicken/presentation/pages/steward/root/logic.dart';
import 'package:rasadyar_core/core.dart';
@@ -5,19 +6,74 @@ import 'package:rasadyar_core/core.dart';
Widget inventoryWidget(StewardRootLogic rootLogic) {
return Container(
width: Get.width,
height: 39,
margin: EdgeInsets.symmetric(horizontal: 8, vertical: 4),
decoration: BoxDecoration(
color: AppColor.greenLight,
borderRadius: BorderRadius.circular(8),
border: Border.all(color: AppColor.textColor, width: 0.5),
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
padding: EdgeInsets.symmetric(horizontal: 8.w),
child: Row(
spacing: 8.w,
children: [
ObxValue((data) {
// بررسی مقدار null بودن و نشان دادن ActivityIndicator
final value = data.value?.totalRemainWeight?.separatedByCommaFa;
return _itemList(
title: 'موجودی انبار',
value: value ?? '', // در صورت نال بودن، رشته خالی نمایش داده شود
);
}, rootLogic.inventoryModel),
ObxValue((data) {
final value = data.value?.totalGovernmentalRemainWeight?.separatedByCommaFa;
return _itemList(title: 'مانده دولتی', value: value ?? '');
}, rootLogic.stewardSalesInfoDashboard),
ObxValue((data) {
final value = data.value?.totalFreeRemainWeight?.separatedByCommaFa;
return _itemList(title: 'مانده آزاد', value: value ?? '');
}, rootLogic.stewardSalesInfoDashboard),
],
),
),
);
}
Widget _itemList({required String title, required String? value, String? unit}) {
return Container(
width: 125.w,
height: 50.h,
clipBehavior: Clip.antiAlias,
decoration: ShapeDecoration(
color: Colors.white.withValues(alpha: 0.40),
shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(8)),
),
child: Column(
children: [
SizedBox(height: 4),
Text(
title,
textAlign: TextAlign.center,
style: AppFonts.yekan12.copyWith(color: const Color(0xFF5B5B5B)),
),
SizedBox(height: 4),
value == null
? Center(child: CupertinoActivityIndicator())
: Padding(
padding: EdgeInsets.symmetric(horizontal: 4.w),
child: Row(
spacing: 8,
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
value!,
textAlign: TextAlign.right,
style: AppFonts.yekan16.copyWith(color: const Color(0xFF5B5B5B)),
),
Text(
unit ?? 'کیلوگرم',
textAlign: TextAlign.center,
style: AppFonts.yekan10.copyWith(color: const Color(0xFF5B5B5B)),
),
],
),
),
],
),
alignment: Alignment.center,
child: ObxValue((data) {
return Text(
' موجودی انبار: ${data.value?.totalRemainWeight?.toInt().separatedByCommaFa ?? '0'} کیلوگرم',
style: AppFonts.yekan16.copyWith(color: AppColor.mediumGreyDarkHover),
);
}, rootLogic.inventoryModel),
);
}

View File

@@ -1,7 +1,7 @@
name: rasadyar_app
description: "A new Flutter project."
publish_to: 'none'
version: 1.3.19+16
version: 1.3.20+17
environment:
sdk: ^3.9.2