Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision baf226d0

Von Moritz Bunkus vor mehr als 7 Jahren hinzugefügt

  • ID baf226d0b65e64f9475dea46b35d88d52fed1cc6
  • Vorgänger bb89cd36
  • Nachfolger d5884a88

Angebote/Aufträge: Kunden-/Lieferantenwahl via Picker

Unterschiede anzeigen:

bin/mozilla/oe.pl
241 241

  
242 242
  check_oe_access();
243 243

  
244
  # get customer/vendor
245
  $form->all_vc(\%myconfig, $form->{vc}, ($form->{vc} eq 'customer') ? "AR" : "AP");
246

  
247 244
  # retrieve order/quotation
248 245
  my $editing = $form->{id};
249 246

  
......
256 253
    if          $form->{rowcount}  && $form->{type}     eq 'sales_order'
257 254
     && defined $form->{customer}  && $form->{customer} eq '';
258 255

  
259
  $form->{"$form->{vc}_id"} ||= $form->{"all_$form->{vc}"}->[0]->{id} if $form->{"all_$form->{vc}"};
260

  
261 256
  $form->backup_vars(qw(payment_id language_id taxzone_id salesman_id taxincluded cp_id intnotes shipto_id delivery_term_id currency));
262 257

  
263 258
  # get customer / vendor
......
271 266
  $form->{forex}       = $form->{exchangerate};
272 267
  $form->{employee}    = "$form->{employee}--$form->{employee_id}";
273 268

  
274
  # build vendor/customer drop down comatibility... don't ask
275
  if (@{ $form->{"all_$form->{vc}"} || [] }) {
276
    $form->{"select$form->{vc}"} = 1;
277
    $form->{$form->{vc}}         = qq|$form->{$form->{vc}}--$form->{"$form->{vc}_id"}|;
278
  }
279

  
280
  $form->{"old$form->{vc}"}  = $form->{$form->{vc}};
281

  
282
  if ($form->{"old$form->{vc}"} !~ m/--\d+$/ && $form->{"$form->{vc}_id"}) {
283
    $form->{"old$form->{vc}"} .= qq|--$form->{"$form->{vc}_id"}|
284
  }
285

  
286 269
  $main::lxdebug->leave_sub();
287 270
}
288 271

  
......
354 337

  
355 338
  $form->get_lists("taxzones"      => ($form->{id} ? "ALL_TAXZONES" : "ALL_ACTIVE_TAXZONES"),
356 339
                   "currencies"    => "ALL_CURRENCIES",
357
                   $vc             => { key   => "ALL_" . uc($vc),
358
                                        limit => $myconfig{vclimit} + 1 },
359 340
                   "price_factors" => "ALL_PRICE_FACTORS");
360 341
  $form->{ALL_PAYMENTS} = SL::DB::Manager::PaymentTerm->get_all( where => [ or => [ obsolete => 0, id => $form->{payment_id} || undef ] ]);
361 342

  
......
399 380
  ]);
400 381
  $TMPL_VAR{sales_employee_labels} = sub { $_[0]->{name} || $_[0]->{login} };
401 382

  
402
  # vendor/customer
403
  $TMPL_VAR{vc_keys} = sub { "$_[0]->{name}--$_[0]->{id}" };
404
  $TMPL_VAR{vclimit} = $myconfig{vclimit};
405
  $TMPL_VAR{vc_select} = "customer_or_vendor_selection_window('$form->{vc}', '', @{[ $form->{vc} eq 'vendor' ? 1 : 0 ]}, 0)";
406
  push @custom_hiddens, "$form->{vc}_id";
407
  push @custom_hiddens, "old$form->{vc}";
408
  push @custom_hiddens, "select$form->{vc}";
409

  
410 383
  # currencies and exchangerate
411 384
  my @values = map { $_ } @{ $form->{ALL_CURRENCIES} };
412 385
  my %labels = map { $_ => $_ } @{ $form->{ALL_CURRENCIES} };
......
604 577

  
605 578
  $form->{update} = 1;
