Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision 3e2892b1

Von Sven Schöling vor mehr als 15 Jahren hinzugefügt

  • ID 3e2892b1ac262d0dfd2679e254cc979a1b8405b8
  • Vorgänger 67223abf
  • Nachfolger 561744fd

Valid Flag für Custom Variables in Artikeln.

Ausserdem gefixte Locales.

Unterschiede anzeigen:

SL/CVar.pm
package CVar;
use List::Util qw(first);
use Data::Dumper;
use SL::DBUtils;
use SL::MoreCommon qw(listify);
sub get_configs {
$main::lxdebug->enter_sub();
......
do_statement($form, $h_var, $q_var, @values);
$act_var = $h_var->fetchrow_hashref();
$act_var->{valid} = $self->get_custom_variables_validity(config_id => $cvar->{id}, trans_id => $params{trans_id});
}
if ($act_var) {
......
: $cvar->{type} eq 'number' ? $act_var->{number_value}
: $cvar->{type} eq 'bool' ? $act_var->{bool_value}
: $act_var->{text_value};
$cvar->{valid} = $act_var->{valid};
} else {
if ($cvar->{type} eq 'date') {
if ($cvar->{default_value} eq 'NOW') {
......
}
do_statement($form, $sth, $query, @values);
$self->save_custom_variables_validity(trans_id => $params{trans_id}, config_id => $config->{id},
validity => ($params{variables}->{"$params{name_prefix}cvar_$config->{name}$params{name_postfix}_valid"} ? 1 : 0)
);
}
$sth->finish();
......
foreach my $var (@{ $params{variables} }) {
$var->{HTML_CODE} = $form->parse_html_template('amcvar/render_inputs', { 'var' => $var, %options });
$var->{VALID_BOX} = "<input type=checkbox name='$options{name_prefix}cvar_$var->{name}$options{name_postfix}_valid'@{[!$var->{valid} ? ' checked' : '']}>";
}
$main::lxdebug->leave_sub();
......
return ($date_fields, $number_fields);
}
=head2 VALIDITY
Suppose the following scenario:
You have a lot of parts in your database, and a set of properties cofigured. Now not every part has every of these properties, some combinations will just make no sense. In order to clean up your inputs a bit, you want to mark certain combinations as invalid, blocking them from modification and possibly display.
Validity is assumed. If you modify validity, you actually save B<invalidity>.
validity is saved as a function of config_id, and the trans_id
In the naive way, disable an attribute for a specific id (simple)
=cut
sub save_custom_variables_validity {
$main::lxdebug->enter_sub();
my $self = shift;
my %params = @_;
Common::check_params(\%params, qw(config_id trans_id validity));
my $myconfig = \%main::myconfig;
my $form = $main::form;
my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig);
my (@where, @values);
add_token(\@where, \@values, col => "config_id", val => $params{config_id}, esc => \&conv_i);
add_token(\@where, \@values, col => "trans_id", val => $params{trans_id}, esc => \&conv_i);
my $where = scalar @where ? "WHERE " . join ' AND ', @where : '';
my $query = qq|DELETE FROM custom_variables_validity $where|;
do_query($form, $dbh, $query, @values);
$query =
qq|INSERT INTO custom_variables_validity (config_id, trans_id)
VALUES (?, ? )|;
my $sth = prepare_query($form, $dbh, $query);
unless ($params{validity}) {
foreach my $config_id (listify $params{config_id}) {
foreach my $trans_id (listify $params{trans_id}) {
do_statement($form, $sth, $query, conv_i($config_id), conv_i($trans_id));
}
}
}
$sth->finish();
$dbh->commit();
$main::lxdebug->leave_sub();
}
sub get_custom_variables_validity {
$main::lxdebug->enter_sub();
my $self = shift;
my %params = @_;
Common::check_params(\%params, qw(config_id trans_id));
my $myconfig = \%main::myconfig;
my $form = $main::form;
my $dbh = $params{dbh} || $form->get_standard_dbh($myconfig);
my $query = qq|SELECT COUNT(*) FROM custom_variables_validity WHERE config_id = ? AND trans_id = ?|;
my ($validity) = selectfirst_array_query($form, $dbh, $query, conv_i($params{config_id}), conv_i($params{trans_id}));
$main::lxdebug->leave_sub();
return $validity;
}
1;
locale/de/all
'Active?' => 'Aktiviert?',
'Add' => 'Erfassen',
'Add ' => 'Hinzuf?gen',
'Add (Customers and Vendors)' => '',
'Add (Parts, services, assemblies)' => '',
'Add (Projects)' => '',
'Add AP Transaction' => 'Kreditorenbuchung',
'Add AR Transaction' => 'Debitorenbuchung',
'Add Account' => 'Konto erfassen',
......
'Add to group' => 'Zu Gruppe hinzuf?gen',
'Add unit' => 'Einheit hinzuf&uuml;gen',
'Address' => 'Adresse',
'Admin' => '',
'Administration' => 'Administration',
'Administration area' => 'Administrationsbereich',
'Advance turnover tax return' => 'Umsatzsteuervoranmeldung',
......
'Attachment name' => 'Name des Anhangs',
'Attempt to call an undefined sub named \'%s\'' => 'Es wurde versucht, eine nicht definierte Unterfunktion namens \'%s\' aufzurufen.',
'Audit Control' => 'B?cherkontrolle',
'Auftragschance' => '',
'Aug' => 'Aug',
'August' => 'August',
'Authentification database creation' => 'Anlegen der Datenbank zur Benutzerauthentifizierung',
......
'Batch Printing' => 'Druck',
'Bcc' => 'Bcc',
'Belegnummer' => 'Buchungsnummer',
'Benutzer' => '',
'Beratername' => 'Beratername',
'Beraternummer' => 'Beraternummer',
'Bestandskonto' => 'Bestandskonto',
'Bestellungen' => '',
'Bilanz' => 'Bilanz',
'Billing Address' => 'Rechnungsadresse',
'Billing/shipping address (city)' => 'Rechnungsadresse (Stadt)',
......
'CANCELED' => 'Storniert',
'CB Transaction' => 'SB-Buchung',
'CR' => 'H',
'CRM' => '',
'CRM admin' => 'Administration',
'CRM create customers, vendors and contacts' => 'Erfassen (Kunden, Lieferanten, Personen)',
'CRM follow up' => 'Wiedervorlage',
......
'Do you want to carry this shipping address over to the new purchase order so that the vendor can deliver the goods directly to your customer?' => 'Wollen Sie diese Lieferadresse in den neuen Lieferantenauftrag &uuml;bernehmen, damit der H&auml;ndler die Waren direkt an Ihren Kunden liefern kann?',
'Do you want to store the existing onhand values into a new warehouse?' => 'M&ouml;chten Sie die vorhandenen Mengendaten in ein Lager &uuml;bertragen?',
'Documents in the WebDAV repository' => 'Dokumente im WebDAV-Repository',
'Dokumentvorlage' => '',
'Done' => 'Fertig',
'Download the backup' => 'Die Sicherungsdatei herunterladen',
'Draft saved.' => 'Entwurf gespeichert.',
......
'Ertrag' => 'Ertrag',
'Ertrag prozentual' => 'Ertrag prozentual',
'Escape character' => 'Escape-Zeichen',
'Etiketten' => '',
'Exact' => 'Genau',
'Exch' => 'Wechselkurs.',
'Exchangerate' => 'Wechselkurs',
......
'Group missing!' => 'Warengruppe fehlt!',
'Group saved!' => 'Warengruppe gespeichert!',
'Groups' => 'Warengruppen',
'Gruppen' => '',
'HTML' => 'HTML',
'HTML Templates' => 'HTML-Vorlagen',
'Has serial number' => 'Hat eine Serienummer',
......
'Help' => 'Hilfe',
'Here\'s an example command line:' => 'Hier ist eine Kommandozeile, die als Beispiel dient:',
'Hide by default' => 'Standardm&auml;&szlig;ig verstecken',
'Hilfe' => '',
'History' => 'Historie',
'History Search' => 'Historien Suche',
'History Search Engine' => 'Historien Suchmaschine',
......
'KNE-Export erfolgreich!' => 'KNE-Export erfolgreich!',
'KNr. beim Kunden' => 'KNr. beim Kunden',
'Keine Suchergebnisse gefunden!' => 'Keine Suchergebnisse gefunden!',
'Konfiguration' => '',
'Konten' => 'Konten',
'Kontonummernerweiterung (KNE)' => 'Kontonummernerweiterung (KNE)',
'Kunden' => '',
'L' => 'L',
'LIABILITIES' => 'PASSIVA',
'LP' => 'LP',
......
'License key' => 'Lizenzschl?ssel',
'Licensed to' => 'Lizenziert f?r',
'Licenses' => 'Lizenzen',
'Lieferant' => '',
'Lieferungen' => 'Lieferungen',
'Limit part selection' => 'Artikelauswahl eingrenzen',
'Line Total' => 'Zeilensumme',
'Line endings' => 'Zeilenumbr&uuml;che',
'List (Customers and Vendors)' => '',
'List (Parts, services, assemblies)' => '',
'List (Projects)' => '',
'List' => 'List',
'List Accounting Groups' => 'Buchungsgruppen anzeigen',
'List Accounts' => 'Konten anzeigen',
'List Businesses' => 'Kunden-/Lieferantentypen anzeigen',
......
'Lx-Office is about to update the database <b>[% HTML.escape(dbname) %]</b>. You should create a backup of the database before proceeding because the backup might not be reversible.' => 'Lx-Office wird gleich die Datenbank <b>[% HTML.escape(dbname) %]</b> aktualisieren. Sie sollten eine Sicherungskopie der Datenbank erstellen, bevor Sie fortfahren, da die Aktualisierung unter Umst&auml;nden nicht umkehrbar ist.',
'Lx-Office is now able to manage warehouses instead of just tracking the amount of goods in your system.' => 'Lx-Office enth&auml;lt jetzt auch echte Lagerverwaultung anstatt reiner Mengenz&auml;hlung.',
'Lx-Office website' => 'Lx-Office-Webseite',
'MACSCAN' => '',
'MAILED' => 'Gesendet',
'MSG_BROWSER_DOES_NOT_SUPPORT_IFRAMES' => 'Ihr Browser kann leider keine eingebetteten Frames anzeigen. Bitte w&auml;hlen Sie ein anderes Men&uuml; in der Benutzerkonfiguration im Administrationsmen&uuml; aus.',
'Main Preferences' => 'Grundeinstellungen',
......
'Mark closed' => 'Schlie?en',
'Marked as paid' => 'Als bezahlt markiert',
'Marked entries printed!' => 'Markierte Eintr?ge wurden gedruckt!',
'Maschinen' => '',
'Maschinen erfassen' => '',
'Master Data' => 'Stammdaten',
'Max. Dunning Level' => 'h?chste Mahnstufe',
'May' => 'Mai',
......
'Missing parameter #1 in call to sub #2.' => 'Fehlernder Parameter \'#1\' in Funktionsaufruf \'#2\'.',
'Missing parameter (at least one of #1) in call to sub #2.' => 'Fehlernder Parameter (mindestens einer aus \'#1\') in Funktionsaufruf \'#2\'.',
'Mitarbeiter' => 'Mitarbeiter',
'Mitteilungen' => '',
'Mobile1' => 'Mobile 1',
'Mobile2' => 'Mobile 2',
'Model' => 'Lieferanten-Art-Nr.',
......
'Nothing has been selected for transfer.' => 'Es wurde nichts zum Umlagern ausgew&auml;hlt.',
'Nothing selected!' => 'Es wurde nichts ausgew?hlt!',
'Nothing to delete!' => 'Es konnte nichts gel?scht werden!',
'Notizen' => '',
'Nov' => 'Nov',
'November' => 'November',
'Now the user must select a single Buchungsgruppe for each part instead of three distinct accounts.' => 'Der Benutzer muss nun f&uuml;r jeden Artikel nur noch die Buchungsgruppe anstelle der drei einzelnen Konten ausw&auml;hlen.',
......
'Payment posted!' => 'Zahlung gebucht!',
'Payment terms deleted!' => 'Zahlungskonditionen gel?scht!',
'Payments' => 'Zahlungsausg?nge',
'Pepper' => '',
'Period' => 'Zeitraum',
'Period:' => 'Zeitraum:',
'Personal settings' => 'Pers&ouml;nliche Einstellungen',
'Personen' => '',
'Pg Database Administration' => 'Datenbankadministration',
'Phone' => 'Telefon',
'Phone1' => 'Telefon 1 ',
......
'Save as new' => 'als neu speichern',
'Save draft' => 'Entwurf speichern',
'Saving the file \'%s\' failed. OS error message: %s' => 'Das Speichern der Datei \'%s\' schlug fehl. Fehlermeldung des Betriebssystems: %s',
'Schnellsuche' => '',
'Screen' => 'Bildschirm',
'Searchable' => 'Durchsuchbar',
'Select' => 'ausw?hlen',
......
'Shipping Address' => 'Lieferadresse',
'Shipping Point' => 'Versandort',
'Shipto' => 'Lieferanschriften',
'Shop' => '',
'Shopartikel' => 'Shopartikel',
'Short' => 'Knapp',
'Show' => 'Zeigen',
......
'Skonto Terms' => 'Zahlungsziel Skonto',
'Sold' => 'Verkauft',
'Solution' => 'L?sung',
'Sonderflag' => '',
'Source' => 'Beleg',
'Source bin' => 'Quelllagerplatz',
'Spoolfile' => 'Druckdatei',
......
'Statement Balance' => 'Sammelrechnungsbilanz',
'Statement sent to' => 'Sammelrechnung verschickt an',
'Statements sent to printer!' => 'Sammelrechnungen an Drucker geschickt!',
'Status' => '',
'Step 1 of 3: Parts' => 'Schritt 1 von 3: Waren',
'Step 2 of 3: Services' => 'Schritt 2 von 3: Dienstleistungen',
'Step 3 of 3: Assemblies' => 'Schritt 3 von 3: Erzeugnisse',
......
'Template Code missing!' => 'Vorlagenk?rzel fehlt!',
'Template database' => 'Datenbankvorlage',
'Templates' => 'Vorlagen',
'Termine' => '',
'Terms missing in row ' => '+Tage fehlen in Zeile ',
'Test connection' => 'Verbindung testen',
'Text field' => 'Textfeld',
......
'UStVa' => 'UStVa',
'UStVa Einstellungen' => 'UStVa Einstellungen',
'Unbalanced Ledger' => 'Bilanzfehler',
'Unchecked custom variables will not appear in orders and invoices.' => 'Unmarkierte Variablen werden f?r diesen Artikel nicht in Auftr?gen und Rechnungen angezeigt.',
'Unfinished follow-ups' => 'Nicht erledigte Wiedervorlagen',
'Unit' => 'Einheit',
'Unit missing.' => 'Die Einheit fehlt.',
......
'Warehouse management' => 'Lagerverwaltung/Bestandsver?nderung',
'Warehouse saved.' => 'Lager gespeichert.',
'Warehouses' => 'Lager',
'Warenexport' => '',
'Warnings during template upgrade' => 'Warnungen bei Aktualisierung der Dokumentenvorlagen',
'Wartungsvertrag' => '',
'Wartungsvertrag erfassen' => '',
'WebDAV link' => 'WebDAV-Link',
'Weight' => 'Gewicht',
'Weight unit' => 'Gewichtseinheit',
'What type of item is this?' => 'Was ist dieser Artikel?',
'What\'s the <b>term</b> you\'re looking for?' => 'Nach welchem <b>Begriff</b> wollen Sie suchen?',
'Wiedervorlage' => '',
'Wissens-DB' => '',
'With Extension Of Time' => 'mit Dauerfristverl?ngerung',
'Workflow Delivery Order' => 'Workflow Lieferschein',
'Workflow purchase_order' => 'Workflow Lieferantenauftrag',
......
'down' => 'runter',
'drucken' => 'drucken',
'dunning_list' => 'mahnungsliste',
'eMail' => '',
'eMail Send?' => 'eMail-Versand?',
'eMail?' => 'eMail?',
'ea' => 'St.',
'emailed to' => 'gemailt an',
'erfassen' => '',
'female' => 'weiblich',
'follow_up_list' => 'wiedervorlageliste',
'for' => 'f&uuml;r',
locale/de/menu
'Languages' => 'Sprachen',
'Lead' => 'Kundenquelle',
'Licenses' => 'Lizenzen',
'List' => 'Anzeigen',
'List' => 'List',
'List Accounting Groups' => 'Buchungsgruppen anzeigen',
'List Accounts' => 'Konten anzeigen',
'List Businesses' => 'Kunden-/Lieferantentypen anzeigen',
locale/de/menunew
'Languages' => 'Sprachen',
'Lead' => 'Kundenquelle',
'Licenses' => 'Lizenzen',
'List' => 'Anzeigen',
'List' => 'List',
'List Accounting Groups' => 'Buchungsgruppen anzeigen',
'List Accounts' => 'Konten anzeigen',
'List Businesses' => 'Kunden-/Lieferantentypen anzeigen',
sql/Pg-upgrade2/custom_variables_valid.sql
-- @tag: custom_variables_valid
-- @description: Benutzerdefinierte Variablen als ung?ltig markieren.
-- @depends: release_2_6_0 custom_variables
CREATE TABLE custom_variables_validity (
id integer NOT NULL DEFAULT nextval('id'::text),
config_id integer NOT NULL,
trans_id integer NOT NULL,
itime timestamp DEFAULT now(),
PRIMARY KEY (id),
FOREIGN KEY (config_id) REFERENCES custom_variable_configs (id)
);
templates/webpages/ic/form_footer_de.html
[%- IF CUSTOM_VARIABLES.size %]
<div id="custom_variables" class="tabcontent">
<p>Unmarkierte Variablen werden f?r diesen Artikel nicht in Auftr?gen und Rechnungen angezeigt.</p>
<p>
<table>
[%- FOREACH var = CUSTOM_VARIABLES %]
<tr>
<td align="right" valign="top">[% var.VALID_BOX %]</td>
<td align="right" valign="top">[% HTML.escape(var.description) %]</td>
<td valign="top">[% var.HTML_CODE %]</td>
</tr>
templates/webpages/ic/form_footer_master.html
[%- IF CUSTOM_VARIABLES.size %]
<div id="custom_variables" class="tabcontent">
<p><translate>Unchecked custom variables will not appear in orders and invoices.</translate></p>
<p>
<table>
[%- FOREACH var = CUSTOM_VARIABLES %]
<tr>
<td align="right" valign="top">[% var.VALID_BOX %]</td>
<td align="right" valign="top">[% HTML.escape(var.description) %]</td>
<td valign="top">[% var.HTML_CODE %]</td>
</tr>
templates/webpages/ic/form_header_de.html
</tr>
[%- END %]
<tr>
<th align="right" nowrap><label for="shop">Hat eine Seriennummer</label></th>
<th align="right" nowrap><label for="shop">Hat eine Serienummer</label></th>
<td><input class="checkbox" type="checkbox" name="has_sernumber" id="has_sernumber" value="1" [% IF has_sernumber %]checked[% END %]></td>
</tr>
<tr>

Auch abrufbar als: Unified diff