public static DebtRequest ProcessCheckRequest(DebtRequest request) { PayRequest request3; DebtRequest request2 = new DebtRequest(); request3 = new PayRequest { Period = System.DateTime.Now, Period = request3.Period.AddDays((double) (1 - request3.Period.get_Day())), PaymentSystem = request.Sender.PaymentSystem, Organization = request.Sender.Organization, Office = request.Sender.Office, Terminal = request.Sender.Terminal, Operator = request.Sender.Operator }; request3.SaveChanges(); request3.DebtProcessRequest(true, request.RequestParameters.DebtAccountId); request3 = ObjectWithId.FindById<PayRequest>(request3.Id); request2.ResponseParameters.Paid = request3.TotalDebt; request2.ResponseParameters.RequestId = request3.Id; request2.ResponseParameters.DebtAccountId = request.RequestParameters.DebtAccountId; request2.ResponseParameters.UK = request3.AdditionalInfo; request2.ResponseParameters.Address = request3.AddressName; request2.ResponseParameters.Account = request3.AccountNumber; request2.ResponseParameters.OwnerName = request3.OwnerName; return request2; }
public static Request ProcessReverseRequest(Request request) { request = Serializer.FromXml<Request>(System.IO.File.ReadAllText(@"D:\Projects\AIS.SN\AIS.SN.PaymentService\App_Data\5-PayRequest.xml")); Request request2 = new Request(); try { if (string.IsNullOrEmpty(request.Sender.PaymentSystem)) { return request2.SetStatus(StatusCode.НеНайденТэгPaymentSystem); } if (string.IsNullOrEmpty(request.Sender.Organization)) { return request2.SetStatus(StatusCode.НеНайденТэгOrganization); } if (string.IsNullOrEmpty(request.Sender.Operator) && string.IsNullOrEmpty(request.Sender.Terminal)) { return request2.SetStatus(StatusCode.НеНайденыТэгиOperatorИTerminal); } string reverseTransactionId = request.RequestParameters.ReverseTransactionId; if (string.IsNullOrEmpty(reverseTransactionId)) { return request2.SetStatus(StatusCode.НеНайденТэгReverseTransactionId); } string operationType = request.RequestParameters.OperationType; if (string.IsNullOrEmpty(operationType)) { return request2.SetStatus(StatusCode.НеНайденТэгOperationType); } PayRequest request3 = ObjectWithId.FindById<PayRequest>(request2.RequestParameters.RequestId); if (request3.ReverseRequestId != 0L) { return ((ObjectWithId.FindById<PayRequest>(request3.ReverseRequestId).ExternalTransactionId == reverseTransactionId) ? request2.SetStatus(StatusCode.ЗапросВыполненУспешно) : request2.SetStatus(StatusCode.ЗапросУжеПроведен)); } PayRequest request4 = new PayRequest { PaymentSystem = request.Sender.PaymentSystem, Organization = request.Sender.Organization, Office = request.Sender.Office, Terminal = request.Sender.Terminal, Operator = request.Sender.Operator, ServiceCode = request.Sender.ServiceCode, AccountNumber = request3.AccountNumber, Period = request3.Period, AccountId = request3.AccountId, PaidSumm = request3.PaidSumm, IsConfirmed = true, ConfirmedAt = Register.GetDatabaseTime() }; foreach (FasetItem item in Register.GetFasetItemList(FasetsEnum.PaymentOperationType)) { if (item.Name == operationType) { request4.RequestTypeFasetId = item.Id; } } request4.ExternalTransactionId = reverseTransactionId; request4.ReverseRequestId = request3.Id; request4.SaveChanges(); request3.ReverseRequestId = request4.Id; request3.SaveChanges(); request2.SetStatus(StatusCode.ЗапросВыполненУспешно); } catch (System.Exception exception) { request2 = new Request().SetStatus(StatusCode.НепредвиденнаяОшибка, exception); } return request2; }
public PayRequest Reverse(string terminal) { if (base.Id < 0L) { throw new System.ApplicationException("Ошибка! Дополнительный платеж должен быть отменен через POSView."); } if (!this.IsProcessed) { throw new System.ApplicationException("Платеж еще не проведен. Дождитесь проводки платежа."); } if (this.ReverseRequestId != 0L) { throw new System.ApplicationException("Платеж уже был возвращен. Повторный возврат невозможен."); } PayRequest request = new PayRequest { PaymentSystem = LocalPaymentSystem, Organization = Constants.OrgName, Terminal = terminal, Operator = User.CurrentUser.Name, AccountNumber = this.AccountNumber, Period = this.Period, AccountId = this.AccountId, AddressName = this.AddressName, OwnerName = this.OwnerName, PaidSumm = this.PaidSumm, AgentId = this.AgentId, AgentName = this.AgentName, PaymentOrderNumber = this.PaymentOrderNumber, PackNumber = this.PackNumber, PaymentOrderDate = this.PaymentOrderDate, Commission = this.Commission, RequestTypeFasetId = Mappers.FasetItemMapper.FindByName(FasetsEnum.PaymentOperationType, "Возврат оплаты наличными").Id, CashFlowTypeId = this.CashFlowTypeId }; request.SaveChanges(); request.IsConfirmed = true; request.ConfirmedAt = Register.GetDatabaseTime(); PayLocalTransaction transaction = new PayLocalTransaction { RequestId = request.Id }; transaction.SaveChanges(); request.ExternalTransactionId = ((long) transaction.Id).ToString(); request.ReverseRequestId = base.Id; request.UsePaymentDate = this.UsePaymentDate; request.SaveChanges(); this.ReverseRequestId = request.Id; this.SaveChanges(); request.ProcessPayment(); return request; }
public static Request ProcessCheckRequest(Request request) { Request request2 = new Request(); try { PayRequest request3; if (request.RequestParameters.RequestId == 0L) { if (string.IsNullOrEmpty(request.Sender.PaymentSystem)) { return request2.SetStatus(StatusCode.НеНайденТэгPaymentSystem); } if (string.IsNullOrEmpty(request.Sender.Organization)) { return request2.SetStatus(StatusCode.НеНайденТэгOrganization); } if (string.IsNullOrEmpty(request.Sender.Operator) && string.IsNullOrEmpty(request.Sender.Terminal)) { return request2.SetStatus(StatusCode.НеНайденыТэгиOperatorИTerminal); } request3 = new PayRequest { AccountNumber = request.RequestParameters.AccountNumber, Period = new System.DateTime(request.RequestParameters.PayPeriodYear, request.RequestParameters.PayPeriodMonth, 1), PaymentSystem = request.Sender.PaymentSystem, Organization = request.Sender.Organization, Office = request.Sender.Office, Terminal = request.Sender.Terminal, Operator = request.Sender.Operator, ServiceCode = request.Sender.ServiceCode }; request3.SaveChanges(); request3.ProcessRequest_Service(true); } else { request3 = ObjectWithId.FindById<PayRequest>(request.RequestParameters.RequestId); if (request3.IsConfirmed) { return request2.SetStatus(StatusCode.ЗапросУжеПроведен); } request3.Period = new System.DateTime(request.RequestParameters.PayPeriodYear, request.RequestParameters.PayPeriodMonth, 1); request3.PaidSumm = request.RequestParameters.PaidSumm; request3.SaveChanges(); foreach (PayRequestServicePayAmount amount in request3.GetRequestServicePayAmounts()) { amount.Delete(); } foreach (AIS.SN.Model.DomainObjects.PaymentService.Service service in request.Services) { new PayRequestServicePayAmount { RequestId = request3.Id, Code = service.Code, CounterIndication = service.NewCounter, Paid = service.Paid }.SaveChanges(); } request3.ProcessRequest_Service(false); } request3 = ObjectWithId.FindById<PayRequest>(request3.Id); request2 = new Request { ResponseParameters = { RequestId = request3.Id, OwnerName = request3.OwnerName, ApartmentType = request3.ApartmentType, ApartmentTotalSquare = request3.ApartmentTotalSquare, ResidentsCount = System.Convert.ToByte(request3.ResidentsCount), ResidentVacationsCount = System.Convert.ToByte(request3.ResidentVacationsCount), Benefits = new System.Collections.Generic.List<AIS.SN.Model.DomainObjects.PaymentService.Benefit>() } }; foreach (PayRequestBenefit benefit in request3.GetRequestBenefits()) { AIS.SN.Model.DomainObjects.PaymentService.Benefit benefit2 = new AIS.SN.Model.DomainObjects.PaymentService.Benefit { Name = benefit.BenefitName, Persons = benefit.PersonsCount }; request2.ResponseParameters.Benefits.Add(benefit2); } request2.ResponseParameters.CurrentChargeSumm = request3.CurrentChargeSumm; request2.ResponseParameters.CurrentBenefitSumm = request3.CurrentBenefitSumm; request2.ResponseParameters.CurrentRecalcSumm = request3.CurrentRecalcSumm; request2.ResponseParameters.TotalDebt = request3.TotalDebt; request2.ResponseParameters.TotalPenalty = request3.TotalPenalty; request2.ResponseParameters.Comments = request3.Comments; request2.ResponseParameters.AdditionalInfo = request3.AdditionalInfo; foreach (PayRequestService service2 in request3.GetRequestServices()) { AIS.SN.Model.DomainObjects.PaymentService.Service service3 = new AIS.SN.Model.DomainObjects.PaymentService.Service { Code = service2.Code, Name = service2.Name, Counter = service2.CounterIndication, NewCounter = service2.NewCounterIndication, Rate = service2.Rate, Charge = service2.ChargeSumm, Benefit = service2.BenefitSumm, Recalc = service2.RecalcSumm, CounterCharge = service2.DiffChargeSumm - service2.DiffBenefitSumm, FirstCounter = service2.FirstCounterIndication, Saldo = service2.Saldo, RateCounter = service2.RateCounter, Debt = service2.Debt, Paid = service2.Paid, DebtPenalty = service2.DebtPenalty, Penalty = service2.Penalty, IsClosed = System.Convert.ToBoolean(service2.IsClosed), IsFixed = System.Convert.ToBoolean(service2.IsFixed), IsCounter = System.Convert.ToBoolean(service2.IsCounter), Edk = service2.Edk }; request2.Services.Add(service3); } request2.SetStatus(StatusCode.ЗапросВыполненУспешно); } catch (System.Exception exception) { request2 = new Request().SetStatus(StatusCode.НепредвиденнаяОшибка, exception); } return request2; }