예제 #1
0
        public static int Insert(OrdenDeCompra ord)
        {
            Acceso         ac   = new Acceso();
            SqlTransaction tran = null;

            SqlConnection conexion = new SqlConnection(ac.getCadenaConexion());

            SqlCommand cmd = new SqlCommand("ps_insertar_orden_de_compra", conexion);

            cmd.Parameters.AddWithValue("@fechaOrden", ord.fechaOrden);
            cmd.Parameters.AddWithValue("@idProveedor", ord.proveedor.idPersona);
            cmd.Parameters.AddWithValue("@monto", ord.monto);
            //cmd.Parameters.AddWithValue("@fechaRemito", ord.fechaRemito );



            try
            {
                conexion.Open();
                tran            = conexion.BeginTransaction();
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Transaction = tran;
                cmd.ExecuteNonQuery();

                SqlCommand cmdIdentity = new SqlCommand("select @@Identity", conexion, tran);
                ord.idOrdenCompra = Convert.ToInt32((cmdIdentity.ExecuteScalar()));

                foreach (DetalleOrdenCompra detPed in ord.detalleOrdenCompra)
                {
                    DetalleOrdenCompraDAO.Insert(detPed, conexion, tran, ord.idOrdenCompra);
                }
                tran.Commit();
                return(ord.idOrdenCompra);
            }
            catch (ArgumentException ex)
            {
                if (conexion.State == ConnectionState.Open)
                {
                    tran.Rollback();
                }
                throw new ApplicationException(ex.Message);
            }
            catch (SqlException ex)
            {
                if (conexion.State == ConnectionState.Open)
                {
                    tran.Rollback();
                }
                throw new ApplicationException("Error en BD: " + ex.Message);
            }
            finally
            {
                conexion.Close();
            }
        }
예제 #2
0
        public static void UpdateEstadoOrdenCompra(OrdenDeCompra ord)
        {
            Acceso         ac   = new Acceso();
            SqlTransaction tran = null;

            SqlConnection conexion = new SqlConnection(ac.getCadenaConexion());


            SqlCommand cmd = new SqlCommand("UPDATE [Luiggi].[dbo].[OrdenDeCompra] SET [idEstado] = @idEstado, [montoReal] = @montoReal WHERE idOrden = @idOrden", conexion);


            cmd.Parameters.AddWithValue("@idOrden", ord.idOrdenCompra);
            cmd.Parameters.AddWithValue("@idEstado", ord.estado.idEstado);
            cmd.Parameters.AddWithValue("@montoReal", ord.montoReal);


            try
            {
                conexion.Open();

                cmd.Connection = conexion;

                cmd.CommandType = CommandType.Text;
                cmd.ExecuteNonQuery();


                foreach (DetalleOrdenCompra det in ord.detalleOrdenCompra)
                {
                    DetalleOrdenCompraDAO.UpdateCantidadIngresadaReal(det, ord.idOrdenCompra, conexion, tran);
                }
            }
            catch (ArgumentException ex)
            {
                throw new ApplicationException(ex.Message);
            }
            catch (SqlException ex)
            {
                throw new ApplicationException("Error en BD: " + ex.Message);
            }
            finally
            {
                conexion.Close();
            }
        }