/// <summary> /// Método que valida el estatus del CheckBox ProductoContenido /// </summary> private void validaCheck() { //Valida cada estado de la página switch ((Pagina.Estatus)Session["estatus"]) { //En caso de que el estado de la pagina sea nuevo. case Pagina.Estatus.Edicion: { //Invoca al constructor de la clase Producto y asigna como paramétro el valor de la variable de session id_registro using (SAT_CL.Almacen.Producto producto = new SAT_CL.Almacen.Producto((int)Session["id_registro"])) { //Valida, si el id_producto_contenido es igual a cero(no tiene producto contenido). if (producto.id_producto_contenido == 0) { //Deshabilita los controles y el check box quedara sin seleccionar chkProductoContenido.Checked = false; txtProductoContenido.Enabled = false; txtCantidadContenido.Enabled = false; } //En caso contrario (tiene producto contenido) else { //Habilita los controles y el check box quedara seleccionado chkProductoContenido.Checked = true; txtProductoContenido.Enabled = true; txtCantidadContenido.Enabled = true; } } break; } //Si la pagina se encuentra en modo lectura case Pagina.Estatus.Lectura: { //Invoca al constructor de la clase Producto y asigna como paramétro el valor de la variable de session id_registro using (SAT_CL.Almacen.Producto producto = new SAT_CL.Almacen.Producto((int)Session["id_registro"])) { //Valida, si el id_producto_contenido es igual a cero(no tiene producto contenido). if (producto.id_producto_contenido == 0) { //Check box quedara sin seleccionar chkProductoContenido.Checked = false; } //En caso contrario else { //Check box quedara seleccionado chkProductoContenido.Checked = true; } } break; } } }
/// <summary> /// Método que permite almacenar los datos que se ingresaron en los controles del formulario /// </summary> private void guardarProducto() { //Creación del objeto retorno RetornoOperacion retorno = new RetornoOperacion(); //Creació del objeto resultado1 RetornoOperacion resultado1 = minimosMaximos(); //Creación del objeto resultado2 RetornoOperacion resultado2 = productoContenido(); if (resultado1.OperacionExitosa && resultado2.OperacionExitosa) { //Valida cada estado de la página switch ((Pagina.Estatus)Session["estatus"]) { //En caso de que el estado de la página sea nuevo case Pagina.Estatus.Nuevo: { //Asigna al objeto retorno los datos ingresados invocando al método inserción de la clase Producto retorno = SAT_CL.Almacen.Producto.InsertaProducto( ((SAT_CL.Seguridad.UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor, Cadena.VerificaCadenaVacia(txtSKU.Text.ToUpper(), ""), txtDescripcion.Text.ToUpper(), Convert.ToInt32(ddlUnidadMedida.SelectedValue), Convert.ToInt32(ddlCategoria.SelectedValue), txtFabricante.Text.ToUpper(), Convert.ToInt32(Cadena.VerificaCadenaVacia(txtGarantia.Text, "0")), SAT_CL.Almacen.Producto.Estatus.Activo, Convert.ToByte(ddlMonedaEntrada.SelectedValue), Convert.ToDecimal(Cadena.VerificaCadenaVacia(txtPrecioEntrada.Text, "0.0")), Convert.ToByte(ddlMonedaSalida.SelectedValue), Convert.ToDecimal(Cadena.VerificaCadenaVacia(txtPrecioSalida.Text, "0.0")), Convert.ToDecimal(Cadena.VerificaCadenaVacia(txtCantidadMayoreo.Text, "0.0")), Convert.ToDecimal(Cadena.VerificaCadenaVacia(txtPrecioMayoreo.Text, "0.0")), Convert.ToDecimal(Cadena.VerificaCadenaVacia(txtCantidadMinima.Text, "0.0")), Convert.ToDecimal(Cadena.VerificaCadenaVacia(txtCantidadMaxima.Text, "0.0")), Convert.ToInt32(Cadena.VerificaCadenaVacia(Cadena.RegresaCadenaSeparada(txtProductoContenido.Text, "ID:", 1), "0")), Convert.ToDecimal(Cadena.VerificaCadenaVacia(txtCantidadContenido.Text, "0")), Convert.ToBoolean(chkSinInventario.Checked), ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); break; } //En caso de que el estado de la página sea edicion case Pagina.Estatus.Edicion: { //Invoca al constructor de la clase Producto para poder instanciar sus métodos using (SAT_CL.Almacen.Producto producto = new SAT_CL.Almacen.Producto((int)Session["id_registro"])) { if (producto.id_producto > 0) { //Asigna al objeto retorno los datos ingresados en los controles invocando el método de edición de la clase Producto retorno = producto.EditaProducto(((SAT_CL.Seguridad.UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor, Cadena.VerificaCadenaVacia(txtSKU.Text.ToUpper(), ""), txtDescripcion.Text.ToUpper(), Convert.ToInt32(ddlUnidadMedida.SelectedValue), Convert.ToInt32(ddlCategoria.SelectedValue), txtFabricante.Text.ToUpper(), Convert.ToInt32(Cadena.VerificaCadenaVacia(txtGarantia.Text, "0")), SAT_CL.Almacen.Producto.Estatus.Activo, Convert.ToByte(ddlMonedaEntrada.SelectedValue), Convert.ToDecimal(Cadena.VerificaCadenaVacia(txtPrecioEntrada.Text, "0.0")), Convert.ToByte(ddlMonedaSalida.SelectedValue), Convert.ToDecimal(Cadena.VerificaCadenaVacia(txtPrecioSalida.Text, "0.0")), Convert.ToDecimal(Cadena.VerificaCadenaVacia(txtCantidadMayoreo.Text, "0.0")), Convert.ToDecimal(Cadena.VerificaCadenaVacia(txtPrecioMayoreo.Text, "0.0")), Convert.ToDecimal(Cadena.VerificaCadenaVacia(txtCantidadMinima.Text, "0.0")), Convert.ToDecimal(Cadena.VerificaCadenaVacia(txtCantidadMaxima.Text, "0.0")), Convert.ToInt32(Cadena.VerificaCadenaVacia(Cadena.RegresaCadenaSeparada(txtProductoContenido.Text, "ID:", 1), "0")), Convert.ToDecimal(Cadena.VerificaCadenaVacia(txtCantidadContenido.Text, "0")), Convert.ToBoolean(chkSinInventario.Checked), ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); } } break; } } //Valida si la inserción a la base de datos se realizo correctamente if (retorno.OperacionExitosa) { //A la variable de sessión estatus le asigna el estado de la pagina en modo lectura Session["estatus"] = Pagina.Estatus.Lectura; //A la variable de session id_registro le asigna el valor insertado en la tabla Producto Session["id_registro"] = retorno.IdRegistro; //Invoca al método inicializa forma inicializaForma(); } //Muestra el mensaje de error TSDK.ASP.ScriptServer.MuestraNotificacion(this, retorno, ScriptServer.PosicionNotificacion.AbajoDerecha); } //Valida la operación exitosa del objeto resultado1 if (!resultado1.OperacionExitosa) { //Muestra el mensaje de error. TSDK.ASP.ScriptServer.MuestraNotificacion(this, resultado1, ScriptServer.PosicionNotificacion.AbajoDerecha); } //Valida la operación exitosa del objeto resultado2 else if (!resultado2.OperacionExitosa) { //Muestra el mnesaje de error. TSDK.ASP.ScriptServer.MuestraNotificacion(this, resultado2, ScriptServer.PosicionNotificacion.AbajoDerecha); } }
/// <summary> /// Evento que permite seleccionar y ejecutar acciones del menú. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lkbElementoMenu_Click(object sender, EventArgs e) { //Creación del objeto botonMenu que obtiene las opciones de los menú desplegable . LinkButton botonMenu = (LinkButton)sender; //Permite ejecutar acciones determinadas por cada opción del menú switch (botonMenu.CommandName) { //Si la elección del menú es la opción Nuevo case "Nuevo": { //Asigna a la variable de session estatus el estado del formulario en nuevo Session["estatus"] = Pagina.Estatus.Nuevo; //Asigna a la variable de session id_registro el valor de 0. Session["id_registro"] = 0; //Invoca al método inicializaForma inicializaForma(); //Se realiza un enfoque al primer control txtSKU.Focus(); break; } //Si la elección del menú es la opcion Abrir case "Abrir": { //Invoca al método inicializaAperturaRegistro(); inicializaAperturaRegistro(163, ((SAT_CL.Seguridad.UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor); break; } //Si la elección del menú es la opción Guardar case "Guardar": { //Invoca al método guardaProducto(); guardarProducto(); break; } //Si la elección del menú es la opción Editar case "Editar": { using (SAT_CL.Almacen.Producto oc = new SAT_CL.Almacen.Producto((int)Session["id_registro"])) { //Asigna a la variable session estaus el estado de la pagina nuevo Session["estatus"] = Pagina.Estatus.Edicion; //Invoca el método inicializaForma(); inicializaForma(); //Se realiza un enfoque al primer control txtSKU.Focus(); } break; } //Si la elección del menú es la opción Eliminar case "Eliminar": { //Creación del objeto retorno RetornoOperacion retorno = new RetornoOperacion(); //Invoca al constructor de la clase Producto para poder instanciar sus métodos using (SAT_CL.Almacen.Producto producto = new SAT_CL.Almacen.Producto((int)Session["id_registro"])) { //Valida que exista el registro if (producto.id_producto > 0) { //Asigna los valores al objeto retorno invocando el método DeshabilitarProducto. retorno = producto.DeshabilitaProducto(((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); } } //Valida si la inserción a la base de datos se realizo correctamente if (retorno.OperacionExitosa) { //A la variable de sessión estatus le asigna el estado de la pagina en modo Nuevo Session["estatus"] = Pagina.Estatus.Nuevo; //A la variable de session id_registro le asigna el valor insertado en la tabla Producto Session["id_registro"] = 0; //Invoca al método inicializa forma inicializaForma(); } //Mensaje de que la operación de deshabilitar registros se realizo correctamente. TSDK.ASP.ScriptServer.MuestraNotificacion(this, retorno, ScriptServer.PosicionNotificacion.AbajoDerecha); break; } //Si la elección del menú es la opción Bitacora case "Bitacora": { //Invoca al método bitacora inicializaBitacora(Session["id_registro"].ToString(), "163", "Producto"); break; } //Si la elección del menú es la opcion Referencia case "Referencias": { //Invoca al método inicializaReferencia que muestra las observaciones hechas a un registro de Producto inicializaReferenciaRegistro(Session["id_registro"].ToString(), "163", ((SAT_CL.Seguridad.UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor.ToString()); break; } } }
/// <summary> /// Método que permite inicializar los valores de los controles en base a cada estado de la página /// </summary> private void inicializaValores() { //Valida cada estado de la página switch ((Pagina.Estatus)Session["estatus"]) { //En caso de que el estado de la pagina sea nuevo. case Pagina.Estatus.Nuevo: { //Limpia los controles del formulario. lblIdProducto.Text = "Por Asignar"; txtSKU.Text = ""; txtDescripcion.Text = ""; txtFabricante.Text = ""; txtGarantia.Text = ""; txtPrecioEntrada.Text = ""; txtPrecioSalida.Text = ""; txtCantidadMayoreo.Text = ""; txtPrecioMayoreo.Text = ""; txtCantidadMinima.Text = ""; txtCantidadMaxima.Text = ""; txtProductoContenido.Text = "SIN PRODUCTO ID: 0"; txtCantidadContenido.Text = "0.0"; chkProductoContenido.Checked = false; chkSinInventario.Checked = false; //Invoca al constructor de la clase CompaniaEmisorReceptor para obtener el nombre de la compañia using (SAT_CL.Global.CompaniaEmisorReceptor emisor = new SAT_CL.Global.CompaniaEmisorReceptor(((SAT_CL.Seguridad.UsuarioSesion)Session["usuario_sesion"]).id_compania_emisor_receptor)) { //Asigina al txtCompania el nombre de la compañia del usuario. txtCompaniaEmisor.Text = emisor.nombre + " ID:" + emisor.id_compania_emisor_receptor.ToString(); } break; } //En caso de que el estado de la página sea edición o Lectura case Pagina.Estatus.Edicion: case Pagina.Estatus.Lectura: { //Invoca al constructor de la clase Producto y asigna como paramétro el valor de la variable de session id_registro using (SAT_CL.Almacen.Producto producto = new SAT_CL.Almacen.Producto((int)Session["id_registro"])) { //Valida que exista el registro if (producto.id_producto > 0) { //Asigna al label Id el identificador del producto. lblIdProducto.Text = producto.id_producto.ToString(); //Invoca al constructor de la clase CompaniaEmisor para obtener el nombre de las compañias. using (SAT_CL.Global.CompaniaEmisorReceptor emisor = new SAT_CL.Global.CompaniaEmisorReceptor(producto.id_compania_emisor)) { //Valida que el registro exista if (emisor.id_compania_emisor_receptor > 0) { //Asigna al control los nombres y id de cada compañia txtCompaniaEmisor.Text = string.Format("{0} ID:{1}", emisor.nombre, emisor.id_compania_emisor_receptor); } } txtSKU.Text = producto.sku; txtDescripcion.Text = producto.descripcion; txtFabricante.Text = producto.fabricante; txtGarantia.Text = producto.garantia.ToString(); txtPrecioEntrada.Text = producto.precio_entrada.ToString(); txtPrecioSalida.Text = producto.precio_salida.ToString(); txtCantidadMayoreo.Text = producto.cantidad_mayoreo.ToString(); txtPrecioMayoreo.Text = producto.precio_salida_mayoreo.ToString(); txtCantidadMinima.Text = producto.cantidad_minima.ToString(); txtCantidadMaxima.Text = producto.cantidad_maxima.ToString(); ddlEstatus.SelectedValue = producto.id_estatus.ToString(); ddlMonedaEntrada.SelectedValue = producto.id_moneda_entrada.ToString(); ddlMonedaSalida.SelectedValue = producto.id_moneda_salida.ToString(); ddlCategoria.SelectedValue = producto.categoria.ToString(); chkSinInventario.Checked = producto.bit_sin_inventario; //Invoca a la clase unidadMedida using (SAT_CL.Global.UnidadMedida unidad = new SAT_CL.Global.UnidadMedida(producto.id_unidad)) { //ASigna valores al dropdownlist TipoMedida ddlTipoMedida.SelectedValue = unidad.id_tipo_unidad_medida.ToString(); //Carga los valores al DropDownList ddlUnidadMedida SAT_CL.CapaNegocio.m_capaNegocio.CargaCatalogo(ddlUnidadMedida, 44, "", Convert.ToInt32(ddlTipoMedida.SelectedValue), "", 0, ""); ddlUnidadMedida.SelectedValue = producto.id_unidad.ToString(); } //Valida que exista el producto contenido if (producto.id_producto_contenido > 0) { //Invoca al método que valida el check box chkProductocontenido validaCheck(); //Invoca al constructor de la clase Producto y obtiene el nombre del producto contenido. using (SAT_CL.Almacen.Producto contenido = new SAT_CL.Almacen.Producto(producto.id_producto_contenido)) { //Asigna a la caja de texto el valor correspondiente al producto contenido txtProductoContenido.Text = contenido.descripcion + " ID:" + contenido.id_producto.ToString(); } txtCantidadContenido.Text = producto.cantidad_contenido.ToString(); } //En caso contrario else { //Invoca al método que valida el check box chkProductocontenido validaCheck(); //Asigna a la caja de texto el valor correspondiente al producto contenido txtProductoContenido.Text = "SIN PRODUCTO ID: 0"; txtCantidadContenido.Text = producto.cantidad_contenido.ToString(); } } } break; } } }
/// <summary> /// Habilita los controles de producto contenido /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void chkProductoContenido_CheckedChanged(object sender, EventArgs e) { //Valida el estado del check box (true) if (chkProductoContenido.Checked == true) { //Habilita los controles txtProductoContenido y txtCantidadContenido txtProductoContenido.Enabled = true; txtCantidadContenido.Enabled = true; //Invoca al constructor de la clase Producto y asigna como paramétro el valor de la variable de session id_registro using (SAT_CL.Almacen.Producto producto = new SAT_CL.Almacen.Producto((int)Session["id_registro"])) { //Valida que exista el producto contenido if (producto.id_producto_contenido > 0) { //Invoca al constructor de la clase Producto y obtiene el nombre del producto contenido. using (SAT_CL.Almacen.Producto contenido = new SAT_CL.Almacen.Producto(producto.id_producto_contenido)) { //Asigna a la caja de texto el valor correspondiente al producto contenido txtProductoContenido.Text = contenido.descripcion + " ID:" + contenido.id_producto.ToString(); } txtCantidadContenido.Text = producto.cantidad_contenido.ToString(); } //Si no tiene producto contenido else { //Limpia las cajas de texto txtProductoContenido.Text = ""; txtCantidadContenido.Text = ""; } } } //en caso contrario de que no sea verdadero el estado del checkbox chkProductoContenido else { //Valida los estatus de la pagina switch ((Pagina.Estatus)Session["estatus"]) { //En caso de que el estado de la página sea nuevo y edicion case Pagina.Estatus.Nuevo: case Pagina.Estatus.Edicion: { //Deshabilita los controles txtProductoContenido.Enabled = txtCantidadContenido.Enabled = false; //Asigna a la caja de texto el valor correspondiente al producto contenido txtProductoContenido.Text = "SIN PRODUCTO ID: 0"; txtCantidadContenido.Text = "0.0"; break; } //En caso de que el estado de la página sea Lectura. case Pagina.Estatus.Lectura: { //Deshabilita los controles txtProductoContenido.Enabled = txtCantidadContenido.Enabled = false; //Invoca al constructor de la clase Producto y asigna como paramétro el valor de la variable de session id_registro using (SAT_CL.Almacen.Producto producto = new SAT_CL.Almacen.Producto((int)Session["id_registro"])) { //Valida que exista el producto contenido if (producto.id_producto_contenido > 0) { //Invoca al constructor de la clase Producto y obtiene el nombre del producto contenido. using (SAT_CL.Almacen.Producto contenido = new SAT_CL.Almacen.Producto(producto.id_producto_contenido)) { //Asigna a la caja de texto el valor correspondiente al producto contenido txtProductoContenido.Text = contenido.descripcion + " ID:" + contenido.id_producto.ToString(); } txtCantidadContenido.Text = producto.cantidad_contenido.ToString(); } //En caso de que no exista el producto contenido else { //Asigna a la caja de texto el valor correspondiente al producto contenido txtProductoContenido.Text = "SIN PRODUCTO ID: 0"; txtCantidadContenido.Text = producto.cantidad_contenido.ToString(); } } break; } } } }