///// <summary> ///// Evento que se lanza al cargar el store ///// </summary> //[DirectMethod] public void sPreciario_Load(object sender, DirectEventArgs e) { string strcookieEditarPreciario = Cookies.GetCookie("cookieEditarPreciario").Value; if (!strcookieEditarPreciario.Equals("Nuevo")) { Preciario oPreciario = PreciarioBusiness.ObtenerPreciarioPorID(strcookieEditarPreciario); sPreciario.Add(new { ID = oPreciario.ID, Descripcion = oPreciario.Descripcion, Sucursal = oPreciario.Sucursal, RSucursal = oPreciario.RSucursal, Archivo = oPreciario.Archivo, Estatus = oPreciario.Estatus, FechaAlta = oPreciario.FechaAlta, Usuario = oPreciario.Usuario }); //Cargar el detalle del movimiento sCarga.DataSource = PreciarioConceptoBusiness.ObtenerPreciarioConceptoPorPreciario(oPreciario.ID); sCarga.DataBind(); } }
/// <summary> /// Evento de click que realiza la búsqueda de los conceptos /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnBuscar_Click(object sender, DirectEventArgs e) { //1. Obtener los valores para filtros string strCategoria = e.ExtraParams["categoria"].Equals("null") ? string.Empty : e.ExtraParams["categoria"]; string strSubCategoria = e.ExtraParams["subcategoria"].Equals("null") ? string.Empty : e.ExtraParams["subcategoria"]; string strSubSubCategoria = e.ExtraParams["subsubcategoria"].Equals("null") ? string.Empty : e.ExtraParams["subsubcategoria"]; string preciario = Cookies.GetCookie("cookiePreciarioBusqueda").Value; sConceptosFiltrados.DataSource = PreciarioConceptoBusiness.ObtenerPreciarioConceptoFiltro(preciario, strCategoria, strSubCategoria, strSubSubCategoria); sConceptosFiltrados.DataBind(); }
/// <summary> /// Evento que se lanza al seleccionar una subbsubcategoria /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void cmbSubSubCategoria_Select(object sender, DirectEventArgs e) { //1. Obtener el valor seleccionado string strPreciario = e.ExtraParams["preciario"].Equals("null") ? string.Empty : e.ExtraParams["preciario"]; string strCategoria = e.ExtraParams["categoria"].Equals("null") ? string.Empty : e.ExtraParams["categoria"]; string strSubCategoria = e.ExtraParams["subcategoria"].Equals("null") ? string.Empty : e.ExtraParams["subcategoria"]; string strSubSubCategoria = e.ExtraParams["subsubcategoria"].Equals("null") ? string.Empty : e.ExtraParams["subsubcategoria"]; sPreciarioConcepto.DataSource = PreciarioConceptoBusiness.ObtenerPreciarioConceptoFiltro(strPreciario, strCategoria, strSubCategoria, strSubSubCategoria); sPreciarioConcepto.DataBind(); }
/// <summary> /// Evento que Guarda el detalle de Volumetrias /// </summary> /// <param name="lRevisionD"></param> /// <param name="oRevisionForma"></param> private void GuardarDetalleVolumetria(List <VolumetriaD> lVolumetriaD, Volumetria oVolumetriaForma) { //1. Insertar los datos del detalle foreach (VolumetriaD sd in lVolumetriaD) { //2. Validar que el objeto no venga en blanco if (sd.ConceptoID.Equals(string.Empty) || sd.Cantidad.Equals(string.Empty) || sd.Utilizada == 0) { continue; } else { sd.Volumetria = oVolumetriaForma.ID; VolumetriaDBusiness.Insertar(sd); PreciarioConceptoBusiness.Actualizar(sd.ConceptoID, sd.Utilizada, sd.Volumetria); } } }
/// <summary> /// Evento de clic del botón Afectar /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void imgbtnAfectar_Click(object sender, DirectEventArgs e) { //1. Obtener datos de la Forma y saber si es edición o nuevo string strVolumetriaForma = e.ExtraParams["VolumetriaForma"]; string strVolumetria = e.ExtraParams["Volumetria"]; string strSucursal = e.ExtraParams["sucursal"]; string strVolumetriaD = e.ExtraParams["VolumetriaD"]; string strcookieEditarVolumetria = Cookies.GetCookie("cookieEditarVolumetria").Value; //2. Serializar el encabezado y el detalle Dictionary <string, string> dRegistro = JSON.Deserialize <Dictionary <string, string> >(strVolumetriaForma); Volumetria oVolumetriaForma = ObtenerObjetoDesdeForma(dRegistro, strSucursal); Volumetria oVolumetria = JSON.Deserialize <List <Volumetria> >(strVolumetria).FirstOrDefault(); List <VolumetriaD> lVolumetriaD = JSON.Deserialize <List <VolumetriaD> >(strVolumetriaD); //3. Guardar o Actuaizar el Movimiento string strAccion = GuardarMovimiento(ref oVolumetriaForma, oVolumetria, lVolumetriaD); //4. Validar que efecto realizará para Guardar o Afectar switch (strAccion) { case "insertar": e.ExtraParamsResponse.Add(new Ext.Net.Parameter("accion", "insertar", ParameterMode.Value)); break; case "modificar": e.ExtraParamsResponse.Add(new Ext.Net.Parameter("accion", "modificar", ParameterMode.Value)); break; } //4. Lanzar la afectación del Movimiento VolumetriaBusiness.AfectarVolumetriaPorID(oVolumetriaForma); //Actualiza las cantidades despues de afectar foreach (VolumetriaD sd in lVolumetriaD) { PreciarioConceptoBusiness.Actualizar(sd.ConceptoID, sd.Utilizada, sd.Volumetria); } oVolumetria = VolumetriaBusiness.ObtenerVolumetriaPorID(oVolumetriaForma.ID); //7. Actualizar store de Revision sVolumetria.GetAt(0).Set("MovID", oVolumetria.MovID); sVolumetria.GetAt(0).Set("Estatus", oVolumetria.Estatus); }
/// <summary> /// Método para elimnar un registro /// </summary> /// <param name="strID"></param> protected void imgbtnBorrar_Click(object sender, DirectEventArgs e) { //1. Obtener registro que se quiere eliminar string strID = e.ExtraParams["ID"]; //2. Validar si se elimina el registro if (PreciarioBusiness.ObtenerPreciariosEnVolumetriasPorID(strID)) { e.ExtraParamsResponse.Add(new Ext.Net.Parameter("existe", "true", ParameterMode.Raw)); } else { e.ExtraParamsResponse.Add(new Ext.Net.Parameter("existe", "false", ParameterMode.Raw)); PreciarioConceptoBusiness.Borrar(strID); PreciarioSubSubCategoriaBusiness.Borrar(strID); PreciarioSubCategoriaBusiness.Borrar(strID); PreciarioCategoriaBuisness.Borrar(strID); PreciarioBusiness.Borrar(strID); } }
/// <summary> /// Evento de clic del botón Guardar /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void imgbtnGuardar_Click(object sender, DirectEventArgs e) { //1. Obtener datos de la Forma y saber si es edición o nuevo string strRegistro = e.ExtraParams["registro"]; string strEstatus = e.ExtraParams["estatus"]; string strArchivo = e.ExtraParams["archivo"]; string strSucursal = e.ExtraParams["sucursal"]; string strcookieEditarPreciario = Cookies.GetCookie("cookieEditarPreciario").Value; Dictionary <string, string> dRegistro = JSON.Deserialize <Dictionary <string, string> >(strRegistro); string strPreciarioDetalle = e.ExtraParams["DetallePreciario"]; //2. Se guarda en una lista el Store que contiene todos los campos para deserealizarlos y usarlos para el insert List <PreciarioConcepto> lDetallePreciario = JSON.Deserialize <List <PreciarioConcepto> >(strPreciarioDetalle); Preciario oPreciario = new Preciario(); //3. Por cada elemento del submit de la Forma detectar el campo y asignarlo al objeto correspondiente foreach (KeyValuePair <string, string> sd in dRegistro) { switch (sd.Key) { //4. Datos del preciario case "txtfID": oPreciario.ID = sd.Value; break; case "txtfDescripcion": oPreciario.Descripcion = sd.Value; break; case "cmbEstatus": oPreciario.Estatus = sd.Value; break; } } //5. Se toma el nombre del archivo de Excel que se está cargando oPreciario.Archivo = fufArchivoExcel.FileName; //6. Validar si es nuevo o es uno existente if (strcookieEditarPreciario.Equals("Nuevo")) { //7. Traemeos el objeto de sesion para llenr el objeto con los datos de usuario oPreciario.FechaAlta = DateTime.Now; Usuario oUsuario = (Usuario)Session["Usuario"]; oPreciario.Usuario = oUsuario.ID; oPreciario.Estatus = strEstatus; oPreciario.Sucursal = strSucursal; //8. Insertar en la base de datos oPreciario.ID = PreciarioBusiness.Insertar(oPreciario); string categoria = ""; string subcategoria = ""; string subsubcategoria = ""; foreach (PreciarioConcepto sd in lDetallePreciario) { //9. Insertar Categoria if (sd.Tipo.Equals("1")) { PreciarioCategoria c = new PreciarioCategoria(); c.Clave = sd.Clave; c.Preciario = oPreciario.ID; c.Descripcion = sd.Descripcion; c.Usuario = oUsuario.ID; c.Estatus = sd.Estatus; c.FechaAlta = sd.FechaAlta; categoria = PreciarioCategoriaBuisness.Insertar(c); } //10. Insertar SubCategoria if (sd.Tipo.Equals("2")) { PreciarioSubCategoria sc = new PreciarioSubCategoria(); sc.Clave = sd.Clave; sc.Preciario = oPreciario.ID; sc.Descripcion = sd.Descripcion; sc.Categoria = categoria; sc.Usuario = oUsuario.ID; sc.Estatus = sd.Estatus; sc.FechaAlta = sd.FechaAlta; subcategoria = PreciarioSubCategoriaBusiness.Insertar(sc); } //11. Insertar SubSubCategoria if (sd.Tipo.Equals("3")) { PreciarioSubSubCategoria ssc = new PreciarioSubSubCategoria(); ssc.Clave = sd.Clave; ssc.Preciario = oPreciario.ID; ssc.Descripcion = sd.Descripcion; ssc.Categoria = categoria; ssc.SubCategoria = subcategoria; ssc.Usuario = oUsuario.ID; ssc.Estatus = sd.Estatus; ssc.FechaAlta = sd.FechaAlta; subsubcategoria = PreciarioSubSubCategoriaBusiness.Insertar(ssc); } //12. Insertar Concepto if (sd.Tipo.Equals("")) { PreciarioConcepto pc = new PreciarioConcepto(); pc.Clave = sd.Clave; pc.Preciario = oPreciario.ID; pc.Descripcion = sd.Descripcion; pc.Unidad = sd.Unidad; pc.Cantidad = sd.Cantidad; pc.Utilizada = 0; pc.Costo = sd.Costo; pc.Importe = sd.Importe; pc.Importefinal = 0; pc.Categoria = categoria; pc.SubCategoria = subcategoria; pc.SubSubCategoria = subsubcategoria; pc.Usuario = oUsuario.ID; pc.Estatus = sd.Estatus; pc.FechaAlta = sd.FechaAlta; PreciarioConceptoBusiness.Insertar(pc); } } //13. Mandar mensaje con el código del Preciario var success = new JFunction { Fn = "imgbtnGuardar_Click_Success" }; X.Msg.Alert("Registro completo", "<p align='center'>Preciario registrada con ID: <br/>" + oPreciario.ID + ".</p>", success).Show(); } else { //14. Valida que archivo guardar if (fufArchivoExcel.FileName.Equals("")) { oPreciario.Archivo = strArchivo; } else { oPreciario.Archivo = fufArchivoExcel.FileName; } //15. Tomamos la sucursal y estatus como parametro independiente por que ya esta desabilitada oPreciario.ID = strcookieEditarPreciario; oPreciario.Sucursal = strSucursal; oPreciario.Estatus = strEstatus; //16. Actualizar los datos del Preciario PreciarioBusiness.Actualizar(oPreciario); //17. Mandar mensaje con el código del preciario var success = new JFunction { Fn = "imgbtnGuardar_Click_Success" }; X.Msg.Alert("Actualización completa", "<p align='center'>Se han actualizado los datos del preciario <br/>" + oPreciario.ID + ".</p>", success).Show(); } }