from dataclasses import dataclass from datetime import datetime from pypos.core.base_model import BaseModel from pypos.modules.penjualan.models.voucher_model import VoucherModel # upgraded: inherit base class @dataclass class InfoTransaksi(BaseModel): tanggal: str jenis_item: int total_qty: int total_belanja: float @dataclass class PaymentResult(BaseModel): metode: str jumlah_dibayar: float total_harus_dibayar: float = 0.0 kembalian: float = 0.0 diskon_rp: float = 0.0 diskon_member_persen: float = 0.0 total_dibayar: float = 0.0 kembali: float = 0.0 jumlah_bayar: float = 0.0 settlement_id: str = "" bank_id: int = 0 bank_nama: str = "" bank: str = "" kartu: str = "" no_kartu: str = "" approval_code: str = "" edc: str = "" jenis_edc: str = "" jenis_kartu: str = "" voucher_code: str = "" voucher_amount: float = 0.0 class PembayaranModel(BaseModel): def __init__(self): super().__init__() self.metode = "tunai" self.info_transaksi = InfoTransaksi( tanggal=datetime.now().strftime("%Y-%m-%d"), jenis_item=0, total_qty=0, total_belanja=0 ) self.voucher_model = VoucherModel() def cek_voucher_valid(self, kode): voucher = self.voucher_model.get_voucher(kode) if not voucher: return None if str(voucher.get("status", "")).lower() != "aktif": return None saldo = float(voucher.get("saldo") or 0) if saldo <= 0: return None return {"saldo": saldo}