Example #1
0
        private Parcela Cadastrar(Parcela parcelaFaturamento)
        {
            var comissaoVenda   = BuscarComissao(parcelaFaturamento.Venda.TurmaId);
            var descontoVenda   = parcelaFaturamento.Venda.Desconto;
            var comissaoGerente = Convert.ToDecimal(_parametroRepository.Listar(new Parametro {
                Chave = EnumParametros.PERCENTUAL_COMISSAO_GERENTE.ToString()
            }).ToEntity().valor);

            ValidarModelo(parcelaFaturamento);

            Faturamento faturamento = _faturamentoRepository.Inserir(parcelaFaturamento.Faturamento);

            parcelaFaturamento.FaturamentoId = faturamento.Id;
            parcelaFaturamento.Faturamento   = null;

            AtualizaStatusParcela(parcelaFaturamento, EnumStatusPgto.Pago);

            var calculoVendedor = new CalculoPercentual(faturamento.ValorPago, comissaoVenda, descontoVenda);
            var calculoGerente  = new CalculoPercentual(faturamento.ValorPago, comissaoGerente, descontoVenda, true);

            var listaComissao = new List <Comissao> {
                new Comissao
                {
                    FaturamentoId = faturamento.Id,
                    // Faturamento = faturamento,
                    Percentual  = calculoVendedor.ValorNovaComisao,
                    ValorApagar = calculoVendedor.ValorAhReceber,
                    Status      = EnumStatusComissao.EmAberto,
                    Gerente     = false
                },
                new Comissao
                {
                    FaturamentoId = faturamento.Id,
                    //Faturamento = faturamento,
                    Percentual  = calculoGerente.ValorNovaComisao,
                    ValorApagar = calculoGerente.ValorAhReceber,
                    Status      = EnumStatusComissao.EmAberto,
                    Gerente     = true
                }
            };

            _comissaoRepository.Inserir(listaComissao);



            return(parcelaFaturamento);
        }