add discount api

This commit is contained in:
Sai Naw Wun
2020-10-15 10:53:41 +06:30
parent 47c07a6c88
commit 37289e42c0
7 changed files with 122 additions and 64 deletions

View File

@@ -2,7 +2,6 @@ import 'package:fcs/helpers/theme.dart';
import 'package:fcs/localization/app_translations.dart';
import 'package:fcs/pages/discount/model/discount_model.dart';
import 'package:fcs/pages/main/util.dart';
import 'package:fcs/pages/widgets/bottom_up_page_route.dart';
import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
@@ -87,7 +86,7 @@ class _DiscountListState extends State<DiscountList> {
Row(
children: <Widget>[
Text(
discount.customer,
discount.customerName,
style: TextStyle(
color: Colors.black,
fontWeight: FontWeight.normal,

View File

@@ -1,56 +1,56 @@
import 'dart:async';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/data/services/services.dart';
import 'package:fcs/domain/entities/discount.dart';
import 'package:fcs/pages/main/model/base_model.dart';
import 'package:logging/logging.dart';
class DiscountModel extends BaseModel {
List<Discount> get discounts {
List<Discount> discountList = [
Discount(
code: 'XMQY01',
customer: 'Ko Nyi',
amount: 5000,
status: 'Used',
),
Discount(
code: 'XMQY02',
customer: 'Ko Aung Myo',
amount: 3000,
status: 'Avaliable',
),
Discount(
code: 'XMQY03',
customer: 'Ko Zaw Thu',
amount: 2000,
status: 'Used',
),
Discount(
code: 'XMQY04',
customer: 'Ko Myo Min',
amount: 3000,
status: 'Avaliable',
),
Discount(
code: 'XMQY05',
customer: 'Ko Nyi',
amount: 3000,
status: 'Avaliable',
),
];
return discountList;
}
final log = Logger('DiscountModel');
// List<Discount> get discountByCustomer {
// return invoices.where((e) => e.status == "Avaliable").toList()
// ..sort((e1, e2) {
// return e2.invoiceNumber.compareTo(e1.invoiceNumber);
// });
// }
StreamSubscription<QuerySnapshot> listener;
List<Discount> discounts = [];
void initUser(user) {
super.initUser(user);
_load();
}
_load() {
if (listener != null) listener.cancel();
try {
listener = Firestore.instance
.collection("/discounts")
.orderBy("code", descending: false)
.snapshots()
.listen((snaps) {
discounts.clear();
snaps.documents.forEach((d) {
discounts.add(Discount.fromMap(d.data, d.documentID));
});
notifyListeners();
});
} catch (e) {
log.warning("error:$e");
}
}
@override
logout() async {
// discounts = [];
discounts = [];
}
Future<void> addDiscount(Discount discount) async {
return Services.instance.commonService.createDiscount(discount);
}
Future<void> updateDiscount(Discount discount) async {
return Services.instance.commonService.updateDiscount(discount);
}
Future<void> deleteDiscount(Discount discount) async {
return Services.instance.commonService.deleteDiscount(discount.id);
}
}

View File

@@ -1,4 +1,4 @@
import 'package:fcs/domain/entities/discount.dart';
import 'package:fcs/domain/entities/discount_by_weight.dart';
import 'package:fcs/helpers/theme.dart';
import 'package:fcs/localization/app_translations.dart';
import 'package:fcs/pages/main/util.dart';
@@ -9,8 +9,8 @@ import 'package:flutter/material.dart';
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
class DiscountByWeightEditor extends StatefulWidget {
final Discount discount;
DiscountByWeightEditor({this.discount});
final DiscountByWeight discountByWeight;
DiscountByWeightEditor({this.discountByWeight});
@override
_DiscountByWeightEditorState createState() => _DiscountByWeightEditorState();
@@ -21,15 +21,15 @@ class _DiscountByWeightEditorState extends State<DiscountByWeightEditor> {
TextEditingController _rateController = new TextEditingController();
bool _isLoading = false;
Discount _discount = new Discount();
DiscountByWeight _discountByWeight = new DiscountByWeight();
@override
void initState() {
super.initState();
if (widget.discount != null) {
_discount = widget.discount;
_weightController.text = _discount.weight.toString();
_rateController.text = _discount.discountRate.toString();
if (widget.discountByWeight != null) {
_discountByWeight = widget.discountByWeight;
_weightController.text = _discountByWeight.weight.toString();
_rateController.text = _discountByWeight.discount.toString();
}
}
@@ -74,7 +74,7 @@ class _DiscountByWeightEditorState extends State<DiscountByWeightEditor> {
],
),
),
widget.discount == null
widget.discountByWeight == null
? fcsButton(context, "Create", callack: () {})
: fcsButton(context, "Save", callack: () {}),
SizedBox(height: 10)