Example #1
0
        public void Test_DeleteVagonsToNaturList()
        {
            RC_VagonsOperations vo   = new RC_VagonsOperations();
            int              nat     = -777;
            DateTime         dt_amkr = DateTime.Now;
            VAGON_OPERATIONS vo1     = new VAGON_OPERATIONS()
            {
                id_oper          = 0,
                dt_amkr          = dt_amkr,
                n_natur          = nat,
                id_vagon         = 889213,
                id_stat          = 4,
                dt_from_stat     = null,
                dt_on_stat       = DateTime.Now,
                id_way           = 51,
                dt_from_way      = null,
                dt_on_way        = DateTime.Now,
                num_vag_on_way   = 0,
                is_present       = 0,
                id_locom         = null,
                id_locom2        = null,
                id_cond2         = null,
                id_gruz          = null,
                id_gruz_amkr     = null,
                id_shop_gruz_for = null,
                weight_gruz      = null,
                id_tupik         = null,
                id_nazn_country  = null,
                id_gdstait       = null,
                id_cond          = null,
                note             = null,
                is_hist          = 0,
                id_oracle        = null,
                lock_id_way      = null,
                lock_order       = null,
                lock_side        = null,
                lock_id_locom    = null,
                st_lock_id_stat  = null,
                st_lock_order    = null,
                st_lock_train    = null,
                st_lock_side     = null,
                st_gruz_front    = null,
                st_shop          = null,
                oracle_k_st      = null,
                st_lock_locom1   = null,
                st_lock_locom2   = null,
                id_oper_parent   = null,
                grvu_SAP         = null,
                ngru_SAP         = null,
                id_ora_23_temp   = null,
                edit_user        = null,
                edit_dt          = null,
                IDSostav         = 0,
            };
            int res_ov1 = vo.SaveVagonsOperations(vo1);

            Test_RC_VagonsOperations(res_ov1);

            Console.WriteLine("Удалено : {0}", vo.DeleteVagonsToNaturList(nat, dt_amkr));
        }
Example #2
0
        /// <summary>
        /// Поставить вагон в прибитие на станции АМКР из станций Кривого Рога
        /// </summary>
        /// <param name="IDSostav"></param>
        /// <param name="id_vagon"></param>
        /// <param name="dt_amkr"></param>
        /// <param name="id_station_from"></param>
        /// <param name="position"></param>
        /// <param name="id_gruz"></param>
        /// <param name="weight_gruz"></param>
        /// <param name="id_station_in"></param>
        /// <param name="num_train"></param>
        /// <returns></returns>
        public int InsertVagon(int IDSostav, int id_vagon, int num_vagon, DateTime dt_uz_on, DateTime dt_uz_from, int id_station_from, int position, int?id_gruz, decimal weight_gruz, int id_station_in, int num_train, int id_cond2, int way_from)
        {
            //TODO: !!ДОРАБОТАТЬ (ДОБАВИТЬ В ПРИБЫТИЕ С УЗ) - убрать id_vagon,id_gruz,weight_gruz (эти данные берутся из справочника САП входящие поставки по (dt_uz)dt_amkr и num_vagon)
            VAGON_OPERATIONS vo = new VAGON_OPERATIONS()
            {
                id_oper          = 0,
                dt_uz            = dt_uz_from,
                dt_amkr          = null, //
                dt_out_amkr      = null,
                n_natur          = null,
                id_vagon         = id_vagon,
                id_stat          = id_station_from,
                dt_from_stat     = dt_uz_from,
                dt_on_stat       = dt_uz_on,
                id_way           = way_from,
                dt_from_way      = dt_uz_from,
                dt_on_way        = dt_uz_on,
                num_vag_on_way   = position,
                is_present       = 0,
                id_locom         = null,
                id_locom2        = null,
                id_cond2         = id_cond2, // 15
                id_gruz          = id_gruz,
                id_gruz_amkr     = id_gruz,
                id_shop_gruz_for = null,
                weight_gruz      = weight_gruz,
                id_tupik         = null,
                id_nazn_country  = null,
                id_gdstait       = null,
                id_cond          = null,
                note             = null,
                is_hist          = 0,
                id_oracle        = null,
                lock_id_way      = null,
                lock_order       = null,
                lock_side        = null,
                lock_id_locom    = null,
                st_lock_id_stat  = id_station_in,
                st_lock_order    = position,
                st_lock_train    = num_train,
                st_lock_side     = null,
                st_gruz_front    = null,
                st_shop          = null,
                oracle_k_st      = null,
                st_lock_locom1   = null,
                st_lock_locom2   = null,
                id_oper_parent   = null,
                grvu_SAP         = null,
                ngru_SAP         = null,
                id_ora_23_temp   = null,
                edit_user        = null,
                edit_dt          = null,
                IDSostav         = IDSostav,
                num_vagon        = num_vagon,
            };

            return(SaveVagonsOperations(vo));
        }
Example #3
0
        /// <summary>
        /// Поставить вагон на путь станции по данным КИС (копирование по внутреним станциям по отправке)
        /// </summary>
        /// <param name="IDSostav"></param>
        /// <param name="doc"></param>
        /// <param name="natur"></param>
        /// <param name="id_vagon"></param>
        /// <param name="num_vagon"></param>
        /// <param name="dt_uz"></param>
        /// <param name="dt_amkr"></param>
        /// <param name="dt_out"></param>
        /// <param name="id_station_from"></param>
        /// <param name="position"></param>
        /// <param name="id_gruz"></param>
        /// <param name="id_tupik"></param>
        /// <param name="id_nazn_country"></param>
        /// <param name="id_station_nazn"></param>
        /// <param name="id_station_in"></param>
        /// <param name="num_train"></param>
        /// <param name="id_cond"></param>
        /// <param name="note"></param>
        /// <param name="id_ways"></param>
        /// <returns></returns>
        public int InsertOutputVagon(int IDSostav, int doc, int natur, int id_vagon, int num_vagon, DateTime dt_uz, DateTime dt_amkr, DateTime dt_out, int id_station_from,
                                     int position, int?id_gruz, int?id_tupik, int?id_nazn_country, int id_station_nazn, int id_station_in, int num_train, int?id_cond, string note,
                                     int?id_ways)
        {
            VAGON_OPERATIONS vo = new VAGON_OPERATIONS()
            {
                id_oper          = 0,
                dt_uz            = dt_uz,
                dt_amkr          = dt_amkr, //
                dt_out_amkr      = null,
                n_natur          = natur,
                id_vagon         = id_vagon,
                id_stat          = id_station_from,
                dt_from_stat     = dt_out,
                dt_on_stat       = null,
                id_way           = id_ways,
                dt_from_way      = dt_out,
                dt_on_way        = null,
                num_vag_on_way   = position,
                is_present       = 0,
                id_locom         = null,
                id_locom2        = null,
                id_cond2         = 14,
                id_gruz          = id_gruz,
                id_gruz_amkr     = id_gruz,
                id_shop_gruz_for = null,
                weight_gruz      = null,
                id_tupik         = id_tupik,
                id_nazn_country  = id_nazn_country,
                id_gdstait       = id_station_nazn,
                id_cond          = id_cond,
                note             = note,
                is_hist          = 0,
                id_oracle        = doc,
                lock_id_way      = null,
                lock_order       = null,
                lock_side        = null,
                lock_id_locom    = null,
                st_lock_id_stat  = id_station_in,
                st_lock_order    = position,
                st_lock_train    = num_train,
                st_lock_side     = null,
                st_gruz_front    = null,
                st_shop          = null,
                oracle_k_st      = null,
                st_lock_locom1   = null,
                st_lock_locom2   = null,
                id_oper_parent   = null,
                grvu_SAP         = null,
                ngru_SAP         = null,
                id_ora_23_temp   = null,
                IDSostav         = IDSostav,
                num_vagon        = num_vagon,
            };

            return(SaveVagonsOperations(vo));
        }
