Browse Source

update api get crop by code

smf_upgrate
Đại Võ 2 years ago
parent
commit
d10d2557db
6 changed files with 76 additions and 198 deletions
  1. +18
    -46
      lib/data/api/rest_client.dart
  2. +2
    -2
      lib/data/api/rest_client.g.dart
  3. +38
    -94
      lib/data/repository/repository.dart
  4. +1
    -1
      lib/main.dart
  5. +16
    -54
      lib/presentation/screens/plot_detail/bloc/plot_detail_bloc.dart
  6. +1
    -1
      lib/presentation/screens/tabbar/tabbar.dart

+ 18
- 46
lib/data/api/rest_client.dart View File

Future<Account> updateProfile(@Body() Account account); Future<Account> updateProfile(@Body() Account account);


@GET("/api/list-supplies-in-warehouses/{type}?q={query}") @GET("/api/list-supplies-in-warehouses/{type}?q={query}")
Future<List<Supply>> getSupplies(@Path() String type,
{@DioOptions() Options options, @Path() String query = ""});
Future<List<Supply>> getSupplies(@Path() String type, {@DioOptions() Options options, @Path() String query = ""});


//Common //Common
@PUT("/api/update-fcmToken") @PUT("/api/update-fcmToken")
Future<void> deleteFcmToken(@Body() String token); Future<void> deleteFcmToken(@Body() String token);


//Plot //Plot
@GET(
"/api/_search/tb-crops?page={page}&size={size}&sort=id,asc&query={query}")
Future<List<TbCropDTO>> getPlots(
{@Path() int page = 0, @Path() int size = 20, @Path() String query = ""});
@GET("/api/_search/tb-crops?page={page}&size={size}&sort=id,asc&query={query}")
Future<List<TbCropDTO>> getPlots({@Path() int page = 0, @Path() int size = 20, @Path() String query = ""});


//TODO: check clean code //TODO: check clean code
@GET("/api/listActivityTypesOther") @GET("/api/listActivityTypesOther")
Future<void> updateNoti(@Body() UpdateNoti updateNoti); Future<void> updateNoti(@Body() UpdateNoti updateNoti);


@GET("/api/tb-countries?page={page}&size={size}&query={query}&&sort=name,ASC") @GET("/api/tb-countries?page={page}&size={size}&query={query}&&sort=name,ASC")
Future<List<LocationUnit>> getCountries(
{@Path() int page = 0,
@Path() int size = 400,
@Path() String query = '',
@DioOptions() Options options});

@GET(
"/api/tb-cities-by-country/{countryId}?page={page}&size={size}&query={query}&&sort=name,ASC")
Future<List<LocationUnit>> getCountries({@Path() int page = 0, @Path() int size = 400, @Path() String query = '', @DioOptions() Options options});

@GET("/api/tb-cities-by-country/{countryId}?page={page}&size={size}&query={query}&&sort=name,ASC")
Future<List<LocationUnit>> getProvinces(@Path() int countryId, Future<List<LocationUnit>> getProvinces(@Path() int countryId,
{@Path() int page = 0,
@Path() int size = 20,
@Path() String query = '',
@DioOptions() Options options});
{@Path() int page = 0, @Path() int size = 20, @Path() String query = '', @DioOptions() Options options});


@GET(
"/api/tb-districts-by-city/{provinceId}?page={page}&size={size}&query={query}&&sort=name,ASC")
@GET("/api/tb-districts-by-city/{provinceId}?page={page}&size={size}&query={query}&&sort=name,ASC")
Future<List<LocationUnit>> getDistricts(@Path() int provinceId, Future<List<LocationUnit>> getDistricts(@Path() int provinceId,
{@Path() int page = 0,
@Path() int size = 20,
@Path() String query = '',
@DioOptions() Options options});
{@Path() int page = 0, @Path() int size = 20, @Path() String query = '', @DioOptions() Options options});


