예제 #1
0
        public static int MakeOkrol(MySqlConnection sql, int rabbit, int daysPast, int children, int dead)
        {
            int    father = whosChildren(sql, rabbit);
            string when   = DBHelper.DaysPastSqlDate(daysPast);

            MySqlCommand cmd = new MySqlCommand(String.Format(@"UPDATE f***s SET f_state='okrol', f_end_date={0:s},
f_children={1:d}, f_dead={2:d} WHERE f_rabid={3:d} AND f_state='sukrol';",
                                                              when, children, dead, rabbit), sql);

            cmd.ExecuteNonQuery();

            OneRabbit fml = GetRabbit(sql, rabbit);
            OneRabbit ml  = GetRabbit(sql, father, RabAliveState.ANY);
            int       rt  = Rate.CalcRate(children, dead, false);

            if (rt != 0 && ml != null)
            {
                cmd.CommandText = String.Format(@"UPDATE rabbits SET r_rate=r_rate+{0:d} WHERE r_id={1:d};", rt, ml.ID);
                cmd.ExecuteNonQuery();
                ml.Rate += rt;
            }

            // mother status update
            rt              = Rate.CalcRate(children, dead, true);
            fml.Rate       += rt;
            cmd.CommandText = String.Format(@"UPDATE rabbits SET r_event_date=NULL, r_event='none',
r_status=r_status+1, r_last_fuck_okrol={1:s}, r_overall_babies=COALESCE(r_overall_babies+{2:d},1),
r_lost_babies=COALESCE(r_lost_babies+{3:d},1), r_rate=r_rate+{4:d}
WHERE r_id={0:d};",
                                            rabbit, when, children, dead, rt);
            cmd.ExecuteNonQuery();

            if (children > 0)
            {
                int brd = 1;
                if (ml != null && fml.BreedID == ml.BreedID)
                {
                    brd = fml.BreedID;
                }
                int chRate = Rate.CalcChildrenRate(fml.Rate, ml == null ? 0 : ml.Rate);
                int okrol  = fml.Status;
                cmd.CommandText = String.Format(@"INSERT 
INTO rabbits(r_parent, r_mother, r_father, r_born, r_sex, r_group, r_bon, r_genesis, r_name, r_surname, r_secname, r_breed, r_okrol, r_rate, r_notes) 
VALUES({0}, {1}, {2}, {3}, 'void', {4}, '{5}', {6}, NULL, {7}, {8}, {9}, {10}, {11}, '');",
                                                rabbit, rabbit, father,
                                                when, children, DBHelper.commonBon(fml.Bon.ToString(), (ml != null ? ml.Bon.ToString() : fml.Bon.ToString())),
                                                bornRabbitGenesis(sql, fml, ml),
                                                DBHelper.Nullable(fml.NameID), (ml != null ? DBHelper.Nullable(ml.NameID) : "NULL"), brd, okrol, chRate);
                cmd.ExecuteNonQuery();
                return((int)cmd.LastInsertedId);
            }
            return(0);
        }