use \Backpack\CRUD\app\Http\Controllers\Operations\BulkDeleteOperation;
use \App\Http\Controllers\Admin\Operations\ContentTranslate\ExcelExportOperation;
use \App\Http\Controllers\Admin\Operations\ContentTranslate\ExcelImportOperation;
-
+
/*
use \App\Http\Controllers\Admin\Operations\FluidbookPublication\EditOperation;
use \App\Http\Controllers\Admin\Operations\ChangeownerOperation;
use \App\Http\Controllers\Admin\Operations\ChangestatusOperation;
+ use \App\Http\Controllers\Admin\Operations\InvoiceOperation;
use \App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\SocialImageOperation;
use \App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\ExportPdfOperation;
use \App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\BastideOperation;
+++ /dev/null
-<?php
-
-namespace App\Http\Controllers\Admin\Operations\FluidbookPublication;
-
-use Illuminate\Support\Facades\Route;
-
-trait InvoiceOperation
-{
- protected function setupInvoiceRoutes($segment, $routeName, $controller)
- {
- Route::match(['get'], $segment . '/{id}/invoice', $controller . '@invoiceItem');
- }
-
- protected function setupInvoiceDefaults()
- {
- $this->crud->addButtonFromView('line', 'invoice', 'fluidbook_publication.invoice', 'end');
- }
-
- protected function invoiceItem($id)
- {
-
- }
-}
--- /dev/null
+<?php
+
+namespace App\Http\Controllers\Admin\Operations;
+
+use Illuminate\Support\Facades\Route;
+
+trait InvoiceOperation
+{
+ protected function setupInvoiceRoutes($segment, $routeName, $controller)
+ {
+ Route::match(['get'], $segment . '/{id}/invoice', $controller . '@invoiceItem');
+ }
+
+ protected function setupInvoiceDefaults()
+ {
+ $this->crud->addButtonFromView('line', 'invoice', 'invoice', 'end');
+ }
+
+ protected function invoiceItem($id)
+ {
+
+ }
+}
use \Backpack\CRUD\app\Http\Controllers\Operations\CloneOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
use \Cubist\Backpack\Http\Controllers\Operations\ReviseOperation;
+ use \App\Http\Controllers\Admin\Operations\QuizTheme\PreviewOperation;
+ use \App\Http\Controllers\Admin\Operations\ChangeownerOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\BulkDeleteOperation;
use \Cubist\Backpack\Http\Controllers\Operations\ReviseOperation;
+ use \App\Http\Controllers\Admin\Operations\ContentTranslate\ExcelExportOperation;
+ use \App\Http\Controllers\Admin\Operations\ContentTranslate\ExcelImportOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\DeleteOperation;
use \Backpack\CRUD\app\Http\Controllers\Operations\BulkDeleteOperation;
use \Cubist\Backpack\Http\Controllers\Operations\ReviseOperation;
+ use \App\Http\Controllers\Admin\Operations\ContentTranslate\ExcelExportOperation;
+ use \App\Http\Controllers\Admin\Operations\ContentTranslate\ExcelImportOperation;
__('traductions')
*/
- protected $_modelNamespace = 'App\Models\Base\ToolboxContentTranslate';
+ protected $_modelNamespace = 'App\Models\Base\ToolboxBaseTranslate';
protected $_routeURL = 'translate';
protected $_singular = 'traduction';
protected $_plural = 'traductions';
use App\Http\Controllers\Admin\Operations\FluidbookPublication\DeletefbOperation;
use App\Http\Controllers\Admin\Operations\FluidbookPublication\DownloadOperation;
use App\Http\Controllers\Admin\Operations\FluidbookPublication\EditOperation;
-use App\Http\Controllers\Admin\Operations\FluidbookPublication\InvoiceOperation;
use App\Http\Controllers\Admin\Operations\FluidbookPublication\LinksOperation;
use App\Http\Controllers\Admin\Operations\FluidbookPublication\PreviewOperation;
use App\Http\Controllers\Admin\Operations\FluidbookPublication\Services\BastideOperation;
use App\Http\Controllers\Admin\Operations\FluidbookPublication\StatsOperation;
use App\Http\Controllers\Admin\Operations\FluidbookPublication\UpgradeOperation;
use App\Http\Controllers\Admin\Operations\FluidbookPublication\YSLOperation;
+use App\Http\Controllers\Admin\Operations\InvoiceOperation;
use App\Jobs\FluidbookImagesPreprocess;
use App\Jobs\FluidbookSocialImage;
use App\Jobs\GenerateDeliveryThumbnailsPreview;
use App\Models\Traits\ToolboxSettings;
use App\Slack\Slack;
use App\SubForms\Link\Base;
+use Cubedesigners\UserDatabase\Permissions;
use Cubist\Backpack\Magic\Fields\Checkbox;
use Cubist\Backpack\Magic\Fields\FormBigSection;
use Cubist\Backpack\Magic\Fields\FormSuperSection;
$this->addField('extranet_task', FluidbookExtranetTask::class, __('Tâche de l\'extranet'), [
'can' => 'fluidbook-publication:admin',
- 'when' => ['status' => 3]
+ 'when' => ['status' => 3, 'invoicable_company' => ['values' => [7], 'operator' => '!=']]
]);
$this->addField('project_manager', FluidbookProjectManager::class, __('Chef de projet'), [
$this->addField('composition_updated_at', Datetime::class, __('Dernière modification de la composition'), ['read_only' => true]);
$this->addField('status_date', Datetime::class, __('Date de changement de status'), ['read_only' => true]);
$this->addField('version', Hidden::class, 'Version', ['column' => true, 'default' => 3, 'databaseDefault' => 3, 'column_label' => '<i class="las la-code-branch" title="' . __('Version du Fluidbook') . '"></i>']);
-
-
}
protected function _normalizeComposition($c)
throw new \Exception('User ' . $this->owner . ' should be assign to a company');
}
+ $invoicable_company_id = Permissions::getInvoicableCompany($owner->company);
+ $invoicable_company = Company::withoutGlobalScopes()->find($invoicable_company_id);
+
$this->admin = $company->admin;
- $this->super_admin = '';
+ $this->super_admin = $invoicable_company->admin;
$this->owner_company_name = $company->company_with_name;
$this->owner_name = $owner->name;
+ $this->invoicable_company = $invoicable_company_id;
} else {
Log::warning('Fluidbook ' . $this->id . ' has no owner : ' . $this->owner);
}
- $this->invoicable = '';
- $this->invoicable_company = '';
+
$this->extranet_project = '';
$this->c_title = $this->title;
+++ /dev/null
-{{-- __('!! Paramètres des fluidbooks') --}}
-@if($entry->status<3 && $entry->status>0 && $entry->canAdmin(backpack_user()))
-
- <a class="btn btn-sm btn-link" href="{{ route('stats', ['fluidbook_id' => $entry->id, 'hash' => $entry->hash]) }}"
- data-toggle="tooltip"
- title="{{__('Facturer')}}"><i class="las la-money-check-alt"></i> {{__('Facturer')}}
- </a>
-@endif
--- /dev/null
+{{-- __('!! Paramètres des fluidbooks') --}}
+@if($entry->status<3 && $entry->status>0 && $entry->canAdmin(backpack_user()))
+
+ <a class="btn btn-sm btn-link" class="invoice" href="#"
+ data-toggle="tooltip"
+ title="{{__('Facturer')}}"><i class="las la-money-check-alt"></i> {{__('Facturer')}}
+ </a>
+@endif
+
+
+@if(!isset($crud->seenInvoice))
+ @php
+ $crud->seenInvoice=true;
+ // $crud->ajaxOwnerList=\Cubist\Backpack\Magic\Fields\SelectFromArray::hashOptions($column['options']);
+ @endphp
+ <style>
+ .select2-dropdown {
+ z-index: 10000;
+ }
+ </style>
+ <script>
+ $(document).on('click', ".invoice", function () {
+ var a = $(this);
+ Swal.fire({
+ title: '{{__('Facturer')}}',
+ html: $(a).closest('span').find('.invoice_container').html(),
+ confirmButtonColor: '#467fcf',
+ confirmButtonText: '{{__('Valider')}}',
+ showCancelButton: true,
+ cancelButtonText: '{{__('Annuler')}}',
+ cancelButtonColor: '#f1ecec',
+ cancelButtonTextColor: '#000000',
+ focusConfirm: false,
+ didOpen: function () {
+ let select = $(Swal.getHtmlContainer()).find('select');
+ $(select).select2({
+ theme: 'bootstrap',
+ ajax: {
+ url: '{{backpack_url('select2')}}' + '/' + $(select).data('ajax'),
+ dataType: 'json'
+ },
+ escapeMarkup: function (m) {
+ return m;
+ }
+ });
+ },
+ didDestroy: function () {
+ let select = $(Swal.getHtmlContainer()).find('select');
+ $(select).select2('destroy');
+ },
+ }).then((result) => {
+ if (result.isConfirmed) {
+ let select = $(Swal.getHtmlContainer()).find('select');
+ window.location = '{{backpack_url($entry->getOption('name'))}}/' + $(a).data('entry-id') + '/invoice/' + select.val();
+ }
+ });
+ return false;
+ });
+ </script>
+@endif