コード例 #1
0
ファイル: Mesa.cs プロジェクト: rodrigo-brizzi/BSFood
        public Retorno SalvarMesa(tbMesa objMesa, int intFunCodigo)
        {
            var objRetorno   = new Retorno();
            var strValidacao = ValidaMesa(objMesa);

            try
            {
                if (strValidacao == string.Empty)
                {
                    var intPedCodigo = objMesa.tbPedido.ped_codigo;
                    using (var objBllPedido = new Pedidos())
                    {
                        objRetorno = objBllPedido.SalvarPedido(objMesa.tbPedido, enOrigemPedido.Comanda, intFunCodigo);
                    }
                    if (objRetorno.intCodigoErro == 0)
                    {
                        var objPedidoAux = objRetorno.objRetorno as tbPedido;
                        if (intPedCodigo == 0)
                        {
                            objMesa.tbPedido   = null;
                            objMesa.mes_status = enStatusMesa.O.ToString();//O
                            if (objPedidoAux != null)
                            {
                                objMesa.ped_codigo = objPedidoAux.ped_codigo;
                            }
                            var objMesaContexto = _objCtx.tbMesa.FirstOrDefault(mes => mes.mes_codigo == objMesa.mes_codigo);
                            _objCtx.Entry(objMesaContexto).CurrentValues.SetValues(objMesa);
                            _objCtx.SaveChanges();
                            using (var objBll = new Auditoria(ref _objCtx, ref _objTransacao))
                                objBll.SalvarAuditoria(objMesa.mes_codigo, enOperacao.Outro, objMesa, intFunCodigo);
                        }
                        objMesa.tbPedido      = objPedidoAux;
                        objRetorno.objRetorno = objMesa;
                    }
                }
                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);
        }
コード例 #2
0
        public Retorno SalvarEmpresa(tbEmpresa objEmpresa, int intFunCodigo)
        {
            var objRetorno   = new Retorno();
            var strValidacao = ValidaEmpresa(objEmpresa);

            try
            {
                if (strValidacao == string.Empty)
                {
                    var objEmpresaContexto = _objCtx.tbEmpresa.FirstOrDefault();
                    _objCtx.Entry(objEmpresaContexto).CurrentValues.SetValues(objEmpresa);
                    _objCtx.SaveChanges();
                    using (var objBll = new Auditoria(ref _objCtx, ref _objTransacao))
                        objBll.SalvarAuditoria(objEmpresa.emp_codigo, enOperacao.Alteracao, objEmpresa, intFunCodigo);
                    objRetorno = RetornaEmpresa();
                }
                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);
        }
コード例 #3
0
ファイル: EventoDAL.cs プロジェクト: mmgusta/eventos
 public void Editar(CadastroEventoModel evento)
 {
     using (EFContexto contexto = new EFContexto())
     {
         contexto.Entry(evento).State = EntityState.Modified;
         contexto.SaveChanges();
     }
 }
