Пример #1
0
        public ActionResult Delete(int id)
        {
            var ComissaoAgendaExcluir = contexto.Comissao.FirstOrDefault(x => x.AgendaId == id);

            if (ComissaoAgendaExcluir != null)
            {
                var bdComisao = new ComissaoRepositorioEF(contexto);

                bdComisao.Excluir(x => x.AgendaId == id);
                bdComisao.SalvarTodos();
            }
            var bdAgenda = new AgendaRepositorioEF(contexto);

            bdAgenda.Excluir(x => x.AgendaId == id);
            bdAgenda.SalvarTodos();
            return(RedirectToAction("IndexAgenda"));
        }
Пример #2
0
        public JsonResult Create(Agenda Agenda)
        {
            var Retorno = new RetornoJson();

            if (Agenda.FuncionarioId == 0)
            {
                Retorno.Mensagem += "<span> Escolha o Funcionario</span>";
            }
            if (Agenda.ClienteId == 0)
            {
                Retorno.Mensagem += "<span> Escolha o Cliente</span>";
            }
            if (Agenda.ServicoId == 0)
            {
                Retorno.Mensagem += "<span> Escolha o Servico</span>";
            }

            if (Retorno.Mensagem != "")
            {
                return(Json(Retorno, JsonRequestBehavior.AllowGet));
            }

            TimeSpan minuto = new TimeSpan(00, 30, 00);


            DateTime DataAgenda = DateTime.Parse(Agenda.DataAgendamento.ToString());

            Agenda.Inicio = DataAgenda + Agenda.Inicio.TimeOfDay;
            Agenda.Fim    = DataAgenda + Agenda.Fim.TimeOfDay;

            //validar se o horario Inicio é menor que o Fim
            if (Agenda.Inicio >= Agenda.Fim)
            {
                Retorno.Mensagem += "<span> Horario Inicio é obrigatoriamente menor que o horário Fim</span>";
            }

            //validar se a data ultrapassa 4 meses
            DateTime AgendamentoDistante = DateTime.Now.AddMonths(4);

            if (Agenda.Fim > AgendamentoDistante)
            {
                Retorno.Mensagem += "<span> Agendamento não pode ultrapassar 4 meses</span>";
            }

            //agendamentos somente devem ser feito em horario de funcionamento
            TimeSpan HorarioAbre  = new TimeSpan(10, 00, 00);
            TimeSpan HorarioFecha = new TimeSpan(20, 00, 00);

            if (!(Agenda.Inicio.Hour >= HorarioAbre.Hours && Agenda.Inicio.Hour <= HorarioFecha.Hours) || !(Agenda.Fim.Hour >= HorarioAbre.Hours && Agenda.Fim.Hour <= HorarioFecha.Hours))
            {
                Retorno.Mensagem += "<span> O Agendamento deve ser dentro do horário de funcionamento do estabelecimento</span>";
            }


            //todo agendamento deve ser agendado com 30 minutos de antecedencia
            DateTime DataHoraRetroativa = Agenda.Inicio.Subtract(minuto);

            if (DataHoraRetroativa <= DateTime.Now)
            {
                Retorno.Mensagem += "<span> Não é possivel agendar nesta data, pois todos agendamentos precisam ter pelo menos 30 minutos de antecedencia</span>";
            }

            //nao pode agendar em horario igual com o mesmo funcionario
            var agendaMarcada = contexto.Agenda.Where(x => x.FuncionarioId == Agenda.FuncionarioId).Count(x => (Agenda.Inicio >= x.Inicio && Agenda.Inicio <= x.Fim) || (Agenda.Fim >= x.Inicio && Agenda.Fim <= x.Fim)) > 0;

            if (agendaMarcada)
            {
                Retorno.Mensagem += "<span> Escolha outro horario</span>";
            }


            if (Retorno.Mensagem != "")
            {
                return(Json(Retorno, JsonRequestBehavior.AllowGet));
            }

            try
            {
                var bdAgenda = new AgendaRepositorioEF(contexto);
                bdAgenda.Adicionar(Agenda);
                bdAgenda.SalvarTodos();

                //tratando as comissoes
                if (Agenda.Pago == true)
                {
                    using (var bdComisao = new ComissaoRepositorioEF(contexto))
                    {
                        Comissao comissao = new Comissao();
                        comissao.Data          = DateTime.Now;
                        comissao.AgendaId      = Agenda.AgendaId;
                        comissao.FuncionarioId = Agenda.FuncionarioId;
                        comissao.ServicoId     = Agenda.ServicoId;
                        comissao.valorComissao = (Agenda.Servico.Preco * 5) / 100;

                        bdComisao.Adicionar(comissao);
                        bdComisao.SalvarTodos();
                    }
                }

                Retorno.Sucesso      = true;
                Retorno.Mensagem    += "<span> Cadastrado com sucesso</span>";
                Retorno.Redirecionar = true;
                Retorno.Link         = "/Admin/Agenda/IndexAgenda";
            }
            catch (Exception e)
            {
                Retorno.Mensagem += "<span> Não foi possivel persistir seu agendamento</span>";
            }
            return(Json(Retorno, JsonRequestBehavior.AllowGet));
        }
