Fix bank journal entries to use Bank journal instead of OD

- Add journal_code parameter to saveAccountingEntries method
- Use Bank journal code for bank entries instead of OD journal
- Get bank journal code from configuration (defaults to 'BAN')
- Fix bank entries to appear in correct journal instead of OD journal
This commit is contained in:
Frank Cools 2025-10-09 01:01:28 +02:00
parent 44b0cfa249
commit da5820e524

View File

@ -1101,8 +1101,12 @@ class DeclarationTVA
); );
} }
// Get bank journal code from configuration
$bank_journal_code = $bank_config['bank_journal'] ?? 'BAN';
error_log("DEBUG: Using bank journal code: " . $bank_journal_code);
// Create accounting entries in Dolibarr // Create accounting entries in Dolibarr
return $this->saveAccountingEntries($entries, $declaration, $user); return $this->saveAccountingEntries($entries, $declaration, $user, $bank_journal_code);
} }
/** /**
@ -1243,9 +1247,9 @@ class DeclarationTVA
* @param object $user User object * @param object $user User object
* @return bool Success * @return bool Success
*/ */
private function saveAccountingEntries($entries, $declaration, $user) private function saveAccountingEntries($entries, $declaration, $user, $journal_code = 'OD')
{ {
error_log("DEBUG: saveAccountingEntries called with user: " . ($user ? "VALID" : "NULL")); error_log("DEBUG: saveAccountingEntries called with user: " . ($user ? "VALID" : "NULL") . ", journal: " . $journal_code);
if (empty($entries)) { if (empty($entries)) {
return true; // No entries to save return true; // No entries to save
@ -1256,7 +1260,7 @@ class DeclarationTVA
// Start transaction // Start transaction
$this->db->begin(); $this->db->begin();
error_log("DEBUG: Database transaction started"); error_log("DEBUG: Database transaction started for journal: " . $journal_code);
try { try {
foreach ($entries as $entry) { foreach ($entries as $entry) {
@ -1280,7 +1284,7 @@ class DeclarationTVA
$debit->doc_date = dol_mktime(0, 0, 0, date('m', strtotime($declaration->end_date)), date('d', strtotime($declaration->end_date)), date('Y', strtotime($declaration->end_date))); $debit->doc_date = dol_mktime(0, 0, 0, date('m', strtotime($declaration->end_date)), date('d', strtotime($declaration->end_date)), date('Y', strtotime($declaration->end_date)));
$debit->doc_ref = $declaration->declaration_name; $debit->doc_ref = $declaration->declaration_name;
$debit->ref = $declaration->declaration_name; $debit->ref = $declaration->declaration_name;
$debit->code_journal = 'OD'; $debit->code_journal = $journal_code;
$debit->numero_compte = $entry['account_code']; $debit->numero_compte = $entry['account_code'];
$debit->label_compte = $entry['account_label']; $debit->label_compte = $entry['account_label'];
$debit->montant = price2num($debit_amount, 'MT'); $debit->montant = price2num($debit_amount, 'MT');
@ -1330,7 +1334,7 @@ class DeclarationTVA
$credit->doc_date = dol_mktime(0, 0, 0, date('m', strtotime($declaration->end_date)), date('d', strtotime($declaration->end_date)), date('Y', strtotime($declaration->end_date))); $credit->doc_date = dol_mktime(0, 0, 0, date('m', strtotime($declaration->end_date)), date('d', strtotime($declaration->end_date)), date('Y', strtotime($declaration->end_date)));
$credit->doc_ref = $declaration->declaration_name; $credit->doc_ref = $declaration->declaration_name;
$credit->ref = $declaration->declaration_name; $credit->ref = $declaration->declaration_name;
$credit->code_journal = 'OD'; $credit->code_journal = $journal_code;
$credit->numero_compte = $entry['account_code']; $credit->numero_compte = $entry['account_code'];
$credit->label_compte = $entry['account_label']; $credit->label_compte = $entry['account_label'];
$credit->montant = price2num($credit_amount, 'MT'); $credit->montant = price2num($credit_amount, 'MT');