Completed
Push — master ( d5d70a...ca076d )
by Vítězslav
09:56
created

FakturaVydana::odpocetZDD()   B

Complexity

Conditions 6
Paths 32

Size

Total Lines 22
Code Lines 14

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 42

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 6
eloc 14
c 1
b 0
f 0
nc 32
nop 2
dl 0
loc 22
ccs 0
cts 0
cp 0
crap 42
rs 8.6737
1
<?php
2
/**
3
 * FlexiPeeHP - Objekt vydané faktury.
4
 *
5
 * @author     Vítězslav Dvořák <[email protected]>
6
 * @copyright  (C) 2015,2016 Spoje.Net
7
 */
8
9
namespace FlexiPeeHP;
10
11
/**
12
 * Faktura vydaná
13
 *
14
 * @link https://demo.flexibee.eu/c/demo/faktura-vydana/properties položky evidence
15
 */
16
class FakturaVydana extends FlexiBeeRW
17
{
18
    /**
19
     * Evidence užitá objektem.
20
     *
21
     * @var string
22
     */
23
    public $evidence = 'faktura-vydana';
24
25
    /**
26
     * Provede spárování platby s dokladem
27
     *
28
     * @link https://demo.flexibee.eu/devdoc/parovani-plateb Párování plateb
29
     * @param $doklad Banka|PokladniPohyb|InterniDoklad S jakým dokladem spárovat ?
30
     * @param $zbytek string ne|zauctovat|ignorovat|castecnaUhrada|castecnaUhradaNeboZauctovat|castecnaUhradaNeboIgnorovat
31
     */
32
    public function sparujPlatbu($doklad, $zbytek = 'ignorovat')
33
    {
34
        $sparovani                       = ['uhrazovanaFak' => $this];
35
        $sparovani['uhrazovanaFak@type'] = $this->evidence;
36
        $sparovani['zbytek']             = $zbytek;
37
        $doklad->setDataValue('sparovani', $sparovani);
38
        return $doklad->insertToFlexiBee();
39
    }
40
41
    /**
42
     *  Hotovostní platba faktury.
43
     *
44
     * @link https://demo.flexibee.eu/devdoc/hotovostni-uhrada/ Hotovostní úhrada
45
     * @link https://demo.flexibee.eu/c/demo/pokladna Pokladny
46
     * @link https://demo.flexibee.eu/c/demo/typ-pokladni-pohyb Typy dokladů
47
     * @param float $value částka k úhradě
48
     * @param array $uhrada pole nepoviných vlastností úhrady s těmito možnými položkami:
49
     *        string|Pokladna  'pokladna' identifikátor pokladny
50
     *        string  'typDokl' kod typu pokladniho dokladu
51
     *        boolean 'kurzKDatuUhrady'
52
     *        string  'uhrazujiciDokl' Pokud uvedeno není, vždy se vytvoří nový
53
     *                                pokladní doklad.
54
     *        string  'rada' dokladová řada pro vytvářený pokladní doklad.
55
     *                      Např.:code:POKLADNA+
56
     *        string  'datumUhrady' sql formát. Výchozí: dnes
57
     * @return array výsledek pokusu o provedení úhrady
58
     */
59
    public function hotovostniUhrada($value, $uhrada = [])
60
    {
61
        if (!isset($uhrada['pokladna'])) {
62
            $uhrada['pokladna'] = 'code:POKLADNA KČ';
63
        }
64
65
        if (!isset($uhrada['typDokl'])) {
66
            $uhrada['typDokl'] = 'code:STANDARD';
67
        }
68
69
        if (!isset($uhrada['kurzKDatuUhrady'])) {
70
            $uhrada['kurzKDatuUhrady'] = false;
71
        }
72
73
        if (!isset($uhrada['datumUhrady'])) {
74
            $uhrada['datumUhrady'] = date('Y-m-d');
75
        }
76
77
        $uhrada['castka'] = $value;
78
79
        $this->setDataValue('hotovostni-uhrada', $uhrada);
80
        return $this->insertToFlexiBee();
81
    }
82
83
    /**
84
     * Odpočet zálohy (vystavení daňového dokladu k platbě)
85
     * 
86
     * @link https://demo.flexibee.eu/devdoc/odpocet-zaloh Odpočet záloh a ZDD
87
     * @param FakturaVydana $invoice zálohová faktura
88
     * @param array $odpocet Vlastnosti odpočtu
89
     * @return array
90
     */
91
    public function odpocetZalohy($invoice, $odpocet = [])
92
    {
93
        if (!isset($odpocet['castkaMen'])) {
94
            $odpocet['castkaMen'] = $invoice->getDataValue('sumCelkem');
95
        }
96
//        if (!isset($odpocet['id'])) {
0 ignored issues
show
Unused Code Comprehensibility introduced by
64% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
97
//            $odpocet['id'] = 'ext:odp:'.time();
98
//        }
99
        $odpocet['doklad'] = $invoice;
100
101
        $this->setDataValue('odpocty-zaloh', ['odpocet' => $odpocet]);
102
        return $this->insertToFlexiBee();
103
    }
104
105
    /**
106
     * Odpočet ZDD
107
     *
108
     * @link https://demo.flexibee.eu/devdoc/odpocet-zaloh Odpočet záloh a ZDD
109
     * @param FakturaVydana $invoice zálohová faktura
110
     * @param array $odpocet Vlastnosti odpočtu
111
     * @return array
112
     */
113
    public function odpocetZDD($invoice, $odpocet = [])
114
    {
115
        if (!isset($odpocet['castkaZaklMen'])) {
116
            $odpocet['castkaZaklMen'] = $invoice->getDataValue('sumZklZakl');
117
        }
118
        if (!isset($odpocet['castkaSnizMen'])) {
119
            $odpocet['castkaSnizMen'] = $invoice->getDataValue('sumZklSniz');
120
        }
121
        if (!isset($odpocet['castkaSniz2Men'])) {
122
            $odpocet['castkaSniz2Men'] = $invoice->getDataValue('sumZklSniz2');
123
        }
124
        if (!isset($odpocet['castkaOsvMen'])) {
125
            $odpocet['castkaOsvMen'] = $invoice->getDataValue('sumOsv');
126
        }
127
        if (!isset($odpocet['id'])) {
128
            $odpocet['id'] = 'ext:odpocet1';
129
        }
130
        $odpocet['doklad'] = $invoice;
131
132
        $this->setDataValue('odpocty-zaloh', ['odpocet' => $odpocet]);
133
        return $this->insertToFlexiBee();
134
    }
135
}