@GET(
"/api/tb-wards-by-district/{districtId}?page={page}&size={size}&query={query}&&sort=name,ASC")
@GET("/api/tb-wards-by-district/{districtId}?page={page}&size={size}&query={query}&&sort=name,ASC")
Future<List<LocationUnit>> getWards(@Path() int districtId, Future<List<LocationUnit>> getWards(@Path() int districtId,
{@Path() int page = 0,
@Path() int size = 20,
@Path() String query = '',
@DioOptions() Options options});
{@Path() int page = 0, @Path() int size = 20, @Path() String query = '', @DioOptions() Options options});


//Crop //Crop
@GET(
"/api/tb-crops-detail-for-app/{cropId}?page={page}&size={size}&sort=executeDate,DESC")
Future<CropPlot> getCropDetail(@Path() int cropId,
{@Path() int page = 0, @Path() int size = 20});
@GET("/api/tb-crops-detail-for-app/{cropId}?page={page}&size={size}&sort=executeDate,DESC")
Future<CropPlot> getCropDetail(@Path() int cropId, {@Path() int page = 0, @Path() int size = 20});


@GET(
"/api/tb-crops-scan-qrCode/{cropCode}?page={page}&size={size}&sort=executeDate,DESC")
Future<CropPlot> getCropDetailByCode(@Path() String cropCode,
{@Path() int page = 0, @Path() int size = 20});
@GET("/api/tb-crops-scan-qrCode/{cropCode}")
Future<CropPlot> getCropDetailByCode(@Path() String cropCode);


@PUT("/api/tb-crops") @PUT("/api/tb-crops")
Future<void> updateCrop(@Body() TbCropDTO crop); Future<void> updateCrop(@Body() TbCropDTO crop);
Future<List<Device>> getDevices({@Path() String query}); Future<List<Device>> getDevices({@Path() String query});
//Get environment parameter //Get environment parameter
@GET("/api/list-environment-updates-display/{cropId}?page={page}&size={size}") @GET("/api/list-environment-updates-display/{cropId}?page={page}&size={size}")
Future<List<EnvironmentParameter>> getEnvironmentParameters(
@Path() int cropId,
{@Path() int page = 0,
@Path() int size = 20});
Future<List<EnvironmentParameter>> getEnvironmentParameters(@Path() int cropId, {@Path() int page = 0, @Path() int size = 20});
//NEW Activity implement //NEW Activity implement
@GET('/api/display-object-param-dynamic-form/{idAction}') @GET('/api/display-object-param-dynamic-form/{idAction}')
Future<ActionUIForm> getActionUIForm(
@Path() idAction, @DioOptions() Options options);
Future<ActionUIForm> getActionUIForm(@Path() idAction, @DioOptions() Options options);


@GET('/api/get-detail-common-activity/{actionType}/{activityId}') @GET('/api/get-detail-common-activity/{actionType}/{activityId}')
Future<RequestActivity> getDetailActivityCommon(
{@required @Path() String actionType, @required @Path() int activityId});
Future<RequestActivity> getDetailActivityCommon({@required @Path() String actionType, @required @Path() int activityId});
} }

+ 2
- 2
lib/data/api/rest_client.g.dart View File

} }


@override @override
Future<CropPlot> getCropDetailByCode(cropCode, {page = 0, size = 20}) async {
Future<CropPlot> getCropDetailByCode(cropCode) async {
ArgumentError.checkNotNull(cropCode, 'cropCode'); ArgumentError.checkNotNull(cropCode, 'cropCode');
const _extra = <String, dynamic>{}; const _extra = <String, dynamic>{};
final queryParameters = <String, dynamic>{}; final queryParameters = <String, dynamic>{};
queryParameters.removeWhere((k, v) => v == null); queryParameters.removeWhere((k, v) => v == null);
final _data = <String, dynamic>{}; final _data = <String, dynamic>{};
final _result = await _dio.request<Map<String, dynamic>>('/api/tb-crops-scan-qrCode/$cropCode?page=$page&size=$size&sort=executeDate,DESC',
final _result = await _dio.request<Map<String, dynamic>>('/api/tb-crops-scan-qrCode/$cropCode',
queryParameters: queryParameters, queryParameters: queryParameters,
options: RequestOptions(method: 'GET', headers: <String, dynamic>{}, extra: _extra, baseUrl: baseUrl), options: RequestOptions(method: 'GET', headers: <String, dynamic>{}, extra: _extra, baseUrl: baseUrl),
data: _data); data: _data);

+ 38
- 94
lib/data/repository/repository.dart View File



Future<List<ActionType>> getActionTypes() { Future<List<ActionType>> getActionTypes() {
final client = RestClient(dio); final client = RestClient(dio);
var op = buildConfigurableCacheOptions(
forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache));
var op = buildConfigurableCacheOptions(forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache));
return client.getActionTypes(options: op); return client.getActionTypes(options: op);
} }


