Revision 614c48e0
Von Moritz Bunkus vor fast 6 Jahren hinzugefügt
SL/Controller/Project.pm | ||
---|---|---|
12 | 12 |
use SL::CVar; |
13 | 13 |
use SL::DB::Customer; |
14 | 14 |
use SL::DB::DeliveryOrder; |
15 |
use SL::DB::Employee; |
|
15 | 16 |
use SL::DB::Invoice; |
16 | 17 |
use SL::DB::Order; |
17 | 18 |
use SL::DB::Project; |
... | ... | |
29 | 30 |
use Rose::Object::MakeMethods::Generic |
30 | 31 |
( |
31 | 32 |
scalar => [ qw(project) ], |
32 |
'scalar --get_set_init' => [ qw(models customers project_types project_statuses projects linked_records) ], |
|
33 |
'scalar --get_set_init' => [ qw(models customers project_types project_statuses projects linked_records employees may_edit_invoice_permissions) ],
|
|
33 | 34 |
); |
34 | 35 |
|
35 | 36 |
__PACKAGE__->run_before('check_auth', except => [ qw(ajax_autocomplete) ]); |
36 | 37 |
__PACKAGE__->run_before('load_project', only => [ qw(edit update destroy) ]); |
38 |
__PACKAGE__->run_before('use_multiselect_js', only => [ qw(new create edit update) ]); |
|
37 | 39 |
|
38 | 40 |
# |
39 | 41 |
# actions |
... | ... | |
166 | 168 |
|
167 | 169 |
sub init_project_statuses { SL::DB::Manager::ProjectStatus->get_all_sorted } |
168 | 170 |
sub init_project_types { SL::DB::Manager::ProjectType->get_all_sorted } |
171 |
sub init_employees { SL::DB::Manager::Employee->get_all_sorted } |
|
172 |
sub init_may_edit_invoice_permissions { $::auth->assert('project_edit_view_invoices_permission', 1) } |
|
169 | 173 |
|
170 | 174 |
sub init_linked_records { |
171 | 175 |
my ($self) = @_; |
... | ... | |
223 | 227 |
return SL::DB::Manager::Customer->get_all_sorted(where => [ or => [ obsolete => 0, obsolete => undef, @customer_id ]]); |
224 | 228 |
} |
225 | 229 |
|
230 |
sub use_multiselect_js { |
|
231 |
$::request->layout->use_javascript("${_}.js") for qw(jquery.selectboxes jquery.multiselect2side); |
|
232 |
} |
|
233 |
|
|
226 | 234 |
sub display_form { |
227 | 235 |
my ($self, %params) = @_; |
228 | 236 |
|
... | ... | |
246 | 254 |
my $is_new = !$self->project->id; |
247 | 255 |
my $params = delete($::form->{project}) || { }; |
248 | 256 |
|
257 |
if (!$self->may_edit_invoice_permissions) { |
|
258 |
delete $params->{employee_invoice_permissions}; |
|
259 |
} elsif (!$params->{employee_invoice_permissions}) { |
|
260 |
$params->{employee_invoice_permissions} = []; |
|
261 |
} |
|
262 |
|
|
249 | 263 |
delete $params->{id}; |
250 | 264 |
$self->project->assign_attributes(%{ $params }); |
251 | 265 |
|
Auch abrufbar als: Unified diff
Berechtigung, Verkaufsrechnungen persönlich zugeordneter Projekte einzusehen
Man kann nun Mitarbeiter*innen zu Projekten zuordnen, indem man sie in
den Projektstammdaten hinzufügt.
Ist eine Mitarbeiter*in zu einem Projekt zugeordnet, so darf sie alle
Rechnungen ansehen, die über die Projektnummer der Rechnung (nicht der
Positionen) dem Projekt zugeordnet sind, auch dann, wenn sie nicht das
allgemeine Recht zum Erstellen und Ansehen von Rechnungen hat.
Verändern oder Ausdrucken der Rechnungen ist nicht gestattet.
Die Verwaltung dieser Projektberechtigungen ist über ein neues
Gruppenrecht eingeschränkt.
Betrifft Verkaufsrechnungen, Verkaufsgutschriften und Debitorenbuchungen.