brmbar/brmbar3/brmbar-gui-qt4/Withdraw.qml
2024-01-30 20:18:07 +01:00

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")
}
}