Beispiel #1
0
        //Method que añade un nuevo material a la base de datos. Las listas estan definidas en frmNuevoMat.cs
        public int nuevoMaterial(List <string> strCampos, List <int> intCampos, List <bool> null_strCampos, List <bool> null_intCampos)
        {
            int result = 0;

            try
            {
                //Crea una conexion
                using (SqlConnection conn = new SqlConnection())
                {
                    //La conection string esta definida en el archivo globalVars.cs
                    conn.ConnectionString = globalVars.connectionString;
                    //El comando SQL. El nombre de la tabla esta en la variable global tbl_main
                    string sqlInsertMain = "INSERT INTO " + globalVars.tbl_main + " (catalogo, familia, descripcion, marca," +
                                           " codsap, comentarios, specenercom, speccatalogo, specul, spectexto, specvarias) VALUES (@catalogo," +
                                           " @familia, @descripcion, @marca, @codsap, @comentarios, @specenercom, @speccatalogo, @specul," +
                                           " @spectexto, @specvarias)";
                    //Se abre la conexion.
                    conn.Open();
                    //Se crea el comando.
                    SqlCommand cmd_Add = new SqlCommand(sqlInsertMain, conn);
                    //Verifica si existe el codigo sap en la base de datos. Returns 1 si existe, 0 si no existe.
                    if (existeCodsap(conn, intCampos[2]) == 1 && intCampos[2] != 0)
                    {
                        MessageBox.Show("El codigo SAP ingresado ya existe en la base de datos, porfavor ingrese un codigo diferente.");
                        return(result);
                    }

                    /*
                     * Orden de los strCampos: catalogo, descripcion, comentarios, specenercom, speccatalogo, specul,
                     * spectexto, specvarias
                     * Orden de los intCampos: idFamilia, idMarca, intCodigosap
                     */
                    //Se crea, valida, y se añade el parametro al comando. Las direcciones se agregan con null inicialmente.
                    validarParametrosStr("@catalogo", cmd_Add, null_strCampos[0], strCampos[0]);
                    validarParametrosStr("@descripcion", cmd_Add, null_strCampos[1], strCampos[1]);
                    validarParametrosStr("@comentarios", cmd_Add, null_strCampos[2], strCampos[2]);
                    validarParametrosStr("@specenercom", cmd_Add, true, strCampos[3]);
                    validarParametrosStr("@speccatalogo", cmd_Add, true, strCampos[4]);
                    validarParametrosStr("@specul", cmd_Add, true, strCampos[5]);
                    validarParametrosStr("@spectexto", cmd_Add, true, strCampos[6]);
                    validarParametrosStr("@specvarias", cmd_Add, true, strCampos[7]);
                    validarParametrosInt("@familia", cmd_Add, null_intCampos[0], intCampos[0]);
                    validarParametrosInt("@marca", cmd_Add, null_intCampos[1], intCampos[1]);
                    validarParametrosIntCero("@codsap", cmd_Add, null_intCampos[2], intCampos[2]);
                    //Se verifica que se pueda escribir en los directorios de guardado
                    helperFunctions help      = new helperFunctions();
                    bool            writeable = help.verifyDirectories();
                    if (!writeable)
                    {
                        return(result);
                    }
                    //Se ejecuta el comando
                    cmd_Add.ExecuteNonQuery();
                    //Se busca el id de la row que recien se agrego
                    int lastid = getIdentity(conn, globalVars.tbl_main);

                    //Se hace el copiado de los archivos, agrega el ID y la extension y verifica que el combobox no este vacio.
                    help.validarCopiado(null_strCampos[3], strCampos[3], 0, lastid);
                    help.validarCopiado(null_strCampos[4], strCampos[4], 1, lastid);
                    help.validarCopiado(null_strCampos[5], strCampos[5], 2, lastid);
                    help.validarCopiado(null_strCampos[6], strCampos[6], 3, lastid);
                    help.validarCopiado(null_strCampos[7], strCampos[7], 4, lastid);

                    //Se hace la actualizacion de la base de datos a los nuevos valores
                    string       updCommandString = "UPDATE " + globalVars.tbl_main + " SET specenercom = @specenercom, speccatalogo = @speccatalogo, specul = @specul, spectexto = @spectexto, specvarias = @specvarias WHERE IDMaterial = @IDMaterial";
                    SqlCommand   updCmd           = new SqlCommand(updCommandString, conn);
                    SqlParameter id = new SqlParameter();
                    id.ParameterName = "@IDMaterial";
                    id.Value         = lastid;
                    updCmd.Parameters.Add(id);
                    validarParamentrosDir("@specenercom", updCmd, null_strCampos[3], strCampos[3], lastid);
                    validarParamentrosDir("@speccatalogo", updCmd, null_strCampos[4], strCampos[4], lastid);
                    validarParamentrosDir("@specul", updCmd, null_strCampos[5], strCampos[5], lastid);
                    validarParamentrosDir("@spectexto", updCmd, null_strCampos[6], strCampos[6], lastid);
                    validarParamentrosDir("@specvarias", updCmd, null_strCampos[7], strCampos[7], lastid);
                    updCmd.ExecuteNonQuery();
                    result = 1;
                    return(result);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                return(result);
            }
        }