Пример #3
0
        public JsonResult Edit(Agenda Agenda)
        {
            var      Retorno = new RetornoJson();
            TimeSpan minuto  = new TimeSpan(00, 30, 00);

            DateTime DataAgenda = DateTime.Parse(Agenda.DataAgendamento.ToString());

            Agenda.Inicio = DataAgenda + Agenda.Inicio.TimeOfDay;
            Agenda.Fim    = DataAgenda + Agenda.Fim.TimeOfDay;

            //validar se o horario Inicio é menor que o Fim
            if (Agenda.Inicio >= Agenda.Fim)
            {
                Retorno.Mensagem += "<span> Horario Inicio é obrigatoriamente menor que o horário Fim</span>";
            }

            //validar se a data ultrapassa 4 meses
            DateTime AgendamentoDistante = DateTime.Now.AddMonths(4);

            if (Agenda.Fim > AgendamentoDistante)
            {
                Retorno.Mensagem += "<span> Agendamento não pode ultrapassar 4 meses</span>";
            }

            //agendamentos somente devem ser feito em horario de funcionamento
            TimeSpan HorarioAbre  = new TimeSpan(10, 00, 00);
            TimeSpan HorarioFecha = new TimeSpan(20, 00, 00);

            if (!(Agenda.Inicio.Hour >= HorarioAbre.Hours && Agenda.Inicio.Hour <= HorarioFecha.Hours) || !(Agenda.Fim.Hour >= HorarioAbre.Hours && Agenda.Fim.Hour <= HorarioFecha.Hours))
            {
                Retorno.Mensagem += "<span> O Agendamento deve ser dentro do horário de funcionamento do estabelecimento</span>";
            }


            //todo agendamento deve ser agendado com 30 minutos de antecedencia
            DateTime DataHoraRetroativa = Agenda.Inicio.Subtract(minuto);

            if (DataHoraRetroativa <= DateTime.Now)
            {
                Retorno.Mensagem += "<span> Não é possivel agendar nesta data, pois todos agendamentos precisam ter pelo menos 30 minutos de antecedencia</span>";
            }

            //nao pode agendar em horario igual com o mesmo funcionario mas como esta editando ele aceita o mesmo horario ainda que foi criado o agendamento inicial
            var EditandoMesmaAgendamento = contexto.Agenda.Any(x => x.FuncionarioId == Agenda.FuncionarioId &&
                                                               x.Inicio == Agenda.Inicio && x.Fim == Agenda.Fim && x.ClienteId == Agenda.ClienteId
                                                               );

            if (!EditandoMesmaAgendamento)
            {
                var agendaMarcada = contexto.Agenda.Where(x => x.FuncionarioId == Agenda.FuncionarioId).Count(x => (Agenda.Inicio >= x.Inicio && Agenda.Inicio <= x.Fim) || (Agenda.Fim >= x.Inicio && Agenda.Fim <= x.Fim)) > 0;
                if (agendaMarcada)
                {
                    Retorno.Mensagem += "<span> Escolha outro horario</span>";
                }
            }


            if (Retorno.Mensagem != "")
            {
                return(Json(Retorno, JsonRequestBehavior.AllowGet));
            }


            var bdAgenda = new AgendaRepositorioEF(contexto);

            bdAgenda.Atualizar(Agenda);
            bdAgenda.SalvarTodos();

            //abaixo tratando as comissoes
            if (Agenda.Pago == false)
            {
                var Existecomissao = contexto.Comissao.FirstOrDefault(x => x.AgendaId == Agenda.AgendaId);
                if (Existecomissao != null)
                {
                    //se o usuario setar como nao pago o agendamento exclui a comissao
                    using (var bdComisao = new ComissaoRepositorioEF(contexto))
                    {
                        var comissao = contexto.Comissao.FirstOrDefault(x => x.AgendaId == Agenda.AgendaId);
                        bdComisao.Excluir(x => x.AgendaId == Agenda.AgendaId);
                        bdComisao.SalvarTodos();
                    }
                }
            }
            //se o usuario editar  e deixar agenda paga, edita a comissao
            if (Agenda.Pago == true)
            {
                using (var bdComisao = new ComissaoRepositorioEF(contexto))
                {
                    var comissao = contexto.Comissao.FirstOrDefault(x => x.AgendaId == Agenda.AgendaId);

                    //no caso do usuario ter excluido a comissao cria ela denovo
                    if (comissao == null)
                    {
                        {
                            Comissao c = new Comissao();
                            c.Data          = DateTime.Now;
                            c.AgendaId      = Agenda.AgendaId;
                            c.FuncionarioId = Agenda.FuncionarioId;
                            c.ServicoId     = Agenda.ServicoId;
                            c.valorComissao = (Agenda.Servico.Preco * 5) / 100;

                            bdComisao.Adicionar(c);
                            bdComisao.SalvarTodos();
                        }
                    }
                    else // neste caso ele nao excluiu a comissao apenas editou a agenda e deixou agenda paga
                    {
                        comissao.Data          = comissao.Data;
                        comissao.AgendaId      = comissao.AgendaId;
                        comissao.FuncionarioId = Agenda.FuncionarioId;
                        comissao.ServicoId     = Agenda.ServicoId;
                        comissao.valorComissao = (Agenda.Servico.Preco * 5) / 100;

                        bdComisao.Atualizar(comissao);
                        bdComisao.SalvarTodos();
                    }
                }
            }

            Retorno.Mensagem += "<span> Editado com sucesso</span>";

            Retorno.Sucesso      = true;
            Retorno.Redirecionar = true;
            Retorno.Link         = "/Admin/Agenda/IndexAgenda";

            return(Json(Retorno, JsonRequestBehavior.AllowGet));
        }
