Пример #1
0
        /// <summary>
        /// Guarda un sale Type Category.
        /// agregar sale Types al sale type category
        /// Eliminar saleTypes del sale type category
        /// </summary>
        /// <param name="saleTypeCategory">Objeto a guardar en la BD</param>
        /// <param name="blnUpdate">
        /// True. Actualiza
        /// False. Agrega
        /// </param>
        /// <param name="lstAddSaleTypes">Sale Types a agregar</param>
        /// <param name="lstDelSaleTypes">Sale Types a Eliiminar</param>
        /// <returns>-1.- Existe un registro con el mismo ID| 0. No se guardó | >0. Se guardó correctamente</returns>
        /// <history>
        /// [emoguel] created 01-08-2016
        /// </history>
        public static async Task <int> SaveSaleTypeCategory(SaleTypeCategory saleTypeCategory, bool blnUpdate, List <SaleType> lstAddSaleTypes, List <SaleType> lstDelSaleTypes)
        {
            return(await Task.Run(() =>
            {
                using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString()))
                {
                    using (var transacction = dbContext.Database.BeginTransaction(System.Data.IsolationLevel.Serializable))
                    {
                        try
                        {
                            if (blnUpdate)
                            {
                                dbContext.Entry(saleTypeCategory).State = EntityState.Modified;
                            }
                            else
                            {
                                if (dbContext.SaleTypesCategories.Where(stc => stc.stcID == saleTypeCategory.stcID).FirstOrDefault() != null)
                                {
                                    return -1;
                                }
                                else
                                {
                                    dbContext.Entry(saleTypeCategory).State = EntityState.Added;
                                }
                            }

                            #region
                            //Agregar saleTypes
                            if (lstAddSaleTypes.Count > 0)
                            {
                                lstAddSaleTypes.ForEach(st =>
                                {
                                    st.ststc = saleTypeCategory.stcID;
                                    dbContext.Entry(st).State = EntityState.Modified;
                                });
                            }
                            //Eliminar saleTypes
                            if (lstDelSaleTypes.Count > 0)
                            {
                                lstDelSaleTypes.ForEach(st =>
                                {
                                    st.ststc = null;
                                    dbContext.Entry(st).State = EntityState.Modified;
                                });
                            }
                            #endregion

                            int nRes = dbContext.SaveChanges();
                            transacction.Commit();
                            return nRes;
                        }
                        catch
                        {
                            transacction.Rollback();
                            throw;
                        }
                    }
                }
            }));
        }
Пример #2
0
        /// <summary>
        /// Valida si un SaleTypeCategory cumple con los filtros actuales
        /// </summary>
        /// <param name="saleTypeCategory">objeto a validar</param>
        /// <returns>
        /// True. Si cumple con los filtros
        /// False. No cumple con los filtros actuales
        /// </returns>
        /// <history>
        /// [emoguel] created 30/07/2016
        /// </history>
        private bool ValidateFilter(SaleTypeCategory saleTypeCategory)
        {
            if (_nStatus != -1)//Filtro por estatus
            {
                if (saleTypeCategory.stcA != Convert.ToBoolean(_nStatus))
                {
                    return(false);
                }
            }

            if (!string.IsNullOrWhiteSpace(_saleTypeCategoryFilter.stcID))//Filtro por ID
            {
                if (_saleTypeCategoryFilter.stcID != saleTypeCategory.stcID)
                {
                    return(false);
                }
            }

            if (!string.IsNullOrWhiteSpace(_saleTypeCategoryFilter.stcN))//Filtro por descripción
            {
                if (!saleTypeCategory.stcN.Contains(_saleTypeCategoryFilter.stcN, StringComparison.OrdinalIgnoreCase))
                {
                    return(false);
                }
            }
            return(true);
        }
