datetime('created_at')->nullable()->after('id'); $table->datetime('updated_at')->nullable()->after('created_at'); $table->date('start_at')->nullable(); $table->date('stop_at')->nullable(); $table->date('charge_at')->nullable(); }); // Convert out dates foreach (\App\Models\Charge::withoutGlobalScope(\App\Models\Scopes\SiteScope::class)->cursor() as $o) { // If we are running again if ($o->created_at) continue; if ($o->date_orig) $o->created_at = \Carbon\Carbon::createFromTimestamp($o->date_orig); if ($o->date_last) $o->updated_at = \Carbon\Carbon::createFromTimestamp($o->date_last); if ($o->charge_date) $o->charge_at = \Carbon\Carbon::createFromTimestamp($o->charge_date); if ($o->getRawOriginal('attributes')) { Config::set('site',$o->site); // Uncompress if it is try { $attributes = gzuncompress($o->getRawOriginal('attributes')); // Already uncompressed } catch (Exception $e) { $attributes = $o->getRawOriginal('attributes'); } if (str_starts_with($attributes,'a:')) { $attributes = join("\n", unserialize($attributes)); } elseif (str_starts_with($attributes,'s:')) { $attributes = unserialize($attributes); } $attributes = array_filter(explode("\n",str_replace("\r",'',$attributes))); /* $newattrs =[]; foreach ($attributes as $attr) { if (str_starts_with($attr,'Period Start==')) { $date = str_replace('Period Start==', '', $attr); $o->start_at = \Carbon\Carbon::createFromFormat('d-M-Y', $date); } elseif (str_starts_with($attr,'Period From:')) { $date = str_replace('Period From:','',$attr); $o->start_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } elseif (str_starts_with($attr,'Period End==')) { $date = str_replace('Period End==','',$attr); $o->stop_at = \Carbon\Carbon::createFromFormat('d-M-Y',$date); } elseif (str_starts_with($attr,'Period To:')) { $date = str_replace('Period To:','',$attr); $o->stop_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } elseif (str_starts_with($attr,'Connect Date: ')) { $date = str_replace('Connect Date: ','',$attr); $o->start_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } elseif (str_starts_with($attr,'Connect:')) { $date = str_replace('Connect:','',$attr); $o->start_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } elseif (str_starts_with($attr,'Effective==')) { $date = str_replace('Effective==','',$attr); $o->start_at = \Carbon\Carbon::createFromFormat('d-M-Y',$date); } elseif (str_starts_with($attr,'Effective: ')) { $date = str_replace('Effective: ','',$attr); $o->start_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } elseif (str_starts_with($attr,'Effective:')) { $date = str_replace('Effective:','',$attr); $o->start_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } elseif (str_starts_with($attr,'Start:')) { $date = str_replace('Start:','',$attr); $o->start_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } elseif (str_starts_with($attr,'End:')) { $date = str_replace('End:','',$attr); $o->stop_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } elseif (str_starts_with($attr, 'Service Upgraded==')) { $string = str_replace('Service Upgraded==','',$attr); array_push($newattrs,['upgrade_to'=>$string]); dump([$o->id=>sprintf('Removing description: [%s] with (Service Upgrade)',$o->description)]); $o->description = 'Service Upgrade'; if ($o->type == 126) $o->type = 7; } elseif (str_starts_with($attr, 'Upgrade From==')) { $string = str_replace('Upgrade From==','',$attr); array_push($newattrs,['upgrade_from'=>$string]); if ($o->type == 126) $o->type = 7; } elseif (str_starts_with($attr, 'Upgrade To==')) { $string = str_replace('Upgrade To==','',$attr); array_push($newattrs,['upgrade_to'=>$string]); dump([$o->id=>sprintf('Removing description: [%s] with (Service Upgrade)',$o->description)]); $o->description = 'Service Upgrade'; if ($o->type == 126) $o->type = 7; } elseif (str_starts_with($attr, 'Service Terminated==')) { $date = str_replace('Service Terminated==','',$attr); $o->start_at = \Carbon\Carbon::createFromFormat('d-M-Y',$date); } elseif (str_starts_with($attr, 'Contact Date=')) { $date = str_replace('Contact Date=','',$attr); $o->stop_at = \Carbon\Carbon::createFromFormat('d-M-Y',$date); if ($o->description == 'ADSL Service Cancellation In Con') $o->description = 'Service Terminated In Contract'; if ($o->type == 126) $o->type = 6; } elseif (str_starts_with($attr, 'Actual Cancel:')) { $date = str_replace('Actual Cancel:','',$attr); $o->start_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } elseif (str_starts_with($attr, 'Contact to:')) { $date = str_replace('Contact to:','',$attr); $o->stop_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); if ($o->description == 'ADSL Contract Cancellation') $o->description = 'Service Terminated In Contract'; if ($o->type == 126) $o->type = 6; } elseif (str_starts_with($attr, 'Service Number=')) { $string = str_replace('Service Number=','',$attr); if (! str_replace(' ','',$string) == $o->service->name_short) dd(['number'=>str_replace(' ','',$string),'service'=>$o->service->name_short]); } elseif (str_starts_with($attr, 'Service==')) { $string = str_replace('Service==','',$attr); if (! str_replace(' ','',$string) == $o->service->name_short) dd(['number'=>str_replace(' ','',$string),'service'=>$o->service->name_short]); } elseif (str_starts_with($attr, 'ADSL Service==')) { $string = str_replace('ADSL Service==','',$attr); if (! str_replace(' ','',$string) == $o->service->name_short) dd(['number'=>str_replace(' ','',$string),'service'=>$o->service->name_short]); } elseif (str_starts_with($attr, 'Service:')) { $string = str_replace('Service','',$attr); if (! str_replace(' ','',$string) == $o->service->name_short) dd(['number'=>str_replace(' ','',$string),'service'=>$o->service->name_short]); } elseif (str_starts_with($attr, 'Traffic==')) { $string = str_replace('Traffic==','',$attr); array_push($newattrs,['traffic'=>$string]); if ($o->type == 126) $o->type = 9; } elseif (str_starts_with($attr, 'Service Activation==')) { $date = str_replace('Service Activation==','',$attr); $o->start_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } elseif (str_starts_with($attr, 'Relocation:')) { $date = str_replace('Relocation:','',$attr); $o->start_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } elseif (str_starts_with($attr, 'Date:')) { $date = str_replace('Date:','',$attr); $o->start_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } elseif (str_starts_with($attr, 'Old Service==')) { $string = str_replace('Old Service==','',$attr); array_push($newattrs,['old_service'=>$string]); } elseif (str_starts_with($attr, 'Traffic From==')) { $string = str_replace('Traffic From==','',$attr); array_push($newattrs,['traffic_from'=>$string]); if ($o->type == 126) $o->type = 9; } elseif (str_starts_with($attr, 'Traffic To==')) { $string = str_replace('Traffic To==','',$attr); array_push($newattrs,['traffic_to'=>$string]); if ($o->type == 126) $o->type = 9; } elseif (str_starts_with($attr, 'Amount==')) { $string = str_replace('Amount==','',$attr); array_push($newattrs,['actual'=>$string]); } elseif (str_starts_with($attr, 'Actual==')) { $string = str_replace('Actual==','',$attr); array_push($newattrs,['actual'=>$string]); } elseif (str_starts_with($attr, 'Allowance==')) { $string = str_replace('Allowance==','',$attr); array_push($newattrs,['allowance'=>$string]); } elseif (str_starts_with($attr, 'Allowance:')) { $string = str_replace('Allowance:','',$attr); array_push($newattrs,['allowance'=>$string]); } elseif (str_starts_with($attr, 'Old Service==')) { $string = str_replace('Old Service==','',$attr); array_push($newattrs,['old'=>$string]); } elseif (str_starts_with($attr, 'New Service==')) { $string = str_replace('New Service==','',$attr); array_push($newattrs,['new'=>$string]); } elseif (str_starts_with($attr, 'Change From==')) { $date = str_replace('Change From==','',$attr); $o->start_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } elseif (str_starts_with($attr, 'Plan Change From==')) { $date = str_replace('Plan Change From==','',$attr); $o->start_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } elseif (str_starts_with($attr, 'Changed From==')) { $date = str_replace('Changed From==','',$attr); $o->start_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } elseif (str_starts_with($attr, 'From:')) { $date = str_replace('From:','',$attr); try { $o->start_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } catch (Exception $e) {} } elseif (str_starts_with($attr,'To:')) { $date = str_replace('To:','',$attr); try { $o->stop_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } catch (Exception $e) {} } elseif (str_starts_with($attr, 'Connection Date==')) { $date = str_replace('Connection Date==','',$attr); $o->start_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } elseif (str_starts_with($attr, 'Connection: ')) { $date = str_replace('Connection: ','',$attr); $o->start_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } elseif (str_starts_with($attr, 'Connection:')) { $date = str_replace('Connection:','',$attr); $o->start_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } elseif (str_starts_with($attr, 'Effective Date==')) { $date = str_replace('Effective Date==','',$attr); $o->start_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } elseif (str_starts_with($attr, 'Plan Change:')) { $date = str_replace('Plan Change:','',$attr); $o->start_at = \Carbon\Carbon::createFromFormat('Y-m-d',$date); } elseif (str_starts_with($attr, 'Old Plan==')) { $string = str_replace('Old Plan==','',$attr); array_push($newattrs,['plan_old'=>$string]); } elseif (str_starts_with($attr, 'Old Plan:')) { $string = str_replace('Old Plan:','',$attr); array_push($newattrs,['plan_old'=>$string]); } elseif (str_starts_with($attr, 'New Plan==')) { $string = str_replace('New Plan==','',$attr); array_push($newattrs,['plan_new'=>$string]); } elseif (str_starts_with($attr, 'New Plan:')) { $string = str_replace('New Plan:','',$attr); array_push($newattrs,['plan_new'=>$string]); } elseif (str_starts_with($attr, 'Total Download Peak==')) { $string = str_replace('Total Download Peak==','',$attr); array_push($newattrs,['download_peak_total'=>$string]); } elseif (str_starts_with($attr, 'Allowance Download Peak==')) { $string = str_replace('Allowance Download Peak==','',$attr); array_push($newattrs,['download_peak_allow'=>$string]); if ($o->type == 126) $o->type = 9; } elseif (str_starts_with($attr, 'Old Speed==')) { $string = str_replace('Old Speed==','',$attr); array_push($newattrs,['speed_old'=>$string]); } elseif (str_starts_with($attr, 'OldSpeed:')) { $string = str_replace('OldSpeed:','',$attr); array_push($newattrs,['speed_old'=>$string]); } elseif (str_starts_with($attr, 'New Speed==')) { $string = str_replace('New Speed==','',$attr); array_push($newattrs,['speed_new'=>$string]); } elseif (str_starts_with($attr, 'NewSpeed:')) { $string = str_replace('NewSpeed:','',$attr); array_push($newattrs,['speed_new'=>$string]); } elseif (str_starts_with($attr, 'Used==')) { $string = str_replace('Used==','',$attr); array_push($newattrs,['used'=>$string]); } elseif (str_starts_with($attr, 'Used=')) { $string = str_replace('Used=','',$attr); array_push($newattrs,['used'=>$string]); } elseif (str_starts_with($attr, 'Month Ending==')) { $string = str_replace('Month Ending==','',$attr); array_push($newattrs,['month'=>$string]); } elseif (str_starts_with($attr, 'Month==')) { $string = str_replace('Month==','',$attr); array_push($newattrs,['month'=>$string]); } elseif (str_starts_with($attr, 'Old Peak Allowance==')) { $string = str_replace('Old Peak Allowance==','',$attr); array_push($newattrs,['allowance_peak_old'=>$string]); } elseif (str_starts_with($attr, 'Old Allowance==')) { $string = str_replace('Old Allowance==','',$attr); array_push($newattrs,['allowance_old'=>$string]); } elseif (str_starts_with($attr, 'New Peak Allowance==')) { $string = str_replace('New Peak Allowance==','',$attr); array_push($newattrs,['allowance_peak_new'=>$string]); } elseif (str_starts_with($attr, 'New Allowance==')) { $string = str_replace('New Allowance==','',$attr); array_push($newattrs,['allowance_new'=>$string]); } elseif (str_starts_with($attr, 'Invoice==')) { $string = str_replace('Invoice==','',$attr); array_push($newattrs,['invoice'=>$string]); } elseif (str_starts_with($attr, 'Connection Fee==')) { $string = str_replace('Connection Fee==','',$attr); array_push($newattrs,['fee'=>$string]); } elseif (str_starts_with($attr, 'Graytech Contribution==')) { $string = str_replace('Graytech Contribution==','',$attr); array_push($newattrs,['discount'=>$string]); } elseif (str_starts_with($attr, 'Metric==')) { $string = str_replace('Metric==','',$attr); array_push($newattrs,['metric'=>$string]); } elseif (str_starts_with($attr, 'Metric:')) { $string = str_replace('Metric:','',$attr); array_push($newattrs,['metric'=>$string]); } elseif (str_starts_with($attr, 'Month:')) { $string = str_replace('Month:','',$attr); array_push($newattrs,['month'=>$string]); } elseif (str_starts_with($attr, 'Used:')) { $string = str_replace('Used:','',$attr); array_push($newattrs,['actual'=>$string]); } elseif (str_starts_with($attr, 'Ref ')) { $string = str_replace('Ref ','',$attr); array_push($newattrs,['ref'=>$string]); } elseif ( (str_starts_with($attr, 'New Monthly Plan==')) || (str_starts_with($attr, 'Monthly Payment==')) || (str_starts_with($attr, 'Old Quarterly==')) || (str_starts_with($attr, 'New Quarterly==')) || (str_starts_with($attr, 'Old Fee==')) || (str_starts_with($attr, 'New Fee==')) || (str_starts_with($attr, 'Old Rate:')) || (str_starts_with($attr, 'New Rate:')) || (str_starts_with($attr, 'Site==')) || (str_starts_with($attr, 'Invoiced Already:')) || (str_starts_with($attr, 'Balance:')) || (str_starts_with($attr, 'Contract=='))) { // Nothing } else { dd(['attr'=>$attr,'o'=>$o->getAttributes(),'service'=>$o->service->product->name,'product'=>$o->product_id ? $o->product->name : 'NONE']); } */ } $o->attributes = $attributes; $o->save(); } Schema::table('charges', function (Blueprint $table) { $table->dropColumn(['date_orig','date_last','charge_date']); $table->dropUnique('charges_id_account_id_site_id_unique'); $table->foreign(['account_id','site_id'])->references(['id','site_id'])->on('accounts'); $table->foreign(['service_id','site_id'])->references(['id','site_id'])->on('services'); $table->foreign(['product_id','site_id'])->references(['id','site_id'])->on('products'); $table->foreign(['user_id','site_id'])->references(['id','site_id'])->on('users'); }); } /** * Reverse the migrations. * * @return void */ public function down() { abort(500,'cant go back'); } };