Exemple #1
0
        public async Task Update(int id, DeudaUpdateDto model)
        {
            var entry = await _context.Deuda.FirstAsync(x => x.IdDeuda == id);

            if (entry.EstadoDeuda == Enums.EstadoDeuda.Cancelada)
            {
                return;                                                  //No procesamos nada
            }
            if (model.IdTasa.HasValue)
            {
                entry.IdTasa = model.IdTasa.Value;
            }
            if (model.IdCliente.HasValue)
            {
                entry.IdCliente = model.IdCliente.Value;
            }
            if (model.Pagos.Count > 0)//Validamos siempre que no estemos recibiendo un arreglo vacio
            {
                //No podemos eliminar pagos, simplemente agregamos los nuevos pagos o modificamos los existentes:
                foreach (var item in model.Pagos)
                {
                    await _context.Pago.AddAsync(new Pago
                    {
                        IdDeuda   = entry.IdDeuda,
                        MontoPago = item.MontoPago,
                        Fecha     = Convert.ToDateTime(item.Fecha)
                    });

                    entry.MontoAcumulado -= item.MontoPago;
                    if (entry.MontoAcumulado <= 0)
                    {
                        entry.EstadoDeuda = Enums.EstadoDeuda.Cancelada;
                    }
                }
            }
            await _context.SaveChangesAsync();
        }
Exemple #2
0
        public async Task <ActionResult> Update(int id, DeudaUpdateDto model)
        {
            await _service.Update(id, model);

            return(Ok());
        }