Пример #3
0
        /// <summary>
        /// Abre la ventana detalle en modo "detalle" o "edición" dependiendo de sus permisos
        /// </summary>
        /// <history>
        /// [emoguel] created 30/07/2016
        /// </history>
        private void Cell_DoubleClick(object sender, RoutedEventArgs e)
        {
            frmSaleTypeCategoryDetail frmSaleTypeCategory = new frmSaleTypeCategoryDetail();

            frmSaleTypeCategory.Owner    = this;
            frmSaleTypeCategory.enumMode = EnumMode.Edit;
            SaleTypeCategory saleTypeCategory = dgrSaleTypesCategories.SelectedItem as SaleTypeCategory;

            frmSaleTypeCategory.oldSaleTypeCategory = saleTypeCategory;
            if (frmSaleTypeCategory.ShowDialog() == true)
            {
                List <SaleTypeCategory> lstSaleTypes = dgrSaleTypesCategories.ItemsSource as List <SaleTypeCategory>;
                int nIndex = 0;
                if (ValidateFilter(frmSaleTypeCategory.saleTypeCategory))
                {
                    ObjectHelper.CopyProperties(saleTypeCategory, frmSaleTypeCategory.saleTypeCategory); //Actualizamos los datos
                    lstSaleTypes.Sort((x, y) => string.Compare(x.stcN, y.stcN));                         //Ordenamos la lista
                    nIndex = lstSaleTypes.IndexOf(saleTypeCategory);                                     //Buscamos la posición
                }
                else
                {
                    lstSaleTypes.Remove(saleTypeCategory);
                }
                dgrSaleTypesCategories.Items.Refresh();                           //Actualizamos la vista
                GridHelper.SelectRow(dgrSaleTypesCategories, nIndex);             //Seleccionamos el registro
                StatusBarReg.Content = "Categories (" + lstSaleTypes.Count + ")"; //Actualizamos el contador
            }
        }
Пример #4
0
        /// <summary>
        /// carga el grid con registros
        /// </summary>
        /// <param name="saleTypeCategory">Objeto a seleccionar en caso de que se envíe uno</param>
        /// <history>
        /// [emoguel] created 30/07/2016
        /// </history>
        private async void LoadSaleTypesCategories(SaleTypeCategory saleTypeCategory = null)
        {
            try
            {
                status.Visibility = Visibility.Collapsed;
                int nIndex = 0;
                List <SaleTypeCategory> lstSaleTypesCategories = await BRSaleTypesCategories.GetSaleCategories(_nStatus, _saleTypeCategoryFilter);

                dgrSaleTypesCategories.ItemsSource = lstSaleTypesCategories;
                if (lstSaleTypesCategories.Count > 0 && saleTypeCategory != null)
                {
                    saleTypeCategory = lstSaleTypesCategories.Where(stc => stc.stcID == saleTypeCategory.stcID).FirstOrDefault();
                    nIndex           = lstSaleTypesCategories.IndexOf(saleTypeCategory);
                }
                GridHelper.SelectRow(dgrSaleTypesCategories, nIndex);
                StatusBarReg.Content = "Categories (" + lstSaleTypesCategories.Count + ")";
                status.Visibility    = Visibility.Collapsed;
            }
            catch (Exception ex)
            {
                UIHelper.ShowMessage(ex);
            }
        }
Пример #5
0
        /// <summary>
        /// Obtiene registros del catalogo SaleTypeCategories
        /// </summary>
        /// <param name="nStatus">-1. Todos | 0. Inactivos | 1. Activos</param>
        /// <param name="saleTypeCategory">Objeto con filtros adicionales</param>
        /// <returns>Lista de tipo SaleTypeCategory</returns>
        /// <history>
        /// [emoguel] created 19/04/2016
        /// [emoguel] modified 28/06/2016 -----> Se volvió async
        /// </history>
        public async static Task <List <SaleTypeCategory> > GetSaleCategories(int nStatus = -1, SaleTypeCategory saleTypeCategory = null)
        {
            return(await Task.Run(() =>
            {
                using (var dbContext = new IMEntities(ConnectionHelper.ConnectionString()))
                {
                    var query = from stc in dbContext.SaleTypesCategories
                                select stc;

                    if (nStatus != -1)//Filtro por estatus
                    {
                        bool blnStatus = Convert.ToBoolean(nStatus);
                        query = query.Where(stc => stc.stcA == blnStatus);
                    }

                    if (saleTypeCategory != null)//Verificamos que se tenga un objeto
                    {
                        if (!string.IsNullOrWhiteSpace(saleTypeCategory.stcID))
                        {
                            query = query.Where(stc => stc.stcID == saleTypeCategory.stcID);
                        }

                        if (!string.IsNullOrWhiteSpace(saleTypeCategory.stcN))//Filtro por descripción
                        {
                            query = query.Where(stc => stc.stcN.Contains(saleTypeCategory.stcN));
                        }
                    }
                    return query.OrderBy(stc => stc.stcN).ToList();
                }
            }));
        }
Пример #6
0
        /// <summary>
        /// Recarga los datos de la lista
        /// </summary>
        /// <history>
        /// [emoguel] created 30/07/2016
        /// </history>
        private void btnRef_Click(object sender, RoutedEventArgs e)
        {
            SaleTypeCategory saleTypeCategory = dgrSaleTypesCategories.SelectedItem as SaleTypeCategory;

            LoadSaleTypesCategories(saleTypeCategory);
        }