public ContratoParcela Get(int id)
        {
            var command = CreateCommand("SELECT * FROM public.ContratoParcela WHERE idContratoParcela = @id");

            command.Parameters.AddWithValue("@id", id);
            ContratoParcela contrato = null;

            using (var reader = command.ExecuteReader())
            {
                reader.Read();
                if (reader.HasRows)
                {
                    contrato = new ContratoParcela
                    {
                        Id             = Convert.ToInt32(reader["idContratoParcela"]),
                        dataVencimento = Convert.ToDateTime(reader["dataVencimento"]),
                        valorParcela   = Convert.ToDecimal(reader["valorParcela"]),
                        numParcela     = Convert.ToInt32(reader["numParcela"]),
                        idContrato     = Convert.ToInt32(reader["fk_IdContrato"]),
                        situacao       = Convert.ToInt32(reader["situacao"]),
                        comissao       = Convert.ToDecimal(reader["comissao"])
                    };
                }
                else
                {
                    return(null);
                }
            }

            contrato.pagamentos = (List <ContratoParcelaPagamento>) new ContratoParcelaPagamentoRepositorio(this._context, this._transaction).GetByContratoParcela(contrato.Id);

            return(contrato);
        }
        public void Create(ContratoParcela contParc)
        {
            var query = "INSERT INTO public.ContratoParcela(numParcela, valorParcela, dataVencimento, situacao, comissao, fk_IdContrato) " +
                        "VALUES (@numParcela, @valorParcela, @dataVencimento, @situacao, @comissao, @fk_IdContrato)";
            var command = CreateCommand(query);

            command.Parameters.AddWithValue("@numParcela", contParc.numParcela);
            command.Parameters.AddWithValue("@valorParcela", contParc.valorParcela);
            command.Parameters.AddWithValue("@dataVencimento", contParc.dataVencimento);
            command.Parameters.AddWithValue("@situacao", contParc.situacao);
            command.Parameters.AddWithValue("@comissao", contParc.comissao);
            command.Parameters.AddWithValue("@fk_IdContrato", contParc.idContrato);

            command.ExecuteNonQuery();

            query   = "select currval('contratoparcela_idcontratoparcela_seq') as newId";
            command = CreateCommand(query);

            using (var reader = command.ExecuteReader())
            {
                reader.Read();
                if (reader.HasRows)
                {
                    contParc.Id = Convert.ToInt32(reader["newId"]);
                }
            }
        }
Exemple #3
0
        static void Main(string[] args)
        {
            Console.WriteLine("Entre com os dados do CONTRATO ");
            Console.Write("Numero: ");
            int numContrato = int.Parse(Console.ReadLine());

            Console.Write("Data do contrato (dd/MM/yyyy): ");
            DateTime dtContrato = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy", CultureInfo.InvariantCulture);

            Console.Write("Valor total do contrato: ");
            double valContrato = double.Parse(Console.ReadLine(), CultureInfo.InvariantCulture);

            Console.Write("Informe a quantidade de parcelas: ");
            int parcela = int.Parse(Console.ReadLine());

            Contrato myContrato = new Contrato(numContrato, dtContrato, valContrato);

            ContratoParcela contratoParcela = new ContratoParcela(new Paypal());

            contratoParcela.ProcessaContrato(myContrato, parcela);

            Console.WriteLine("Parcelas:");
            foreach (Parcela install in myContrato.Parcelas)
            {
                Console.WriteLine(install);
            }
        }
Exemple #4
0
 public void Update(ContratoParcela contParc)
 {
     using (var context = _unitOfWork.Create())
     {
         context.Repositorios.ContratoParcelaRepositorio.Update(contParc);
         context.SaveChanges();
     }
 }
Exemple #5
0
        public IActionResult CadastrarContratoParcela([FromBody] ContratoParcela contParc)
        {
            if (contParc == null)
            {
                return(BadRequest());
            }

            _contParcService.Create(contParc);

            return(CreatedAtRoute("GetContratoParcela", new { id = contParc.Id }, contParc));
        }
        public void Update(ContratoParcela contParc)
        {
            var query = "UPDATE public.ContratoParcela SET numParcela = @numParcela, valorParcela = @valorParcela, dataVencimento = @dataVencimento, " +
                        "situacao = @situacao, comissao = @comissao, fk_IdContrato = @fk_IdContrato WHERE idContratoParcela = @id";
            var command = CreateCommand(query);

            command.Parameters.AddWithValue("@numParcela", contParc.numParcela);
            command.Parameters.AddWithValue("@valorParcela", contParc.valorParcela);
            command.Parameters.AddWithValue("@dataVencimento", contParc.dataVencimento);
            command.Parameters.AddWithValue("@situacao", contParc.situacao);
            command.Parameters.AddWithValue("@comissao", contParc.comissao);
            command.Parameters.AddWithValue("@fk_IdContrato", contParc.idContrato);
            command.Parameters.AddWithValue("@id", contParc.Id);

            command.ExecuteNonQuery();
        }
