Exemplo n.º 1
0
        /// <summary>
        /// Проверка, не мешают ли блокировки операции по данной сделке
        /// </summary>
        /// <param name="operation">Тип проводимой операции</param>
        /// <param name="deal">Сделка, по которой проверяются блокировки</param>
        public void CheckForBlocking(BlockingDependentOperation operation, Deal deal, SaleWaybill transientSaleWaybill)
        {
            CheckSet checkSet;

            switch (operation)
            {
            case BlockingDependentOperation.CreateExpenditureWaybill:
                checkSet = new CheckSet {
                    CheckForManualBlocking = true
                };
                break;

            case BlockingDependentOperation.SavePrePaymentExpenditureWaybillRow:
                checkSet = new CheckSet {
                    CheckForManualBlocking = true
                };
                break;

            case BlockingDependentOperation.SavePostPaymentExpenditureWaybillRow:
                checkSet = new CheckSet {
                    CheckForManualBlocking = true
                };
                break;

            case BlockingDependentOperation.AcceptPrePaymentExpenditureWaybill:
                checkSet = new CheckSet {
                    CheckForManualBlocking = true, CheckForPaymentDelayBlocking = true
                };
                break;

            case BlockingDependentOperation.AcceptPostPaymentExpenditureWaybill:
                checkSet = new CheckSet
                {
                    CheckForPaymentDelayBlocking = true,
                    CheckForManualBlocking       = true,
                    CheckForCreditLimitBlocking  = true,
                };
                break;

            case BlockingDependentOperation.ShipUnpaidPostPaymentExpenditureWaybill:
                checkSet = new CheckSet {
                    CheckForPaymentDelayBlocking = true, CheckForManualBlocking = true
                };
                break;

            default:
                throw new Exception("Неизвестный тип операции.");
            }
            ;

            PerformCheck(checkSet, deal, transientSaleWaybill);
        }
Exemplo n.º 2
0
 /// <summary>
 /// Выполнение проверок на блокировки.
 /// Проверки всегда выполняются в определенном порядке:
 /// 1. Проверка на просрочку/связи с просрочившей организацией
 /// 2. Проверка на ручную блокировку
 /// 3. Проверка на блокировку по кредитному лимиту
 /// </summary>
 /// <param name="checkSet">Набор проверок для выполнения</param>
 /// <param name="deal">Сделка, по которой проверяются блокировки</param>
 private void PerformCheck(CheckSet checkSet, Deal deal, SaleWaybill transientSaleWaybill)
 {
     if (checkSet.CheckForPaymentDelayBlocking)
     {
         CheckForPaymentDelayBlocking(deal);
     }
     if (checkSet.CheckForManualBlocking)
     {
         CheckForManualBlocking(deal);
     }
     if (checkSet.CheckForCreditLimitBlocking)
     {
         CheckForCreditLimitBlocking(deal, transientSaleWaybill);
     }
 }
Exemplo n.º 3
0
        private void AddCheck(int count)
        {
            var Temp = _ListWord.ToArray();

            var NgArray = GetNGArray(count);

            foreach (var index in NgArray)
            {
                CheckedSheet Cs = new CheckedSheet();

                CheckSet CsParam = new CheckSet();

                CsParam.Index = NgArray.FindIndex((i) => {
                    if (i == index)
                    {
                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                });

                CsParam.QuestionMode = QuestionMode;

                CsParam.WordSet = Temp[index];

                Cs.Initial(CsParam);

                Cs.Location = new Point(0, _CheckHight * CsParam.Index + 2);

                CheckPanel.Controls.Add(Cs);

                Cs.SendResultEvent += Cs_SendResultEvent;
            }
        }