· 6 years ago · Oct 19, 2019, 08:38 AM
1import 'dart:convert';
2
3import 'package:barcode_scan/barcode_scan.dart';
4import 'package:beliuntung/UI/BeliUntungApp/DetailTransactionBarcode.dart';
5import 'package:beliuntung/UI/BeliUntungApp/Services/ServicesPostData.dart';
6import 'package:beliuntung/UI/BeliUntungApp/Services/Terms.dart';
7import 'package:beliuntung/UI/BeliUntungApp/Services/services.dart';
8import 'package:beliuntung/UI/BeliUntungApp/models/GlobalString.dart';
9import 'package:beliuntung/UI/BeliUntungApp/models/Merchant.dart';
10import 'package:date_format/date_format.dart';
11import 'package:flutter/material.dart';
12import 'dart:async';
13import 'package:flutter/services.dart';
14import 'package:indonesia/indonesia.dart';
15
16class ScanPembelians extends StatefulWidget {
17 final String uid;
18 final String sessionName;
19 final String token;
20 final String sessid;
21 final String responseData;
22 final String idScanner;
23
24 ScanPembelians(
25 {Key key,
26 this.responseData,
27 this.idScanner,
28 this.sessid,
29 this.sessionName,
30 this.token,
31 this.uid})
32 : super(key: key);
33 @override
34 _ScanPembeliansState createState() => _ScanPembeliansState();
35}
36
37class _ScanPembeliansState extends State<ScanPembelians> {
38 String getUid = "";
39 String getTermsId = "";
40 String getNid = "";
41 var getAmount = "";
42 Terms terms = Terms();
43
44 _getListRO(BuildContext context) {
45 API
46 .getScanPembelian(
47 widget.token, widget.sessionName, widget.sessid, widget.idScanner)
48 .then((response) {
49 setState(() {
50 print("sessidP ==> ${widget.sessid}");
51 print("sessionname ==> ${widget.sessionName}");
52 // print("sessidP ==> ${widget.uid}");
53 // print("nameP ==> ${widget.name}");
54 // print("fullP ==> ${widget.fullname}");
55 print('tokennya ==>${widget.token}');
56 print('respons ini baru ==>${response.body.toString()}');
57 print("response ===> ${response.statusCode}");
58 var uid = jsonDecode(response.body)['uid'];
59 var termsId =
60 jsonDecode(response.body)['field_term1']['und'][0]['target_id'];
61 var nid = jsonDecode(response.body)['nid'];
62 var amount =
63 jsonDecode(response.body)['field_value2']['und'][0]['value'];
64
65 if (amount is int) {
66 getAmount = amount.toString();
67 } else {
68 if (amount.toString().lastIndexOf(".") >= 0) {
69 getAmount = amount
70 .toString()
71 .substring(0, amount.toString().lastIndexOf("."));
72 } else {
73 getAmount = amount;
74 }
75 }
76
77 getUid = uid;
78 getTermsId = termsId;
79 getNid = nid;
80 //getAmount = amount;
81 print("uid ===> $getUid");
82 print("termsid ===> $getTermsId");
83 print("nid ===> $getNid");
84 print("amount ===> $getAmount");
85 _onSubmit(context);
86 });
87 });
88 }
89
90 void _onSubmit(BuildContext context) async {
91 int amount = int.parse(getAmount);
92 int terms1 =
93 (getTermsId == terms.salesMajor) ? terms.salesMajor : terms.sales;
94 int terms2 =
95 (getTermsId == terms.salesMajor) ? terms.purchaseMajor : terms.purchase;
96
97 var response = await postTransactionPurchaseScan(
98 widget.uid,
99 getUid,
100 terms1,
101 terms2,
102 amount,
103 widget.token,
104 widget.sessionName,
105 widget.sessid,
106 getNid);
107 if (response.statusCode == 200) {
108 print(" token ===> ${widget.token}");
109 print(" sessid ===> ${widget.sessid}");
110 print(" sessionName ===> ${widget.sessionName}");
111 Navigator.push(
112 context,
113 MaterialPageRoute(
114 builder: (context) => DetailTransactionBarcode(
115 nid: getNid,
116 token: widget.token,
117 sessid: widget.sessid,
118 sessionName: widget.sessionName,
119 uid: widget.uid,
120 )));
121 } else if (response.statusCode == 406) {
122 var pesanError = jsonDecode(response.body)['form_errors']['field_value2'];
123
124 _errorJumlah(context, "PERINGATAN : $pesanError");
125 } else {
126 _errorJumlah(context, "Cobalah Beberapa saat Lagi");
127 }
128 }
129
130 void _errorJumlah(BuildContext context, String msg) {
131 Scaffold.of(context).showSnackBar(new SnackBar(content: new Text(msg)));
132 }
133
134
135 @override
136 Widget build(BuildContext context) {
137 _getListRO(context);
138 return Container(
139 );
140 }
141}