Exemple #1
0
        public ActionResult Create(FormCollection form)
        {
            int      ano    = int.Parse(form["ano"].ToString());
            int      mes    = int.Parse(form["mes"].ToString());
            DateTime inicio = new DateTime(ano, mes, 1);
            DateTime fin    = new DateTime(ano, mes + 1, 1);

            try
            {
                var titulares = from t in db.Titulares.Where(p => p.fecha_registro >= inicio && p.fecha_registro <= fin)
                                join f in db.Facturas on t.id_titular equals f.id_titular
                                where f.fecha_factura_inicio != inicio
                                select t;
                DBPrepagadaEntities db2 = new DBPrepagadaEntities();
                using (db2)
                {
                    foreach (var titular in titulares)
                    {
                        Facturas factura = new Facturas()
                        {
                            estado = "pendiente", fecha_factura = DateTime.Now.Date, fecha_factura_inicio = inicio, fecha_factura_fin = fin, valor_a_pagar = titular.Membresias.valor_mensual, id_titular = titular.id_titular, fecha_cancelado = inicio, pagado = 0
                        };
                        db2.Facturas.Add(factura);
                        db2.SaveChanges();
                        foreach (var beneficiario in titular.Beneficiarios)
                        {
                            Facturas_Beneficiarios f_beneficiario = new Facturas_Beneficiarios()
                            {
                                id_beneficiario = beneficiario.id_beneficiario, id_factura = factura.id_factura, id_membresia = beneficiario.id_membresia, valor_a_pagar = beneficiario.Membresias.valor_mensual
                            };
                            db2.Facturas_Beneficiarios.Add(f_beneficiario);
                            db2.SaveChanges();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            return(RedirectToAction("Index", new { fecha = inicio.ToString("yyyy-MM-dd") }));
        }