Documentation/Index/VatNotePluginCustomScripts: VatNotePluginBeforeAfterSave.inc

Plik VatNotePluginBeforeAfterSave.inc, 2.2 KB (dodany przez TS, 8 years temu)
xx
Line 
1<?php
2
3/**
4 * VatNotePluginBeforeAfterSave
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 VatNotePluginBeforeAfterSave {
13
14
15
16    private static $documentDescriptionCache = '';
17
18
19
20    public static function init($args) {
21
22        // pobranie akcji jaka jest wykonywana
23        $action = NULL;
24        if (!isset($args['action'])) {
25            return FALSE;
26        }
27
28        $action = $args['action'];
29       
30        // jeśli wykonywaną akcją jest afterCreate wtedy osobna metoda
31        if ($action == 'afterCreate') {
32            return self::afterCreate($args);
33        }
34
35        // sprawdzam czy w przkazanych parametrach posiadam beana dokumentu - Faktura VatNote
36        if (!isset($args['document']) OR !is_object($args['document']) OR !is_a($args['document'], 'VatNote')) {
37            return;
38        }
39
40        // bean VatNote
41        $bean = $args['document'];
42
43        // sprawdzam czy wykonywaną akcją jest beforeSave jeśli tak to zapamiętuję obecny opis wprowadzony przez użytkownika - z formularza
44        // dodatkowo sprawdzam czy $bean posiada doc_id jeśli nie ma to znaczy, że jest to akcja tworzenia nowej faktury
45        if (($action == 'beforeSave') AND (!$bean->get('doc_id'))) {
46            self::$documentDescriptionCache = $bean->get('dscrpt');
47        }
48       
49        // jeśli akcja to afterSave i mam zapisany opis (tylko pod warunkami wymienionymi powyżej) wtedy aktualizuję opis w beanie - nadpisywane są dodawanie
50        // nazwy kontrahenta oraz numeru faktury
51        if (($action == 'afterSave') AND self::$documentDescriptionCache) {
52            $bean->set('dscrpt', self::$documentDescriptionCache);
53        }
54
55    }
56
57
58
59    private static function afterCreate($args) {
60
61        if (!is_object($args['container']) OR !is_a($args['container'], 'VatNotePlugin') OR !isset($args['container']->crtdat)) {
62            return FALSE;
63        }
64
65        $args['container']->crtdat->onChange = '';
66
67    }
68
69}
70
71if (isset($args)) {
72    VatNotePluginBeforeAfterSave::init($args);
73}
74
75?>