Cita:
Iniciado por marianomartelli Buenos días,
Tengo el siguiente problema el que no se solucionarlo y no se si con php o javascript.
Tengo un programa que muestra en pantalla todas las facturas ingresadas, esto lo hace bien, lo que necesito es que cuando se realice una búsqueda, para una empresa en concreto, me de los totales de venta de esa empresa.
He puesto una sumatoria de total, que hace bien si muestra todas las facturas, pero al seleccionar un cliente, la sumatoria va mal.
Aquí el codigo
Código HTML:
Ver original<?php
include ('conexion.php');
$con=conectar();
$consulta="SELECT * FROM facturas ORDER by empresa";
$datos=mysqli_query($con, $consulta);
$total = 0;
$empresa="";
?>
<!DOCTYPE html>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/>
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximun-scale=1.0, minimum-scale=1.0"> <link rel="stylesheet" href="css/bootstrap.min.css"> <link rel="stylesheet" href="css/bootstrap-theme.css"> <link rel="stylesheet" href="css/dataTables.bootstrap.min.css"> <link rel="stylesheet" href="css/bootstrap-glyphicons.css"> <link rel="stylesheet" href="css/jquery.dataTables.min.css">
$(document).ready(function () {
$('#mitabla').DataTable({
"order": [[2, "asc"]],
"language":{
"lengthMenu": "Mostrar _MENU_ registros por pagina",
"info": "Mostrando pagina _PAGE_ de _PAGES_",
"infoEmpty": "No hay registros disponibles",
"infoFiltered": "(filtrada de _MAX_ registros)",
"loadingRecords": "Cargando...",
"processing": "Procesando...",
"search": "Buscar:",
"zeroRecords": "No se encontraron registros coincidentes",
"paginate": {
"next": "Siguiente",
"previous": "Anterior"
},
}
});
});
<title>Listado Facturas x clientes x pantalla
</title>
<h2 style="text-align: center;">Listado de Facturas x Cliente
</h2>
<a href="index.php" class="btn btn-info" role="button">Volver
</a>
<div class="row table-responsive"> <table class="display" id="mitabla">
<?php while($row = mysqli_fetch_array($datos))
{
if( $row['empresa'] != '$empresa') {
$total = $total+$row['total'];
$valorgral= $total;
$valorgral=number_format($valorgral, 2, ',', '.');
?>
<td><?php echo $row['id']; ?></td> <td align="center"><?php echo $row['numfac']; ?></td> <td><?php echo $row['empresa']; ?></td> <td ><?php echo $row['fechafac']; ?></td> <td><?php echo $row['total']; ?></td> <td><?php echo $valorgral; ?></td> <td><a href="modifpos1.php?id=<?php echo $row['id'];?>">
<img src='iconos/44.png' /></a></td> <td><a href="elimpos1.php?id=<?php echo $row['id'];?>">
<img align=center src='iconos/eliminar.png' /></a></td>
<?php }}?>
Hola a todos,
Ya solucioné el problema de los totales, ahora quiero agregar que me muestre el texto en Español y me muestre los totales con decimales, tengo el codigo, pero cada vez que lo quiero agregar me da error.
Este es el codigo que me muestra los totales y funciona
Código Javascript
:
Ver original<script>
$(document).ready(function() {
$('#mitabla').DataTable( {
"footerCallback": function ( row, data, start, end, display ) {
var api = this.api(), data;
// Remove the formatting to get integer data for summation
var intVal = function ( i ) {
return typeof i === 'string' ?
i.replace(/[\$,]/g, '')*1 :
typeof i === 'number' ?
i : 0;
};
// Total over all pages
total = api
.column( 4 )
.data()
.reduce( function (a, b) {
return intVal(a) + intVal(b);
}, 0 );
// Total over this page
pageTotal = api
.column( 4, { page: 'current'} )
.data()
.reduce( function (a, b) {
return intVal(a) + intVal(b);
}, 0 );
// Update footer
$( api.column( 4 ).footer() ).html(
'$'+pageTotal +' ( €'+ total +' total)'
);
}
} );
} );
</script>
Ahora quiero agregar este otro codigo en esta tabla
Código Javascript
:
Ver original"order": [[2, "asc"]],
"language":{
"decimal": ",",
"thousands": ".",
"lengthMenu": "Mostrar _MENU_ registros por pagina",
"info": "Mostrando pagina _PAGE_ de _PAGES_",
"infoEmpty": "No hay registros disponibles",
"infoFiltered": "(filtrada de _MAX_ registros)",
"loadingRecords": "Cargando...",
"processing": "Procesando...",
"search": "Buscar:",
"zeroRecords": "No se encontraron registros coincidentes",
"paginate": {
"next": "Siguiente",
"previous": "Anterior"
},
}
Si porfavor alguien me puede echar una mano donde debo agregar este código
Gracias y saludos
Buenos días Arturo,
Gracias por responder, si, como bien dices me entrega los totales pero con más de dos decimales. ejem €1135286.5299999986 total. Ahora bien, data tables tiene la forma de convertir esa parte en decimales, o eso creo.
Agregando "language":{
"decimal": ",",
"thousands": ".",
Entonces, lo que quiero agregar al primer codigo que he puesto es eso + todo esto
Que cambia el lenguaje de Inglés a Español
"lengthMenu": "Mostrar _MENU_ registros por pagina",
"info": "Mostrando pagina _PAGE_ de _PAGES_",
"infoEmpty": "No hay registros disponibles",
"infoFiltered": "(filtrada de _MAX_ registros)",
"loadingRecords": "Cargando...",
"processing": "Procesando...",
"search": "Buscar:",
"zeroRecords": "No se encontraron registros coincidentes",
"paginate": {
"next": "Siguiente",
"previous": "Anterior"
},
}
No conozco Javascript pero trato de hacer lo que puedo, y no se como hacer para agregar todo este codigo a la primera parte para que funcione.
De antemano gracias de nuevo