Example #4
0
        /// <summary>
        /// Операция над вагоном с указаным id состава МТ и датой захода существует?
        /// </summary>
        /// <param name="id_sostav"></param>
        /// <param name="dt_amkr"></param>
        /// <param name="id_vagon"></param>
        /// <returns></returns>
        public bool IsVagonOperationMT(int id_sostav, DateTime dt_amkr, int id_vagon)
        {
            VAGON_OPERATIONS vo = GetVagonsOperationsToMTSostav(id_sostav, dt_amkr, id_vagon);

            if (vo != null)
            {
                return(true);
            }
            return(false);
        }
Example #5
0
        /// <summary>
        /// Операция над вагоном с указаным натуральным листом и датой захода существует?
        /// </summary>
        /// <param name="natur"></param>
        /// <param name="dt_amkr"></param>
        /// <param name="num_vagon"></param>
        /// <returns></returns>
        public bool IsVagonOperationKIS(int natur, DateTime dt_amkr, int num_vagon)
        {
            VAGON_OPERATIONS vo = GetVagonsOperationsToNatur(natur, dt_amkr, num_vagon);

            if (vo != null)
            {
                return(true);
            }
            return(false);
        }
Example #6
0
        /// <summary>
        /// Принять вагон на станцию АМКР из станции УЗ
        /// </summary>
        /// <param name="id_mtsostav"></param>
        /// <param name="num"></param>
        /// <param name="idstation_uz"></param>
        /// <param name="natur"></param>
        /// <param name="dt_amkr"></param>
        /// <param name="id_stations"></param>
        /// <param name="id_ways"></param>
        /// <returns></returns>
        public int TakeVagonOfUZ(int id_mtsostav, int num, int[] idstation_uz, int natur, DateTime dt_amkr, int id_stations, int id_ways, int id_cond)
        {
            int res = 0;
            VAGON_OPERATIONS vagon = GetVagonsOfArrivalUZ(id_mtsostav, num, idstation_uz, id_stations);

            if (vagon != null)
            {
                res = TakeVagonOfUZ(vagon, natur, dt_amkr, id_stations, id_ways, id_cond); // Примем вагон на станцию АМКР
                DeleteVagonsOfArrival(id_mtsostav, num, idstation_uz);                     // Удалим с прибытия вагоны кроме принятого
            }
            return(res);
        }
Example #7
0
 /// <summary>
 /// Установить вагон с признаком для маневра
 /// </summary>
 /// <param name="wag"></param>
 /// <param name="lock_id_way"></param>
 /// <param name="lock_order"></param>
 /// <param name="lock_side"></param>
 /// <param name="lock_id_locom"></param>
 /// <param name="dt_from_way"></param>
 /// <returns></returns>
 public int AddCancelManeuverCar(VAGON_OPERATIONS wag, int?lock_id_way, int?lock_order, int?lock_side, int?lock_id_locom, DateTime?dt_from_way)
 {
     if (wag == null)
     {
         return((int)errorManeuvers.no_string_wagon_operations);
     }
     wag.lock_id_way   = lock_id_way;
     wag.lock_order    = lock_order;
     wag.lock_side     = lock_side;
     wag.lock_id_locom = lock_id_locom;
     wag.dt_from_way   = dt_from_way;
     return(rc_vo.SaveVagonsOperations(wag));
 }
Example #8
0
 public void WL(VAGON_OPERATIONS t)
 {
     Console.WriteLine("id_oper: {0}", t.id_oper);
     Console.WriteLine("dt_amkr: {0}", t.dt_amkr);
     Console.WriteLine("n_natur: {0}", t.n_natur);
     Console.WriteLine("id_vagon: {0}", t.id_vagon);
     Console.WriteLine("id_stat: {0}", t.id_stat);
     Console.WriteLine("dt_from_stat: {0}", t.dt_from_stat);
     Console.WriteLine("dt_on_stat: {0}", t.dt_on_stat);
     Console.WriteLine("id_way: {0}", t.id_way);
     Console.WriteLine("dt_from_way: {0}", t.dt_from_way);
     Console.WriteLine("dt_on_way: {0}", t.dt_on_way);
     Console.WriteLine("num_vag_on_way: {0}", t.num_vag_on_way);
     Console.WriteLine("is_present: {0}", t.is_present);
     Console.WriteLine("id_locom: {0}", t.id_locom);
     Console.WriteLine("id_locom2: {0}", t.id_locom2);
     Console.WriteLine("id_cond2: {0}", t.id_cond2);
     Console.WriteLine("id_gruz: {0}", t.id_gruz);
     Console.WriteLine("id_gruz_amkr: {0}", t.id_gruz_amkr);
     Console.WriteLine("id_shop_gruz_for: {0}", t.id_shop_gruz_for);
     Console.WriteLine("weight_gruz: {0}", t.weight_gruz);
     Console.WriteLine("id_tupik: {0}", t.id_tupik);
     Console.WriteLine("id_nazn_country: {0}", t.id_nazn_country);
     Console.WriteLine("id_gdstait: {0}", t.id_gdstait);
     Console.WriteLine("id_cond: {0}", t.id_cond);
     Console.WriteLine("note: {0}", t.note);
     Console.WriteLine("is_hist: {0}", t.is_hist);
     Console.WriteLine("id_oracle: {0}", t.id_oracle);
     Console.WriteLine("lock_id_way: {0}", t.lock_id_way);
     Console.WriteLine("lock_order: {0}", t.lock_order);
     Console.WriteLine("lock_side: {0}", t.lock_side);
     Console.WriteLine("lock_id_locom: {0}", t.lock_id_locom);
     Console.WriteLine("st_lock_id_stat: {0}", t.st_lock_id_stat);
     Console.WriteLine("st_lock_order: {0}", t.st_lock_order);
     Console.WriteLine("st_lock_train: {0}", t.st_lock_train);
     Console.WriteLine("st_lock_side: {0}", t.st_lock_side);
     Console.WriteLine("st_gruz_front: {0}", t.st_gruz_front);
     Console.WriteLine("st_shop: {0}", t.st_shop);
     Console.WriteLine("oracle_k_st: {0}", t.oracle_k_st);
     Console.WriteLine("st_lock_locom1: {0}", t.st_lock_locom1);
     Console.WriteLine("st_lock_locom2: {0}", t.st_lock_locom2);
     Console.WriteLine("id_oper_parent: {0}", t.id_oper_parent);
     Console.WriteLine("grvu_SAP: {0}", t.grvu_SAP);
     Console.WriteLine("ngru_SAP: {0}", t.ngru_SAP);
     Console.WriteLine("id_ora_23_temp: {0}", t.id_ora_23_temp);
     Console.WriteLine("edit_user: {0}", t.edit_user);
     Console.WriteLine("edit_dt: {0}", t.edit_dt);
     Console.WriteLine("IDSostav: {0}", t.IDSostav);
     Console.WriteLine("num_vagon: {0}", t.num_vagon);
 }
