commit
32a36cceff
444 files changed
+67186
No files matched your search
@@ -0,0 +1,51 @@
|
||||
const { query } = require('../database/db');
|
||||
|
||||
class CycleFeedInitialBalance {
|
||||
/**
|
||||
* Get initial balance for a specific cycle
|
||||
* @param {string} cycleId - Cycle ID
|
||||
* @returns {Promise<Object|null>} Initial balance record or null if not found
|
||||
*/
|
||||
static async getByCycleId(cycleId) {
|
||||
const result = await query(
|
||||
'SELECT * FROM cycle_feed_initial_balance WHERE cycle_id = $1',
|
||||
[cycleId]
|
||||
);
|
||||
return result.rows[0] || null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Insert or update initial balance for a cycle (upsert)
|
||||
* @param {string} cycleId - Cycle ID
|
||||
* @param {number} saldoAwal - Initial balance count (must be non-negative)
|
||||
* @param {string} createdBy - Username of creator
|
||||
* @returns {Promise<Object>} Created/updated initial balance record
|
||||
*/
|
||||
static async upsert(cycleId, saldoAwal, createdBy) {
|
||||
const result = await query(
|
||||
`INSERT INTO cycle_feed_initial_balance (cycle_id, saldo_awal, created_by)
|
||||
VALUES ($1, $2, $3)
|
||||
ON CONFLICT (cycle_id)
|
||||
DO UPDATE SET
|
||||
saldo_awal = $2,
|
||||
updated_at = CURRENT_TIMESTAMP
|
||||
RETURNING *`,
|
||||
[cycleId, saldoAwal, createdBy]
|
||||
);
|
||||
return result.rows[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* Delete initial balance for a cycle
|
||||
* @param {string} cycleId - Cycle ID
|
||||
* @returns {Promise<void>}
|
||||
*/
|
||||
static async delete(cycleId) {
|
||||
await query(
|
||||
'DELETE FROM cycle_feed_initial_balance WHERE cycle_id = $1',
|
||||
[cycleId]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = CycleFeedInitialBalance;
|
||||
Reference in new issue
Block a user