forked from brmlab/brmbar-github
116 lines
3.1 KiB
QML
116 lines
3.1 KiB
QML
import QtQuick 1.1
|
|
|
|
Item {
|
|
id: page
|
|
anchors.fill: parent
|
|
|
|
property string username: ""
|
|
property string userdbid: ""
|
|
property string amount: withdraw_pad.enteredText
|
|
|
|
Text {
|
|
id: item_name
|
|
x: 422
|
|
y: 156
|
|
width: 537
|
|
height: 80
|
|
color: "#ffffff"
|
|
text: parent.username ? parent.username : "Credit withdrawal"
|
|
wrapMode: Text.WordWrap
|
|
horizontalAlignment: Text.AlignRight
|
|
verticalAlignment: Text.AlignVCenter
|
|
font.pixelSize: 0.768 * 60
|
|
}
|
|
|
|
Text {
|
|
id: text3
|
|
x: 611
|
|
y: 256
|
|
height: 160
|
|
width: 348
|
|
color: "#ffff7c"
|
|
text: parent.amount ? "-" + parent.amount : ""
|
|
horizontalAlignment: Text.AlignRight
|
|
verticalAlignment: Text.AlignVCenter
|
|
font.pixelSize: 0.768 * 122
|
|
}
|
|
|
|
BarTextHint {
|
|
x: 65
|
|
y: 686
|
|
hint_goal: (parent.username ? "" : parent.amount ? "Withdraw:" : "Withdraw amount?")
|
|
hint_action: (parent.username ? (parent.amount ? "" : "(or scan barcode now)") : "Scan barcode now")
|
|
}
|
|
|
|
BarNumPad {
|
|
id: withdraw_pad
|
|
x: 65
|
|
y: 195
|
|
visible: parent.username != ""
|
|
focus: parent.username != ""
|
|
Keys.onReturnPressed: { withdraw_button.buttonClick() }
|
|
Keys.onEscapePressed: { cancel.buttonClick() }
|
|
}
|
|
|
|
BarcodeInput {
|
|
color: "#00ff00" /* just for debugging */
|
|
focus: parent.username == ""
|
|
onAccepted: {
|
|
var acct = shop.barcodeInput(text)
|
|
text = ""
|
|
if (typeof(acct) == "undefined" || (parent.username && acct.acctype != "recharge") || (parent.amount && acct.acctype != "debt")) {
|
|
status_text.setStatus("Unknown barcode", "#ff4444")
|
|
return
|
|
}
|
|
if (acct.acctype == "debt") {
|
|
username = acct.name
|
|
userdbid = acct.id
|
|
} else {
|
|
amount = acct.amount
|
|
}
|
|
/* if (username && amount) {
|
|
parent.withdrawCredit()
|
|
} */ /* Always ask for confirmation. */
|
|
}
|
|
}
|
|
|
|
BarButton {
|
|
id: withdraw_button
|
|
x: 65
|
|
y: 838
|
|
width: 360
|
|
text: "Withdraw"
|
|
fontSize: 0.768 * 60
|
|
visible: parent.amount && parent.userdbid
|
|
onButtonClick: {
|
|
parent.withdrawCredit()
|
|
}
|
|
}
|
|
|
|
BarButton {
|
|
id: cancel
|
|
x: 855
|
|
y: 838
|
|
width: 360
|
|
text: "Cancel"
|
|
onButtonClick: {
|
|
status_text.setStatus("Withdrawal cancelled", "#ff4444")
|
|
loadPage("UserMgmt") /* TODO better "back" navigation? */
|
|
}
|
|
}
|
|
|
|
function withdrawCredit() {
|
|
var balance=0
|
|
if (!isNaN(amount)) {
|
|
amount=(amount*1)
|
|
if(amount>=0) {
|
|
balance = shop.withdrawCredit(amount, userdbid)
|
|
status_text.setStatus("Withdrawn "+amount+"! "+username+"'s credit is "+balance+".", "#ffff7c")
|
|
} else {
|
|
balance = shop.chargeCredit((amount*(-1)),userdbid)
|
|
status_text.setStatus("Charged "+amount+"! "+username+"'s credit is "+balance+".", "#ffff7c")
|
|
}
|
|
}
|
|
loadPage("MainPage")
|
|
}
|
|
}
|