Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/03/2011, 10:50
Avatar de omar_gutierrez
omar_gutierrez
 
Fecha de Ingreso: febrero-2011
Mensajes: 144
Antigüedad: 13 años, 9 meses
Puntos: 2
Respuesta: Problema con un switch y con el operador logico "or"

Código PHP:
<?php
//Crear conexión a la Base de Datos

//Tomar los campos provenientes del Formulario


//Este script depende del checkbox (sea true o false) para funcionar
if (isset($_POST['checkbox'])):

$clave_regulacion $_POST['clave_regulacion'];
$num_permiso $_POST['num_permiso'];
$firma_descargo $_POST['firma_descargo'];
$va_com_dls $_POST['va_com_dls'];
$cantidad_umtc $_POST['cantidad_umtc'];
$fecha_actual $_POST['fecha_actual'];
$checkbox $_POST['checkbox'];

    switch (
$clave_regulacion) {

        
//REGLA OCTAVA, aqui es donde les digo que esta el problema, si lo dejo asi: case ("CA"): funciona correctamente toda la aplicacion, pero solo con 2 opciones, y son necesarias todas ellas.
        
case ("CA" || "CM" || "CP" || "C1" || "C2" || "C6" || "M6" || "AV" || "IM" || "NM"):

        
//consulta para condicionar el descuento y almacenado de las tablas (octava)
        
$consulta_octava mysql_query("SELECT * FROM octava WHERE NUM_PERMISO = '$num_permiso'");
        
$array_octava mysql_fetch_array($consulta_octava);
        
        if (
$num_permiso != $array_octava['NUM_PERMISO']):
                         
//esto es lo que me envia si dejo el php como tal, y selecciono "PF", me parece ilogico que me aparesca este mensaje si estoy introduciones valores validos y existentes
            
echo "EL NUMERO DE PERMISO NO COINSIDE CON LA BASE DE DATOS, NO SE CAPTURARA LA PARTIDA";
        
            elseif (
$array_octava['CANTIDAD_EN_NUMERO'] == "0"):
                echo 
"ESTE PERMISO YA ESTA AGOTADO, LA PARTIDA NO SE REGISTRARA. PRECIONE EL BOTON PARA REGRESAR";
                
                elseif (
$cantidad_umtc $array_octava['CANTIDAD_EN_NUMERO']):
                    echo 
"case octava NO SE PUEDE DESCONTAR UNA CANTIDAD MAYOR A LA DISPONIBLE, NO SE REGISTRARA LA PARTIDA. PRECIONE EL BOTON PARA REGRESAR";
                    
                    elseif (
$cantidad_umtc == $array_octava['CANTIDAD_EN_NUMERO']):
            
                        
// Insertar campos en la tabla
                        
$insertar mysql_query("INSERT INTO partidas (NUM_PEDIMENTO, NUM_FACTURA, SEC, FRACCION, SUBD, VINC, MET_VAL, UMC, CANTIDAD_UMC, UMT, CANTIDAD_UMT, PVC, POD, CON, TASA, TT, FP, IMPORTE, DESCRIPCION, VAL_ADUUSD, IMP_PRECIO_PAG, PRECIO_UNIT, VAL_AGRE, MARCA, MODELO, CODIGO_PRODUCTO, O_N_P, CVE_REGULACION, NUM_PERMISO, FIRMA_DESCARGO, VAL_COM_DLS, CANTIDAD_UMTC)
VALUES ('{$num_ped}', '{$numfact}', '{$sec}', '{$fraccion}', '{$subd}', '{$vinc}', '{$met_val}', '{$umc}', '{$cantidad_umc}', '{$umt}', '{$cantidad_umt}', '{$pvc}', '{$pod}', '{$con}', '{$tasa}', '{$TT}', '{$TT}', '{$importe}', '{$descripccion}', '{$val_aduusd}', '{$imp_precio_pag}', '{$precio_unit}', '{$val_agreg}', '{$marca}', '{$modelo}', '{$codigo_producto}', '{$observaciones}', '{$clave_regulacion}', '{$num_permiso}', '{$firma_descargo}', '{$va_com_dls}', '{$cantidad_umtc}')"
$conexion);
                        if (!
$insertar) {
                        die(
"Fallo en la insercion de registro en la Base de Datos: " mysql_error());
                        }

                        
$descontar mysql_query("UPDATE octava SET CANTIDAD_EN_NUMERO = CANTIDAD_EN_NUMERO - '$cantidad_umtc' WHERE NUM_PERMISO = '$num_permiso'");
                        if (!
$descontar) {
                        die(
"NO SE PUDO DESCONTAR LA CANTIDAD DEL PERMISO DE REGLA OCTAVA: " mysql_error());
                        }
                        echo 
"EN LA CAPTURA DE ESTA PARTIDA SE A AGOTADO EL PERMISO: ".$array_octava['NUM_PERMISO'].", LA PARTIDA SE A GUARDADO. PRECIONE EL BOTON PARA REGRESAR";
                            else:
                            
                                
// Insertar campos en la tabla
                                
$insertar mysql_query("INSERT INTO partidas (NUM_PEDIMENTO, NUM_FACTURA, SEC, FRACCION, SUBD, VINC, MET_VAL, UMC, CANTIDAD_UMC, UMT, CANTIDAD_UMT, PVC, POD, CON, TASA, TT, FP, IMPORTE, DESCRIPCION, VAL_ADUUSD, IMP_PRECIO_PAG, PRECIO_UNIT, VAL_AGRE, MARCA, MODELO, CODIGO_PRODUCTO, O_N_P, CVE_REGULACION, NUM_PERMISO, FIRMA_DESCARGO, VAL_COM_DLS, CANTIDAD_UMTC)
VALUES ('{$num_ped}', '{$numfact}', '{$sec}', '{$fraccion}', '{$subd}', '{$vinc}', '{$met_val}', '{$umc}', '{$cantidad_umc}', '{$umt}', '{$cantidad_umt}', '{$pvc}', '{$pod}', '{$con}', '{$tasa}', '{$TT}', '{$TT}', '{$importe}', '{$descripccion}', '{$val_aduusd}', '{$imp_precio_pag}', '{$precio_unit}', '{$val_agreg}', '{$marca}', '{$modelo}', '{$codigo_producto}', '{$observaciones}', '{$clave_regulacion}', '{$num_permiso}', '{$firma_descargo}', '{$va_com_dls}', '{$cantidad_umtc}')"
$conexion);
                                if (!
$insertar) {
                                die(
"Fallo en la insercion de registro en la Base de Datos: " mysql_error());
                                }

                                
$descontar mysql_query("UPDATE octava SET CANTIDAD_EN_NUMERO = CANTIDAD_EN_NUMERO - '$cantidad_umtc' WHERE NUM_PERMISO = '$num_permiso'");
                                if (!
$descontar) {
                                die(
"NO SE PUDO DESCONTAR LA CANTIDAD DEL PERMISO DE REGLA OCTAVA: " mysql_error());
                                }
                                echo 
"SE GUARDO LA PARTIDA SATISFACTORIAMENTE, PRECIONE EL BOTON PARA REGRESAR";
            endif;
        break;
                
        
//PERMISO DE TOXICOS
        
case "PF":
        
        
//consulta para condicionar el descuento y almacenado de las tablas (TOXICOS)
        
$consulta_toxicos mysql_query("SELECT * FROM toxicos_sustancias_peligrosas WHERE NUM_AUTORIZACION = '$num_permiso'");
        
$array_toxicos mysql_fetch_array($consulta_toxicos);
        
        if (
$num_permiso != $array_toxicos['NUM_AUTORIZACION']):
            echo 
"EL NUMERO DE AUTORIZACION NO COINCIDE CON EL DE LA BASE DE DATOS, NO SE CAPTURARA LA PARTIDA";
            
            elseif (
$array_toxicos['CANTIDAD'] == "0"):
                echo 
"ESTE PERMISO YA ESTA AGOTADO, NO SE REGISTRARA LA PARTIDA";
                
                elseif (
$cantidad_umtc $array_toxicos['CANTIDAD']):
                    echo 
"NO SE PUEDE DESCONTAR UNA CANTIDAD MAYOR A LA DISPONIBLE, NO SE REGISTRARA LA PARTIDA";
                    
                    elseif (
$cantidad_umtc == $array_toxicos['CANTIDAD']):
                    
                    
// Insertar campos en la tabla
                    
$insertar mysql_query("INSERT INTO partidas (NUM_PEDIMENTO, NUM_FACTURA, SEC, FRACCION, SUBD, VINC, MET_VAL, UMC, CANTIDAD_UMC, UMT, CANTIDAD_UMT, PVC, POD, CON, TASA, TT, FP, IMPORTE, DESCRIPCION, VAL_ADUUSD, IMP_PRECIO_PAG, PRECIO_UNIT, VAL_AGRE, MARCA, MODELO, CODIGO_PRODUCTO, O_N_P, CVE_REGULACION, NUM_PERMISO, FIRMA_DESCARGO, VAL_COM_DLS, CANTIDAD_UMTC)
VALUES ('{$num_ped}', '{$numfact}', '{$sec}', '{$fraccion}', '{$subd}', '{$vinc}', '{$met_val}', '{$umc}', '{$cantidad_umc}', '{$umt}', '{$cantidad_umt}', '{$pvc}', '{$pod}', '{$con}', '{$tasa}', '{$TT}', '{$TT}', '{$importe}', '{$descripccion}', '{$val_aduusd}', '{$imp_precio_pag}', '{$precio_unit}', '{$val_agreg}', '{$marca}', '{$modelo}', '{$codigo_producto}', '{$observaciones}', '{$clave_regulacion}', '{$num_permiso}', '{$firma_descargo}', '{$va_com_dls}', '{$cantidad_umtc}')"
$conexion);
                    if (!
$insertar) {
                    die(
"Fallo en la insercion de registro en la Base de Datos: " mysql_error());
                    }
                    
                    
$descontar mysql_query("UPDATE toxicos_sustancias_peligrosas SET CANTIDAD = CANTIDAD - '$cantidad_umtc' WHERE NUM_AUTORIZACION = '$num_permiso'");
                    if (!
$descontar) {//falta condicion para fechas
                    
die("NO SE PUDO DESCONTAR LA CANTIDAD DEL PERMISO DE SUSTANCIAS PELIGROSAS: " mysql_error());
                    }
                    echo 
"EN LA CAPTURA DE ESTA PARTIDA SE A AGOTADO EL PERMISO: ".$array_toxicos['NUM_AUTORIZACION'].", LA PARTIDA SE A GUARDADO. PRECIONE EL BOTON PARA REGRESAR";
                        else:
                            
                            
$insertar mysql_query("INSERT INTO partidas (NUM_PEDIMENTO, NUM_FACTURA, SEC, FRACCION, SUBD, VINC, MET_VAL, UMC, CANTIDAD_UMC, UMT, CANTIDAD_UMT, PVC, POD, CON, TASA, TT, FP, IMPORTE, DESCRIPCION, VAL_ADUUSD, IMP_PRECIO_PAG, PRECIO_UNIT, VAL_AGRE, MARCA, MODELO, CODIGO_PRODUCTO, O_N_P, CVE_REGULACION, NUM_PERMISO, FIRMA_DESCARGO, VAL_COM_DLS, CANTIDAD_UMTC)
VALUES ('{$num_ped}', '{$numfact}', '{$sec}', '{$fraccion}', '{$subd}', '{$vinc}', '{$met_val}', '{$umc}', '{$cantidad_umc}', '{$umt}', '{$cantidad_umt}', '{$pvc}', '{$pod}', '{$con}', '{$tasa}', '{$TT}', '{$TT}', '{$importe}', '{$descripccion}', '{$val_aduusd}', '{$imp_precio_pag}', '{$precio_unit}', '{$val_agreg}', '{$marca}', '{$modelo}', '{$codigo_producto}', '{$observaciones}', '{$clave_regulacion}', '{$num_permiso}', '{$firma_descargo}', '{$va_com_dls}', '{$cantidad_umtc}')"
$conexion);
                            if (!
$insertar) {
                            die(
"Fallo en la insercion de registro en la Base de Datos: " mysql_error());
                            }
                    
                            
$descontar mysql_query("UPDATE toxicos_sustancias_peligrosas SET CANTIDAD = CANTIDAD - '$cantidad_umtc' WHERE NUM_AUTORIZACION = '$num_permiso'");
                            if (!
$descontar) {//falta condicion para fechas
                            
die("NO SE PUDO DESCONTAR LA CANTIDAD DEL PERMISO DE SUSTANCIAS PELIGROSAS: " mysql_error());
                            }
                            echo 
"SE GUARDO LA PARTIDA SATISFACTORIAMENTE, PRECIONE EL BOTON PARA REGRESAR";
            endif;        
        break;
    
//cierre del switch ($clave_regulacion)
    
}