Example #9
0
        /// <summary>
        /// Удалить
        /// </summary>
        /// <param name="id_way"></param>
        /// <returns></returns>
        public VAGON_OPERATIONS DeleteVAGONOPERATIONS(int id_oper)
        {
            VAGON_OPERATIONS dbEntry = context.VAGON_OPERATIONS.Find(id_oper);

            if (dbEntry != null)
            {
                context.VAGON_OPERATIONS.Remove(dbEntry);
                try
                {
                    context.SaveChanges();
                }
                catch (Exception e)
                {
                    LogRW.LogError(e, "DeleteVAGONOPERATIONS", eventID);
                    return(null);
                }
            }
            return(dbEntry);
        }
Example #10
0
        /// <summary>
        /// Принять вагон на станцию АМКР из станции УЗ
        /// </summary>
        /// <param name="vagon"></param>
        /// <param name="natur"></param>
        /// <param name="dt_amkr"></param>
        /// <param name="id_stations"></param>
        /// <param name="id_ways"></param>
        /// <returns></returns>
        public int TakeVagonOfUZ(VAGON_OPERATIONS vagon, int natur, DateTime dt_amkr, int id_stations, int id_ways, int id_cond)
        {
            int?position = MaxPositionWay(id_ways);

            if (position != null)
            {
                position++;
            }
            else
            {
                position = 1;
            }
            VAGON_OPERATIONS new_vagon = new VAGON_OPERATIONS()
            {
                id_oper          = 0,
                dt_uz            = vagon.dt_uz,
                dt_amkr          = dt_amkr,
                dt_out_amkr      = null,
                n_natur          = natur,
                id_vagon         = vagon.id_vagon,
                id_stat          = id_stations,
                dt_from_stat     = null,
                dt_on_stat       = dt_amkr,
                id_way           = id_ways,
                dt_from_way      = null,
                dt_on_way        = dt_amkr,
                num_vag_on_way   = position,
                is_present       = 1,
                id_locom         = null,
                id_locom2        = null,
                id_cond2         = 15,
                id_gruz          = vagon.id_gruz,
                id_gruz_amkr     = vagon.id_gruz_amkr,
                id_shop_gruz_for = null,
                weight_gruz      = vagon.weight_gruz,
                id_tupik         = null,
                id_nazn_country  = null,
                id_gdstait       = null,
                id_cond          = id_cond,
                note             = null,
                is_hist          = 0,
                id_oracle        = null,
                lock_id_way      = null,
                lock_order       = null,
                lock_side        = null,
                lock_id_locom    = null,
                st_lock_id_stat  = null,
                st_lock_order    = null,
                st_lock_train    = null,
                st_lock_side     = null,
                st_gruz_front    = null,
                st_shop          = null,
                oracle_k_st      = null,
                st_lock_locom1   = null,
                st_lock_locom2   = null,
                id_oper_parent   = null,
                grvu_SAP         = null,
                ngru_SAP         = null,
                id_ora_23_temp   = null,
                IDSostav         = vagon.IDSostav,
                num_vagon        = vagon.num_vagon
            };
            int res = SaveVagonsOperations(new_vagon);

            if (res > 0)
            {
                vagon.is_hist         = 1;
                vagon.st_lock_id_stat = null;
                vagon.st_lock_order   = null;
                vagon.st_lock_train   = null;
                vagon.st_lock_side    = null;
                vagon.st_lock_locom1  = null;
                vagon.st_lock_locom2  = null;
                vagon.n_natur         = natur;
                SaveVagonsOperations(vagon);
            }
            return(res);
        }
Example #11
0
        public void Test_SUD_RC_VagonsOperations()
        {
            RC_VagonsOperations vo  = new RC_VagonsOperations();
            VAGON_OPERATIONS    vo1 = new VAGON_OPERATIONS()
            {
                id_oper          = 0,
                dt_amkr          = DateTime.Now,
                n_natur          = -777,
                id_vagon         = 889213,
                id_stat          = 4,
                dt_from_stat     = null,
                dt_on_stat       = DateTime.Now,
                id_way           = 51,
                dt_from_way      = null,
                dt_on_way        = DateTime.Now,
                num_vag_on_way   = 0,
                is_present       = 0,
                id_locom         = null,
                id_locom2        = null,
                id_cond2         = null,
                id_gruz          = null,
                id_gruz_amkr     = null,
                id_shop_gruz_for = null,
                weight_gruz      = null,
                id_tupik         = null,
                id_nazn_country  = null,
                id_gdstait       = null,
                id_cond          = null,
                note             = null,
                is_hist          = 0,
                id_oracle        = null,
                lock_id_way      = null,
                lock_order       = null,
                lock_side        = null,
                lock_id_locom    = null,
                st_lock_id_stat  = null,
                st_lock_order    = null,
                st_lock_train    = null,
                st_lock_side     = null,
                st_gruz_front    = null,
                st_shop          = null,
                oracle_k_st      = null,
                st_lock_locom1   = null,
                st_lock_locom2   = null,
                id_oper_parent   = null,
                grvu_SAP         = null,
                ngru_SAP         = null,
                id_ora_23_temp   = null,
                edit_user        = null,
                edit_dt          = null,
                IDSostav         = 0,
            };
            int res_ov1 = vo.SaveVagonsOperations(vo1);

            Test_RC_VagonsOperations(res_ov1);
            VAGON_OPERATIONS vo2 = new VAGON_OPERATIONS()
            {
                id_oper          = res_ov1,
                dt_amkr          = DateTime.Now,
                n_natur          = -888,
                id_vagon         = 889213,
                id_stat          = 4,
                dt_from_stat     = null,
                dt_on_stat       = DateTime.Now,
                id_way           = 51,
                dt_from_way      = null,
                dt_on_way        = DateTime.Now,
                num_vag_on_way   = 0,
                is_present       = 0,
                id_locom         = null,
                id_locom2        = null,
                id_cond2         = null,
                id_gruz          = null,
                id_gruz_amkr     = null,
                id_shop_gruz_for = null,
                weight_gruz      = null,
                id_tupik         = null,
                id_nazn_country  = null,
                id_gdstait       = null,
                id_cond          = null,
                note             = null,
                is_hist          = 0,
                id_oracle        = null,
                lock_id_way      = null,
                lock_order       = null,
                lock_side        = null,
                lock_id_locom    = null,
                st_lock_id_stat  = null,
                st_lock_order    = null,
                st_lock_train    = null,
                st_lock_side     = null,
                st_gruz_front    = null,
                st_shop          = null,
                oracle_k_st      = null,
                st_lock_locom1   = null,
                st_lock_locom2   = null,
                id_oper_parent   = null,
                grvu_SAP         = null,
                ngru_SAP         = null,
                id_ora_23_temp   = null,
                edit_user        = null,
                edit_dt          = null,
                IDSostav         = 0,
            };
            int res_ov2 = vo.SaveVagonsOperations(vo2);

            Test_RC_VagonsOperations(res_ov2);

            VAGON_OPERATIONS del = vo.DeleteVagonsOperations(res_ov2);

            WL(del);
        }
