private void cmbUnidad_SelectedIndexChanged(object sender, EventArgs e) { try { unidad unidad = (unidad)cmbUnidad.SelectedItem; txtTitular.Text = unidad.titular != null ? unidad.titular.nombre : "Ninguno"; expensas expensa = Business.ControladorExpensas.getExpensaUnidadPeriodo(unidad, periodo.Value); if (expensa.pagado== 0) { lblImporte1.Text = ((Double)expensa.importeVto1).ToString("n2"); lblImporte2.Text = ((Double)expensa.importeVto2).ToString("n2"); int cantMeses = DateTime.Now.Subtract(expensa.fecha).Days / 31; Double recargo = (((Double)expensa.importeVto1) * (1 + Double.Parse(tasa) / 100) - (Double)expensa.importeVto1) * cantMeses; lblRecargo.Text = recargo.ToString("n2"); lblTotalAPagar.Text = (Double.Parse(lblImporte1.Text) + recargo).ToString("n2"); btnCobrar.Enabled = true; this.expensaElegida = expensa; } else { lblImporte1.Text = "0,00"; lblImporte2.Text = "0,00"; lblRecargo.Text = "0,00"; lblTotalAPagar.Text = "0,00"; btnCobrar.Enabled = false; this.expensaElegida = null; lblTotalAPagar.Text = "Ya fue abonado"; } } catch (Exception ex) { unidad unidad = (unidad)cmbUnidad.SelectedItem; txtTitular.Text = unidad.titular != null ? unidad.titular.nombre : "Ninguno"; lblImporte1.Text = "0,00"; lblImporte2.Text = "0,00"; lblRecargo.Text = "0,00"; lblTotalAPagar.Text = "0,00"; btnCobrar.Enabled = false; this.expensaElegida = null; } }
static void Main(string[] args) { calibri = BaseFont.CreateFont("calibri.ttf", BaseFont.CP1252, BaseFont.EMBEDDED); calibri8N = new Font(calibri, 8, Font.NORMAL); calibri8I = new Font(calibri, 8, Font.ITALIC); calibri8B = new Font(calibri, 8, Font.BOLD); calibri9N = new Font(calibri, 9, Font.NORMAL); calibri9B = new Font(calibri, 9, Font.BOLD); calibri12N = new Font(calibri, 10, Font.NORMAL); calibri12B = new Font(calibri, 10, Font.BOLD); calibri11N = new Font(calibri, 10, Font.NORMAL); calibri11B = new Font(calibri, 10, Font.BOLD); titular t = new titular(); unidad u = new unidad(); expensas e = new expensas(); u.dir_edificio = "9 de Julio 566"; u.id_unidad = "02-02"; t.nombre = "Ramon Fernandez"; u.titular = t; u.parcela = "10"; e.nro_factura = "159"; e.nro_referencia = "534023492342"; e.fechaVto2 = DateTime.Now; e.importeVto2 = 3150.32; GenerarIntimacionAdministrativa(u, e); }
private static void GenerarIntimacionAdministrativa(unidad u, expensas e) { Document doc = new Document(PageSize.A4, milimetroToPoint(12), milimetroToPoint(12), milimetroToPoint(7), 0f); calibri8I = new Font(calibri, 8, Font.ITALIC); Directory.CreateDirectory(Ruta + "Intimaciones Administrativas"); var output = new FileStream(Ruta + @"Intimaciones Administrativas\\" + u.dir_edificio + " " + u.id_unidad + " " + DateTime.Now.ToShortDateString().Replace("/", "-") + ".pdf", FileMode.Create); var writer = PdfWriter.GetInstance(doc, output); doc.Open(); doc.Add(new Paragraph(40, " ")); agregarIntimacionAdministrativaEncabezado(doc); doc.Add(new Paragraph(15, " ")); agregarIntimacionAdministrativaTitulo(doc, u); doc.Add(new Paragraph(120, " ")); agregarIntimacionAdministrativaTexto(doc, u, e); doc.Add(new Paragraph(80, " ")); agregarIntimacionAdministrativaFirma(doc); doc.Close(); }
private static void agregarIntimacionAdministrativaTexto(Document doc, unidad u, expensas e) { PdfPTable t = new PdfPTable(1); float[] widths = new float[] { 500f }; t.WidthPercentage = 85; t.SetWidths(widths); t.HorizontalAlignment = Element.ALIGN_CENTER; int leading = 14; Paragraph p; PdfPCell c = new PdfPCell(); c = new PdfPCell(); c.Border = 0; p = new Paragraph(leading, "Rosario, 25 de Enero de 2016", calibri11N); p.Alignment = Element.ALIGN_RIGHT; c.AddElement(p); t.AddCell(c); c = new PdfPCell(); c.Border = 0; p = new Paragraph(leading, " ", calibri11N); p.Alignment = Element.ALIGN_RIGHT; c.AddElement(p); t.AddCell(c); c = new PdfPCell(); c.Border = 0; p = new Paragraph(leading, "En mi carácter de Administrador del Consorcio de Propietarios del Edificio "+u.dir_edificio+ ", sito en calle " + u.dir_edificio + " de esta ciudad, por las facultades que me otorga el Reglamento de Copropiedad y Administración, procedo a notificarlo que su propiedad ubicada en la parcela " + u.parcela + ", unidad " + u.id_unidad + ", registra en nuestro sistema contable una deuda de expensas comunes de $ " + e.importeVto2?.ToString("n2") + " calculada al " + e.fechaVto2?.ToShortDateString() + ".", calibri12N); p.Alignment = Element.ALIGN_LEFT; c.AddElement(p); t.AddCell(c); c = new PdfPCell(); c.Border = 0; p = new Paragraph(leading, " ", calibri11N); p.Alignment = Element.ALIGN_RIGHT; c.AddElement(p); t.AddCell(c); c = new PdfPCell(); c.Border = 0; p = new Paragraph(leading, "Por lo expuesto intimo a Ud. a la cancelación total de la acreencia dentro del plazo de 72 horas contadas desde la recepción de la presente. Para tal fin se le ha remitido en la última liquidación n°: " + e.nro_factura + ", que adjunta el volante de pago, cuyo codigo eléctronico es: " +e.nro_referencia+" para abonar a través de los canales habilitados de la red Banelco, que los puede consultar en: www.pagomiscuentas.com.ar, además podrá comunicarse con esta administración para recibir más instrucciones o constituir un posible plan de pagos mensuales.", calibri12N); p.Alignment = Element.ALIGN_LEFT; c.AddElement(p); t.AddCell(c); c = new PdfPCell(); c.Border = 0; p = new Paragraph(leading, " ", calibri11N); p.Alignment = Element.ALIGN_RIGHT; c.AddElement(p); t.AddCell(c); c = new PdfPCell(); c.Border = 0; p = new Paragraph(leading, "Si la obligación ya fue cancelada, ruego desestimar esta nota.", calibri12N); p.Alignment = Element.ALIGN_LEFT; c.AddElement(p); t.AddCell(c); c = new PdfPCell(); c.Border = 0; p = new Paragraph(leading, " ", calibri11N); p.Alignment = Element.ALIGN_RIGHT; c.AddElement(p); t.AddCell(c); c = new PdfPCell(); c.Border = 0; p = new Paragraph(leading, "En caso de incumplimiento se pasarán las acciones el departamento legal, generando mayores costos y perjuicios.", calibri12N); p.Alignment = Element.ALIGN_LEFT; c.AddElement(p); t.AddCell(c); c = new PdfPCell(); c.Border = 0; p = new Paragraph(leading, " ", calibri11N); p.Alignment = Element.ALIGN_RIGHT; c.AddElement(p); t.AddCell(c); c = new PdfPCell(); c.Border = 0; p = new Paragraph(leading, "Sin otro particular, saludo a Ud. Atte.", calibri12N); p.Alignment = Element.ALIGN_LEFT; c.AddElement(p); t.AddCell(c); c = new PdfPCell(); c.Border = 0; p = new Paragraph(leading, " ", calibri11N); p.Alignment = Element.ALIGN_RIGHT; c.AddElement(p); t.AddCell(c); doc.Add(t); }
public static ExpensasEdificio getExpensasEdificio(edificio edificio, DateTime periodo, DateTime vto1, DateTime vto2, ref int correlativo, admEntities db, List<expensas> allExpensasExistentes) { try { ExpensasEdificio expensasEdificio = new ExpensasEdificio(); { expensasEdificio.Periodo = periodo; expensasEdificio.Edificio = edificio;//db.edificio.Where(x => x.direccion == edificio.direccion).SingleOrDefault(); List<unidad> unidades = CatalogoUnidades.getAllUnidades(edificio); // expensasEdificio.Sectores = (from es in db.edificios_sectores join e in db.edificio on es.dir_edificio equals e.direccion join s in db.sector on es.id_sector equals s.idsector where e.direccion == edificio.direccion select s).ToList(); expensasEdificio.Conceptos = db.Database.SqlQuery<Conceptos>(@"select s.descripcion 'Sector', f.numero_factura 'NumeroFactura', p.razon_social 'Proveedor', concat(tg.descripcion, ' ', f.detalle) 'concepto', f.importe from factura f left join provedor p on p.razon_social = f.razon_provedor join sector s on id_sector = s.idsector join tipo_gasto tg on f.id_tipogasto = tg.idtipo_gasto where dir_edificio = '" + edificio.direccion + "' and month(f.fecha) = " + periodo.Month + " and year(f.fecha) = " + periodo.Year).ToList(); expensasEdificio.TotalUnidad = new List<TotalUnidad>(); expensasEdificio.EstadoDeCaja = new EstadoCaja(); expensasEdificio.EstadoDeCaja.MovimientosDeCaja = db.Database.SqlQuery<MovimientosCaja>("select * from movimiento_caja mc where dir_edificio = '" + edificio.direccion + @"' and month(periodo)=" + periodo.Month + " and year(periodo)=" + periodo.Year).ToList(); List<provedor> proveedores = db.edificio.Where(x => x.direccion == edificio.direccion).SingleOrDefault().provedor.ToList(); expensasEdificio.Proveedores = new List<Proveedor>(); foreach (var pr in proveedores) { Proveedor prov = new Proveedor(); prov.cargo = pr.cargo; prov.nombre = pr.razon_social; prov.telefono = pr.telefono1; expensasEdificio.Proveedores.Add(prov); } DateTime fechaActual = DateTime.Parse(1 + "/" + periodo.Month + "/" + periodo.Year); DateTime fechaAnterior = fechaActual.AddMonths(-1); expensasEdificio.EstadoDeCaja.FechaActual = fechaActual.ToShortDateString(); expensasEdificio.EstadoDeCaja.FechaAnterior = fechaAnterior.ToShortDateString(); expensasEdificio.Deudores = CatalogoDeudores.getDeudoresFromEdificio(edificio, periodo); int tasaRecargoVto = CatalogoTasas.getTasaVto(); expensasEdificio.Tasa2Vto = tasaRecargoVto; Double saldoCajaMesAnterior = CatalogoCajaEdificio.getSaldoCajaMes(edificio, fechaAnterior.AddMonths(1).AddDays(-1)); Double saldoCajaMesActual = CatalogoCajaEdificio.getSaldoCajaMes(edificio, fechaActual.AddMonths(1).AddDays(-1)); expensasEdificio.EstadoDeCaja.ImporteAnterior = saldoCajaMesAnterior; expensasEdificio.EstadoDeCaja.ImporteActual = saldoCajaMesActual; DateTime asd = DateTime.Parse("1 /" + periodo.Month + "/" + periodo.Year); List<expensas> expensasExistentes = allExpensasExistentes.Where(x => x.dir_edificio == edificio.direccion).ToList(); foreach (unidad u in unidades) { unidad tempUni = new unidad(); if (u.titular == null) { tempUni.titular = new titular(); tempUni.titular.nombre = "<<ninguno>>"; } else tempUni.titular = u.titular; TotalUnidad totalUnidad = new TotalUnidad(); totalUnidad.Unidad = tempUni; string idUnidad = u.id_unidad; tempUni.id_unidad = idUnidad; totalUnidad.Exclusivos = db.recargo_exclusivo.Where(x => x.dir_edificio == u.dir_edificio && x.id_unidad == u.id_unidad && x.fecha.Month == periodo.Month && x.fecha.Year == periodo.Year && x.pagado != 1).Sum(x => (double?)x.importe) ?? 0; ; totalUnidad.Legales = db.recargo_legal.Where(x => x.dir_edificio == u.dir_edificio && x.id_unidad == u.id_unidad && x.fecha.Month == periodo.Month && x.fecha.Year == periodo.Year && x.pagado != 1).Sum(x => (double?)x.importe) ?? 0; ; totalUnidad.Varios = db.recargo_vario.Where(x => x.dir_edificio == u.dir_edificio && x.id_unidad == u.id_unidad && x.fecha.Month == periodo.Month && x.fecha.Year == periodo.Year && x.pagado != 1).Sum(x => (double?)x.importe) ?? 0; ; totalUnidad.TotalSector = db.Database.SqlQuery<Totales>(@"DROP TEMPORARY TABLE IF EXISTS asd; CREATE TEMPORARY TABLE IF NOT EXISTS asd AS ( select id_sector,porcentaje from unidades_sectores us where us.dir_edificio = '" + edificio.direccion + @"' and us.id_unidad = '" + u.id_unidad + @"'); SELECT descripcion 'sector', sum(importe)'importe', porcentaje 'distribucion', (sum(importe) / 100 * porcentaje) 'corresponde' FROM factura f join sector s on s.idsector = f.id_sector join asd r1 on r1.id_sector = s.idsector where month(f.fecha) = " + periodo.Month + @" and year(f.fecha) = " + periodo.Year + @" and f.dir_edificio = '" + edificio.direccion + @"' group by descripcion order by r1.id_sector ").ToList(); double deuda = 0; double recargo = 0; foreach (CatalogoDeudores.Deudor d in expensasEdificio.Deudores) { if (u.id_unidad == d.Unidad) { deuda += d.Importe; recargo += d.Recargo; } } totalUnidad.Deuda = deuda; totalUnidad.Recargo = recargo; totalUnidad.NroFactura = (correlativo++).ToString(); expensasEdificio.TotalUnidad.Add(totalUnidad); double importe1 = 0; double importe2 = 0; double mesEnEmision = 0; foreach (Totales total in totalUnidad.TotalSector) //CatalogoExpensas.getTotales(edificio, unidad, periodo)) { mesEnEmision += total.corresponde; } importe1 = mesEnEmision + totalUnidad.Deuda + totalUnidad.Recargo; Double importeSinExclusivos = importe1; importe1 += totalUnidad.Exclusivos; importe1 += totalUnidad.Varios; importe1 += totalUnidad.Legales; importe2 = importe1 * (1 + (Double)tasaRecargoVto / 100); expensas expensa = new expensas(); expensa.dir_edificio = edificio.direccion; expensa.fecha = DateTime.Parse("1 /" + periodo.Month + "/" + periodo.Year); expensa.id_unidad = u.id_unidad; expensa.importeVto1 = double.Parse(importe1.ToString("n2")); expensa.importeVto2 = double.Parse(importe2.ToString("n2")); expensa.nro_factura = totalUnidad.NroFactura; expensa.fechaVto1 = vto1; expensa.fechaVto2 = vto2; expensa.importeSinExclusivos = importeSinExclusivos; expensa.nro_referencia = completarCadena(Math.Abs((expensa.dir_edificio.ToLower() + u.id_unidad.Replace("-", "")).GetHashCode()).ToString(), 12, "0"); expensa.pagado = 0; expensa.mesEnEmision = mesEnEmision; expensa.importeVto1 = importe1; expensa.importeVto2 = importe2; bool update = false; foreach (expensas exp in expensasExistentes) { if (exp.id_unidad == expensa.id_unidad) { { exp.importeVto1 = expensa.importeVto1; exp.importeVto2 = expensa.importeVto2; exp.nro_factura = expensa.nro_factura; exp.fechaVto1 = vto1; exp.fechaVto2 = vto2; expensa.mesEnEmision = mesEnEmision; exp.importeSinExclusivos = importeSinExclusivos; exp.nro_referencia = completarCadena(Math.Abs((expensa.dir_edificio.ToLower() + u.id_unidad.Replace("-", "")).GetHashCode()).ToString(), 12, "0"); db.Entry(exp).State = System.Data.EntityState.Modified; update = true; break; } } } if (update == false) db.expensas.Add(expensa); //db.Database.ExecuteSqlCommand("delete from expensas where dir_edificio={0} and fecha = {1} and id_unidad ={2}", expensa.dir_edificio, expensa.fecha, expensa.id_unidad); } db.SaveChanges(); } return expensasEdificio; } catch (Exception ex) { Logger.Log.write(ex.InnerException == null ? ex.Message : ex.InnerException.Message); throw ex; } }
public static void registrarPago(expensas expensaElegida) { /* List<CatalogoExpensas.Pagos> pagos = new List<CatalogoExpensas.Pagos>(); CatalogoExpensas.Pagos pago = new CatalogoExpensas.Pagos(); pago.nroReferencia = expensaElegida.nro_referencia; pago.nroFactura = expensaElegida.nro_factura; pago.importe = expensaElegida.importeVto2 == null ? 0 : (Double)expensaElegida.importeVto2 ; pagos.Add(pago); unidad unidad = new unidad(); unidad.dir_edificio = expensaElegida.ed.Edificio; unidad.id_unidad = detalleDeuda.Unidad; CatalogoExpensas.registrarPagos(DateTime.Parse("1/" + expensaElegida.fecha.Month + "/" + expensaElegida.fecha.Year), pagos, unidad); */ }
private static double getRecargo(expensas expensa, expensas ultimaGenerada, double tasaMensual, double tasaSdoVto, bool isSdoVto, bool isNewExpensa) { double recargo = 0; double periodos = getPeriodos(expensa, ultimaGenerada); if (isNewExpensa) { if (DateTime.Now.Day > 20) { periodos += 1; } } Double importe = expensa.importeSinExclusivos == null ? 0 : (Double)expensa.importeSinExclusivos; //Cargado por deudores if (expensa.nro_factura != "000000000000000") importe = (Double)expensa.mesEnEmision; if (expensa.fechaVto1 == ultimaGenerada.fechaVto1) //estamos en la ultima expensa generada { if (isSdoVto) { recargo = (importe * (1 + (tasaSdoVto / 100)) - importe); } else { if (isNewExpensa) { if (DateTime.Now.Day > 20) { recargo = (importe * (1 + (tasaMensual / 100)) - importe) * periodos; } } } } else { recargo = (importe * (1 + (tasaMensual / 100)) - importe) * periodos; if (isSdoVto) { importe += (importe * (1 + (tasaMensual / 100)) - importe) * periodos; recargo += (importe * (1 + (tasaSdoVto / 100)) - importe); } } return recargo; }
private static double getPeriodos(expensas expensa, expensas ultimaGenerada) { var meses = ultimaGenerada.fecha.Month + ultimaGenerada.fecha.Year * 12 - (expensa.fecha.Month + expensa.fecha.Year * 12); if (meses < 0) meses = 0; return meses; }
private static double getImporte(expensas ultimaExpensa, DateTime now) { if (ultimaExpensa == null || ultimaExpensa.pagado == 1) return 0; else if (ultimaExpensa.fechaVto1 < now) return (Double)ultimaExpensa.importeVto2; else return (Double)ultimaExpensa.importeVto1; }
private static string getFecha(expensas ultimaExpensa, DateTime now) { if (ultimaExpensa.fechaVto1 < now) return getPeriodo((DateTime)ultimaExpensa.fechaVto2); else return getPeriodo((DateTime)ultimaExpensa.fechaVto1); }
public static void agregarDeudor(DateTime periodo, edificio edificio, unidad unidad, string importeExpensa, string importeExclusivo, string importeLegal, string importeVario) { try { admEntities db = Datos.getDB(); if (importeExpensa != "0") { expensas exp = new expensas(); exp.dir_edificio = edificio.direccion; exp.id_unidad = unidad.id_unidad; exp.fecha = periodo; exp.importeSinExclusivos = Double.Parse(importeExpensa); exp.pagado = 0; exp.fechaVto1 = exp.fecha; exp.fechaVto2 = exp.fecha; exp.importeVto1 = exp.importeSinExclusivos; exp.importeVto2 = exp.importeSinExclusivos; exp.nro_factura = "000000000000000"; exp.nro_referencia = "000000000000"; db.expensas.Add(exp); } if (importeExclusivo != "0") { recargo_exclusivo r = new recargo_exclusivo(); r.dir_edificio = edificio.direccion; r.id_unidad = unidad.id_unidad; r.fecha = periodo; r.importe = Double.Parse(importeExclusivo); r.pagado = 0; r.concepto = "Deuda " + r.fecha.ToShortDateString(); db.recargo_exclusivo.Add(r); } if (importeLegal != "0") { recargo_legal r = new recargo_legal(); r.dir_edificio = edificio.direccion; r.id_unidad = unidad.id_unidad; r.fecha = periodo; r.importe = Double.Parse(importeLegal); r.pagado = 0; r.concepto = "Deuda " + r.fecha.ToShortDateString(); db.recargo_legal.Add(r); } if (importeVario != "0") { recargo_vario r = new recargo_vario(); r.dir_edificio = edificio.direccion; r.id_unidad = unidad.id_unidad; r.fecha = periodo; r.importe = Double.Parse(importeVario); r.pagado = 0; r.concepto = "Deuda " + r.fecha.ToShortDateString(); db.recargo_vario.Add(r); } db.SaveChanges(); } catch (Exception e) { Logger.Log.write(e.InnerException == null ? e.Message : e.InnerException.Message); throw e; } }