/// <summary> /// Obtiene registros del catalogo FoliosCXC /// </summary> /// <param name="nStatus">-1. Todos los registros | 0. Registros inactivos | 1.Registros Activos</param> /// <returns>Lista de tipo FolioCXC</returns> /// <history> /// [emoguel] created 22/03/2016 /// [emoguel] modified se volvió async /// </history> public async static Task <List <FolioCXC> > GetFoliosCXC(FolioCXC folioCXC = null, int nStatus = -1) { List <FolioCXC> lstFolios = await Task.Run(() => { using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString())) { var query = from fi in dbContext.FoliosCXC select fi; if (nStatus != -1)//Filtro por estatus { bool blnEstatus = Convert.ToBoolean(nStatus); query = query.Where(fi => fi.fiA == blnEstatus); } if (folioCXC != null) //Validamos si se tiene un objeto { if (folioCXC.fiFrom > 0 && folioCXC.fiTo > 0) //Validamos que se tenga un rango mayor a 0 { query = query.Where(fi => folioCXC.fiFrom >= fi.fiFrom && folioCXC.fiTo <= fi.fiTo); //Filtramos por folio } } return(query.OrderBy(fi => fi.fiID).ToList());//Ordenamos por ID } }); return(lstFolios); }
/// <summary> /// Muestra la ventada detalle /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 22/03/2016 /// </history> private void Cell_DoubleClick(object sender, RoutedEventArgs e) { FolioCXC folioCXC = (FolioCXC)dgrFoliosCXC.SelectedItem; frmFolioCXCDetail frmFolioDetail = new frmFolioCXCDetail(); frmFolioDetail.Owner = this; frmFolioDetail.oldFolioCxc = folioCXC; frmFolioDetail.enumMode = ((_blnEdit == true)?EnumMode.Edit:EnumMode.ReadOnly); if (frmFolioDetail.ShowDialog() == true) { int nIndex = 0; List <FolioCXC> lstFoliosCXC = (List <FolioCXC>)dgrFoliosCXC.ItemsSource; if (!ValidateFilter(frmFolioDetail.folioCXC)) //Validar si cumple con los filtros { lstFoliosCXC.Remove(folioCXC); //Quitamos de la lista } else { ObjectHelper.CopyProperties(folioCXC, frmFolioDetail.folioCXC);//Actualizamos con los datos nuevos lstFoliosCXC.Sort((x, y) => x.fiID.CompareTo(y.fiID)); nIndex = lstFoliosCXC.IndexOf(folioCXC); } dgrFoliosCXC.Items.Refresh(); StatusBarReg.Content = lstFoliosCXC.Count + " Folios."; GridHelper.SelectRow(dgrFoliosCXC, nIndex); } }
/// <summary> /// Valida si el registro nuevo cumple con los filtros actuales /// </summary> /// <param name="newFolio"></param> /// <history> /// [emoguel] created 22/03/2016 /// </history> private bool ValidateFilter(FolioCXC newFolio) { if (_nStatus != -1)//Validamos que se tenga definido un estatus { bool blnEstatus = Convert.ToBoolean(_nStatus); if (newFolio.fiA != blnEstatus) { return(false); } } if (_folioFilter.fiFrom > 0 && _folioFilter.fiTo > 0)//Validamos que se tenga un rango { if (!(newFolio.fiFrom >= _folioFilter.fiFrom && newFolio.fiTo <= _folioFilter.fiTo)) { return(false); } } return(true); }
/// <summary> /// Abre la ventana detalle en modo Add /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 22/03/2016 /// </history> private void btnAdd_Click(object sender, RoutedEventArgs e) { frmFolioCXCDetail frmFolioDetail = new frmFolioCXCDetail(); frmFolioDetail.Owner = this; frmFolioDetail.enumMode = EnumMode.Add; if (frmFolioDetail.ShowDialog() == true) { FolioCXC folioCXC = frmFolioDetail.folioCXC; if (ValidateFilter(folioCXC)) { List <FolioCXC> lstFoliosCXC = (List <FolioCXC>)dgrFoliosCXC.ItemsSource; lstFoliosCXC.Add(folioCXC); lstFoliosCXC.Sort((x, y) => x.fiID.CompareTo(y.fiID)); int nIndex = lstFoliosCXC.IndexOf(folioCXC); dgrFoliosCXC.Items.Refresh(); GridHelper.SelectRow(dgrFoliosCXC, nIndex); } } }
/// <summary> /// Agrega|Actualiza un registro en el catalogo de FoliosCXC /// </summary> /// <param name="folioCXC">Objeto a guardar</param> /// <param name="blnUpdate">True. Actualiza | False. Agrega</param> /// <returns>0. No se guardó | 1. Guardado correctamente | -2. Verificar el rango</returns> /// <history> /// [emoguel] created 22/03/2016 /// </history> public static int SaveFolioCXC(FolioCXC folioCXC, bool blnUpdate) { bool blnIsValid = false; using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString())) { #region Actualizar if (blnUpdate) //Actualizar { blnIsValid = (bool)(dbContext.USP_OR_ValidateFolioCXC(folioCXC.fiFrom, folioCXC.fiTo, folioCXC.fiA, 1).FirstOrDefault()); //Valida si se puede guardar if (blnIsValid)//Si es valido { dbContext.Entry(folioCXC).State = System.Data.Entity.EntityState.Modified; } else//No es valido { return(-2); } } #endregion #region Insertar else//Insertar { blnIsValid = (bool)(dbContext.USP_OR_ValidateFolioCXC(folioCXC.fiFrom, folioCXC.fiTo, folioCXC.fiA, 0).FirstOrDefault());//Valida si se puede guardar if (blnIsValid)//Si es valido { dbContext.FoliosCXC.Add(folioCXC); } else//No es valido { return(-2); } } #endregion return(dbContext.SaveChanges()); } }
/// <summary> /// Llena el grid de folios /// </summary> /// <history> /// [emoguel] created 22/03/2016 /// </history> private async void LoadFoliosCXC(FolioCXC folioCxc = null) { try { status.Visibility = Visibility.Visible; int nIndex = 0; List <FolioCXC> lstFoliosCXC = await BRFoliosCXC.GetFoliosCXC(_folioFilter, _nStatus); dgrFoliosCXC.ItemsSource = lstFoliosCXC; if (folioCxc != null && lstFoliosCXC.Count > 0) { folioCxc = lstFoliosCXC.Where(fi => fi.fiID == folioCxc.fiID).FirstOrDefault(); nIndex = lstFoliosCXC.IndexOf(folioCxc); } GridHelper.SelectRow(dgrFoliosCXC, nIndex); StatusBarReg.Content = lstFoliosCXC.Count + " Folios."; status.Visibility = Visibility.Collapsed; } catch (Exception ex) { UIHelper.ShowMessage(ex); } }
/// <summary> /// Recarga el grid de folios /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 22/03/2016 /// </history> private void btnRef_Click(object sender, RoutedEventArgs e) { FolioCXC folioCxc = (FolioCXC)dgrFoliosCXC.SelectedItem; LoadFoliosCXC(folioCxc); }