コード例 #4
0
ファイル: HomeController.cs プロジェクト: mmgusta/eventos
        public ActionResult ExcluirConfirmar(int id)
        {
            CadastroEventoModel evento = context.Evento.Find(id);

            context.Evento.Remove(evento);
            context.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #5
0
        public Retorno SalvarFuncionario(tbFuncionario objFuncionario, int intFunCodigo)
        {
            var objRetorno   = new Retorno();
            var strValidacao = ValidaFuncionario(objFuncionario);

            try
            {
                if (strValidacao == string.Empty)
                {
                    objFuncionario.tbPerfilAcesso = null;
                    enOperacao enTipoOperacao;
                    if (objFuncionario.fun_codigo == 0)
                    {
                        enTipoOperacao = enOperacao.Inclusao;
                        _objCtx.tbFuncionario.Add(objFuncionario);
                    }
                    else
                    {
                        enTipoOperacao = enOperacao.Alteracao;
                        var objFuncionarioContexto = _objCtx.tbFuncionario.FirstOrDefault(fun => fun.fun_codigo == objFuncionario.fun_codigo);
                        _objCtx.Entry(objFuncionarioContexto).CurrentValues.SetValues(objFuncionario);
                    }
                    _objCtx.SaveChanges();
                    using (var objBll = new Auditoria(ref _objCtx, ref _objTransacao))
                        objBll.SalvarAuditoria(objFuncionario.fun_codigo, enTipoOperacao, objFuncionario, 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);
        }
コード例 #6
0
ファイル: Clientes.cs プロジェクト: rodrigo-brizzi/BSFood
        public Retorno ExcluirCliente(int intCodigo)
        {
            var objRetorno = new Retorno();

            try
            {
                //Cria um contexto isolado para a trasacao de exclusao
                using (var objContexto = new EFContexto())
                {
                    //Inicia uma transacao no contexto isolado
                    using (var transacao = objContexto.Database.BeginTransaction())
                    {
                        try
                        {
                            var objCliente = objContexto.tbCliente.Include(cen => cen.tbClienteEndereco)
                                             .Include(ctl => ctl.tbClienteTelefone).FirstOrDefault(cli => cli.cli_codigo == intCodigo);
                            if (objCliente != null)
                            {
                                objContexto.tbClienteEndereco.RemoveRange(objCliente.tbClienteEndereco);
                                objContexto.tbClienteTelefone.RemoveRange(objCliente.tbClienteTelefone);
                                objContexto.tbCliente.Remove(objCliente);
                                objContexto.SaveChanges();
                                transacao.Commit();

                                objRetorno.intCodigoErro = 0;
                                objRetorno.objRetorno    = true;
                            }
                            else
                            {
                                objRetorno.intCodigoErro = 48;
                                objRetorno.strMsgErro    = "Cliente não encontrado para exclusão";
                            }
                        }
                        catch (Exception)
                        {
                            //Se deu erro é porque o perfil tem  registros relacionado
                            transacao.Rollback();
                            objRetorno.intCodigoErro = 48;
                            objRetorno.strMsgErro    = "Cliente não pode ser excluido pois há registros relacionados ao mesmo";
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Util.LogErro(ex);
                objRetorno.intCodigoErro        = 16;
                objRetorno.strMsgErro           = ex.Message;
                objRetorno.strExceptionToString = ex.ToString();
            }
            return(objRetorno);
        }
コード例 #7
0
ファイル: Fornecedores.cs プロジェクト: rodrigo-brizzi/BSFood
        public Retorno ExcluirFornecedor(int intCodigo)
        {
            var objRetorno = new Retorno();

            try
            {
                //Cria um contexto isolado para a trasacao de exclusao
                using (var objContexto = new EFContexto())
                {
                    //Inicia uma transacao no contexto isolado
                    using (var transacao = objContexto.Database.BeginTransaction())
                    {
                        try
                        {
                            var objFornecedor = objContexto.tbFornecedor.FirstOrDefault(forn => forn.for_codigo == intCodigo);
                            if (objFornecedor != null)
                            {
                                //Tenta excluir o perfil no contexto isolado
                                objContexto.tbFornecedor.Remove(objFornecedor);
                                objContexto.SaveChanges();
                                transacao.Commit();

                                objRetorno.intCodigoErro = 0;
                                objRetorno.objRetorno    = true;
                            }
                            else
                            {
                                objRetorno.intCodigoErro = 48;
                                objRetorno.strMsgErro    = "Fornecedor não encontrado para exclusão";
                            }
                        }
                        catch (Exception)
                        {
                            //Se deu erro é porque o perfil tem  registros relacionado
                            transacao.Rollback();
                            objRetorno.intCodigoErro = 48;
                            objRetorno.strMsgErro    = "Fornecedor não pode ser excluido pois há registros relacionados ao mesmo";
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                FrameworkUtil.LogErro(ex);
                objRetorno.intCodigoErro        = 16;
                objRetorno.strMsgErro           = ex.Message;
                objRetorno.strExceptionToString = ex.ToString();
            }
            return(objRetorno);
        }
コード例 #8
0
        public Boolean Inserir(LocalEventoModel local)
        {
            using (EFContexto contexto = new EFContexto())
            {
                if (!contexto.LocalEvento.Any(l => (l.Nome == local.Nome) && (l.Endereco == local.Endereco)))
                {
                    contexto.LocalEvento.Add(local);
                    contexto.SaveChanges();
                    return(true);
                }

                return(false);
            }
        }
コード例 #9
0
ファイル: EventoDAL.cs プロジェクト: mmgusta/eventos
        public Boolean Inserir(CadastroEventoModel evento)
        {
            using (EFContexto contexto = new EFContexto())
            {
                if (!contexto.Evento.Any(o => (o.Nome == evento.Nome) && (o.LocalId == evento.LocalId) && (o.Data == evento.Data)))
                {
                    contexto.Evento.Add(evento);
                    contexto.SaveChanges();
                    return(true);
                }

                return(false);
            }
        }
コード例 #10
0
        public void SalvarAuditoria(int intCodRegistro, enOperacao enAcao, object objTabela, int intFunCodigo)
        {
            var objAuditoria = new tbAuditoria()
            {
                aud_codigoRegistro = intCodRegistro,
                aud_data           = DateTime.Now,
                aud_nomeTabela     = objTabela.GetType().Name.Split('_')[0],
                aud_login          = _objCtx.tbFuncionario.AsNoTracking().First(fun => fun.fun_codigo == intFunCodigo).fun_login,
                fun_codigo         = intFunCodigo,
                audo_codigo        = (int)enAcao
            };

            _objCtx.tbAuditoria.Add(objAuditoria);
            _objCtx.SaveChanges();
        }
コード例 #11
0
        public Retorno ExcluirProdutoGrupo(int intCodigo)
        {
            var objRetorno = new Retorno();

            try
            {
                using (var objContexto = new EFContexto())
                {
                    using (var transacao = objContexto.Database.BeginTransaction())
                    {
                        try
                        {
                            var objProdutoGrupo = objContexto.tbProdutoGrupo.Include(psgr => psgr.tbProdutoSubGrupo).FirstOrDefault(pgr => pgr.pgr_codigo == intCodigo);
                            if (objProdutoGrupo != null)
                            {
                                objContexto.tbProdutoSubGrupo.RemoveRange(objProdutoGrupo.tbProdutoSubGrupo);
                                objContexto.tbProdutoGrupo.Remove(objProdutoGrupo);
                                objContexto.SaveChanges();
                                transacao.Commit();

                                objRetorno.intCodigoErro = 0;
                                objRetorno.objRetorno    = true;
                            }
                            else
                            {
                                objRetorno.intCodigoErro = 48;
                                objRetorno.strMsgErro    = "Produto Grupo não encontrado para exclusão";
                            }
                        }
                        catch (Exception)
                        {
                            transacao.Rollback();
                            objRetorno.intCodigoErro = 48;
                            objRetorno.strMsgErro    = "Produto Grupo não pode ser excluido pois há registros relacionados ao mesmo";
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Util.LogErro(ex);
                objRetorno.intCodigoErro        = 16;
                objRetorno.strMsgErro           = ex.Message;
                objRetorno.strExceptionToString = ex.ToString();
            }
            return(objRetorno);
        }
コード例 #12
0
        public Retorno ExcluirFormaPagamento(int intCodigo)
        {
            var objRetorno = new Retorno();

            try
            {
                using (var objContexto = new EFContexto())
                {
                    using (var transacao = objContexto.Database.BeginTransaction())
                    {
                        try
                        {
                            var objFormaPagamento = objContexto.tbFormaPagamento.FirstOrDefault(fpg => fpg.fpg_codigo == intCodigo);
                            if (objFormaPagamento != null)
                            {
                                objContexto.tbFormaPagamento.Remove(objFormaPagamento);
                                objContexto.SaveChanges();
                                transacao.Commit();

                                objRetorno.intCodigoErro = 0;
                                objRetorno.objRetorno    = true;
                            }
                            else
                            {
                                objRetorno.intCodigoErro = 48;
                                objRetorno.strMsgErro    = "FormaPagamento não encontrado para exclusão";
                            }
                        }
                        catch (Exception)
                        {
                            transacao.Rollback();
                            objRetorno.intCodigoErro = 48;
                            objRetorno.strMsgErro    = "FormaPagamento não pode ser excluido pois há registros relacionados ao mesmo.";
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                FrameworkUtil.LogErro(ex);
                objRetorno.intCodigoErro        = 16;
                objRetorno.strMsgErro           = ex.Message;
                objRetorno.strExceptionToString = ex.ToString();
            }
            return(objRetorno);
        }
コード例 #13
0
        public string Atualizar(TEntidade classe)
        {
            using (var db = new EFContexto())
            {
                db.Entry(classe).State = EntityState.Modified;

                try
                {
                    db.SaveChanges();
                    return("");
                }
                catch (Exception e)
                {
                    return(e.Message);
                }
            }
        }
コード例 #14
0
        public string Cadastrar(TEntidade classe)
        {
            using (var db = new EFContexto())
            {
                db.Set <TEntidade>().Add(classe);

                try
                {
                    db.SaveChanges();
                    return("");
                }
                catch (Exception e)
                {
                    return(e.Message);
                }
            }
        }
コード例 #15
0
ファイル: Fornecedores.cs プロジェクト: rodrigo-brizzi/BSFood
        public Retorno SalvarFornecedor(tbFornecedor objFornecedor, int intFunCodigo)
        {
            var objRetorno   = new Retorno();
            var strValidacao = ValidaFornecedor(objFornecedor);

            try
            {
                if (strValidacao == string.Empty)
                {
                    enOperacao enTipoOperacao;
                    if (objFornecedor.for_codigo == 0)
                    {
                        enTipoOperacao = enOperacao.Inclusao;
                        _objCtx.tbFornecedor.Add(objFornecedor);
                    }
                    else
                    {
                        enTipoOperacao = enOperacao.Alteracao;
                        var objFornecedorContexto = _objCtx.tbFornecedor.FirstOrDefault(forn => forn.for_codigo == objFornecedor.for_codigo);
                        _objCtx.Entry(objFornecedorContexto).CurrentValues.SetValues(objFornecedor);
                    }
                    _objCtx.SaveChanges();
                    using (var objBll = new Auditoria(ref _objCtx, ref _objTransacao))
                        objBll.SalvarAuditoria(objFornecedor.for_codigo, enTipoOperacao, objFornecedor, intFunCodigo);
                    objRetorno.intCodigoErro = 0;
                }
                else
                {
                    objRetorno.intCodigoErro = 48;
                    objRetorno.strMsgErro    = strValidacao;
                }
            }
            catch (Exception ex)
            {
                FrameworkUtil.LogErro(ex);
                objRetorno.intCodigoErro        = 16;
                objRetorno.strMsgErro           = ex.Message;
                objRetorno.strExceptionToString = ex.ToString();
            }
            return(objRetorno);
        }
コード例 #16
0
        public Retorno RetornaCupomComanda(tbPedido objPedido)
        {
            var objRetorno = new Retorno();

            try
            {
                var sbConteudo = new StringBuilder();
                if (objPedido != null)
                {
                    sbConteudo.Append("COMANDA MESA NRO: " + objPedido.ped_numeroMesa.ToString("000") + Environment.NewLine);
                    sbConteudo.Append("QTD DESCRICAO                 " + Environment.NewLine);
                    sbConteudo.Append("------------------------------" + Environment.NewLine);
                    foreach (var objPedidoProduto in objPedido.tbPedidoProduto
                             .Where(ppr => ppr.ppr_impresso == false)
                             .OrderBy(ppr => ppr.ppr_codigo))
                    {
                        var strQuantidade = objPedidoProduto.ppr_quantidade.ToString(objPedidoProduto.ppr_quantidade < 1 ? "0.0" : "000");
                        sbConteudo.Append(strQuantidade + " " +
                                          objPedidoProduto.ppr_descricao.PadRight(26, ' ').Substring(0, 26) + Environment.NewLine);

                        var objPedidoProdutoContexto = _objCtx.tbPedidoProduto.FirstOrDefault(ppr => ppr.ppr_codigo == objPedidoProduto.ppr_codigo);
                        objPedidoProdutoContexto.ppr_impresso         = true;
                        _objCtx.Entry(objPedidoProdutoContexto).State = EntityState.Modified;
                        _objCtx.SaveChanges();
                    }
                    sbConteudo.Append("OBS.: " + objPedido.ped_observacao + Environment.NewLine);
                    sbConteudo.Append("ATENDENTE: " + objPedido.tbFuncionario.fun_nome);
                }
                objRetorno.intCodigoErro = 0;
                objRetorno.objRetorno    = sbConteudo.ToString();
            }
            catch (Exception ex)
            {
                Util.LogErro(ex);
                objRetorno.intCodigoErro        = 16;
                objRetorno.strMsgErro           = ex.Message;
                objRetorno.strExceptionToString = ex.ToString();
            }
            return(objRetorno);
        }
コード例 #17
0
        public Retorno FecharPedidoMesa(tbPedido objPedido)
        {
            var objRetorno   = new Retorno();
            var strValidacao = ValidaPedidoMesa(objPedido);

            try
            {
                if (strValidacao == string.Empty)
                {
                    objPedido.tbFuncionario    = null;
                    objPedido.tbFormaPagamento = null;
                    foreach (var objPedidoProduto in objPedido.tbPedidoProduto)
                    {
                        objPedidoProduto.tbProduto = null;
                        objPedidoProduto.tbPedido  = null;
                    }
                    enOperacao enTipoOperacao;
                    if (objPedido.ped_codigo > 0)
                    {
                        enTipoOperacao = enOperacao.Alteracao;
                        var objPedidoContexto = _objCtx.tbPedido.Include(ppr => ppr.tbPedidoProduto).FirstOrDefault(ped => ped.ped_codigo == objPedido.ped_codigo);
                        //Remover produtos que não vieram na coleçao
                        var arrPsgrCodigo = objPedido.tbPedidoProduto.Select(ppr => ppr.ppr_codigo).ToArray();
                        if (objPedidoContexto != null)
                        {
                            _objCtx.tbPedidoProduto.RemoveRange(objPedidoContexto.tbPedidoProduto.Where(ppr => !arrPsgrCodigo.Contains(ppr.ppr_codigo)));

                            //Alterar os produtos que vieram na coleção
                            foreach (var objPedidoProdutoContexto in objPedidoContexto.tbPedidoProduto.Where(ppr => arrPsgrCodigo.Contains(ppr.ppr_codigo)))
                            {
                                _objCtx.Entry(objPedidoProdutoContexto).CurrentValues.SetValues(objPedido.tbPedidoProduto.FirstOrDefault(ppr => ppr.ppr_codigo == objPedidoProdutoContexto.ppr_codigo));
                            }

                            //Inclui os produtos que vieram na coleção sem codigo
                            foreach (var objItem in objPedido.tbPedidoProduto.Where(ppr => ppr.ppr_codigo == 0))
                            {
                                objItem.ped_codigo = objPedido.ped_codigo;
                                _objCtx.tbPedidoProduto.Add(objItem);
                            }

                            objPedido.ped_status = "F";

                            //Atualiza o pedido
                            _objCtx.Entry(objPedidoContexto).CurrentValues.SetValues(objPedido);
                        }
                        _objCtx.SaveChanges();

                        using (var objContexto = new EFContexto())
                        {
                            var objMesaContexto = objContexto.tbMesa.FirstOrDefault(mes => mes.mes_numero == objPedido.ped_numeroMesa);
                            if (objMesaContexto != null)
                            {
                                objMesaContexto.mes_status = "L";
                                objMesaContexto.ped_codigo = null;
                                objMesaContexto.tbPedido   = null;
                                objContexto.Entry(objMesaContexto).State = EntityState.Modified;
                                objContexto.SaveChanges();
                            }
                        }

                        using (var objBll = new Auditoria(ref _objCtx, ref _objTransacao))
                            objBll.SalvarAuditoria(objPedido.ped_codigo, enTipoOperacao, objPedido, objPedido.fun_codigo);
                        objRetorno.intCodigoErro = 0;
                    }
                    else
                    {
                        objRetorno.intCodigoErro = 48;
                        objRetorno.strMsgErro    = "Mesa não pode ser fechada pois a mesa não foi aberta pela comanda!";
                    }
                }
                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);
        }
コード例 #18
0
        public Retorno SalvarPedido(tbPedido objPedido, enOrigemPedido enOrigem, int intFunCodigo)
        {
            var objRetorno   = new Retorno();
            var strValidacao = ValidaPedido(objPedido, enOrigem);

            try
            {
                if (strValidacao == string.Empty)
                {
                    objPedido.tbFuncionarioEntregador = null;
                    objPedido.tbCliente        = null;
                    objPedido.tbFormaPagamento = null;
                    foreach (var objPedidoProduto in objPedido.tbPedidoProduto)
                    {
                        objPedidoProduto.tbProduto = null;
                        objPedidoProduto.tbPedido  = null;
                    }
                    enOperacao enTipoOperacao;
                    if (objPedido.ped_codigo == 0)
                    {
                        objPedido.ped_data   = DateTime.Now;
                        objPedido.ped_origem = ((char)enOrigem).ToString(); //"E" = Entrega, "C" = Comanda
                        objPedido.ped_status = enStatusPedido.P.ToString(); //"P" = Produção, "E" = Entrega, "F" = Finalizado, "X" = Excluido
                        if (objPedido.fun_funcionarioEntregador != null)
                        {
                            objPedido.ped_status      = enStatusPedido.E.ToString();
                            objPedido.ped_dataEntrega = DateTime.Now;
                        }
                        objPedido.fun_codigo = Util.objConfigStorage.objFuncionario.fun_codigo;
                        objPedido.cai_codigo = Util.objConfigStorage.intCaiCodigo;
                        if (objPedido.ped_cobranca == enFormaCobranca.P.ToString())//"P"
                        {
                            objPedido.ped_observacao = (string.IsNullOrWhiteSpace(objPedido.ped_observacao) ? "" : Environment.NewLine) + "**PEDIDO CONVENIO - NAO COBRAR**";
                        }

                        if (enOrigem == enOrigemPedido.Entrega)
                        {
                            var objCaixaContexto = _objCtx.tbCaixa.FirstOrDefault(cai => cai.cai_codigo == objPedido.cai_codigo);
                            if (objCaixaContexto != null)
                            {
                                objCaixaContexto.cai_ordemPedido++;
                                objPedido.ped_ordem = objCaixaContexto.cai_ordemPedido;
                                _objCtx.Entry(objCaixaContexto).State = EntityState.Modified;
                            }
                        }

                        enTipoOperacao = enOperacao.Inclusao;
                        _objCtx.tbPedido.Add(objPedido);
                    }
                    else
                    {
                        enTipoOperacao = enOperacao.Alteracao;
                        var objPedidoContexto = _objCtx.tbPedido.Include(ppr => ppr.tbPedidoProduto).FirstOrDefault(ped => ped.ped_codigo == objPedido.ped_codigo);

                        if (objPedidoContexto != null && (objPedidoContexto.fun_funcionarioEntregador == null && objPedido.fun_funcionarioEntregador != null))
                        {
                            objPedido.ped_status      = enStatusPedido.E.ToString();//"E";
                            objPedido.ped_dataEntrega = DateTime.Now;
                        }

                        if (objPedidoContexto != null)
                        {
                            _objCtx.tbPedidoProduto.RemoveRange(objPedidoContexto.tbPedidoProduto);
                            _objCtx.Entry(objPedidoContexto).CurrentValues.SetValues(objPedido);
                        }

                        foreach (var objItemProduto in objPedido.tbPedidoProduto)
                        {
                            objItemProduto.ped_codigo = objPedido.ped_codigo;
                            _objCtx.tbPedidoProduto.Add(objItemProduto);
                        }
                    }
                    _objCtx.SaveChanges();
                    using (var objBll = new Auditoria(ref _objCtx, ref _objTransacao))
                        objBll.SalvarAuditoria(objPedido.ped_codigo, enTipoOperacao, objPedido, intFunCodigo);
                    objRetorno = RetornaPedido(objPedido.ped_codigo, null, enOrigem);
                }
                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);
        }
コード例 #19
0
        public Retorno SalvarPedidoEntrega(tbPedido objPedido, int intFunCodigo)
        {
            var objRetorno   = new Retorno();
            var strValidacao = ValidaPedidoEntrega(objPedido);

            using (var objContexto = new EFContexto())
            {
                using (var transacao = objContexto.Database.BeginTransaction())
                {
                    try
                    {
                        if (strValidacao == string.Empty)
                        {
                            //Prepara o cliente
                            objPedido.tbCliente.tbClienteGrupo = null;
                            foreach (var objClienteEndereco in objPedido.tbCliente.tbClienteEndereco)
                            {
                                objClienteEndereco.tbBairro  = null;
                                objClienteEndereco.tbCliente = null;
                            }
                            foreach (var objClienteTelefone in objPedido.tbCliente.tbClienteTelefone)
                            {
                                objClienteTelefone.tbCliente = null;
                            }
                            //Atualiza o cliente
                            if (objPedido.tbCliente.cli_codigo == 0)
                            {
                                objContexto.tbCliente.Add(objPedido.tbCliente);
                                objContexto.SaveChanges();
                                objPedido.cli_codigo = objPedido.tbCliente.cli_codigo;
                            }
                            else
                            {
                                var objClienteContexto = objContexto.tbCliente.Include(cen => cen.tbClienteEndereco)
                                                         .Include(ctl => ctl.tbClienteTelefone)
                                                         .FirstOrDefault(cli => cli.cli_codigo == objPedido.tbCliente.cli_codigo);
                                if (objClienteContexto != null)
                                {
                                    objContexto.tbClienteEndereco.RemoveRange(objClienteContexto.tbClienteEndereco);
                                    objContexto.tbClienteTelefone.RemoveRange(objClienteContexto.tbClienteTelefone);
                                    objContexto.Entry(objClienteContexto).CurrentValues.SetValues(objPedido.tbCliente);
                                }

                                foreach (var objItemEndereco in objPedido.tbCliente.tbClienteEndereco)
                                {
                                    objItemEndereco.cli_codigo = objPedido.tbCliente.cli_codigo;
                                    objContexto.tbClienteEndereco.Add(objItemEndereco);
                                }
                                foreach (var objItemTelefone in objPedido.tbCliente.tbClienteTelefone)
                                {
                                    objItemTelefone.cli_codigo = objPedido.tbCliente.cli_codigo;
                                    objContexto.tbClienteTelefone.Add(objItemTelefone);
                                }
                            }

                            //Prepara o pedido
                            objPedido.tbCliente = null;
                            objPedido.tbFuncionarioEntregador = null;
                            objPedido.tbFormaPagamento        = null;
                            foreach (var objPedidoProduto in objPedido.tbPedidoProduto)
                            {
                                objPedidoProduto.tbProduto = null;
                                objPedidoProduto.tbPedido  = null;
                            }

                            enOperacao enTipoOperacao;
                            if (objPedido.ped_codigo == 0)
                            {
                                enTipoOperacao = enOperacao.Inclusao;

                                objPedido.ped_data   = DateTime.Now;
                                objPedido.ped_origem = "E";                         //"E" = Entrega, "C" = Comanda
                                objPedido.ped_status = enStatusPedido.P.ToString(); //"P" = Produção, "E" = Entrega, "F" = Finalizado, "X" = Excluido
                                if (objPedido.fun_funcionarioEntregador != null)
                                {
                                    objPedido.ped_status      = enStatusPedido.E.ToString();
                                    objPedido.ped_dataEntrega = DateTime.Now;
                                }
                                objPedido.fun_codigo = intFunCodigo;
                                if (objPedido.ped_cobranca == enFormaCobranca.P.ToString())//"P"
                                {
                                    objPedido.ped_observacao = (string.IsNullOrWhiteSpace(objPedido.ped_observacao) ? "" : Environment.NewLine) + "**PEDIDO CONVENIO - NAO COBRAR**";
                                }

                                //Atualizando a ordem de pedido
                                var objCaixaContexto = objContexto.tbCaixa.FirstOrDefault(cai => cai.cai_codigo == objPedido.cai_codigo);
                                if (objCaixaContexto != null)
                                {
                                    objCaixaContexto.cai_ordemPedido++;
                                    objPedido.ped_ordem = objCaixaContexto.cai_ordemPedido;
                                    objContexto.Entry(objCaixaContexto).State = EntityState.Modified;
                                }
                                objContexto.tbPedido.Add(objPedido);
                            }
                            else
                            {
                                enTipoOperacao = enOperacao.Alteracao;

                                var objPedidoContexto = objContexto.tbPedido.Include(ppr => ppr.tbPedidoProduto).FirstOrDefault(ped => ped.ped_codigo == objPedido.ped_codigo);

                                if (objPedidoContexto != null && (objPedidoContexto.fun_funcionarioEntregador == null && objPedido.fun_funcionarioEntregador != null))
                                {
                                    objPedido.ped_status      = enStatusPedido.E.ToString();//"E";
                                    objPedido.ped_dataEntrega = DateTime.Now;
                                }

                                if (objPedidoContexto != null)
                                {
                                    objContexto.tbPedidoProduto.RemoveRange(objPedidoContexto.tbPedidoProduto);
                                    objContexto.Entry(objPedidoContexto).CurrentValues.SetValues(objPedido);
                                }

                                foreach (var objItemProduto in objPedido.tbPedidoProduto)
                                {
                                    objItemProduto.ped_codigo = objPedido.ped_codigo;
                                    objContexto.tbPedidoProduto.Add(objItemProduto);
                                }
                            }
                            objContexto.SaveChanges();
                            transacao.Commit();
                            using (var objBll = new Auditoria(ref _objCtx, ref _objTransacao))
                                objBll.SalvarAuditoria(objPedido.ped_codigo, enTipoOperacao, objPedido, intFunCodigo);
                            objRetorno = RetornaPedido(objPedido.ped_codigo, null, enOrigemPedido.Entrega);
                        }
                        else
                        {
                            objRetorno.intCodigoErro = 48;
                            objRetorno.strMsgErro    = strValidacao;
                        }
                    }
                    catch (Exception ex)
                    {
                        transacao.Rollback();
                        Util.LogErro(ex);
                        objRetorno.intCodigoErro        = 16;
                        objRetorno.strMsgErro           = ex.Message;
                        objRetorno.strExceptionToString = ex.ToString();
                    }
                }
            }
            return(objRetorno);
        }
コード例 #20
0
        public Retorno SalvarPerfilAcesso(tbPerfilAcesso objPerfilAcesso, int intFunCodigo)
        {
            var objRetorno   = new Retorno();
            var strValidacao = ValidaPerfilAcesso(objPerfilAcesso);

            try
            {
                if (strValidacao == string.Empty)
                {
                    var arrPerfilAcessoMenuSalvar = objPerfilAcesso.tbPerfilAcessoMenu.Where(pam => pam.pam_permiteAlteracao ||
                                                                                             pam.pam_permiteExclusao ||
                                                                                             pam.pam_permiteInclusao ||
                                                                                             pam.pam_permiteVisualizacao).ToList();
                    foreach (var objPerfilAcessoMenu in objPerfilAcesso.tbPerfilAcessoMenu.Where(pam => pam.pam_permiteAlteracao ||
                                                                                                 pam.pam_permiteExclusao ||
                                                                                                 pam.pam_permiteInclusao ||
                                                                                                 pam.pam_permiteVisualizacao).ToList())
                    {
                        ComplementaPerfilAcessoMenu(objPerfilAcessoMenu.pac_codigo, objPerfilAcessoMenu.tbMenu, ref arrPerfilAcessoMenuSalvar);
                    }

                    objPerfilAcesso.tbPerfilAcessoMenu.Clear();
                    foreach (var objPerfilAcessoMenuSalvar in arrPerfilAcessoMenuSalvar)
                    {
                        objPerfilAcessoMenuSalvar.tbMenu         = null;
                        objPerfilAcessoMenuSalvar.tbPerfilAcesso = null;
                        objPerfilAcessoMenuSalvar.pac_codigo     = objPerfilAcesso.pac_codigo;
                        objPerfilAcesso.tbPerfilAcessoMenu.Add(objPerfilAcessoMenuSalvar);
                    }

                    enOperacao enTipoOperacao;
                    if (objPerfilAcesso.pac_codigo == 0)
                    {
                        enTipoOperacao = enOperacao.Inclusao;
                        _objCtx.tbPerfilAcesso.Add(objPerfilAcesso);
                    }
                    else
                    {
                        enTipoOperacao = enOperacao.Alteracao;
                        var objPerfilAcessoContexto = _objCtx.tbPerfilAcesso
                                                      .Include(pam => pam.tbPerfilAcessoMenu).FirstOrDefault(pac => pac.pac_codigo == objPerfilAcesso.pac_codigo);
                        if (objPerfilAcessoContexto != null)
                        {
                            _objCtx.tbPerfilAcessoMenu.RemoveRange(objPerfilAcessoContexto.tbPerfilAcessoMenu);
                            _objCtx.Entry(objPerfilAcessoContexto).CurrentValues.SetValues(objPerfilAcesso);
                        }

                        foreach (var objItem in objPerfilAcesso.tbPerfilAcessoMenu)
                        {
                            _objCtx.tbPerfilAcessoMenu.Add(objItem);
                        }
                    }
                    _objCtx.SaveChanges();
                    using (var objBll = new Auditoria(ref _objCtx, ref _objTransacao))
                        objBll.SalvarAuditoria(objPerfilAcesso.pac_codigo, enTipoOperacao, objPerfilAcesso, intFunCodigo);
                    objRetorno.intCodigoErro = 0;
                }
                else
                {
                    objRetorno.intCodigoErro = 48;
                    objRetorno.strMsgErro    = strValidacao;
                }
            }
            catch (Exception ex)
            {
                FrameworkUtil.LogErro(ex);
                objRetorno.intCodigoErro        = 16;
                objRetorno.strMsgErro           = ex.Message;
                objRetorno.strExceptionToString = ex.ToString();
            }
            return(objRetorno);
        }
コード例 #21
0
ファイル: Clientes.cs プロジェクト: rodrigo-brizzi/BSFood
        public Retorno SalvarCliente(tbCliente objCliente, int intFunCodigo)
        {
            var objRetorno   = new Retorno();
            var strValidacao = ValidaCliente(objCliente);

            try
            {
                if (strValidacao == string.Empty)
                {
                    objCliente.tbClienteGrupo = null;
                    foreach (var objClienteEndereco in objCliente.tbClienteEndereco)
                    {
                        objClienteEndereco.tbBairro  = null;
                        objClienteEndereco.tbCliente = null;
                    }
                    foreach (var objClienteTelefone in objCliente.tbClienteTelefone)
                    {
                        objClienteTelefone.tbCliente = null;
                    }
                    enOperacao enTipoOperacao;
                    if (objCliente.cli_codigo == 0)
                    {
                        enTipoOperacao = enOperacao.Inclusao;
                        _objCtx.tbCliente.Add(objCliente);
                    }
                    else
                    {
                        enTipoOperacao = enOperacao.Alteracao;
                        var objClienteContexto = _objCtx.tbCliente.Include(cen => cen.tbClienteEndereco)
                                                 .Include(ctl => ctl.tbClienteTelefone).FirstOrDefault(cli => cli.cli_codigo == objCliente.cli_codigo);
                        if (objClienteContexto != null)
                        {
                            _objCtx.tbClienteEndereco.RemoveRange(objClienteContexto.tbClienteEndereco);
                            _objCtx.tbClienteTelefone.RemoveRange(objClienteContexto.tbClienteTelefone);
                            _objCtx.Entry(objClienteContexto).CurrentValues.SetValues(objCliente);
                        }

                        foreach (var objItemEndereco in objCliente.tbClienteEndereco)
                        {
                            objItemEndereco.cli_codigo = objCliente.cli_codigo;
                            _objCtx.tbClienteEndereco.Add(objItemEndereco);
                        }
                        foreach (var objItemTelefone in objCliente.tbClienteTelefone)
                        {
                            objItemTelefone.cli_codigo = objCliente.cli_codigo;
                            _objCtx.tbClienteTelefone.Add(objItemTelefone);
                        }
                    }
                    _objCtx.SaveChanges();
                    using (var objBll = new Auditoria(ref _objCtx, ref _objTransacao))
                        objBll.SalvarAuditoria(objCliente.cli_codigo, enTipoOperacao, objCliente, 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);
        }
コード例 #22
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);
        }