-(void)Search_load_Scraping{
Reachability *reachability = [Reachability reachabilityForInternetConnection];
NetworkStatus internetStatus = [reachability currentReachabilityStatus];
if (internetStatus != NotReachable)
{
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),
^{
TrainInfo *TrnObj=[[TrainInfo alloc]init];
ScrapingClass *scrap=[[ScrapingClass alloc]init];
TrnObj= [scrap train_information: [NSString stringWithFormat:@"http://erail.in/Rail/getPNRStatusAsynch.aspx?Data=%@",pnr_no]];
// NSLog(@"NAME..... %@ NO %@ Date %@ Class %@ \ndes==%@\n %@ \n Dep time %@ Arr time %@ PASSENGER%@ Class %@", TrnObj.TrainName,TrnObj.TrainNumber,TrnObj.TrainDate,TrnObj.TrainBokingSts,TrnObj.TrainBoarding,TrnObj.TrainDestination,TrnObj.TrainDepTime,TrnObj.TrainArrivalTime,TrnObj.trainTicDictionary,TrnObj.TrainClass);
dispatch_sync(dispatch_get_main_queue(), ^{
//If self.image is atomic (not declared with nonatomic)
// you could have set it directly above
[activityIndicator stopAnimating];
if ([TrnObj.TrainNumber length]>3){
//********************** ************************
[dbSingleton() createEditableCopyOfDatabaseIfNeeded];
if ([dbSingleton() checkpnrEsistence:pnr_no]>0)
{
// [dbSingleton() deletePnr:pnr_no];
[dbSingleton() update_Pnr:TrnObj.TrainName trainNumber:TrnObj.TrainNumber chartPrepared:TrnObj.TrainChart className:TrnObj.TrainClass alight_code:TrnObj.TrainDestinationCode alight_name:TrnObj.TrainDestination board_code:TrnObj.TrainBoardingCode board_name:TrnObj.TrainBoarding from_code:TrnObj.TrainDestinationCode from_name:TrnObj.TrainBoarding tr_date:TrnObj.TrainDate to_code:TrnObj.TrainDestinationCode to_name:TrnObj.TrainDestination BordTime:TrnObj.TrainDepTime FromTime:TrnObj.TrainDepTime ToTime:TrnObj.TrainArrivalTime PNR_number:pnr_no];
}
[activityIndicator stopAnimating];
NSArray *seatdetails=[TrnObj.trainTicDictionary objectForKey:@"passengers"];
NSLog(@"SCRAPING self.seat_details %@",self.seat_details);
for(int i=0;i<seatdetails.count;i++)
{
NSString *seat_number=[NSString stringWithFormat:@"%@",[[seatdetails objectAtIndex:i] objectForKey:@"booking_status"]];
NSString *seat_status=[NSString stringWithFormat:@"%@",[[seatdetails objectAtIndex:i] objectForKey:@"current_status"]];
int roeid=[[[seatdetails objectAtIndex:i] objectForKey:@"rowid"] intValue];
[dbSingleton() Update_Passenger:seat_number seat_status:seat_status pnr_number:pnr_no Row_ID:roeid];
}
//****************************** bord ************************************
NSMutableDictionary *resDicBor=[[NSMutableDictionary alloc]init];
[resDicBor setValue:TrnObj.TrainBoardingCode forKey:@"code"];
[resDicBor setValue:TrnObj.TrainBoarding forKey:@"name"];
[resDicBor setValue:TrnObj.TrainDepTime forKey:@"time"];
NSMutableDictionary *resB=[[NSMutableDictionary alloc]init];
[resB setValue:resDicBor forKey:@"boarding_point"];
NSLog(@"SCRAP resB.%@",resB);
//******************************* des ********************************
NSMutableDictionary *resDicDES=[[NSMutableDictionary alloc]init];
[resDicDES setValue:TrnObj.TrainDestinationCode forKey:@"code"];
[resDicDES setValue:TrnObj.TrainDestination forKey:@"name"];
[resDicDES setValue:TrnObj.TrainArrivalTime forKey:@"time"];
NSMutableDictionary *resD=[[NSMutableDictionary alloc]init];
[resD setValue:resDicDES forKey:@"reservation_upto"];
NSLog(@"SCRAP resD.%@",resD);
//******************************* *************************************
NSMutableDictionary *resDicFro=[[NSMutableDictionary alloc]init];
[resDicFro setValue:TrnObj.TrainBoardingCode forKey:@"code"];
[resDicFro setValue:TrnObj.TrainBoarding forKey:@"name"];
[resDicBor setValue:TrnObj.TrainDepTime forKey:@"time"];
NSMutableDictionary *resF=[[NSMutableDictionary alloc]init];
[resF setValue:resDicFro forKey:@"from_station"];
NSLog(@"SCRAP resF.%@",resF);
self.travel_details=[[NSMutableArray alloc]init];
[self.travel_details addObject:[resD objectForKey:@"reservation_upto"]];
[self.travel_details addObject:[resB objectForKey:@"boarding_point"]];
[self.travel_details addObject:[resF objectForKey:@"from_station"]];
NSLog(@"SCRAP from_station....%@",[resF objectForKey:@"from_station"]);
self.seat_details=[TrnObj.trainTicDictionary objectForKey:@"passengers"];
NSLog(@"SCRAP passengers....%@",TrnObj.trainTicDictionary);
self.pnr_detail_array=[[NSMutableArray alloc]init];
[self.pnr_detail_array addObject:TrnObj.TrainNumber];
NSLog(@"SCRAP train_number....%@",TrnObj.TrainNumber);
NSDateFormatter* Dformatter1 = [[NSDateFormatter alloc] init];
[Dformatter1 setDateFormat:@"yyyy-MM-dd"];
NSDateFormatter* Dformatter2 = [[NSDateFormatter alloc] init];
[Dformatter2 setDateFormat:@"dd-MM-yyyy"];
NSDate *TDate=[Dformatter1 dateFromString: TrnObj.TrainDate];
NSString *trDat=[Dformatter2 stringFromDate:TDate];
[self.pnr_detail_array addObject:trDat];
// [self.pnr_detail_array addObject:[json objectForKey:@"doj"]];
NSLog(@"SCRAP date....%@",trDat);
[self.pnr_detail_array addObject:TrnObj.TrainName];
self.pnr_no=pnr_no;
if([TrnObj.TrainChart isEqualToString:@"N"])
{
[self.pnr_detail_array addObject:@"Chart Not Prepared"];
} else{
[self.pnr_detail_array addObject:@"Chart Prepared"];
}
[self.pnr_detail_array addObject:@""];
[self.pnr_detail_array addObject:TrnObj.TrainClass];
//*************update seat detail
str_seat_detail=@"";
for(int i=0;i<seat_details.count;i++)
{
str_seat_detail=[str_seat_detail stringByAppendingString:[NSString stringWithFormat:@"%@-%@\n",[[seat_details objectAtIndex:i] objectForKey:@"booking_status"],[[seat_details objectAtIndex:i] objectForKey:@"current_status"]]];
}
NSLog(@" SCRAP str_seat_detail %@",str_seat_detail);
[table_view reloadData];
}else{
if (delegateObj.ScrapStatus==1) {
[self performSelector:@selector(getLoginData) withObject:nil afterDelay:0.0];
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:nil message:@"Trying Again"
delegate:self cancelButtonTitle:nil
otherButtonTitles:nil];
[alertView show];
[self performSelector:@selector(byeAlertView:) withObject:alertView afterDelay:0.5];
}else{
[activityIndicator stopAnimating];
UIAlertView *alert =[[UIAlertView alloc]initWithTitle:nil message:@"Either the PNR is not generated or the travel date is in the past." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
}
}
});
});
}else
{
[activityIndicator stopAnimating];
UIAlertView *alert =[[UIAlertView alloc]initWithTitle:@"Oops!" message:@" Try again later." delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[alert show];
}
}