Exemple #1
0
        public void Test_RC_VagonsOperations()
        {
            RC_VagonsOperations vo = new RC_VagonsOperations();

            foreach (VAGON_OPERATIONS t in vo.GetVagonsOperations())
            {
                WL(t);
            }
        }
Exemple #2
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));
        }
Exemple #3
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);
            }
        }
Exemple #4
0
        public void Test_RC_VagonsOperations(int id_oper)
        {
            RC_VagonsOperations vo = new RC_VagonsOperations();

            WL(vo.GetVagonsOperations(id_oper));
        }