Пример #4
0
        public JsonResult EditServicoFiado(RegistroCompraFiada compraFiada, FormCollection collection)
        {
            var Retorno = new RetornoJson();

            if (!Utilitarios.validarData(compraFiada.DataParaPagamento.ToString()))
            {
                Retorno.Mensagem += "<span>Data invalida, inserir data correta</span>";
            }
            if (compraFiada.DataParaPagamento <= compraFiada.DataCompra || compraFiada.DataParaPagamento > compraFiada.DataCompra.AddMonths(2))
            {
                Retorno.Mensagem += "<span> Não aceitamos data anterior a data da compra ou data para pagamento maior que dois meses em relação a compra</span>";
            }

            if (Retorno.Mensagem != "")
            {
                return(Json(Retorno, JsonRequestBehavior.AllowGet));
            }

            var bdRegistroCompraFiada = new RegistroCompraFiadaRepositorioEF(contexto);

            bdRegistroCompraFiada.Atualizar(compraFiada);
            bdRegistroCompraFiada.SalvarTodos();

            if (collection["Servicos"] == null)
            {
                Retorno.Mensagem += "<span> Não foi selecionado nenhum Servico!<span>";
                if (Retorno.Mensagem != "")
                {
                    return(Json(Retorno, JsonRequestBehavior.AllowGet));
                }
            }
            else
            {
                var ServicosBancoDados = contexto.ServicoFiado.Where(x => x.RegistroCompraFiadaId == compraFiada.RegistroCompraFiadaId).ToList();
                var bdServicoFiado     = new ServicoFiadoRepositorioEF(contexto);
                var Servicos           = collection["Servicos"].Split(',');
                //se tem na lista mas não tem no banco de dados
                foreach (var servico in Servicos)
                {
                    var idServico = int.Parse(servico);
                    if (!ServicosBancoDados.Any(x => x.ServicoId == idServico))
                    {
                        bdServicoFiado.Adicionar(new ServicoFiado()
                        {
                            RegistroCompraFiadaId = compraFiada.RegistroCompraFiadaId,
                            ServicoId             = idServico
                        });
                    }
                }
                bdServicoFiado.SalvarTodos();

                // se tiver no banco de dados mas nao tiver na lista
                foreach (var banco in ServicosBancoDados)
                {
                    if (!Servicos.Any(x => x == banco.ServicoId.ToString()))
                    {
                        bdServicoFiado.Excluir(x => x.ServicoId == banco.ServicoId && x.RegistroCompraFiadaId == compraFiada.RegistroCompraFiadaId);
                    }
                }
                bdServicoFiado.SalvarTodos();
            }

            //se for pago não aparecer na lista de serviços fiado, contabilizar comissoes que o funcionario ira ganhar
            if (compraFiada.Pago == true)
            {
                var      ServicosBancoDadosAposCompraPaga = contexto.ServicoFiado.Where(x => x.RegistroCompraFiadaId == compraFiada.RegistroCompraFiadaId).ToList();
                Comissao comissao   = new Comissao();
                var      bdComissao = new ComissaoRepositorioEF(contexto);

                foreach (var servico in ServicosBancoDadosAposCompraPaga)
                {
                    comissao.Data                  = DateTime.Now;
                    comissao.FuncionarioId         = compraFiada.FuncionarioId;
                    comissao.ServicoId             = servico.ServicoId;
                    comissao.valorComissao         = (servico.Servico.Preco * 5) / 100;
                    comissao.RegistroCompraFiadaId = compraFiada.RegistroCompraFiadaId;

                    bdComissao.Adicionar(comissao);
                    bdComissao.SalvarTodos();
                }
            }


            Retorno.Sucesso      = true;
            Retorno.LimparForm   = true;
            Retorno.Redirecionar = true;
            Retorno.Link         = "/Admin/CompraFiado/Index";

            return(Json(Retorno, JsonRequestBehavior.AllowGet));
        }