Autor Tema: Ayuda para corte de caja  (Leído 12254 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado expecimen

  • Usuario Junior
  • **
  • Mensajes: 56
  • Puntuación: 1
  • Sexo: Masculino
    • Ver Perfil
    • Asociación Cooperativa Kodama Tecnologia, c.a.
Ayuda para corte de caja
« : 17 de septiembre de 2010, 05:16:54 am »
Hola todos he estado desarrollando un sistema de registro y cuenta en php y mysql todo muy bien he hecho registro y todo funciona muy bien.. pero ahora resulta que me están pidiendo que todo lo registrado tenga que hacer un corte o arqueo de caja es decir que  le muestre los registro y totales que se ha hecho por fechas  :o  :-X  :'(  y bueno allí si me tranque por no se que funciones utilizar para poder hacer esto si alguien me podría aconsejar o ponerme algún ejemplo por que tampoco es que soy un experto por que lo he hecho han sido registros y pues eso no es tan difícil.

el corte o arqueo de caja se tendría que realizar así:

Fecha uno al Fecha dos, luego tendría que mostrar todo los registros que se hicieron durante esas fechas.

Fechas | registro | cancelo
fecha1---nombre1----1.00Bsf
fecha2---nombre2----1.00Bsf
fecha3---nombre3----1.00Bsf
fecha4---nombre4----1.00Bsf

Total: 4.00Bsf

Bueno no se di me di a entender les agradecería de mucho su ayuda

Desconectado Carlos Belisario

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 263
  • Puntuación: 17
  • Sexo: Masculino
  • software lover
    • Ver Perfil
Re:Ayuda para corte de caja
« Respuesta #1 : 17 de septiembre de 2010, 09:04:18 am »
bueno si lo tienes en una base de datos puedes hacer un between algo asi
Código: [Seleccionar]
SELECT fechas,registros,cancelo,sum(cancelo) as total FROM tabla WHERE fechas BETWEEN 'fecha1' and 'fecha2';
ahi estan los campos y te coloque una funcion para que te sumara lo que cancelo y lo tengas completo como un campo para que muestres el total espero que sea lo que buscas suerte

Desconectado expecimen

  • Usuario Junior
  • **
  • Mensajes: 56
  • Puntuación: 1
  • Sexo: Masculino
    • Ver Perfil
    • Asociación Cooperativa Kodama Tecnologia, c.a.
Re:Ayuda para corte de caja
« Respuesta #2 : 17 de septiembre de 2010, 02:14:05 pm »
bueno si lo tienes en una base de datos puedes hacer un between algo asi
Código: [Seleccionar]
SELECT fechas,registros,cancelo,sum(cancelo) as total FROM tabla WHERE fechas BETWEEN 'fecha1' and 'fecha2';
ahi estan los campos y te coloque una funcion para que te sumara lo que cancelo y lo tengas completo como un campo para que muestres el total espero que sea lo que buscas suerte

Hoooo gracias carlos_belisario voy a probra lo que me dejaste y te digo como me fue..

Desconectado expecimen

  • Usuario Junior
  • **
  • Mensajes: 56
  • Puntuación: 1
  • Sexo: Masculino
    • Ver Perfil
    • Asociación Cooperativa Kodama Tecnologia, c.a.
Re:Ayuda para corte de caja
« Respuesta #3 : 17 de septiembre de 2010, 09:38:46 pm »
Tengo estas dos paginas php1 que es donde uno coloca las fechas a buscar:

los datos de mi tabla SQl son:

- Id
- Npadron
- Nombres
- Total
- Fecha


<
Código: [Seleccionar]
html>

<head>
<meta http-equiv="Content-Language" content="es-ve">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>FECHA 1</title>
</head>

<body>

<table border="0" width="100%" id="table1">
<tr>
<td>
<form method="POST" name="fechas" action="fechap2.php">
<table border="0" width="100%" id="table2" cellspacing="1">
<tr>
<td>FECHA 1</td>
<td>FECHA2</td>
</tr>
<tr>
<td><input type="text" name="Fecha1" size="20"></td>
<td><input type="text" name="Fecha2" size="20"></td>
</tr>
</table>
<p><input type="submit" value="Enviar" name="B1"></p>
</form>
</td>
</tr>
</table>

</body>

</html>

y php2 que es donde da el resultado la búsqueda:

Código: [Seleccionar]
<?php
require_once(&#39;config.php&#39;);
?>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Pagina nueva 1</title>
</head>

<body>

<table border="0" width="100%" id="table1" cellspacing="1">
    <tr>
        <td colspan="3" height="58">
        &nbsp;</td>
    </tr>
    <tr>
        <td colspan="3">
        <p align="center">
                                                        <font face="Arial" style="font-size: 11pt">
<?
$conexio = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
mysql_select_db (DB_DATABASE, $conexio) OR die ("No se puede conectar");
$sql="SELECT * FROM csolvencia fecha BETWEEN 'fecha1' and 'fecha2' ORDER BY id ASC";
$result=mysql_query($sql,$conexio);

if ($row= mysql_fetch_array($result))
{
echo "<TABLE BORDER='1' cellspacing='0' cellspacing='0' bordercolor='000000' width='100%'>";
echo "<TR><TD align='center' bgcolor='C0C0C0'>
        <font size='2' face='Verdana'><b>PLANILLA</b></font></TD><TD align='center' bgcolor='C0C0C0'>
                <font size='2' face='Verdana'><b>PADRON</b></font></TD><TD align='center' bgcolor='C0C0C0'>
        <font size='2' face='Verdana'><b>TOTAL Bs.</b></font></TD><TD align='center' bgcolor='C0C0C0'>
        <font size='2' face='Verdana'><b>FECHA</b></font></TD></TR>";
DO
{
echo "<TR><TD align='center'>
        <font size='2' face='Verdana' >".$row["Inicial"]."".$row["id"]." </font></TD>
                <TD align='center'><font size='2' face='Verdana'>".$row["Npadron"]."</font></TD>
        <TD align='center'><font size='2' face='Verdana'>".$row["total"]."</font></TD>
        <TD align='center'><font size='2' face='Verdana'>".$row["Fecha"]."</font></TD></TR>";
}
WHILE ($row=mysql_fetch_array($result));
echo "</TABLE>";
}
?>
</font></td>
    </tr>
    <tr>
        <td width="50">&nbsp;</td>
        <td>
                                                        &nbsp;</td>
        <td>&nbsp;</td>
    </tr>
    <tr>
        <td width="50">TOTAL</td>
        <td>
                                                        <font face="Tahoma" style="font-size: 11pt">
        </font></td>
        <td>&nbsp;</td>
    </tr>
    <tr>
        <td width="50">&nbsp;</td>
        <td>
        <font size="2" face="Tahoma" style="font-size: 11pt"> </font></td>
        <td>&nbsp;</td>
    </tr>
</table>

</body>

</html>

pero me da el siguiente error:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\AppServ\www\sedemat\prueba\fechap2.php on line 26

alguien me puede ayudar

Desconectado Carlos Belisario

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 263
  • Puntuación: 17
  • Sexo: Masculino
  • software lover
    • Ver Perfil
Re:Ayuda para corte de caja
« Respuesta #4 : 17 de septiembre de 2010, 09:41:06 pm »
la consulta que estas haciendo esta errada acostumbrate a depurar la consulta un ejemplo
Código: [Seleccionar]
$query=mysql_query(/*tu consulta*/) or die (mysql_error());
asi si tienes algun error de sintaxis mysql te dira cual es o si te falto un campo o algo el te dice prueba y comentas

Desconectado expecimen

  • Usuario Junior
  • **
  • Mensajes: 56
  • Puntuación: 1
  • Sexo: Masculino
    • Ver Perfil
    • Asociación Cooperativa Kodama Tecnologia, c.a.
Re:Ayuda para corte de caja
« Respuesta #5 : 17 de septiembre de 2010, 10:02:54 pm »
ok ya lo cambien pero a que no sabes que??? ahora me da como resultado tooooda la pagina en blanco osea nada ni siquiera las lineas del cuadro solo en blancura

Código: [Seleccionar]
<?
$conexio = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
mysql_select_db (DB_DATABASE, $conexio) OR die ("No se puede conectar");
$sql="SELECT id,Npadron,total FROM csolvencia WHERE fecha BETWEEN 'fecha1' and 'fecha2' ORDER BY id ASC";
$result=mysql_query($sql,$conexio) or die (mysql_error());

if ($row= mysql_fetch_array($result))
{
echo "<TABLE BORDER='1' cellspacing='0' cellspacing='0' bordercolor='000000' width='100%'>";
echo "<TR><TD align='center' bgcolor='C0C0C0'>
        <font size='2' face='Verdana'><b>PLANILLA</b></font></TD><TD align='center' bgcolor='C0C0C0'>
                <font size='2' face='Verdana'><b>PADRON</b></font></TD><TD align='center' bgcolor='C0C0C0'>
    <font size='2' face='Verdana'><b>TOTAL Bs.</b></font></TD><TD align='center' bgcolor='C0C0C0'>
<font size='2' face='Verdana'><b>FECHA</b></font></TD></TR>";
DO
{
echo "<TR><TD align='center'>
        <font size='2' face='Verdana' >".$row["Inicial"]."".$row["id"]." </font></TD>
                <TD align='center'><font size='2' face='Verdana'>".$row["Npadron"]."</font></TD>
        <TD align='center'><font size='2' face='Verdana'>".$row["total"]."</font></TD>
        <TD align='center'><font size='2' face='Verdana'>".$row["Fecha"]."</font></TD></TR>";
}
WHILE ($row=mysql_fetch_array($result));
echo "</TABLE>";
}
?>

Desconectado Carlos Belisario

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 263
  • Puntuación: 17
  • Sexo: Masculino
  • software lover
    • Ver Perfil
Re:Ayuda para corte de caja
« Respuesta #6 : 17 de septiembre de 2010, 10:08:08 pm »
Cita
$sql="SELECT id,Npadron,total FROM csolvencia WHERE fecha BETWEEN 'fecha1' and 'fecha2' ORDER BY id ASC";
hermano fecha1 y fecha2 son ejemplos que yo te ponia ahi debe de ir tus fechas o variables que la contengan por cierto en este formato aaaa-mm-dd que es año-mes-dia para que te la pueda comparar otra cosa <? esto no es muy recomendable ya que muchos servidores tienen desabilitado el short tag de php por eso siempre es mejor usario completo asi que cambia esto <? por esto <?php pureba haciendo estos cambios y nos comentas

Desconectado expecimen

  • Usuario Junior
  • **
  • Mensajes: 56
  • Puntuación: 1
  • Sexo: Masculino
    • Ver Perfil
    • Asociación Cooperativa Kodama Tecnologia, c.a.
Re:Ayuda para corte de caja
« Respuesta #7 : 18 de septiembre de 2010, 01:45:27 pm »
hola ya solucione los problemas que tenia y como hacerle el llamado desde unos text y el cual quedo asi:

Código: [Seleccionar]
$sql="SELECT * FROM csolvencia WHERE Fecha1 BETWEEN ('$Fecha1') and ('$Fecha2') ORDER BY id,Fecha1 DESC";

ahora mi otro problemas es como hacer que sume todo los totales que están en mi celda TOTAL de mi BD aparezca según las fecha que hice llamado, Carlos Belisario me recomendó este código c
Cita
ancelo,sum(cancelo) as total
voy a probarlos a ver como le hago para que me muestre el total
« Última Modificación: 18 de septiembre de 2010, 01:47:33 pm por expecimen »

Desconectado Carlos Belisario

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 263
  • Puntuación: 17
  • Sexo: Masculino
  • software lover
    • Ver Perfil
Re:Ayuda para corte de caja
« Respuesta #8 : 18 de septiembre de 2010, 02:56:02 pm »
bueno esa es la funcion para sumar de mysql si lo vas a hacer en un query debes indicarlo te quedaria algo asi
[CODIGO]
$sql="SELECT campo1,campo2,sum(campo2) as total FROM csolvencia WHERE Fecha1 BETWEEN ('$Fecha1') and ('$Fecha2') ORDER BY id,Fecha1 DESC";
[/CODIGO]
donde campo1,campo2 son los campos de tu tabla de base de datos, no es recomendable que coloques el * en tus consultas sino que coloques los campos que vas a utilizar y si en este caso vas a usar el sum para que te devuelva el total tienes que indicar cual es el campo que va a sumar por eso el ejemplo coloca tus campos que vayas a mostrar y has el sum del que lo tengas que hacer y nos cuentas

Desconectado expecimen

  • Usuario Junior
  • **
  • Mensajes: 56
  • Puntuación: 1
  • Sexo: Masculino
    • Ver Perfil
    • Asociación Cooperativa Kodama Tecnologia, c.a.
Re:Ayuda para corte de caja
« Respuesta #9 : 18 de septiembre de 2010, 03:18:30 pm »
bueno esa es la funcion para sumar de mysql si lo vas a hacer en un query debes indicarlo te quedaria algo asi
[CODIGO]
$sql="SELECT campo1,campo2,sum(campo2) as total FROM csolvencia WHERE Fecha1 BETWEEN ('$Fecha1') and ('$Fecha2') ORDER BY id,Fecha1 DESC";
[/CODIGO]
donde campo1,campo2 son los campos de tu tabla de base de datos, no es recomendable que coloques el * en tus consultas sino que coloques los campos que vas a utilizar y si en este caso vas a usar el sum para que te devuelva el total tienes que indicar cual es el campo que va a sumar por eso el ejemplo coloca tus campos que vayas a mostrar y has el sum del que lo tengas que hacer y nos cuentas


Carlos según tus instrucciones he hice lo siguiente: cambie el * por los campos o columnas que voy a utilizar en mi tabla ademas agregue el código SUM(total) as total como indicaste ademas de eso coloque aparte en un celda el código <?php echo $total;?> tu sabes para que me mostrara o imprimiera el total en general quedo así:

Cita
$sql="SELECT Inicial,id,Npadron,Fecha1,total,SUM(total) as total FROM csolvencia WHERE Fecha1 BETWEEN ('$Fecha1') and ('$Fecha2') ORDER BY id,Fecha1 DESC";


Pero hacer la consulta me sale el siguiente error:

Cita
Mixing of GROUP columns (MIN(),MAX(),COUNT(),...) with no GROUP columns is illegal if there is no GROUP BY clause

Desconectado Carlos Belisario

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 263
  • Puntuación: 17
  • Sexo: Masculino
  • software lover
    • Ver Perfil
Re:Ayuda para corte de caja
« Respuesta #10 : 18 de septiembre de 2010, 03:41:21 pm »
bueno noc que pueda estarte pasando pero has esta prueba agregale el group by a ver algo asi
Código: [Seleccionar]
$sql="SELECT Inicial,id,Npadron,Fecha1,total,SUM(total) as total FROM csolvencia WHERE Fecha1 BETWEEN ('$Fecha1') and ('$Fecha2') GROUP BY id ORDER BY id,Fecha1 DESC";
a ver si te funciona pero es extraño ya que lo hice y me mostro el total pero bueno revisa a ver

Desconectado expecimen

  • Usuario Junior
  • **
  • Mensajes: 56
  • Puntuación: 1
  • Sexo: Masculino
    • Ver Perfil
    • Asociación Cooperativa Kodama Tecnologia, c.a.
Re:Ayuda para corte de caja
« Respuesta #11 : 18 de septiembre de 2010, 04:32:33 pm »
bueno noc que pueda estarte pasando pero has esta prueba agregale el group by a ver algo asi
Código: [Seleccionar]
$sql="SELECT Inicial,id,Npadron,Fecha1,total,SUM(total) as total FROM csolvencia WHERE Fecha1 BETWEEN ('$Fecha1') and ('$Fecha2') GROUP BY id ORDER BY id,Fecha1 DESC";
a ver si te funciona pero es extraño ya que lo hice y me mostro el total pero bueno revisa a ver

Agregue el GROUP BY y volvió a funcionar como antes pero aun sin mostrarme el total en el llamado impreso <?php echo $total;?>

Aquí te dejo un captura de pantalla:



Cita
<?php
$conexio = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
mysql_select_db (DB_DATABASE, $conexio) OR die ("No se puede conectar");

$sql="SELECT Inicial,id,Npadron,Fecha1,total,SUM(total) as total FROM csolvencia WHERE Fecha1 BETWEEN ('$Fecha1') and ('$Fecha2') GROUP BY id ORDER BY id,Fecha1 DESC";
$result=mysql_query($sql,$conexio) or die (mysql_error());
if ($row= mysql_fetch_array($result))
{
echo "<TABLE BORDER='1' cellspacing='0' cellspacing='0' bordercolor='000000' width='100%'>";
echo "<TR><TD align='center' bgcolor='C0C0C0'>
        <font size='2' face='Verdana'><b>PLANILLA</b></font></TD><TD align='center' bgcolor='C0C0C0'>
                <font size='2' face='Verdana'><b>PADRON</b></font></TD><TD align='center' bgcolor='C0C0C0'>
       <font size='2' face='Verdana'><b>TOTAL Bs.</b></font></TD><TD align='center' bgcolor='C0C0C0'>
      <font size='2' face='Verdana'><b>FECHA</b></font></TD></TR>";
DO
{
echo "<TR><TD align='center'>
        <font size='2' face='Verdana' >".$row["Inicial"]."".$row["id"]." </font></TD>
                <TD align='center'><font size='2' face='Verdana'>".$row["Npadron"]."</font></TD>
        <TD align='center'><font size='2' face='Verdana'>".$row["total"]."</font></TD>
        <TD align='center'><font size='2' face='Verdana'>".$row["Fecha1"]."</font></TD></TR>";
}
WHILE ($row=mysql_fetch_array($result));
echo "</TABLE>";
}
?>

Desconectado el_santo

  • Usuario Dedicado
  • ***
  • Mensajes: 225
  • Puntuación: 9
  • Sexo: Masculino
    • Ver Perfil
Re:Ayuda para corte de caja
« Respuesta #12 : 18 de septiembre de 2010, 06:43:25 pm »
Agregue el GROUP BY y volvió a funcionar como antes pero aun sin mostrarme el total en el llamado impreso <?php echo $total;?>

Aquí te dejo un captura de pantalla:



Amigo podrias postear las estructura exacta de tu tabla?

asi matamo ese pajaro de un tiro.
Yo hablo php........!!!

Desconectado expecimen

  • Usuario Junior
  • **
  • Mensajes: 56
  • Puntuación: 1
  • Sexo: Masculino
    • Ver Perfil
    • Asociación Cooperativa Kodama Tecnologia, c.a.
Re:Ayuda para corte de caja
« Respuesta #13 : 18 de septiembre de 2010, 08:26:06 pm »
Amigo podrias postear las estructura exacta de tu tabla?

asi matamo ese pajaro de un tiro.

Saludos bueno primero los PHP ya están posteados y segundo si te refieres a la estructura de la tabla que tengo e mi Mysql es esta:

id
Inicial
Npadron
Nombre
Apellido
Direccion
total
Fecha1

no se si necesitas otra informacion

Desconectado Carlos Belisario

  • Moderador Global
  • Fanático
  • *****
  • Mensajes: 263
  • Puntuación: 17
  • Sexo: Masculino
  • software lover
    • Ver Perfil
Re:Ayuda para corte de caja
« Respuesta #14 : 18 de septiembre de 2010, 08:37:41 pm »
bueno amigo creo que fue error mio al plantearte el alias para el sum ya que tienes un campo que se llama total y el alias de la suma tambien lo llamas total, cambia tu consulta y colocalo asi
Código: [Seleccionar]
$sql="SELECT Inicial,id,Npadron,Fecha1,total,SUM(total) as total_suma FROM csolvencia WHERE Fecha1 BETWEEN ('$Fecha1') and ('$Fecha2') GROUP BY id ORDER BY id,Fecha1 DESC";
si te fijas el alias d la suma ahora se llama total sumam cuando kieras hacer referencia a este llamalo por ese alias pruebalo y nos cuentas saludos