예제 #1
0
        public static int Update(Smena smena, MyDatabase pDb = null)
        {
            MyDatabase db;

            if (pDb == null)
            {
                db = new MyDatabase();
                db.Connect();
            }
            else
            {
                db = (MyDatabase)pDb;
            }

            SqlCommand command = db.CreateCommand(SQL_UPDATE);

            PrepareCommand(command, smena);
            int ret = db.ExecuteNonQuery(command);

            if (pDb == null)
            {
                db.Close();
            }

            return(ret);
        }
예제 #2
0
        private bool UpdateDoctorShift(IzabraniLekar lekar)
        {
            bool  success = true;
            Smena s       = (Smena)metroGridSmenaLekara.SelectedRows[0].DataBoundItem;
            Smena found   = null;

            foreach (Smena ss in lekar.Smene)
            {
                if (ss.Equals(s))
                {
                    found = ss;
                    break;
                }
            }
            found.Datum_Do    = metroDateTimeDatumDo.Value.Date;
            found.Id.Datum_Od = metroDateTimeDatumOd.Value.Date;
            found.SmenaLekara = metroRadioButtonSmenaPrepodne.Checked ? 1 : 2;
            //s.Datum_Do = metroDateTimeDatumDo.Value.Date;
            //s.Id.Datum_Od = metroDateTimeDatumOd.Value.Date;
            //s.SmenaLekara = metroRadioButtonSmenaPrepodne.Checked ? 1 : 2;
            try
            {
                session_local.Update(lekar);
                session_local.Flush();
                session_local.Refresh(lekar_local); // Lokalna kopija se osvezava (za svaki slucaj) jer nesto nece da radi kako treba
            }
            catch (Exception ex)
            {
                MetroMessageBox.Show(this, "Error u funkciji za ažuriranje smene " + ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                success = false;
            }
            return(success);
        }
예제 #3
0
        private bool AddDoctorShift(IzabraniLekar lekar)
        {
            bool success = true;

            Smena s = new Smena()
            {
                SmenaLekara = metroRadioButtonSmenaPrepodne.Checked ? 1 : 2,
                Datum_Do    = metroDateTimeDatumDo.Value.Date,
                Id          = new SmenaId()
                {
                    Datum_Od = metroDateTimeDatumOd.Value.Date,
                    Lekar    = lekar
                }
            };

            // Proveri da li je smena regularna (nema preklapanja)
            if (!IsShiftRegular(s))
            {
                MetroMessageBox.Show(this, "Smena koju želite da unesete se preklapa po datumima sa već unetim smenama", "Error!",
                                     MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
            lekar.Smene.Add(s);
            try
            {
                session_local.Save(lekar);
                session_local.Flush();
            }
            catch (Exception ex)
            {
                MetroMessageBox.Show(this, "Greška u funkciji za dodavanje smene " + ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                success = false;
            }
            return(success);
        }
예제 #4
0
파일: Avtor.cs 프로젝트: TabVV/Sklad1C
        private void AfterConstruct(MainF xF)
        {
            xNSI    = xF.xNSI;
            xSm     = xF.xSm;
            nCurReg = (int)xF.xDLLPars;

            // центровка формы
            Rectangle screen = Screen.PrimaryScreen.Bounds;

            this.Location = new Point((screen.Width - this.Width) / 2,
                                      (screen.Height - this.Height) / 2);

            SetBindSmenaPars();
            SetAvtFields();

            if (xMF.evReadNSI != null)
            {// загрузку НСИ выполнять параллельно авторизации
                xTh          = new Thread(new ThreadStart(ReadLocNSI));
                xTh.Priority = ThreadPriority.Lowest;
                xTh.Start();
            }
            if (nCurReg != AppC.AVT_PARS)
            {// парметры изменяются только с клавиатуры
                ehScan = new BarcodeScanner.BarcodeScanEventHandler(OnScanBage);
                xMF.xBCScanner.BarcodeScan += ehScan;
            }
            else
            {
                xOldSm.nSklad  = xSm.nSklad;
                xOldSm.nUch    = xSm.nUch;
                xOldSm.sDatDoc = xSm.DocData;
                xOldSm.nReg    = xSm.RegApp;
            }
            BeginEditAvt(nCurReg);
        }
예제 #5
0
        private Smena GetDoctorShift(IzabraniLekar lekar)
        {
            Smena smena = null;

            foreach (Smena s in lekar.Smene)
            {
                if (s.Id.Datum_Od <= metroDateTime1.Value.Date && s.Datum_Do >= metroDateTime1.Value.Date)
                {
                    smena = s;
                    break;
                }
            }
            return(smena);
        }
예제 #6
0
        private static Collection <Smena> Read(SqlDataReader reader)
        {
            Collection <Smena> smeny = new Collection <Smena>();

            while (reader.Read())
            {
                int   i     = -1;
                Smena smena = new Smena();
                smena.ID_smeny = reader.GetInt32(++i);
                smena.Popis    = reader.GetString(++i);

                smeny.Add(smena);
            }
            return(smeny);
        }
예제 #7
0
        private void FromGridToControl()
        {
            Smena s = (Smena)metroGridSmenaLekara.SelectedRows[0].DataBoundItem;

            metroDateTimeDatumOd.Value = s.Id.Datum_Od;
            metroDateTimeDatumDo.Value = s.Datum_Do;
            if (s.SmenaLekara == 1)
            {
                metroRadioButtonSmenaPrepodne.Checked = true;
            }
            else
            {
                metroRadioButtonSmenaPoslepodne.Checked = true;
            }
        }
예제 #8
0
        //
        //private string jmbg_lekara, active_patient_jmbg;
        //private int smena_lekara;
        //private string sql_search;
        public FormLekar(string jmbg_lekara)
        {
            InitializeComponent();
            session        = DataLayer.GetSession();
            oracle_session = DataLayerOracle.GetSession();

            lekar_local = session.Load <IzabraniLekar>(jmbg_lekara);

            //this.jmbg_lekara = lekar_local.Jmbg;
            this.Text = lekar_local.Ime + " " + lekar_local.Prezime;
            //this.Text = GetDoctorNameAndSurname(jmbg_lekara);
            metroDateTime1.MinDate                   = System.DateTime.Today;
            metroDateTime1.Value                     = System.DateTime.Now; // causes event that calls RefreshControls to initialize the controls
            metroTabGlobal.SelectedIndex             = 0;                   // Show 'Raspored pregleda' first
            metroComboBoxIzborPretrage.SelectedIndex = 1;                   // LBO default way of search

            metroLabelInfoOTerminu.Text  = "Prelaz preko dugmeta za info o terminu";
            metroLabelInfoPacijenta.Text = string.Empty;
            //metroLabelInfoPacijenta.Text = "Pacijent: ";

            smena_lekara_local         = GetDoctorShift(lekar_local);
            metroLabelSmenaLekara.Text = smena_lekara_local == null ? "Smena nije postavljena za izabrani datum" : GetShiftName(smena_lekara_local.SmenaLekara);

            //metroButtonPretraziPacijente_Click += metroComboBoxIzborPretrage_SelectedIndexChanged;
            foreach (Control c in pnlPopodne.Controls)
            {
                MetroButton mb = c as MetroButton;
                if (mb != null)
                {
                    mb.Click      += metroButton_Click;
                    mb.MouseHover += metroButton_MouseHover;
                    mb.MouseLeave += metroButton_MouseLeave;
                    //mb.UseStyleColors = true;
                }
            }
            foreach (Control c in pnlPrepodne.Controls)
            {
                MetroButton mb = c as MetroButton;
                if (mb != null)
                {
                    mb.Click      += metroButton_Click;
                    mb.MouseHover += metroButton_MouseHover;
                    mb.MouseLeave += metroButton_MouseLeave;
                    //mb.UseStyleColors = true;
                }
            }
        }
예제 #9
0
        private void button7_Click(object sender, EventArgs e)
        {
            ISession      s     = DataLayer.GetSession();
            IzabraniLekar il    = s.Get <IzabraniLekar>("0112955445023");
            Smena         smena = new Smena()
            {
                Datum_Do    = new DateTime(2018, 12, 30),
                SmenaLekara = 2
            };

            smena.Id.Datum_Od = new DateTime(2018, 1, 1);
            smena.Id.Lekar    = il;
            il.Smene.Add(smena);
            s.Save(il);
            s.Flush();
            s.Close();
        }
    public static void SaveXML()
    {
        XmlDocument xmlDoc = new XmlDocument();

        try
        {
            xmlDoc.Load(path);
            foreach (XmlNode add in xmlDoc.GetElementsByTagName("add"))
            {
                if (add.Attributes["key"].Value == "DEVICE_ID")
                {
                    add.Attributes["value"].Value = DeviceId;
                }
                if (add.Attributes["key"].Value == "IP")
                {
                    add.Attributes["value"].Value = ServerIP;
                }
                if (add.Attributes["key"].Value == "PORT")
                {
                    add.Attributes["value"].Value = ServerPort;
                }
                if (add.Attributes["key"].Value == "SMENA")
                {
                    add.Attributes["value"].Value = Smena.ToString();
                }
                if (add.Attributes["key"].Value == "LOCATION")
                {
                    add.Attributes["value"].Value = Location.ToString();
                }
                if (add.Attributes["key"].Value == "CONTROL_TYPE")
                {
                    add.Attributes["value"].Value = ControlType.ToString();
                }
                if (add.Attributes["key"].Value == "CONTROL_TABNO")
                {
                    add.Attributes["value"].Value = ControlTabNo.ToString();
                }
            }
            xmlDoc.Save(path);
        }
        catch (Exception exp)
        {
            MessageBox.Show("Отсутствует файл настроек или неверные настройки!\n\n" + exp, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
        }
    }
예제 #11
0
 private void Window_Closed(object sender, EventArgs e)
 {
     try
     {
         using (ApplicationDBContext context = new ApplicationDBContext())
         {
             Smena smena = new Smena()
             {
                 Started  = Convert.ToDateTime(labSmenaStart.Text),
                 Finished = DateTime.Now,
                 WorkerId = Properties.Settings.Default.WorkerId
             };
             context.Smenas.Add(smena);
             context.SaveChanges();
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("Error8");
     }
 }
예제 #12
0
        public static Smena Select(int id, MyDatabase pDb = null)
        {
            MyDatabase db;

            if (pDb == null)
            {
                db = new MyDatabase();
                db.Connect();
            }
            else
            {
                db = (MyDatabase)pDb;
            }

            SqlCommand command = db.CreateCommand(SQL_SELECT_ID);

            command.Parameters.AddWithValue("@ID_smeny", id);
            SqlDataReader reader = db.Select(command);

            Collection <Smena> smeny = Read(reader);
            Smena smena = null;

            if (smeny.Count == 1)
            {
                smena = smeny[0];
            }
            reader.Close();

            if (pDb == null)
            {
                db.Close();
            }

            if (smena == null)
            {
                Console.WriteLine("Smena neexistuje");
            }

            return(smena);
        }
예제 #13
0
        private bool DeleteDoctorShift(IzabraniLekar lekar)
        {
            bool success = true;


            Smena s = (Smena)metroGridSmenaLekara.SelectedRows[0].DataBoundItem;

            lekar.Smene.Remove(s);
            metroGridSmenaLekara.Rows.RemoveAt(metroGridSmenaLekara.SelectedRows[0].Index);
            try
            {
                session_local.Delete(s);
                session_local.Save(lekar);
                session_local.Flush();
            }
            catch (Exception ex)
            {
                MetroMessageBox.Show(this, "Error u funkciji za brisanje smene " + ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                success = false;
            }
            return(success);
        }
예제 #14
0
        private bool IsShiftRegular(Smena nova_smena)
        {
            bool   success = true;
            IQuery query   = session_local.CreateQuery("from Smena s where s.Id.Lekar = :lekar");

            query.SetParameter("lekar", nova_smena.Id.Lekar);
            IList <Smena> lista_smena = query.List <Smena>();

            foreach (Smena s in lista_smena)
            {
                if (s.Id.Datum_Od == nova_smena.Id.Datum_Od)
                {
                    return(false);
                }
                if (s.Id.Datum_Od < nova_smena.Id.Datum_Od)
                {
                    if (s.Datum_Do < nova_smena.Id.Datum_Od)
                    {
                        continue;
                    }
                    else
                    {
                        return(false);
                    }
                }
                else // s.Id.Datum_od > nova_smena.Id.Datum_od
                {
                    if (s.Id.Datum_Od > nova_smena.Datum_Do)
                    {
                        continue;
                    }
                    else
                    {
                        return(false);
                    }
                }
            }
            return(success);
        }
예제 #15
0
 private static void PrepareCommand(SqlCommand command, Smena smena)
 {
     command.Parameters.AddWithValue("@ID_smeny", smena.ID_smeny);
     command.Parameters.AddWithValue("@Popis", smena.Popis);
 }
예제 #16
0
        public void popuniKalendar()
        {
            try
            {
                oznaciDanas();
                lbPonSmena.Text = null;
                lbUtoSmena.Text = null;
                lbSreSmena.Text = null;
                lbCetSmena.Text = null;
                lbPetSmena.Text = null;
                lbSubSmena.Text = null;

                Smena s     = new Smena();
                var   forma = Application.OpenForms["formaRadnika"] as formaRadnika;
                if (forma != null)
                {
                    s.ID = int.Parse(forma.lbID.Text);
                }

                Radnik r = new Radnik();
                r.ID = s.ID;
                DataTable dt = r.selectRadnik();
                lbRadnik.Text = dt.Rows[0][3].ToString();
                if (dt.Rows[0][11] != null)
                {
                    r.Slika = (byte[])(dt.Rows[0][11]);
                    MemoryStream mstream = new MemoryStream(r.Slika);
                    pictureBox.Image = System.Drawing.Image.FromStream(mstream);
                }

                DataTable smene = s.selectSmenuPoIDU();

                for (int i = 0; i < smene.Rows.Count; i++)
                {
                    if (lbPon.Text.Equals(smene.Rows[i][0].ToString()))
                    {
                        lbPonSmena.Text = smene.Rows[i][1].ToString() + " smena";
                    }

                    if (lbUto.Text.Equals(smene.Rows[i][0].ToString()))
                    {
                        lbUtoSmena.Text = smene.Rows[i][1].ToString() + " smena";
                    }

                    if (lbSre.Text.Equals(smene.Rows[i][0].ToString()))
                    {
                        lbSreSmena.Text = smene.Rows[i][1].ToString() + " smena";
                    }

                    if (lbCet.Text.Equals(smene.Rows[i][0].ToString()))
                    {
                        lbCetSmena.Text = smene.Rows[i][1].ToString() + " smena";
                    }

                    if (lbPet.Text.Equals(smene.Rows[i][0].ToString()))
                    {
                        lbPetSmena.Text = smene.Rows[i][1].ToString() + " smena";
                    }

                    if (lbSub.Text.Equals(smene.Rows[i][0].ToString()))
                    {
                        lbSubSmena.Text = smene.Rows[i][1].ToString() + " smena";
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
예제 #17
0
        private void registerDoctorOrSister_Click(object sender, EventArgs e)
        {
            Doctors doctor = this.createDoctors();
            string  maxId  = getMaxId();

            try
            {
                int mId = Int32.Parse(maxId);
                doctor.id = (++mId).ToString();
            }
            catch (Exception exception)
            {
                doctor.id = "";
            }


            Dictionary <string, object> queryDict = new Dictionary <string, object>();

            queryDict.Add("id", doctor.id);
            queryDict.Add("Ime", doctor.Ime);
            queryDict.Add("Prezime", doctor.Prezime);
            queryDict.Add("ID_Kartice", doctor.ID_Kartice);
            queryDict.Add("Smena", doctor.Smena);
            queryDict.Add("DoktorOrSestra", doctor.DoktorOrSestra);
            queryDict.Add("Odeljenje", doctor.Odeljenje);
            queryDict.Add("Sifra", doctor.Sifra);

            var query = new Neo4jClient.Cypher.CypherQuery("CREATE (n:Doctors {id:'" + doctor.id + "',Ime:'" + doctor.Ime + "', Prezime:'" + doctor.Prezime
                                                           + "', ID_Kartice:'" + doctor.ID_Kartice + "', Smena:'" + doctor.Smena
                                                           + "', DoktorOrSestra:'" + doctor.DoktorOrSestra + "', Odeljenje:'" + doctor.Odeljenje
                                                           + "', Sifra:'" + doctor.Sifra
                                                           + "'}) return n",
                                                           queryDict, CypherResultMode.Set);
            List <Doctors> doctors = ((IRawGraphClient)client).ExecuteGetCypherResults <Doctors>(query).ToList();

            #region Validation

            string odeljenje_string = departmentDoctors.Text;

            Dictionary <string, object> queryCheck = new Dictionary <string, object>();
            queryCheck.Add("odeljenje", odeljenje_string);



            var queryCheckV = new Neo4jClient.Cypher.CypherQuery("start n=node(*) where exists(n.broj) and n.broj =~ {odeljenje} return n",
                                                                 queryCheck, CypherResultMode.Set);

            List <Odeljenje> odeljenja = ((IRawGraphClient)client).ExecuteGetCypherResults <Odeljenje>(queryCheckV).ToList();
            #endregion

            //Ako ne postoji odeljenje
            if (odeljenja.Count == 0)
            {
                Odeljenje odeljenje = new Odeljenje();
                odeljenje.broj = doctor.Odeljenje;
                string maxId2 = getMaxId();
                try
                {
                    int mId = Int32.Parse(maxId2);
                    odeljenje.id = (++mId).ToString();
                }
                catch (Exception exception)
                {
                    odeljenje.id = "";
                }
                Dictionary <string, object> queryDict2 = new Dictionary <string, object>();
                queryDict2.Add("id", odeljenje.id);
                queryDict2.Add("broj", odeljenje.broj);


                var query2 = new Neo4jClient.Cypher.CypherQuery("CREATE (n:Odeljenje {id:'" + odeljenje.id + "',broj:'" + odeljenje.broj + "'}) return n",
                                                                queryDict2, CypherResultMode.Set);
                ((IRawGraphClient)client).ExecuteGetCypherResults <Odeljenje>(query2).ToList();
            }
            #region Validation Smena

            string smena_string = doctor.Smena;

            Dictionary <string, object> queryCheckS = new Dictionary <string, object>();
            queryCheckS.Add("smena", smena_string);



            var queryCheckSmene = new Neo4jClient.Cypher.CypherQuery("start n=node(*) where exists(n.broj_smene) and n.broj_smene =~ {smena} return n",
                                                                     queryCheckS, CypherResultMode.Set);

            List <Smena> smena = ((IRawGraphClient)client).ExecuteGetCypherResults <Smena>(queryCheckSmene).ToList();
            #endregion

            //Ako ne postoji smena
            if (smena.Count == 0)
            {
                Smena s = new Smena();
                s.broj_smene = doctor.Smena;
                string maxId2 = getMaxId();
                try
                {
                    int mId = Int32.Parse(maxId2);
                    s.id = (++mId).ToString();
                }
                catch (Exception exception)
                {
                    s.id = "";
                }
                Dictionary <string, object> queryDict2 = new Dictionary <string, object>();
                queryDict2.Add("id", s.id);
                queryDict2.Add("broj_smene", s.broj_smene);


                var query2 = new Neo4jClient.Cypher.CypherQuery("CREATE (n:Smene {id:'" + s.id + "',broj_smene:'" + s.broj_smene + "'}) return n",
                                                                queryDict2, CypherResultMode.Set);
                ((IRawGraphClient)client).ExecuteGetCypherResults <Smena>(query2).ToList();
            }

            client.Cypher
            .Match("(d:Doctors)", "(o:Odeljenje)")
            .Where((Doctors d) => d.id == doctor.id)
            .AndWhere((Odeljenje o) => o.broj == doctor.Odeljenje)
            .Create("(d)<-[r:Radi_U]-(o)")
            .ExecuteWithoutResults();

            client.Cypher
            .Match("(d:Doctors)", "(o:Odeljenje)")
            .Where((Doctors d) => d.id == doctor.id)
            .AndWhere((Odeljenje o) => o.broj == doctor.Odeljenje)
            .Create("(d)-[r:Pripada]->(o)")
            .ExecuteWithoutResults();

            client.Cypher
            .Match("(d:Doctors)", "(s:Smene)")
            .Where((Doctors d) => d.id == doctor.id)
            .AndWhere((Smena s) => s.broj_smene == doctor.Smena)
            .Create("(d)<-[r:Radi_U_Smeni]-(s)")
            .ExecuteWithoutResults();
            this.Close();
        }
예제 #18
0
        public void popuniKalendar()
        {
            try
            {
                oznaciDanas();
                lbPonPrva.Text  = null;
                lbPonDruga.Text = null;
                lbUtoPrva.Text  = null;
                lbUtoDruga.Text = null;
                lbSrePrva.Text  = null;
                lbSreDruga.Text = null;
                lbCetPrva.Text  = null;
                lbCetDruga.Text = null;
                lbPetPrva.Text  = null;
                lbPetDruga.Text = null;
                lbSubPrva.Text  = null;
                lbSubDruga.Text = null;
                DataTable radnici = Direktor.selectRadnike();
                DataTable smene   = Smena.selectSmene();

                for (int i = 0; i < smene.Rows.Count; i++)
                {
                    if (lbPon.Text.Equals(smene.Rows[i][0].ToString()))
                    {
                        for (int j = 0; j < radnici.Rows.Count; j++)
                        {
                            if (smene.Rows[i][2].ToString().Equals(radnici.Rows[j][10].ToString()) && smene.Rows[i][1].ToString().Equals("prva"))
                            {
                                lbPonPrva.Text = radnici.Rows[j][3].ToString();
                            }
                            else if (smene.Rows[i][2].ToString().Equals(radnici.Rows[j][10].ToString()) && smene.Rows[i][1].ToString().Equals("druga"))
                            {
                                lbPonDruga.Text = radnici.Rows[j][3].ToString();
                            }
                        }
                    }

                    if (lbUto.Text.Equals(smene.Rows[i][0].ToString()))
                    {
                        for (int j = 0; j < radnici.Rows.Count; j++)
                        {
                            if (smene.Rows[i][2].ToString().Equals(radnici.Rows[j][10].ToString()) && smene.Rows[i][1].ToString().Equals("prva"))
                            {
                                lbUtoPrva.Text = radnici.Rows[j][3].ToString();
                            }
                            else if (smene.Rows[i][2].ToString().Equals(radnici.Rows[j][10].ToString()) && smene.Rows[i][1].ToString().Equals("druga"))
                            {
                                lbUtoDruga.Text = radnici.Rows[j][3].ToString();
                            }
                        }
                    }

                    if (lbSre.Text.Equals(smene.Rows[i][0].ToString()))
                    {
                        for (int j = 0; j < radnici.Rows.Count; j++)
                        {
                            if (smene.Rows[i][2].ToString().Equals(radnici.Rows[j][10].ToString()) && smene.Rows[i][1].ToString().Equals("prva"))
                            {
                                lbSrePrva.Text = radnici.Rows[j][3].ToString();
                            }
                            else if (smene.Rows[i][2].ToString().Equals(radnici.Rows[j][10].ToString()) && smene.Rows[i][1].ToString().Equals("druga"))
                            {
                                lbSreDruga.Text = radnici.Rows[j][3].ToString();
                            }
                        }
                    }

                    if (lbCet.Text.Equals(smene.Rows[i][0].ToString()))
                    {
                        for (int j = 0; j < radnici.Rows.Count; j++)
                        {
                            if (smene.Rows[i][2].ToString().Equals(radnici.Rows[j][10].ToString()) && smene.Rows[i][1].ToString().Equals("prva"))
                            {
                                lbCetPrva.Text = radnici.Rows[j][3].ToString();
                            }
                            else if (smene.Rows[i][2].ToString().Equals(radnici.Rows[j][10].ToString()) && smene.Rows[i][1].ToString().Equals("druga"))
                            {
                                lbCetDruga.Text = radnici.Rows[j][3].ToString();
                            }
                        }
                    }

                    if (lbPet.Text.Equals(smene.Rows[i][0].ToString()))
                    {
                        for (int j = 0; j < radnici.Rows.Count; j++)
                        {
                            if (smene.Rows[i][2].ToString().Equals(radnici.Rows[j][10].ToString()) && smene.Rows[i][1].ToString().Equals("prva"))
                            {
                                lbPetPrva.Text = radnici.Rows[j][3].ToString();
                            }
                            else if (smene.Rows[i][2].ToString().Equals(radnici.Rows[j][10].ToString()) && smene.Rows[i][1].ToString().Equals("druga"))
                            {
                                lbPetDruga.Text = radnici.Rows[j][3].ToString();
                            }
                        }
                    }

                    if (lbSub.Text.Equals(smene.Rows[i][0].ToString()))
                    {
                        for (int j = 0; j < radnici.Rows.Count; j++)
                        {
                            if (smene.Rows[i][2].ToString().Equals(radnici.Rows[j][10].ToString()) && smene.Rows[i][1].ToString().Equals("prva"))
                            {
                                lbSubPrva.Text = radnici.Rows[j][3].ToString();
                            }
                            else if (smene.Rows[i][2].ToString().Equals(radnici.Rows[j][10].ToString()) && smene.Rows[i][1].ToString().Equals("druga"))
                            {
                                lbSubDruga.Text = radnici.Rows[j][3].ToString();
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
예제 #19
0
        private void btnAzurirajD_MouseClick(object sender, MouseEventArgs e)
        {
            try
            {
                if (imeRadnikaD.Text.ToString().Equals("") && dbSmena.Text.ToString().Equals("Izaberite smenu"))
                {
                    customMessageBox.Show("Izaberite radnika i smenu!");
                }
                else if (imeRadnikaD.Text.ToString().Equals(""))
                {
                    customMessageBox.Show("Izaberite radnika!");
                }
                else if (dbSmena.Text.ToString().Equals("Izaberite smenu"))
                {
                    customMessageBox.Show("Izaberite smenu!");
                }
                else if (dtpOdD.Value > dtpDoD.Value)
                {
                    customMessageBox.Show("Krajnji datum ne sme biti pre početnog!");
                }
                else
                {
                    bool      validacija = false;
                    Smena     s          = new Smena();
                    DataTable dt         = new DataTable();
                    dt = Direktor.selectRadnike();

                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        if (dt.Rows[i][3].ToString().Equals(imeRadnikaD.Text))
                        {
                            s.ID = int.Parse(dt.Rows[i][10].ToString());
                        }
                    }

                    int razlika = dtpDoD.Value.Day - dtpOdD.Value.Day;
                    if (razlika < 0)
                    {
                        razlika += 31;
                    }

                    for (int i = 0; i <= razlika; i++)
                    {
                        s.Datum      = dtpOdD.Value.AddDays(i).ToShortDateString();
                        s.izborSmene = dbSmena.Text;

                        DataTable provera = s.selectSmenu();
                        if (provera.Rows.Count == 0)
                        {
                            validacija = true;
                        }
                    }

                    if (!validacija)
                    {
                        for (int i = 0; i <= razlika; i++)
                        {
                            s.Datum      = dtpOdD.Value.AddDays(i).ToShortDateString();
                            s.izborSmene = dbSmena.Text;
                            s.azurirajSmenu();
                        }
                    }
                    else
                    {
                        customMessageBox.Show("Ne možete ažurirati smenu koja je prazna.");
                    }
                    popuniKalendar();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
예제 #20
0
        private void btnDodajD_MouseClick(object sender, MouseEventArgs e)
        {
            try
            {
                if (imeRadnikaD.Text.ToString().Equals("") && dbSmena.Text.ToString().Equals("Izaberite smenu"))
                {
                    customMessageBox.Show("Izaberite radnika i smenu!");
                }
                else if (imeRadnikaD.Text.ToString().Equals(""))
                {
                    customMessageBox.Show("Izaberite radnika!");
                }
                else if (dbSmena.Text.ToString().Equals("Izaberite smenu"))
                {
                    customMessageBox.Show("Izaberite smenu!");
                }
                else if (dtpOdD.Value > dtpDoD.Value)
                {
                    customMessageBox.Show("Krajnji datum ne sme biti pre početnog!");
                }
                else
                {
                    Smena     s  = new Smena();
                    DataTable dt = new DataTable();
                    dt = Direktor.selectRadnike();

                    for (int i = 0; i < dt.Rows.Count; i++)
                    {
                        if (dt.Rows[i][3].ToString().Equals(imeRadnikaD.Text))
                        {
                            s.ID = int.Parse(dt.Rows[i][10].ToString());
                        }
                    }

                    int razlika = dtpDoD.Value.Day - dtpOdD.Value.Day;
                    if (razlika < 0)
                    {
                        razlika += 31;
                    }

                    bool          provera     = false;
                    List <string> zauzetiDani = new List <string> {
                    };
                    for (int i = 0; i <= razlika; i++)
                    {
                        s.Datum      = dtpOdD.Value.AddDays(i).ToShortDateString();
                        s.izborSmene = dbSmena.Text;
                        DataTable smena = s.selectSmenu();

                        if (smena.Rows.Count > 0)
                        {
                            provera = true;
                            zauzetiDani.Add(dtpOdD.Value.AddDays(i).ToShortDateString());
                        }
                    }

                    if (!provera)
                    {
                        for (int i = 0; i <= razlika; i++)
                        {
                            s.Datum      = dtpOdD.Value.AddDays(i).ToShortDateString();
                            s.izborSmene = dbSmena.Text;

                            s.dodajSmenu();
                        }
                        popuniKalendar();
                    }
                    else
                    {
                        if (zauzetiDani.Count == 1)
                        {
                            customMessageBox.Show(s.izborSmene.First().ToString().ToUpper() + String.Join("", s.izborSmene.Skip(1)) + " smena " + zauzetiDani[0] + " je već zauzeta.");
                        }
                        else
                        {
                            customMessageBox.Show(s.izborSmene.First().ToString().ToUpper() + String.Join("", s.izborSmene.Skip(1)) + " smena od " + zauzetiDani[0] + "-" + zauzetiDani[zauzetiDani.Count - 1] + " je zauzeta.");
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
예제 #21
0
 private void metroDateTime1_ValueChanged(object sender, EventArgs e)
 {
     smena_lekara_local = GetDoctorShift(lekar_local);
     RefreshControls(lekar_local);
 }
예제 #22
0
        private void RefreshControls(IzabraniLekar lekar)
        {
            Smena s = GetDoctorShift(lekar);

            if (s == null)
            {
                MetroMessageBox.Show(this, "Lekaru izabranog pacijenta nije podešena smena za traženi datum, i nije moguće zakazati termin", "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                UpdateForm(3); // lekaru nije podesena smena
                return;
            }
            UpdateForm(GetDoctorShift(lekar).SmenaLekara);

            IQuery query = session_local.CreateQuery("from Termin t where t.Lekar.Jmbg = :lekar and t.Datum = :datum");

            query.SetParameter("lekar", lekar_local.Jmbg);
            query.SetParameter("datum", metroDateTime1.Value.Date);

            IList <Termin> termini_lekara = query.List <Termin>(); // lista svih danasnjih termina zadatog lekara


            #region Reset all buttons
            foreach (Control c in pnlPrepodne.Controls)
            {
                MetroButton mb = c as MetroButton;
                //int time = Int32.Parse(System.DateTime.Now.ToShortTimeString().Replace(".", String.Empty));
                DateTime datetime = System.DateTime.Now;
                int      time     = Int32.Parse(datetime.Hour.ToString() + datetime.Minute.ToString());
                if (mb != null)
                {
                    mb.Enabled = true;
                    if (metroDateTime1.Value.Date == System.DateTime.Now.Date &&
                        s.SmenaLekara == 1 &&
                        Int32.Parse(mb.Text.Replace(":", String.Empty)) <= (time + 100)) // sledeci sat
                    {
                        mb.Enabled = false;
                    }
                }
            }
            foreach (Control c in pnlPopodne.Controls)
            {
                MetroButton mb = c as MetroButton;
                //int time = Int32.Parse(System.DateTime.Now.ToShortTimeString().Replace(".", String.Empty));
                DateTime datetime = System.DateTime.Now;
                int      time     = Int32.Parse(datetime.Hour.ToString() + datetime.Minute.ToString());

                if (mb != null)
                {
                    mb.Enabled = true;
                    if (metroDateTime1.Value.Date == System.DateTime.Now.Date &&
                        s.SmenaLekara == 2 &&
                        Int32.Parse(mb.Text.Replace(":", String.Empty)) <= (time + 100))
                    {
                        mb.Enabled = false;
                    }
                }
            }
            #endregion

            foreach (Termin t in termini_lekara)
            {
                int time = t.Vreme;
                //MetroMessageBox.Show(this, "Enter while loop in rdr.Read() " + time.ToString(), "rdr.Read()", MessageBoxButtons.OK, MessageBoxIcon.Error);
                if (time <= 1330)
                {
                    MetroButton mb = this.pnlPrepodne.Controls["metroButton" + time.ToString()] as MetroButton;
                    if (mb != null)
                    {
                        mb.Enabled = false; // moze biti kliknutu jer je zakazan termin (postoji pacijent)
                    }
                }
                else
                {
                    MetroButton mb = this.pnlPopodne.Controls["metroButton" + time.ToString()] as MetroButton;
                    if (mb != null)
                    {
                        mb.Enabled = false; // moze biti kliknutu jer je zakazan termin (postoji pacijent)
                    }
                }
            }
        }
예제 #23
0
        private void shiftDoctor_Click(object sender, EventArgs e)
        {
            if (Int32.Parse(changeShift.Text) > 3)
            {
                MessageBox.Show("Smene mogu biti od 1 do 3");
            }
            else
            {
                #region Validation Smena

                string smena_string = changeShift.Text;

                Dictionary <string, object> queryCheckS = new Dictionary <string, object>();
                queryCheckS.Add("smena", smena_string);



                var queryCheckSmene = new Neo4jClient.Cypher.CypherQuery("start n=node(*) where exists(n.broj_smene) and n.broj_smene =~ {smena} return n",
                                                                         queryCheckS, CypherResultMode.Set);

                List <Smena> smena = ((IRawGraphClient)client).ExecuteGetCypherResults <Smena>(queryCheckSmene).ToList();
                #endregion

                //Ako ne postoji smena
                if (smena.Count == 0)
                {
                    Smena s = new Smena();
                    s.broj_smene = changeShift.Text;
                    string maxId2 = getMaxId();
                    try
                    {
                        int mId = Int32.Parse(maxId2);
                        s.id = (++mId).ToString();
                    }
                    catch (Exception exception)
                    {
                        s.id = "";
                    }
                    Dictionary <string, object> queryDict2 = new Dictionary <string, object>();
                    queryDict2.Add("id", s.id);
                    queryDict2.Add("broj_smene", s.broj_smene);


                    var query2 = new Neo4jClient.Cypher.CypherQuery("CREATE (n:Smene {id:'" + s.id + "',broj_smene:'" + s.broj_smene + "'}) return n",
                                                                    queryDict2, CypherResultMode.Set);
                    ((IRawGraphClient)client).ExecuteGetCypherResults <Smena>(query2).ToList();
                }

                var queryDelete = new Neo4jClient.Cypher.CypherQuery("MATCH(n { id: '" + doctors.id + "' })<-[r: Radi_U_Smeni]->(m {broj_smene: '" + doctors.Smena + "' }) DELETE r return m",
                                                                     new Dictionary <string, object>(), CypherResultMode.Set);

                ((IRawGraphClient)client).ExecuteGetCypherResults <Smena>(queryDelete).ToList();

                var queryP = new Neo4jClient.Cypher.CypherQuery("start n=node(*) where (n:Doctors) and exists(n.id) and n.id =~ '" + this.doctors.id + "' set n.Smena = '" + changeShift.Text + "' return n",
                                                                new Dictionary <string, object>(), CypherResultMode.Set);
                List <Doctors> patients = ((IRawGraphClient)client).ExecuteGetCypherResults <Doctors>(queryP).ToList();



                client.Cypher
                .Match("(d:Doctors)", "(s:Smene)")
                .Where((Doctors d) => d.id == doctors.id)
                .AndWhere((Smena s) => s.broj_smene == changeShift.Text)
                .Create("(d)<-[r:Radi_U_Smeni]-(s)")
                .ExecuteWithoutResults();

                UpdateSmena(changeShift.Text);
                doctors.Smena = changeShift.Text;
            }
        }
예제 #24
0
        private void RefreshControls(IzabraniLekar lekar)
        {
            smena_lekara_local = GetDoctorShift(lekar_local);
            if (smena_lekara_local == null)
            {
                UpdateForm(3); // Sve false
            }
            else
            {
                UpdateForm(smena_lekara_local.SmenaLekara);
            }

            //lekar_local.Termini[0].Pacijent
            IQuery query = session.CreateQuery("from Termin t where t.Lekar.Jmbg = :lekar and t.Datum = :datum");

            query.SetParameter("lekar", lekar_local.Jmbg);
            query.SetParameter("datum", metroDateTime1.Value.Date);

            IList <Termin> termini_lekara = query.List <Termin>(); // lista svih danasnjih termina zadatog lekara


            #region Reset all buttons
            foreach (Control c in pnlPrepodne.Controls)
            {
                MetroButton mb = c as MetroButton;
                if (mb != null)
                {
                    mb.Highlight = false;
                    mb.Enabled   = false; // ne mogu biti kliknuti (jer nije zakazan termin)
                    //mb.BackColor = Color.LightCyan; // LightCyan = Free
                }
            }
            foreach (Control c in pnlPopodne.Controls)
            {
                MetroButton mb = c as MetroButton;
                if (mb != null)
                {
                    mb.Highlight = false;
                    mb.Enabled   = false; // ne mogu biti kliknuti (jer nije zakazan termin)
                    //mb.BackColor = Color.LightCyan; // LightCyan = Free
                }
            }
            #endregion

            foreach (Termin t in termini_lekara)
            {
                int time = t.Vreme;
                //MetroMessageBox.Show(this, "Enter while loop in rdr.Read() " + time.ToString(), "rdr.Read()", MessageBoxButtons.OK, MessageBoxIcon.Error);
                if (time <= 1330)
                {
                    MetroButton mb = this.pnlPrepodne.Controls["metroButton" + time.ToString()] as MetroButton;
                    if (mb != null)
                    {
                        mb.Highlight = true;
                        mb.Enabled   = true; // moze biti kliknut jer je zakazan termin (postoji pacijent)
                        //mb.BackColor = Color.LightGoldenrodYellow; // NOT Free
                        //this.pnlPrepodne.Controls["metroButton" + time.ToString()].Enabled = false;
                    }
                }
                else
                {
                    MetroButton mb = this.pnlPopodne.Controls["metroButton" + time.ToString()] as MetroButton;
                    if (mb != null)
                    {
                        mb.Highlight = true;
                        mb.Enabled   = true; // moze biti kliknutu jer je zakazan termin (postoji pacijent)
                        //mb.BackColor = Color.LightGoldenrodYellow; // NOT Free
                        //this.pnlPopodne.Controls["metroButton" + time.ToString()].Enabled = false;
                    }
                }
            }
        }
예제 #25
0
        private void RefreshControls(IzabraniLekar lekar)
        {
            Smena s = GetDoctorShift(lekar);

            if (s == null)
            {
                UpdateForm(3);
            }
            else
            {
                UpdateForm(s.SmenaLekara);
            }

            IQuery query = session_local.CreateQuery("from Termin t where t.Lekar.Jmbg = :lekar and t.Datum = :datum");

            query.SetParameter("lekar", lekar_local.Jmbg);
            query.SetParameter("datum", metroDateTime1.Value.Date);

            IList <Termin> termini_lekara = query.List <Termin>(); // lista svih danasnjih termina zadatog lekara


            #region Reset all buttons

            foreach (Control c in pnlPrepodne.Controls)
            {
                MetroButton mb = c as MetroButton;
                //int time = Int32.Parse(System.DateTime.Now.ToShortTimeString().Replace(".", String.Empty));
                DateTime datetime = System.DateTime.Now;
                int      time     = Int32.Parse(datetime.Hour.ToString() + datetime.Minute.ToString());
                // ShortTimeString (example 14.16)

                if (mb != null)
                {
                    mb.Enabled = true; // svi termini dostupni
                    if (metroDateTime1.Value.Date == System.DateTime.Now.Date &&
                        s.SmenaLekara == 1 &&
                        Int32.Parse(mb.Text.Replace(":", String.Empty)) <= (time + 100)) // sledeci sat
                    {
                        mb.Enabled = false;
                    }
                }
            }
            foreach (Control c in pnlPopodne.Controls)
            {
                MetroButton mb = c as MetroButton;
                //int time = Int32.Parse(System.DateTime.Now.ToShortTimeString().Replace(".", String.Empty));
                DateTime datetime = System.DateTime.Now;
                int      time     = Int32.Parse(datetime.Hour.ToString() + datetime.Minute.ToString());

                if (mb != null)
                {
                    mb.Enabled = true; // svi termini dostupni
                    if (metroDateTime1.Value.Date == System.DateTime.Now.Date &&
                        s.SmenaLekara == 2 &&
                        Int32.Parse(mb.Text.Replace(":", String.Empty)) <= (time + 100))
                    {
                        mb.Enabled = false;
                    }
                    //mb.BackColor = Color.LightCyan; // LightCyan = Free
                }
            }
            #endregion

            foreach (Termin t in termini_lekara)
            {
                int time = t.Vreme;
                if (time <= 1330)
                {
                    MetroButton mb = this.pnlPrepodne.Controls["metroButton" + time.ToString()] as MetroButton;
                    if (mb != null)
                    {
                        mb.Enabled = false;
                    }
                }
                else
                {
                    MetroButton mb = this.pnlPopodne.Controls["metroButton" + time.ToString()] as MetroButton;
                    if (mb != null)
                    {
                        mb.Enabled = false;
                    }
                }
            }
        }
예제 #26
0
        private bool AfterConstruct(MainF xF)
        {
            bool
                cbAvail = true,
                ret     = false;
            int
                i;

            xNSI    = xF.xNSI;
            xSm     = xF.xSm;
            nCurReg = (int)xF.xDLLPars;

            // центровка формы
            Rectangle screen = Screen.PrimaryScreen.Bounds;

            this.Location = new Point((screen.Width - this.Width) / 2,
                                      (screen.Height - this.Height) / 2);

            SetBindSmenaPars();

            i = WhatNextMode(ref cbAvail, 1);
            if (i < 0)
            {
                Srv.ErrorMsg("Запуск программы запрещен!");
            }
            else
            {
                cbReg.SelectedValue = xSm.RegApp = i;
                SetAvtFields();

                if (xMF.evReadNSI != null)
                {// загрузку НСИ выполнять параллельно авторизации
                    xTh          = new Thread(new ThreadStart(ReadLocNSI));
                    xTh.Priority = ThreadPriority.Lowest;
                    xTh.Start();
                }
                if (nCurReg != AppC.AVT_PARS)
                {// парметры изменяются только с клавиатуры
                    ehScan = new BarcodeScanner.BarcodeScanEventHandler(OnScanBage);
                    xMF.xBCScanner.BarcodeScan += ehScan;
                }
                else
                {
                    xOldSm.nSklad  = xSm.nSklad;
                    xOldSm.nUch    = xSm.nUch;
                    xOldSm.sDatDoc = xSm.DocData;
                    xOldSm.nReg    = xSm.RegApp;
                }

                //if ( i < 0 )
                //{
                //    Srv.ErrorMsg("Нет разрешенных режимов!");
                //    this.DialogResult = DialogResult.Cancel;
                //}
                //else
                //    BeginEditAvt(nCurReg, i);

                BeginEditAvt(nCurReg, cbAvail);
                ret = true;
            }
            return(ret);
        }