Example #12
0
        /// <summary>
        /// Поставить вагон на станцию по данным КИС
        /// </summary>
        /// <param name="natur"></param>
        /// <param name="dt_amkr"></param>
        /// <param name="id_vagon"></param>
        /// <param name="id_station"></param>
        /// <param name="id_way"></param>
        /// <param name="id_stat_kis"></param>
        /// <returns></returns>
        public int InsertVagon(int natur, DateTime dt_amkr, int id_vagon, int num_vagon, int?id_sostav, DateTime?dt_uz, int id_station, int id_way, int id_stat_kis, int?id_cond, int?id_cond2)
        {
            int?position = MaxPositionWay(id_way);

            if (position != null)
            {
                position++;
            }
            else
            {
                position = 1;
            }
            VAGON_OPERATIONS vo = new VAGON_OPERATIONS()
            {
                id_oper          = 0,
                dt_uz            = dt_uz,
                dt_amkr          = dt_amkr,
                dt_out_amkr      = null,
                n_natur          = natur,
                id_vagon         = id_vagon,
                id_stat          = id_station,
                dt_from_stat     = null,
                dt_on_stat       = dt_amkr,
                id_way           = id_way,
                dt_from_way      = null,
                dt_on_way        = dt_amkr,
                num_vag_on_way   = position,
                is_present       = 1,
                id_locom         = null,
                id_locom2        = null,
                id_cond2         = id_cond2,
                id_gruz          = null,
                id_gruz_amkr     = null,
                id_shop_gruz_for = null,
                weight_gruz      = null,
                id_tupik         = null,
                id_nazn_country  = null,
                id_gdstait       = null,
                id_cond          = id_cond,
                note             = null,
                is_hist          = 0,
                id_oracle        = null,
                lock_id_way      = null,
                lock_order       = null,
                lock_side        = null,
                lock_id_locom    = null,
                st_lock_id_stat  = null,
                st_lock_order    = null,
                st_lock_train    = null,
                st_lock_side     = null,
                st_gruz_front    = null,
                st_shop          = null,
                oracle_k_st      = null,
                st_lock_locom1   = null,
                st_lock_locom2   = null,
                id_oper_parent   = null,
                grvu_SAP         = null,
                ngru_SAP         = null,
                id_ora_23_temp   = null,
                edit_user        = null,
                edit_dt          = null,
                IDSostav         = id_sostav,
                num_vagon        = num_vagon,
            };

            return(SaveVagonsOperations(vo));
        }
Example #13
0
        /// <summary>
        /// Принять поезд целиком
        /// </summary>
        public void performAdmissTrain()
        {
            try
            {
                if (view.listWaitAdmiss.Count == 0)
                {
                    return;
                }
                bool isStat = view.hasSelFromStatVag;
                bool isGF   = view.hasSelFromGfVag;
                bool isShop = view.hasSelFromShopVag;
                if (view.getDialogTrainResult(main.selectedStation, view.getSelTrain(isGF, isShop).SendingPoint, isStat || main.selectedStation.ID == 17))
                {
                    string mess_accept = String.Format("Пользователь принял состав целиком на станцию  {0}, путь {1}", main.selectedStation.Name, view.wayPerformAdmissTrain.NumName);
                    string status      = "";

                    List <VagWaitAdmiss> list = view.listWaitAdmiss;

                    bool leftVagOnGf = false;
                    // Оставить вагон на вагонаопрокиде
                    if (isGF)
                    {
                        if (list.Count > 1 && main.showQuestMessage("Оставить один вагон на опрокиде?"))
                        {
                            list.RemoveAt(list.Count - 1);
                            leftVagOnGf = true;
                        }
                    }
                    //TODO: RW-ОПЕРАЦИИ Включил логирование rw-операций принятия на станцию
                    VAGON_OPERATIONS vag = rc_vo.GetVagonsOperations(list[0].id_oper);
                    rwoperation.ReceptionCars(
                        list.Select(s => (int)s.num_vag).ToArray(), (int)vag.id_stat, vag.st_gruz_front > 0 ? vag.st_gruz_front : null, vag.st_shop > 0 ? vag.st_shop : null, main.selectedStation.ID, view.wayPerformAdmissTrain.ID, new int[] { view.getSelTrain(isGF, isShop).St_lock_locom1, view.getSelTrain(isGF, isShop).St_lock_locom2 }
                        );
                    foreach (VagWaitAdmiss item in list)
                    {
                        if (!isStat)
                        {
                            changeGruz(item, isShop, view.getSelTrain(isGF, isShop).SendingPoint, view.getSelTrain(isGF, isShop).DateFromStat);
                            mainPresenter.changeLoadCondAfter(item);
                        }
                        // Установили путь
                        mainPresenter.changeConditionWayOn(item, view.wayPerformAdmissTrain);
                        // Определение четной нечетной стороны sidePerformAdmissTrain (диалоговое окно)
                        //log.Info("sidePerformAdmissTrain: " + view.sidePerformAdmissTrain.ToString());
                        //if (main.numSide == view.sidePerformAdmissTrain || !isStat)
                        if (main.numSide == view.sidePerformAdmissTrain || view.sidePerformAdmissTrain == Side.Empty)
                        {
                            if (main.selectedStation.ID == 17 && isShop)
                            {
                                item.num_vag_on_way = list.IndexOf(item) + 1;
                            }
                            else
                            {
                                item.num_vag_on_way = list.Count - list.IndexOf(item);
                            }
                            //log.Info("item.num_vag_on_way:" + item.num_vag_on_way.ToString());
                        }
                        else
                        {
                            item.num_vag_on_way = view.wayPerformAdmissTrain.Vag_amount + list.IndexOf(item) + 1;
                            //log.Info("item.num_vag_on_way:" + item.num_vag_on_way.ToString());
                        }

                        int ins_result = vagWaitAdmissDB.execAdmissOthStat(item, main.selectedStation,
                                                                           view.wayPerformAdmissTrain, item.dt_on_stat /*view.dtArriveAdmissTrain*/, view.getSelTrain(isGF, isShop).St_lock_locom1, view.getSelTrain(isGF, isShop).St_lock_locom2);
                        //if (ins_result != null) ((VagWaitAdmiss)bs1P2.List[bs1P2.IndexOf(item)]).id_oper = Convert.ToInt32(ins_result);
                        if (ins_result != -1)
                        {
                            item.id_oper = ins_result;
                            //log.Info("ins_result: " + ins_result);
                        }
                        else
                        {
                            return;
                        }
                        status += String.Format("[состав:{0}, №:{1}, дата АМКР:{2}]; ", item.id_sostav, item.num_vag, item.dt_amkr);
                    }

                    //if (main.numSide == view.sidePerformAdmissTrain || !isStat)
                    if (main.numSide == view.sidePerformAdmissTrain || view.sidePerformAdmissTrain == Side.Empty)
                    // изменить нумерацию вагонов на пути назначения
                    //new VagOperationsDB().changeVagNumsWayOn(list.Count, ((VagWaitAdmiss)bs1P2.List[bs1P2.IndexOf(list[0])]).id_oper, vagAcceptForm.getWay());
                    {
                        vagOperationsDB.changeVagNumsWayOn(list.Count, list[0].id_oper, view.wayPerformAdmissTrain);
                        //log.Info("list[0].id_oper" + list[0].id_oper);
                    }

                    if (!isGF || !leftVagOnGf)
                    {
                        view.removeTrain(isGF, isShop, view.getSelTrain(isGF, isShop));
                    }
                    else
                    {
                        view.getSelTrain(isGF, isShop).Vag_amount = 1;
                        view.refreshTrains(true, false);
                    }
                    loadVagWaitAdmiss(isGF, isShop);
                    main.showInfoMessage("Вагоны успешно зачислены на путь!");
                    mess_accept.SaveLogEvents(status, service.DesktopRailCars);
                }
            }
            catch (Exception ex)
            {
                main.showErrorMessage(ex.Message);
            }
        }
