def __init__(self, parent=None): ExtendableDialog.__init__(self, parent) frame = QtGui.QFrame() layout = QtGui.QGridLayout(frame) tx_label = QtGui.QLabel(_("Treatment")) sundries_label = QtGui.QLabel(_("Sundries")) total_label = QtGui.QLabel(_("Total")) for label in (tx_label, sundries_label, total_label): label.setAlignment(QtCore.Qt.AlignCenter) cash_label = QtGui.QLabel(_("Cash")) cheque_label = QtGui.QLabel(_("Cheque")) card_label = QtGui.QLabel(_("Card")) self.cash_le = MoneyLineEdit() self.cheque_le = MoneyLineEdit() self.card_le = MoneyLineEdit() self.cash_but = QtGui.QPushButton("-") self.cheque_but = QtGui.QPushButton("-") self.card_but = QtGui.QPushButton("-") self.cash_but.setFixedWidth(30) self.cheque_but.setFixedWidth(30) self.card_but.setFixedWidth(30) self.cash_sundries_le = MoneyLineEdit() self.cheque_sundries_le = MoneyLineEdit() self.card_sundries_le = MoneyLineEdit() self.cash_tot_label = CurrencyLabel("0.00") self.cheque_tot_label = CurrencyLabel("0.00") self.card_tot_label = CurrencyLabel("0.00") self.tx_tot_label = CurrencyLabel("0.00") self.sundries_tot_label = CurrencyLabel("0.00") self.grand_tot_label = CurrencyLabel("0.00") f = QtGui.QApplication.instance().font() f.setBold(True) self.grand_tot_label.setFont(f) for label in ( self.cash_tot_label, self.cheque_tot_label, self.card_tot_label, self.tx_tot_label, self.sundries_tot_label, self.grand_tot_label, ): label.setMinimumWidth(80) layout.addWidget(tx_label, 0, 1, 1, 2) layout.addWidget(sundries_label, 0, 3) layout.addWidget(total_label, 0, 4) layout.addWidget(cash_label, 1, 0) layout.addWidget(cheque_label, 2, 0) layout.addWidget(card_label, 3, 0) layout.addWidget(self.cash_le, 1, 1) layout.addWidget(self.cheque_le, 2, 1) layout.addWidget(self.card_le, 3, 1) layout.addWidget(self.cash_but, 1, 2) layout.addWidget(self.cheque_but, 2, 2) layout.addWidget(self.card_but, 3, 2) layout.addWidget(self.cash_sundries_le, 1, 3) layout.addWidget(self.cheque_sundries_le, 2, 3) layout.addWidget(self.card_sundries_le, 3, 3) layout.addWidget(self.cash_tot_label, 1, 4) layout.addWidget(self.cheque_tot_label, 2, 4) layout.addWidget(self.card_tot_label, 3, 4) layout.addWidget(self.tx_tot_label, 4, 1) layout.addWidget(self.sundries_tot_label, 4, 3) layout.addWidget(self.grand_tot_label, 4, 4) self.insertWidget(frame) for widg in ( self.cash_le, self.cheque_le, self.card_le, self.cash_sundries_le, self.cheque_sundries_le, self.card_sundries_le, ): widg.textEdited.connect(self.update_totals) self.cash_but.clicked.connect(self.cash_but_clicked) self.cheque_but.clicked.connect(self.cheque_but_clicked) self.card_but.clicked.connect(self.card_but_clicked) self.misc_payment_widget = MiscPaymentWidget(self) self.set_advanced_but_text(_("unusual payments")) self.add_advanced_widget(self.misc_payment_widget) self.misc_payment_widget.updated.connect(self.update_totals)
def __init__(self, parent=None): ExtendableDialog.__init__(self, parent) frame = QtGui.QFrame() layout = QtGui.QGridLayout(frame) tx_label = QtGui.QLabel(_("Treatment")) sundries_label = QtGui.QLabel(_("Sundries")) total_label = QtGui.QLabel(_("Total")) for label in (tx_label, sundries_label, total_label): label.setAlignment(QtCore.Qt.AlignCenter) cash_label = QtGui.QLabel(_("Cash")) cheque_label = QtGui.QLabel(_("Cheque")) card_label = QtGui.QLabel(_("Card")) self.cash_le = MoneyLineEdit() self.cheque_le = MoneyLineEdit() self.card_le = MoneyLineEdit() self.cash_but = QtGui.QPushButton("-") self.cheque_but = QtGui.QPushButton("-") self.card_but = QtGui.QPushButton("-") self.cash_but.setFixedWidth(30) self.cheque_but.setFixedWidth(30) self.card_but.setFixedWidth(30) self.cash_sundries_le = MoneyLineEdit() self.cheque_sundries_le = MoneyLineEdit() self.card_sundries_le = MoneyLineEdit() self.cash_tot_label = CurrencyLabel("0.00") self.cheque_tot_label = CurrencyLabel("0.00") self.card_tot_label = CurrencyLabel("0.00") self.tx_tot_label = CurrencyLabel("0.00") self.sundries_tot_label = CurrencyLabel("0.00") self.grand_tot_label = CurrencyLabel("0.00") f = QtGui.QApplication.instance().font() f.setBold(True) self.grand_tot_label.setFont(f) for label in (self.cash_tot_label, self.cheque_tot_label, self.card_tot_label, self.tx_tot_label, self.sundries_tot_label, self.grand_tot_label): label.setMinimumWidth(80) layout.addWidget(tx_label, 0, 1, 1, 2) layout.addWidget(sundries_label, 0, 3) layout.addWidget(total_label, 0, 4) layout.addWidget(cash_label, 1, 0) layout.addWidget(cheque_label, 2, 0) layout.addWidget(card_label, 3, 0) layout.addWidget(self.cash_le, 1, 1) layout.addWidget(self.cheque_le, 2, 1) layout.addWidget(self.card_le, 3, 1) layout.addWidget(self.cash_but, 1, 2) layout.addWidget(self.cheque_but, 2, 2) layout.addWidget(self.card_but, 3, 2) layout.addWidget(self.cash_sundries_le, 1, 3) layout.addWidget(self.cheque_sundries_le, 2, 3) layout.addWidget(self.card_sundries_le, 3, 3) layout.addWidget(self.cash_tot_label, 1, 4) layout.addWidget(self.cheque_tot_label, 2, 4) layout.addWidget(self.card_tot_label, 3, 4) layout.addWidget(self.tx_tot_label, 4, 1) layout.addWidget(self.sundries_tot_label, 4, 3) layout.addWidget(self.grand_tot_label, 4, 4) self.insertWidget(frame) for widg in (self.cash_le, self.cheque_le, self.card_le, self.cash_sundries_le, self.cheque_sundries_le, self.card_sundries_le): widg.textEdited.connect(self.update_totals) self.cash_but.clicked.connect(self.cash_but_clicked) self.cheque_but.clicked.connect(self.cheque_but_clicked) self.card_but.clicked.connect(self.card_but_clicked) self.misc_payment_widget = MiscPaymentWidget(self) self.set_advanced_but_text(_("unusual payments")) self.add_advanced_widget(self.misc_payment_widget) self.misc_payment_widget.updated.connect(self.update_totals)
class PaymentDialog(ExtendableDialog): default_tx_amount = "0.00" def __init__(self, parent=None): ExtendableDialog.__init__(self, parent) frame = QtGui.QFrame() layout = QtGui.QGridLayout(frame) tx_label = QtGui.QLabel(_("Treatment")) sundries_label = QtGui.QLabel(_("Sundries")) total_label = QtGui.QLabel(_("Total")) for label in (tx_label, sundries_label, total_label): label.setAlignment(QtCore.Qt.AlignCenter) cash_label = QtGui.QLabel(_("Cash")) cheque_label = QtGui.QLabel(_("Cheque")) card_label = QtGui.QLabel(_("Card")) self.cash_le = MoneyLineEdit() self.cheque_le = MoneyLineEdit() self.card_le = MoneyLineEdit() self.cash_but = QtGui.QPushButton("-") self.cheque_but = QtGui.QPushButton("-") self.card_but = QtGui.QPushButton("-") self.cash_but.setFixedWidth(30) self.cheque_but.setFixedWidth(30) self.card_but.setFixedWidth(30) self.cash_sundries_le = MoneyLineEdit() self.cheque_sundries_le = MoneyLineEdit() self.card_sundries_le = MoneyLineEdit() self.cash_tot_label = CurrencyLabel("0.00") self.cheque_tot_label = CurrencyLabel("0.00") self.card_tot_label = CurrencyLabel("0.00") self.tx_tot_label = CurrencyLabel("0.00") self.sundries_tot_label = CurrencyLabel("0.00") self.grand_tot_label = CurrencyLabel("0.00") f = QtGui.QApplication.instance().font() f.setBold(True) self.grand_tot_label.setFont(f) for label in ( self.cash_tot_label, self.cheque_tot_label, self.card_tot_label, self.tx_tot_label, self.sundries_tot_label, self.grand_tot_label, ): label.setMinimumWidth(80) layout.addWidget(tx_label, 0, 1, 1, 2) layout.addWidget(sundries_label, 0, 3) layout.addWidget(total_label, 0, 4) layout.addWidget(cash_label, 1, 0) layout.addWidget(cheque_label, 2, 0) layout.addWidget(card_label, 3, 0) layout.addWidget(self.cash_le, 1, 1) layout.addWidget(self.cheque_le, 2, 1) layout.addWidget(self.card_le, 3, 1) layout.addWidget(self.cash_but, 1, 2) layout.addWidget(self.cheque_but, 2, 2) layout.addWidget(self.card_but, 3, 2) layout.addWidget(self.cash_sundries_le, 1, 3) layout.addWidget(self.cheque_sundries_le, 2, 3) layout.addWidget(self.card_sundries_le, 3, 3) layout.addWidget(self.cash_tot_label, 1, 4) layout.addWidget(self.cheque_tot_label, 2, 4) layout.addWidget(self.card_tot_label, 3, 4) layout.addWidget(self.tx_tot_label, 4, 1) layout.addWidget(self.sundries_tot_label, 4, 3) layout.addWidget(self.grand_tot_label, 4, 4) self.insertWidget(frame) for widg in ( self.cash_le, self.cheque_le, self.card_le, self.cash_sundries_le, self.cheque_sundries_le, self.card_sundries_le, ): widg.textEdited.connect(self.update_totals) self.cash_but.clicked.connect(self.cash_but_clicked) self.cheque_but.clicked.connect(self.cheque_but_clicked) self.card_but.clicked.connect(self.card_but_clicked) self.misc_payment_widget = MiscPaymentWidget(self) self.set_advanced_but_text(_("unusual payments")) self.add_advanced_widget(self.misc_payment_widget) self.misc_payment_widget.updated.connect(self.update_totals) def int_to_decimal(self, i): assert isinstance(i, IntType), "input must be an integer, not %s, (%s)" % (i, type(i)) ss = str(i) negative = "-" if "-" in ss else "" ss = ss.strip("-") if len(ss) == 0: return "0.00" if len(ss) == 1: return "%s0.0%s" % (negative, ss) if len(ss) == 2: return "%s0.%s" % (negative, ss) return "%s%s.%s" % (negative, ss[:-2], ss[-2:]) def update_totals(self, *args): self.cash_tot_label.setText(self.int_to_decimal(self.cash_total)) self.cheque_tot_label.setText(self.int_to_decimal(self.cheque_total)) self.card_tot_label.setText(self.int_to_decimal(self.card_total)) self.tx_tot_label.setText(self.tx_total_text) self.sundries_tot_label.setText(self.sundry_total_text) self.grand_tot_label.setText(self.grand_total_text) def set_treatment_default_amount(self, amt): if amt > 0: self.default_tx_amount = self.int_to_decimal(amt) @property def hdp(self): return self.misc_payment_widget.hdp_value @property def other(self): return self.misc_payment_widget.other_value @property def refund(self): return self.misc_payment_widget.refund_value @property def grand_total(self): val = self.cash_total + self.cheque_total + self.card_total + self.hdp + self.other + self.refund self.enableApply(val != 0 or self.refund != 0) return val @property def tx_total_text(self): return self.int_to_decimal(self.tx_total + self.hdp) @property def sundry_total_text(self): return self.int_to_decimal(self.sundries_total + self.other) @property def grand_total_text(self): return self.int_to_decimal(self.grand_total) @property def other_text(self): return self.int_to_decimal(self.other) @property def refund_text(self): return self.int_to_decimal(self.refund) @property def cash_total(self): return self.cash_le.pence_value + self.cash_sundries_le.pence_value @property def cheque_total(self): return self.cheque_le.pence_value + self.cheque_sundries_le.pence_value @property def card_total(self): return self.card_le.pence_value + self.card_sundries_le.pence_value @property def sundries_total(self): return self.sundry_cash + self.sundry_cheque + self.sundry_card @property def tx_total(self): return self.tx_cash + self.tx_cheque + self.tx_card @property def tx_cash(self): return self.cash_le.pence_value @property def tx_cheque(self): return self.cheque_le.pence_value @property def tx_card(self): return self.card_le.pence_value @property def sundry_cash(self): return self.cash_sundries_le.pence_value @property def sundry_cheque(self): return self.cheque_sundries_le.pence_value @property def sundry_card(self): return self.card_sundries_le.pence_value def card_but_clicked(self): self.card_le.setText(self.default_tx_amount) self.update_totals() def cheque_but_clicked(self): self.cheque_le.setText(self.default_tx_amount) self.update_totals() def cash_but_clicked(self): self.cash_le.setText(self.default_tx_amount) self.update_totals() def hide_treatment(self, hide): if hide: self.cash_le.setEnabled(False) self.cash_but.setEnabled(False) self.cheque_le.setEnabled(False) self.cheque_but.setEnabled(False) self.card_le.setEnabled(False) self.card_but.setEnabled(False) self.misc_payment_widget.hide_treatment(hide)
class PaymentDialog(ExtendableDialog): default_tx_amount = "0.00" def __init__(self, parent=None): ExtendableDialog.__init__(self, parent) frame = QtGui.QFrame() layout = QtGui.QGridLayout(frame) tx_label = QtGui.QLabel(_("Treatment")) sundries_label = QtGui.QLabel(_("Sundries")) total_label = QtGui.QLabel(_("Total")) for label in (tx_label, sundries_label, total_label): label.setAlignment(QtCore.Qt.AlignCenter) cash_label = QtGui.QLabel(_("Cash")) cheque_label = QtGui.QLabel(_("Cheque")) card_label = QtGui.QLabel(_("Card")) self.cash_le = MoneyLineEdit() self.cheque_le = MoneyLineEdit() self.card_le = MoneyLineEdit() self.cash_but = QtGui.QPushButton("-") self.cheque_but = QtGui.QPushButton("-") self.card_but = QtGui.QPushButton("-") self.cash_but.setFixedWidth(30) self.cheque_but.setFixedWidth(30) self.card_but.setFixedWidth(30) self.cash_sundries_le = MoneyLineEdit() self.cheque_sundries_le = MoneyLineEdit() self.card_sundries_le = MoneyLineEdit() self.cash_tot_label = CurrencyLabel("0.00") self.cheque_tot_label = CurrencyLabel("0.00") self.card_tot_label = CurrencyLabel("0.00") self.tx_tot_label = CurrencyLabel("0.00") self.sundries_tot_label = CurrencyLabel("0.00") self.grand_tot_label = CurrencyLabel("0.00") f = QtGui.QApplication.instance().font() f.setBold(True) self.grand_tot_label.setFont(f) for label in (self.cash_tot_label, self.cheque_tot_label, self.card_tot_label, self.tx_tot_label, self.sundries_tot_label, self.grand_tot_label): label.setMinimumWidth(80) layout.addWidget(tx_label, 0, 1, 1, 2) layout.addWidget(sundries_label, 0, 3) layout.addWidget(total_label, 0, 4) layout.addWidget(cash_label, 1, 0) layout.addWidget(cheque_label, 2, 0) layout.addWidget(card_label, 3, 0) layout.addWidget(self.cash_le, 1, 1) layout.addWidget(self.cheque_le, 2, 1) layout.addWidget(self.card_le, 3, 1) layout.addWidget(self.cash_but, 1, 2) layout.addWidget(self.cheque_but, 2, 2) layout.addWidget(self.card_but, 3, 2) layout.addWidget(self.cash_sundries_le, 1, 3) layout.addWidget(self.cheque_sundries_le, 2, 3) layout.addWidget(self.card_sundries_le, 3, 3) layout.addWidget(self.cash_tot_label, 1, 4) layout.addWidget(self.cheque_tot_label, 2, 4) layout.addWidget(self.card_tot_label, 3, 4) layout.addWidget(self.tx_tot_label, 4, 1) layout.addWidget(self.sundries_tot_label, 4, 3) layout.addWidget(self.grand_tot_label, 4, 4) self.insertWidget(frame) for widg in (self.cash_le, self.cheque_le, self.card_le, self.cash_sundries_le, self.cheque_sundries_le, self.card_sundries_le): widg.textEdited.connect(self.update_totals) self.cash_but.clicked.connect(self.cash_but_clicked) self.cheque_but.clicked.connect(self.cheque_but_clicked) self.card_but.clicked.connect(self.card_but_clicked) self.misc_payment_widget = MiscPaymentWidget(self) self.set_advanced_but_text(_("unusual payments")) self.add_advanced_widget(self.misc_payment_widget) self.misc_payment_widget.updated.connect(self.update_totals) def int_to_decimal(self, i): assert isinstance( i, IntType), "input must be an integer, not %s, (%s)" % (i, type(i)) ss = str(i) negative = "-" if "-" in ss else "" ss = ss.strip("-") if len(ss) == 0: return "0.00" if len(ss) == 1: return "%s0.0%s" % (negative, ss) if len(ss) == 2: return "%s0.%s" % (negative, ss) return "%s%s.%s" % (negative, ss[:-2], ss[-2:]) def update_totals(self, *args): self.cash_tot_label.setText(self.int_to_decimal(self.cash_total)) self.cheque_tot_label.setText(self.int_to_decimal(self.cheque_total)) self.card_tot_label.setText(self.int_to_decimal(self.card_total)) self.tx_tot_label.setText(self.tx_total_text) self.sundries_tot_label.setText(self.sundry_total_text) self.grand_tot_label.setText(self.grand_total_text) def set_treatment_default_amount(self, amt): if amt > 0: self.default_tx_amount = self.int_to_decimal(amt) @property def hdp(self): return self.misc_payment_widget.hdp_value @property def other(self): return self.misc_payment_widget.other_value @property def refund(self): return self.misc_payment_widget.refund_value @property def grand_total(self): val = (self.cash_total + self.cheque_total + self.card_total + self.hdp + self.other + self.refund) self.enableApply(val != 0 or self.refund != 0) return val @property def tx_total_text(self): return self.int_to_decimal(self.tx_total + self.hdp) @property def sundry_total_text(self): return self.int_to_decimal(self.sundries_total + self.other) @property def grand_total_text(self): return self.int_to_decimal(self.grand_total) @property def other_text(self): return self.int_to_decimal(self.other) @property def refund_text(self): return self.int_to_decimal(self.refund) @property def cash_total(self): return self.cash_le.pence_value + self.cash_sundries_le.pence_value @property def cheque_total(self): return self.cheque_le.pence_value + self.cheque_sundries_le.pence_value @property def card_total(self): return self.card_le.pence_value + self.card_sundries_le.pence_value @property def sundries_total(self): return self.sundry_cash + self.sundry_cheque + self.sundry_card @property def tx_total(self): return (self.tx_cash + self.tx_cheque + self.tx_card) @property def tx_cash(self): return self.cash_le.pence_value @property def tx_cheque(self): return self.cheque_le.pence_value @property def tx_card(self): return self.card_le.pence_value @property def sundry_cash(self): return self.cash_sundries_le.pence_value @property def sundry_cheque(self): return self.cheque_sundries_le.pence_value @property def sundry_card(self): return self.card_sundries_le.pence_value def card_but_clicked(self): self.card_le.setText(self.default_tx_amount) self.update_totals() def cheque_but_clicked(self): self.cheque_le.setText(self.default_tx_amount) self.update_totals() def cash_but_clicked(self): self.cash_le.setText(self.default_tx_amount) self.update_totals() def hide_treatment(self, hide): if hide: self.cash_le.setEnabled(False) self.cash_but.setEnabled(False) self.cheque_le.setEnabled(False) self.cheque_but.setEnabled(False) self.card_le.setEnabled(False) self.card_but.setEnabled(False) self.misc_payment_widget.hide_treatment(hide)