Issues (30)

Security Analysis    no request data  

This project does not seem to handle request data directly as such no vulnerable execution paths were found.

  Cross-Site Scripting
Cross-Site Scripting enables an attacker to inject code into the response of a web-request that is viewed by other users. It can for example be used to bypass access controls, or even to take over other users' accounts.
  File Exposure
File Exposure allows an attacker to gain access to local files that he should not be able to access. These files can for example include database credentials, or other configuration files.
  File Manipulation
File Manipulation enables an attacker to write custom data to files. This potentially leads to injection of arbitrary code on the server.
  Object Injection
Object Injection enables an attacker to inject an object into PHP code, and can lead to arbitrary code execution, file exposure, or file manipulation attacks.
  Code Injection
Code Injection enables an attacker to execute arbitrary code on the server.
  Response Splitting
Response Splitting can be used to send arbitrary responses.
  File Inclusion
File Inclusion enables an attacker to inject custom files into PHP's file loading mechanism, either explicitly passed to include, or for example via PHP's auto-loading mechanism.
  Command Injection
Command Injection enables an attacker to inject a shell command that is execute with the privileges of the web-server. This can be used to expose sensitive data, or gain access of your server.
  SQL Injection
SQL Injection enables an attacker to execute arbitrary SQL code on your database server gaining access to user data, or manipulating user data.
  XPath Injection
XPath Injection enables an attacker to modify the parts of XML document that are read. If that XML document is for example used for authentication, this can lead to further vulnerabilities similar to SQL Injection.
  LDAP Injection
LDAP Injection enables an attacker to inject LDAP statements potentially granting permission to run unauthorized queries, or modify content inside the LDAP tree.
  Header Injection
  Other Vulnerability
This category comprises other attack vectors such as manipulating the PHP runtime, loading custom extensions, freezing the runtime, or similar.
  Regex Injection
Regex Injection enables an attacker to execute arbitrary code in your PHP process.
  XML Injection
XML Injection enables an attacker to read files on your local filesystem including configuration files, or can be abused to freeze your web-server process.
  Variable Injection
Variable Injection enables an attacker to overwrite program variables with custom data, and can lead to further vulnerabilities.
Unfortunately, the security analysis is currently not available for your project. If you are a non-commercial open-source project, please contact support to gain access.

src/Model/CustomerTrait.php (1 issue)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
namespace Speicher210\Fastbill\Api\Model;
4
5
use JMS\Serializer\Annotation as JMS;
6
7
/**
8
 * Trait for customer data.
9
 */
