Updated export routine.

This commit is contained in:
James Cole
2017-08-18 14:45:42 +02:00
parent 6666d1a2f4
commit b955486f14
11 changed files with 482 additions and 139 deletions

View File

@@ -17,6 +17,7 @@ namespace FireflyIII\Http\Controllers;
use Carbon\Carbon;
use ExpandedForm;
use FireflyIII\Exceptions\FireflyException;
use FireflyIII\Export\ExpandedProcessor;
use FireflyIII\Export\ProcessorInterface;
use FireflyIII\Http\Requests\ExportFormRequest;
use FireflyIII\Models\AccountType;
@@ -137,34 +138,40 @@ class ExportController extends Controller
public function postIndex(ExportFormRequest $request, AccountRepositoryInterface $repository, ExportJobRepositoryInterface $jobs)
{
$job = $jobs->findByKey($request->get('job'));
$accounts = $request->get('accounts') ?? [];
$settings = [
'accounts' => $repository->getAccountsById($request->get('accounts')),
'accounts' => $repository->getAccountsById($accounts),
'startDate' => new Carbon($request->get('export_start_range')),
'endDate' => new Carbon($request->get('export_end_range')),
'exportFormat' => $request->get('exportFormat'),
'includeAttachments' => intval($request->get('include_attachments')) === 1,
'includeOldUploads' => intval($request->get('include_old_uploads')) === 1,
'includeAttachments' => $request->boolean('include_attachments'),
'includeOldUploads' => $request->boolean('include_old_uploads'),
'job' => $job,
];
$jobs->changeStatus($job, 'export_status_make_exporter');
/** @var ProcessorInterface $processor */
$processor = app(ProcessorInterface::class);
$processor = app(ExpandedProcessor::class);
$processor->setSettings($settings);
/*
* Collect journals:
*/
$jobs->changeStatus($job, 'export_status_collecting_journals');
$processor->collectJournals();
$jobs->changeStatus($job, 'export_status_collected_journals');
/*
* Transform to exportable entries:
*/
$jobs->changeStatus($job, 'export_status_converting_to_export_format');
$processor->convertJournals();
$jobs->changeStatus($job, 'export_status_converted_to_export_format');
/*
* Transform to (temporary) file:
*/
@@ -180,6 +187,7 @@ class ExportController extends Controller
$jobs->changeStatus($job, 'export_status_collected_attachments');
}
/*
* Collect old uploads
*/

View File

@@ -38,20 +38,19 @@ class ExportFormRequest extends Request
public function rules()
{
$sessionFirst = clone session('first');
$first = $sessionFirst->subDay()->format('Y-m-d');
$today = Carbon::create()->addDay()->format('Y-m-d');
$formats = join(',', array_keys(config('firefly.export_formats')));
$first = $sessionFirst->subDay()->format('Y-m-d');
$today = Carbon::create()->addDay()->format('Y-m-d');
$formats = join(',', array_keys(config('firefly.export_formats')));
return [
'export_start_range' => 'required|date|after:' . $first,
'export_end_range' => 'required|date|before:' . $today,
'accounts' => 'required',
'job' => 'required|belongsToUser:export_jobs,key',
'accounts.*' => 'required|exists:accounts,id|belongsToUser:accounts',
'include_attachments' => 'in:0,1',
'include_config' => 'in:0,1',
'exportFormat' => 'in:' . $formats,
// 'export_start_range' => 'required|date|after:' . $first,
// 'export_end_range' => 'required|date|before:' . $today,
// 'accounts' => 'required',
// 'job' => 'required|belongsToUser:export_jobs,key',
// 'accounts.*' => 'required|exists:accounts,id|belongsToUser:accounts',
// 'include_attachments' => 'in:0,1',
// 'include_config' => 'in:0,1',
// 'exportFormat' => 'in:' . $formats,
];
}
}

View File

@@ -28,7 +28,7 @@ class Request extends FormRequest
*
* @return bool
*/
protected function boolean(string $field): bool
public function boolean(string $field): bool
{
return intval($this->input($field)) === 1;
}