function cashMatch($val, $values)
{
    if ($val != $values['CLOSECASH']) {
        return "<span style=\"color:#b00;\">" . \i18nCurr($val) . "</span>";
    }
    return $val;
}
$report->addFilter("DATESTART", "\\Pasteque\\stdtimefstr");
$report->addFilter("DATESTART", "\\i18nDatetime");
$report->addFilter("DATEEND", "\\Pasteque\\stdtimefstr");
$report->addFilter("DATEEND", "\\i18nDatetime");
$report->setVisualFilter("OPENCASH", "\\i18nCurr", \Pasteque\Report::DISP_USER);
$report->setVisualFilter("OPENCASH", "\\i18nFlt", \Pasteque\Report::DISP_CSV);
$report->setVisualFilter("CLOSECASH", "\\i18nCurr", \Pasteque\Report::DISP_USER);
$report->setVisualFilter("CLOSECASH", "\\i18nFlt", \Pasteque\Report::DISP_CSV);
$report->setVisualFilter("EXPECTEDCASH", "\\BaseCashes\\cashMatch", \Pasteque\Report::DISP_USER);
$report->setVisualFilter("EXPECTEDCASH", "\\i18nFlt", \Pasteque\Report::DISP_CSV);
$report->setVisualFilter("SALES", "\\i18nCurr", \Pasteque\Report::DISP_USER);
$report->setVisualFilter("SALES", "\\i18nFlt", \Pasteque\Report::DISP_CSV);
$report->setVisualFilter("SALESVAT", "\\i18nCurr", \Pasteque\Report::DISP_USER);
$report->setVisualFilter("SALESVAT", "\\i18nFlt", \Pasteque\Report::DISP_CSV);
$report->setMergedVisualFilter(0, "\\i18nCurr", \Pasteque\Report::DISP_USER);
$report->setMergedVisualFilter(0, "\\i18nFlt", \Pasteque\Report::DISP_CSV);
$report->addMergedHeaderFilter(0, "\\i18n");
$report->addMergedFilter(1, "\\BaseCashes\\vatI18nCurr");
function vatI18nCurr($input)
{
    $amounts = explode("/", $input);
    return \i18nCurr($amounts[0]) . " / " . \i18nCurr($amounts[1]);
}
\Pasteque\register_report($report);