Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 07dd84c0

Von Bernd Bleßmann vor etwa 7 Jahren hinzugefügt

  • ID 07dd84c04c1208d618ff007afaa24ad0074add31
  • Vorgänger fdebfd5d
  • Nachfolger 78e36cfd

Auftrags-Controller: Workflow -> Rechnung (Speichern und Rechnung erfassen)

Unterschiede anzeigen:

SL/Controller/Order.pm
__PACKAGE__->run_before('_check_auth');
__PACKAGE__->run_before('_recalc',
only => [ qw(save save_and_delivery_order print create_pdf send_email) ]);
only => [ qw(save save_and_delivery_order save_and_invoice print create_pdf send_email) ]);
__PACKAGE__->run_before('_get_unalterable_data',
only => [ qw(save save_and_delivery_order print create_pdf send_email) ]);
only => [ qw(save save_and_delivery_order save_and_invoice print create_pdf send_email) ]);
#
# actions
......
$self->redirect_to(@redirect_params);
}
# save the order and redirect to the frontend subroutine for a new
# invoice
sub action_save_and_invoice {
my ($self) = @_;
my $errors = $self->_save();
if (scalar @{ $errors }) {
$self->js->flash('error', $_) foreach @{ $errors };
return $self->js->render();
}
flash_later('info', $::locale->text('The order has been saved'));
my @redirect_params = (
controller => 'oe.pl',
action => 'oe_invoice_from_order',
id => $self->order->id,
);
$self->redirect_to(@redirect_params);
}
# set form elements in respect to a changed customer or vendor
#
# This action is called on an change of the customer/vendor picker.
......
t8('Save and Delivery Order'),
call => [ 'kivi.Order.save_and_delivery_order', $::instance_conf->get_order_warn_duplicate_parts ],
],
action => [
t8('Save and Invoice'),
call => [ 'kivi.Order.save_and_invoice', $::instance_conf->get_order_warn_duplicate_parts ],
],
], # end of combobox "Save"
......
=item * credit limit
=item * more workflows (save as new / invoice)
=item * more workflows (save as new, quotation, purchase order)
=item * price sources: little symbols showing better price / better discount
......
A warning when leaving the page without saveing unchanged inputs.
=item *
Workflows for delivery order and invoice are in the menu "Save", because the
order is saved before opening the new document form. Nevertheless perhaps these
workflow buttons should be put under "Workflows".
=back
=head1 AUTHOR
bin/mozilla/oe.pl
delivery_order();
}
sub oe_invoice_from_order {
return if !$::form->{id};
my $order = SL::DB::Order->new(id => $::form->{id})->load;
$order->flatten_to_form($::form, format_amounts => 1);
# fake last empty row
$::form->{rowcount}++;
invoice();
}
sub yes {
call_sub($main::form->{yes_nextsub});
}
js/kivi.Order.js
$.post("controller.pl", data, kivi.eval_json_result);
};
ns.save_and_invoice = function(warn_on_duplicates) {
if (!ns.check_cv()) return;
if (warn_on_duplicates && !ns.check_save_duplicate_parts()) return;
var data = $('#order_form').serializeArray();
data.push({ name: 'action', value: 'Order/save_and_invoice' });
$.post("controller.pl", data, kivi.eval_json_result);
};
ns.delete_order = function() {
var data = $('#order_form').serializeArray();
data.push({ name: 'action', value: 'Order/delete' });

Auch abrufbar als: Unified diff