public List<OrdenCompraAprobadorDTO> Listar()
        {
            List<OrdenCompraAprobadorDTO> Lista = new List<OrdenCompraAprobadorDTO>();
              Database db = DatabaseFactory.CreateDatabase("ApplicationConnectionString");
              DbCommand dbCommand = db.GetStoredProcCommand(C_LISTAR);
              using (IDataReader dr = db.ExecuteReader(dbCommand))
              {
              while (dr.Read())
              {
                  OrdenCompraAprobadorDTO obj = new OrdenCompraAprobadorDTO();

                  if (dr["id_orden_compra"] != System.DBNull.Value)
                      obj.IdOrdenCompra = (int)dr["id_orden_compra"];

                  if (dr["id_usuario_aprobacion"] != System.DBNull.Value)
                      obj.IdUsuarioAprobacion = (int)dr["id_usuario_aprobacion"];

                  if (dr["fecha_aprobacion"] != System.DBNull.Value)
                      obj.FechaAprobacion = (DateTime)dr["fecha_aprobacion"];

                  Lista.Add(obj);
              }
              }
              return Lista;
        }
 public void Agregar(OrdenCompraAprobadorDTO obj)
 {
     Database db = DatabaseFactory.CreateDatabase("ApplicationConnectionString");
       DbCommand dbCommand = db.GetStoredProcCommand(C_AGREGAR);
       db.AddInParameter(dbCommand, "@id_orden_compra", DbType.Int32, obj.IdOrdenCompra);
       db.AddInParameter(dbCommand, "@id_usuario_aprobacion", DbType.Int32, obj.IdUsuarioAprobacion);
       db.AddInParameter(dbCommand, "@fecha_aprobacion", DbType.DateTime, GetFechaValida( obj.FechaAprobacion) );
       db.ExecuteNonQuery(dbCommand);
 }
        protected void btnAprobar_Click(object sender, EventArgs e)
        {
            this.lblError.Text = "";

            try
            {

                Actualizar();

                UsuarioDTO objUsuarioDTO = objUsuarioDAO.ListarPorLogin(HttpContext.Current.User.Identity.Name);

                int IdOrdenCompra = Convert.ToInt32(this.txtIdOrdenCompra.Text);
                OrdenCompraDTO objOrdenCompraDTO = objOrdenCompraDAO.ListarPorClave(IdOrdenCompra);

                List<OrdenCompraNivelAprobacionDTO> ListaOrdenCompraNivelAprobacionDTO = objOrdenCompraNivelAprobacionDAO.ObtenerAprobadorOrdenCompra(
                            objOrdenCompraDTO.ImporteOrdenCompra,
                            objOrdenCompraDTO.CodMoneda
                            );

                objOrdenCompraDTO.EstadoAprobacion = AppConstantes.ESTADO_APROBACION_OC_ENPROCESO;
                //objOrdenCompraDTO.FechaAprobacion = DateTime.Now;
                //objOrdenCompraDTO.IdUsuarioAprobacion = objOrdenCompraNivelAprobacionDTO.IdUsuarioAprobacion;
                objOrdenCompraDTO.FechaModificacion = DateTime.Now;
                objOrdenCompraDTO.IdUsuarioModificacion = objUsuarioDTO.IdUsuario;
                objOrdenCompraDAO.Actualizar(objOrdenCompraDTO);

                foreach (OrdenCompraNivelAprobacionDTO reg in ListaOrdenCompraNivelAprobacionDTO)
                {
                    OrdenCompraAprobadorDTO objOrdenCompraAprobadorDTO = new OrdenCompraAprobadorDTO();
                    objOrdenCompraAprobadorDTO.IdOrdenCompra = objOrdenCompraDTO.IdOrdenCompra;
                    objOrdenCompraAprobadorDTO.IdUsuarioAprobacion = reg.IdUsuarioAprobacion;
                    objOrdenCompraAprobadorDAO.Agregar(objOrdenCompraAprobadorDTO);
                }

                CotizacionDTO objCotizacionDTO = objCotizacionDAO.ListarPorClave(objOrdenCompraDTO.IdCotizacion);
                PedidoDTO objPedidoDTO = objPedidoDAO.ListarPorClave(objCotizacionDTO.IdPedido);
                objPedidoDTO.EstadoControl = AppConstantes.PEDIDO_ESTADO_CONTROL_EN_APROBACION_OC;
                //objPedidoDTO.EstadoControl = AppConstantes.PEDIDO_ESTADO_CONTROL_OC_PENDIENTE_ENVIO_PROVEEDOR;

                objPedidoDAO.Actualizar(objPedidoDTO);

                Response.Redirect("frmOrdenCompraAprobacionLogistica.aspx");
                this.btnAprobar.Enabled = false;
            }
            catch (Exception ex)
            {
                this.lblError.Text = ex.Message;
            }
        }