Documentation/Index/PaperPluginCustomScripts: PaperPluginBeforeAfterSave.inc

Plik PaperPluginBeforeAfterSave.inc, 1.8 KB (dodany przez TS, 8 years temu)
xx
Line 
1<?php
2
3/**
4 * PaperPluginBeforeAfterSave
5 * Zmienia opis na fakturze na taki jak wprowadził użytkonwik. Nie dokleja Nr. oraz nazwy kontrahenta
6 * Działa tylko dla nowych dokumentów
7 *
8 * @author Tomasz Świenty
9 * @version 0.1
10 * @copyright Copyright (c) eDokumenty
11 */
12final class PaperPluginBeforeAfterSave {
13
14
15
16    private static $documentDescriptionCache = '';
17
18
19
20    public static function init($args) {
21
22        return TRUE;
23       
24        // pobranie akcji jaka jest wykonywana
25        $action = NULL;
26        if (!isset($args['action'])) {
27            return FALSE;
28        }
29
30        $action = $args['action'];
31
32        // sprawdzam czy w przkazanych parametrach posiadam beana dokumentu - Faktura Paper
33        if (!isset($args['document']) OR !is_object($args['document']) OR !is_a($args['document'], 'Paper')) {
34            return;
35        }
36
37        // bean Paper
38        $bean = $args['document'];
39
40        // sprawdzam czy wykonywaną akcją jest beforeSave jeśli tak to zapamiętuję obecny opis wprowadzony przez użytkownika - z formularza
41        // dodatkowo sprawdzam czy $bean posiada doc_id jeśli nie ma to znaczy, że jest to akcja tworzenia nowej faktury
42        if (($action == 'beforeSave') AND (!$bean->get('doc_id'))) {
43            self::$documentDescriptionCache = $bean->get('dscrpt');
44        }
45
46        // jeśli akcja to afterSave i mam zapisany opis (tylko pod warunkami wymienionymi powyżej) wtedy aktualizuję opis w beanie - nadpisywane są dodawanie
47        // nazwy kontrahenta oraz numeru faktury
48        if (($action == 'afterSave') AND self::$documentDescriptionCache) {
49            $bean->set('dscrpt', self::$documentDescriptionCache);
50        }
51
52    }
53
54}
55
56if (isset($args)) {
57    PaperPluginBeforeAfterSave::init($args);
58}
59
60?>