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); }