コード例 #1
0
        /// <summary>
        ///
        /// </summary>
        public void Load()
        {
            Mouse.OverrideCursor = Cursors.Wait;

            int projectId       = ApplicationState.GetValue <int>(ApplicationVariables.intProjectId);
            int projectleiderId = ApplicationState.GetValue <Gebruiker>(ApplicationVariables.objGebruiker).ProjectleiderId;

            dbRepository dbrep = new dbRepository();

            MandagenRegistratieDomain.Project project = dbrep.GetProject(ApplicationState.GetValue <int>(ApplicationVariables.intProjectId));

            dbOriginalRepository dbrepOriginal = new dbOriginalRepository();
            MDRpersoon           persoon       = dbrepOriginal.GetContact(dbrep.GetProjectleider(project.ProjectleiderId).ContactIdOrigineel);

            MandagenRegistratieDomain.MDRproject  dboproject = dbrepOriginal.datacontext.MDRprojects.Where(p => p.project_NR == project.ProjectNr).FirstOrDefault();
            MandagenRegistratieDomain.MDRadressen dboadres   = dbrepOriginal.datacontext.MDRadressens.Where(a => a.adres_id == dboproject.adres_id_bouw).FirstOrDefault();


            lblProjectNr.Content = project.ProjectNr.ToString(); // dbrepOriginal.GetProject((int)project.ProjectNr).project_NR.ToString();


            if (dboadres != null)
            {
                txtPostcodeCijfers.Text = (dboadres.postcode_cijfers.HasValue ? dboadres.postcode_cijfers.Value.ToString() : "") + dboadres.postcode_letters;
                //txtPostcodeLetters.Text = ;
                txtHuisnummer.Text = dboadres.huis_postbus_nummer + dboadres.huisnummer_toevoeging;
                txtAdres.Text      = dboadres.straat_1;
                if (dboadres.straat_1.Length - txtHuisnummer.Text.Length > 0)
                {
                    AdresLookup = dboadres.straat_1.Substring(0, dboadres.straat_1.Length - txtHuisnummer.Text.Length).Trim();
                }
                else
                {
                    AdresLookup = "";
                }

                txtPlaats.Text = dboadres.plaats;
                txtLand.Text   = dboadres.land;
            }

            txtProjectnaam.Text = dboproject.naam_project;

            if (persoon != null)
            {
                lblProjectleider.Content = (persoon.voornaam + " " + persoon.tussenvoegsel + " " + persoon.achternaam).ToStringTrimmed();
            }
            else
            {
                lblProjectleider.Content = "";
            }

            txtProjectcodeExtern.Text       = dboproject.aannemer_projectnummer;
            txtProjectContractnummer.Text   = dboproject.aannemer_contractnummer;
            txtProjectNacalculatiecode.Text = dboproject.nacalculatiecode;


            // set dropdownlist
            List <Gebruiker> listProjectleiders = new List <Gebruiker>();

            listProjectleiders = dbrep.GetProjectleiders().Where(g => g.IsProjectleider).ToList();

            cbProjectleiders.ItemsSource       = listProjectleiders;
            cbProjectleiders.DisplayMemberPath = "Gebruikersnaam";
            cbProjectleiders.SelectedValuePath = "ProjectleiderId";

            cbProjectleiders.SelectedValue = ApplicationState.GetValue <Gebruiker>(ApplicationVariables.objGebruiker).ProjectleiderId;

            // set projectleiders voor eigenaarschap
            cbProjectleiders2.ItemsSource       = listProjectleiders;
            cbProjectleiders2.DisplayMemberPath = "Gebruikersnaam";
            cbProjectleiders2.SelectedValuePath = "ProjectleiderId";

            cbProjectleiders2.SelectedValue = project.ProjectleiderId;


            // set zichtbaarheid
            if (project.ProjectleiderId == projectleiderId)
            {
                cbProjectleiders2.IsEnabled = true;
            }


            // set periodes
            List <cPeriode> listPeriodes = new List <cPeriode>();

            List <Mandagen>  listMandagen        = dbrep.datacontext.Mandagens.Where(m => m.ProjectId == projectId).ToList();
            List <Gebruiker> listProjectleiders2 = dbrep.GetProjectleiders();

            // set huidige projectleider
            lblHuidigeProjectEigenaar.Content = listProjectleiders2.Where(p => p.ProjectleiderId == project.ProjectleiderId).FirstOrDefault().Gebruikersnaam;

            // default het scherm onzichtbaar maken
            // wpUrenOverdragen.Visibility = System.Windows.Visibility.Collapsed;

            // greyen in plaats van onzichtbaar maken
            lblBeginDatum.IsEnabled    = false;
            cbProjectleiders.IsEnabled = false;
            // standaard zo
            imgCalendarOn.Visibility = System.Windows.Visibility.Collapsed;
            imgCalendar.Visibility   = System.Windows.Visibility.Visible;


            if (listMandagen.Where(m => m.Begintijd != m.Eindtijd).Count() > 0)
            {
            }

            cPeriode cp = new cPeriode();
            int      previousProjectleiderId = 0;
            int      counter = 0;

            List <Mandagen> listMandagenByDate = listMandagen.Where(m => m.Begintijd != m.Eindtijd).OrderBy(m => m.Begintijd).ToList();

            foreach (Mandagen mandag in listMandagenByDate)
            {
                // count the loop
                counter++;

                int currentProjectleiderId = mandag.ProjectleiderId;
                //alleen de eerste keer startdatum standaard instellen
                if (previousProjectleiderId == 0)
                {
                    cp.periodeVan   = mandag.Begintijd.ToString("dd-MM-yyyy");
                    cp.periodeStart = mandag.Begintijd;
                }


                // als de huidige projectleider een andere is dan de vorige
                // dan vorige opslaan, en verder gaan met een nieuwe
                if (currentProjectleiderId != previousProjectleiderId && previousProjectleiderId != 0)
                {
                    listPeriodes.Add(cp);
                    cp                      = new cPeriode();
                    cp.periodeVan           = mandag.Begintijd.ToString("dd-MM-yyyy");
                    cp.periodeStart         = mandag.Begintijd;
                    cp.periodeTot           = mandag.Eindtijd.ToString("dd-MM-yyyy");
                    cp.periodeProjectleider = listProjectleiders2.FirstOrDefault(pl => pl.ProjectleiderId == mandag.ProjectleiderId).Gebruikersnaam;
                    cp.periodeStop          = mandag.Eindtijd;
                }
                // anders alleen verder gaan met de einddatum
                else
                {
                    cp.periodeTot           = mandag.Eindtijd.ToString("dd-MM-yyyy");
                    cp.periodeProjectleider = listProjectleiders2.FirstOrDefault(pl => pl.ProjectleiderId == mandag.ProjectleiderId).Gebruikersnaam;
                    cp.periodeStop          = mandag.Eindtijd;
                }


                // als het de laatste is, dan sowieso opslaaan

                if (listMandagenByDate.Count == counter)
                {
                    listPeriodes.Add(cp);
                }

                // sla de previousProjectleiderID op
                previousProjectleiderId = mandag.ProjectleiderId;

                // als ik een periode heb, kan ik uren overzetten, anders heeft dat scherm uberhaupt geen nut
                if (mandag.ProjectleiderId == projectleiderId)
                {
                    wpUrenOverdragen.Visibility = System.Windows.Visibility.Visible;

                    // niet meer ge-greyd
                    lblBeginDatum.IsEnabled    = true;
                    cbProjectleiders.IsEnabled = true;
                    // calendar plaatjes verwisselen
                    imgCalendarOn.Visibility = System.Windows.Visibility.Visible;
                    imgCalendar.Visibility   = System.Windows.Visibility.Collapsed;

                    dtFirstPossibleDate = listMandagen.Where(m => m.ProjectleiderId == projectleiderId && m.Begintijd != m.Eindtijd).OrderBy(m => m.Begintijd).FirstOrDefault().Begintijd;
                    dtLastPossibleDate  = listMandagen.Where(m => m.ProjectleiderId == projectleiderId && m.Begintijd != m.Eindtijd).OrderByDescending(m => m.Eindtijd).FirstOrDefault().Eindtijd;

                    // reset selected date on Load
                    dtSelectedDate            = dtFirstPossibleDate;
                    dpBeginDatum.SelectedDate = dtSelectedDate;
                    lblBeginDatum.Content     = dtSelectedDate.ToString("dd-MM-yyyy");
                }
            }

            //foreach (Gebruiker pl in listProjectleiders2.Where(p => listMandagen.Any(m => m.ProjectleiderId == p.ProjectleiderId)))
            //{
            //    cPeriode cp = new cPeriode();
            //    cp.periodeVan = listMandagen.Where(m => m.ProjectleiderId == pl.ProjectleiderId && m.Begintijd != m.Eindtijd).OrderBy(m => m.Begintijd).FirstOrDefault().Begintijd.ToString("dd-MM-yyyy");
            //    cp.periodeTot = listMandagen.Where(m => m.ProjectleiderId == pl.ProjectleiderId && m.Begintijd != m.Eindtijd).OrderByDescending(m => m.Eindtijd).FirstOrDefault().Eindtijd.ToString("dd-MM-yyyy");
            //    cp.periodeProjectleider = pl.Gebruikersnaam;
            //    cp.periodeStart = listMandagen.Where(m => m.ProjectleiderId == pl.ProjectleiderId && m.Begintijd != m.Eindtijd).OrderBy(m => m.Begintijd).FirstOrDefault().Begintijd;
            //    cp.periodeStop = listMandagen.Where(m => m.ProjectleiderId == pl.ProjectleiderId && m.Begintijd != m.Eindtijd).OrderByDescending(m => m.Eindtijd).FirstOrDefault().Eindtijd;

            //    listPeriodes.Add(cp);

            //    // als ik een periode heb, kan ik uren overzetten, anders heeft dat scherm uberhaupt geen nut
            //    if (pl.ProjectleiderId == projectleiderId)
            //    {
            //        wpUrenOverdragen.Visibility = System.Windows.Visibility.Visible;

            //        // niet meer ge-greyd
            //        lblBeginDatum.IsEnabled = true;
            //        cbProjectleiders.IsEnabled = true;
            //        // calendar plaatjes verwisselen
            //        imgCalendarOn.Visibility = System.Windows.Visibility.Visible;
            //        imgCalendar.Visibility = System.Windows.Visibility.Collapsed;

            //        dtFirstPossibleDate = listMandagen.Where(m => m.ProjectleiderId == pl.ProjectleiderId && m.Begintijd != m.Eindtijd).OrderBy(m => m.Begintijd).FirstOrDefault().Begintijd;
            //        dtLastPossibleDate = listMandagen.Where(m => m.ProjectleiderId == pl.ProjectleiderId && m.Begintijd != m.Eindtijd).OrderByDescending(m => m.Eindtijd).FirstOrDefault().Eindtijd;

            //        // reset selected date on Load
            //        dtSelectedDate = dtFirstPossibleDate;
            //        dpBeginDatum.SelectedDate = dtSelectedDate;
            //        lblBeginDatum.Content = dtSelectedDate.ToString("dd-MM-yyyy");

            //    }
            //}



            itemsPeriodes.ItemsSource = listPeriodes.OrderBy(p => p.periodeStart).ThenBy(p => p.periodeStop).ToList();


            Mouse.OverrideCursor = null;
        }
コード例 #2
0
        public void Load()
        {
            try
            {
                Mouse.OverrideCursor = Cursors.Wait;

                int projectId       = ApplicationState.GetValue <int>(ApplicationVariables.intProjectId);
                int projectleiderId = ApplicationState.GetValue <Gebruiker>(ApplicationVariables.objGebruiker).ProjectleiderId;

                dbRepository dbrep = new dbRepository();

                if (intProjectId == -1)
                {
                    intProjectId = ApplicationState.GetValue <int>(ApplicationVariables.intProjectId);
                }

                //if (dtSelectedDay == DateTime.MinValue)
                //{
                dtSelectedDay = ApplicationState.GetValue <DateTime>(ApplicationVariables.dtSelectedDay);
                //}

                MandagenRegistratieDomain.Project project = dbrep.GetProject(intProjectId);

                dbOriginalRepository dbrepOriginal = new dbOriginalRepository();
                MDRpersoon           persoon       = dbrepOriginal.GetContact(dbrep.GetProjectleider(project.ProjectleiderId).ContactIdOrigineel);
                MDRproject           dboproject    = dbrepOriginal.GetProject((int)project.ProjectNr);


                MandagenRegistratieDomain.MDRadressen dboadres = null;

                if (dboproject.adres_id_bouw != null)
                {
                    dboadres = dbrepOriginal.datacontext.MDRadressens.Where(a => a.adres_id == dboproject.adres_id_bouw).FirstOrDefault();
                }
                else if (dboproject.adres_id_factuur != null)
                {
                    dboadres = dbrepOriginal.datacontext.MDRadressens.Where(a => a.adres_id == dboproject.adres_id_factuur).FirstOrDefault();
                }

                MDRbedrijf bedrijfzdb = dbrepOriginal.datacontext.MDRbedrijfs.Where(b => b.bedrijf_nr == dboproject.opdrachtgeverZEEBREGTS_nr).FirstOrDefault();

                if (bedrijfzdb != null)
                {
                    lblOpdrachtgever.Content = bedrijfzdb.naam;
                }

                lblProjectNr.Content = project.ProjectNr.ToString(); // dbrepOriginal.GetProject((int)project.ProjectNr).project_NR.ToString();

                lblProjectnaam.Content = dboproject.naam_project;

                if (persoon != null)
                {
                    lblProjectleider.Content = (persoon.voornaam + " " + persoon.tussenvoegsel + " " + persoon.achternaam).ToStringTrimmed();
                }
                else
                {
                    lblProjectleider.Content = "";
                }

                lblProjectcodeExtern.Content       = dboproject.aannemer_projectnummer;
                lblProjectContractnummer.Content   = dboproject.aannemer_contractnummer;
                lblProjectNacalculatiecode.Content = dboproject.nacalculatiecode;

                bool showLblReferentieOpdrachtgever = false;

                if (string.IsNullOrWhiteSpace(dboproject.aannemer_projectnummer))
                {
                    lblProjectcodeExtern.Visibility  = System.Windows.Visibility.Collapsed;
                    lblProjectcodeExtern2.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    lblProjectcodeExtern.Visibility  = System.Windows.Visibility.Visible;
                    lblProjectcodeExtern2.Visibility = System.Windows.Visibility.Visible;
                    showLblReferentieOpdrachtgever   = true;
                }

                if (string.IsNullOrWhiteSpace(dboproject.aannemer_contractnummer))
                {
                    lblProjectContractnummer.Visibility  = System.Windows.Visibility.Collapsed;
                    lblProjectContractnummer2.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    lblProjectContractnummer.Visibility  = System.Windows.Visibility.Visible;
                    lblProjectContractnummer2.Visibility = System.Windows.Visibility.Visible;
                    showLblReferentieOpdrachtgever       = true;
                }

                if (string.IsNullOrWhiteSpace(dboproject.nacalculatiecode))
                {
                    lblProjectNacalculatiecode.Visibility  = System.Windows.Visibility.Collapsed;
                    lblProjectNacalculatiecode2.Visibility = System.Windows.Visibility.Collapsed;
                }
                else
                {
                    lblProjectNacalculatiecode.Visibility  = System.Windows.Visibility.Visible;
                    lblProjectNacalculatiecode2.Visibility = System.Windows.Visibility.Visible;
                    showLblReferentieOpdrachtgever         = true;
                }

                if (showLblReferentieOpdrachtgever)
                {
                    lblReferentieOpdrachtgever.Visibility = System.Windows.Visibility.Visible;
                }
                else
                {
                    lblReferentieOpdrachtgever.Visibility = System.Windows.Visibility.Collapsed;
                }

                if (dboadres != null)
                {
                    lblPostcode.Content = (dboadres.postcode_cijfers.HasValue ? dboadres.postcode_cijfers.Value.ToString() + dboadres.postcode_letters : "") + ", " + dboadres.plaats;

                    string postcodeTemp = (dboadres.postcode_cijfers.HasValue ? dboadres.postcode_cijfers.Value.ToString() + dboadres.postcode_letters : "");

                    lblPostcode.Content = postcodeTemp + (string.IsNullOrWhiteSpace(dboadres.plaats) || string.IsNullOrWhiteSpace(postcodeTemp) ? "" : ", ") + dboadres.plaats;


                    //lblHuisnummer.Content = dboadres.huis_postbus_nummer + dboadres.huisnummer_toevoeging;
                    lblAdres.Content = dboadres.straat_1 + " " + dboadres.huis_postbus_nummer + dboadres.huisnummer_toevoeging;
                    //lblPlaats.Content = dboadres.plaats;
                    lblLand.Content = dboadres.land;

                    bool showLblAdresProject = false;

                    if (string.IsNullOrWhiteSpace(lblPostcode.Content.ToString()))
                    {
                        lblPostcode.Visibility  = System.Windows.Visibility.Collapsed;
                        lblPostcode2.Visibility = System.Windows.Visibility.Collapsed;
                    }
                    else
                    {
                        if (string.IsNullOrWhiteSpace(postcodeTemp))
                        {
                            lblPostcode2.Content = "Plaats";
                        }
                        else if (string.IsNullOrWhiteSpace(dboadres.plaats))
                        {
                            lblPostcode2.Content = "Postcode";
                        }
                        else
                        {
                            lblPostcode2.Content = "Postcode, plaats";
                        }

                        lblPostcode.Visibility  = System.Windows.Visibility.Visible;
                        lblPostcode2.Visibility = System.Windows.Visibility.Visible;
                        showLblAdresProject     = true;
                    }

                    //if (string.IsNullOrWhiteSpace(lblHuisnummer.Content.ToString()))
                    //{
                    //    lblHuisnummer.Visibility = System.Windows.Visibility.Collapsed;
                    //    lblHuisnummer2.Visibility = System.Windows.Visibility.Collapsed;
                    //}
                    //else
                    //{
                    //    lblHuisnummer.Visibility = System.Windows.Visibility.Visible;
                    //    lblHuisnummer2.Visibility = System.Windows.Visibility.Visible;
                    //    showLblAdresProject = true;
                    //}

                    if (string.IsNullOrWhiteSpace(lblAdres.Content.ToString()))
                    {
                        lblAdres.Visibility  = System.Windows.Visibility.Collapsed;
                        lblAdres2.Visibility = System.Windows.Visibility.Collapsed;
                    }
                    else
                    {
                        lblAdres.Visibility  = System.Windows.Visibility.Visible;
                        lblAdres2.Visibility = System.Windows.Visibility.Visible;
                        showLblAdresProject  = true;
                    }

                    //if (string.IsNullOrWhiteSpace(lblPlaats.Content.ToString()))
                    //{
                    //    lblPlaats.Visibility = System.Windows.Visibility.Collapsed;
                    //    lblPlaats2.Visibility = System.Windows.Visibility.Collapsed;
                    //}
                    //else
                    //{
                    //    lblPlaats.Visibility = System.Windows.Visibility.Visible;
                    //    lblPlaats2.Visibility = System.Windows.Visibility.Visible;
                    //    showLblAdresProject = true;
                    //}

                    if (string.IsNullOrWhiteSpace(lblLand.Content.ToString()))
                    {
                        lblLand.Visibility  = System.Windows.Visibility.Collapsed;
                        lblLand2.Visibility = System.Windows.Visibility.Collapsed;
                    }
                    else
                    {
                        lblLand.Visibility  = System.Windows.Visibility.Visible;
                        lblLand2.Visibility = System.Windows.Visibility.Visible;
                        showLblAdresProject = true;
                    }

                    if (showLblAdresProject)
                    {
                        lblAdresProject.Visibility = System.Windows.Visibility.Visible;
                    }
                    else
                    {
                        lblAdresProject.Visibility = System.Windows.Visibility.Collapsed;
                    }
                }


                ProjectDagView pdv = new ProjectDagView();
                pdv.objProject = project;
                pdv.LoadVakmanDagView(true, intProjectId, dtSelectedDay);
                pdv.LoadWeekInfo();


                //pdv.HorizontalAlignment = System.Windows.HorizontalAlignment.Stretch;

                tabPlanning.Content = pdv;

                // set periodes
                List <cPeriode> listPeriodes = new List <cPeriode>();

                List <Mandagen>  listMandagen        = dbrep.datacontext.Mandagens.Where(m => m.ProjectId == intProjectId).ToList();
                List <Gebruiker> listProjectleiders2 = dbrep.GetProjectleiders();

                // set huidige projectleider
                lblHuidigeProjectEigenaar.Content = listProjectleiders2.Where(p => p.ProjectleiderId == project.ProjectleiderId).FirstOrDefault().Gebruikersnaam;


                cPeriode cp = new cPeriode();
                int      previousProjectleiderId = 0;
                int      counter = 0;

                List <Mandagen> listMandagenByDate = listMandagen.Where(m => m.Begintijd != m.Eindtijd).OrderBy(m => m.Begintijd).ToList();
                foreach (Mandagen mandag in listMandagenByDate)
                {
                    // count the loop
                    counter++;

                    int currentProjectleiderId = mandag.ProjectleiderId;
                    //alleen de eerste keer startdatum standaard instellen
                    if (previousProjectleiderId == 0)
                    {
                        cp.periodeVan = mandag.Begintijd.ToString("dd-MM-yyyy");
                    }


                    // als de huidige projectleider een andere is dan de vorige
                    // dan vorige opslaan, en verder gaan met een nieuwe
                    if (currentProjectleiderId != previousProjectleiderId && previousProjectleiderId != 0)
                    {
                        listPeriodes.Add(cp);
                        cp                      = new cPeriode();
                        cp.periodeVan           = mandag.Begintijd.ToString("dd-MM-yyyy");
                        cp.periodeTot           = mandag.Eindtijd.ToString("dd-MM-yyyy");
                        cp.periodeProjectleider = listProjectleiders2.FirstOrDefault(pl => pl.ProjectleiderId == mandag.ProjectleiderId).Gebruikersnaam;
                    }
                    // anders alleen verder gaan met de einddatum
                    else
                    {
                        cp.periodeTot           = mandag.Eindtijd.ToString("dd-MM-yyyy");
                        cp.periodeProjectleider = listProjectleiders2.FirstOrDefault(pl => pl.ProjectleiderId == mandag.ProjectleiderId).Gebruikersnaam;
                    }


                    // als het de laatste is, dan sowieso opslaaan

                    if (listMandagenByDate.Count == counter)
                    {
                        listPeriodes.Add(cp);
                    }

                    // sla de previousProjectleiderID op
                    previousProjectleiderId = mandag.ProjectleiderId;
                }


                //foreach (Gebruiker pl in listProjectleiders2.Where(p => listMandagen.Any(m => m.ProjectleiderId == p.ProjectleiderId)))
                //{
                //    cPeriode cp = new cPeriode();
                //    cp.periodeVan = listMandagen.Where(m=>m.ProjectleiderId == pl.ProjectleiderId).OrderBy(m => m.Begintijd).FirstOrDefault().Begintijd.ToString("dd-MM-yyyy");
                //    cp.periodeTot = listMandagen.Where(m => m.ProjectleiderId == pl.ProjectleiderId).OrderByDescending(m => m.Eindtijd).FirstOrDefault().Begintijd.ToString("dd-MM-yyyy");
                //    cp.periodeProjectleider = pl.Gebruikersnaam;

                //    listPeriodes.Add(cp);
                //}

                itemsPeriodes.ItemsSource = listPeriodes;

                //// TODO: testen, null waarde ? why?
                //PageContainer pc = (PageContainer)Tools.FindVisualParent<Window>(this);
                //pc.SetLabelSubtitlePlanning();
            }
            catch
            {
                MessageBox.Show("Er is een onbekende fout opgetreden, error #501");
            }

            Mouse.OverrideCursor = null;
        }