diff --git a/.gitignore b/.gitignore index 5bc74ae5bab7..4d560453dee1 100644 --- a/.gitignore +++ b/.gitignore @@ -4,7 +4,6 @@ /app/config/ubuntu /app/config/packages/anahkiasen/rocketeer/ /app/storage -/public/logo /public/build /public/vendor /bootstrap/compiled.php diff --git a/app/controllers/AccountController.php b/app/controllers/AccountController.php index 3c7b057e4915..f752f97716ea 100755 --- a/app/controllers/AccountController.php +++ b/app/controllers/AccountController.php @@ -70,9 +70,73 @@ class AccountController extends \BaseController { $account = Auth::user()->account; - $client = new Client; + $ninjaAccount = $this->getNinjaAccount(); + $ninjaClient = $this->getNinjaClient($ninjaAccount); + + } + + private function getNinjaAccount() + { + $account = Account::whereAccountKey(NINJA_ACCOUNT_KEY)->first(); + + if ($account) + { + return $account; + } + else + { + $account = new Account(); + $account->name = 'Invoice Ninja'; + $account->work_email = 'contact@invoiceninja.com'; + $account->work_phone = '(800) 763-1948'; + $account->account_key = NINJA_ACCOUNT_KEY; + $account->save(); + + $random = str_random(RANDOM_KEY_LENGTH); + + $user = new User(); + $user->email = 'contact@invoiceninja.com'; + $user->password = $random; + $user->password_confirmation = $random; + $user->username = $random; + $user->notify_sent = false; + $user->notify_paid = false; + $account->users()->save($user); + } + + return $account; + } + + private function getNinjaClient($ninjaAccount) + { + $client = Client::whereAccountId($ninjaAccount->id)->wherePublicId(Auth::user()->account_id)->first(); + + if ($client) + { + return $client; + } + else + { + $client = new Client; + $client->public_id = Auth::user()->account_id; + $client->user_id = $ninjaAccount->users()->first()->id; + foreach (['name', 'address1', 'address2', 'city', 'state', 'postal_code', 'country_id', 'work_phone'] as $field) + { + $client->$field = Auth::user()->account->$field; + } + $ninjaAccount->clients()->save($client); + + $contact = new Contact; + $contact->user_id = $ninjaAccount->users()->first()->id; + $contact->is_primary = true; + foreach (['first_name', 'last_name', 'email', 'phone'] as $field) + { + $contact->$field = Auth::user()->$field; + } + $client->contacts()->save($contact); + } } public function setTrashVisible($entityType, $visible) diff --git a/app/database/migrations/2014_04_03_191105_add_pro_plan.php b/app/database/migrations/2014_04_03_191105_add_pro_plan.php index 6cfc4dc96de4..05f74ebdf40b 100644 --- a/app/database/migrations/2014_04_03_191105_add_pro_plan.php +++ b/app/database/migrations/2014_04_03_191105_add_pro_plan.php @@ -14,7 +14,7 @@ class AddProPlan extends Migration { { Schema::table('accounts', function($table) { - $table->timestamp('pro_plan_paid'); + $table->date('pro_plan_paid'); }); } diff --git a/app/models/User.php b/app/models/User.php index 70e99e283a49..caa76ec1ed00 100755 --- a/app/models/User.php +++ b/app/models/User.php @@ -111,7 +111,18 @@ class User extends ConfideUser implements UserInterface, RemindableInterface return false; } - return $this->account->pro_plan_paid; + $datePaid = $this->account->pro_plan_paid; + + if (!$datePaid || $datePaid == '0000-00-00') + { + return false; + } + + $today = new DateTime('now'); + $datePaid = DateTime::createFromFormat('Y-m-d', $datePaid); + $interval = $today->diff($datePaid); + + return $interval->y == 0; } public function showGreyBackground() diff --git a/app/routes.php b/app/routes.php index b29b32147730..0ed60c8c673a 100755 --- a/app/routes.php +++ b/app/routes.php @@ -1,6 +1,5 @@