Пример #1
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)
            {
                Util.LogErro(ex);
                objRetorno.intCodigoErro        = 16;
                objRetorno.strMsgErro           = ex.Message;
                objRetorno.strExceptionToString = ex.ToString();
            }
            return(objRetorno);
        }
Пример #2
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)
            {
                FrameworkUtil.LogErro(ex);
                objRetorno.intCodigoErro        = 16;
                objRetorno.strMsgErro           = ex.Message;
                objRetorno.strExceptionToString = ex.ToString();
            }
            return(objRetorno);
        }
Пример #3
0
        public Retorno SalvarPedidoComanda(tbPedido objPedido, int intFunCodigo)
        {
            var objRetorno   = new Retorno();
            var strValidacao = ValidaPedidoMesa(objPedido);

            try
            {
                if (strValidacao == string.Empty)
                {
                    objPedido.tbFuncionario = 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 = "C"; //"E" = Entrega, "C" = Comanda
                        objPedido.ped_status = "P"; //"P" = Produção, "E" = Entrega, "F" = Finalizado, "X" = Excluido
                        enTipoOperacao       = enOperacao.Inclusao;
                        _objCtx.tbPedido.Add(objPedido);
                        _objCtx.SaveChanges();
                        var objMesaContexto = _objCtx.tbMesa.FirstOrDefault(mes => mes.mes_numero == objPedido.ped_numeroMesa);
                        objMesaContexto.ped_codigo           = objPedido.ped_codigo;
                        objMesaContexto.mes_status           = "O";
                        _objCtx.Entry(objMesaContexto).State = EntityState.Modified;
                    }
                    else
                    {
                        enTipoOperacao = enOperacao.Alteracao;
                        var objPedidoContexto = _objCtx.tbPedido.FirstOrDefault(ped => ped.ped_codigo == objPedido.ped_codigo);
                        if (objPedidoContexto != null)
                        {
                            //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);
                            }

                            //Atualiza o pedido
                            _objCtx.Entry(objPedidoContexto).CurrentValues.SetValues(objPedido);
                        }
                    }
                    _objCtx.SaveChanges();
                    using (var objBll = new Auditoria(ref _objCtx, ref _objTransacao))
                        objBll.SalvarAuditoria(objPedido.ped_codigo, enTipoOperacao, objPedido, intFunCodigo);
                    objRetorno.intCodigoErro = 0;
                    objRetorno.objRetorno    = _objCtx.tbPedido.AsNoTracking().Include(fun => fun.tbFuncionario).Include(ppr => ppr.tbPedidoProduto)
                                               .FirstOrDefault(ped => ped.ped_codigo == objPedido.ped_codigo);
                }
                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);
        }
Пример #4
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 = FrameworkUtil.objConfigStorage.objFuncionario.fun_codigo;
                        objPedido.cai_codigo = FrameworkUtil.objConfigStorage.intCaiCodigo;
                        if (objPedido.ped_formaPagamentoTipo == (int)enFormaPagamentoTipo.Convenio)//"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)
            {
                FrameworkUtil.LogErro(ex);
                objRetorno.intCodigoErro        = 16;
                objRetorno.strMsgErro           = ex.Message;
                objRetorno.strExceptionToString = ex.ToString();
            }
            return(objRetorno);
        }
Пример #5
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_formaPagamentoTipo == (int)enFormaPagamentoTipo.Convenio)//"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();
                        FrameworkUtil.LogErro(ex);
                        objRetorno.intCodigoErro        = 16;
                        objRetorno.strMsgErro           = ex.Message;
                        objRetorno.strExceptionToString = ex.ToString();
                    }
                }
            }
            return(objRetorno);
        }
Пример #6
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);
        }