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(); final DbService _db = locator(); final DialogService _dialogService = locator(); Future 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 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; } }