Programar nuevo codigo para que muestre la diferencia en monto para la planilla del CRM de transporte. Se programo el codigo para que muestre los datos en la parte superior de la planilla. Este es el codigo:
$db = JFactory::getDBO();
$query = $db->getQuery(true);
// Subconsulta para la suma de 'Tarifa-recorrido'
$subqueryTarifa = $db->getQuery(true);
$subqueryTarifa->select('SUM(sv.FieldValue)')
->from($db->quoteName('#__rsform_submission_values', 'sv'))
->innerJoin($db->quoteName('#__rsform_submissions', 's') . ' ON sv.SubmissionId = s.SubmissionId')
->where($db->quoteName('sv.FieldName') . ' = ' . $db->quote('Tarifa-recorrido'))
->where($db->quoteName('s.FormId') . ' = ' . $db->quote(78));
// Subconsulta para la suma de 'Diferencia'
$subqueryDiferencia = $db->getQuery(true);
$subqueryDiferencia->select('SUM(sv.FieldValue)')
->from($db->quoteName('#__rsform_submission_values', 'sv'))
->innerJoin($db->quoteName('#__rsform_submissions', 's') . ' ON sv.SubmissionId = s.SubmissionId')
->where($db->quoteName('sv.FieldName') . ' = ' . $db->quote('Diferencia'))
->where($db->quoteName('s.FormId') . ' = ' . $db->quote(78));
// Consulta principal con COALESCE()
$query->select('COALESCE((' . $subqueryTarifa . '), 0) AS TarifaRecorrido, COALESCE((' . $subqueryDiferencia . '), 0) AS Diferencia');
$db->setQuery($query);
try {
$result = $db->loadAssoc();
// Manejo del resultado: asigna 0 si la consulta no devuelve nada.
$tarifaRecorrido = isset($result['TarifaRecorrido']) ? $result['TarifaRecorrido'] : 0;
$diferencia = isset($result['Diferencia']) ? $result['Diferencia'] : 0;
// Multiplicar por 1000 SI ES NECESARIO (basado en la depuración anterior)
$diferencia = $diferencia * 1000; // <- AQUI LA MULTIPLICACION
} catch (RuntimeException $e) {
JLog::add($e->getMessage(), JLog::ERROR, 'com_mycomponent');
JError::raiseError(500, JText::_('COM_MYCOMPONENT_ERROR_DATABASE'));
return;
}
$formattedTarifa = number_format($tarifaRecorrido, 2, ',', '.');
$formattedDiferencia = intval($diferencia);
echo "TOTAL MONTO Tarifa Recorrido: $ " . $formattedTarifa . " ";
echo "TOTAL MONTO Diferencia: $ " . $formattedDiferencia . " ";
// Para concatenar:
$directoryLayout .= "TOTAL MONTO Tarifa Recorrido: $ " . $formattedTarifa . " ";
$directoryLayout .= "TOTAL MONTO Diferencia: $ " . $formattedDiferencia . " ";