hasRight("declarationtva", "declarationtva", "read")) {
accessforbidden();
}
// Get parameters
$declaration_id = GETPOST('declaration_id', 'int');
$ca3_line = GETPOST('ca3_line', 'alpha');
// Validate parameters
if (empty($declaration_id) || empty($ca3_line)) {
setEventMessages($langs->trans("ErrorMissingParameters"), null, 'errors');
header("Location: declarationtvaindex.php");
exit;
}
// Initialize objects
$declarationtva = new DeclarationTVA($db);
$config = new DeclarationTVA_Config($db);
// Get declaration info
if (!$declarationtva->fetch($declaration_id)) {
setEventMessages($langs->trans("DeclarationNotFound"), null, 'errors');
header("Location: declarationtvaindex.php");
exit;
}
// Get detailed breakdown
$line_details = $declarationtva->getCA3LineDetails($declaration_id, $ca3_line);
if (empty($line_details)) {
setEventMessages($langs->trans("NoDataFoundForLine"), null, 'errors');
header("Location: declarationtva_view.php?id=" . $declaration_id);
exit;
}
// Get CA-3 line definition
$ca3_definitions = $config->getCA3LineDefinitions();
$line_definition = isset($ca3_definitions[$ca3_line]) ? $ca3_definitions[$ca3_line] : null;
// Page title
$title = $langs->trans("CA3LineDetails") . " - " . $ca3_line;
if ($line_definition) {
$title .= " - " . $line_definition['label'];
}
// Load page header
llxHeader('', $title);
// Page header
print load_fiche_titre($title, '', 'fa-list-alt');
// Breadcrumb
print '
';
// Declaration info
print '';
print '
';
print '
';
print '';
print '| ' . $langs->trans("DeclarationInfo") . ' | ';
print '
';
print '';
print '| ' . $langs->trans("DeclarationNumber") . ' | ';
print '' . $declarationtva->declaration_number . ' | ';
print '
';
print '';
print '| ' . $langs->trans("Period") . ' | ';
print '' . dol_print_date($declarationtva->start_date, 'day') . ' - ' . dol_print_date($declarationtva->end_date, 'day') . ' | ';
print '
';
print '';
print '| ' . $langs->trans("CA3Line") . ' | ';
print '' . $ca3_line . ' | ';
print '
';
if ($line_definition) {
print '';
print '| ' . $langs->trans("Description") . ' | ';
print '' . $line_definition['label'] . ' | ';
print '
';
}
print '
';
print '
';
print '
';
print '
';
print '';
print '| ' . $langs->trans("LineSummary") . ' | ';
print '
';
print '';
print '| ' . $langs->trans("AccountCount") . ' | ';
print '' . $line_details['account_count'] . ' | ';
print '
';
if ($line_details['calculated_line']) {
print '';
print '| ' . $langs->trans("CalculatedTotal") . ' | ';
print '' . price($line_details['calculated_line']->total_amount) . ' | ';
print '
';
}
print '
';
print '
';
print '
';
// Account details table
print '';
print '
';
print '';
print '| ' . $langs->trans("AccountCode") . ' | ';
print '' . $langs->trans("AccountLabel") . ' | ';
print '' . $langs->trans("BaseAmount") . ' | ';
print '' . $langs->trans("VATAmount") . ' | ';
print '' . $langs->trans("TotalAmount") . ' | ';
print '' . $langs->trans("MappingType") . ' | ';
print '
';
$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'];
print '';
print '| ' . $account['account_code'] . ' | ';
print '' . $account['account_label'] . ' | ';
print '' . price($account['base_amount']) . ' | ';
print '' . price($account['vat_amount']) . ' | ';
print '' . price($account['total_amount']) . ' | ';
print '' . $account['mapping_type'] . ' | ';
print '
';
}
// Totals row
print '';
print '| ' . $langs->trans("Total") . ' | ';
print '' . price($total_base) . ' | ';
print '' . price($total_vat) . ' | ';
print '' . price($total_amount) . ' | ';
print ' | ';
print '
';
print '
';
print '
';
// Additional info if calculated line exists
if ($line_details['calculated_line']) {
print '';
print '' . $langs->trans("Note") . ': ';
print $langs->trans("CalculatedLineNote");
if (!empty($line_details['calculated_line']->line_label)) {
print '
' . $line_details['calculated_line']->line_label . '';
}
print '
';
}
// Close page
llxFooter();
?>