示例#1
0
        public IActionResult AddExpense(IFormCollection formCollection)
        {
            //variables
            //liste de depenses
            List <subExpense> subExpenses = new List <subExpense>(); //liste de sous-depenses
            int    count     = 0;                                    //pour aller chercher chaque element du formulaire
            double costTotal = 0;                                    //pour le prix d'une depenses(addition de toute les sous-depenses d'une depense)

            //récupération de valeurs
            Project            p            = projectmanager.getProjet(Convert.ToInt32(formCollection["id"]));//va chercher le bon projet dans la BD
            List <ExpenseInfo> expenseInfos = new List <ExpenseInfo>();
            int counter = 1;

            foreach (var expense in p.listProjectSoumission())
            {
                ExpenseInfo       ex        = new ExpenseInfo();
                FollowInfo[]      follwlist = new JavaScriptSerializer().Deserialize <FollowInfo[]>(formCollection[counter.ToString()]);
                List <FollowInfo> subex     = new List <FollowInfo>();
                double            total     = 0;
                foreach (var item in follwlist)
                {
                    total += item.amount;
                    subex.Add(item);
                }
                ex.Spending    = expense.Spending;
                ex.subExpenses = subex;
                ex.amount      = total;
                expenseInfos.Add(ex);
                counter++;
            }

            Expense saveEx = new Expense();

            saveEx.ExpenseDate     = DateTime.Now;
            saveEx.JsonExpenseInfo = JsonConvert.SerializeObject(expenseInfos);

            ProjectExpense projectExpense = new ProjectExpense();

            projectExpense.PeExpenseId = Convert.ToInt32(formCollection["id"]);


            _context.Add(saveEx);
            _context.SaveChanges();
            projectExpense.PeExpenseId = saveEx.ExpenseId;

            projectExpense.PeProject = p;
            projectExpense.PeExpense = saveEx;
            _context.ProjectExpense.Add(projectExpense);
            _context.SaveChanges();


            return(RedirectToAction("Projet", new { id = formCollection["id"] }));
        }
示例#2
0
        public IActionResult Addprojet(IFormCollection formCollection)
        {
            ProjectFollowUp projectFollowUp = new ProjectFollowUp();
            ProjectExpense  projectExpense  = new ProjectExpense();

            Project p = new Project();

            p.ProjectName  = formCollection["ProjectName"];
            p.ProjectDebut = Convert.ToDateTime(formCollection["project_debut"]);
            p.ProjectFin   = Convert.ToDateTime(formCollection["project-fin"]);
            //TOFIX: La sérialisation JSON Échoue s'il y a plus qu'un mot dans le champ "Spending"
            //I know on va juste empecher avec des espaces
            FollowInfo[]      follwlist  = new JavaScriptSerializer().Deserialize <FollowInfo[]>(formCollection["table"]);
            List <FollowInfo> soumission = new List <FollowInfo>();

            foreach (var item in follwlist)
            {
                soumission.Add(item);
            }
            FollowUp follow = new FollowUp();

            follow.FuDate = DateTime.Now;
            follow.FuInfo = JsonConvert.SerializeObject(soumission);

            List <ExpenseInfo> expenseInfo = new List <ExpenseInfo>();

            foreach (var item in soumission)
            {
                ExpenseInfo       expenses = new ExpenseInfo();
                List <FollowInfo> subex    = new List <FollowInfo>();
                FollowInfo        ex       = new FollowInfo();
                expenses.Spending = item.Spending;
                expenses.amount   = 0;
                ex.Spending       = "Title";
                ex.amount         = 0;
                subex.Add(ex);
                expenses.subExpenses = subex;
                expenseInfo.Add(expenses);
            }

            Expense expense = new Expense();

            expense.ExpenseDate     = DateTime.Now;
            expense.JsonExpenseInfo = JsonConvert.SerializeObject(expenseInfo);

            _context.Add(follow);
            _context.Add(expense);
            _context.SaveChanges();

            projectFollowUp.PfFollowUpId = follow.FuId;
            projectFollowUp.PfProject    = p;

            projectExpense.PeExpenseId = expense.ExpenseId;
            projectExpense.PeProject   = p;



            p.ProjectSoumission = JsonConvert.SerializeObject(soumission);
            Users user = new Users();

            user = usermanager.FindUserByID(formCollection["Users"]);
            projectmanager.addProjet(p);

            projectFollowUp.PfFollowUp = follow;
            projectExpense.PeExpense   = expense;
            _context.ProjectFollowUp.Add(projectFollowUp);
            _context.ProjectExpense.Add(projectExpense);
            _context.SaveChanges();
            return(RedirectToAction("Index"));
        }