Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision c4d3f82d

Von Moritz Bunkus vor etwa 8 Jahren hinzugefügt

  • ID c4d3f82d744113e520282409454f4cc763e012cc
  • Vorgänger 5ab937c5
  • Nachfolger e9775242

Kontoauszug verbuchen: »Beleg«/»Memo« bei Vorschlägen angeben können

Unterschiede anzeigen:

SL/Controller/BankTransaction.pm
push @{ $self->problems }, $self->save_single_bank_transaction(
bank_transaction_id => $bank_transaction_id,
invoice_ids => $invoice_ids,
sources => ($::form->{sources} // {})->{$_},
memos => ($::form->{memos} // {})->{$_},
);
$count += scalar( @{$invoice_ids} );
}
......
sub action_save_proposals {
my ($self) = @_;
if ( $::form->{proposal_ids} ) {
my $propcount = scalar(@{ $::form->{proposal_ids} });
if ( $propcount > 0 ) {
......
my $n_invoices = 0;
foreach my $invoice (@{ $data{invoices} }) {
my $source = ($data{sources} // [])->[$n_invoices];
my $memo = ($data{memos} // [])->[$n_invoices];
$n_invoices++ ;
......
trans_id => $invoice->id,
amount => $open_amount,
payment_type => $payment_type,
source => $source,
memo => $memo,
transdate => $bank_transaction->transdate->to_kivitendo);
} elsif ( $invoice->is_sales && $invoice->type eq 'credit_note' ) {
# no check for overpayment/multiple payments
......
trans_id => $invoice->id,
amount => $invoice->open_amount,
payment_type => $payment_type,
source => $source,
memo => $memo,
transdate => $bank_transaction->transdate->to_kivitendo);
} else { # use the whole amount of the bank transaction for the invoice, overpay the invoice if necessary
my $overpaid_amount = $amount_of_transaction - $invoice->open_amount;
......
trans_id => $invoice->id,
amount => $amount_of_transaction,
payment_type => $payment_type,
source => $source,
memo => $memo,
transdate => $bank_transaction->transdate->to_kivitendo);
$bank_transaction->invoice_amount($bank_transaction->amount);
$amount_of_transaction = 0;
SL/DB/Helper/Payment.pm
my $reference_account = $self->reference_account;
croak "can't find reference account (link = AR/AP) for invoice" unless ref $reference_account;
my $memo = $params{'memo'} || '';
my $source = $params{'source'} || '';
my $memo = $params{memo} // '';
my $source = $params{source} // '';
my $rounded_params_amount = _round( $params{amount} ); # / $exchangerate);
my $fx_gain_loss_amount = 0; # for fx_gain and fx_loss
js/kivi.BankTransaction.js
$.cookie('jquery_ui_tab_bt_tabs', ui_tab);
};
ns.show_set_all_sources_memos_dialog = function(sources_selector, memos_selector) {
var dlg_id = 'set_all_sources_memos_dialog';
var $dlg = $('#' + dlg_id);
$dlg.data('sources-selector', sources_selector);
$dlg.data('memos-selector', memos_selector);
$('#set_all_sources').val('');
$('#set_all_memos').val('');
kivi.popup_dialog({
id: dlg_id,
dialog: {
title: kivi.t8('Set all source and memo fields')
}
});
};
ns.set_all_sources_memos = function(sources_selector, memos_selector) {
var $dlg = $('#set_all_sources_memos_dialog');
['sources', 'memos'].forEach(function(type) {
var value = $('#set_all_' + type).val();
if (value !== '')
$($dlg.data(type + '-selector')).each(function(idx, input) {
$(input).val(value);
});
});
$dlg.dialog('close');
};
});
js/locale/de.js
"Save and keep open":"Speichern und geöffnet lassen",
"Section/Function block actions":"Abschnitts-/Funktionsblockaktionen",
"Select template to paste":"Einzufügende Vorlage auswählen",
"Set all source and memo fields":"Alle Beleg-/Memo-Felder setzen",
"Show all details":"Alle Details anzeigen",
"Show details":"Details anzeigen",
"Subject":"Betreff",
locale/de/all
'Service, assembly or part' => 'Dienstleistung, Erzeugnis oder Ware',
'Services' => 'Dienstleistungen',
'Set (set to)' => 'Setze',
'Set all source and memo fields' => 'Alle Beleg-/Memo-Felder setzen',
'Set count for one or more of the items to select them' => 'Zum Selektieren bitte Menge für einen oder mehrere Artikel setzen',
'Set eMail text' => 'E-Mail Text eingeben',
'Set fields' => 'Felder setzen',
'Set lastcost' => 'EK-Preis übernehmen',
'Set sellprice' => 'VK-Preis übernehmen',
'Set to paid missing' => 'Fehlbetrag setzen',
templates/webpages/bank_transactions/list.html
<div id="automatic">[% PROCESS "bank_transactions/tabs/automatic.html" %]</div>
</div>
<div id="set_all_sources_memos_dialog" class="hidden">
<table>
<tr>
<th>[% LxERP.t8("Source") %]:</th>
<td>[% L.input_tag("set_all_sources", "") %]</td>
</tr>
<tr>
<th>[% LxERP.t8("Memo") %]:</th>
<td>[% L.input_tag("set_all_memos", "") %]</td>
</tr>
</table>
<p>
[% L.button_tag("kivi.BankTransaction.set_all_sources_memos()", LxERP.t8("Set fields")) %]
<a href="#" onclick="$('#set_all_sources_memos_dialog').dialog('close');">[%- LxERP.t8("Cancel") %]</a>
</p>
</div>
<script type="text/javascript">
<!--
templates/webpages/bank_transactions/tabs/all.html
[%- USE HTML -%][%- USE LxERP -%][%- USE L -%][%- USE T8 -%]
[% SET debug=1 %]
<form method="post" id="list_form">
<form method="post" id="list_all_form">
[% L.hidden_tag('filter.bank_account', FORM.filter.bank_account) %]
[% L.hidden_tag('filter.fromdate', FORM.filter.fromdate) %]
[% L.hidden_tag('filter.todate', FORM.filter.todate) %]
templates/webpages/bank_transactions/tabs/automatic.html
[%- USE HTML -%][%- USE LxERP -%][%- USE L -%][%- USE T8 -%]
<form method="post" id="list_form">
<form method="post" id="list_automatic_form">
[% L.hidden_tag('filter.bank_account', FORM.filter.bank_account) %]
[% L.hidden_tag('filter.fromdate', FORM.filter.fromdate) %]
[% L.hidden_tag('filter.todate', FORM.filter.todate) %]
......
<th>[% 'Skonto' | $T8 %]</th>
<th>[% 'Purpose/Reference' | $T8 %]</th>
<th>[% 'Customer/Vendor/Remote name' | $T8 %]</th>
<th>[% LxERP.t8("Source") %]</th>
<th>[% LxERP.t8("Memo") %]</th>
</tr>
</thead>
[% IF !PROPOSALS.size %]
......
END %]
</td>
<td>[% HTML.escape(proposal.remote_name) %]</td>
<td></td>
<td></td>
</tr>
[% FOREACH proposed_invoice = proposal.proposals %]
......
[% L.hidden_tag("invoice_skontos." _ proposal.id _ "[]", proposed_invoice.skonto_type) %]</td>
<td[% IF proposed_invoice.invnumber == invnumber_found %] class="invoice_number_highlight"[% END %]>[% proposed_invoice.link %]</td>
<td>[% HTML.escape(proposed_invoice.customer.name) %][% HTML.escape(proposed_invoice.vendor.name) %]</td>
<td>[% L.input_tag("sources." _ proposal.id _ "[]", "", size=20) %]</td>
<td>[% L.input_tag("memos." _ proposal.id _ "[]", "", size=20) %]</td>
</tr>
[% END %]
<tr><td style="height:10px" colspan="8"></td></tr>
<tr><td style="height:10px" colspan="10"></td></tr>
</tbody>
[% END %]
[% END %]
</table>
[% L.submit_tag('action_save_proposals', LxERP.t8('Save proposals')) %]
<p>
[% L.submit_tag('action_save_proposals', LxERP.t8('Save proposals')) %]
[% L.button_tag('kivi.BankTransaction.show_set_all_sources_memos_dialog("#list_automatic_form [name^=\\"sources.\\"]", "#list_automatic_form [name^=\\"memos.\\"]")', LxERP.t8('Set all source and memo fields')) %]
</p>
</form>

Auch abrufbar als: Unified diff