Beispiel #1
0
        private void actMenu_Opening(object sender, CancelEventArgs e)
        {
            ZootehJob zJob = null;

            if (lvZooTech.SelectedItems.Count == 0)
            {
                e.Cancel = true;
                return;
            }
            else if (lvZooTech.SelectedItems.Count == 1)
            {
                zJob = lvZooTech.SelectedItems[0].Tag as ZootehJob;
                this.setMenu(zJob.Type, zJob);
            }
            else
            {
                JobType jtAssumed = JobType.None;
                foreach (ListViewItem lvi in lvZooTech.SelectedItems)
                {
                    zJob = lvi.Tag as ZootehJob;
                    // проверяем чтобы все выбранные записи имели один тип
                    if (jtAssumed != JobType.None && jtAssumed != zJob.Type)
                    {
                        jtAssumed = JobType.None;
                        break;
                    }

                    if (jtAssumed == JobType.None)
                    {
                        jtAssumed = zJob.Type;
                    }
                }
                this.setMenu(jtAssumed, null);
            }
        }
Beispiel #2
0
        /// <summary>
        /// Открывает один из пунктов(работ) в контекстном меню,
        /// когда жмут правой кнопкой на одну из строк в listView с зоотехПланом
        /// </summary>
        /// <param name="type">Тип работы</param>
        /// <param name="job"></param>
        protected void setMenu(JobType type, ZootehJob job)
        {
            foreach (ToolStripMenuItem i in actMenu.Items)
            {
                if (i == miPrint)
                {
                    continue;
                }

                i.Visible = i.Name == "mi" + type.ToString();
            }

            switch (type)
            {
            //case JobType.Okrol: miOkrol.Visible = true; break;
            //case JobType.NestOut: miNestOut.Visible = true; break;
            case JobType.CountKids: miCountKidsChanged.Visible = true; break;

            //case JobType.PreOkrol: miPreOkrol.Visible = true; break;
            //case JobType.BoysOut: miBoysOut.Visible = true; break;
            //case JobType.GirlsOut: miGirlsOut.Visible = true; break;
            case JobType.F**k:
                if (job != null)
                {
                    miFuck.Text    = (job.JobName == "Случка" ? "Случить" : "Вязать");
                    miLust.Visible = job.Flag2 == 0;
                }
                break;
                //case JobType.Vaccine: miVaccine.Visible = true; break;
                //case JobType.NestSet: miNestSet.Visible = true; break;
                //case JobType.BoysByOne: miBoysByOne.Visible = true; break;
                //case JobType.SpermTake: miSpermTake.Visible = true; break;
            }
        }
Beispiel #3
0
        private void printMenuItem_Click(object sender, EventArgs e)
        {
            List <String> fuckers = new List <string>();
            XmlDocument   rep     = new XmlDocument();

            rep.AppendChild(rep.CreateElement("Rows")).AppendChild(rep.CreateElement("Row")).AppendChild(rep.CreateElement("date")).AppendChild(rep.CreateTextNode(reportDate.ToLongDateString() + " " + reportDate.ToLongTimeString()));
            XmlDocument doc   = new XmlDocument();
            XmlDocument f***s = new XmlDocument();
            XmlElement  root  = doc.CreateElement("Rows");

            doc.AppendChild(root);
            XmlElement f**k = f***s.CreateElement("Rows");

            f***s.AppendChild(f**k);
            XmlElement rw;

            for (int i = 0; i < lvZooTech.Items.Count; i++)
            {
                ListViewItem li = lvZooTech.Items[i];
                ZootehJob    j  = (ZootehJob)li.Tag;
                rw = doc.CreateElement("Row");
                rw.AppendChild(doc.CreateElement("type")).AppendChild(doc.CreateTextNode(((int)j.Type).ToString()));
                rw.AppendChild(doc.CreateElement("days")).AppendChild(doc.CreateTextNode(j.Days.ToString()));
                //ReportHelper.Append(
                rw.AppendChild(doc.CreateElement("name")).AppendChild(doc.CreateTextNode(j.JobName));
                rw.AppendChild(doc.CreateElement("rabbit")).AppendChild(doc.CreateTextNode(j.RabName));
                rw.AppendChild(doc.CreateElement("address")).AppendChild(doc.CreateTextNode(j.Address));
                rw.AppendChild(doc.CreateElement("breed")).AppendChild(doc.CreateTextNode(j.RabBreed));
                rw.AppendChild(doc.CreateElement("age")).AppendChild(doc.CreateTextNode(j.RabAge.ToString()));
                if (j.Type == JobType.F**k)
                {
                    int    id  = getFuckerId(j.Partners, fuckers);
                    string cmt = String.Format("см. {0:d}{1:d}", (id + 1), j.Flag > 1 ? Environment.NewLine + "N" + j.Flag.ToString() : "");
                    rw.AppendChild(doc.CreateElement("comment")).AppendChild(doc.CreateTextNode(cmt));
                }
                else
                {
                    rw.AppendChild(doc.CreateElement("comment")).AppendChild(doc.CreateTextNode(j.Comment));
                }
                root.AppendChild(rw);
            }
            for (int i = 0; i < fuckers.Count; i++)
            {
                rw = f***s.CreateElement("Row");
                rw.AppendChild(f***s.CreateElement("id")).AppendChild(f***s.CreateTextNode((i + 1).ToString()));
                rw.AppendChild(f***s.CreateElement("names")).AppendChild(f***s.CreateTextNode(fuckers[i]));
                f**k.AppendChild(rw);
            }
            XmlDocument[] xmls = new XmlDocument[] { doc, rep, f***s };
            String        plan = "zooteh";

            if (fuckers.Count == 0)
            {
                plan += "_nofuck";
                xmls  = new XmlDocument[] { doc, rep };
            }
            new ReportViewForm("Зоотехплан " + reportDate.ToLongDateString() + " " + reportDate.ToLongTimeString(), plan, xmls).ShowDialog();
        }
