Example #1
0
        public void ConfirmarAtendimento()
        {
            try
            {
                this.AdicionarAcrescimo();
                this.AdicionarDesconto();

                DTOValoresAtendimento dto = this._fachada.ObterValoresAtendimento();

                if (dto.ValorEntrada > 0)
                {
                    if (this._visao.ReceberNoCaixa(dto.ValorEntrada))
                    {
                        this._fachada.ReceberAtendimento();
                    }
                }

                this._fachada.Gravar();
                this.VoltarParaCabecalho();
                this._visaoPadrao.Avisar("Atendimento gravado com sucesso!");
                this._visao.LimparAtendimento();
            }
            catch (Exception ex)
            {
                this._visaoPadrao.ExibirErro(ex.Message);
            }
        }
Example #2
0
        public void PreencherValores(DTOValoresAtendimento dto)
        {
            // Itens
            this._visao.LimparItens();

            foreach (DTOItem i in dto.Itens)
            {
                this._visao.AdicionarItem(i.IdServico, i.DescricaoServico, i.ValorUnitario, i.Quantidade, i.ValorItem);
            }

            // Totais dos itens
            this._visao.SetTotalValorUnitario(dto.TotalValorUnitario);
            this._visao.SetTotalQuantidade(dto.TotalQuantidade);
            this._visao.SetTotalValorItem(dto.TotalValorItens);

            // Acréscimos
            this._visao.SetPercentualAcrescimo(dto.PercentualAcrescimo);
            this._visao.SetAcrescimoFormaPagamento(dto.AcrescimoFormaPagamento);
            this._visao.SetAcrescimo(dto.Acrescimo);

            //Descontos
            this._visao.SetPercentualDesconto(dto.PercentualDesconto);
            this._visao.SetDescontoFormaPagamento(dto.DescontoFormaPagamento);
            this._visao.SetDesconto(dto.Desconto);

            // Total do pedido e valor da entrada
            this._visao.SetValorAtendimento(dto.ValorAtendimento);
            this._visao.SetValorEntrada(dto.ValorEntrada);
        }