Future<List<Harvest>> getHarvests() { Future<List<Harvest>> getHarvests() {
final client = RestClient(dio); final client = RestClient(dio);
var op = buildConfigurableCacheOptions(
forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache));
var op = buildConfigurableCacheOptions(forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache));
return client.getHarvests(options: op); return client.getHarvests(options: op);
} }


Future<List<WaterType>> getWaterTypes() { Future<List<WaterType>> getWaterTypes() {
final client = RestClient(dio); final client = RestClient(dio);
var op = buildConfigurableCacheOptions(
forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache));
var op = buildConfigurableCacheOptions(forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache));
return client.getWaterTypes(options: op); return client.getWaterTypes(options: op);
} }


return client.getCropDetail(cropId, page: page, size: size); return client.getCropDetail(cropId, page: page, size: size);
} }


Future<CropPlot> getPlotDetailByCode(String cropCode, {int page, int size}) {
Future<CropPlot> getPlotDetailByCode(String cropCode) {
final client = RestClient(dio); final client = RestClient(dio);
return client.getCropDetailByCode(cropCode, page: page, size: size);
return client.getCropDetailByCode(cropCode);
} }


Future<List<TbCropDTO>> getPlots({int page, int size, String searchString}) { Future<List<TbCropDTO>> getPlots({int page, int size, String searchString}) {
return client.login(UserRequest(username: username, password: password)); return client.login(UserRequest(username: username, password: password));
} }


Future<PagedResult<T>> getInfinityList<T>(String url,
{int page = 0, int size = 20}) async {
Future<PagedResult<T>> getInfinityList<T>(String url, {int page = 0, int size = 20}) async {
var initUrl = "/api/activities/latest-env-by-activity-type/1/2"; var initUrl = "/api/activities/latest-env-by-activity-type/1/2";
var url =
ConstCommon.baseUrl + initUrl + "?page=$page&paged=true&size=$size";
var url = ConstCommon.baseUrl + initUrl + "?page=$page&paged=true&size=$size";
var response = await dio.get(url); var response = await dio.get(url);


final value = PagedResult<T>.fromJson(response.data, getInstanceClass()); final value = PagedResult<T>.fromJson(response.data, getInstanceClass());


Future<List<Supply>> getSupplies(String type, {String query = ""}) async { Future<List<Supply>> getSupplies(String type, {String query = ""}) async {
final client = RestClient(dio); final client = RestClient(dio);
var op = buildConfigurableCacheOptions(
forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache));
var op = buildConfigurableCacheOptions(forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache));
return client.getSupplies(type, query: query, options: op); return client.getSupplies(type, query: query, options: op);
} }


Future<List<Device>> getDeviceForActivity() async { Future<List<Device>> getDeviceForActivity() async {
final client = RestClient(dio); final client = RestClient(dio);
var op = buildConfigurableCacheOptions(
forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache));
var op = buildConfigurableCacheOptions(forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache));
return client.getDeviceForActivity(options: op); return client.getDeviceForActivity(options: op);
} }


return client.updateNoti(updateNoti); return client.updateNoti(updateNoti);
} }


Future<NotificationObjectDTO> getNotifications(
{int page = 0, int size = 20}) async {
var url = ConstCommon.baseUrl +
"/api/notifications-current-user?page=$page&size=$size&sort=sendDate,DESC";
Future<NotificationObjectDTO> getNotifications({int page = 0, int size = 20}) async {
var url = ConstCommon.baseUrl + "/api/notifications-current-user?page=$page&size=$size&sort=sendDate,DESC";
var response = await dio.get(url); var response = await dio.get(url);


final value = NotificationObjectDTO.fromJson(response.data); final value = NotificationObjectDTO.fromJson(response.data);
return value; return value;
} }


