Пример #1
0
        //MÉTODOS PARA INVENTARIO COM WMS
        public ProdutoInventario GetProduto(string produto, int filial)
        {
            OracleConnection connection = DataBase.novaConexao();
            OracleCommand    exec       = connection.CreateCommand();

            ProdutoInventario produtoInventario;
            StringBuilder     query = new StringBuilder();
            ProdutoInventario pl    = new ProdutoInventario();

            try
            {
                query.Append("SELECT P.CODPROD, P.DESCRICAO || ' - ' || P.EMBALAGEM as DESCRICAO, P.QTUNITCX");
                query.Append("  FROM PCPRODUT P INNER JOIN PCPRODFILIAL PF ON (P.CODPROD = PF.CODPROD)");
                query.Append($"WHERE ((P.CODPROD = {produto}) OR (P.CODAUXILIAR = {produto}) OR (P.CODAUXILIAR2 = {produto})) ");
                query.Append($"  AND PF.CODFILIAL = {filial}");

                exec.CommandText = query.ToString();
                OracleDataReader reader = exec.ExecuteReader();

                if (reader.Read())
                {
                    pl.Codprod             = reader.GetInt32(0);
                    pl.Descricao           = reader.GetString(1);
                    pl.Qtunitcx            = reader.GetInt32(2);
                    pl.Erro                = "N";
                    pl.Warning             = "N";
                    pl.MensagemErroWarning = null;
                }
                else
                {
                    pl.Erro                = "N";
                    pl.Warning             = "S";
                    pl.MensagemErroWarning = "Produto não encontrado";

                    produtoInventario = pl;
                }

                connection.Close();

                return(pl);
            }
            catch (Exception ex)
            {
                if (connection.State == ConnectionState.Open)
                {
                    pl.Erro = "S";
                    pl.MensagemErroWarning = ex.Message;

                    produtoInventario = pl;

                    connection.Close();
                    return(produtoInventario);
                }
                exec.Dispose();
                connection.Dispose();
                throw ex;
            }
            finally
            {
                if (connection.State == ConnectionState.Open)
                {
                    connection.Close();
                }
                exec.Dispose();
                connection.Dispose();
            }
        }
Пример #2
0
        public Boolean GravaProduto(ProdutoInventario prod)
        {
            OracleConnection connection = DataBase.novaConexao();
            OracleCommand    exec       = new OracleCommand("STP_GERA_PROX_CONTAGEM", connection);

            try
            {
                string dtvalidade = null;

                dtvalidade = Convert.ToDateTime(prod.Datavalidade).ToString("dd-MM-yyyy");

                //Elimina valores que podem ser nulos
                if (prod.Lastro == null)
                {
                    prod.Lastro = 0;
                }
                if (prod.Camada == null)
                {
                    prod.Camada = 0;
                }
                if (prod.Qtun == null)
                {
                    prod.Qtun = 0;
                }
                if (prod.Qtcx == null)
                {
                    prod.Qtcx = 0;
                }

                exec.CommandType = CommandType.StoredProcedure;

                exec.Parameters.Add("P_NUMINVENT", OracleDbType.Int32).Value        = prod.NumInvent;
                exec.Parameters.Add("P_INVENTOS", OracleDbType.Int32).Value         = prod.InventOs;
                exec.Parameters.Add("P_CODPROD", OracleDbType.Int32).Value          = prod.Codprod;
                exec.Parameters.Add("P_QTTOTAL", OracleDbType.Int32).Value          = prod.Total;
                exec.Parameters.Add("P_QTUND", OracleDbType.Int32).Value            = prod.Qtun;
                exec.Parameters.Add("P_QTCX", OracleDbType.Int32).Value             = prod.Qtcx;
                exec.Parameters.Add("P_ENDERECO", OracleDbType.Int32).Value         = prod.CodEndereco;
                exec.Parameters.Add("P_CONTAGEM", OracleDbType.Int32).Value         = prod.Contagem;
                exec.Parameters.Add("P_DTVALIDADE", OracleDbType.Varchar2).Value    = dtvalidade;
                exec.Parameters.Add("P_MATDIG", OracleDbType.Int32).Value           = prod.MatDig;
                exec.Parameters.Add("P_STATUS", OracleDbType.Varchar2).Value        = prod.Status;
                exec.Parameters.Add("P_ALTERAVALIDADE", OracleDbType.Boolean).Value = prod.Alteravalidade;

                exec.ExecuteNonQuery();

                connection.Close();

                return(true);
            }
            catch (Exception ex)
            {
                if (connection.State == ConnectionState.Open)
                {
                    connection.Close();
                }
                exec.Dispose();
                connection.Dispose();

                return(false);
            }
            finally
            {
                if (connection.State == ConnectionState.Open)
                {
                    connection.Close();
                }
                exec.Dispose();
                connection.Dispose();
            }
        }