436 lines
17 KiB
PHP
436 lines
17 KiB
PHP
|
<?php
|
||
|
|
||
|
use Illuminate\Database\Migrations\Migration;
|
||
|
use Illuminate\Database\Schema\Blueprint;
|
||
|
use Illuminate\Support\Facades\Config;
|
||
|
use Illuminate\Support\Facades\Schema;
|
||
|
|
||
|
return new class extends Migration
|
||
|
{
|
||
|
/**
|
||
|
* Run the migrations.
|
||
|
*
|
||
|
* @return void
|
||
|
*/
|
||
|
public function up()
|
||
|
{
|
||
|
/*
|
||
|
*/
|
||
|
DB::statement('UPDATE charges SET type=126 where type is null');
|
||
|
DB::statement('ALTER TABLE charges MODIFY account_id int unsigned NOT NULL');
|
||
|
DB::statement('ALTER TABLE charges MODIFY product_id int unsigned DEFAULT NULL');
|
||
|
DB::statement('ALTER TABLE charges MODIFY service_id int unsigned DEFAULT NULL');
|
||
|
DB::statement('ALTER TABLE charges MODIFY sweep_type int unsigned NOT NULL');
|
||
|
DB::statement('ALTER TABLE charges MODIFY type int unsigned NOT NULL');
|
||
|
DB::statement('ALTER TABLE charges MODIFY active tinyint(1) NOT NULL,MODIFY processed tinyint(1) DEFAULT NULL,MODIFY taxable tinyint(1) NOT NULL');
|
||
|
|
||
|
Schema::table('charges', function (Blueprint $table) {
|
||
|
$table->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');
|
||
|
}
|
||
|
};
|