156 lines
4.9 KiB
Dart
156 lines
4.9 KiB
Dart
import 'package:intl/intl.dart';
|
|
import 'package:satu/core/base/base_service.dart';
|
|
import 'package:satu/core/models/but_item/buy_item_response.dart';
|
|
import 'package:satu/core/models/dictionary/contragent/contragent_response_entity.dart';
|
|
import 'package:satu/core/services/api_service.dart';
|
|
import 'package:satu/core/utils/locator.dart';
|
|
|
|
import '../models/buy_invoice/buy_invoice_response.dart';
|
|
import '../models/response/response_entity.dart';
|
|
|
|
class BuyService extends BaseService {
|
|
final ApiService _api = locator<ApiService>();
|
|
Future<List<BuyInvoiceResponse>> getList(
|
|
{required int page, required int perpage, dynamic filter}) async {
|
|
List<BuyInvoiceResponse> list = [];
|
|
try {
|
|
final Map<String, dynamic> requestBody = <String, dynamic>{
|
|
'page': page,
|
|
'perpage': perpage,
|
|
'order' : {
|
|
'col': 'doc_number',
|
|
'desc': true
|
|
}
|
|
};
|
|
|
|
ResponseEntity categories = await _api.postRequest('/general_purchases_get',
|
|
requestBody: requestBody);
|
|
if (categories.original.data != null &&
|
|
categories.original.data!.isNotEmpty) {
|
|
for (final dynamic map in categories.original.data!) {
|
|
final BuyInvoiceResponse item =
|
|
BuyInvoiceResponse.fromJson(map);
|
|
list.add(item);
|
|
}
|
|
}
|
|
} catch (e, stack) {
|
|
log.e('getList', e, stack);
|
|
}
|
|
return list;
|
|
}
|
|
|
|
Future<List<BuyItemResponse>> getItemList(int id,
|
|
{required int page, required int perpage, dynamic filter}) async {
|
|
List<BuyItemResponse> list = [];
|
|
try {
|
|
final Map<String, dynamic> requestBody = <String, dynamic>{
|
|
'page': page,
|
|
'perpage': perpage,
|
|
'id': id
|
|
};
|
|
ResponseEntity categories = await _api.postRequest('/general_purchases_get_items',
|
|
requestBody: requestBody);
|
|
if (categories.original.items != null &&
|
|
categories.original.items!.isNotEmpty) {
|
|
for (final dynamic map in categories.original.items!) {
|
|
final BuyItemResponse item =
|
|
BuyItemResponse.fromJson(map);
|
|
list.add(item);
|
|
}
|
|
}
|
|
} catch (e, stack) {
|
|
log.e('getList', e, stack);
|
|
}
|
|
return list;
|
|
}
|
|
|
|
Future<bool> editItem({required int invoiceId, required int id, required double price, required double count}) async {
|
|
bool result = false;
|
|
try {
|
|
final Map<String, dynamic> requestBody = <String, dynamic>{
|
|
'eacc_buy_invoice_item_id': id,
|
|
'id': invoiceId,
|
|
'price': price,
|
|
'cnt': count
|
|
};
|
|
|
|
ResponseEntity response = await _api.postRequest('/general_purchases_edit_item',
|
|
requestBody: requestBody);
|
|
result = response.original.status == 'success';
|
|
} catch (e, stack) {
|
|
log.e('getList', e, stack);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
Future<bool> deleteItem(int id) async {
|
|
bool result = false;
|
|
try {
|
|
final Map<String, dynamic> requestBody = <String, dynamic>{
|
|
'id': id,
|
|
};
|
|
|
|
ResponseEntity response = await _api.postRequest('/general_purchases_delete_item',
|
|
requestBody: requestBody);
|
|
result = response.original.status == 'success';
|
|
log.i(response.toJson());
|
|
} catch (e, stack) {
|
|
log.e('getList', e, stack);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
Future<bool> addItem(int invoiceId, int goodId) async {
|
|
bool result = false;
|
|
try {
|
|
final Map<String, dynamic> requestBody = <String, dynamic>{
|
|
'eacc_good_id': goodId,
|
|
'id': invoiceId,
|
|
};
|
|
|
|
ResponseEntity response = await _api.postRequest('/general_purchases_add_item',
|
|
requestBody: requestBody);
|
|
result = response.original.status == 'success';
|
|
log.i(response.toJson());
|
|
} catch (e, stack) {
|
|
log.e('getList', e, stack);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
Future<bool> confirmInvoice(int invoiceId) async {
|
|
bool result = false;
|
|
try {
|
|
final Map<String, dynamic> requestBody = <String, dynamic>{
|
|
'id': invoiceId,
|
|
};
|
|
|
|
ResponseEntity response = await _api.postRequest('/general_purchases_confirm',
|
|
requestBody: requestBody);
|
|
result = response.original.status == 'success';
|
|
log.i(response.toJson());
|
|
} catch (e, stack) {
|
|
log.e('getList', e, stack);
|
|
}
|
|
return result;
|
|
}
|
|
|
|
Future<bool> createBuy(ContragentResponseEntity contragent, DateTime date) async {
|
|
bool result = false;
|
|
try {
|
|
DateFormat formatter = DateFormat('yyyy-MM-dd');
|
|
final Map<String, dynamic> requestBody = <String, dynamic>{
|
|
'eacc_contragent_id': contragent.id,
|
|
'invoice_date': formatter.format(date),
|
|
};
|
|
log.i('requestBody', requestBody);
|
|
ResponseEntity response = await _api.postRequest('/general_purchases_add',
|
|
requestBody: requestBody);
|
|
log.i('response', response.toJson());
|
|
result = response.original.status == 'success';
|
|
} catch (e, stack) {
|
|
log.e('getList', e, stack);
|
|
}
|
|
return result;
|
|
}
|
|
} |