private void Novo(object objParam)
        {
            tbProdutoGrupo objProdutoGrupoAux = new tbProdutoGrupo();

            objProdutoGrupoAux.tbProdutoSubGrupo = new List <tbProdutoSubGrupo>();
            tbProdutoSubGrupo objProdutoSubGrupo = new tbProdutoSubGrupo();

            objProdutoGrupoAux.tbProdutoSubGrupo.Add(objProdutoSubGrupo);
            objProdutoGrupo        = objProdutoGrupoAux;
            base.enStatusTelaAtual = enStatusTela.EmInclusaoOuAlteracao;
        }
        public void Pesquisar(object objParam)
        {
            if (objParam != null && objParam.GetType() == typeof(tbProdutoGrupo))
            {
                if (base.blnJanela)
                {
                    _objProdutoGrupo = (tbProdutoGrupo)objParam;
                    Dispose();
                }
            }
            else
            {
                int intSkip;
                if (objParam == null || !int.TryParse(objParam.ToString(), out intSkip))
                {
                    intSkip = 0;
                }

                Retorno objRetorno;
                using (var objBLL = new ProdutoGrupos())
                {
                    objRetorno = objBLL.RetornaListaProdutoGrupo(strPgrCodigoPesquisa, strPgrNomePesquisa, intSkip, base.intQtdeRegPagina);
                }
                if (objRetorno.intCodigoErro == 0)
                {
                    if (objRetorno.intQtdeRegistro > 0)
                    {
                        if ((objRetorno.intQtdeRegistro % base.intQtdeRegPagina) > 0)
                        {
                            base.intTotalPagina = (int)(objRetorno.intQtdeRegistro / base.intQtdeRegPagina) + 1;
                        }
                        else
                        {
                            base.intTotalPagina = (int)(objRetorno.intQtdeRegistro / base.intQtdeRegPagina);
                        }
                        base.intPaginaAtual = 1;
                        base.intQtdeReg     = objRetorno.intQtdeRegistro;
                    }
                    arrProdutoGrupoPesquisa = (List <tbProdutoGrupo>)objRetorno.objRetorno;
                    if (arrProdutoGrupoPesquisa.Count() == 0)
                    {
                        base.intTotalPagina = 1;
                        base.intPaginaAtual = 1;
                        base.intQtdeReg     = 0;
                    }
                }
                else
                {
                    MessageBox.Show(objRetorno.strMsgErro, "Atenção", MessageBoxButton.OK, Util.GetMessageImage(objRetorno.intCodigoErro));
                }
            }
        }
示例#3
0
        private string ValidaProdutoGrupo(tbProdutoGrupo objProdutoGrupo)
        {
            if (string.IsNullOrEmpty(objProdutoGrupo.pgr_nome) || string.IsNullOrWhiteSpace(objProdutoGrupo.pgr_nome))
            {
                return("O nome deve ser informado.");
            }

            if (_objCtx.tbProdutoGrupo.AsNoTracking().Any(pgr => (pgr.pgr_nome.Equals(objProdutoGrupo.pgr_nome)) && pgr.pgr_codigo != objProdutoGrupo.pgr_codigo))
            {
                return("Já existe produto grupo com esse nome.");
            }

            return(objProdutoGrupo.tbProdutoSubGrupo.Count == 0 ? "Não foram informados nenhum sub grupo." : string.Empty);
        }
示例#4
0
        public Retorno RetornaProdutoGrupo(int intCodigo, enNavegacao?enDirecao)
        {
            var objRetorno = new Retorno();

            try
            {
                tbProdutoGrupo objProdutoGrupo = null;
                if (enDirecao == null)
                {
                    objProdutoGrupo = _objCtx.tbProdutoGrupo.Include(psgr => psgr.tbProdutoSubGrupo)
                                      .AsNoTracking()
                                      .FirstOrDefault(pgr => pgr.pgr_codigo == intCodigo);
                }
                if (enDirecao == enNavegacao.Proximo)
                {
                    objProdutoGrupo = _objCtx.tbProdutoGrupo.Include(psgr => psgr.tbProdutoSubGrupo).AsNoTracking()
                                      .Where(pgr => pgr.pgr_codigo > intCodigo)
                                      .OrderBy(pgr => pgr.pgr_codigo).FirstOrDefault();
                }
                if (enDirecao == enNavegacao.Anterior)
                {
                    objProdutoGrupo = _objCtx.tbProdutoGrupo.Include(psgr => psgr.tbProdutoSubGrupo).AsNoTracking()
                                      .Where(pgr => pgr.pgr_codigo < intCodigo)
                                      .OrderByDescending(pgr => pgr.pgr_codigo).FirstOrDefault();
                }
                if (objProdutoGrupo != null)
                {
                    objRetorno.intCodigoErro = 0;
                    objRetorno.objRetorno    = objProdutoGrupo;
                }
                else
                {
                    objRetorno.intCodigoErro = 48;
                    objRetorno.strMsgErro    = "Registro não encontrado";
                }
            }
            catch (Exception ex)
            {
                Util.LogErro(ex);
                objRetorno.intCodigoErro        = 16;
                objRetorno.strMsgErro           = ex.Message;
                objRetorno.strExceptionToString = ex.ToString();
            }
            return(objRetorno);
        }
