209 |
209 |
return $self->js->render();
|
210 |
210 |
}
|
211 |
211 |
|
212 |
|
my $text = $self->type eq sales_order_intake_type() ? $::locale->text('The order intake has been deleted')
|
213 |
|
: $self->type eq sales_order_type() ? $::locale->text('The order confirmation has been deleted')
|
214 |
|
: $self->type eq purchase_order_type() ? $::locale->text('The order has been deleted')
|
215 |
|
: $self->type eq sales_quotation_type() ? $::locale->text('The quotation has been deleted')
|
216 |
|
: $self->type eq request_quotation_type() ? $::locale->text('The rfq has been deleted')
|
|
212 |
my $text = $self->type eq sales_order_intake_type() ? $::locale->text('The order intake has been deleted')
|
|
213 |
: $self->type eq sales_order_type() ? $::locale->text('The order confirmation has been deleted')
|
|
214 |
: $self->type eq purchase_order_type() ? $::locale->text('The order has been deleted')
|
|
215 |
: $self->type eq sales_quotation_type() ? $::locale->text('The quotation has been deleted')
|
|
216 |
: $self->type eq request_quotation_type() ? $::locale->text('The rfq has been deleted')
|
|
217 |
: $self->type eq purchase_quotation_intake_type() ? $::locale->text('The quotation intake has been deleted')
|
217 |
218 |
: '';
|
218 |
219 |
flash_later('info', $text);
|
219 |
220 |
|
... | ... | |
236 |
237 |
return $self->js->render();
|
237 |
238 |
}
|
238 |
239 |
|
239 |
|
my $text = $self->type eq sales_order_intake_type() ? $::locale->text('The order intake has been saved')
|
240 |
|
: $self->type eq sales_order_type() ? $::locale->text('The order confirmation has been saved')
|
241 |
|
: $self->type eq purchase_order_type() ? $::locale->text('The order has been saved')
|
242 |
|
: $self->type eq sales_quotation_type() ? $::locale->text('The quotation has been saved')
|
243 |
|
: $self->type eq request_quotation_type() ? $::locale->text('The rfq has been saved')
|
|
240 |
my $text = $self->type eq sales_order_intake_type() ? $::locale->text('The order intake has been saved')
|
|
241 |
: $self->type eq sales_order_type() ? $::locale->text('The order confirmation has been saved')
|
|
242 |
: $self->type eq purchase_order_type() ? $::locale->text('The order has been saved')
|
|
243 |
: $self->type eq sales_quotation_type() ? $::locale->text('The quotation has been saved')
|
|
244 |
: $self->type eq request_quotation_type() ? $::locale->text('The rfq has been saved')
|
|
245 |
: $self->type eq purchase_quotation_intake_type() ? $::locale->text('The quotation intake has been saved')
|
244 |
246 |
: '';
|
245 |
247 |
flash_later('info', $text);
|
246 |
248 |
|
... | ... | |
1713 |
1715 |
#
|
1714 |
1716 |
|
1715 |
1717 |
sub init_valid_types {
|
1716 |
|
[ sales_order_intake_type(), sales_order_type(), purchase_order_type(), sales_quotation_type(), request_quotation_type() ];
|
|
1718 |
[ sales_order_intake_type(), sales_order_type(), purchase_order_type(), sales_quotation_type(), request_quotation_type(), purchase_quotation_intake_type() ];
|
1717 |
1719 |
}
|
1718 |
1720 |
|
1719 |
1721 |
sub init_type {
|
... | ... | |
1729 |
1731 |
sub init_cv {
|
1730 |
1732 |
my ($self) = @_;
|
1731 |
1733 |
|
1732 |
|
my $cv = (any { $self->type eq $_ } (sales_order_intake_type(), sales_order_type(), sales_quotation_type())) ? 'customer'
|
1733 |
|
: (any { $self->type eq $_ } (purchase_order_type(), request_quotation_type())) ? 'vendor'
|
|
1734 |
my $cv = (any { $self->type eq $_ } (sales_order_intake_type(), sales_order_type(), sales_quotation_type())) ? 'customer'
|
|
1735 |
: (any { $self->type eq $_ } (purchase_order_type(), request_quotation_type(), purchase_quotation_intake_type())) ? 'vendor'
|
1734 |
1736 |
: die "Not a valid type for order";
|
1735 |
1737 |
|
1736 |
1738 |
return $cv;
|
... | ... | |
1790 |
1792 |
my ($self) = @_;
|
1791 |
1793 |
|
1792 |
1794 |
my $right_for = { map { $_ => $_.'_edit' . ' | ' . $_.'_view' } @{$self->valid_types} };
|
1793 |
|
$right_for->{ sales_order_intake_type() } = 'sales_order_edit | sales_order_view';
|
|
1795 |
$right_for->{ sales_order_intake_type() } = 'sales_order_edit | sales_order_view';
|
|
1796 |
$right_for->{ purchase_quotation_intake_type() } = 'request_quotation_edit | request_quotation_view';
|
1794 |
1797 |
|
1795 |
1798 |
my $right = $right_for->{ $self->type };
|
1796 |
1799 |
$right ||= 'DOES_NOT_EXIST';
|
... | ... | |
1802 |
1805 |
my ($self) = @_;
|
1803 |
1806 |
|
1804 |
1807 |
my $right_for = { map { $_ => $_.'_edit' } @{$self->valid_types} };
|
1805 |
|
$right_for->{ sales_order_intake_type() } = 'sales_order_edit';
|
|
1808 |
$right_for->{ sales_order_intake_type() } = 'sales_order_edit';
|
|
1809 |
$right_for->{ purchase_quotation_intake_type() } = 'request_quotation_edit';
|
1806 |
1810 |
|
1807 |
1811 |
my $right = $right_for->{ $self->type };
|
1808 |
1812 |
$right ||= 'DOES_NOT_EXIST';
|
... | ... | |
1952 |
1956 |
my $order;
|
1953 |
1957 |
$order = SL::DB::Order->new(id => $::form->{id})->load(with => [ 'orderitems', 'orderitems.part' ]) if $::form->{id};
|
1954 |
1958 |
$order ||= SL::DB::Order->new(orderitems => [],
|
1955 |
|
quotation => (any { $self->type eq $_ } (sales_quotation_type(), request_quotation_type())),
|
1956 |
|
intake => (any { $self->type eq $_ } (sales_order_intake_type())),
|
|
1959 |
quotation => (any { $self->type eq $_ } (sales_quotation_type(), request_quotation_type(), purchase_quotation_intake_type())),
|
|
1960 |
intake => (any { $self->type eq $_ } (sales_order_intake_type(), purchase_quotation_intake_type())),
|
1957 |
1961 |
currency_id => $::instance_conf->get_currency_id(),);
|
1958 |
1962 |
|
1959 |
1963 |
my $cv_id_method = $self->cv . '_id';
|
... | ... | |
2387 |
2391 |
sub setup_edit_action_bar {
|
2388 |
2392 |
my ($self, %params) = @_;
|
2389 |
2393 |
|
2390 |
|
my $deletion_allowed = (any { $self->type eq $_ } (sales_quotation_type(), request_quotation_type()))
|
|
2394 |
my $deletion_allowed = (any { $self->type eq $_ } (sales_quotation_type(), request_quotation_type(), purchase_quotation_intake_type()))
|
2391 |
2395 |
|| (($self->type eq sales_order_type()) && $::instance_conf->get_sales_order_show_delete)
|
2392 |
2396 |
|| (($self->type eq sales_order_intake_type()) && $::instance_conf->get_sales_order_show_delete)
|
2393 |
2397 |
|| (($self->type eq purchase_order_type()) && $::instance_conf->get_purchase_order_show_delete);
|
... | ... | |
2409 |
2413 |
|
2410 |
2414 |
my $right_for = { map { $_ => $_.'_edit' } @{$self->valid_types} };
|
2411 |
2415 |
$right_for->{ sales_order_intake_type() } = 'sales_order_edit';
|
|
2416 |
$right_for->{ purchase_quotation_intake_type() } = 'request_quotation_edit';
|
2412 |
2417 |
my $right = $right_for->{ $self->type };
|
2413 |
2418 |
$right ||= 'DOES_NOT_EXIST';
|
2414 |
2419 |
my $may_edit_create = $::auth->assert($right, 'may fail');
|
... | ... | |
2473 |
2478 |
t8('Save and Quotation'),
|
2474 |
2479 |
call => [ 'kivi.submit_ajax_form', $self->url_for(action => "save_and_order_workflow", to_type => sales_quotation_type()), '#order_form' ],
|
2475 |
2480 |
checks => [ @req_trans_cost_art, @req_cusordnumber ],
|
2476 |
|
only_if => (any { $self->type eq $_ } (sales_order_intake_type(), sales_order_type(), request_quotation_type())),
|
|
2481 |
only_if => (any { $self->type eq $_ } (sales_order_intake_type(), sales_order_type(), request_quotation_type(), purchase_quotation_intake_type())),
|
2477 |
2482 |
disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.') : undef,
|
2478 |
2483 |
],
|
2479 |
2484 |
action => [
|
... | ... | |
2482 |
2487 |
only_if => (any { $self->type eq $_ } (sales_order_intake_type(), sales_order_type(), sales_quotation_type(), purchase_order_type())),
|
2483 |
2488 |
disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.') : undef,
|
2484 |
2489 |
],
|
|
2490 |
action => [
|
|
2491 |
t8('Save and Purchase Quotation Intake'),
|
|
2492 |
call => [ 'kivi.submit_ajax_form', $self->url_for(action => "save_and_order_workflow", to_type => purchase_quotation_intake_type()), '#order_form' ],
|
|
2493 |
only_if => (any { $self->type eq $_ } (request_quotation_type())),
|
|
2494 |
disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.') : undef,
|
|
2495 |
],
|
2485 |
2496 |
action => [
|
2486 |
2497 |
t8('Save and Sales Order Intake'),
|
2487 |
2498 |
call => [ 'kivi.submit_ajax_form', $self->url_for(action => "save_and_order_workflow", to_type => sales_order_intake_type()), '#order_form' ],
|
... | ... | |
2492 |
2503 |
t8('Save and Sales Order Confirmation'),
|
2493 |
2504 |
call => [ 'kivi.submit_ajax_form', $self->url_for(action => "save_and_order_workflow", to_type => sales_order_type()), '#order_form' ],
|
2494 |
2505 |
checks => [ @req_trans_cost_art ],
|
2495 |
|
only_if => (any { $self->type eq $_ } (sales_quotation_type(), sales_order_intake_type(), request_quotation_type(), purchase_order_type())),
|
|
2506 |
only_if => (any { $self->type eq $_ } (sales_quotation_type(), sales_order_intake_type(), request_quotation_type(), purchase_order_type(), purchase_quotation_intake_type())),
|
2496 |
2507 |
disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.') : undef,
|
2497 |
2508 |
],
|
2498 |
2509 |
action => [
|
2499 |
2510 |
t8('Save and Purchase Order'),
|
2500 |
2511 |
call => [ 'kivi.Order.purchase_check_for_direct_delivery', { to_type => purchase_order_type() } ],
|
2501 |
2512 |
checks => [ @req_trans_cost_art, @req_cusordnumber ],
|
2502 |
|
only_if => (any { $self->type eq $_ } (sales_order_intake_type(), sales_order_type(), request_quotation_type())),
|
|
2513 |
only_if => (any { $self->type eq $_ } (sales_order_intake_type(), sales_order_type(), request_quotation_type(), purchase_quotation_intake_type())),
|
2503 |
2514 |
disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.') : undef,
|
2504 |
2515 |
],
|
2505 |
2516 |
action => [
|
... | ... | |
2553 |
2564 |
@req_trans_cost_art, @req_cusordnumber,
|
2554 |
2565 |
],
|
2555 |
2566 |
disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.') : undef,
|
2556 |
|
not_if => (any { $self->type eq $_ } (sales_order_intake_type())),
|
|
2567 |
not_if => (any { $self->type eq $_ } (sales_order_intake_type(), purchase_quotation_intake_type())),
|
2557 |
2568 |
],
|
2558 |
2569 |
action => [
|
2559 |
2570 |
($has_invoice_for_advance_payment ? t8('Save and Further Invoice for Advance Payment') : t8('Save and Invoice for Advance Payment')),
|
... | ... | |
2797 |
2808 |
# $::locale->text("Add Purchase Order");
|
2798 |
2809 |
# $::locale->text("Add Quotation");
|
2799 |
2810 |
# $::locale->text("Add Request for Quotation");
|
|
2811 |
# $::locale->text("Add Purchase Quotation Intake");
|
2800 |
2812 |
# $::locale->text("Edit Sales Order Intake");
|
2801 |
2813 |
# $::locale->text("Edit Sales Order");
|
2802 |
2814 |
# $::locale->text("Edit Purchase Order");
|
2803 |
2815 |
# $::locale->text("Edit Quotation");
|
2804 |
2816 |
# $::locale->text("Edit Request for Quotation");
|
|
2817 |
# $::locale->text("Edit Purchase Quotation Intake");
|
2805 |
2818 |
|
2806 |
2819 |
$action = ucfirst(lc($action));
|
2807 |
|
return $self->type eq sales_order_intake_type() ? $::locale->text("$action Sales Order Intake")
|
2808 |
|
: $self->type eq sales_order_type() ? $::locale->text("$action Sales Order")
|
2809 |
|
: $self->type eq purchase_order_type() ? $::locale->text("$action Purchase Order")
|
2810 |
|
: $self->type eq sales_quotation_type() ? $::locale->text("$action Quotation")
|
2811 |
|
: $self->type eq request_quotation_type() ? $::locale->text("$action Request for Quotation")
|
|
2820 |
return $self->type eq sales_order_intake_type() ? $::locale->text("$action Sales Order Intake")
|
|
2821 |
: $self->type eq sales_order_type() ? $::locale->text("$action Sales Order")
|
|
2822 |
: $self->type eq purchase_order_type() ? $::locale->text("$action Purchase Order")
|
|
2823 |
: $self->type eq sales_quotation_type() ? $::locale->text("$action Quotation")
|
|
2824 |
: $self->type eq request_quotation_type() ? $::locale->text("$action Request for Quotation")
|
|
2825 |
: $self->type eq purchase_quotation_intake_type() ? $::locale->text("$action Purchase Quotation Intake")
|
2812 |
2826 |
: '';
|
2813 |
2827 |
}
|
2814 |
2828 |
|
... | ... | |
2906 |
2920 |
'request_quotation';
|
2907 |
2921 |
}
|
2908 |
2922 |
|
|
2923 |
sub purchase_quotation_intake_type {
|
|
2924 |
'purchase_quotation_intake';
|
|
2925 |
}
|
|
2926 |
|
2909 |
2927 |
sub nr_key {
|
2910 |
|
return $_[0]->type eq sales_order_intake_type() ? 'ordnumber'
|
2911 |
|
: $_[0]->type eq sales_order_type() ? 'ordnumber'
|
2912 |
|
: $_[0]->type eq purchase_order_type() ? 'ordnumber'
|
2913 |
|
: $_[0]->type eq sales_quotation_type() ? 'quonumber'
|
2914 |
|
: $_[0]->type eq request_quotation_type() ? 'quonumber'
|
|
2928 |
return $_[0]->type eq sales_order_intake_type() ? 'ordnumber'
|
|
2929 |
: $_[0]->type eq sales_order_type() ? 'ordnumber'
|
|
2930 |
: $_[0]->type eq purchase_order_type() ? 'ordnumber'
|
|
2931 |
: $_[0]->type eq sales_quotation_type() ? 'quonumber'
|
|
2932 |
: $_[0]->type eq request_quotation_type() ? 'quonumber'
|
|
2933 |
: $_[0]->type eq purchase_quotation_intake_type() ? 'quonumber'
|
2915 |
2934 |
: '';
|
2916 |
2935 |
}
|
2917 |
2936 |
|
... | ... | |
2925 |
2944 |
return $self->js->render();
|
2926 |
2945 |
}
|
2927 |
2946 |
|
2928 |
|
my $text = $self->type eq sales_order_intake_type() ? $::locale->text('The order intake has been saved')
|
2929 |
|
: $self->type eq sales_order_type() ? $::locale->text('The order confirmation has been saved')
|
2930 |
|
: $self->type eq purchase_order_type() ? $::locale->text('The order has been saved')
|
2931 |
|
: $self->type eq sales_quotation_type() ? $::locale->text('The quotation has been saved')
|
2932 |
|
: $self->type eq request_quotation_type() ? $::locale->text('The rfq has been saved')
|
|
2947 |
my $text = $self->type eq sales_order_intake_type() ? $::locale->text('The order intake has been saved')
|
|
2948 |
: $self->type eq sales_order_type() ? $::locale->text('The order confirmation has been saved')
|
|
2949 |
: $self->type eq purchase_order_type() ? $::locale->text('The order has been saved')
|
|
2950 |
: $self->type eq sales_quotation_type() ? $::locale->text('The quotation has been saved')
|
|
2951 |
: $self->type eq request_quotation_type() ? $::locale->text('The rfq has been saved')
|
|
2952 |
: $self->type eq purchase_quotation_intake_type() ? $::locale->text('The quotation intake has been saved')
|
2933 |
2953 |
: '';
|
2934 |
2954 |
flash_later('info', $text);
|
2935 |
2955 |
|
Angebots-Eingang: Controller