from dataclasses import dataclass from datetime import datetime import sqlite3 from pypos.core.base_model import BaseModel # 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 = "" 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 ) def cek_voucher_valid(self, kode): from pypos.core.utils.path_utils import get_db_path conn = sqlite3.connect(get_db_path()) cursor = conn.cursor() cursor.execute(""" SELECT nilai FROM voucher_return WHERE kode = ? AND is_used = 0 """, (kode,)) row = cursor.fetchone() if row: return {"nilai": row[0]} return None