use SL::IS;
use SL::ReportGenerator;
use SL::WH;
-
require "bin/mozilla/arap.pl";
require "bin/mozilla/common.pl";
require "bin/mozilla/invoice_io.pl";
DO->retrieve('vc' => $form->{vc},
'ids' => $form->{id});
- $form->backup_vars(qw(payment_id language_id taxzone_id salesman_id taxincluded cp_id intnotes));
- $form->{shipto} = 1 if $form->{id};
+ $form->backup_vars(qw(payment_id language_id taxzone_id salesman_id taxincluded cp_id intnotes currency));
+ $form->{shipto} = 1 if $form->{id} || $form->{convert_from_oe_ids};
# get customer / vendor
if ($form->{vc} eq 'vendor') {
}
$form->restore_vars(qw(payment_id language_id taxzone_id intnotes cp_id));
+ $form->restore_vars(qw(currency)) if ($form->{id} || $form->{convert_from_oe_ids});
$form->restore_vars(qw(taxincluded)) if $form->{id};
$form->restore_vars(qw(salesman_id)) if $editing;
# use JavaScript Calendar or not
$form->{jsscript} = 1;
- #write Trigger
- my $jsscript = Form->write_trigger(\%myconfig, "2", "transdate", "BL", "trigger1", "reqdate", "BL", "trigger2");
-
my @old_project_ids = ($form->{"globalproject_id"});
map({ push(@old_project_ids, $form->{"project_id_$_"})
if ($form->{"project_id_$_"}); } (1..$form->{"rowcount"}));
my $vc = $form->{vc} eq "customer" ? "customers" : "vendors";
- $form->get_lists("contacts" => "ALL_CONTACTS",
- "shipto" => "ALL_SHIPTO",
- "projects" => {
+ $form->get_lists("projects" => {
"key" => "ALL_PROJECTS",
"all" => 0,
"old_id" => \@old_project_ids
},
- "employees" => "ALL_EMPLOYEES",
- "salesmen" => "ALL_SALESMEN",
$vc => "ALL_VC",
"price_factors" => "ALL_PRICE_FACTORS",
"departments" => "ALL_DEPARTMENTS",
"business_types" => "ALL_BUSINESS_TYPES",
);
+ $::form->{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{employee_id}, deleted => 0 ] ]);
+ $::form->{ALL_SALESMEN} = SL::DB::Manager::Employee->get_all(query => [ or => [ id => $::form->{salesman_id}, deleted => 0 ] ]);
+ $::form->{ALL_SHIPTO} = SL::DB::Manager::Shipto->get_all(query => [
+ or => [ trans_id => $::form->{"$::form->{vc}_id"} * 1, and => [ shipto_id => $::form->{shipto_id} * 1, trans_id => undef ] ]
+ ]);
+ $::form->{ALL_CONTACTS} = SL::DB::Manager::Contact->get_all(query => [
+ or => [
+ cp_cv_id => $::form->{"$::form->{vc}_id"} * 1,
+ and => [
+ cp_cv_id => undef,
+ cp_id => $::form->{cp_id} * 1
+ ]
+ ]
+ ]);
+
map { $_->{value} = "$_->{description}--$_->{id}" } @{ $form->{ALL_DEPARTMENTS} };
map { $_->{value} = "$_->{name}--$_->{id}" } @{ $form->{ALL_VC} };
$form->header();
# Fix für Bug 1082 Erwartet wird: 'abteilungsNAME--abteilungsID'
- # Und Fix für Bug 1760, die Abteilung kommt 2012 wieder korrekt hoch
- # keine ahnung warum: get_departments unverändert, do/form_header.html unverändert und
- # diese routine hier auch. Also erstmal wieder raus, falls jmd. eine Idee hat ... jan ;-)
- #$form->{department} .= '--' . $form->{department_id};
-
+ # und Erweiterung für Bug 1760:
+ # Das war leider nur ein Teil-Fix, da das Verhalten den 'Erneuern'-Knopf
+ # nicht überlebt. Konsequent jetzt auf L umgestellt
+ # $ perldoc SL::Template::Plugin::L
+ # Daher entsprechend nur die Anpassung in form_header
+ # und in DO.pm gemacht. 4 Testfälle:
+ # department_id speichern | i.O.
+ # department_id lesen | i.O.
+ # department leer überlebt erneuern | i.O.
+ # department nicht leer überlebt erneuern | i.O.
+ # $main::lxdebug->message(0, 'ABTEILUNGS ID in form?' . $form->{department_id});
print $form->parse_html_template('do/form_header');
$main::lxdebug->leave_sub();
$form->get_lists("projects" => { "key" => "ALL_PROJECTS",
"all" => 1 },
- "employees" => "ALL_EMPLOYEES",
- "salesmen" => "ALL_SALESMEN",
"$form->{vc}s" => "ALL_VC");
+ $form->{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all(query => [ deleted => 0 ]);
$form->{SHOW_VC_DROP_DOWN} = $myconfig{vclimit} > scalar @{ $form->{ALL_VC} };
$form->{jsscript} = 1;
ids transdate
id donumber
ordnumber
- name employee
+ name employee salesman
shipvia globalprojectnumber
transaction_description
open delivered
'ordnumber' => { 'text' => $locale->text('Order'), },
'name' => { 'text' => $form->{vc} eq 'customer' ? $locale->text('Customer') : $locale->text('Vendor'), },
'employee' => { 'text' => $locale->text('Employee'), },
+ 'salesman' => { 'text' => $locale->text('Salesman'), },
'shipvia' => { 'text' => $locale->text('Ship via'), },
'globalprojectnumber' => { 'text' => $locale->text('Project Number'), },
'transaction_description' => { 'text' => $locale->text('Transaction description'), },
'delivered' => { 'text' => $locale->text('Delivered'), },
);
- foreach my $name (qw(id transdate donumber ordnumber name employee shipvia transaction_description)) {
+ foreach my $name (qw(id transdate donumber ordnumber name employee salesman shipvia transaction_description)) {
my $sortdir = $form->{sort} eq $name ? 1 - $form->{sortdir} : $form->{sortdir};
$column_defs{$name}->{link} = $href . "&sort=$name&sortdir=$sortdir";
}
};
$row->{donumber}->{link} = $edit_url . "&id=" . E($dord->{id}) . "&callback=${callback}";
- $row->{ordnumber}->{link} = $edit_order_url . "&id=" . E($dord->{oe_id}) . "&callback=${callback}";
-
+ $row->{ordnumber}->{link} = $edit_order_url . "&id=" . E($dord->{oe_id}) . "&callback=${callback}" if $dord->{oe_id};
$report->add_data($row);
$idx++;
require "bin/mozilla/$form->{script}";
my $currency = $form->{currency};
+ $form->{shipto} = 1 if $form->{convert_from_do_ids};
invoice_links();
if ($form->{ordnumber}) {
}
+ # show pricegroup in newly loaded invoice when creating invoice from delivery order
+ for my $i (1 .. $form->{rowcount}) {
+ $form->{"sellprice_pg_$i"} = join '--', $form->{"sellprice_$i"}, $form->{"pricegroup_id_$i"};
+ }
+ IS->get_pricegroups_for_parts(\%myconfig, \%$form);
+ set_pricegroup($_) for 1 .. $form->{rowcount};
+
display_form();
$main::lxdebug->leave_sub();
invoice_links();
prepare_invoice();
+
+ # show pricegroup in newly loaded invoice when creating invoice from delivery order
+ for my $i (1 .. $form->{rowcount}) {
+ $form->{"sellprice_pg_$i"} = join '--', $form->{"sellprice_$i"}, $form->{"pricegroup_id_$i"};
+ }
+ IS->get_pricegroups_for_parts(\%myconfig, \%$form);
+ set_pricegroup($_) for 1 .. $form->{rowcount};
+
display_form();
$main::lxdebug->leave_sub();