Example #14
0
 /// <summary>
 /// Добавить удалить
 /// </summary>
 /// <param name="vagons"></param>
 /// <returns></returns>
 public int SaveVagonsOperations(VAGON_OPERATIONS vagonsoperations)
 {
     return(rep_vo.SaveVAGONOPERATIONS(vagonsoperations));
 }
Example #15
0
        /// <summary>
        /// Принять партию вагонов
        /// </summary>
        public void performAdmissVagPart()
        {
            try
            {
                bool isStat = view.hasSelFromStatVag;
                bool isGF   = view.hasSelFromGfVag;
                bool isShop = view.hasSelFromShopVag;

                if (view.getDialogTrainResult(main.selectedStation, view.getSelTrain(isGF, isShop).SendingPoint, isStat || main.selectedStation.ID == 17))
                {
                    string mess_accept = String.Format("Пользователь принял партию вагонов состава на станцию  {0}, путь {1}", main.selectedStation.Name, view.wayPerformAdmissTrain.NumName);
                    string status      = "";
                    //try
                    //{
                    List <VagWaitAdmiss> list = view.listToAdmiss();
                    //TODO: RW-ОПЕРАЦИИ Включил логирование rw-операций принятия на станцию
                    VAGON_OPERATIONS vag = rc_vo.GetVagonsOperations(list[0].id_oper);
                    rwoperation.ReceptionCars(
                        list.Select(s => (int)s.num_vag).ToArray(), (int)vag.id_stat, vag.st_gruz_front > 0 ? vag.st_gruz_front : null, vag.st_shop > 0 ? vag.st_shop : null, main.selectedStation.ID, view.wayPerformAdmissTrain.ID, new int[] { view.getSelTrain(isGF, isShop).St_lock_locom1, view.getSelTrain(isGF, isShop).St_lock_locom2 }
                        );
                    foreach (VagWaitAdmiss item in list)
                    {
                        if (!isStat)
                        {
                            // определение состояния вагона
                            changeGruz(item, isShop, view.getSelTrain(isGF, isShop).SendingPoint, view.getSelTrain(isGF, isShop).DateFromStat);
                            mainPresenter.changeLoadCondAfter(item);
                        }

                        mainPresenter.changeConditionWayOn(item, view.wayPerformAdmissTrain);
                        // -----------------------------
                        //log.Info("sidePerformAdmissTrain: " + view.sidePerformAdmissTrain.ToString());
                        //if (main.numSide == view.sidePerformAdmissTrain)
                        if (main.numSide == view.sidePerformAdmissTrain || view.sidePerformAdmissTrain == Side.Empty)
                        {
                            if (main.selectedStation.ID == 17 && isShop)
                            {
                                item.num_vag_on_way = list.IndexOf(item) + 1;
                            }
                            else
                            {
                                item.num_vag_on_way = list.Count - list.IndexOf(item);
                            }
                            //log.Info("item.num_vag_on_way:" + item.num_vag_on_way.ToString());
                        }
                        else
                        {
                            item.num_vag_on_way = view.wayPerformAdmissTrain.Vag_amount + list.IndexOf(item) + 1;
                            //log.Info("item.num_vag_on_way:" + item.num_vag_on_way.ToString());
                        }

                        int ins_result = vagWaitAdmissDB.execAdmissOthStat(item, main.selectedStation,
                                                                           view.wayPerformAdmissTrain, view.dtArriveAdmissTrain, view.getSelTrain(isGF, isShop).St_lock_locom1, view.getSelTrain(isGF, isShop).St_lock_locom2);
                        if (ins_result != -1)
                        {
                            item.id_oper = ins_result;
                            //log.Info("ins_result: " + ins_result);
                        }
                        else
                        {
                            return;
                        }
                        status += String.Format("[состав:{0}, №:{1}, дата АМКР:{2}]; ", item.id_sostav, item.num_vag, item.dt_amkr);
                    }

                    //if (main.numSide == view.sidePerformAdmissTrain || !isStat)
                    if (main.numSide == view.sidePerformAdmissTrain || view.sidePerformAdmissTrain == Side.Empty)
                    // изменить нумерацию вагонов на пути назначения
                    {
                        vagOperationsDB.changeVagNumsWayOn(list.Count, list[0].id_oper, view.wayPerformAdmissTrain);
                        //log.Info("list[0].id_oper" + list[0].id_oper);
                    }

                    //убрать вагоны выделенные желтым
                    int i = view.listWaitAdmiss.Count - 1;
                    while (i >= 0)
                    {
                        if (view.isVagColored(i))
                        {
                            view.removeFromVagWaitAdm(view.listWaitAdmiss[i]);
                        }
                        i--;
                    }

                    //если не осталось вагонов удалить строку о поезде
                    if (view.listWaitAdmiss.Count == 0)
                    {
                        view.removeTrain(isGF, isShop, view.getSelTrain(isGF, isShop));
                    }
                    else
                    {
                        view.getSelTrain(isGF, isShop).Vag_amount = view.getSelTrain(isGF, isShop).Vag_amount - view.listToAdmiss().Count;
                        view.refreshTrains(isGF, isShop);
                    }

                    view.clearVagToAdm();
                    loadVagWaitAdmiss(isGF, isShop);
                    main.showInfoMessage("Вагоны успешно зачислены на путь!");
                    //}
                    //catch (Exception ex)
                    //{
                    //    main.showErrorMessage(ex.Message);
                    //}
                    mess_accept.SaveLogEvents(status, service.DesktopRailCars);
                }
            }
            catch (Exception ex)
            {
                main.showErrorMessage(ex.Message);
            }
        }
