/** * Execute the console command. * * @return mixed */ public function fire() { $orders = Shipment::where('buyerdeliveryzone', '=', '')->orderBy('created', 'desc')->get(); if ($orders) { $cities = array(); foreach ($orders as $order) { $cities[] = $order->buyerdeliverycity; } $cities = array_unique($cities); $districts = Coverage::whereIn('city', $cities)->get(); $district_list = array(); foreach ($districts as $d) { $district_list[$d->city][] = $d->district; if (strpos($d->city, 'Jakarta')) { $district['Jakarta'][] = $d->district; } } //print_r($district_list); $matches = 0; foreach ($orders as $order) { print $order->delivery_id . ' ' . $order->buyerdeliverycity . ' ' . $order->buyerdeliveryzone . "\r\n"; if (isset($district_list[$order->buyerdeliverycity])) { $cd = $district_list[$order->buyerdeliverycity]; print_r($cd); foreach ($cd as $d) { if (preg_match('/' . $d . '/i', $order->shipping_address)) { print $d . ' ================' . "\r\n"; print 'match ' . $d . ' for ' . $order->delivery_id . ' ' . $order->shipping_address; print "\r\n"; $order->buyerdeliveryzone = $d; $order->save(); $matches++; } # code... } } } print 'found ' . $matches . ' matches'; } else { print 'nothing to fill in'; } }