hasRight("declarationtva", "declarationtva", "read")) {
http_response_code(403);
echo "Access denied";
exit;
}
// Get parameters
$declaration_id = GETPOST('declaration_id', 'int');
$ca3_line = GETPOST('ca3_line', 'alpha');
// Validate parameters
if (empty($declaration_id) || empty($ca3_line)) {
echo '
' . $langs->trans("ErrorMissingParameters") . '
';
exit;
}
// Initialize objects
$declarationtva = new DeclarationTVA($db);
$config = new DeclarationTVA_Config($db);
// Get declaration info
if (!$declarationtva->fetch($declaration_id)) {
echo '' . $langs->trans("DeclarationNotFound") . '
';
exit;
}
// Get detailed breakdown
$line_details = $declarationtva->getCA3LineDetails($declaration_id, $ca3_line);
// Debug information
if (empty($line_details)) {
echo '' . $langs->trans("NoDataFoundForLine") . '
';
echo 'Debug: CA-3 line: ' . $ca3_line . ', Declaration ID: ' . $declaration_id . '
';
exit;
}
// Debug: Show account count
if (empty($line_details['account_details'])) {
echo '' . $langs->trans("NoDataFoundForLine") . '
';
echo 'Debug: No account details found for line ' . $ca3_line . '
';
exit;
}
// Get CA-3 line definition
$ca3_definitions = $config->getCA3LineDefinitions();
$line_definition = isset($ca3_definitions[$ca3_line]) ? $ca3_definitions[$ca3_line] : null;
// Display account details table
echo '';
echo '';
echo '| ' . $langs->trans("AccountCode") . ' | ';
echo '' . $langs->trans("AccountLabel") . ' | ';
echo '' . $langs->trans("BaseAmount") . ' | ';
echo '' . $langs->trans("VATAmount") . ' | ';
echo '' . $langs->trans("TotalAmount") . ' | ';
echo '' . $langs->trans("MappingType") . ' | ';
echo '
';
$total_base = 0;
$total_vat = 0;
$total_amount = 0;
foreach ($line_details['account_details'] as $account) {
$total_base += $account['base_amount'];
$total_vat += $account['vat_amount'];
$total_amount += $account['total_amount'];
echo '';
echo '| ' . $account['account_code'] . ' | ';
echo '' . $account['account_label'] . ' | ';
echo '' . price($account['base_amount']) . ' | ';
echo '' . price($account['vat_amount']) . ' | ';
echo '' . price($account['total_amount']) . ' | ';
echo '' . $account['mapping_type'] . ' | ';
echo '
';
}
// Totals row
echo '';
echo '| ' . $langs->trans("Total") . ' | ';
echo '' . price($total_base) . ' | ';
echo '' . price($total_vat) . ' | ';
echo '' . price($total_amount) . ' | ';
echo ' | ';
echo '
';
echo '
';
// Additional info if calculated line exists
if ($line_details['calculated_line']) {
echo '';
echo '' . $langs->trans("Note") . ': ';
echo $langs->trans("CalculatedLineNote");
if (!empty($line_details['calculated_line']->line_label)) {
echo '
' . $line_details['calculated_line']->line_label . '';
}
echo '
';
}
// Summary info
echo '';
echo '' . $langs->trans("Summary") . ': ';
echo $langs->trans("AccountCount") . ': ' . $line_details['account_count'] . ' | ';
echo $langs->trans("Period") . ': ' . dol_print_date($line_details['start_date'], 'day') . ' - ' . dol_print_date($line_details['end_date'], 'day');
echo '
';
?>