Example #1
0
        /// <summary>
        /// Valida los datos
        /// </summary>
        /// <history>
        /// [jorcanche]  12/Mar/2016 Created
        /// </history>
        private bool Validate()
        {
            // validamos el motivo de indisponibilidad
            if (!ValidateHelper.ValidateRequired(txtguum, "Unavailable Motive", condition: !chkguAvail.IsChecked.Value))
            {
                return(false);
            }

            // validamos que el motivo de indisponibilidad exista
            if (!chkguAvail.IsChecked.Value)
            {
                UnavailableMotive motive = BRUnavailableMotives.GetUnavailableMotive(Convert.ToInt16(txtguum.Text), true);
                if (motive == null)
                {
                    UIHelper.ShowMessage("The unavailable motive does not exist");
                    txtguum.Focus();
                    return(false);
                }
            }
            // validamos los permisos
            if (!ValidatePermissions())
            {
                return(false);
            }

            return(true);
        }
        /// <summary>
        /// Valida que cumpla con los filtros actuales
        /// </summary>
        /// <param name="unavailableMotive">objeto a validar</param>
        /// <returns>True. Si cumple| False. No cumple</returns>
        /// <history>
        /// [emoguel] created 06/06/2016
        /// </history>
        private bool ValidateFilter(UnavailableMotive unavailableMotive)
        {
            if (_nStatus != -1)//filtro por estatus
            {
                if (unavailableMotive.umA != Convert.ToBoolean(_nStatus))
                {
                    return(false);
                }
            }

            if (_unavailableMotive.umID > 0)//filtro por ID
            {
                if (unavailableMotive.umID != _unavailableMotive.umID)
                {
                    return(false);
                }
            }

            if (!string.IsNullOrWhiteSpace(_unavailableMotive.umN))//Filtro por Descripción
            {
                if (unavailableMotive.umN.Contains(_unavailableMotive.umN, StringComparison.OrdinalIgnoreCase))
                {
                    return(false);
                }
            }

            return(true);
        }
        /// <summary>
        /// Abre la ventana detalle en modo "detalle" o "edición" dependiendo de sus permisos
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <history>
        /// [emoguel] created 04/06/2016
        /// </history>
        private void Cell_DoubleClick(object sender, RoutedEventArgs e)
        {
            UnavailableMotive          unavailableMotive       = (UnavailableMotive)dgrUnavailableMotives.SelectedItem;
            frmUnavailableMotiveDetail frmUnavailableMotDetail = new frmUnavailableMotiveDetail();

            frmUnavailableMotDetail.Owner                = this;
            frmUnavailableMotDetail.enumMode             = (_blnEdit) ? EnumMode.Edit : EnumMode.ReadOnly;
            frmUnavailableMotDetail.oldUnavailableMotive = unavailableMotive;
            if (frmUnavailableMotDetail.ShowDialog() == true)
            {
                int nIndex = 0;
                List <UnavailableMotive> lstUnavailableMotives = (List <UnavailableMotive>)dgrUnavailableMotives.ItemsSource;
                if (ValidateFilter(frmUnavailableMotDetail.unavailableMotive))                                 //Verificamos que cumpla con ls filtros
                {
                    ObjectHelper.CopyProperties(unavailableMotive, frmUnavailableMotDetail.unavailableMotive); //Actualizamos los datos
                    lstUnavailableMotives.Sort((x, y) => string.Compare(x.umN, y.umN));                        //Ordenamos la lista
                    nIndex = lstUnavailableMotives.IndexOf(unavailableMotive);                                 //Buscamos el contador
                }
                else
                {
                    lstUnavailableMotives.Remove(unavailableMotive);
                }
                dgrUnavailableMotives.Items.Refresh();                                       ///Actualizamos la vista
                GridHelper.SelectRow(dgrUnavailableMotives, nIndex);                         //Seleccionamos el registro
                StatusBarReg.Content = lstUnavailableMotives.Count + " Unavailable Motives"; //Actualizamos el contador
            }
        }
        /// <summary>
        /// Llena el grid de unavailableMotives
        /// </summary>
        /// <param name="unavailableMotive">Objeto a seleccionar</param>
        /// <history>
        /// [emogue] created 06/06/2016
        /// </history>
        private async void LoadUnavailableMotives(UnavailableMotive unavailableMotive = null)
        {
            try
            {
                status.Visibility = Visibility.Visible;
                int nIndex = 0;
                List <UnavailableMotive> lstUnavailableMotives = await BRUnavailableMotives.GetUnavailableMotives(_nStatus, _unavailableMotive);

                dgrUnavailableMotives.ItemsSource = lstUnavailableMotives;
                if (lstUnavailableMotives.Count > 0 && unavailableMotive != null)
                {
                    unavailableMotive = lstUnavailableMotives.Where(um => um.umID == unavailableMotive.umID).FirstOrDefault();
                    nIndex            = lstUnavailableMotives.IndexOf(unavailableMotive);
                }
                GridHelper.SelectRow(dgrUnavailableMotives, nIndex);
                StatusBarReg.Content = lstUnavailableMotives.Count + " Unavailable Motives.";
                status.Visibility    = Visibility.Collapsed;
            }
            catch (Exception ex)
            {
                UIHelper.ShowMessage(ex);
            }
        }
