/// <summary> /// Edita el estatus del registro detalle requisición representado por la instancia /// </summary> ///<param name="estatus">Estatus del Detalle de Requisicion</param> /// <param name="idUsuario">Id de Usuario que registra</param> /// <returns></returns> public RetornoOperacion EditaEstatus(EstatusDetalle estatus, int idUsuario) { //Declarando Objeto de Retorno RetornoOperacion result = new RetornoOperacion(); //Inicializando Transacción using (TransactionScope trans = Transaccion.InicializaBloqueTransaccional(System.Transactions.IsolationLevel.ReadCommitted)) { //Realizando la edición del registro result = editaDetalleRequisicion((int)estatus, this._cantidad, this._idUnidadMedida, this._idProducto, this._codigoProducto, idUsuario, true); //Validando Operación Exitosa if (result.OperacionExitosa) { //Instanciando Requisición using (Requisicion requisicion = new Requisicion(this._idRequisicion)) { //Validando que Exista la Requisición if (requisicion.habilitar) { //Actualizando Estatus de la Requisición result = requisicion.ActualizaEstatusRequisicion((Requisicion.Estatus) this.obtieneEstatusRequisicion(), idUsuario); } else { //Instanciando Excepción result = new RetornoOperacion("No existe la Requisición"); } //Validando Operación Exitosa if (result.OperacionExitosa) { //Instanciando Detalle result = new RetornoOperacion(this._idDetalleRequisicion); //Completando Transacción trans.Complete(); } } } } //Devolviendo Resultado Obtenido return(result); }
/// <summary> /// Evento Producido al Dar Click en el Boton "Imprimir" /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnImprimir_Click(object sender, EventArgs e) { //Instancia a la clase requisicion using (SAT_CL.Almacen.Requisicion req = new SAT_CL.Almacen.Requisicion(this._id_requisicion)) { //Valida que existan registros if (req.id_requisicion > 0) { //Obteniendo Ruta string urlReporte = TSDK.Base.Cadena.RutaRelativaAAbsoluta("~/UserControls/wucRequisicion.ascx", "~/RDLC/Reporte.aspx"); //Instanciando nueva ventana de navegador para apertura de registro TSDK.ASP.ScriptServer.AbreNuevaVentana(string.Format("{0}?idTipoReporte={1}&idRegistro={2}", urlReporte, "Requisicion", this._id_requisicion), "Requisicion", "location=NO,toolbar=NO,scrollbars=YES,menubar=NO,status=YES,width=800,height=500", Page); } else { //Instanciando Excepción ScriptServer.MuestraNotificacion(btnImprimir, "No existe la Requisición", ScriptServer.NaturalezaNotificacion.Error, ScriptServer.PosicionNotificacion.AbajoDerecha); } } }
/// <summary> /// Método encargado de Guardar el Detalle de la Requisición /// </summary> private void guardaDetalle() { //Declarando Objeto de Retorno RetornoOperacion result = new RetornoOperacion(); //Validando que Exista un Registro Seleccionado if (gvRequisicionDetalles.SelectedIndex != -1) { //Instanciando Detalle using (RequisicionDetalle rd = new RequisicionDetalle(Convert.ToInt32(gvRequisicionDetalles.SelectedDataKey["NoDetalle"]))) { //Validando que exista el Detalle if (rd.Habilitar && (RequisicionDetalle.EstatusDetalle)rd.IdEstatus == RequisicionDetalle.EstatusDetalle.Registrado) { //Instancia a la clase producto de almacen using (SAT_CL.Almacen.Producto prod = new SAT_CL.Almacen.Producto(Convert.ToInt32(TSDK.Base.Cadena.RegresaCadenaSeparada(txtProductoDet.Text, "ID:", 1, "0")))) { //Validando que exista el producto if (prod.id_producto > 0) { //Editando Detalle result = rd.EditaDetalleRequisicion((RequisicionDetalle.EstatusDetalle)rd.IdEstatus, Convert.ToDecimal(txtCantidadDet.Text), prod.id_unidad, prod.id_producto, prod.sku, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); } } } else { //Instanciando Excepción result = new RetornoOperacion("El Detalle debe de estar 'Registrado' para su Edición"); } } } else { //Instancia a la clase requisicion using (SAT_CL.Almacen.Requisicion req = new SAT_CL.Almacen.Requisicion(this._id_requisicion)) { //Si el estatus del registro de requisición es:capturado, por autorizar, pendiente almacen, abastecido, abastecido parcial y cancelas if (req.id_estatus != 3) { //Instancia a la claso producto de alamcen using (SAT_CL.Almacen.Producto prod = new SAT_CL.Almacen.Producto(Convert.ToInt32(TSDK.Base.Cadena.RegresaCadenaSeparada(txtProductoDet.Text, "ID:", 1, "0")))) { //Insertando Detalle result = RequisicionDetalle.InsertaDetalleRequisicion(this._id_requisicion, Convert.ToDecimal(txtCantidadDet.Text), prod.id_unidad, prod.id_producto, prod.sku, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); } } //En caso contrario else { //Envia un mensaje de error result = new RetornoOperacion("No se puede agregar producto ya que la requisición fue solicitada."); } } } //Validando que la Operación fuese Exitosa if (result.OperacionExitosa) { //Limpiando Controles limpiaControlesDetalles(); //Habilitando Controles habilitaControlesDetalles(true); //Cargando Detalles cargaDetallesRequisicion(this._id_requisicion); } //Mostrando Mensaje de Operación ScriptServer.MuestraNotificacion(btnGuardarDet, result, ScriptServer.PosicionNotificacion.AbajoDerecha); }