Example #16
0
 /// <summary>
 /// Сделать маневр по вагону
 /// </summary>
 /// <param name="wag_oper"></param>
 /// <param name="side_station"></param>
 /// <returns></returns>
 public int ManeuverCar(VAGON_OPERATIONS wag_oper, Side side_station)
 {
     if (wag_oper == null)
     {
         return((int)errorManeuvers.no_string_wagon_operations);
     }
     // Проверка путь на который маневр пренадлежит этой станции
     if (wag_oper.id_stat != rc_ws.GetIDStationOfWay((int)wag_oper.lock_id_way))
     {
         return((int)errorManeuvers.way_not_station);
     }
     try
     {
         int position = 1;
         if ((int)side_station == wag_oper.lock_side)
         {
             int p = (int)wag_oper.lock_id_way;
             rc_vo.OffSetCars(p, 2);// Сместить вагоны на пути
         }
         else
         {
             rc_vo.OffSetCars((int)wag_oper.lock_id_way, 1);// Выставить по порядку
             // добавить вагон зади
             int?num = rc_vo.MaxPositionWay((int)wag_oper.lock_id_way);
             if (num != null)
             {
                 position = (int)num + 1;
             }
         }
         VAGON_OPERATIONS new_vagon = new VAGON_OPERATIONS()
         {
             id_oper          = 0,
             dt_uz            = wag_oper.dt_uz,
             dt_amkr          = wag_oper.dt_amkr,
             dt_out_amkr      = null,
             n_natur          = wag_oper.n_natur,
             id_vagon         = wag_oper.id_vagon,
             id_stat          = wag_oper.id_stat,
             dt_from_stat     = null,
             dt_on_stat       = wag_oper.dt_on_stat,
             id_way           = wag_oper.lock_id_way,
             dt_from_way      = null,
             dt_on_way        = DateTime.Now,
             num_vag_on_way   = position,
             is_present       = 1,
             id_locom         = wag_oper.id_locom,
             id_locom2        = wag_oper.id_locom2,
             id_cond2         = wag_oper.id_cond2,
             id_gruz          = wag_oper.id_gruz,
             id_gruz_amkr     = wag_oper.id_gruz_amkr,
             id_shop_gruz_for = wag_oper.id_shop_gruz_for,
             weight_gruz      = wag_oper.weight_gruz,
             id_tupik         = wag_oper.id_tupik,
             id_nazn_country  = wag_oper.id_nazn_country,
             id_gdstait       = wag_oper.id_gdstait,
             id_cond          = wag_oper.id_cond,
             note             = wag_oper.note,
             is_hist          = 0,
             id_oracle        = wag_oper.id_oracle,
             lock_id_way      = null,
             lock_order       = null,
             lock_side        = null,
             lock_id_locom    = null,
             st_lock_id_stat  = null,
             st_lock_order    = null,
             st_lock_train    = null,
             st_lock_side     = null,
             st_gruz_front    = null,
             st_shop          = null,
             oracle_k_st      = wag_oper.oracle_k_st,
             st_lock_locom1   = null,
             st_lock_locom2   = null,
             id_oper_parent   = wag_oper.id_oper,
             grvu_SAP         = wag_oper.grvu_SAP,
             ngru_SAP         = wag_oper.ngru_SAP,
             id_ora_23_temp   = wag_oper.id_ora_23_temp,
             IDSostav         = wag_oper.IDSostav,
             num_vagon        = wag_oper.num_vagon
         };
         int res = rc_vo.SaveVagonsOperations(new_vagon);
         if (res > 0)
         {
             // Закроем старую запись
             wag_oper.lock_id_way   = null;
             wag_oper.lock_order    = null;
             wag_oper.lock_side     = null;
             wag_oper.lock_id_locom = null;
             wag_oper.is_hist       = 1;
             wag_oper.is_present    = 0;
             int res_old = rc_vo.SaveVagonsOperations(wag_oper);
             if (res_old > 0)
             {
                 return(1);
             }
             if (res_old < 0)
             {
                 LogRW.LogError(String.Format("[Maneuvers.ManeuverCar]: Ошибка, номер вагона {0}, id_oper {1}, код ошибки {2}", wag_oper.num_vagon, wag_oper.id_oper, errorManeuvers.no_close_old_maneuvers.ToString()), eventID);
                 return((int)errorManeuvers.no_close_old_maneuvers);
             }
         }
         if (res < 0)
         {
             LogRW.LogError(String.Format("[Maneuvers.ManeuverCar]: Ошибка, номер вагона {0}, id_oper {1}, код ошибки {2}", new_vagon.num_vagon, wag_oper.id_oper, errorManeuvers.no_create_new_maneuvers.ToString()), eventID);
             return((int)errorManeuvers.no_create_new_maneuvers);
         }
         return(0);
     }
     catch (Exception e)
     {
         LogRW.LogError(String.Format("[Maneuvers.ManeuverCar]: Ошибка, источник: {0}, № {1}, описание:  {2}", e.Source, e.HResult, e.Message), this.eventID);
         return((int)errorManeuvers.global);
     }
 }