Exemple #7
0
        public IActionResult EditarContratoParcela(int id, [FromBody] ContratoParcela contParc)
        {
            _contParcService.Update(contParc);

            return(new NoContentResult());
        }
        public void GerarParcelas(Contrato Contrato, int diaVencimentoDemais, bool isPrimeiraVigencia)
        {
            var parcelasContrato = new ContratoParcelaRepositorio(this._context, this._transaction).GetByContrato(Contrato.Id).ToList();

            if (parcelasContrato.Count > 0)
            {
                foreach (var parc in parcelasContrato)
                {
                    new ContratoParcelaRepositorio(this._context, this._transaction).Remove(parc.Id);
                }
            }

            var servicos = (List <ContratoServico>) new ContratoServicoRepositorio(this._context, this._transaction).GetByContrato(Contrato.Id);

            if (servicos == null || servicos.Count == 0)
            {
                return;
            }
            else if (Contrato.numParcelas == 0)
            {
                throw new AppError("É necessário informar o número de parcelas");
            }

            DateTime dataPrimeira = DateTime.Today;
            DateTime dataSegunda  = DateTime.Today;
            decimal  valorParc    = servicos.Sum(s => s.valorTotal) / Contrato.numParcelas;

            if (valorParc == 0)
            {
                throw new AppError("Os serviços prestados a esse contrato não possuem valor");
            }

            valorParc = Math.Round(valorParc, 2);

            if (diaVencimentoDemais == 0)
            {
                dataPrimeira = Contrato.dataInicio;
            }
            else
            {
                if (isPrimeiraVigencia)
                {
                    dataPrimeira = Contrato.dataInicio;
                    if (diaVencimentoDemais != 0)
                    {
                        if (diaVencimentoDemais < Contrato.dataInicio.Day)
                        {
                            //Mês seguinte
                            var dataFinal = Contrato.dataInicio.AddMonths(1);
                            dataSegunda = Convert.ToDateTime($"{diaVencimentoDemais}/{dataFinal.Month}/{dataFinal.Year}");
                        }
                        else
                        {
                            dataSegunda = Convert.ToDateTime($"{diaVencimentoDemais}/{Contrato.dataInicio.Month}/{Contrato.dataInicio.Year}");
                        }
                    }
                }
                else
                {
                    if (diaVencimentoDemais < Contrato.dataInicio.Day)
                    {
                        //Mês seguinte
                        var dataFinal = Contrato.dataInicio.AddMonths(1);
                        dataPrimeira = Convert.ToDateTime($"{diaVencimentoDemais}/{dataFinal.Month}/{dataFinal.Year}");
                        dataSegunda  = dataPrimeira;
                    }
                    else
                    {
                        dataPrimeira = Convert.ToDateTime($"{diaVencimentoDemais}/{Contrato.dataInicio.Month}/{Contrato.dataInicio.Year}");
                        dataSegunda  = dataPrimeira;
                    }
                }
            }

            List <ContratoParcela> parcelas = new List <ContratoParcela>();

            for (int i = 0; i < Contrato.numParcelas; i++)
            {
                ContratoParcela parc = new ContratoParcela();
                parc.idContrato     = Contrato.Id;
                parc.numParcela     = i + 1;
                parc.valorParcela   = valorParc;
                parc.dataVencimento = (i == 0) ? dataPrimeira : (diaVencimentoDemais == 0) ? dataPrimeira.AddMonths(i) : dataSegunda.AddMonths(i);
                parc.situacao       = 1;
                //parc.comissao = valorParc * (Contrato.vendedor.percComis / 100);
                parc.comissao = 0;

                parcelas.Add(parc);
            }

            var     soma = parcelas.Sum(p => p.valorParcela);
            decimal dif  = 0;

            dif = servicos.Sum(s => s.valorTotal) - soma;

            if (dif > 0)
            {
                parcelas.Last().valorParcela = parcelas.Last().valorParcela + dif;
            }

            foreach (var parc in parcelas)
            {
                new ContratoParcelaRepositorio(this._context, this._transaction).Create(parc);
            }
        }