Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 3b31aeed

Von Moritz Bunkus vor etwa 2 Jahren hinzugefügt

  • ID 3b31aeed8d551ef3d67015cbec4430f3287d7c28
  • Vorgänger 46282860
  • Nachfolger dc9a8544

Lieferantenauftrag→Einkaufslieferschein: optional nur mit ausgewählten Positionen

Unterschiede anzeigen:

SL/Controller/Order.pm
sub action_save_and_delivery_order {
my ($self) = @_;
my %params;
if ($::form->{convert_to_purchase_delivery_order_selected_items_only}) {
$params{only_items} = join(',', @{ $::form->{purchase_delivery_order_item_selection_indexes} || [] });
}
$self->save_and_redirect_to(
controller => 'oe.pl',
action => 'oe_delivery_order_from_order',
%params,
);
}
......
only_if => (any { $self->type eq $_ } (sales_order_type(), purchase_order_type())),
disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.') : undef,
],
action => [
t8('Save and Delivery Order with item selection'),
call => [ 'kivi.Order.convert_to_purchase_delivery_order_select_items',
{ action => 'save_and_delivery_order',
warn_on_duplicates => $::instance_conf->get_order_warn_duplicate_parts,
warn_on_reqdate => $::instance_conf->get_order_warn_no_deliverydate },
],
checks => [ @req_trans_cost_art, @req_cusordnumber ],
only_if => (any { $self->type eq $_ } (purchase_order_type())),
disabled => !$may_edit_create ? t8('You do not have the permissions to access this function.') : undef,
],
action => [
t8('Save and Supplier Delivery Order'),
call => [ 'kivi.Order.save', { action => 'save_and_supplier_delivery_order',
bin/mozilla/oe.pl
return if !$::form->{id};
my $order = SL::DB::Order->new(id => $::form->{id})->load;
if (exists $::form->{only_items}) {
my @wanted_indexes = sort { $a <=> $b } map { $_ - 1 } split(",", $::form->{only_items} // "");
my @items = $order->items;
@items = @items[@wanted_indexes];
$order->items(\@items);
}
$order->flatten_to_form($::form, format_amounts => 1);
$::form->{taxincluded_changed_by_user} = 1;
js/kivi.Order.js
data.push({ name: 'action', value: 'Order/' + action });
if (back_to_caller) data.push({ name: 'back_to_caller', value: '1' });
if (params.convert_to_purchase_delivery_order_selected_items_only) data.push({ name: 'convert_to_purchase_delivery_order_selected_items_only', value: '1' });
$.post("controller.pl", data, kivi.eval_json_result);
};
......
window.open("controller.pl?action=CustomerVendor/edit&db=" + encodeURIComponent(db) + "&id=" + encodeURIComponent($(id_selector).val()), '_blank');
};
ns.convert_to_purchase_delivery_order_select_items = function(params) {
$("#purchase_delivery_order_item_selection_checkall").attr("checked", "checked");
var $src = $("#row_table_id");
var $dest = $("#convert_to_purchase_delivery_order_item_selection_items");
$dest.data("params", params);
$dest.empty();
$("#row_table_id tbody>tr:first-child").each(function(idx, tr) {
const $row = $(tr);
const partnumber = $row.find("div[name=partnumber]").text().replaceAll(" ", "");
const description = $row.find("input[name='order.orderitems[].description']").val();
const qty = $row.find("input[name='order.orderitems[].qty_as_number']").val();
const unit = $row.find("select[name='order.orderitems[].unit']").val();
var html =
"<tr class=\"listrow\">" +
" <td><input type=\"checkbox\" name=\"purchase_delivery_order_item_selection_indexes[+]\" class=\"purchase_delivery_order_item_selection_checkall\" value=\"" + (idx + 1) + "\" checked=\"checked\"></td>" +
" <td align=\"right\" class=\"numeric\">" + (idx + 1) + "</td>" +
" <td>" + partnumber + "</td>" +
" <td>" + description + "</td>" +
" <td align=\"right\" class=\"numeric\">" + qty + "</td>" +
" <td>" + unit + "</td>" +
"</tr>";
$dest.append(html);
});
kivi.popup_dialog({
id: "convert_to_purchase_delivery_order_item_selection",
dialog: {
title: kivi.t8("Select items for delivery order"),
}
});
};
ns.convert_to_purchase_delivery_order = function() {
var $dlg = $("#convert_to_purchase_delivery_order_item_selection");
$dlg.dialog('close');
var params = $("#convert_to_purchase_delivery_order_item_selection_items").data("params");
params.convert_to_purchase_delivery_order_selected_items_only = 1;
$dlg.remove();
$('#order_form').append($dlg);
kivi.Order.save(params);
};
});
$(function() {
js/locale/de.js
"Save and keep open":"Speichern und geöffnet lassen",
"Section/Function block actions":"Abschnitts-/Funktionsblockaktionen",
"Select from preset":"Aus Voreinstellung wählen",
"Select items for delivery order":"Positionen für Lieferschein auswählen",
"Select template to paste":"Einzufügende Vorlage auswählen",
"Send email":"E-Mail verschicken",
"Sep":"Sep",
locale/de/all
'Create bank transfer via SEPA XML' => 'Überweisung via SEPA XML erzeugen',
'Create customers and vendors. Edit all vendors. Edit all customers' => 'Kunden und Lieferanten erfassen. Alle Lieferanten bearbeiten. Alle Kunden bearbeiten',
'Create customers and vendors. Edit all vendors. Edit only customers where salesman equals employee (login)' => 'Kunden und Lieferanten erfassen. Alle Lieferanten bearbeiten. Nur Kunden bearbeiten bei denen der Verkäufer gleich Bearbeiter (login) ist',
'Create delivery order' => 'Lieferschein erstellen',
'Create first invoice on' => 'Erste Rechnung erzeugen am',
'Create invoice' => 'Buchung erstellen',
'Create invoice?' => 'Rechnung erstellen?',
......
'Save and Close' => 'Speichern und schließen',
'Save and Credit Note' => 'Speichern und Gutschrift erfassen',
'Save and Delivery Order' => 'Speichern und Lieferschein',
'Save and Delivery Order with item selection' => 'Speichern und Lieferschein mit Positionsauswahl',
'Save and E-mail' => 'Speichern und E-Mail',
'Save and Final Invoice' => 'Speichern und Schlussrechnung',
'Save and Further Invoice for Advance Payment' => 'Speichern und weitere Anzahlungsrechnung',
......
'Select file to upload' => 'Datei zum Hochladen auswählen',
'Select from one of the items below' => 'Wählen Sie einen der untenstehenden Einträge',
'Select from preset' => 'Aus Voreinstellung wählen',
'Select items for delivery order' => 'Positionen für Lieferschein auswählen',
'Select postscript or PDF!' => 'Postscript oder PDF auswählen!',
'Select tax office...' => 'Finanzamt auswählen...',
'Select template to paste' => 'Einzufügende Vorlage auswählen',
templates/design40_webpages/order/form.html
</div>
</div><!-- /.tabwidget -->
[% IF SELF.order.id && (FORM.type == 'purchase_order') %]
[%- PROCESS 'order/tabs/_purchase_delivery_order_item_selection.html' %]
[% END %]
</form>
templates/design40_webpages/order/tabs/_purchase_delivery_order_item_selection.html
[%- USE LxERP -%][%- USE L -%]
<div id="convert_to_purchase_delivery_order_item_selection">
<div class="wrapper">
[% L.button_tag("kivi.Order.convert_to_purchase_delivery_order()", LxERP.t8("Create delivery order")) %]
</div>
<div class="wrapper">
<table class="tbl-list">
<thead>
<tr class="listheading">
<th>[% L.checkbox_tag("purchase_delivery_order_item_selection_checkall", checkall="input.purchase_delivery_order_item_selection_checkall") %]</th>
<th>[% LxERP.t8("Position") %]</th>
<th>[% LxERP.t8("Partnumber") %]</th>
<th>[% LxERP.t8("Description") %]</th>
<th>[% LxERP.t8("Qty") %]</th>
<th>[% LxERP.t8("Unit") %]</th>
</tr>
</thead>
<tbody id="convert_to_purchase_delivery_order_item_selection_items" class="row_entry listrow">
</tbody>
</table>
</div>
</div>
templates/webpages/order/form.html
</div>
[% IF SELF.order.id && (FORM.type == 'purchase_order') %]
[%- PROCESS 'order/tabs/_purchase_delivery_order_item_selection.html' %]
[% END %]
</form>
templates/webpages/order/tabs/_purchase_delivery_order_item_selection.html
[%- USE LxERP -%][%- USE L -%]
<div id="convert_to_purchase_delivery_order_item_selection">
<div>
[% L.button_tag("kivi.Order.convert_to_purchase_delivery_order()", LxERP.t8("Create delivery order")) %]
</div>
<div>
<table>
<thead>
<tr class="listheading">
<th>[% L.checkbox_tag("purchase_delivery_order_item_selection_checkall", checkall="input.purchase_delivery_order_item_selection_checkall") %]</th>
<th>[% LxERP.t8("Position") %]</th>
<th>[% LxERP.t8("Partnumber") %]</th>
<th>[% LxERP.t8("Description") %]</th>
<th>[% LxERP.t8("Qty") %]</th>
<th>[% LxERP.t8("Unit") %]</th>
</tr>
</thead>
<tbody id="convert_to_purchase_delivery_order_item_selection_items">
<tr class="listrow">
<td>[% L.checkbox_tag("purchase_delivery_order_item_selection_indexes[+]", class="purchase_delivery_order_item_selection_checkall", value="42", checked="checked") %]</td>
<td>1</td>
<td align="right">4</td>
<td>Moo Cow Chunky Bacon</td>
<td align="right">17,5</td>
<td>Kuh</td>
</tr>
</tbody>
</table>
</div>
</div>

Auch abrufbar als: Unified diff