Revision c307d4a1
Von Tamino Steinert vor mehr als 1 Jahr hinzugefügt
| SL/Controller/Part.pm | ||
|---|---|---|
| use SL::DB::Part;
 | ||
| use SL::DB::PartsGroup;
 | ||
| use SL::DB::PriceRuleItem;
 | ||
| use SL::DB::PurchaseBasketItem;
 | ||
| use SL::DB::Shop;
 | ||
| use SL::Helper::Flash;
 | ||
| use SL::Helper::PrintOptions;
 | ||
| ... | ... | |
|   $self->render_form;
 | ||
| }
 | ||
|  | ||
| sub action_add_to_basket {
 | ||
|   my ( $self ) = @_;
 | ||
|  | ||
|   if ( !$self->_is_in_purchase_basket && scalar @{$self->part->makemodels}) {
 | ||
|  | ||
|     my $part = $self->part;
 | ||
|  | ||
|     my $needed_qty = $part->order_qty < ($part->rop - $part->onhandqty) ?
 | ||
|                      $part->rop - $part->onhandqty
 | ||
|                    : $part->order_qty;
 | ||
|  | ||
|     my $basket_part = SL::DB::PurchaseBasketItem->new(
 | ||
|       part_id     => $part->id,
 | ||
|       qty         => $needed_qty,
 | ||
|       orderer     => SL::DB::Manager::Employee->current,
 | ||
|     )->save;
 | ||
|  | ||
|     $self->js->flash('info', t8('Part added to purchasebasket'))->render;
 | ||
|   } else {
 | ||
|     $self->js->flash('error', t8('Part already in purchasebasket or has no vendor'))->render;
 | ||
|   }
 | ||
|   return 1;
 | ||
| }
 | ||
|  | ||
| sub render_form {
 | ||
|   my ($self, %params) = @_;
 | ||
|  | ||
| ... | ... | |
|   return \@item_objects;
 | ||
| }
 | ||
|  | ||
| sub _is_in_purchase_basket {
 | ||
|   my ( $self ) = @_;
 | ||
|  | ||
|   return SL::DB::Manager::PurchaseBasketItem->get_all_count( query => [ part_id => $self->part->id ] );
 | ||
| }
 | ||
|  | ||
| sub _is_ordered {
 | ||
|   my ( $self ) = @_;
 | ||
|  | ||
|   return $self->part->get_ordered_qty( $self->part->id );
 | ||
| }
 | ||
|  | ||
| sub _setup_form_action_bar {
 | ||
|   my ($self) = @_;
 | ||
|  | ||
| ... | ... | |
|                   :                          undef,
 | ||
|       ],
 | ||
|  | ||
|       action => [
 | ||
|         t8('Add to basket'),
 | ||
|         call     => [ 'kivi.Part.add_to_basket' ],
 | ||
|         disabled => !$self->part->id       ? t8('This object has not been saved yet.')
 | ||
|                   : $self->_is_in_purchase_basket ? t8('Part already in purchasebasket')
 | ||
|                   : $self->_is_ordered ? t8('Part already ordered')
 | ||
|                   : !scalar @{$self->part->makemodels} ? t8('No vendors to add to purchasebasket')
 | ||
|                   : undef,
 | ||
|       ],
 | ||
|  | ||
|       'separator',
 | ||
|  | ||
|       action => [
 | ||
| js/kivi.Part.js | ||
|---|---|---|
|     ns.reinit_widgets();
 | ||
|   };
 | ||
|  | ||
|   ns.add_to_basket = function() {
 | ||
|     var data = $('#ic').serializeArray();
 | ||
|     data.push({ name: 'action', value: 'Part/add_to_basket' });
 | ||
|  | ||
|     $.post("controller.pl", data, kivi.eval_json_result);
 | ||
|   };
 | ||
|  | ||
|   $(function(){
 | ||
|     $('#ic').on('focusout', '.reformat_number', function(event) {
 | ||
|       ns.reformat_number(event);
 | ||
Auch abrufbar als: Unified diff
Part: Direkt aus der Artikelmaske zum Einkaufkorb hinzufügen