Example #5
0
        private void txtguum_LostFocus(object sender, RoutedEventArgs e)
        {
            _searchUmByTxt = true;
            int umid;

            if (txtguum.Text != string.Empty)
            {
                //validosmos q no ingrese datos numericos
                if (!int.TryParse(txtguum.Text, out umid))
                {
                    UIHelper.ShowMessage("you must enter a numeric value");
                    txtguum.Text = string.Empty;
                    txtguum.Focus();
                }
                else
                {
                    // validamos que el motivo de indisponibilidad exista en los activos
                    UnavailableMotive motive = BRUnavailableMotives.GetUnavailableMotive(Convert.ToInt32(txtguum.Text), true);
                    if (motive == null)
                    {
                        UIHelper.ShowMessage("The unavailable motive does not exist");
                        txtguum.Text = string.Empty;
                        txtguum.Focus();
                    }
                    else
                    {
                        cboguum.SelectedValue = txtguum.Text;
                    }
                }
            }
            else
            {
                cboguum.SelectedIndex = -1;
            }
            _searchUmByTxt = false;
        }
        /// <summary>
        /// Recarga los registros del grid
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <history>
        /// [emoguel] created 04/06/2016
        /// </history>
        private void btnRef_Click(object sender, RoutedEventArgs e)
        {
            UnavailableMotive unavailableMotive = (UnavailableMotive)dgrUnavailableMotives.SelectedItem;

            LoadUnavailableMotives(unavailableMotive);
        }
Example #7
0
        /// <summary>
        /// Guarda un registro en el catalogo UnavailableMotives
        /// </summary>
        /// <param name="unavailableMotive">objeto a guardar</param>
        /// <param name="lstAgencyAdd">Agencies a asignar</param>
        /// <param name="lstContractAdd">Contracts a asignar</param>
        /// <param name="lstCountryAdd">Countries a asignar</param>
        /// <param name="blnUpdate">True. Actualiza | false. Insertar</param>
        /// <returns>-1. Existe un registro con el mismo ID| 0. No se guardó | 1. Se guardó correctamente</returns>
        /// <history>
        /// [emoguel] created 06/06/2016
        /// </history>
        public async static Task <int> SaveUnavailableMotives(UnavailableMotive unavailableMotive, List <Agency> lstAgencyAdd, List <Contract> lstContractAdd, List <Country> lstCountryAdd, bool blnUpdate)
        {
            int nRes = await Task.Run(() => {
                using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString()))
                {
                    using (var transacction = dbContext.Database.BeginTransaction(System.Data.IsolationLevel.Serializable))
                    {
                        try
                        {
                            #region Update
                            if (blnUpdate)
                            {
                                dbContext.Entry(unavailableMotive).State = System.Data.Entity.EntityState.Modified;
                            }
                            #endregion
                            #region Insert
                            else
                            {
                                if (dbContext.UnavailableMotives.Where(um => um.umID == unavailableMotive.umID).FirstOrDefault() != null)
                                {
                                    return(-1);
                                }
                                else
                                {
                                    dbContext.UnavailableMotives.Add(unavailableMotive);
                                }
                            }
                            #endregion

                            #region Agencies
                            dbContext.Agencies.AsEnumerable().Where(ag => lstAgencyAdd.Any(agg => agg.agID == ag.agID)).ToList().ForEach(ag => {
                                ag.agum = unavailableMotive.umID;
                            });
                            #endregion

                            #region Countries
                            dbContext.Countries.AsEnumerable().Where(co => lstCountryAdd.Any(coo => coo.coID == co.coID)).ToList().ForEach(co => {
                                co.coum = unavailableMotive.umID;
                            });
                            #endregion

                            #region Contracts
                            dbContext.Contracts.AsEnumerable().Where(cn => lstContractAdd.Any(cnn => cnn.cnID == cn.cnID)).ToList().ForEach(cn => {
                                cn.cnum = unavailableMotive.umID;
                            });
                            #endregion

                            int nSave = dbContext.SaveChanges();
                            transacction.Commit();
                            return(nSave);
                        }
                        catch
                        {
                            transacction.Rollback();
                            throw;
                        }
                    }
                }
            });

            return(nRes);
        }
Example #8
0
        /// <summary>
        /// Devuelve la lista de UnavailMots
        /// </summary>
        /// <param name="nStatus">-1. Todos los registros | 0. Registros inactivos | 1. Registros Activos</param>
        /// <returns>Lista de UnavailMots</returns>
        /// <history>
        /// [Emoguel] created 01/03/2016
        /// [emoguel] modified 30/05/2016 Se volvió async el método
        /// </history>
        public async static Task <List <UnavailableMotive> > GetUnavailableMotives(int nStatus = -1, UnavailableMotive unavailableMotive = null)
        {
            List <UnavailableMotive> lstUnavailMot = new List <UnavailableMotive>();
            await Task.Run(() =>
            {
                using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString()))
                {
                    var query = from um in dbContext.UnavailableMotives
                                select um;

                    if (nStatus != -1)//Se filtra por estatus
                    {
                        bool blnStatus = Convert.ToBoolean(nStatus);
                        query          = query.Where(um => um.umA == blnStatus);
                    }

                    if (unavailableMotive != null)
                    {
                        if (unavailableMotive.umID > 0)//filtro por ID
                        {
                            query = query.Where(um => um.umID == unavailableMotive.umID);
                        }

                        if (!string.IsNullOrWhiteSpace(unavailableMotive.umN))//Filtro por descripción
                        {
                            query = query.Where(um => um.umN.Contains(unavailableMotive.umN));
                        }
                    }
                    lstUnavailMot = query.OrderBy(um => um.umN).ToList();
                }
            });

            return(lstUnavailMot);
        }