Projekt

Allgemein

Profil

« Zurück | Weiter » 

Revision ce886488

Von Werner Hahn vor etwa 1 Jahr hinzugefügt

  • ID ce8864886cb35ff990df695195da829fdf0a3ce4
  • Vorgänger 24585a52
  • Nachfolger d3364ab7

S:M:R: POD

Unterschiede anzeigen:

SL/Model/Record.pm
32 32
  my $type_data_proxy = SL::DB::Helper::TypeDataProxy->new(ref $new_record, $subtype);
33 33
  $new_record->reqdate($type_data_proxy->defaults('reqdate'));
34 34

  
35
  # new_record: der neuerstellte objekt
36
  # flags: zusätzliche informationen zu der behanldung (soll    )
37

  
38
  # (aus add) neues record mit vorbereitenden sachen wie transdate/reqdate
39
  #
40
  # rückgabe: neues objekt
41
  # fehlerfall: exception
42 35
  return $new_record;
43 36
}
44 37

  
45 38
sub new_from_workflow {
46 39
  my ($class, $source_object, $target_subtype, %flags) = @_;
47 40

  
48
  # source: ein quellobjekt
49
  # target type: sollte ein subtype sein. wer das hier implementiert, sollte auch eine subtype registratur bauen in der man subtypes nachschlagen kann
50
  # flags: welche extra behandlungen sollen gemacht werden, z.B. record_links setzen
51

  
52
  # (muss prüfen ob diese umwandlung korrekt ist)
53
  # muss das entsprechende new_from in den objekten selber benutzen
54
  # und dann evtl nachbearbeitung machen (die bisher im controller stand)
55

  
56
  # new_from_workflow: (aus add_from_*) workflow umwandlung von bestehenden records
57

  
58
  # fehlerfall: exception aus unterliegendem code bubblen oder neue exception werfen
59
  # rückgabe: das neue objekt
60

  
61 41
  $flags{destination_type} = $target_subtype;
62 42
  my %defaults_flags = (
63 43
    no_linked_records => 0,
......
90 70

  
91 71
sub new_from_workflow_multi {
92 72
  my ($class, $source_objects, $target_subtype, %flags) = @_;
93
  # source: ein arrayref von quellobjekten.
94
  # target type: sollte ein subtype sein. wer das hier implementiert, sollte auch eine subtype registratur bauen in der man subtypes nachschlagen kann
95
  # flags: welche extra behandlungen sollen gemacht werden, z.B. record_links setzen
96

  
97
  # muss prüfen ob diese umwandlung korrekt ist
98
  # muss das entsprechende new_from_multi in den objekten selber benutzen
99
  # und dann evtl nachbearbeitung machen (die bisher im controller stand)
100

  
101
  # new_from_workflow_multi: (aus action_edit_collective) workflow umwandlung von bestehenden records
102

  
103
  # fehlerfall: exception aus unterliegendem code bubblen oder neue exception werfen
104
  # rückgabe: das neue objekt
105 73

  
106 74
  my %subtype_to_type = (
107 75
    # Order
......
117 85
  return $target_object;
118 86
}
119 87

  
120
# im Moment nur bei Aufträgen
121 88
sub increment_subversion {
122 89
  my ($class, $record, %flags) = @_;
123 90

  
124
  # erhöht die version des auftrags
125
  # setzt die neue auftragsnummer
126
  # legt OrderVersion objekt an
127
  # speichert
128
  #
129
  # return - nichts
130
  # fehlerfall: exception
131

  
132 91
  $record->increment_version_number if $record->type_data->features('subversions');
133 92

  
134 93
  return;
135 94
}
136 95

  
137 96
sub delete {
138
  my ($class, $record, %params) = @_;
97
  my ($class, $record, %flags) = @_;
139 98

  
140 99
  my $errors = [];
141 100
  my $db = $record->db;
......
153 112
  }) || push(@{$errors}, $db->error);
154 113

  
155 114
    die t8("Errors delete records:") . "\n" . join("\n", @{$errors}) . "\n" if scalar @{$errors};
156
  # das hier sollte der code sein der in sub delete aus den controllern liegt
157
  # nicht nur record->delete, sondern auch andere elemente aufräumen
158
  # spool aufräumen
159
  # status aufräumen
160
  # history eintrag
161
  #
162
  # return: nichts
163
  # fehler: exception
164 115
}
165 116

  
166 117
sub _get_history_snumbers {
......
187 138
sub save {
188 139
  my ($class, $record, %params) = @_;
189 140

  
190
  # record: das zu speichernde objekt
191
  # params:
192
  #   - with_validity_token -> scope
193
  #   - delete custom shipto if empty
194
  #   - item_ids_to_delete
195
  #   - order version behandlung
196

  
197

  
198
  # muss linked_records aus converted_from_* erzeugen -> verschieben in after_save hooks
199
  # wenn aus quotation erstellt, muss beim speichern das angebot geschlossen werden
200
  # wenn aus lieferschein erstellt muss beim speichern delivered setzen (wenn in config aktiviert)
201
  # muss auch link requirement_specs machen (was tut das?)
202
  # set project in linked requirementspecs (nur aufträge -> flag)
203
  #
204
  # history einträge erstellen
205

  
206
  # rückgabe: nichts
207
  # fehler: exception
208

  
209 141
  $record->calculate_prices_and_taxes() if $record->type_data->features('price_tax');
210 142

  
211 143
  foreach my $item (@{ $record->items }) {
......
400 332

  
401 333
Invoices are not supported as of now, but are planned for the future.
402 334

  
335
The old deliveryorder C<sales_delivery_order> and C<purchase_delivery_order> must be implemented
336
in the new DeliveryOrder Controller
337

  
403 338
=head1 METHODS
404 339

  
405 340
=over 4
406 341

  
342
=item C<update_after_new>
343

  
344
Creates a new record_object by record_type and sub_type
345
set reqdate and transdate if required by type_data
346

  
347
Returns the record object.
348

  
349
=item C<new_from_workflow>
350

  
351
Expects source_object, target_object, can have flags.
352
Creates a new record from source_subtype by target_type->new_from(source_record)
353
Set default flag no_link_record to false and looks up the correct target_type
354

  
355
Throws an error if target_type not exists.
356

  
357
Returns the new record_object.
358

  
359
=item C<new_from_workflow_multi>
360

  
361
Expects an arrayref with source_objects and a target_object, can have flags.
362
Creates a new record_objects from one or more source_objects. By now only for orders.
363
Looks up the correct target_type throws an error if it doesn't exist.
364

  
365
Return the new record_object.
366

  
407 367
=item C<increment_subversion>
408 368

  
369
Only orders.
370

  
409 371
Increments the record's subversion number.
410 372

  
373
TODO: check type data if this is allowed/supported for this record and trow exception or error
374

  
411 375
=item C<delete>
412 376

  
377
Expects a record to delete.
413 378
Deletes the whole record and puts an entry in the history.
379
Cleans up the spool directory.
380
Dies and throws an error if dberror.
381

  
382
TODO: check status order when old deliveryorder (do) will be implemented.
383

  
384
=item C<save>
385

  
386
Expects a record to save and params to handles stuff like validity_token, custom_shipto,
387
items_to_delete, close objects, requirement_specs
388

  
389
=over 2
390

  
391
=item * L<params:>
392

  
393
=over 4
394

  
395
=item * C<with_validity_token -E<gt> scope>
396

  
397
=item * C<delete custom shipto if empty>
398

  
399
=item * C<items_to_delete>
400

  
401
=item * C<objects_to_close>
402

  
403
=item * C<link_requirement_specs_linking_to_created_from_objects>
404

  
405
=item * C<set_project_in_linked_requirement_specs>
406

  
407
=back
408

  
409
Sets an entry in history
410

  
411
Dies and throws error when error
412

  
413
=back
414

  
415
=back
416

  
417
=over 4
418

  
419
=item C<clone_for_save_as_new>
420

  
421
Expects the saved record and the record to change.
422

  
423
Sets the actual employee.
424

  
425
Sets also new transdate, new reqdate and an empty recordnumber if not allready changed in record to change.
414 426

  
415 427
=item C<_save_history>
416 428

  
417
Expects a record for id, addition for text (SAVED,...)
429
Expects a record for id, addition for text (SAVED,DELETED,...)
430

  
431
=item C<_get_history_snumbers>
432

  
433
Expects a record returns snumber for history_entry
418 434

  
419 435
=back
420 436

  

Auch abrufbar als: Unified diff