This repository has been archived by the owner on Jul 29, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 8
/
FindOverdueInvoices.php
86 lines (77 loc) · 2.45 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
#!/usr/bin/php -f
<?php
/**
* FlexiPeeHP - Example how to find overdue invoices
*
* @author Vítězslav Dvořák <[email protected]>
* @copyright (G) 2017 Vitex Software
*/
namespace Example\FlexiPeeHP;
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 intval(date_diff(\FlexiPeeHP\FlexiBeeRO::flexiDateToDateTime($dueDate),
new \DateTime())->format('%a'));
}
/**
* Vrať faktury po splatnosti
*
* @param \FlexiPeeHP\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 \FlexiPeeHP\Status();
$invoicer = new \FlexiPeeHP\FakturaVydana();
$firmer = new \FlexiPeeHP\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');
}
}
}
}