Example #17
0
        /// <summary>
        /// Добавить или править
        /// </summary>
        /// <param name="VAGONOPERATIONS"></param>
        /// <returns></returns>
        public int SaveVAGONOPERATIONS(VAGON_OPERATIONS VAGONOPERATIONS)
        {
            VAGON_OPERATIONS dbEntry;

            if (VAGONOPERATIONS.id_oper == 0)
            {
                dbEntry = new VAGON_OPERATIONS()
                {
                    id_oper          = 0,
                    dt_uz            = VAGONOPERATIONS.dt_uz,
                    dt_amkr          = VAGONOPERATIONS.dt_amkr,
                    dt_out_amkr      = VAGONOPERATIONS.dt_out_amkr,
                    n_natur          = VAGONOPERATIONS.n_natur,
                    id_vagon         = VAGONOPERATIONS.id_vagon,
                    id_stat          = VAGONOPERATIONS.id_stat,
                    dt_from_stat     = VAGONOPERATIONS.dt_from_stat,
                    dt_on_stat       = VAGONOPERATIONS.dt_on_stat,
                    id_way           = VAGONOPERATIONS.id_way,
                    dt_from_way      = VAGONOPERATIONS.dt_from_way,
                    dt_on_way        = VAGONOPERATIONS.dt_on_way,
                    num_vag_on_way   = VAGONOPERATIONS.num_vag_on_way,
                    is_present       = VAGONOPERATIONS.is_present,
                    id_locom         = VAGONOPERATIONS.id_locom,
                    id_locom2        = VAGONOPERATIONS.id_locom2,
                    id_cond2         = VAGONOPERATIONS.id_cond2,
                    id_gruz          = VAGONOPERATIONS.id_gruz,
                    id_gruz_amkr     = VAGONOPERATIONS.id_gruz_amkr,
                    id_shop_gruz_for = VAGONOPERATIONS.id_shop_gruz_for,
                    weight_gruz      = VAGONOPERATIONS.weight_gruz,
                    id_tupik         = VAGONOPERATIONS.id_tupik,
                    id_nazn_country  = VAGONOPERATIONS.id_nazn_country,
                    id_gdstait       = VAGONOPERATIONS.id_gdstait,
                    id_cond          = VAGONOPERATIONS.id_cond,
                    note             = VAGONOPERATIONS.note,
                    is_hist          = VAGONOPERATIONS.is_hist,
                    id_oracle        = VAGONOPERATIONS.id_oracle,
                    lock_id_way      = VAGONOPERATIONS.lock_id_way,
                    lock_order       = VAGONOPERATIONS.lock_order,
                    lock_side        = VAGONOPERATIONS.lock_side,
                    lock_id_locom    = VAGONOPERATIONS.lock_id_locom,
                    st_lock_id_stat  = VAGONOPERATIONS.st_lock_id_stat,
                    st_lock_order    = VAGONOPERATIONS.st_lock_order,
                    st_lock_train    = VAGONOPERATIONS.st_lock_train,
                    st_lock_side     = VAGONOPERATIONS.st_lock_side,
                    st_gruz_front    = VAGONOPERATIONS.st_gruz_front,
                    st_shop          = VAGONOPERATIONS.st_shop,
                    oracle_k_st      = VAGONOPERATIONS.oracle_k_st,
                    st_lock_locom1   = VAGONOPERATIONS.st_lock_locom1,
                    st_lock_locom2   = VAGONOPERATIONS.st_lock_locom2,
                    id_oper_parent   = VAGONOPERATIONS.id_oper_parent,
                    grvu_SAP         = VAGONOPERATIONS.grvu_SAP,
                    ngru_SAP         = VAGONOPERATIONS.ngru_SAP,
                    id_ora_23_temp   = VAGONOPERATIONS.id_ora_23_temp,
                    edit_user        = VAGONOPERATIONS.edit_user,
                    edit_dt          = VAGONOPERATIONS.edit_dt,
                    IDSostav         = VAGONOPERATIONS.IDSostav,
                    num_vagon        = VAGONOPERATIONS.num_vagon,
                };
                context.VAGON_OPERATIONS.Add(dbEntry);
            }
            else
            {
                dbEntry = context.VAGON_OPERATIONS.Find(VAGONOPERATIONS.id_oper);
                if (dbEntry != null)
                {
                    dbEntry.dt_uz            = VAGONOPERATIONS.dt_uz;
                    dbEntry.dt_amkr          = VAGONOPERATIONS.dt_amkr;
                    dbEntry.dt_out_amkr      = VAGONOPERATIONS.dt_out_amkr;
                    dbEntry.n_natur          = VAGONOPERATIONS.n_natur;
                    dbEntry.id_vagon         = VAGONOPERATIONS.id_vagon;
                    dbEntry.id_stat          = VAGONOPERATIONS.id_stat;
                    dbEntry.dt_from_stat     = VAGONOPERATIONS.dt_from_stat;
                    dbEntry.dt_on_stat       = VAGONOPERATIONS.dt_on_stat;
                    dbEntry.id_way           = VAGONOPERATIONS.id_way;
                    dbEntry.dt_from_way      = VAGONOPERATIONS.dt_from_way;
                    dbEntry.dt_on_way        = VAGONOPERATIONS.dt_on_way;
                    dbEntry.num_vag_on_way   = VAGONOPERATIONS.num_vag_on_way;
                    dbEntry.is_present       = VAGONOPERATIONS.is_present;
                    dbEntry.id_locom         = VAGONOPERATIONS.id_locom;
                    dbEntry.id_locom2        = VAGONOPERATIONS.id_locom2;
                    dbEntry.id_cond2         = VAGONOPERATIONS.id_cond2;
                    dbEntry.id_gruz          = VAGONOPERATIONS.id_gruz;
                    dbEntry.id_gruz_amkr     = VAGONOPERATIONS.id_gruz_amkr;
                    dbEntry.id_shop_gruz_for = VAGONOPERATIONS.id_shop_gruz_for;
                    dbEntry.weight_gruz      = VAGONOPERATIONS.weight_gruz;
                    dbEntry.id_tupik         = VAGONOPERATIONS.id_tupik;
                    dbEntry.id_nazn_country  = VAGONOPERATIONS.id_nazn_country;
                    dbEntry.id_gdstait       = VAGONOPERATIONS.id_gdstait;
                    dbEntry.id_cond          = VAGONOPERATIONS.id_cond;
                    dbEntry.note             = VAGONOPERATIONS.note;
                    dbEntry.is_hist          = VAGONOPERATIONS.is_hist;
                    dbEntry.id_oracle        = VAGONOPERATIONS.id_oracle;
                    dbEntry.lock_id_way      = VAGONOPERATIONS.lock_id_way;
                    dbEntry.lock_order       = VAGONOPERATIONS.lock_order;
                    dbEntry.lock_side        = VAGONOPERATIONS.lock_side;
                    dbEntry.lock_id_locom    = VAGONOPERATIONS.lock_id_locom;
                    dbEntry.st_lock_id_stat  = VAGONOPERATIONS.st_lock_id_stat;
                    dbEntry.st_lock_order    = VAGONOPERATIONS.st_lock_order;
                    dbEntry.st_lock_train    = VAGONOPERATIONS.st_lock_train;
                    dbEntry.st_lock_side     = VAGONOPERATIONS.st_lock_side;
                    dbEntry.st_gruz_front    = VAGONOPERATIONS.st_gruz_front;
                    dbEntry.st_shop          = VAGONOPERATIONS.st_shop;
                    dbEntry.oracle_k_st      = VAGONOPERATIONS.oracle_k_st;
                    dbEntry.st_lock_locom1   = VAGONOPERATIONS.st_lock_locom1;
                    dbEntry.st_lock_locom2   = VAGONOPERATIONS.st_lock_locom2;
                    dbEntry.id_oper_parent   = VAGONOPERATIONS.id_oper_parent;
                    dbEntry.grvu_SAP         = VAGONOPERATIONS.grvu_SAP;
                    dbEntry.ngru_SAP         = VAGONOPERATIONS.ngru_SAP;
                    dbEntry.id_ora_23_temp   = VAGONOPERATIONS.id_ora_23_temp;
                    dbEntry.edit_user        = VAGONOPERATIONS.edit_user;
                    dbEntry.edit_dt          = VAGONOPERATIONS.edit_dt;
                    dbEntry.IDSostav         = VAGONOPERATIONS.IDSostav;
                    dbEntry.num_vagon        = VAGONOPERATIONS.num_vagon;
                }
            }
            try
            {
                context.SaveChanges();
            }
            catch (Exception e)
            {
                LogRW.LogError(e, "SaveVAGONOPERATIONS", eventID);
                return(-1);
            }
            return(dbEntry.id_oper);
        }
