示例#1
0
 /**
  * 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';
     }
 }