Working on time tracker

This commit is contained in:
Hillel Coren 2017-09-27 14:48:41 +03:00
parent ab1d960202
commit 239a7ee788

View File

@ -8,6 +8,8 @@ use App\Ninja\Repositories\ExpenseRepository;
use App\Ninja\Repositories\InvoiceRepository; use App\Ninja\Repositories\InvoiceRepository;
use App\Ninja\Repositories\PaymentRepository; use App\Ninja\Repositories\PaymentRepository;
use App\Ninja\Repositories\VendorRepository; use App\Ninja\Repositories\VendorRepository;
use App\Ninja\Repositories\TaskRepository;
use App\Ninja\Repositories\ProjectRepository;
use App\Models\Client; use App\Models\Client;
use App\Models\TaxRate; use App\Models\TaxRate;
use App\Models\Project; use App\Models\Project;
@ -44,6 +46,7 @@ class CreateTestData extends Command
* @param PaymentRepository $paymentRepo * @param PaymentRepository $paymentRepo
* @param VendorRepository $vendorRepo * @param VendorRepository $vendorRepo
* @param ExpenseRepository $expenseRepo * @param ExpenseRepository $expenseRepo
* @param TaskRepository $taskRepo
* @param AccountRepository $accountRepo * @param AccountRepository $accountRepo
*/ */
public function __construct( public function __construct(
@ -52,6 +55,8 @@ class CreateTestData extends Command
PaymentRepository $paymentRepo, PaymentRepository $paymentRepo,
VendorRepository $vendorRepo, VendorRepository $vendorRepo,
ExpenseRepository $expenseRepo, ExpenseRepository $expenseRepo,
TaskRepository $taskRepo,
ProjectRepository $projectRepo,
AccountRepository $accountRepo) AccountRepository $accountRepo)
{ {
parent::__construct(); parent::__construct();
@ -63,6 +68,8 @@ class CreateTestData extends Command
$this->paymentRepo = $paymentRepo; $this->paymentRepo = $paymentRepo;
$this->vendorRepo = $vendorRepo; $this->vendorRepo = $vendorRepo;
$this->expenseRepo = $expenseRepo; $this->expenseRepo = $expenseRepo;
$this->taskRepo = $taskRepo;
$this->projectRepo = $projectRepo;
$this->accountRepo = $accountRepo; $this->accountRepo = $accountRepo;
} }
@ -126,6 +133,7 @@ class CreateTestData extends Command
$this->createInvoices($client); $this->createInvoices($client);
$this->createInvoices($client, true); $this->createInvoices($client, true);
$this->createTasks($client);
} }
} }
@ -176,6 +184,31 @@ class CreateTestData extends Command
$this->info('Payment: ' . $payment->amount); $this->info('Payment: ' . $payment->amount);
} }
private function createTasks($client)
{
$data = [
'client_id' => $client->id,
'name' => $this->faker->sentence(10),
];
$project = $this->projectRepo->save($data);
for ($i = 0; $i < $this->count; $i++) {
$startTime = date_create()->modify(rand(-100, 100) . ' days')->format('U');
$endTime = $startTime + (60 * 60 * 2);
$timeLog = "[[{$startTime},{$endTime}]]";
$data = [
'client_id' => $client->id,
'project_id' => $project->id,
'description' => $this->faker->text($this->faker->numberBetween(50, 300)),
'time_log' => $timeLog,
];
$this->taskRepo->save(false, $data);
}
}
private function createVendors() private function createVendors()
{ {
for ($i = 0; $i < $this->count; $i++) { for ($i = 0; $i < $this->count; $i++) {