예제 #1
0
        /// <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);
        }
예제 #2
0
 /// <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);
         }
     }
 }
예제 #3
0
        /// <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);
        }