Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/04/2013, 07:12
Avatar de andres_15_
andres_15_
 
Fecha de Ingreso: septiembre-2008
Ubicación: Cali
Mensajes: 232
Antigüedad: 15 años, 7 meses
Puntos: 7
Como hacer una transaccion (si asi se llama)

Bueno, pues tengo una tabla de facturas, en la cual se pueden Anular alguna por algún evento que haya ocurrido, ahora lo que quiero es que al momento de anularse NO se elimine si no que se pase automáticamente a otra tabla. Les muestro mi tabla de ingresar facturas y anular facturas:

Validar facturas:

Código PHP:
<html>
<meta http-equiv="content-type" content="text/html charset=utf-8"/> 
<head>
    </head>
<body>
<?php

    
require ("../Conexion/conexion.php");

    if (
$_POST){

                    
$contrato=$_POST["contrato"];
                    
$factura=$_POST["nf"];
                    
$valorfactura=$_POST["vf"];
                    
$fecha=$_POST["fecha"];
                


                    

                    
$sql"select valor_contrato from contratos where numero_contrato='$contrato'"//se hace la consulta del valor del contrato para almacenarla despues con un while


                    
$sql2"select saldo from facturas where contrato= '$contrato' "// se hace la consulta del saldo para tambien almacenarla despues



                    




                    
$datos2 mysqli_query($con,$sql); //se conecta y se hace la consulta del contrato



                    
$datos3 mysqli_query($con,$sql2); //se conecta y se hace la consulta del saldo




                    
                    
while ($reg mysqli_fetch_array($datos2)) //traer el valor del contrato para despues comparar

                    
{
                        
$valor$reg["valor_contrato"]; //variable que contiene el valor del contrato 



                    
}

                    while (
$reg2 mysqli_fetch_array($datos3)) //trae el valor del saldo para comparar

                    
{

                        
$saldo$reg2["saldo"]; //variable con el valor del saldo

                        
                        
                    
}


                    


                    
                    

                    if (isset(
$saldo) and $saldo>0)
                    { 

                        
$resto$saldo-$valorfactura//se resta del saldo el valor de la factura
                         //una alerta en js

                        
$inserccion="insert into facturas (numero_factura,fecha_factura,contrato,valor_factura,saldo) 
                        values ('$factura','$fecha','$contrato','$valorfactura','$resto')"
// Se inserta en la tabla facturas


                        
if ($valorfactura>$saldo){
                            echo 
"<script> alert ('Error, el saldo es ".$saldo." y el pago es de ".$valorfactura."');</script>";
                            exit;
                        }

                        
$datos mysqli_query($con,$inserccion); //conexion e inserccion de la consulta

                        
if ($datos==0){
                            echo 
"<script> alert ('Error, ya existe un registro o no se puedo insertar uno nuevo') </script>";
                        }

                        if (
$datos==1){
                            echo 
"<script> alert ('Se ha hecho el pago de ".$valorfactura.", el contrato tiene un saldo de ".$resto."') </script>";
                        }

                            
                    }

                            if (empty(
$saldo) and is_null($saldo))

                            { 

                            
$resto2$valor-$valorfactura//se resta del valor del contrato el valor de la factura



                            
$inserccion2="insert into facturas (numero_factura,fecha_factura,contrato,valor_factura,saldo) 
                            values ('$factura','$fecha','$contrato','$valorfactura','$resto2')"
//se inserta la consulta

                            
echo "<script> alert ('Se ha hecho el pago de ".$valorfactura.", el saldo es ".$resto2.".');</script>";



                                
                            
$datos4 mysqli_query($con,$inserccion2);
                            }    
                    

                    elseif (!
is_null($saldo) and $saldo==0){
                        echo 
"<script> alert('¡El saldo está en 0!');</script>";    
                    }
                }
    
?>
</body>
<html>
Y esta es la de Anular facturas, OJO no pueden quedar eliminadas como por el momento lo estoy haciendo, solo tienen que quitarse de la tabla facturas y pasar a una tabla de facturas anuladas

Código PHP:
<html>
<head>
    <title></title>
</head>
<body>

    <?php

    
require ("../Conexion/conexion.php");


    if (isset(
$_POST["numfac"])){
        
$factura=$_POST["numfac"];
    }

    else{
        
$factura="";
    }

    if (isset(
$_POST["numcontra"])){
        
$contrato=$_POST["numcontra"];
    }

    else{
        
$contrato="";
    }

    if (isset(
$_POST["elim"])){
        
$botn=$_POST["elim"];
    }

    else{
        
$botn="";
    }

    
$sql="delete from facturas where numero_factura='$factura' and contrato='$contrato';";

    
$datos=mysqli_query($con,$sql);

    
$borrados=mysqli_affected_rows($con);

    if (
$borrados==and $botn){
        echo 
"<script> alert ('Error: No se ha borrado la factura, verifique el contrato o el numero de la factura'); </script>";
    }

    elseif(
$borrados==and $datos==1){
        echo 
"<script> alert ('La factura ha sido eliminada'); </script>";
    }

    
    
?>

    <form action="" method="post">

    Numero de la factura <input type="text" name="numfac"/>


    Numero del contrato <input type="text" name="numcontra"/>

    <input type="submit" value="Anular" name="elim"/>


    </form>

    <form action="../principal.php">

        <input type="submit" value="Pagina principal"/>
    </form>

</body>
</html>