Future<List<LocationUnit>> getLocationUnits(
{@required LocationType locationType,
int filterId,
int page = 0,
int size = 500,
String query = ''}) {
Future<List<LocationUnit>> getLocationUnits({@required LocationType locationType, int filterId, int page = 0, int size = 500, String query = ''}) {
final client = RestClient(dio); final client = RestClient(dio);
var op = buildConfigurableCacheOptions(
forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache));
var op = buildConfigurableCacheOptions(forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache));
var response; var response;
switch (locationType) { switch (locationType) {
case LocationType.province: case LocationType.province:
response = client.getProvinces(filterId,
options: op, page: page, size: size, query: query);
response = client.getProvinces(filterId, options: op, page: page, size: size, query: query);
break; break;
case LocationType.district: case LocationType.district:
response = client.getDistricts(filterId,
options: op, page: page, size: size, query: query);
response = client.getDistricts(filterId, options: op, page: page, size: size, query: query);
break; break;
case LocationType.ward: case LocationType.ward:
response = client.getWards(filterId,
options: op, page: page, size: size, query: query);
response = client.getWards(filterId, options: op, page: page, size: size, query: query);
break; break;
default: default:
response = client.getCountries(query: query); response = client.getCountries(query: query);
} }


//Action //Action
Future<void> createAction(
Function(dynamic) onSuccess, Function(dynamic) onError,
{String apiAddAction,
String paramActivity,
String activityAction,
List<String> filePaths}) async {
Future<void> createAction(Function(dynamic) onSuccess, Function(dynamic) onError,
{String apiAddAction, String paramActivity, String activityAction, List<String> filePaths}) async {
var formData = FormData(); var formData = FormData();
filePaths.forEach((f) { filePaths.forEach((f) {
formData.files.add(MapEntry("images", MultipartFile.fromFileSync(f))); formData.files.add(MapEntry("images", MultipartFile.fromFileSync(f)));
}); });
formData.fields.add(MapEntry(paramActivity, activityAction)); formData.fields.add(MapEntry(paramActivity, activityAction));
try { try {
await dio
.post("${ConstCommon.baseUrl}/$apiAddAction", data: formData)
.then((value) {
await dio.post("${ConstCommon.baseUrl}/$apiAddAction", data: formData).then((value) {
onSuccess(value.data); onSuccess(value.data);
}); });
} on DioError catch (e) { } on DioError catch (e) {
} }
} }


