public static void addRecargo(recargos r) { try { admEntities db = Datos.getDB(); var recargo = db.recargos.Where(x => x.dir_edificio == r.dir_edificio && x.periodo == r.periodo).SingleOrDefault(); if (recargo == null) db.recargos.Add(r); else { recargo.importe += r.importe; db.Entry(recargo).State = System.Data.EntityState.Modified; } db.SaveChanges(); } catch (Exception e) { Logger.Log.write(e.InnerException == null ? e.Message : e.InnerException.Message); throw e; } }
void CargarRecargos() { List<recargos> recargos = Business.ControladorRecargos.getAllRecargos(dateFechaDesde.Value); Double acum = 0; foreach(recargos rec in recargos) { acum += (Double)rec.importe; } recargos r = new recargos(); if (recargos.Count > 0) { r.dir_edificio = "Total"; r.importe = acum; r.periodo = recargos.First().periodo; recargos.Add(r); } dgvLista.DataSource = recargos; dgvLista.Columns["dir_edificio"].HeaderText = "Edificio"; dgvLista.Columns["periodo"].HeaderText = "Periodo"; dgvLista.Columns["importe"].HeaderText = "Importe"; dgvLista.Columns["edificio"].Visible = false; var d = dgvLista.Columns["periodo"].DefaultCellStyle; d.Format = "MM/yy"; dgvLista.Columns["periodo"].DefaultCellStyle = d; d = dgvLista.Columns["importe"].DefaultCellStyle; d.Format = "n2"; dgvLista.Columns["importe"].DefaultCellStyle = d; if (dgvLista.Rows.Count > 0) dgvLista.Rows[dgvLista.Rows.Count-1].DefaultCellStyle.BackColor = Color.Coral; dgvLista.ClearSelection(); }
public static List<CatalogoExpensas.Pagos> registrarPagosAutomaticos(DateTime periodo, List<Pagos> pagos) { try { admEntities db = new admEntities(); //Si alguien paga por automatico, queda totalmente al dia. Sumar recargos cobrados de meses anteriores o si pago en 2 vto List<expensas> expensas = new List<expensas>(); List<Recargo> gastosExclusivos = new List<Recargo>(); List<recargos> recargos = new List<recargos>(); foreach (var p in pagos) { var exp = db.expensas.Where(x => x.nro_referencia == p.nroReferencia).OrderByDescending(x => x.fecha).First(); var uni = new unidad(); uni.dir_edificio = exp.dir_edificio; uni.id_unidad = exp.id_unidad; p.Edificio = uni.dir_edificio; p.Unidad = uni.id_unidad; p.Periodo = exp.fecha.Month + "/" + exp.fecha.Year; var expensasMismaUnidad = db.expensas.Where(x => x.dir_edificio == uni.dir_edificio && x.id_unidad == uni.id_unidad && x.pagado == 0).ToList(); var exclusivosMismaUnidad = CatalogoGastosExclusivos.getAllRecargos(uni); expensas.AddRange(expensasMismaUnidad); gastosExclusivos.AddRange(exclusivosMismaUnidad); } var expGrouped = expensas.GroupBy(x => new { x.dir_edificio, x.id_unidad }) .Select(x => new expensas { dir_edificio = x.Key.dir_edificio, id_unidad = x.Key.id_unidad }) .Cast<expensas>() .ToList(); foreach (expensas e in expensas) { e.pagado = 1; db.Entry(e).State = System.Data.EntityState.Modified; } foreach (expensas e in expGrouped) { recargos r = new recargos(); var uni = new unidad(); uni.dir_edificio = e.dir_edificio; uni.id_unidad = e.id_unidad; r.dir_edificio = e.dir_edificio; r.periodo = DateTime.Parse("1/" + DateTime.Now.Month + "/" + DateTime.Now.Year); var detalles = CatalogoDeudores.getDetalleDeudaUnidad(uni); r.importe = detalles.Sum(x => x.Recargo); var rExistente = recargos.Where(x => x.dir_edificio == r.dir_edificio && x.periodo == r.periodo).SingleOrDefault(); if (rExistente != null) rExistente.importe += r.importe; else recargos.Add(r); } db.SaveChanges(); foreach (var excl in gastosExclusivos) { switch (excl.Tipo) { case "Exclusivos": CatalogoGastosExclusivos.pagarRecargoExclusivo(excl.Edificio, excl.Unidad, excl.Concepto, excl.Fecha); break; case "Legales": CatalogoGastosExclusivos.pagarRecargoLegales(excl.Edificio, excl.Unidad, excl.Concepto, excl.Fecha); break; case "Varios": CatalogoGastosExclusivos.pagarRecargoVarios(excl.Edificio, excl.Unidad, excl.Concepto, excl.Fecha); break; } } CatalogoRecargos.addRecargos(recargos); return pagos; } catch (Exception e) { Logger.Log.write(e.InnerException == null ? e.Message : e.InnerException.Message); var str = ""; str = e.InnerException?.InnerException?.Message; Logger.Log.write("Otro error: " + str); throw e; } }
public static void registrarPago(CatalogoDeudores.DetalleDeuda detalleDeuda, double descuento = 0) { if (detalleDeuda.Tipo == "Ordinaria") { List<CatalogoExpensas.Pagos> pagos = new List<CatalogoExpensas.Pagos>(); CatalogoExpensas.Pagos pago = new CatalogoExpensas.Pagos(); pago.nroReferencia = detalleDeuda.NroReferencia; pago.nroFactura = detalleDeuda.NroFactura; pago.importe = detalleDeuda.Importe; pagos.Add(pago); unidad unidad = new unidad(); unidad.dir_edificio = detalleDeuda.Edificio; unidad.id_unidad = detalleDeuda.Unidad; CatalogoExpensas.registrarPagos(detalleDeuda.Periodo, pagos, unidad); } else if (detalleDeuda.Tipo == "Exclusivo") { CatalogoGastosExclusivos.pagarRecargoExclusivo(detalleDeuda.Edificio, detalleDeuda.Unidad, detalleDeuda.NroFactura, detalleDeuda.Periodo); } else if (detalleDeuda.Tipo == "Legales") { CatalogoGastosExclusivos.pagarRecargoLegales(detalleDeuda.Edificio, detalleDeuda.Unidad, detalleDeuda.NroFactura, detalleDeuda.Periodo); } else if (detalleDeuda.Tipo == "Varios") { CatalogoGastosExclusivos.pagarRecargoVarios(detalleDeuda.Edificio, detalleDeuda.Unidad, detalleDeuda.NroFactura, detalleDeuda.Periodo); } recargos r = new recargos(); r.dir_edificio = detalleDeuda.Edificio; r.periodo = DateTime.Parse("1/" + DateTime.Now.Month + "/" + DateTime.Now.Year); r.importe = detalleDeuda.Recargo - ((descuento / 100) * detalleDeuda.Recargo) ; CatalogoRecargos.addRecargo(r); }