コード例 #1
0
        public static Int32 GenerateNumber(Session ses)
        {
            CriteriaOperator oper = CriteriaOperator.And(new BinaryOperator("IntNumber", -1, BinaryOperatorType.Equal));

#pragma warning disable 0162
            for (int probe = 0; probe < 5; probe++)
            {
#pragma warning restore 0162
                using (UnitOfWork uow = new UnitOfWork(ses.DataLayer)) {
                    fmCPRRegistrator ng = uow.FindObject <fmCPRRegistrator>(
                        PersistentCriteriaEvaluationBehavior.BeforeTransaction, oper);
                    if (ng == null)
                    {
                        ng = new fmCPRRegistrator(uow)
                        {
                            IntNumber  = -1,
                            NextNumber = 0
                        };
                    }
                    Int32 number = ++ng.NextNumber;
                    //
                    uow.CommitChanges();
                    //
                    //return ng.NextNumber;
                    //                    return inv_type.Prefix + per + ng.NextNumber.ToString("00000");
                    return(number);
                }
            }
            throw new LockConflictException();
        }
コード例 #2
0
        /*
         * public static void DoTransitAction(IObjectSpace os, fmCPRPaymentRequest paymentRequest, PaymentRequestStates oldStatus, PaymentRequestStates newStatus) {
         *  switch (oldStatus) {
         *      case PaymentRequestStates.OPEN:
         *          switch (newStatus) {
         *              case PaymentRequestStates.OPEN:
         *                  break;
         *              case PaymentRequestStates.REGISTERED:
         *                  paymentRequest.DateContractOrPlan = paymentRequest.Date;
         *                  break;
         *              case PaymentRequestStates.ACCEPTED:
         *                  break;
         *              case PaymentRequestStates.DECLINED:
         *                  break;
         *              case PaymentRequestStates.DELETED:
         *                  break;
         *              case PaymentRequestStates.IN_BUDGET:
         *                  break;
         *              case PaymentRequestStates.IN_PAYMENT:
         *                  break;
         *              case PaymentRequestStates.IN_BANK:
         *                  break;
         *              case PaymentRequestStates.PAYED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED_BUDGET:
         *                  break;
         *              case PaymentRequestStates.FINANCE_PAYMENT:
         *                  break;
         *              default:
         *                  break;
         *          }
         *          break;
         *      case PaymentRequestStates.REGISTERED:
         *          switch (newStatus) {
         *              case PaymentRequestStates.OPEN:
         *                  break;
         *              case PaymentRequestStates.REGISTERED:
         *                  break;
         *              case PaymentRequestStates.ACCEPTED:
         *                  paymentRequest.DateContractOrPlan = paymentRequest.Date;
         *                  break;
         *              case PaymentRequestStates.DECLINED:
         *                  break;
         *              case PaymentRequestStates.DELETED:
         *                  break;
         *              case PaymentRequestStates.IN_BUDGET:
         *                  break;
         *              case PaymentRequestStates.IN_PAYMENT:
         *                  break;
         *              case PaymentRequestStates.IN_BANK:
         *                  break;
         *              case PaymentRequestStates.PAYED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED_BUDGET:
         *                  break;
         *              case PaymentRequestStates.FINANCE_PAYMENT:
         *                  break;
         *              default:
         *                  break;
         *          }
         *          break;
         *      case PaymentRequestStates.ACCEPTED:
         *          switch (newStatus) {
         *              case PaymentRequestStates.OPEN:
         *                  break;
         *              case PaymentRequestStates.REGISTERED:
         *                  break;
         *              case PaymentRequestStates.ACCEPTED:
         *                  break;
         *              case PaymentRequestStates.DECLINED:
         *                  paymentRequest.DateContractOrPlan = default(DateTime);
         *                  break;
         *              case PaymentRequestStates.DELETED:
         *                  break;
         *              case PaymentRequestStates.IN_BUDGET:
         *                  paymentRequest.DateBudget = DateTime.Now;
         *                  break;
         *              case PaymentRequestStates.IN_PAYMENT:
         *                  break;
         *              case PaymentRequestStates.IN_BANK:
         *                  break;
         *              case PaymentRequestStates.PAYED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED_BUDGET:
         *                  break;
         *              case PaymentRequestStates.FINANCE_PAYMENT:
         *                  break;
         *              default:
         *                  break;
         *          }
         *          break;
         *      case PaymentRequestStates.DELETED:
         *          switch (newStatus) {
         *              case PaymentRequestStates.OPEN:
         *                  break;
         *              case PaymentRequestStates.REGISTERED:
         *                  paymentRequest.Date = DateTime.Now;
         *                  break;
         *              case PaymentRequestStates.ACCEPTED:
         *                  break;
         *              case PaymentRequestStates.DECLINED:
         *                  break;
         *              case PaymentRequestStates.DELETED:
         *                  break;
         *              case PaymentRequestStates.IN_BUDGET:
         *                  break;
         *              case PaymentRequestStates.IN_PAYMENT:
         *                  break;
         *              case PaymentRequestStates.IN_BANK:
         *                  break;
         *              case PaymentRequestStates.PAYED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED_BUDGET:
         *                  break;
         *              case PaymentRequestStates.FINANCE_PAYMENT:
         *                  break;
         *              default:
         *                  break;
         *          }
         *          break;
         *      case PaymentRequestStates.DECLINED:
         *          switch (newStatus) {
         *              case PaymentRequestStates.OPEN:
         *                  break;
         *              case PaymentRequestStates.REGISTERED:
         *                  paymentRequest.DateContractOrPlan = paymentRequest.Date;
         *                  break;
         *              case PaymentRequestStates.ACCEPTED:
         *                  break;
         *              case PaymentRequestStates.DECLINED:
         *                  break;
         *              case PaymentRequestStates.DELETED:
         *                  paymentRequest.DateFinance = default(DateTime);
         *                  break;
         *              case PaymentRequestStates.IN_BUDGET:
         *                  break;
         *              case PaymentRequestStates.IN_PAYMENT:
         *                  break;
         *              case PaymentRequestStates.IN_BANK:
         *                  break;
         *              case PaymentRequestStates.PAYED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED_BUDGET:
         *                  break;
         *              case PaymentRequestStates.FINANCE_PAYMENT:
         *                  break;
         *              default:
         *                  break;
         *          }
         *          break;
         *      case PaymentRequestStates.IN_BUDGET:
         *          switch (newStatus) {
         *              case PaymentRequestStates.OPEN:
         *                  break;
         *              case PaymentRequestStates.REGISTERED:
         *                  break;
         *              case PaymentRequestStates.ACCEPTED:
         *                  break;
         *              case PaymentRequestStates.DECLINED:
         *                  paymentRequest.DateContractOrPlan = default(DateTime);
         *                  paymentRequest.DateBudget = default(DateTime);
         *                  break;
         *              case PaymentRequestStates.DELETED:
         *                  break;
         *              case PaymentRequestStates.IN_BUDGET:
         *                  break;
         *              case PaymentRequestStates.IN_PAYMENT:
         *                  paymentRequest.DateFinance = DateTime.Now;
         *                  // Информация о заявке пишется в специальный регистрирующий журнал
         *                  fmCPRRegistrator ra = os.CreateObject<fmCPRRegistrator>();
         *                  ra.PaymentRequest = paymentRequest;
         *                  ra.IntNumber = fmCPRRegistrator.GenerateNumber(((ObjectSpace)os).Session);
         *                  paymentRequest.Number = ra.Number;
         *                  break;
         *              case PaymentRequestStates.IN_BANK:
         *                  //paymentRequest.DateFinance = DateTime.Now;
         *                  //// Информация о заявке пишется в специальный регистрирующий журнал
         *                  //fmCPRRegistrator ra = os.CreateObject<fmCPRRegistrator>();
         *                  //ra.PaymentRequest = paymentRequest;
         *                  //ra.IntNumber = fmCPRRegistrator.GenerateNumber(((ObjectSpace)os).Session);
         *                  //paymentRequest.Number = ra.Number;
         *                  break;
         *              case PaymentRequestStates.PAYED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED_BUDGET:
         *                  break;
         *              case PaymentRequestStates.FINANCE_PAYMENT:
         *                  break;
         *              default:
         *                  break;
         *          }
         *          break;
         *      case PaymentRequestStates.IN_PAYMENT:
         *          switch (newStatus) {
         *              case PaymentRequestStates.OPEN:
         *                  break;
         *              case PaymentRequestStates.REGISTERED:
         *                  break;
         *              case PaymentRequestStates.ACCEPTED:
         *                  break;
         *              case PaymentRequestStates.DECLINED:
         *                  paymentRequest.DateFinance = default(DateTime);
         *                  break;
         *              case PaymentRequestStates.DELETED:
         *                  break;
         *              case PaymentRequestStates.IN_BUDGET:
         *                  break;
         *              case PaymentRequestStates.IN_PAYMENT:
         *                  break;
         *              case PaymentRequestStates.IN_BANK:
         *                  break;
         *              case PaymentRequestStates.PAYED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED_BUDGET:
         *                  break;
         *              case PaymentRequestStates.FINANCE_PAYMENT:
         *                  break;
         *              default:
         *                  break;
         *          }
         *          break;
         *      case PaymentRequestStates.IN_BANK:   // то же, что и IN_PAYMENT, но означает, что в банк отправлена платёжка
         *          switch (newStatus) {
         *              case PaymentRequestStates.OPEN:
         *                  break;
         *              case PaymentRequestStates.REGISTERED:
         *                  break;
         *              case PaymentRequestStates.ACCEPTED:
         *                  break;
         *              case PaymentRequestStates.DECLINED:
         *                  paymentRequest.DateFinance = default(DateTime);
         *                  break;
         *              case PaymentRequestStates.DELETED:
         *                  break;
         *              case PaymentRequestStates.IN_BUDGET:
         *                  break;
         *              case PaymentRequestStates.IN_PAYMENT:
         *                  break;
         *              case PaymentRequestStates.IN_BANK:
         *                  break;
         *              case PaymentRequestStates.PAYED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED_BUDGET:
         *                  break;
         *              case PaymentRequestStates.FINANCE_PAYMENT:
         *                  break;
         *              default:
         *                  break;
         *          }
         *          break;
         *      case PaymentRequestStates.PAYED:
         *          switch (newStatus) {
         *              case PaymentRequestStates.OPEN:
         *                  break;
         *              case PaymentRequestStates.REGISTERED:
         *                  break;
         *              case PaymentRequestStates.ACCEPTED:
         *                  break;
         *              case PaymentRequestStates.DECLINED:
         *                  break;
         *              case PaymentRequestStates.DELETED:
         *                  break;
         *              case PaymentRequestStates.IN_BUDGET:
         *                  break;
         *              case PaymentRequestStates.IN_PAYMENT:
         *                  break;
         *              case PaymentRequestStates.IN_BANK:
         *                  break;
         *              case PaymentRequestStates.PAYED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED_BUDGET:
         *                  break;
         *              case PaymentRequestStates.FINANCE_PAYMENT:
         *                  break;
         *              default:
         *                  break;
         *          }
         *          break;
         *      case PaymentRequestStates.SUSPENDED:
         *          switch (newStatus) {
         *              case PaymentRequestStates.OPEN:
         *                  break;
         *              case PaymentRequestStates.REGISTERED:
         *                  break;
         *              case PaymentRequestStates.ACCEPTED:
         *                  break;
         *              case PaymentRequestStates.DECLINED:
         *                  break;
         *              case PaymentRequestStates.DELETED:
         *                  break;
         *              case PaymentRequestStates.IN_BUDGET:
         *                  break;
         *              case PaymentRequestStates.IN_PAYMENT:
         *                  paymentRequest.DateFinance = DateTime.Now;
         *                  break;
         *              case PaymentRequestStates.IN_BANK:
         *                  //paymentRequest.DateFinance = DateTime.Now;
         *                  break;
         *              case PaymentRequestStates.PAYED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED_BUDGET:
         *                  break;
         *              case PaymentRequestStates.FINANCE_PAYMENT:
         *                  break;
         *              default:
         *                  break;
         *          }
         *          break;
         *      case PaymentRequestStates.SUSPENDED_BUDGET:
         *          switch (newStatus) {
         *              case PaymentRequestStates.OPEN:
         *                  break;
         *              case PaymentRequestStates.REGISTERED:
         *                  break;
         *              case PaymentRequestStates.ACCEPTED:
         *                  break;
         *              case PaymentRequestStates.DECLINED:
         *                  break;
         *              case PaymentRequestStates.DELETED:
         *                  break;
         *              case PaymentRequestStates.IN_BUDGET:
         *                  break;
         *              case PaymentRequestStates.IN_PAYMENT:
         *                  break;
         *              case PaymentRequestStates.IN_BANK:
         *                  break;
         *              case PaymentRequestStates.PAYED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED_BUDGET:
         *                  break;
         *              case PaymentRequestStates.FINANCE_PAYMENT:
         *                  break;
         *              default:
         *                  break;
         *          }
         *          break;
         *      case PaymentRequestStates.FINANCE_PAYMENT:
         *          switch (newStatus) {
         *              case PaymentRequestStates.OPEN:
         *                  break;
         *              case PaymentRequestStates.REGISTERED:
         *                  break;
         *              case PaymentRequestStates.ACCEPTED:
         *                  break;
         *              case PaymentRequestStates.DECLINED:
         *                  break;
         *              case PaymentRequestStates.DELETED:
         *                  break;
         *              case PaymentRequestStates.IN_BUDGET:
         *                  break;
         *              case PaymentRequestStates.IN_PAYMENT:
         *                  break;
         *              case PaymentRequestStates.IN_BANK:
         *                  break;
         *              case PaymentRequestStates.PAYED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED:
         *                  break;
         *              case PaymentRequestStates.SUSPENDED_BUDGET:
         *                  break;
         *              case PaymentRequestStates.FINANCE_PAYMENT:
         *                  break;
         *              default:
         *                  break;
         *          }
         *          break;
         *      default:
         *          break;
         *  }
         * }
         */

        public static void DoApproveAction(IObjectSpace os, fmCPRPaymentRequest paymentRequest)
        {
            switch (paymentRequest.State)
            {
            case PaymentRequestStates.OPEN:
                paymentRequest.State = PaymentRequestStates.REGISTERED;
                paymentRequest.DateContractOrPlan = paymentRequest.Date;
                break;

            case PaymentRequestStates.REGISTERED:
                if (paymentRequest as fmPaymentRequestMemorandum != null)
                {
                    paymentRequest.State      = PaymentRequestStates.IN_BUDGET;
                    paymentRequest.DateBudget = DateTime.Now;
                }
                else
                {
                    paymentRequest.State = PaymentRequestStates.ACCEPTED;
                    paymentRequest.DateContractOrPlan = paymentRequest.Date;
                }
                break;

            case PaymentRequestStates.ACCEPTED:
                paymentRequest.State      = PaymentRequestStates.IN_BUDGET;
                paymentRequest.DateBudget = DateTime.Now;
                break;

            case PaymentRequestStates.DELETED:
                paymentRequest.State = PaymentRequestStates.REGISTERED;
                paymentRequest.Date  = DateTime.Now;
                break;

            case PaymentRequestStates.DECLINED:
                paymentRequest.State = PaymentRequestStates.REGISTERED;
                paymentRequest.DateContractOrPlan = paymentRequest.Date;
                break;

            case PaymentRequestStates.IN_BUDGET:
                paymentRequest.State       = PaymentRequestStates.IN_PAYMENT;
                paymentRequest.DateFinance = DateTime.Now;
                // Информация о заявке пишется в специальный регистрирующий журнал
                fmCPRRegistrator ra = os.CreateObject <fmCPRRegistrator>();
                ra.PaymentRequest     = paymentRequest;
                ra.IntNumber          = fmCPRRegistrator.GenerateNumber(((ObjectSpace)os).Session);
                paymentRequest.Number = ra.Number;
                break;

            case PaymentRequestStates.IN_PAYMENT:
                paymentRequest.State = PaymentRequestStates.IN_BANK;
                break;

            case PaymentRequestStates.IN_BANK:       // то же, что и IN_PAYMENT, но означает, что в банк отправлена платёжка
                break;

            case PaymentRequestStates.PAYED:
                break;

            case PaymentRequestStates.SUSPENDED:
                paymentRequest.State       = PaymentRequestStates.IN_PAYMENT;
                paymentRequest.DateFinance = DateTime.Now;
                break;

            case PaymentRequestStates.SUSPENDED_BUDGET:
                paymentRequest.State      = PaymentRequestStates.IN_BUDGET;
                paymentRequest.DateBudget = DateTime.Now;
                break;

            case PaymentRequestStates.FINANCE_PAYMENT:
                break;

            case PaymentRequestStates.TEMPLATE:
                break;

            default:
                break;
            }
        }