Added transaction feature, fixed some mistakes

This commit is contained in:
2026-04-11 11:12:54 +03:00
parent 6872563c62
commit 545b05d5a0
37 changed files with 2509 additions and 115 deletions
+12 -3
View File
@@ -36,7 +36,7 @@ func (r *ReceiptsSQLRepository) Create(ctx context.Context, receipt *domain.Rece
}
res, err := tx.ExecContext(ctx, `
INSERT INTO receipts (
receipt_number, ui, status, issued_at,
transaction_id, receipt_number, ui, status, issued_at,
total_amount, payment_amount, cash_amount,
another_amount, clearing_amount, margin,
currency, payment_type,
@@ -46,8 +46,9 @@ func (r *ReceiptsSQLRepository) Create(ctx context.Context, receipt *domain.Rece
kod_soato, oblast_soato, rayon_soato, selsovet_soato,
doc_num, skno_number, unp,
success
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
`,
receipt.TransactionID,
receipt.ReceiptNumber,
receipt.UI,
receipt.Status,
@@ -144,6 +145,7 @@ func (r *ReceiptsSQLRepository) GetByID(ctx context.Context, id int64) (*domain.
err := r.db.QueryRowContext(ctx, `
SELECT
id,
transaction_id,
receipt_number, ui, status, issued_at,
total_amount, payment_amount, cash_amount,
another_amount, clearing_amount, margin,
@@ -158,6 +160,7 @@ func (r *ReceiptsSQLRepository) GetByID(ctx context.Context, id int64) (*domain.
WHERE id = ?
`, id).Scan(
&receipt.ID,
&receipt.TransactionID,
&receipt.ReceiptNumber,
&receipt.UI,
&receipt.Status,
@@ -205,6 +208,7 @@ func (r *ReceiptsSQLRepository) GetByID(ctx context.Context, id int64) (*domain.
rows, err := r.db.QueryContext(ctx, `
SELECT
id, receipt_id,
section_number, gtin_code, product_name,
product_count, amount,
discount, surcharge,
@@ -219,6 +223,8 @@ func (r *ReceiptsSQLRepository) GetByID(ctx context.Context, id int64) (*domain.
for rows.Next() {
var p domain.Position
if err := rows.Scan(
&p.ID,
&p.ReceiptID,
&p.SectionNumber,
&p.GTINCode,
&p.ProductName,
@@ -241,7 +247,7 @@ func (r *ReceiptsSQLRepository) GetByID(ctx context.Context, id int64) (*domain.
func (r *ReceiptsSQLRepository) GetAll(ctx context.Context, limit, offset int) ([]*domain.Receipt, error) {
rows, err := r.db.QueryContext(ctx, `
SELECT id, receipt_number, issued_at, total_amount, currency
SELECT id, transaction_id, receipt_number, issued_at, total_amount, currency
FROM receipts
ORDER BY issued_at DESC
LIMIT ? OFFSET ?
@@ -257,6 +263,7 @@ func (r *ReceiptsSQLRepository) GetAll(ctx context.Context, limit, offset int) (
var rct domain.Receipt
if err := rows.Scan(
&rct.ID,
&rct.TransactionID,
&rct.ReceiptNumber,
&rct.IssuedAt,
&rct.TotalAmount,
@@ -280,11 +287,13 @@ func (r *ReceiptsSQLRepository) Update(ctx context.Context, receipt *domain.Rece
_, err = tx.ExecContext(ctx, `
UPDATE receipts SET
transaction_id = ?,
issued_at = ?,
total_amount = ?,
currency = ?
WHERE id = ?
`,
receipt.TransactionID,
receipt.IssuedAt,
receipt.TotalAmount,
receipt.Currency,