uploading receipt

This commit is contained in:
Felix 2019-08-12 11:37:59 +01:00
parent 4e67bfbbec
commit 405a037a15
3 changed files with 75 additions and 11 deletions

View file

@ -18,7 +18,6 @@ class Organisation {
this.streetName,
this.town,
);
}
class Organisations {

View file

@ -37,26 +37,25 @@ Future<LoginModel> submitReceiptAPI(
'recurring': receipt.recurring,
'street_name': receipt.street,
'postcode': receipt.postcode,
'town': receipt.town,
'session_key': preferences.get('LastToken'),
};
// debugPrint('$body');
// debugPrint(json.encode(body));
debugPrint(json.encode(body));
final response = await http.post(
url,
body: json.encode(body),
);
// debugPrint(response.body);
debugPrint(response.body);
if (response.statusCode == 200) {
final responseJson = json.decode(response.body);
// print(responseJson[0]);
print(responseJson[0]);
showDialogSingleButton(
context,

View file

@ -4,6 +4,7 @@ import 'package:intl/intl.dart';
import 'package:flutter/cupertino.dart';
import 'package:local_spend/common/apifunctions/find_organisations.dart';
import 'package:local_spend/common/widgets/organisations_dialog.dart';
import 'package:local_spend/common/apifunctions/submit_receipt_api.dart';
class Transaction {
DateTime date;
@ -40,6 +41,33 @@ class ReceiptPage2State extends State<ReceiptPage2> {
"Uncategorised",
);
_submitReceipt(Transaction transaction) {
DateTime dt = new DateTime.now();
// sample transaction:
// {
// "transaction_type":1,
// "transaction_value":33,
// "purchase_time":"2019-08-12T11:06:00.000+01:00",
// "organisation_id":59661,
// "essential":false,
// "session_key":"C438432A-B775-11E9-8EE8-147589E69626"
// }
Receipt receipt = new Receipt();
receipt.organisationName = transaction.organisation.name;
receipt.street = transaction.organisation.streetName;
receipt.postcode = transaction.organisation.postcode;
receipt.town = transaction.organisation.town;
receipt.recurring = transaction.recurring;
receipt.category = transaction.category;
receipt.amount = transaction.amount.text.toString();
receipt.time = DateFormat("yyyy-MM-dd'T'hh:mm':00.000+01:00'").format(transaction.date).toString();
receipt.essential = transaction.isEssential.toString();
// receipt.time = dt.format(transaction.date);
submitReceiptAPI(context, receipt);
}
List<String> _sampleRecurringOptions = new List<String>(7);
List<String> _sampleCategories = new List<String>(4);
@ -367,6 +395,44 @@ class ReceiptPage2State extends State<ReceiptPage2> {
),
), // Amount picker
Padding(
padding: EdgeInsets.fromLTRB(20.0, 20.0, 20.0, 0.0),
child: Container(
height: 65.0,
child: RaisedButton(
onPressed: () {
try {
_submitReceipt(transaction);
}
catch (_) {
showDialog(
context: context,
builder: (BuildContext context) {
// return object of type Dialog
return AlertDialog(
title: new Text("Invalid data"),
content: new Text(
"We couldn't process your request because some of the data entered is invalid."),
actions: <Widget>[
new FlatButton(
child: new Text("OK"),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
}
},
child: Text("GO",
style:
TextStyle(color: Colors.white, fontSize: 22.0)),
color: Colors.blue,
),
),
),
],
),
);