-
Notifications
You must be signed in to change notification settings - Fork 8
/
FindOverdueInvoices.php
107 lines (94 loc) · 2.65 KB
/
FindOverdueInvoices.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#!/usr/bin/php -f
<?php
declare(strict_types=1);
/**
* This file is part of the EaseCore package.
*
* (c) Vítězslav Dvořák <http://vitexsoftware.com>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*/
namespace Example\AbraFlexi;
include_once './config.php';
include_once '../vendor/autoload.php';
/**
* Get Number of days overdue.
*
* @param string $dueDate FlexiBee date
*
* @return int
*/
function poSplatnosti($dueDate)
{
return (int) date_diff(
\AbraFlexi\RO::flexiDateToDateTime($dueDate),
new \DateTime(),
)->format('%a');
}
/**
* Vrať faktury po splatnosti.
*
* @param \AbraFlexi\FakturaVydana $invoicer
*
* @return array
*/
function getOverdueInvoices($invoicer)
{
$result = null;
$invoicer->defaultUrlParams['order'] = 'datVyst@A';
$invoicer->defaultUrlParams['relations'] = 'adresar,kontakt';
$invoices = $invoicer->getColumnsFromFlexibee(
[
'id',
'kod',
'stavUhrK',
'firma',
'buc',
'varSym',
'specSym',
'sumCelkem',
'duzpPuv',
'datSplat',
'datVyst'],
"(stavUhrK is null OR stavUhrK eq 'stavUhr.castUhr') AND storno eq false",
'id',
);
if ($invoicer->lastResponseCode === 200) {
$result = $invoices;
}
return $result;
}
$statuser = new \AbraFlexi\Status();
$invoicer = new \AbraFlexi\FakturaVydana();
$firmer = new \AbraFlexi\Adresar();
foreach (getOverdueInvoices($invoicer) as $invoice) {
$kontakt = $firmer->getColumnsFromFlexibee(
['nazev', 'email'],
['id' => $invoice['firma']],
);
if (isset($kontakt[0]['email'])) {
$invoicer->setMyKey($invoice['id']);
$to = $kontakt[0]['email'];
$subject = sprintf(
_('Overdue invoice: %s - %s days'),
$invoice['kod'],
poSplatnosti($invoice['datSplat']),
);
$body = sprintf(_('Please pay %s,-'), $invoice['sumCelkem']);
if ($statuser->getDataValue('licenseVariant') === 'basic') {
$mail = new \Ease\Mailer($to, $subject, $body);
$mail->addFile($invoicer->downloadInFormat('pdf', '/tmp/'));
$mail->addFile($invoicer->downloadInFormat('isdoc', '/tmp/'));
$mail->send();
} else {
if ($invoicer->sendByMail($to, $subject, $body)) {
$invoicer->addStatusMessage(spritnf(
_('Message sent: %s to %s'),
$subject,
$to,
), 'mail');
}
}
}
}