Example #18
0
        /// <summary>
        /// Установить вагон с признаком для маневра
        /// </summary>
        /// <param name="wag"></param>
        /// <param name="lock_id_way"></param>
        /// <param name="lock_order"></param>
        /// <param name="lock_side"></param>
        /// <param name="lock_id_locom"></param>
        /// <param name="dt_from_way"></param>
        /// <returns></returns>
        public int AddCancelManeuverCar(int id_oper, int?lock_id_way, int?lock_order, int?lock_side, int?lock_id_locom, DateTime?dt_from_way)
        {
            VAGON_OPERATIONS wag = rc_vo.GetVagonsOperations(id_oper);

            return(AddCancelManeuverCar(wag, lock_id_way, lock_order, lock_side, lock_id_locom, dt_from_way));
        }
Example #19
0
        /// <summary>
        /// Выполнить роспуск
        /// </summary>
        public void performRospusk()
        {
            if (!view.hasSelFromStatVag)
            {
                return;
            }
            try
            {
                string mess_accept = String.Format("Пользователь выполнил роспуск состава на станции  {0}", main.selectedStation.Name);
                string status      = "";
                Side   arriveSide  = neighbourStationsDB.getArrivSide(main.selectedStation, (Station)view.getSelTrain(false, false).SendingPoint);

                List <VagWaitAdmiss> list = (from v in view.listWaitAdmiss where v.WayFact.ID != -1 select v).ToList();

                //TODO: RW-ОПЕРАЦИИ Включил логирование rw-операций принятия на станцию

                List <IGrouping <int, VagWaitAdmiss> > group_list = new List <IGrouping <int, VagWaitAdmiss> >();
                group_list = list.GroupBy(o => o.WayFact.ID).ToList();
                foreach (IGrouping <int, VagWaitAdmiss> group_wag in group_list)
                {
                    List <VagWaitAdmiss> list_wag = new List <VagWaitAdmiss>();
                    list_wag = group_wag.ToList();
                    VAGON_OPERATIONS vag = rc_vo.GetVagonsOperations(list_wag[0].id_oper);
                    rwoperation.ReceptionCars(
                        list.Select(s => (int)s.num_vag).ToArray(), (int)vag.id_stat, null, null, main.selectedStation.ID, group_wag.Key, new int[] { view.getSelTrain(false, false).St_lock_locom1, view.getSelTrain(false, false).St_lock_locom2 }
                        );
                }
                foreach (VagWaitAdmiss item in list)
                {
                    List <VagWaitAdmiss> listOnSameWay = (from v in list where v.WayFact.ID == item.WayFact.ID select v).ToList();

                    if (main.numSide == arriveSide)
                    {
                        item.num_vag_on_way = listOnSameWay.Count - listOnSameWay.IndexOf(item);
                    }
                    else
                    {
                        item.num_vag_on_way = item.WayFact.Vag_amount + listOnSameWay.IndexOf(item) + 1;
                    }

                    //определение состояния вагона
                    mainPresenter.changeConditionWayOn(item, item.WayFact);
                    //----------------------------

                    int ins_result = vagWaitAdmissDB.execAdmissOthStat(item, main.selectedStation,
                                                                       item.WayFact, DateTime.Now, view.getSelTrain(false, false).St_lock_locom1, view.getSelTrain(false, false).St_lock_locom2);
                    if (ins_result != -1)
                    {
                        view.listWaitAdmiss[view.listWaitAdmiss.IndexOf(item)].id_oper = ins_result;
                    }
                    else
                    {
                        return;
                    }
                    status += String.Format("[состав:{0}, №:{1}, дата АМКР:{2}, путь:{3}]; ", item.id_sostav, item.num_vag, item.dt_amkr, item.WayFact.NumName);
                }

                if (main.numSide == arriveSide)
                // изменить нумерацию вагонов на пути назначения
                {
                    var result = list.GroupBy(l => l.WayFact.ID).Select(c1 =>
                                                                        new { Quantity = c1.Count(), id_oper = c1.First().id_oper, wayFact = c1.First().WayFact }).ToList();

                    foreach (var item in result)
                    {
                        vagOperationsDB.changeVagNumsWayOn(item.Quantity, item.id_oper, item.wayFact);
                    }
                }

                //убрать вагоны размеченные по путям
                int i = view.listWaitAdmiss.Count - 1;
                while (i >= 0)
                {
                    if (view.listWaitAdmiss[i].WayFact.ID != -1)
                    {
                        view.removeFromVagWaitAdm(view.listWaitAdmiss[i]);
                    }
                    i--;
                }

                //если не осталось вагонов удалить строку о поезде
                if (view.listWaitAdmiss.Count == 0)
                {
                    view.removeTrain(false, false, view.getSelTrain(false, false));
                    loadVagWaitAdmiss(false, false);
                }
                else
                {
                    view.getSelTrain(false, false).Vag_amount = view.getSelTrain(false, false).Vag_amount - list.Count;
                    view.refreshTrains(false, false);
                }
                main.showInfoMessage("Роспуск успешно выполнен!");
                mess_accept.SaveLogEvents(status, service.DesktopRailCars);
            }
            catch (Exception ex)
            {
                main.showErrorMessage(ex.Message);
            }
        }