public static void addGasto(unidad unidad, DateTime fecha, string concepto, string importe, string tipo)
 {
     switch (tipo)
     {
         case "exclusivo":
             {
                 recargo_exclusivo r = new recargo_exclusivo();
                 r.concepto = concepto;
                 r.dir_edificio = unidad.dir_edificio;
                 r.fecha = fecha;
                 r.id_unidad = unidad.id_unidad;
                 r.pagado = 0;
                 r.importe = double.Parse(importe);
                 CatalogoGastosExclusivos.addRecargoExclusivo(r);
                 break;
             }
         case "legales":
             {
                 recargo_legal r = new recargo_legal();
                 r.concepto = concepto;
                 r.dir_edificio = unidad.dir_edificio;
                 r.fecha = fecha;
                 r.id_unidad = unidad.id_unidad;
                 r.pagado = 0;
                 r.importe = double.Parse(importe);
                 CatalogoGastosExclusivos.addRecargoLegal(r);
                 break;
             }
         case "varios":
             {
                 recargo_vario r = new recargo_vario();
                 r.concepto = concepto;
                 r.dir_edificio = unidad.dir_edificio;
                 r.fecha = fecha;
                 r.id_unidad = unidad.id_unidad;
                 r.importe = double.Parse(importe);
                 r.pagado = 0;
                 CatalogoGastosExclusivos.addRecargoVarios(r);
                 break;
             }
     }
 }
        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;
            }
        }
 public static void EliminarGasto(Recargo recargo)
 {
     switch (recargo.Tipo)
     {
         case "Exclusivos":
             {
                 recargo_exclusivo r = new recargo_exclusivo();
                 r.concepto = recargo.Concepto;
                 r.dir_edificio = recargo.Edificio;
                 r.fecha = recargo.Fecha;
                 r.id_unidad = recargo.Unidad;
                 CatalogoGastosExclusivos.removeRecargoExclusivo(r);
                 break;
             }
         case "Legales":
             {
                 recargo_legal r = new recargo_legal();
                 r.concepto = recargo.Concepto;
                 r.dir_edificio = recargo.Edificio;
                 r.fecha = recargo.Fecha;
                 r.id_unidad = recargo.Unidad;
                 CatalogoGastosExclusivos.removeRecargoLegal(r);
                 break;
             }
         case "Varios":
             {
                 recargo_vario r = new recargo_vario();
                 r.concepto = recargo.Concepto;
                 r.dir_edificio = recargo.Edificio;
                 r.fecha = recargo.Fecha;
                 r.id_unidad = recargo.Unidad;
                 CatalogoGastosExclusivos.removeRecargoVario(r);
                 break;
             }
     }
 }
 public static void removeRecargoVario(recargo_vario r)
 {
     try {
     admEntities db = Datos.getDB();
     r = db.recargo_vario.Where(x => x.dir_edificio == r.dir_edificio && x.fecha == r.fecha && x.concepto == r.concepto && x.id_unidad == r.id_unidad).SingleOrDefault();
     db.recargo_vario.Remove(r);
     db.SaveChanges();
     }
     catch (Exception e)
     {
         Logger.Log.write(e.InnerException == null ? e.Message : e.InnerException.Message);
         throw e;
     }
 }
        public static void addGastos(edificio ed, DateTime per, List<Recargo> gastos)
        {
            try
            {
                admEntities db = Datos.getDB();
                foreach (var r in db.recargo_exclusivo.Where(x => x.dir_edificio == ed.direccion && x.fecha.Month == per.Month && x.fecha.Year == per.Year).ToList())
                    db.recargo_exclusivo.Remove(r);

                foreach (var r in db.recargo_legal.Where(x => x.dir_edificio == ed.direccion && x.fecha.Month == per.Month && x.fecha.Year == per.Year).ToList())
                    db.recargo_legal.Remove(r);

                foreach (var r in db.recargo_vario.Where(x => x.dir_edificio == ed.direccion && x.fecha.Month == per.Month && x.fecha.Year == per.Year).ToList())
                    db.recargo_vario.Remove(r);

                foreach (var g in gastos)
                {
                    switch (g.Tipo) {
                        case "Exclusivos":
                            {
                                recargo_exclusivo r = new recargo_exclusivo();
                                r.concepto = g.Concepto;
                                r.dir_edificio = g.Edificio;
                                r.fecha = g.Fecha;
                                r.id_unidad = g.Unidad;
                                r.pagado = 0;
                                r.importe = g.Importe;
                                db.recargo_exclusivo.Add(r);
                            }
                            break;
                        case "Varios":
                            {
                                recargo_vario r = new recargo_vario();
                                r.concepto = g.Concepto;
                                r.dir_edificio = g.Edificio;
                                r.fecha = g.Fecha;
                                r.id_unidad = g.Unidad;
                                r.pagado = 0;
                                r.importe = g.Importe;
                                db.recargo_vario.Add(r);
                            }
                            break;
                        case "Legales":
                            {
                            recargo_legal r = new recargo_legal();
                            r.concepto = g.Concepto;
                            r.dir_edificio = g.Edificio;
                            r.fecha = g.Fecha;
                            r.id_unidad = g.Unidad;
                            r.pagado = 0;
                            r.importe = g.Importe;
                            db.recargo_legal.Add(r);
                            }
                            break;
                    }
                }

                db.SaveChanges();
            }
            catch (Exception e)
            {
                Logger.Log.write(e.InnerException == null ? e.Message : e.InnerException.Message);
                throw e;
            }
        }
 public static void addRecargoVarios(recargo_vario r)
 {
     try
     {
         admEntities db = Datos.getDB();
         db.recargo_vario.Add(r);
         db.SaveChanges();
     }
     catch (Exception e)
     {
         Logger.Log.write(e.InnerException == null ? e.Message : e.InnerException.Message);
         throw e;
     }
 }