//si no se activa el checbox, guarda sin tomar los datos de REGULACIONES, RESTRICCIONES bla bla bla
else:

    
$insertar mysql_query("INSERT INTO partidas (NUM_PEDIMENTO, NUM_FACTURA, SEC, FRACCION, SUBD, VINC, MET_VAL, UMC, CANTIDAD_UMC, UMT, CANTIDAD_UMT, PVC, POD, CON, TASA, TT, FP, IMPORTE, DESCRIPCION, VAL_ADUUSD, IMP_PRECIO_PAG, PRECIO_UNIT, VAL_AGRE, MARCA, MODELO, CODIGO_PRODUCTO, O_N_P)
VALUES ('{$num_ped}', '{$numfact}', '{$sec}', '{$fraccion}', '{$subd}', '{$vinc}', '{$met_val}', '{$umc}', '{$cantidad_umc}', '{$umt}', '{$cantidad_umt}', '{$pvc}', '{$pod}', '{$con}', '{$tasa}', '{$TT}', '{$TT}', '{$importe}', '{$descripccion}', '{$val_aduusd}', '{$imp_precio_pag}', '{$precio_unit}', '{$val_agreg}', '{$marca}', '{$modelo}', '{$codigo_producto}', '{$observaciones}')"
$conexion);
    if (!
$insertar) {
    die(
"Fallo en la insercion de registro en la Base de Datos: " mysql_error());
}
    echo 
"PARTIDA GUARDADA SIN NINGUN PERMISO, PRECIONE EL BOTON PARA REGRESAR";
endif;

mysql_close($conexion);
?>