Beispiel #4
0
        /// <summary>
        /// Выполняет одну из зоотехнических работ
        /// </summary>
        private void makeOneJob(ZootehJob job)
        {
            if (job == null)
            {
                return;
            }

            _fullUpdate = Engine.opt().getIntOption(Options.OPT_ID.UPDATE_ZOO) == 1;

            if (this.performJob(job, ref _fullUpdate) == DialogResult.OK)
            {
                int idx = lvZooTech.SelectedItems[0].Index;
                lvZooTech.SelectedItems[0].Remove();
                if (idx < lvZooTech.Items.Count)
                {
                    lvZooTech.Items[idx].Selected = true;
                }
                _rsb.Run();
            }
        }
Beispiel #5
0
        private DialogResult performJob(ZootehJob job, ref bool needUpdate)
        {
            DialogResult res = DialogResult.OK;

            switch (job.Type)
            {
            case JobType.NestOut:
                RabNetEngBuilding b = Engine.get().getBuilding(job.ID);
                b.setNest(false, (job.ID2 == 0 ? 0 : 1));
                needUpdate = false;
                break;

            case JobType.PreOkrol:
                Engine.get().preOkrol(job.ID);
                //_fullUpdate = false;
                break;

            case JobType.BoysOut:
            case JobType.GirlsOut:
                ReplaceForm rf = new ReplaceForm();
                rf.AddRabbit(job.ID);
                if (job.Type == JobType.BoysOut)
                {
                    rf.SetAction(ReplaceForm.Action.BOYSOUT);
                }
                res = rf.ShowDialog();
                break;

            case JobType.CountKids:
                RabNetEngRabbit rrr = Engine.get().getRabbit(job.ID);
                CountKids       ck  = new CountKids(job.ID);
                int             id2 = 0;
                for (int i = 0; i < rrr.Youngers.Count; i++)
                {
                    if (rrr.Youngers[i].ID == job.ID2)
                    {
                        id2 = i;
                    }
                }
                if (_makeFlag == 0)
                {
                    //rrr.CountKids(0, 0, 0, rrr.Youngers[id2].Group, rrr.Youngers[id2].Age, 0);
                    ck.MakeCount();
                    ck.Dispose();
                    needUpdate = false;
                }
                else
                {
                    //ck = new CountKids(job.ID, job.Flag == 1);
                    //ck.SetGroup(id2);
                    res = ck.ShowDialog();
                }
                break;

            case JobType.F**k:
                int id = job.ID;
                if (_makeFlag == -1)
                {
                    needUpdate = false;
                    Engine.db().SetRabbitVaccine(id, Vaccine.V_ID_LUST);
                    res = DialogResult.OK;
                    break;
                }

                if (job.Flag > 1)
                {
                    id = 0;
                    ReplaceBrideForm rb = new ReplaceBrideForm(job.ID);
                    res = rb.ShowDialog();
                    if (res == DialogResult.OK)
                    {
                        id = rb.getGirlOut();
                    }
                    res = DialogResult.Cancel;
                }
                if (id != 0)
                {
                    res = (new FuckForm(id)).ShowDialog();
                }
                break;

            case JobType.Okrol:
                res = (new OkrolForm(job.ID)).ShowDialog();
                break;

            case JobType.Vaccine:    //прививка
                RabNetEngRabbit rab = Engine.get().getRabbit(job.ID);
                AddRabVacForm   dlg = new AddRabVacForm(rab, false, job.ID2);
                res = dlg.ShowDialog();
                if (res == DialogResult.OK)
                {
                    rab.SetVaccine(dlg.VacID, dlg.VacDate, false);
                    if (rab.ParentID != 0 && Engine.opt().getBoolOption(Options.OPT_ID.VACC_MOTHER))
                    {
                        RabNetEngRabbit r2 = Engine.get().getRabbit(rab.ParentID);
                        r2.SetVaccine(dlg.VacID, dlg.VacDate, false);
                    }
                }
                needUpdate = false;
                break;

            case JobType.NestSet:    //установка гнездовья
                RabPlace rp = RabPlace.Parse(job.Rabplace);
                if (rp.CanHaveNest())
                {
                    RabNetEngBuilding rbe = RabNetEngBuilding.FromPlace(job.Rabplace, Engine.get());
                    rbe.setNest(true, rp.Section);
                    res        = DialogResult.OK;
                    needUpdate = false;
                    break;
                }
                ReplaceForm f = new ReplaceForm();
                f.AddRabbit(job.ID);
                f.SetAction(ReplaceForm.Action.SET_NEST);
                res = f.ShowDialog();
                break;

            case JobType.BoysByOne:
                f = new ReplaceForm();
                f.AddRabbit(job.ID);
                res = f.ShowDialog();
                break;

            case JobType.SpermTake:
                RabNetEngRabbit r = Engine.get().getRabbit(job.ID);
                r.SpermTake();
                needUpdate = false;
                break;
            }

            return(res);
        }