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(); }
/* * 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; } }