示例#5
0
        public Retorno SalvarProdutoGrupo(tbProdutoGrupo objProdutoGrupo, int intFunCodigo)
        {
            var objRetorno   = new Retorno();
            var strValidacao = ValidaProdutoGrupo(objProdutoGrupo);

            try
            {
                if (strValidacao == string.Empty)
                {
                    foreach (var objProdutoSubGrupo in objProdutoGrupo.tbProdutoSubGrupo)
                    {
                        objProdutoSubGrupo.tbProduto      = null;
                        objProdutoSubGrupo.tbProdutoGrupo = null;
                    }
                    enOperacao enTipoOperacao;
                    if (objProdutoGrupo.pgr_codigo == 0)
                    {
                        enTipoOperacao = enOperacao.Inclusao;
                        _objCtx.tbProdutoGrupo.Add(objProdutoGrupo);
                    }
                    else
                    {
                        enTipoOperacao = enOperacao.Alteracao;
                        var objProdutoGrupoContexto = _objCtx.tbProdutoGrupo.Include(psgr => psgr.tbProdutoSubGrupo).FirstOrDefault(pgr => pgr.pgr_codigo == objProdutoGrupo.pgr_codigo);
                        //Remover subgrupos que não vieram na coleçao
                        var arrPsgrCodigo = objProdutoGrupo.tbProdutoSubGrupo.Select(psgr => psgr.psgr_codigo).ToArray();
                        if (objProdutoGrupoContexto != null)
                        {
                            _objCtx.tbProdutoSubGrupo.RemoveRange(objProdutoGrupoContexto.tbProdutoSubGrupo.Where(psgr => !arrPsgrCodigo.Contains(psgr.psgr_codigo)));

                            //Alterar os subgrupos que vieram na coleção
                            foreach (var objProdutoSubGrupoContexto in objProdutoGrupoContexto.tbProdutoSubGrupo.Where(psgr => arrPsgrCodigo.Contains(psgr.psgr_codigo)))
                            {
                                _objCtx.Entry(objProdutoSubGrupoContexto).CurrentValues.SetValues(objProdutoGrupo.tbProdutoSubGrupo.FirstOrDefault(psgr => psgr.psgr_codigo == objProdutoSubGrupoContexto.psgr_codigo));
                            }

                            //Inclui os subgrupos que vieram na coleção sem codigo
                            foreach (var objItem in objProdutoGrupo.tbProdutoSubGrupo.Where(psgr => psgr.psgr_codigo == 0))
                            {
                                objItem.pgr_codigo = objProdutoGrupo.pgr_codigo;
                                _objCtx.tbProdutoSubGrupo.Add(objItem);
                            }

                            //Atualiza o grupo de produtos
                            _objCtx.Entry(objProdutoGrupoContexto).CurrentValues.SetValues(objProdutoGrupo);
                        }
                    }
                    _objCtx.SaveChanges();
                    using (var objBll = new Auditoria(ref _objCtx, ref _objTransacao))
                        objBll.SalvarAuditoria(objProdutoGrupo.pgr_codigo, enTipoOperacao, objProdutoGrupo, intFunCodigo);
                    objRetorno.intCodigoErro = 0;
                }
                else
                {
                    objRetorno.intCodigoErro = 48;
                    objRetorno.strMsgErro    = strValidacao;
                }
            }
            catch (Exception ex)
            {
                Util.LogErro(ex);
                objRetorno.intCodigoErro        = 16;
                objRetorno.strMsgErro           = ex.Message;
                objRetorno.strExceptionToString = ex.ToString();
            }
            return(objRetorno);
        }