Programar nuevo codigo para que muestre la diferencia en monto para la planilla del CRM de transporte
Desde
Enero 16, 2025 10:00
hasta Enero 16, 2025 11:00
En Oficinas OYV
Publicado por
Rodrigo Galvez
Categorías: Programación CRM
Hits: 13
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 . "
";
"; echo "TOTAL MONTO Diferencia: $ " . $formattedDiferencia . "
"; // Para concatenar: $directoryLayout .= "TOTAL MONTO Tarifa Recorrido: $ " . $formattedTarifa . "
"; $directoryLayout .= "TOTAL MONTO Diferencia: $ " . $formattedDiferencia . "
";
