Skip to content

Instantly share code, notes, and snippets.

@bespalown
Last active August 29, 2015 14:10
Show Gist options
  • Save bespalown/a5ade86e1ce210351b6a to your computer and use it in GitHub Desktop.
Save bespalown/a5ade86e1ce210351b6a to your computer and use it in GitHub Desktop.
@interface VBScheduleData : VBMasterModels
@property (nonatomic, strong) NSNumber *utcTimeOffset;
@property (nonatomic, strong) NSNumber *executedTimes;
@property (nonatomic, strong) NSString *nextExecution;
@property (nonatomic, strong) VBOnceData *Once; //однократный платеж
@property (nonatomic, strong) VBDailyData *Daily; //по дням
@property (nonatomic, strong) VBWeeklyData *Weekly; //по неделям и дням недели
@property (nonatomic, strong) VBMonthlyDayOfMonthData *MonthlyDayOfMonth; //в опеределенное число месяца
-(NSString *)getPaymentInfoString;
----------------------------------------------------------------------------------------------------------------
-(NSString *)getPaymentInfoString;{
NSString *schedule = @"";
if (_Once) {
//Платеж будет исполнен однократно, 30.09.2014 в 00:00
schedule = [NSString stringWithFormat:NSLocalizedString(@"Платеж будет исполнен однократно, %@ в %@", nil),
[_Once.startDate getCreateDateInFormat:@"dd.MM.yyy" timeAgo:NO],
[_Once.startDate getCreateDateInFormat:@"HH:mm" timeAgo:NO]];
}
else if (_Daily) {
if (_Daily.endDate && _Daily.endDate.length != 0) {
//Платеж будет производиться ежедневно в 06:11, начиная с 30.09.2014, заканчивая 10.10.2014 в 08:46
schedule = [NSString stringWithFormat:NSLocalizedString(@"Платеж будет производиться %@ в %@, начиная с %@, заканчивая %@ в %@", nil),
NSLocalizedString(@"ежедневно", nil),
[_Daily.startDate getCreateDateInFormat:@"HH:mm" timeAgo:NO],
[_Daily.startDate getCreateDateInFormat:@"dd.MM.yyy" timeAgo:NO],
[_Daily.endDate getCreateDateInFormat:@"dd.MM.yyy" timeAgo:NO],
[_Daily.endDate getCreateDateInFormat:@"HH:mm" timeAgo:NO]
];
}
else {
//Платеж будет производиться ежедневно в 06:11, начиная с 30.09.2014
schedule = [NSString stringWithFormat:NSLocalizedString(@"Платеж будет производиться %@ в %@, начиная с %@", nil),
NSLocalizedString(@"ежедневно", nil),
[_Daily.startDate getCreateDateInFormat:@"HH:mm" timeAgo:NO],
[_Daily.startDate getCreateDateInFormat:@"dd.MM.yyy" timeAgo:NO]
];
}
}
else if (_Weekly) {
NSString *everyWeekly = NSLocalizedString(@"еженедельно", nil);
everyWeekly = [everyWeekly stringByAppendingString:@","];
everyWeekly = [everyWeekly stringByAppendingString:[_Weekly.DaysOfWeek getFormattedSheduleString]];
//Платеж будет производиться еженедельно, по понедельникам, средам, воскресеньям, в 00:00, начиная с 28.09.2014, заканчивая 04.10.2014 в 13:51
if (_Weekly.endDate && _Weekly.endDate.length != 0) {
schedule = [NSString stringWithFormat:NSLocalizedString(@"Платеж будет производиться %@ в %@, начиная с %@, заканчивая %@ в %@", nil),
everyWeekly,
[_Weekly.startDate getCreateDateInFormat:@"HH:mm" timeAgo:NO],
[_Weekly.startDate getCreateDateInFormat:@"dd.MM.yyy" timeAgo:NO],
[_Weekly.endDate getCreateDateInFormat:@"dd.MM.yyy" timeAgo:NO],
[_Weekly.endDate getCreateDateInFormat:@"HH:mm" timeAgo:NO]
];
}
else {
//Платеж будет производиться еженедельно, по понедельникам, средам, воскресеньям, в 00:00, начиная с 28.09.2014
schedule = [NSString stringWithFormat:NSLocalizedString(@"Платеж будет производиться %@ в %@, начиная с %@", nil),
everyWeekly,
[_Weekly.startDate getCreateDateInFormat:@"HH:mm" timeAgo:NO],
[_Weekly.startDate getCreateDateInFormat:@"dd.MM.yyy" timeAgo:NO]
];
}
}
else if (_MonthlyDayOfMonth) {
//Платеж будет производиться ежемесячно, в первый день месяца, в 12:34, начиная с 01.10.2014, заканчивая 09.11.2014 в 15:26
//Платеж будет производиться ежемесячно, в последний день месяца, в 00:00, начиная с 30.09.2014, заканчивая 09.11.2014 в 15:26
//Платеж будет производиться ежемесячно, в 10-й день месяца, в 00:00, начиная с 10.10.2014, заканчивая 09.11.2014 в 15:26
NSString *everyMonth = NSLocalizedString(@"ежемесячно", nil);
everyMonth = [everyMonth stringByAppendingString:@", "];
everyMonth = [everyMonth stringByAppendingString:[_MonthlyDayOfMonth getFormattedSheduleString]];
if (_MonthlyDayOfMonth.endDate && _MonthlyDayOfMonth.endDate.length != 0) {
schedule = [NSString stringWithFormat:NSLocalizedString(@"Платеж будет производиться %@ в %@, начиная с %@, заканчивая %@ в %@", nil),
everyMonth,
[_MonthlyDayOfMonth.startDate getCreateDateInFormat:@"HH:mm" timeAgo:NO],
[_MonthlyDayOfMonth.startDate getCreateDateInFormat:@"dd.MM.yyy" timeAgo:NO],
[_MonthlyDayOfMonth.endDate getCreateDateInFormat:@"dd.MM.yyy" timeAgo:NO],
[_MonthlyDayOfMonth.endDate getCreateDateInFormat:@"HH:mm" timeAgo:NO]
];
}
else {
schedule = [NSString stringWithFormat:NSLocalizedString(@"Платеж будет производиться %@ в %@, начиная с %@", nil),
everyMonth,
[_MonthlyDayOfMonth.startDate getCreateDateInFormat:@"HH:mm" timeAgo:NO],
[_MonthlyDayOfMonth.startDate getCreateDateInFormat:@"dd.MM.yyy" timeAgo:NO]
];
}
}
return schedule;
}
///
Once
{
"startDate" : "12",
}
///
Daily
{
EndDate = "2014-10-10T08:46:00";
Interval = 1;
MaxExecutions = 0;
StartDate = "2014-09-30T06:11:00";
}
///
Weekly
{
DaysOfWeek = {
Friday = 0;
Monday = 0;
Saturday = 1;
Sunday = 0;
Thursday = 0;
Tuesday = 0;
Wednesday = 1;
};
EndDate = "2014-10-05T09:33:00";
Interval = 1;
MaxExecutions = 0;
StartDate = "2014-09-30T14:00:00";
}
///
MonthlyDayOfMonth
{
"dayOfMonth" : "12",
"maxExecutions" : "0",
"interval" : "1",
"startDate" : "2014-10-05T09:33:00",
"endDate" : "2014-10-05T09:33:00",
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment