/// <summary> /// Muestra la ventada detalle /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 23/03/2016 /// </history> private void Cell_DoubleClick(object sender, RoutedEventArgs e) { FolioInvitationOuthouse folioInvOut = (FolioInvitationOuthouse)dgrFoliosInvOut.SelectedItem; frmFolioInvitationOuthouseDetail frmFolioDetail = new frmFolioInvitationOuthouseDetail(); frmFolioDetail.oldFolioInvOut = folioInvOut; frmFolioDetail.Owner = this; frmFolioDetail.enumMode = ((_blnEdit)?EnumMode.Edit:EnumMode.ReadOnly);//Asignamos el modo if (frmFolioDetail.ShowDialog() == true) { int nIndex = 0; List <FolioInvitationOuthouse> lstFoliosInvOut = (List <FolioInvitationOuthouse>)dgrFoliosInvOut.ItemsSource; if (!ValidateFilter(frmFolioDetail.folioInvOut)) //Verificamos si cumple con los filtros { lstFoliosInvOut.Remove(folioInvOut); //Quitamos el registro StatusBarReg.Content = lstFoliosInvOut.Count + " Folio Invitatios."; //Actualizamos el registro } else { ObjectHelper.CopyProperties(folioInvOut, frmFolioDetail.folioInvOut);//Asignamos los nuevos valores lstFoliosInvOut = lstFoliosInvOut.OrderBy(fi => fi.fiSerie).ThenBy(fi => fi.fiID).ToList(); dgrFoliosInvOut.ItemsSource = lstFoliosInvOut; nIndex = lstFoliosInvOut.IndexOf(folioInvOut); //Buscamos el index del registro } dgrFoliosInvOut.Items.Refresh(); //refrescamos el grid GridHelper.SelectRow(dgrFoliosInvOut, nIndex); //Seleccionamos el registro } }
/// <summary> /// Valida que un registro nuevo cumpla con los filtros del grid /// </summary> /// <param name="newFolioInvOut">Objeto a evaluar</param> /// <returns>True. Cumple con los filtros | False. No cumple con los filtros</returns> /// <history> /// [emoguel] created 23/03/2016 /// </history> private bool ValidateFilter(FolioInvitationOuthouse newFolioInvOut) { if (_nStatus != -1)//Filtro por estatus { if (newFolioInvOut.fiA != Convert.ToBoolean(_nStatus)) { return(false); } } if (_folioInvOutFilter.fiID > 0)//Filtro por ID { if (_folioInvOutFilter.fiID != newFolioInvOut.fiID) { return(false); } } if (!string.IsNullOrWhiteSpace(_folioInvOutFilter.fiSerie))//Filtro por serie { if (_folioInvOutFilter.fiSerie != newFolioInvOut.fiSerie) { return(false); } } if (_folioInvOutFilter.fiFrom > 0 && _folioInvOutFilter.fiTo > 0)//Filtro por rango de folios { if (_folioInvOutFilter.fiFrom == _folioInvOutFilter.fiTo) { if (!(_folioInvOutFilter.fiFrom >= newFolioInvOut.fiFrom && _folioInvOutFilter.fiTo <= newFolioInvOut.fiTo)) { return(false); } } else { if (!(newFolioInvOut.fiFrom >= _folioInvOutFilter.fiFrom && newFolioInvOut.fiTo <= _folioInvOutFilter.fiTo)) { return(false); } } } return(true); }
/// <summary> /// Abre la ventana de 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) { frmFolioInvitationOuthouseDetail frmFolioDetail = new frmFolioInvitationOuthouseDetail(); frmFolioDetail.Owner = this; frmFolioDetail.enumMode = EnumMode.Add; if (frmFolioDetail.ShowDialog() == true) { if (ValidateFilter(frmFolioDetail.folioInvOut))//Verficamos que cumpla con los filtros { FolioInvitationOuthouse folioInvOut = frmFolioDetail.folioInvOut; List <FolioInvitationOuthouse> lstFoliosInvOut = (List <FolioInvitationOuthouse>)dgrFoliosInvOut.ItemsSource; lstFoliosInvOut.Add(folioInvOut); //Agregamos el registro a la lista lstFoliosInvOut = lstFoliosInvOut.OrderBy(fi => fi.fiSerie).ThenBy(fi => fi.fiID).ToList(); //Reordenamos la lista dgrFoliosInvOut.ItemsSource = lstFoliosInvOut; dgrFoliosInvOut.Items.Refresh(); //Recargamos el grid int nIndex = lstFoliosInvOut.IndexOf(folioInvOut); //obtenemos el index del nuevo registro GridHelper.SelectRow(dgrFoliosInvOut, nIndex); //Seleccionamos el nuevo registro StatusBarReg.Content = lstFoliosInvOut.Count + " Folio Invitations."; //Actualizamos el contador } } }
/// <summary> /// Actualiza|Agrega un registro al catalogo FolioInvitationOuthouse /// </summary> /// <param name="folioInvitationOutside">Entidad a guardar</param> /// <param name="blnUpdate">True. Actualiza | False. Agrega</param> /// <returns>0. No se guardó | 1. Se guardó correctamente | -2. Verificar el rango</returns> /// <history> /// [emoguel] created 23/03/2016 /// </history> public static int SaveFolioInvittionsOutside(FolioInvitationOuthouse folioInvitationOutside, bool blnUpdate) { using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString())) { bool blnIsValid = false; #region Update if (blnUpdate)//Si es actualizar { blnIsValid = (bool)dbContext.USP_OR_ValidateFolioInvitationsOutside(folioInvitationOutside.fiSerie, folioInvitationOutside.fiFrom, folioInvitationOutside.fiTo, folioInvitationOutside.fiA, 1).FirstOrDefault(); if (blnIsValid)//Validamos el rango { dbContext.Entry(folioInvitationOutside).State = System.Data.Entity.EntityState.Modified; } else { return(-2); } } #endregion #region Add else//SI es insertar { blnIsValid = (bool)dbContext.USP_OR_ValidateFolioInvitationsOutside(folioInvitationOutside.fiSerie, folioInvitationOutside.fiFrom, folioInvitationOutside.fiTo, folioInvitationOutside.fiA, 0).FirstOrDefault(); if (blnIsValid)//Validamos el rango { dbContext.FoliosInvitationsOuthouse.Add(folioInvitationOutside); } else { return(-2); } } #endregion return(dbContext.SaveChanges()); } }
/// <summary> /// llena el grid de FolioInvitations /// </summary> /// <history> /// [emoguel] created 23/03/2016 /// [emoguel] modified 10/06/2016 se volvió async /// </history> private async void LoadFoliosInvitationOuthouse(FolioInvitationOuthouse folioInvOut = null) { try { status.Visibility = Visibility.Visible; int nIndex = 0; List <FolioInvitationOuthouse> lstFoliosInvOut = await BRFoliosInvitationsOuthouse.GetFoliosInvittionsOutside(_folioInvOutFilter, _nStatus); dgrFoliosInvOut.ItemsSource = lstFoliosInvOut; if (folioInvOut != null && lstFoliosInvOut.Count > 0) { folioInvOut = lstFoliosInvOut.Where(fi => fi.fiID == folioInvOut.fiID).FirstOrDefault(); nIndex = lstFoliosInvOut.IndexOf(folioInvOut); } GridHelper.SelectRow(dgrFoliosInvOut, nIndex); StatusBarReg.Content = lstFoliosInvOut.Count + " Folio Invitations."; status.Visibility = Visibility.Collapsed; } catch (Exception ex) { UIHelper.ShowMessage(ex); } }
/// <summary> /// Actualiza el grid de foliosInvOutside /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /// <history> /// [emoguel] created 22/03/2016 /// </history> private void btnRef_Click(object sender, RoutedEventArgs e) { FolioInvitationOuthouse folioInvOut = (FolioInvitationOuthouse)dgrFoliosInvOut.SelectedItem; LoadFoliosInvitationOuthouse(folioInvOut); }
/// <summary> /// Obtiene registros del catalogo FolioInvitationOutside /// </summary> /// <param name="folioInvitationOutside">Objeto con filtros adicionales</param> /// <param name="nStatus">-1. Todos los registros | 0. Registros inactivos | 1.Registros activos</param> /// <returns>Lista de tipo FolioInvitationOuthouse </returns> /// <history> /// [emoguel] created 23/03/2016 /// [emoguel] modified 10/06/2016 /// </history> public async static Task <List <FolioInvitationOuthouse> > GetFoliosInvittionsOutside(FolioInvitationOuthouse folioInvitationOutside = null, int nStatus = -1) { List <FolioInvitationOuthouse> lstFolioInvitationsOutside = await Task.Run(() => { using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString())) { var query = from fi in dbContext.FoliosInvitationsOuthouse select fi; if (nStatus != -1)//FIltro por estatus { bool blnEstatus = Convert.ToBoolean(nStatus); query = query.Where(fi => fi.fiA == blnEstatus); } if (folioInvitationOutside != null) //Validamos si tiene objeto { if (folioInvitationOutside.fiID > 0) //Filtro por ID { query = query.Where(fi => fi.fiID == folioInvitationOutside.fiID); } if (!string.IsNullOrWhiteSpace(folioInvitationOutside.fiSerie))//Filtro por serie { query = query.Where(fi => fi.fiSerie == folioInvitationOutside.fiSerie); } if (folioInvitationOutside.fiFrom > 0 && folioInvitationOutside.fiTo > 0)//Filtro por rango { if (folioInvitationOutside.fiFrom == folioInvitationOutside.fiTo) { query = query.Where(fi => folioInvitationOutside.fiFrom >= fi.fiFrom && folioInvitationOutside.fiTo <= fi.fiTo); } else { query = query.Where(fi => fi.fiFrom >= folioInvitationOutside.fiFrom && fi.fiTo <= folioInvitationOutside.fiTo); } } } return(query.OrderBy(fi => fi.fiSerie).ThenBy(fi => fi.fiID).ToList()); } }); return(lstFolioInvitationsOutside); }