Example #3
0
        public DTOValoresAtendimento ObterValoresAtendimento()
        {
            if (this._atendimento == null)
            {
                throw new ExcecaoCabecalhoNaoAdicionado();
            }

            DTOValoresAtendimento dto = new DTOValoresAtendimento();

            foreach (ItemAtendimento i in this._atendimento.Itens)
            {
                DTOItem dtoItem = new DTOItem();
                dtoItem.IdServico        = i.Servico.Id;
                dtoItem.DescricaoServico = i.Servico.Descricao;
                dtoItem.ValorUnitario    = i.ValorUnitario;
                dtoItem.Quantidade       = i.Quantidade;
                dtoItem.ValorItem        = i.ValorItem;

                dto.AdicionarItem(dtoItem);
            }

            dto.Acrescimo = this._atendimento.Acrescimo;
            dto.Desconto  = this._atendimento.Desconto;
            dto.AcrescimoFormaPagamento = this._atendimento.AcrescimoFormaPagamento;
            dto.DescontoFormaPagamento  = this._atendimento.DescontoFormaPagamento;
            dto.PercentualAcrescimo     = this._atendimento.FormaPagamento.PercentualAcrescimo;
            dto.PercentualDesconto      = this._atendimento.FormaPagamento.PercentualDesconto;
            dto.NumeroItens             = this._atendimento.NumeroTotalItens;
            dto.TotalQuantidade         = this._atendimento.TotalQuantidade;
            dto.TotalValorItens         = this._atendimento.TotalValorItem;
            dto.TotalValorUnitario      = this._atendimento.TotalValorUnitario;
            dto.ValorAtendimento        = this._atendimento.ValorAtendimento;
            dto.ValorEntrada            = this.ObtemValorEntrada();

            return(dto);
        }
        public void Devo_Conseguir_Retornar_Os_Valores_Do_Atendimento()
        {
            var repositorioServico = new Mock <IServicoRepositorio>();
            var formaPagamento     = new Mock <FormaPagamento>();

            formaPagamento.Setup(f => f.Id).Returns(1);
            formaPagamento.Setup(f => f.PercentualAcrescimo).Returns(10);
            formaPagamento.Setup(f => f.PercentualDesconto).Returns(20);
            formaPagamento.Setup(f => f.Tipo).Returns(TipoFormaPagamento.Prazo);
            formaPagamento.Setup(f => f.Parcelamento).Returns(new ParcelamentoFormaPagamento(TipoParcelamentoFormaPagamento.ComEntrada, 3, 30));

            var repositorioFormaPagamento = new Mock <IFormaPagamentoRepositorio>();

            repositorioFormaPagamento.Setup(r => r.Obter(1)).Returns(formaPagamento.Object);

            IFachadaAtendimento fachada = new FachadaAtendimento(null, this._repositorioPessoa, repositorioFormaPagamento.Object, repositorioServico.Object);

            fachada.CriaNovoAtendimento(this._dtoCabecalho);

            #region Item 1
            DTOItem dto1 = new DTOItem();
            dto1.IdServico     = 1;
            dto1.ValorUnitario = 15m;
            dto1.Quantidade    = 1;

            Servico servico1 = ServicoStub.GetInstance(1, "Serviço 1", 1);

            repositorioServico.Setup(r => r.Obter(1))
            .Returns(servico1);

            fachada.AdicionarItem(dto1);
            repositorioServico.Verify(r => r.Obter(It.IsAny <long>()));
            #endregion

            #region Item 2
            DTOItem dto2 = new DTOItem();
            dto2.IdServico     = 2;
            dto2.ValorUnitario = 10m;
            dto2.Quantidade    = 2;

            Servico servico2 = ServicoStub.GetInstance(2, "Serviço 2", 1);

            repositorioServico.Setup(r => r.Obter(2))
            .Returns(servico2);
            fachada.AdicionarItem(dto2);
            repositorioServico.Verify(r => r.Obter(It.IsAny <long>()));

            #endregion

            #region Item 3
            DTOItem dto3 = new DTOItem();
            dto3.IdServico     = 2;
            dto3.ValorUnitario = 10m;
            dto3.Quantidade    = 2;

            Servico servico3 = ServicoStub.GetInstance(2, "Serviço 2", 1);

            repositorioServico.Setup(r => r.Obter(2))
            .Returns(servico3);

            fachada.AdicionarItem(dto3);
            repositorioServico.Verify(r => r.Obter(It.IsAny <long>()));

            #endregion

            #region Item 4
            DTOItem dto4 = new DTOItem();
            dto4.IdServico     = 4;
            dto4.ValorUnitario = 12m;
            dto4.Quantidade    = 1;

            Servico servico4 = ServicoStub.GetInstance(4, "Serviço 4", 1);

            repositorioServico.Setup(r => r.Obter(4))
            .Returns(servico4);

            fachada.AdicionarItem(dto4);
            repositorioServico.Verify(r => r.Obter(It.IsAny <long>()));

            #endregion

            #region Acréscimos e Descontos
            fachada.AdicionarAcrescimo(10);
            fachada.AdicionarDesconto(15);
            #endregion

            DTOValoresAtendimento dto = fachada.ObterValoresAtendimento();

            foreach (DTOItem i in dto.Itens)
            {
                switch (i.IdServico)
                {
                case 1: Assert.AreEqual(15m, i.ValorUnitario);
                    Assert.AreEqual(1, i.Quantidade);
                    Assert.AreEqual(15, i.ValorItem);
                    Assert.AreEqual("SERVIÇO 1", i.DescricaoServico);
                    break;

                case 2: Assert.AreEqual(10m, i.ValorUnitario);
                    Assert.AreEqual(2, i.Quantidade);
                    Assert.AreEqual(20, i.ValorItem);
                    Assert.AreEqual("SERVIÇO 2", i.DescricaoServico);
                    break;

                case 4: Assert.AreEqual(12m, i.ValorUnitario);
                    Assert.AreEqual(1, i.Quantidade);
                    Assert.AreEqual(12, i.ValorItem);
                    Assert.AreEqual("SERVIÇO 4", i.DescricaoServico);
                    break;
                }
            }

            Assert.AreEqual(10m, dto.PercentualAcrescimo);
            Assert.AreEqual(20m, dto.PercentualDesconto);
            Assert.AreEqual(10m, dto.Acrescimo);
            Assert.AreEqual(15m, dto.Desconto);
            Assert.AreEqual(3m, dto.NumeroItens);
            Assert.AreEqual(37m, dto.TotalValorUnitario);
            Assert.AreEqual(4m, dto.TotalQuantidade);
            Assert.AreEqual(47m, dto.TotalValorItens);
            Assert.AreEqual(4.7m, dto.AcrescimoFormaPagamento);
            Assert.AreEqual(9.4m, dto.DescontoFormaPagamento);
            Assert.AreEqual(37.3m, dto.ValorAtendimento);
            Assert.AreEqual(12.43m, dto.ValorEntrada);
        }