606 579

  
607
  &check_name($form->{vc});
580
  my $vc = $form->{vc};
581
  if (($form->{"previous_${vc}_id"} || $form->{"${vc}_id"}) != $form->{"${vc}_id"}) {
582
    $::form->{salesman_id} = SL::DB::Manager::Employee->current->id if exists $::form->{salesman_id};
583

  
584
    IS->get_customer(\%myconfig, $form) if $vc eq 'customer';
585
    IR->get_vendor(\%myconfig, $form)   if $vc eq 'vendor';
586
  }
608 587

  
609 588
  if (!$form->{forex}) {        # read exchangerate from input field (not hidden)
610 589
    map { $form->{$_} = $form->parse_amount(\%myconfig, $form->{$_}) } qw(exchangerate) unless $recursive_call;
......
774 753
  }
775 754

  
776 755
  # setup vendor / customer data
777
  $form->all_vc(\%myconfig, $form->{vc}, ($form->{vc} eq 'customer') ? "AR" : "AP");
778 756
  $form->get_lists("projects"     => { "key" => "ALL_PROJECTS", "all" => 1 },
779
                   "$form->{vc}s" => "ALL_VC",
780 757
                   "taxzones"     => "ALL_TAXZONES",
781 758
                   "business_types" => "ALL_BUSINESS_TYPES",);
782 759
  $form->{ALL_EMPLOYEES} = SL::DB::Manager::Employee->get_all_sorted(query => [ deleted => 0 ]);
......
1182 1159
  $form->{$idx} =~ s/\s*$//g;
1183 1160

  
1184 1161
  my $msg = ucfirst $form->{vc};
1185
  $form->isblank($form->{vc}, $locale->text($msg . " missing!"));
1162
  $form->isblank($form->{vc} . '_id', $locale->text($msg . " missing!"));
1186 1163

  
1187 1164
  # $locale->text('Customer missing!');
1188 1165
  # $locale->text('Vendor missing!');
......
1192 1169

  
1193 1170
  &validate_items;
1194 1171

  
1195
  my $payment_id;
1196
  if($form->{payment_id}) {
1197
    $payment_id = $form->{payment_id};
1198
  }
1172
  my $vc = $form->{vc};
