示例#1
0
        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;
            }
        }
示例#2
0
        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);
        }
示例#3
0
        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();
        }
示例#4
0
        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;
 }
示例#10
0
 private static string getFecha(expensas ultimaExpensa, DateTime now)
 {
     if (ultimaExpensa.fechaVto1 < now)
         return getPeriodo((DateTime)ultimaExpensa.fechaVto2);
     else
         return getPeriodo((DateTime)ultimaExpensa.fechaVto1);
 }
示例#11
0
        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;
            }
        }