aman-satu-flutter/lib/core/services/data_service.dart

63 lines
2.1 KiB
Dart

import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:satu/core/base/base_service.dart';
import 'package:satu/core/entity/transaction_entity.dart';
import 'package:satu/core/models/flow/items_bean.dart';
import 'package:satu/core/models/flow/operator_bean.dart';
import 'package:satu/core/models/flow/product_dao.dart';
import 'package:satu/core/models/flow/sell_request.dart';
import 'package:satu/core/models/flow/sell_response.dart';
import 'package:satu/core/models/flow/transaction_state.dart';
import 'package:satu/core/redux/state/sell_state.dart';
import 'package:satu/core/redux/store.dart';
import 'package:satu/core/utils/locator.dart';
import 'api_service.dart';
import 'db_service.dart';
import 'dialog_service.dart';
class DataService extends BaseService {
final ApiService _api = locator<ApiService>();
final DbService _db = locator<DbService>();
final DialogService _dialogService = locator<DialogService>();
Future<bool> sellBtnHandler({double card = 0, double nal = 0}) async {
final SellRequest request = SellRequest();
final SellState sellState = Redux.store!.state.sellState!;
final TransactionState transactionState = sellState.transactionState!;
final List<ProductDao> items = sellState.items!;
for(final ProductDao item in items){
request.items.add(_productToItemBean(item));
}
request.card = card;
request.nal = nal;
request.invoiceId = transactionState.uuid;
request.section = 'section';
request.contragent = 'contragent';
final OperatorBean operator = OperatorBean()..name='operator'..code=1;
request.operator = operator;
SellResponse response = await _api.sell(request);
final String msg = '${response.operation} - ${response.message}';
log.w(response.toJson());
_dialogService.showDialog(description: msg);
return true;
}
ItemBean _productToItemBean(ProductDao product) {
final ItemBean item = ItemBean()
..id = product.id
..price = product.price
..cnt = product.count
..name = product.productName
..excise = product.excise
..articul = product.article?.toString();
return item;
}
}