1173
  if (($form->{"previous_${vc}_id"} || $form->{"${vc}_id"}) != $form->{"${vc}_id"}) {
1174
    $::form->{salesman_id} = SL::DB::Manager::Employee->current->id if exists $::form->{salesman_id};
1199 1175

  
1200
  # if the name changed get new values
1201
  if (&check_name($form->{vc})) {
1202
    if($form->{payment_id} eq "") {
1203
      $form->{payment_id} = $payment_id;
1204
    }
1205
    &update;
1176
    IS->get_customer(\%myconfig, $form) if $vc eq 'customer';
1177
    IR->get_vendor(\%myconfig, $form)   if $vc eq 'vendor';
1178

  
1179
    update();
1206 1180
    $::dispatcher->end_request;
1207 1181
  }
1208 1182

  
......
1289 1263
  $form->{$idx} =~ s/\s*$//g;
1290 1264

  
1291 1265
  my $msg = ucfirst $form->{vc};
1292
  $form->isblank($form->{vc}, $locale->text($msg . " missing!"));
1266
  $form->isblank($form->{vc} . '_id', $locale->text($msg . " missing!"));
1293 1267

  
1294 1268
  # $locale->text('Customer missing!');
1295 1269
  # $locale->text('Vendor missing!');
......
1300 1274
  remove_emptied_rows();
1301 1275
  &validate_items;
1302 1276

  
1303
  my $payment_id;
1304
  if($form->{payment_id}) {
1305
    $payment_id = $form->{payment_id};
1306
  }
1277
  my $vc = $form->{vc};
1278
  if (($form->{"previous_${vc}_id"} || $form->{"${vc}_id"}) != $form->{"${vc}_id"}) {
1279
    $::form->{salesman_id} = SL::DB::Manager::Employee->current->id if exists $::form->{salesman_id};
1307 1280

  
1308
  # if the name changed get new values
1309
  if (&check_name($form->{vc})) {
1310
    if($form->{payment_id} eq "") {
1311
      $form->{payment_id} = $payment_id;
1312
    }
1313
    &update;
1281
    IS->get_customer(\%myconfig, $form) if $vc eq 'customer';
1282
    IR->get_vendor(\%myconfig, $form)   if $vc eq 'vendor';
1283

  
1284
    update();
1314 1285
    $::dispatcher->end_request;
1315 1286
  }
1316 1287

  
......
1453 1424
    $form->{quodate}      = $form->{transdate};
1454 1425
  }
1455 1426

  
1456
  my $payment_id;
1457
  if ($form->{payment_id}) {
1458
    $payment_id = $form->{payment_id};
1459
  }
1427
  my $vc = $form->{vc};
1428
  if (($form->{"previous_${vc}_id"} || $form->{"${vc}_id"}) != $form->{"${vc}_id"}) {
1429
    $::form->{salesman_id} = SL::DB::Manager::Employee->current->id if exists $::form->{salesman_id};
1430

  
1431
    IS->get_customer(\%myconfig, $form) if $vc eq 'customer';
1432
    IR->get_vendor(\%myconfig, $form)   if $vc eq 'vendor';
1460 1433

  
1461
  # if the name changed get new values
1462
  if (&check_name($form->{vc})) {
1463
    $form->{payment_id} = $payment_id if $form->{payment_id} eq "";
1464
    &update;
1434
    update();
1465 1435
    $::dispatcher->end_request;
1466 1436
  }
1467 1437

  
templates/webpages/oe/form_header.html
1 1
[%- USE T8 %]
2 2
[%- USE HTML %]
3 3
[%- USE LxERP %]
4
[%- USE L %]
4
[%- USE L %][%- USE P -%]
5 5

  
6 6
  <form method="post" name="oe" action="[% script %]">
7 7

  
8 8
    <script type="text/javascript" src="js/delivery_customer_selection.js"></script>
9
    <script type="text/javascript" src="js/vendor_selection.js"></script>
10 9
    <script type="text/javascript" src="js/calculate_qty.js"></script>
11
    <script type="text/javascript" src="js/customer_or_vendor_selection.js"></script>
12 10
    <script type="text/javascript" src="js/follow_up.js"></script>
13 11
    [%- IF is_sales_ord %]
14 12
     [% L.javascript_tag("js/edit_periodic_invoices_config") %]
......
54 52
                  <tr>
55 53
                    <th align="right">[% IF vc == 'customer' %][% 'Customer' | $T8 %][% ELSE %][% 'Vendor' | $T8 %][% END %]</th>
56 54
                    <td>
57
                      [%- INCLUDE 'generic/multibox.html'
58
                           name          = vc,
59
                           style         = 'width: 250px',
60
                           class         = 'initial_focus',
61
                           DATA          = vc == 'customer' ? ALL_CUSTOMERS : ALL_VENDORS,
62
                           id_sub        = 'vc_keys',
63
                           label_key     = 'name',
64
                           select        = vc_select,
65
                           limit         = vclimit,
66
                           allow_textbox = 1,
67
                           onChange      = "document.getElementById('update_button').click();" -%]
68
                      <input type="button" value="[% 'Details (one letter abbreviation)' | $T8 %]" onclick="show_vc_details('[% HTML.escape(vc) %]')">
55
                     [%- SET vc_id = vc _ "_id" %]
56
                     [% P.customer_vendor_picker(vc_id, $vc_id, type=vc, style="width: 250px", class="initial_focus") %]
57
                     [% P.button_tag("show_vc_details('" _ HTML.escape(vc) _  "')", LxERP.t8("Details (one letter abbreviation)")) %]
58
                     [% P.hidden_tag("previous_" _ vc_id, $vc_id) %]
69 59
                    </td>
70 60
                  </tr>
71 61
[%- IF ALL_CONTACTS.size %]

Auch abrufbar als: Unified diff