PHP - Restas en php y mysql duda

 
Vista:
sin imagen de perfil

Restas en php y mysql duda

Publicado por Juan (1 intervención) el 12/11/2014 03:45:42
Hola que tal, tengo dos tablas una de materiales y otra de registro de salida, y qusiera que al momento de registrar una salida, la cantidad que esta saliendo quede registrada y se le reste a la tabla de materiales, pero que no deje hacer esa resta si la cantidad saliente excede la cantidad existente en la tabla de materiales, este es el codigo:

if ((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
$insertSQL = sprintf("INSERT INTO detalle_de_salida (codigo_de_salida, codigo_articulo, cantidad_s, codigo_departamento, fecha) VALUES (%s, %s, %s, %s, %s)",

GetSQLValueString($_POST['codigo_de_salida'], "text"),
GetSQLValueString($_POST['codigo_articulo'], "text"),
GetSQLValueString($_POST['cantidad_s'], "int"),
GetSQLValueString($_POST['codigo_departamento'], "text"),
GetSQLValueString($_POST['fecha'], "date"));

mysql_select_db($database_prueba, $prueba);
$Result1 = mysql_query($insertSQL, $prueba) or die("SE ENCONTRO EL SIGUIENTE ERROR AL MOMENTO DE REGISTRAR LA Salida:<br>".mysql_error()."<meta http-equiv='Refresh' content='4;url=registrar entrada.php'>");
}

if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) {
$updateSQL = sprintf("UPDATE material SET cantidad=cantidad-%s WHERE codigo_articulo=%s",
GetSQLValueString($_POST['cantidad_s'], "int"),
GetSQLValueString($_POST['codigo_articulo'], "text"));

mysql_select_db($database_prueba, $prueba);
$Result1 = mysql_query($updateSQL, $prueba) or die(mysql_error());

}

(la resta la estoy haciendo por medio de un update)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Restas en php y mysql duda

Publicado por Ismael (41 intervenciones) el 12/11/2014 09:52:13
Hola Juan,
porque no haces que compruebe primero si se puede hacer la resta?
primero recuperas su stock y haces una resta con la solicitada si es mayor o igual que 0 pues entonces que haga la transacción de crear el registro de salida y la actualización de su stock.
se podría hacer un beggin transaction y en el caso de no cumplir hacer un rollback, pero para ello tendrías que usar PDO y esta forma que te he comentado creo que sería la mas sencilla.

Un saludo.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar