+sub disassemble_assembly {
+ $main::lxdebug->enter_sub();
+
+ $main::auth->assert('warehouse_management');
+
+ my $form = $main::form;
+
+ croak("No assembly ids") unless scalar @{ $form->{ids}} > 0;
+
+ # everything in one transaction
+ my $db = SL::DB::Inventory->new->db;
+ $db->with_transaction(sub {
+
+ foreach my $trans_id (@{ $::form->{ids}} ) {
+ SL::DB::Manager::Inventory->delete_all(where => [ trans_id => $trans_id ]);
+ flash_later('info', t8("Disassembly successful for trans_id #1", $trans_id));
+ }
+
+ 1;
+ }) || die t8('error while disassembling for trans_ids #1 : #2', $form->{ids}) . $db->error . "\n";
+
+ $main::lxdebug->leave_sub();
+ $form->redirect;
+}
+