Esempio n. 1
0
        public ActionResult Index(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            var SousEvent = db.FindSousEvenement((int)id);

            ViewBag.SousEvent = SousEvent;

            if (SousEvent.tblSalle != null)
            {
                ViewBag.Salle = SousEvent.tblSalle;
            }
            else
            {
                ViewBag.Salle = new tblSalle(); //Envoie d'une salle vide pour empêcher l'envoie d'une erreur
            }

            ViewBag.Forfait = SousEvent.tblForfait.Where(f => f.dateSupprime == null);

            ViewBag.Calcul = db.ReturnCalculateur((int)id) ?? new tblCalculateur();

            return(View());
        }
        public ActionResult RapportCalculateur(int?id)
        {
            var reportQueryCalculateur = (from s in db.ReturnListCalculateur().Where(c => c.noSousEvenement == id)
                                          select new
            {
                s.noSousEvenement,
                s.billet,
                s.billetVIP,
                s.prixBillet,
                s.prixBilletVIP,
                s.souperSpectacle,
                s.prixSouper,
                s.jeunePourcent,
                s.adultePourcent,
                s.ainePourcent,
                s.jeuneRatio,
                s.adulteRatio,
                s.aineRatio,
                s.promo,
                s.prevente,
                s.customBillet1,
                s.customBillet2,
                s.customPrix1,
                s.customPrix2,
                s.customNom1,
                s.customNom2,
            }).ToList();

            var reportQuerySSEvent = (from s in db.ToutSousEvenement().Where(sse => sse.noSousEvenement == id)
                                      select new
            {
                s.noSousEvenement,
                s.nom,
                s.description,
                s.noEvenement,
                s.noSalle,
            }).ToList();

            var reportQuerySalle = (from s in db.ReturnListSalle().Where(a => a.noSalle == db.FindSousEvenement((int)id).noSalle)
                                    select new
            {
                s.noSalle,
                s.nomSalle,
                s.prix,
                s.billet,
                s.billetVIP,
                s.photoSalle,
                s.dateSupprime,
                s.urlGoogleMap
            }).ToList();

            var reportQueryNomEvent = (from s in db.ToutEvenement().Where(a => a.noEvenement == db.ReturnEvenement((reportQuerySSEvent.FirstOrDefault().noEvenement)).noEvenement)
                                       select new
            {
                s.noEvenement,
                s.nom,
            }).ToList();


            LocalReport u = new LocalReport();

            u.ReportPath = "Rapport/ReportCalculateur.rdlc";
            u.SetParameters(new ReportParameter("auteur", db.ReturnUtilisateur(AbpSession.UserId.Value).UserName));
            u.DataSources.Clear();
            ReportDataSource datasourceCalcul   = new ReportDataSource("DataSetCalculateur", reportQueryCalculateur);
            ReportDataSource datasourceSSEvent  = new ReportDataSource("DataSetSousEvent", reportQuerySSEvent);
            ReportDataSource datasourceSalle    = new ReportDataSource("DataSetSalle", reportQuerySalle);
            ReportDataSource datasourceNomEvent = new ReportDataSource("DataNomEvent", reportQueryNomEvent);

            u.DataSources.Add(datasourceCalcul);
            u.DataSources.Add(datasourceSSEvent);
            u.DataSources.Add(datasourceSalle);
            u.DataSources.Add(datasourceNomEvent);

            //ReportParameter p = new ReportParameter("DeptID", deptID.ToString());
            //u.SetParameters(new[] { p });

            var cd = new System.Net.Mime.ContentDisposition
            {
                // for example foo.bak
                FileName = "Rapport_Calculateur.pdf",

                // always prompt the user for downloading, set to true if you want
                // the browser to try to show the file inline
                Inline = true,
            };

            Warning[] warnings;
            string[]  streamids;
            string    mimeType;
            string    encoding;
            string    filenameExtension;

            byte[] bytes = u.Render(
                "PDF", null, out mimeType, out encoding, out filenameExtension,
                out streamids, out warnings);


            Response.AppendHeader("Content-Disposition", cd.ToString());
            return(File(bytes, "application/pdf"));
        }
        public ActionResult Detail(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            if (IsGranted(PermissionNames.GererSousEvenement))
            {
                var serviceAAjouter = Request.Form["service"] ?? Request.Form["service_delete_salle"];
                //ajouter le service requis
                if (serviceAAjouter != null)
                {
                    db.InsertServiceRequis((int)id, int.Parse(serviceAAjouter));
                }
                //supprimer un service requis
                var serviceASupprimer = Request.Form["service_suppr"];
                if (serviceASupprimer != null)
                {
                    db.SupprimerServiceRequis((int)id, int.Parse(serviceASupprimer));
                }

                //ajouter le forfait sélectionné
                var forfaitAAjouter = Request.Form["forfait"];
                if (forfaitAAjouter != null)
                {
                    db.LierForfait((int)id, int.Parse(forfaitAAjouter));
                }
                //supprimer le forfait sélectionné
                var forfaitASupprimer = Request.Form["forfait_suppr"];
                if (forfaitASupprimer != null)
                {
                    db.DelierForfait((int)id, int.Parse(forfaitASupprimer));
                }

                //ajouter la salle sélectionnée
                var salleAAjouter = Request.Form["salle"];
                if (salleAAjouter != null)
                {
                    db.LierSalle((int)id, int.Parse(salleAAjouter));
                }

                //supprimer la salle sélectionnée ou si le service ajouté est de trop
                if (Request.Form["salle_suppr"] != null || Request.Form["service_delete_salle"] != null)
                {
                    if (Request.Form["service_delete_salle"] != null)
                    {
                        var SousEvenement      = db.FindSousEvenement((int)id);
                        var nom_salle          = SousEvenement.tblSalle.nomSalle;
                        var nom_sous_evenement = SousEvenement.nom;
                        db.CreerMemo((int)AbpSession.UserId.Value, (int)AbpSession.UserId.Value, string.Format("La salle «{0}» a été retirée du sous-événement «{1}» car un service requis n'y sétait pas offert", nom_salle, nom_sous_evenement), Request.RawUrl);
                    }
                    db.DelierSalle((int)id);
                }

                //ajouter l'engagement sélectionné
                var engagementAAjouter = Request.Form["engagement"];
                if (engagementAAjouter != null)
                {
                    db.LierEngagement((int)id, int.Parse(engagementAAjouter));
                }
                //supprimer l'engagement sélectionné
                var engagementASupprimer = Request.Form["engagement_suppr"];
                if (engagementASupprimer != null)
                {
                    db.DelierEngagement((int)id, int.Parse(engagementASupprimer));
                }
            }



            var SousEvenementCourrant = db.FindSousEvenement((int)id);

            if (SousEvenementCourrant.tblSalle != null)
            {
                ViewBag.ServicesOfferts = SousEvenementCourrant.tblSalle.tblService;
            }

            if (SousEvenementCourrant == null)
            {
                return(HttpNotFound());
            }
            var service = db.ToutService().Except(SousEvenementCourrant.tblService).ToList();
            //sortir seulement les salles n'étant pas celle sélectionnée (peu probable, car la view ne permet pas de choisir une salle lorsqu'il y en a déjà une de sélectionnée)
            //et sortir seulement les salles offrant au minimum les services requis.
            var salle = db.ToutSalle().Except(new List <tblSalle> {
                SousEvenementCourrant.tblSalle
            })
                        .Where(Salle =>
                               //Services requis par le sous-evenement sont tous (All) dans la liste des services offerts de la salle
                               SousEvenementCourrant.tblService.All(ServiceRequis =>
                                                                    Salle.tblService.Contains(ServiceRequis)
                                                                    )
                               ).ToList();
            var forfait    = db.ToutForfait().Except(SousEvenementCourrant.tblForfait).ToList();
            var engagement = db.ToutEngagement().Except(SousEvenementCourrant.tblEngagement).ToList();

            ViewBag.listTuple           = new Tuple <tblSousEvenement, List <tblService>, List <tblSalle>, List <tblForfait>, List <tblEngagement> >(SousEvenementCourrant, service, salle, forfait, engagement);
            ViewBag.UtilisateurCourrant = (long)AbpSession.UserId;
            GetPermissions();
            return(View());
        }