Future<void> updateAction(
Function(dynamic) onSuccess, Function(dynamic) onError,
{String apiUpdateAction,
String paramActivity,
String activityAction,
List<String> filePaths}) async {
Future<void> updateAction(Function(dynamic) onSuccess, Function(dynamic) onError,
{String apiUpdateAction, String paramActivity, String activityAction, List<String> filePaths}) async {
var formData = FormData(); var formData = FormData();
filePaths.forEach((f) { filePaths.forEach((f) {
formData.files.add(MapEntry("images", MultipartFile.fromFileSync(f))); formData.files.add(MapEntry("images", MultipartFile.fromFileSync(f)));
}); });
formData.fields.add(MapEntry(paramActivity, activityAction)); formData.fields.add(MapEntry(paramActivity, activityAction));
try { try {
await dio
.post("${ConstCommon.baseUrl}/$apiUpdateAction", data: formData)
.then((value) {
await dio.post("${ConstCommon.baseUrl}/$apiUpdateAction", data: formData).then((value) {
onSuccess(value.data); onSuccess(value.data);
}); });
} on DioError catch (e) { } on DioError catch (e) {
} }


//Environment Parameter //Environment Parameter
Future<List<EnvironmentParameter>> getEnvironmentParameters(
{@required int cropId, int page, int size}) {
Future<List<EnvironmentParameter>> getEnvironmentParameters({@required int cropId, int page, int size}) {
final client = RestClient(dio); final client = RestClient(dio);
return client.getEnvironmentParameters(cropId, page: page, size: size); return client.getEnvironmentParameters(cropId, page: page, size: size);
} }


//NEW IMPLEMENT //NEW IMPLEMENT
Future<void> allActionTypes(int cropTypeId,
Function(List<ActionType>) onSuccess, Function(dynamic) onError) async {
Future<void> allActionTypes(int cropTypeId, Function(List<ActionType>) onSuccess, Function(dynamic) onError) async {
try { try {
var url =
'${ConstCommon.baseUrl}/api/listActivityTypesCulture/$cropTypeId';
var url = '${ConstCommon.baseUrl}/api/listActivityTypesCulture/$cropTypeId';


final Response<List<dynamic>> _result = await dio.get(url); final Response<List<dynamic>> _result = await dio.get(url);
var value = _result.data
.map((dynamic i) => ActionType.fromJson(i as Map<String, dynamic>))
.toList();
var value = _result.data.map((dynamic i) => ActionType.fromJson(i as Map<String, dynamic>)).toList();
onSuccess(value); onSuccess(value);
} on DioError catch (e) { } on DioError catch (e) {
onError(e); onError(e);


Future<ActionUIForm> getActionUIForm({@required int idAction}) { Future<ActionUIForm> getActionUIForm({@required int idAction}) {
final client = RestClient(dio); final client = RestClient(dio);
var op = buildConfigurableCacheOptions(
forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache));
var op = buildConfigurableCacheOptions(forceRefresh: true, maxAge: Duration(days: ConstCommon.kMaxAgeCache));
return client.getActionUIForm(idAction, op); return client.getActionUIForm(idAction, op);
} }


Future<List<CommonData>> getCommonData(
{String tableSupply, String condition}) async {
var url =
'${ConstCommon.baseUrl}/api/get-data-from-table-common?tableName=$tableSupply&condition=$condition';
Future<List<CommonData>> getCommonData({String tableSupply, String condition}) async {
var url = '${ConstCommon.baseUrl}/api/get-data-from-table-common?tableName=$tableSupply&condition=$condition';


final Response<List<dynamic>> _result = await dio.get(url); final Response<List<dynamic>> _result = await dio.get(url);
var value = _result.data
.map((dynamic i) => CommonData.fromJson(i as Map<String, dynamic>))
.toList();
var value = _result.data.map((dynamic i) => CommonData.fromJson(i as Map<String, dynamic>)).toList();
return value; return value;
} }


Future<void> createActionCommon(
Function(dynamic) onSuccess, Function(dynamic) onError,
{@required String activityType,
@required String activityData,
List<String> filePaths}) async {
Future<void> createActionCommon(Function(dynamic) onSuccess, Function(dynamic) onError,
{@required String activityType, @required String activityData, List<String> filePaths}) async {
var formData = FormData(); var formData = FormData();
filePaths.forEach((f) { filePaths.forEach((f) {
formData.files.add(MapEntry('images', MultipartFile.fromFileSync(f))); formData.files.add(MapEntry('images', MultipartFile.fromFileSync(f)));
}); });
formData.fields.add(MapEntry('tbCommonActivityDTO', activityData)); formData.fields.add(MapEntry('tbCommonActivityDTO', activityData));
try { try {
await dio
.post(
"${ConstCommon.baseUrl}/api/create-common-activity/$activityType",
data: formData)
.then((value) {
await dio.post("${ConstCommon.baseUrl}/api/create-common-activity/$activityType", data: formData).then((value) {
onSuccess(value.data); onSuccess(value.data);
}); });
} on DioError catch (e) { } on DioError catch (e) {
} }
} }


Future<void> updateActionCommon(
Function(dynamic) onSuccess, Function(dynamic) onError,
{@required String activityType,
@required String activityData,
List<String> filePaths}) async {
Future<void> updateActionCommon(Function(dynamic) onSuccess, Function(dynamic) onError,
{@required String activityType, @required String activityData, List<String> filePaths}) async {
var formData = FormData(); var formData = FormData();
filePaths.forEach((f) { filePaths.forEach((f) {
formData.files.add(MapEntry('images', MultipartFile.fromFileSync(f))); formData.files.add(MapEntry('images', MultipartFile.fromFileSync(f)));
}); });
formData.fields.add(MapEntry('tbCommonActivityDTO', activityData)); formData.fields.add(MapEntry('tbCommonActivityDTO', activityData));
try { try {
await dio
.post(
"${ConstCommon.baseUrl}/api/update-common-activity/$activityType",
data: formData)
.then((value) {
await dio.post("${ConstCommon.baseUrl}/api/update-common-activity/$activityType", data: formData).then((value) {
onSuccess(value.data); onSuccess(value.data);
}); });
} on DioError catch (e) { } on DioError catch (e) {
} }
} }


Future<RequestActivity> detailCommonAction(
{@required int activityId, @required String activityType}) async {
Future<RequestActivity> detailCommonAction({@required int activityId, @required String activityType}) async {
final client = RestClient(dio); final client = RestClient(dio);
return client.getDetailActivityCommon(
actionType: activityType, activityId: activityId);
return client.getDetailActivityCommon(actionType: activityType, activityId: activityId);
} }
} }

+ 1
- 1
lib/main.dart View File

var repository = Repository(); var repository = Repository();
Get.defaultDialog(title: "Kiểm tra thông tin lô ....", middleText: "", content: CircularProgressIndicator()); Get.defaultDialog(title: "Kiểm tra thông tin lô ....", middleText: "", content: CircularProgressIndicator());
try { try {
await repository.getPlotDetailByCode(cropCode, page: 1, size: 1).then((value) {
await repository.getPlotDetailByCode(cropCode).then((value) {
print("ok"); print("ok");
if (Get.isDialogOpen) Get.back(); if (Get.isDialogOpen) Get.back();
Get.to(PlotDetailScreen(cropId: value.tbCropDTO.id, cropType: value.tbCropDTO.tbCropTypeId, initialIndex: 0)); Get.to(PlotDetailScreen(cropId: value.tbCropDTO.id, cropType: value.tbCropDTO.tbCropTypeId, initialIndex: 0));

+ 16
- 54
lib/presentation/screens/plot_detail/bloc/plot_detail_bloc.dart View File

Stream<PlotDetailState> mapEventToState( Stream<PlotDetailState> mapEventToState(
PlotDetailEvent event, PlotDetailEvent event,
) async* { ) async* {
if (event is DataFetched &&
!(state is PlotDetailSuccess &&
(state as PlotDetailSuccess).hasReachedMax)) {
if (event is DataFetched && !(state is PlotDetailSuccess && (state as PlotDetailSuccess).hasReachedMax)) {
try { try {
if (state is PlotDetailInitial) { if (state is PlotDetailInitial) {
yield PlotDetailLoading(); yield PlotDetailLoading();
var response; var response;
if (event.cropId != null) { if (event.cropId != null) {
response = await repository.getPlotDetail(event.cropId,
page: 0, size: pageSize);
yield PlotDetailSuccess(
items: response.activities,
page: 0,
hasReachedMax:
response.activities.length < pageSize ? true : false);
response = await repository.getPlotDetail(event.cropId, page: 0, size: pageSize);
yield PlotDetailSuccess(items: response.activities, page: 0, hasReachedMax: response.activities.length < pageSize ? true : false);
} else { } else {
CropPlot response = await repository
.getPlotDetailByCode(event.cropCode, page: 0, size: pageSize);
CropPlot response = await repository.getPlotDetailByCode(event.cropCode);


yield PlotDetailSuccess(
ownerItem: response,
items: response.activities,
page: 0,
hasReachedMax: true);
yield PlotDetailSuccess(ownerItem: response, items: response.activities, page: 0, hasReachedMax: true);
} }
} }
if (state is PlotDetailSuccess) { if (state is PlotDetailSuccess) {
int page = currentState.page + 1; int page = currentState.page + 1;
var response; var response;
if (event.cropId != null) { if (event.cropId != null) {
response = await repository.getPlotDetail(event.cropId,
page: page, size: pageSize);
response = await repository.getPlotDetail(event.cropId, page: page, size: pageSize);
yield response.activities.isEmpty yield response.activities.isEmpty
? currentState.copyWith(hasReachedMax: true) ? currentState.copyWith(hasReachedMax: true)
: PlotDetailSuccess(
items: currentState.items + response.activities,
page: currentState.page + 1,
hasReachedMax: false);
: PlotDetailSuccess(items: currentState.items + response.activities, page: currentState.page + 1, hasReachedMax: false);
} else { } else {
CropPlot response = await repository.getPlotDetailByCode(
event.cropCode,
page: page,
size: pageSize);
yield PlotDetailSuccess(
ownerItem: response,
items: response.activities,
page: 0,
hasReachedMax: true);
CropPlot response = await repository.getPlotDetailByCode(event.cropCode);
yield PlotDetailSuccess(ownerItem: response, items: response.activities, page: 0, hasReachedMax: true);
} }
} }
} catch (e) { } catch (e) {
yield PlotDetailLoading(); yield PlotDetailLoading();
var response; var response;
if (event.cropId != null) { if (event.cropId != null) {
response = await repository.getPlotDetail(event.cropId,
page: 0, size: pageSize);
response = await repository.getPlotDetail(event.cropId, page: 0, size: pageSize);
} else { } else {
response = await repository.getPlotDetailByCode(event.cropCode,
page: 0, size: pageSize);
response = await repository.getPlotDetailByCode(event.cropCode);
} }
CropPlot cropPlot = response as CropPlot; CropPlot cropPlot = response as CropPlot;
yield PlotDetailSuccess(
ownerItem: cropPlot,
page: 0,
hasReachedMax:
response.activities.length < pageSize ? true : false);
yield PlotDetailSuccess(ownerItem: cropPlot, page: 0, hasReachedMax: response.activities.length < pageSize ? true : false);
} catch (e) { } catch (e) {
yield PlotDetailFailure(errorString: AppException.handleError(e)); yield PlotDetailFailure(errorString: AppException.handleError(e));
} }
yield PlotDetailLoading(); yield PlotDetailLoading();
var response; var response;
if (event.cropId != null) { if (event.cropId != null) {
response = await repository.getPlotDetail(event.cropId,
page: 0, size: pageSize);
response = await repository.getPlotDetail(event.cropId, page: 0, size: pageSize);
} else { } else {
response = await repository.getPlotDetailByCode(event.cropCode,
page: 0, size: pageSize);
response = await repository.getPlotDetailByCode(event.cropCode);
} }


yield PlotDetailSuccess(
items: response.activities,
page: 0,
hasReachedMax:
response.activities.length < pageSize ? true : false);
yield PlotDetailSuccess(items: response.activities, page: 0, hasReachedMax: response.activities.length < pageSize ? true : false);
} catch (e) { } catch (e) {
yield PlotDetailFailure(errorString: AppException.handleError(e)); yield PlotDetailFailure(errorString: AppException.handleError(e));
} }
} else if (event is OnUpdate) { } else if (event is OnUpdate) {
yield PlotDetailLoading(); yield PlotDetailLoading();
try { try {
yield PlotDetailSuccess(
items: event.currentItems,
page: event.currentPage,
hasReachedMax: event.hasReachedMax);
yield PlotDetailSuccess(items: event.currentItems, page: event.currentPage, hasReachedMax: event.hasReachedMax);
} catch (e) { } catch (e) {
yield PlotDetailFailure(errorString: AppException.handleError(e)); yield PlotDetailFailure(errorString: AppException.handleError(e));
} }

+ 1
- 1
lib/presentation/screens/tabbar/tabbar.dart View File

var repository = Repository(); var repository = Repository();
Get.defaultDialog(title: "Kiểm tra thông tin lô ....", middleText: "", content: CircularProgressIndicator()); Get.defaultDialog(title: "Kiểm tra thông tin lô ....", middleText: "", content: CircularProgressIndicator());
try { try {
await repository.getPlotDetailByCode(cropCode, page: 1, size: 1).then((value) {
await repository.getPlotDetailByCode(cropCode).then((value) {
print("ok"); print("ok");
if (Get.isDialogOpen) Get.back(); if (Get.isDialogOpen) Get.back();
Get.to(PlotDetailScreen(cropId: value.tbCropDTO.id, cropType: value.tbCropDTO.tbCropTypeId, initialIndex: 0)); Get.to(PlotDetailScreen(cropId: value.tbCropDTO.id, cropType: value.tbCropDTO.tbCropTypeId, initialIndex: 0));

Loading…
Cancel
Save