where('status', 'created')->where('type', 'tentcard')->first(); if(!is_null($job)) { $contacts = DB::table("contacts")->select('id', 'name', 'contact_id', 'user_id', 'employee_code', 'rep_name', 'position_name', 'depot_name')->where('status', 0)->whereBetween('created_date', [date("Y-m-d H:i:s", strtotime($job->start_date) + 19800 ), date("Y-m-d H:i:s", strtotime($job->end_date) + 19800 ) ])->get(); $users = []; $depots = []; foreach($contacts as $contact) { if(!isset($users[$contact->user_id])) { $users[$contact->user_id]['userinfo'] = ['name' => $contact->rep_name, 'employee_code' => $contact->employee_code, 'position_name' => $contact->position_name]; $users[$contact->user_id]['contacts'] = []; } if( !in_array($contact->name, $users[$contact->user_id]['contacts']) ) { $users[$contact->user_id]['contacts'][] = $contact->name; } //if(!array_key_exists($contact->user_id, $depots) ){ $depots[$contact->employee_code] = $contact->depot_name; //} } print_r($depots); $zips = []; $folder = storage_path('app/public/'.$job->type); foreach($users as $user_id => $user) { $files = []; if( isset($user['contacts']) && sizeof($user['contacts']) > 0 ) { foreach($user['contacts'] as $cont) { $fileName = str_replace(' ', '_', $user['userinfo']['employee_code']).'-'.str_replace(' ', '_', $cont).($job->type=='tentcard'?'-Tent-Standee.pdf':'-Sticker.pdf') ; if(file_exists($folder .'/'. $fileName)) { $files[] = $fileName; } } } $zipName = $user['userinfo']['position_name'].'-'.$user['userinfo']['employee_code'].'-'.$user['userinfo']['name'].'.zip'; $zips[ $depots[ $user['userinfo']['employee_code'] ] ][] = $zipName; //print_r('cd '.$folder.'; zip "zips/'.$zipName.'" ' . implode(' ', $files)); exec('cd '.$folder.'; zip "zips/'.$zipName.'" ' . implode(' ', $files)); } $zipNames = []; // $zipss = array_chunk($zips, 100); foreach($zips as $depot => $zip) { $zipName = $depot . '-' .date("Y-m-d", strtotime($job->start_date)).'-'.date("Y-m-d", strtotime($job->end_date)).'.zip'; //print_r('cd '.$folder.'/zips; zip "'.$zipName.'" "' . implode('" "', $zip) . '"'); exec('cd '.$folder.'/zips; zip "'.$zipName.'" "' . implode('" "', $zip) . '"'); exec('aws s3 cp ' . $folder .'/zips/'. $zipName. ' s3://rapportapp/breathefree/'.$job->type.'/'); $zipNames[] = 'https://did94hhhcgq1d.cloudfront.net/breathefree/'.$job->type.'/'.$zipName; //exec('cd '.$folder.'/zips; rf -rf "' . implode('" "', $zip) . '"'); } print_r($zipNames); } //print_r($job); } }