10
trait CustomerTrait
11
{
12
    /**
13
     * The customer ID.
14
     *
15
     * @var integer
16
     *
17
     * @JMS\Type("integer")
18
     * @JMS\SerializedName("CUSTOMER_ID")
19
     */
20
    protected $customerId;
21
22
    /**
23
     * The external customer ID.
24
     *
25
     * @var string
26
     *
27
     * @JMS\Type("string")
28
     * @JMS\SerializedName("CUSTOMER_EXT_UID")
29
     */
30
    protected $customerExternalUid;
31
32
    /**
33
     * The own customer number.
34
     *
35
     * @var string
36
     *
37
     * @JMS\Type("string")
38
     * @JMS\SerializedName("CUSTOMER_NUMBER")
39
     */
40
    protected $customerNumber;
41
42
    /**
43
     * Days until date of payment.
44
     *
45
     * @var integer
46
     *
47
     * @JMS\Type("integer")
48
     * @JMS\SerializedName("DAYS_FOR_PAYMENT")
49
     */
50
    protected $daysForPayment;
51
52
    /**
53
     * Date of creation.
54
     *
55
     * @var \DateTime
56
     *
57
     * @JMS\Type("DateTime<'Y-m-d H:i:s'>")
58
     * @JMS\SerializedName("CREATED")
59
     */
60
    protected $created;
61
62
    /**
63
     * Payment type.
64
     *
65
     * @var integer
66
     *
67
     * @JMS\Type("integer")
68
     * @JMS\SerializedName("PAYMENT_TYPE")
69
     */
70
    protected $paymentType;
71
72
    /**
73
     * The bank name.
74
     *
75
     * @var string
76
     *
77
     * @JMS\Type("string")
78
     * @JMS\SerializedName("BANK_NAME")
79
     */
80
    protected $bankName;
81
82
    /**
83
     * The bank account number.
84
     *
85
     * @var string
86
     *
87
     * @JMS\Type("string")
88
     * @JMS\SerializedName("BANK_ACCOUNT_NUMBER")
89
     */
90
    protected $bankAccountNumber;
91
92
    /**
93
     * The bank code.
94
     *
95
     * @var string
96
     *
97
     * @JMS\Type("string")
98
     * @JMS\SerializedName("BANK_CODE")
99
     */
100
    protected $bankCode;
101
102
    /**
103
     * The bank account owner.
104
     *
105
     * @var string
106
     *
107
     * @JMS\Type("string")
108
     * @JMS\SerializedName("BANK_ACCOUNT_OWNER")
109
     */
110
    protected $bankAccountOwner;
111
112
    /**
113
     * The bank IBAN.
114
     *
115
     * @var string
116
     *
117
     * @JMS\Type("string")
118
     * @JMS\SerializedName("BANK_IBAN")
119
     */
120
    protected $bankIBAN;
121
122
    /**
123
     * The bank BIC.
124
     *
125
     * @var string
126
     *
127
     * @JMS\Type("string")
128
     * @JMS\SerializedName("BANK_BIC")
129
     */
130
    protected $bankBIC;
131
132
    /**
133
     * The bank account owner address.
134
     *
135
     * @var string
136
     *
137
     * @JMS\Type("string")
138
     * @JMS\SerializedName("BANK_ACCOUNT_OWNER_ADDRESS")
139
     */
140
    protected $bankAccountOwnerAddress;
141
142
    /**
143
     * The bank account owner city.
144
     *
145
     * @var string
146
     *
147
     * @JMS\Type("string")
148
     * @JMS\SerializedName("BANK_ACCOUNT_OWNER_CITY")
149
     */
150
    protected $bankAccountOwnerCity;
151
152
    /**
153
     * The bank account owner zip code.
154
     *
155
     * @var string
156
     *
157
     * @JMS\Type("string")
158
     * @JMS\SerializedName("BANK_ACCOUNT_OWNER_ZIPCODE")
159
     */
160
    protected $bankAccountOwnerZipCode;
161
162
    /**
163
     * The bank account owner email.
164
     *
165
     * @var string
166
     *
167
     * @JMS\Type("string")
168
     * @JMS\SerializedName("BANK_ACCOUNT_OWNER_EMAIL")
169
     */
170
    protected $bankAccountOwnerEmail;
171
172
    /**
173
     * The bank account mandate reference number.
174
     *
175
     * @var string
176
     *
177
     * @JMS\Type("string")
178
     * @JMS\SerializedName("BANK_ACCOUNT_MANDATE_REFERENCE")
179
     */
180
    protected $bankAccountMandateReference;
181
182
    /**
183
     * Show payment notice.
184
     *
185
     * @var boolean
186
     *
187
     * @JMS\Type("boolean")
188
     * @JMS\SerializedName("SHOW_PAYMENT_NOTICE")
189
     */
190
    protected $showPaymentNotice;
191
192
    /**
193
     * The customer type.
194
     *
195
     * @var string
196
     *
197
     * @JMS\Type("string")
198
     * @JMS\SerializedName("CUSTOMER_TYPE")
199
     */
200
    protected $customerType;
201
202
    /**
203
     * Newsletter option: 0 = no | 1 = yes.
204
     *
205
     * @var boolean
206
     *
207
     * @JMS\Type("boolean")
208
     * @JMS\SerializedName("NEWSLETTER_OPTIN")
209
     */
210
    protected $newsletterOptIn;
211
212
    /**
213
     * Affiliate.
214
     *
215
     * @var string
216
     *
217
     * @JMS\Type("string")
218
     * @JMS\SerializedName("AFFILIATE")
219
     */
220
    protected $affiliate;
221
222
    /**
223
     * Hash.
224
     *
225
     * @var string
226
     *
227
     * @JMS\Type("string")
228
     * @JMS\SerializedName("HASH")
229
     */
230
    protected $hash;
231
232
    /**
233
     * The bank account mandate reference date.
234
     *
235
     * @var \DateTime
236
     *
237
     * @JMS\Type("DateTime<'Y-m-d H:i:s'>")
238
     * @JMS\SerializedName("BANK_ACCOUNT_MANDATE_REFERENCE_DATE")
239
     */
240
    protected $bankAccountMandateReferenceDate;
241
242
    /**
243
     * The name of the organization.
244
     *
245
     * @var string
246
     *
247
     * @JMS\Type("string")
248
     * @JMS\SerializedName("ORGANIZATION")
249
     */
250
    protected $organization;
251
252
    /**
253
     * Academic title.
254
     *
255
     * @var string
256
     *
257
     * @JMS\Type("string")
258
     * @JMS\SerializedName("TITLE_ACADEMIC")
259
     */
260
    protected $titleAcademic;
261
262
    /**
263
     * Salutation.
264
     *
265
     * @var string
266
     *
267
     * @JMS\Type("string")
268
     * @JMS\SerializedName("SALUTATION")
269
     */
270
    protected $salutation;
271
    /**
272
     * The first name of the customer.
273
     *
274
     * @var string
275
     *
276
     * @JMS\Type("string")
277
     * @JMS\SerializedName("FIRST_NAME")
278
     */
279
    protected $firstName;
280
281
    /**
282
     * The last name of the customer.
283
     *
284
     * @var string
285
     *
286
     * @JMS\Type("string")
287
     * @JMS\SerializedName("LAST_NAME")
288
     */
289
    protected $lastName;
290
291
    /**
292
     * The address of the customer.
293
     *
294
     * @var string
295
     *
296
     * @JMS\Type("string")
297
     * @JMS\SerializedName("ADDRESS")
298
     */
299
    protected $address;
300
301
    /**
302
     * The address  of the customer.
303
     *
304
     * @var string
305
     *
306
     * @JMS\Type("string")
307
     * @JMS\SerializedName("ADDRESS_2")
308
     */
309
    protected $address2;
310
311
    /**
312
     * The zipcode of the customer.
313
     *
314
     * @var string
315
     *
316
     * @JMS\Type("string")
317
     * @JMS\SerializedName("ZIPCODE")
318
     */
319
    protected $zipCode;
320
321
    /**
322
     * The city of the customer.
323
     *
324
     * @var string
325
     *
326
     * @JMS\Type("string")
327
     * @JMS\SerializedName("CITY")
328
     */
329
    protected $city;
330
331
    /**
332
     * The customer country code (ISO 3166 ALPHA-2).
333
     *
334
     * @var string
335
     *
336
     * @JMS\Type("string")
337
     * @JMS\SerializedName("COUNTRY_CODE")
338
     */
339
    protected $countryCode;
340
341
    /**
342
     * The secondary address of the customer.
343
     *
344
     * @var string
345
     *
346
     * @JMS\Type("string")
347
     * @JMS\SerializedName("SECONDARY_ADDRESS")
348
     */
349
    protected $secondaryAddress;
350
351
    /**
352
     * The state of the customer.
353
     *
354
     * @var string
355
     *
356
     * @JMS\Type("string")
357
     * @JMS\SerializedName("STATE")
358
     */
359
    protected $state;
360
361
    /**
362
     * The phone number of the customer.
363
     *
364
     * @var string
365
     *
366
     * @JMS\Type("string")
367
     * @JMS\SerializedName("PHONE")
368
     */
369
    protected $phone;
370
371
    /**
372
     * The fax number of the customer.
373
     *
374
     * @var string
375
     *
376
     * @JMS\Type("string")
377
     * @JMS\SerializedName("FAX")
378
     */
379
    protected $fax;
380
381
    /**
382
     * The email address.
383
     *
384
     * @var string
385
     *
386
     * @JMS\Type("string")
387
     * @JMS\SerializedName("EMAIL")
388
     */
389
    protected $email;
390
391
    /**
392
     * The email address cc.
393
     *
394
     * @var string
395
     *
396
     * @JMS\Type("string")
397
     * @JMS\SerializedName("EMAIL_CC")
398
     */
399
    protected $emailCC;
400
401
    /**
402
     * The birthday of the customer.
403
     *
404
     * @var \DateTime
405
     *
406
     * @JMS\Type("DateTime<'Y-m-d'>")
407
     * @JMS\SerializedName("BIRTHDAY")
408
     */
409
    protected $birthday;
410
411
    /**
412
     * The payment mail address of the customer.
413
     *
414
     * @var string
415
     *
416
     * @JMS\Type("string")
417
     * @JMS\SerializedName("PAYMENT_MAIL_ADDRESS")
418
     */
419
    protected $paymentMailAddress;
420
421
    /**
422
     * The VAT identification number of the customer.
423
     *
424
     * @var string
425
     *
426
     * @JMS\Type("string")
427
     * @JMS\SerializedName("VAT_ID")
428
     */
429
    protected $vatId;
430
431
    /**
432
     * Tax ID of the customer.
433
     *
434
     * @var string
435
     *
436
     * @JMS\Type("string")
437
     * @JMS\SerializedName("TAX_ID")
438
     */
439
    protected $taxId;
440
441
    /**
442
     * The currency code of the customer.
443
     *
444
     * @var string
445
     *
446
     * @JMS\Type("string")
447
     * @JMS\SerializedName("CURRENCY_CODE")
448
     */
449
    protected $currencyCode;
450
451
    /**
452
     * Some comments about the customer.
453
     *
454
     * @var string
455
     *
456
     * @JMS\Type("string")
457
     * @JMS\SerializedName("COMMENT")
458
     */
459
    protected $comment;
460
461
    /**
462
     * The last update date for the customer.
463
     *
464
     * @var \DateTime
465
     *
466
     * @JMS\Type("DateTime<'Y-m-d H:i:s'>")
467
     * @JMS\SerializedName("LASTUPDATE")
468
     */
469
    protected $lastUpdate;
470
471
    /**
472
     * Tags of the customer.
473
     *
474
     * @var string
475
     *
476
     * @JMS\Type("string")
477
     * @JMS\SerializedName("TAGS")
478
     */
479
    protected $tags;
480
481
    /**
482
     * The language code of the customer.
483
     *
484
     * @var string
485
     *
486
     * @JMS\Type("string")
487
     * @JMS\SerializedName("LANGUAGE_CODE")
488
     */
489
    protected $languageCode;
490
491
    /**
492
     * URL for changing Master data and invoice data.
493
     *
494
     * @var string
495
     *
496
     * @JMS\Type("string")
497
     * @JMS\SerializedName("CHANGEDATA_URL")
498
     */
499
    protected $changeDataUrl;
500
501
    /**
502
     * URL leading to Dashboard.
503
     *
504
     * @var string
505
     *
506
     * @JMS\Type("string")
507
     * @JMS\SerializedName("DASHBOARD_URL")
508
     */
509
    protected $dashboardUrl;
510
511
    /**
512
     * The credit balance of the customer.
513
     *
514
     * @var string
515
     *
516
     * @JMS\Type("string")
517
     * @JMS\SerializedName("CREDIT_BALANCE")
518
     */
519
    protected $creditBalance;
520
521
    /**
522
     * Invoice delivery method.
523
     *
524
     * @var string
525
     *
526
     * @JMS\Type("string")
527
     * @JMS\SerializedName("INVOICE_DELIVERY_METHOD")
528
     */
529
    protected $invoiceDeliveryMethod;
530
531
    /**
532
     * Get the customer ID.
533
     *
534
     * @return integer
535
     */
536
    public function getCustomerId()
537
    {
538
        return $this->customerId;
539
    }
540
541
    /**
542
     * Set the customer ID.
543
     *
544
     * @param integer $customerId The ID.
545
     * @return $this
546
     */
547 18
    public function setCustomerId($customerId)
548
    {
549 18
        $this->customerId = $customerId;
550
551 18
        return $this;
552
    }
553
554
    /**
555
     * Get the customer external ID.
556
     *
557
     * @return string
558
     */
559
    public function getCustomerExternalUid()
560
    {
561
        return $this->customerExternalUid;
562
    }
563
564
    /**
565
     * Set the customer external ID.
566
     *
567
     * @param string $customerExternalUid The external ID.
568
     * @return $this
569
     */
570 15
    public function setCustomerExternalUid($customerExternalUid)
571
    {
572 15
        $this->customerExternalUid = $customerExternalUid;
573
574 15
        return $this;
575
    }
576
577
    /**
578
     * Get the customer number.
579
     *
580
     * @return integer
581
     */
582
    public function getCustomerNumber()
583
    {
584
        return $this->customerNumber;
585
    }
586
587
    /**
588
     * Set the customer number.
589
     *
590
     * @param integer $customerNumber The number.
591
     * @return $this
592
     */
593 15
    public function setCustomerNumber($customerNumber)
594
    {
595 15
        $this->customerNumber = $customerNumber;
0 ignored issues
show
Documentation Bug introduced by
The property $customerNumber was declared of type string, but $customerNumber is of type integer. Maybe add a type cast?

This check looks for assignments to scalar types that may be of the wrong type.

To ensure the code behaves as expected, it may be a good idea to add an explicit type cast.

$answer = 42;

$correct = false;

$correct = (bool) $answer;
Loading history...
596
597 15
        return $this;
598
    }
599
600
    /**
601
     * Get the days for payment.
602
     *
603
     * @return integer
604
     */
605
    public function getDaysForPayment()
606
    {
607
        return $this->daysForPayment;
608
    }
609
610
    /**
611
     * Set the days for payment.
612
     *
613
     * @param integer $daysForPayment The number of days for payment.
614
     * @return $this
615
     */
616 15
    public function setDaysForPayment($daysForPayment)
617
    {
618 15
        $this->daysForPayment = $daysForPayment;
619
620 15
        return $this;
621
    }
622
623
    /**
624
     * Get the date and time when the user was created.
625
     *
626
     * @return \DateTime
627
     */
628
    public function getCreated()
629
    {
630
        return $this->created;
631
    }
632
633
    /**
634
     * Set the date and time when the user was created.
635
     *
636
     * @param \DateTime $created The creation date and time.
637
     * @return $this
638
     */
639 15
    public function setCreated(\DateTime $created)
640
    {
641 15
        $this->created = $created;
642
643 15
        return $this;
644
    }
645
646
    /**
647
     * Get the payment type.
648
     *
649
     * @return integer
650
     */
651
    public function getPaymentType()
652
    {
653
        return $this->paymentType;
654
    }
655
656
    /**
657
     * Set the payment type.
658
     *
659
     * @param integer $paymentType The payment type.
660
     * @return $this
661
     */
662 15
    public function setPaymentType($paymentType)
663
    {
664 15
        $this->paymentType = $paymentType;
665
666 15
        return $this;
667
    }
668
669
    /**
670
     * Get the bank name.
671
     *
672
     * @return string
673
     */
674
    public function getBankName()
675
    {
676
        return $this->bankName;
677
    }
678
679
    /**
680
     * Get the bank name.
681
     *
682
     * @param string $bankName The name of the back.
683
     * @return $this
684
     */
685 15
    public function setBankName($bankName)
686
    {
687 15
        $this->bankName = $bankName;
688
689 15
        return $this;
690
    }
691
692
    /**
693
     * Get the bank account number.
694
     *
695
     * @return string
696
     */
697
    public function getBankAccountNumber()
698
    {
699
        return $this->bankAccountNumber;
700
    }
701
702
    /**
703
     * Set the bank account number.
704
     *
705
     * @param string $bankAccountNumber
706
     * @return $this
707
     */
708 15
    public function setBankAccountNumber($bankAccountNumber)
709
    {
710 15
        $this->bankAccountNumber = $bankAccountNumber;
711
712 15
        return $this;
713
    }
714
715
    /**
716
     * Get the bank code.
717
     *
718
     * @return string
719
     */
720
    public function getBankCode()
721
    {
722
        return $this->bankCode;
723
    }
724
725
    /**
726
     * Set the bank code.
727
     *
728
     * @param string $bankCode The code.
729
     * @return $this
730
     */
731 15
    public function setBankCode($bankCode)
732
    {
733 15
        $this->bankCode = $bankCode;
734
735 15
        return $this;
736
    }
737
738
    /**
739
     * Get the bank account owner.
740
     *
741
     * @return string
742
     */
743
    public function getBankAccountOwner()
744
    {
745
        return $this->bankAccountOwner;
746
    }
747
748
    /**
749
     * Set the bank account owner.
750
     *
751
     * @param string $bankAccountOwner The owner.
752
     * @return $this
753
     */
754 15
    public function setBankAccountOwner($bankAccountOwner)
755
    {
756 15
        $this->bankAccountOwner = $bankAccountOwner;
757
758 15
        return $this;
759
    }
760
761
    /**
762
     * Get the bank IBAN.
763
     *
764
     * @return string
765
     */
766
    public function getBankIBAN()
767
    {
768
        return $this->bankIBAN;
769
    }
770
771
    /**
772
     * Set the bank IBAN.
773
     *
774
     * @param string $bankIBAN The IBAN code.
775
     * @return $this
776
     */
777 15
    public function setBankIBAN($bankIBAN)
778
    {
779 15
        $this->bankIBAN = $bankIBAN;
780
781 15
        return $this;
782
    }
783
784
    /**
785
     * Get the bank BIC.
786
     *
787
     * @return string
788
     */
789
    public function getBankBIC()
790
    {
791
        return $this->bankBIC;
792
    }
793
794
    /**
795
     * Set the bank BIC.
796
     *
797
     * @param string $bankBIC The BIC.
798
     * @return $this
799
     */
800 15
    public function setBankBIC($bankBIC)
801
    {
802 15
        $this->bankBIC = $bankBIC;
803
804 15
        return $this;
805
    }
806
807
    /**
808
     * Get the bank account owner address.
809
     *
810
     * @return string
811
     */
812
    public function getBankAccountOwnerAddress()
813
    {
814
        return $this->bankAccountOwnerAddress;
815
    }
816
817
    /**
818
     * Set the bank account owner address.
819
     *
820
     * @param string $bankAccountOwnerAddress The address.
821
     * @return $this
822
     */
823 15
    public function setBankAccountOwnerAddress($bankAccountOwnerAddress)
824
    {
825 15
        $this->bankAccountOwnerAddress = $bankAccountOwnerAddress;
826
827 15
        return $this;
828
    }
829
830
    /**
831
     * Get the bank account owner city.
832
     *
833
     * @return string
834
     */
835
    public function getBankAccountOwnerCity()
836
    {
837
        return $this->bankAccountOwnerCity;
838
    }
839
840
    /**
841
     * Set the bank account owner city.
842
     *
843
     * @param string $bankAccountOwnerCity The city.
844
     * @return $this
845
     */
846 15
    public function setBankAccountOwnerCity($bankAccountOwnerCity)
847
    {
848 15
        $this->bankAccountOwnerCity = $bankAccountOwnerCity;
849
850 15
        return $this;
851
    }
852
853
    /**
854
     * Get the bank account owner zip code.
855
     *
856
     * @return string
857
     */
858
    public function getBankAccountOwnerZipCode()
859
    {
860
        return $this->bankAccountOwnerZipCode;
861
    }
862
863
    /**
864
     * Set the bank account owner zip code.
865
     *
866
     * @param string $bankAccountOwnerZipCode The zip code.
867
     * @return $this
868
     */
869 15
    public function setBankAccountOwnerZipCode($bankAccountOwnerZipCode)
870
    {
871 15
        $this->bankAccountOwnerZipCode = $bankAccountOwnerZipCode;
872
873 15
        return $this;
874
    }
875
876
    /**
877
     * Get the bank account owner email.
878
     *
879
     * @return string
880
     */
881
    public function getBankAccountOwnerEmail()
882
    {
883
        return $this->bankAccountOwnerEmail;
884
    }
885
886
    /**
887
     * Set the bank account owner email.
888
     *
889
     * @param string $bankAccountOwnerEmail The email address.
890
     * @return $this
891
     */
892 15
    public function setBankAccountOwnerEmail($bankAccountOwnerEmail)
893
    {
894 15
        $this->bankAccountOwnerEmail = $bankAccountOwnerEmail;
895
896 15
        return $this;
897
    }
898
899
    /**
900
     * Get the bank account mandate reference.
901
     *
902
     * @return string
903
     */
904
    public function getBankAccountMandateReference()
905
    {
906
        return $this->bankAccountMandateReference;
907
    }
908
909
    /**
910
     * Set the bank account mandate reference.
911
     *
912
     * @param string $bankAccountMandateReference The mandate reference.
913
     * @return $this
914
     */
915 15
    public function setBankAccountMandateReference($bankAccountMandateReference)
916
    {
917 15
        $this->bankAccountMandateReference = $bankAccountMandateReference;
918
919 15
        return $this;
920
    }
921
922
    /**
923
     * Check if the payment notice should be shown.
924
     *
925
     * @return boolean
926
     */
927
    public function shouldShowPaymentNotice()
928
    {
929
        return $this->showPaymentNotice;
930
    }
931
932
    /**
933
     * Set if the payment notice should be shown.
934
     *
935
     * @param boolean $showPaymentNotice Flag if the payment notice should be shown.
936
     * @return $this
937
     */
938 15
    public function setShowPaymentNotice($showPaymentNotice)
939
    {
940 15
        $this->showPaymentNotice = $showPaymentNotice;
941
942 15
        return $this;
943
    }
944
945
    /**
946
     * Get the customer type.
947
     *
948
     * @return string
949
     */
950
    public function getCustomerType()
951
    {
952
        return $this->customerType;
953
    }
954
955
    /**
956
     * Set the customer type.
957
     *
958
     * @param string $customerType The type.
959
     * @return $this
960
     */
961 15
    public function setCustomerType($customerType)
962
    {
963 15
        $this->customerType = $customerType;
964
965 15
        return $this;
966
    }
967
968
    /**
969
     * Check if the customer has opted in for newsletter.
970
     *
971
     * @return boolean
972
     */
973
    public function hasNewsletterOptIn()
974
    {
975
        return $this->newsletterOptIn;
976
    }
977
978
    /**
979
     * Set the newsletter opt in.
980
     *
981
     * @param boolean $newsletterOptIn Flag if the customer opted in.
982
     * @return $this
983
     */
984 15
    public function setNewsletterOptIn($newsletterOptIn)
985
    {
986 15
        $this->newsletterOptIn = $newsletterOptIn;
987
988 15
        return $this;
989
    }
990
991
    /**
992
     * Get the affiliate.
993
     *
994
     * @return string
995
     */
996
    public function getAffiliate()
997
    {
998
        return $this->affiliate;
999
    }
1000
1001
    /**
1002
     * Set the affiliate.
1003
     *
1004
     * @param string $affiliate The affiliate.
1005
     * @return $this
1006
     */
1007 15
    public function setAffiliate($affiliate)
1008
    {
1009 15
        $this->affiliate = $affiliate;
1010
1011 15
        return $this;
1012
    }
1013
1014
    /**
1015
     * Get the hash.
1016
     *
1017
     * @return string
1018
     */
1019 6
    public function getHash()
1020
    {
1021 6
        return $this->hash;
1022
    }
1023
1024
    /**
1025
     * Set the has of the customer.
1026
     *
1027
     * @param string $hash The hash.
1028
     * @return $this
1029
     */
1030 21
    public function setHash($hash)
1031
    {
1032 21
        $this->hash = $hash;
1033
1034 21
        return $this;
1035
    }
1036
1037
    /**
1038
     * Get the bank account mandate reference date.
1039
     *
1040
     * @return \DateTime
1041
     */
1042
    public function getBankAccountMandateReferenceDate()
1043
    {
1044
        return $this->bankAccountMandateReferenceDate;
1045
    }
1046
1047
    /**
1048
     * Set the bank account mandate reference date.
1049
     *
1050
     * @param \DateTime $bankAccountMandateReferenceDate The date as string.
1051
     * @return $this
1052
     */
1053 15
    public function setBankAccountMandateReferenceDate(\DateTime $bankAccountMandateReferenceDate)
1054
    {
1055 15
        $this->bankAccountMandateReferenceDate = $bankAccountMandateReferenceDate;
1056
1057 15
        return $this;
1058
    }
1059
1060
    /**
1061
     * Get the organization.
1062
     *
1063
     * @return string
1064
     */
1065
    public function getOrganization()
1066
    {
1067
        return $this->organization;
1068
    }
1069
1070
    /**
1071
     * Set the organization.
1072
     *
1073
     * @param string $organization The organization.
1074
     * @return $this
1075
     */
1076 15
    public function setOrganization($organization)
1077
    {
1078 15
        $this->organization = $organization;
1079
1080 15
        return $this;
1081
    }
1082
1083
    /**
1084
     * Get the academic title.
1085
     *
1086
     * @return string
1087
     */
1088
    public function getTitleAcademic()
1089
    {
1090
        return $this->titleAcademic;
1091
    }
1092
1093
    /**
1094
     * Set the academic title.
1095
     *
1096
     * @param string $titleAcademic The title.
1097
     * @return $this
1098
     */
1099 15
    public function setTitleAcademic($titleAcademic)
1100
    {
1101 15
        $this->titleAcademic = $titleAcademic;
1102
1103 15
        return $this;
1104
    }
1105
1106
    /**
1107
     * Get the salutation.
1108
     *
1109
     * @return string
1110
     */
1111
    public function getSalutation()
1112
    {
1113
        return $this->salutation;
1114
    }
1115
1116
    /**
1117
     * Set the salutation.
1118
     *
1119
     * @param string $salutation The salutation.
1120
     * @return $this
1121
     */
1122 15
    public function setSalutation($salutation)
1123
    {
1124 15
        $this->salutation = $salutation;
1125
1126 15
        return $this;
1127
    }
1128
1129
    /**
1130
     * Get the first name.
1131
     *
1132
     * @return string
1133
     */
1134
    public function getFirstName()
1135
    {
1136
        return $this->firstName;
1137
    }
1138
1139
    /**
1140
     * Set the first name.
1141
     *
1142
     * @param string $firstName The name.
1143
     * @return $this
1144
     */
1145 15
    public function setFirstName($firstName)
1146
    {
1147 15
        $this->firstName = $firstName;
1148
1149 15
        return $this;
1150
    }
1151
1152
    /**
1153
     * Get the last name.
1154
     *
1155
     * @return string
1156
     */
1157
    public function getLastName()
1158
    {
1159
        return $this->lastName;
1160
    }
1161
1162
    /**
1163
     * Set the last name.
1164
     *
1165
     * @param string $lastName The last name.
1166
     * @return $this
1167
     */
1168 15
    public function setLastName($lastName)
1169
    {
1170 15
        $this->lastName = $lastName;
1171
1172 15
        return $this;
1173
    }
1174
1175
    /**
1176
     * Get the full name of the customer.
1177
     *
1178
     * @return string
1179
     */
1180
    public function getFullName()
1181
    {
1182
        return implode(' ', array($this->firstName, $this->lastName));
1183
    }
1184
1185
    /**
1186
     * Get the address.
1187
     *
1188
     * @return string
1189
     */
1190
    public function getAddress()
1191
    {
1192
        return $this->address;
1193
    }
1194
1195
    /**
1196
     * Set the address.
1197
     *
1198
     * @param string $address The address.
1199
     * @return $this
1200
     */
1201 15
    public function setAddress($address)
1202
    {
1203 15
        $this->address = $address;
1204
1205 15
        return $this;
1206
    }
1207
1208
    /**
1209
     * Get the address 2.
1210
     *
1211
     * @return string
1212
     */
1213
    public function getAddress2()
1214
    {
1215
        return $this->address2;
1216
    }
1217
1218
    /**
1219
     * Set the address 2.
1220
     *
1221
     * @param string $address2 The address.
1222
     * @return $this
1223
     */
1224 15
    public function setAddress2($address2)
1225
    {
1226 15
        $this->address2 = $address2;
1227
1228 15
        return $this;
1229
    }
1230
1231
    /**
1232
     * Get the zip code.
1233
     *
1234
     * @return string
1235
     */
1236
    public function getZipCode()
1237
    {
1238
        return $this->zipCode;
1239
    }
1240
1241
    /**
1242
     * Set the zip code.
1243
     *
1244
     * @param string $zipCode The zip code.
1245
     * @return $this
1246
     */
1247 15
    public function setZipCode($zipCode)
1248
    {
1249 15
        $this->zipCode = $zipCode;
1250
1251 15
        return $this;
1252
    }
1253
1254
    /**
1255
     * Get the city.
1256
     *
1257
     * @return string
1258
     */
1259
    public function getCity()
1260
    {
1261
        return $this->city;
1262
    }
1263
1264
    /**
1265
     * Set the city.
1266
     *
1267
     * @param string $city The city.
1268
     * @return $this
1269
     */
1270 15
    public function setCity($city)
1271
    {
1272 15
        $this->city = $city;
1273
1274 15
        return $this;
1275
    }
1276
1277
    /**
1278
     * Get the country code.
1279
     *
1280
     * @return string
1281
     */
1282
    public function getCountryCode()
1283
    {
1284
        return $this->countryCode;
1285
    }
1286
1287
    /**
1288
     * Set the customer country code (ISO 3166 ALPHA-2).
1289
     *
1290
     * @param string $countryCode The country code.
1291
     * @return $this
1292
     */
1293 15
    public function setCountryCode($countryCode)
1294
    {
1295 15
        $this->countryCode = $countryCode;
1296
1297 15
        return $this;
1298
    }
1299
1300
    /**
1301
     * Get the secondary address.
1302
     *
1303
     * @return string
1304
     */
1305
    public function getSecondaryAddress()
1306
    {
1307
        return $this->secondaryAddress;
1308
    }
1309
1310
    /**
1311
     * Set the secondary address.
1312
     *
1313
     * @param string $secondaryAddress
1314
     * @return $this
1315
     */
1316 15
    public function setSecondaryAddress($secondaryAddress)
1317
    {
1318 15
        $this->secondaryAddress = $secondaryAddress;
1319
1320 15
        return $this;
1321
    }
1322
1323
    /**
1324
     * Get the state.
1325
     *
1326
     * @return string
1327
     */
1328
    public function getState()
1329
    {
1330
        return $this->state;
1331
    }
1332
1333
    /**
1334
     * Set the state.
1335
     *
1336
     * @param string $state The state.
1337
     * @return $this
1338
     */
1339 15
    public function setState($state)
1340
    {
1341 15
        $this->state = $state;
1342
1343 15
        return $this;
1344
    }
1345
1346
    /**
1347
     * Get the phone number.
1348
     *
1349
     * @return string
1350
     */
1351
    public function getPhone()
1352
    {
1353
        return $this->phone;
1354
    }
1355
1356
    /**
1357
     * Set the phone number.
1358
     *
1359
     * @param string $phone The phone number.
1360
     * @return $this
1361
     */
1362 15
    public function setPhone($phone)
1363
    {
1364 15
        $this->phone = $phone;
1365
1366 15
        return $this;
1367
    }
1368
1369
    /**
1370
     * Get the fax.
1371
     *
1372
     * @return string
1373
     */
1374
    public function getFax()
1375
    {
1376
        return $this->fax;
1377
    }
1378
1379
    /**
1380
     * Set the fac number.
1381
     *
1382
     * @param string $fax The fax number.
1383
     * @return $this
1384
     */
1385 15
    public function setFax($fax)
1386
    {
1387 15
        $this->fax = $fax;
1388
1389 15
        return $this;
1390
    }
1391
1392
    /**
1393
     * Get the email address.
1394
     *
1395
     * @return string
1396
     */
1397
    public function getEmail()
1398
    {
1399
        return $this->email;
1400
    }
1401
1402
    /**
1403
     * Set the email address.
1404
     *
1405
     * @param string $email The email.
1406
     * @return $this
1407
     */
1408 15
    public function setEmail($email)
1409
    {
1410 15
        $this->email = $email;
1411
1412 15
        return $this;
1413
    }
1414
1415
    /**
1416
     * Get the CC email address.
1417
     *
1418
     * @return string
1419
     */
1420
    public function getEmailCC()
1421
    {
1422
        return $this->emailCC;
1423
    }
1424
1425
    /**
1426
     * Set the email CC.
1427
     *
1428
     * @param string $emailCC The email.
1429
     * @return $this
1430
     */
1431 15
    public function setEmailCC($emailCC)
1432
    {
1433 15
        $this->emailCC = $emailCC;
1434
1435 15
        return $this;
1436
    }
1437
1438
    /**
1439
     * Get the birthday.
1440
     *
1441
     * @return \DateTime
1442
     */
1443 12
    public function getBirthday()
1444
    {
1445 12
        return $this->birthday;
1446
    }
1447
1448
    /**
1449
     * Set the birthday.
1450
     *
1451
     * @param \DateTime $birthday The birthday.
1452
     * @return $this
1453
     */
1454 15
    public function setBirthday(\DateTime $birthday)
1455
    {
1456 15
        $this->birthday = $birthday;
1457
1458 15
        return $this;
1459
    }
1460
1461
    /**
1462
     * Get the payment mail address.
1463
     *
1464
     * @return string
1465
     */
1466
    public function getPaymentMailAddress()
1467
    {
1468
        return $this->paymentMailAddress;
1469
    }
1470
1471
    /**
1472
     * Set the payment mail address.
1473
     *
1474
     * @param string $paymentMailAddress The address.
1475
     * @return $this
1476
     */
1477 15
    public function setPaymentMailAddress($paymentMailAddress)
1478
    {
1479 15
        $this->paymentMailAddress = $paymentMailAddress;
1480
1481 15
        return $this;
1482
    }
1483
1484
    /**
1485
     * Get the VAT ID.
1486
     *
1487
     * @return string
1488
     */
1489
    public function getVatId()
1490
    {
1491
        return $this->vatId;
1492
    }
1493
1494
    /**
1495
     * Set the VAT ID.
1496
     *
1497
     * @param string $vatId The VAT ID.
1498
     * @return $this
1499
     */
1500 15
    public function setVatId($vatId)
1501
    {
1502 15
        $this->vatId = $vatId;
1503
1504 15
        return $this;
1505
    }
1506
1507
    /**
1508
     * Get the tax ID.
1509
     *
1510
     * @return string
1511
     */
1512
    public function getTaxId()
1513
    {
1514
        return $this->taxId;
1515
    }
1516
1517
    /**
1518
     * Set the tax ID.
1519
     *
1520
     * @param string $taxId The tax ID.
1521
     * @return $this
1522
     */
1523 15
    public function setTaxId($taxId)
1524
    {
1525 15
        $this->taxId = $taxId;
1526
1527 15
        return $this;
1528
    }
1529
1530
    /**
1531
     * Get the currency code.
1532
     *
1533
     * @return string
1534
     */
1535
    public function getCurrencyCode()
1536
    {
1537
        return $this->currencyCode;
1538
    }
1539
1540
    /**
1541
     * Set the currency code.
1542
     *
1543
     * @param string $currencyCode The currency code.
1544
     * @return $this
1545
     */
1546 15
    public function setCurrencyCode($currencyCode)
1547
    {
1548 15
        $this->currencyCode = $currencyCode;
1549
1550 15
        return $this;
1551
    }
1552
1553
    /**
1554
     * Get the comment.
1555
     *
1556
     * @return string
1557
     */
1558
    public function getComment()
1559
    {
1560
        return $this->comment;
1561
    }
1562
1563
    /**
1564
     * Set the comment for the customer.
1565
     *
1566
     * @param string $comment
1567
     * @return $this
1568
     */
1569 15
    public function setComment($comment)
1570
    {
1571 15
        $this->comment = $comment;
1572
1573 15
        return $this;
1574
    }
1575
1576
    /**
1577
     * Get the date and time the customer was last updated.
1578
     *
1579
     * @return \DateTime
1580
     */
1581
    public function getLastUpdate()
1582
    {
1583
        return $this->lastUpdate;
1584
    }
1585
1586
    /**
1587
     * Set the last update date and time.
1588
     *
1589
     * @param \DateTime $lastUpdate The last update date and time.
1590
     * @return $this
1591
     */
1592 15
    public function setLastUpdate(\DateTime $lastUpdate)
1593
    {
1594 15
        $this->lastUpdate = $lastUpdate;
1595
1596 15
        return $this;
1597
    }
1598
1599
    /**
1600
     * Get the tags of the customer.
1601
     *
1602
     * @return array
1603
     */
1604
    public function getTags()
1605
    {
1606
        $tags = explode(',', $this->tags);
1607
1608
        return array_map('trim', $tags);
1609
    }
1610
1611
    /**
1612
     * Set tags for the customer.
1613
     *
1614
     * @param array $tags The tags to set.
1615
     * @return $this
1616
     */
1617 15
    public function setTags(array $tags)
1618
    {
1619 15
        $this->tags = implode(', ', $tags);
1620
1621 15
        return $this;
1622
    }
1623
1624
    /**
1625
     * Get the language code.
1626
     *
1627
     * @return string
1628
     */
1629
    public function getLanguageCode()
1630
    {
1631
        return $this->languageCode;
1632
    }
1633
1634
    /**
1635
     * Set the language code.
1636
     *
1637
     * @param string $languageCode The language code.
1638
     * @return $this
1639
     */
1640 15
    public function setLanguageCode($languageCode)
1641
    {
1642 15
        $this->languageCode = $languageCode;
1643
1644 15
        return $this;
1645
    }
1646
1647
    /**
1648
     * Get the change data URL.
1649
     *
1650
     * @return string
1651
     */
1652
    public function getChangeDataUrl()
1653
    {
1654
        return $this->changeDataUrl;
1655
    }
1656
1657
    /**
1658
     * Set the change data URL.
1659
     *
1660
     * @param string $changeDataUrl The URL.
1661
     * @return $this
1662
     */
1663 15
    public function setChangeDataUrl($changeDataUrl)
1664
    {
1665 15
        $this->changeDataUrl = $changeDataUrl;
1666
1667 15
        return $this;
1668
    }
1669
1670
    /**
1671
     * Get the dashboard URL.
1672
     *
1673
     * @return string
1674
     */
1675
    public function getDashboardUrl()
1676
    {
1677
        return $this->dashboardUrl;
1678
    }
1679
1680
    /**
1681
     * Set the dashboard URL.
1682
     *
1683
     * @param string $dashboardUrl The URL.
1684
     * @return $this
1685
     */
1686 15
    public function setDashboardUrl($dashboardUrl)
1687
    {
1688 15
        $this->dashboardUrl = $dashboardUrl;
1689
1690 15
        return $this;
1691
    }
1692
1693
    /**
1694
     * Get the credit balance.
1695
     *
1696
     * @return string
1697
     */
1698
    public function getCreditBalance()
1699
    {
1700
        return $this->creditBalance;
1701
    }
1702
1703
    /**
1704
     * Set the credit balance.
1705
     *
1706
     * @param string $creditBalance
1707
     * @return $this
1708
     */
1709 15
    public function setCreditBalance($creditBalance)
1710
    {
1711 15
        $this->creditBalance = $creditBalance;
1712
1713 15
        return $this;
1714
    }
1715
1716
    /**
1717
     * Get the invoice delivery method.
1718
     *
1719
     * @return string
1720
     */
1721
    public function getInvoiceDeliveryMethod()
1722
    {
1723
        return $this->invoiceDeliveryMethod;
1724
    }
1725
1726
    /**
1727
     * Set the invoice delivery method.
1728
     *
1729
     * @param string $invoiceDeliveryMethod The delivery method.
1730
     * @return $this
1731
     */
1732 15
    public function setInvoiceDeliveryMethod($invoiceDeliveryMethod)
1733
    {
1734 15
        $this->invoiceDeliveryMethod = $invoiceDeliveryMethod;
1735
1736 15
        return $this;
1737
    }
1738
}
1739