Completed
Pull Request — master (#43)
by
unknown
02:19
created

Membership::setCreatedAt()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 4
rs 10
cc 1
eloc 3
nc 1
nop 1
1
<?php
2
3
namespace WMDE\Fundraising\Entities;
4
5
use Doctrine\ORM\Mapping as ORM;
6
use Gedmo\Mapping\Annotation as Gedmo;
7
8
/**
9
 * @since 2.0
10
 *
11
 * @ORM\Table(name="request", indexes={@ORM\Index(name="idx_donation_id", columns={"donation_id"})})
12
 * @ORM\Entity
13
 */
14
class Membership {
15
16
	/**
17
	 * @var integer
18
	 *
19
	 * @ORM\Column(name="donation_id", type="integer", nullable=true)
20
	 */
21
	private $donationId;
22
23
	/**
24
	 * @var \DateTime
25
	 *
26
	 * @ORM\Column(name="timestamp", type="datetime", nullable=true)
27
	 */
28
	private $timestamp;
29
30
	/**
31
	 * @var string
32
	 *
33
	 * @ORM\Column(name="anrede", type="string", length=16, nullable=true)
34
	 */
35
	private $salutation;
36
37
	/**
38
	 * @var string
39
	 *
40
	 * @ORM\Column(name="firma", type="string", length=100, nullable=true)
41
	 */
42
	private $company;
43
44
	/**
45
	 * @var string
46
	 *
47
	 * @ORM\Column(name="titel", type="string", length=16, nullable=true)
48
	 */
49
	private $title;
50
51
	/**
52
	 * @var string
53
	 *
54
	 * @ORM\Column(name="name", type="string", length=250, options={"default":""}, nullable=false)
55
	 */
56
	private $name = '';
57
58
	/**
59
	 * @var string
60
	 *
61
	 * @ORM\Column(name="vorname", type="string", length=50, options={"default":""}, nullable=false)
62
	 */
63
	private $firstName = '';
64
65
	/**
66
	 * @var string
67
	 *
68
	 * @ORM\Column(name="nachname", type="string", length=50, options={"default":""}, nullable=false)
69
	 */
70
	private $lastName = '';
71
72
	/**
73
	 * @var string
74
	 *
75
	 * @ORM\Column(name="strasse", type="string", length=100, nullable=true)
76
	 */
77
	private $address;
78
79
	/**
80
	 * @var string
81
	 *
82
	 * @ORM\Column(name="plz", type="string", length=8, nullable=true)
83
	 */
84
	private $postcode;
85
86
	/**
87
	 * @var string
88
	 *
89
	 * @ORM\Column(name="ort", type="string", length=100, nullable=true)
90
	 */
91
	private $city;
92
93
	/**
94
	 * @var string
95
	 *
96
	 * @ORM\Column(name="email", type="string", length=250, options={"default":""}, nullable=false)
97
	 */
98
	private $email = '';
99
100
	/**
101
	 * @var string
102
	 *
103
	 * @ORM\Column(name="phone", type="string", length=30, options={"default":""}, nullable=false)
104
	 */
105
	private $phone = '';
106
107
	/**
108
	 * @var \DateTime
109
	 *
110
	 * @ORM\Column(name="dob", type="date", nullable=true)
111
	 */
112
	private $dob;
113
114
	/**
115
	 * @var string
116
	 *
117
	 * @ORM\Column(name="wikimedium_shipping", type="string", options={"default":""}, nullable=false)
118
	 */
119
	private $wikimediumShipping = 'none';
120
121
	/**
122
	 * @var string
123
	 *
124
	 * @ORM\Column(name="membership_type", type="string", options={"default":"sustaining"}, nullable=false)
125
	 */
126
	private $membershipType = 'sustaining';
127
128
	/**
129
	 * @var integer
130
	 *
131
	 * @ORM\Column(name="membership_fee", type="integer", options={"default":0}, nullable=false)
132
	 */
133
	private $membershipFee = 0;
134
135
	/**
136
	 * @var integer
137
	 *
138
	 * @ORM\Column(name="membership_fee_interval", type="smallint", options={"default":12}, nullable=true)
139
	 */
140
141
	private $membershipFeeInterval = 12;
142
143
	/**
144
	 * @var string
145
	 *
146
	 * @ORM\Column(name="account_number", type="string", length=16, options={"default":""}, nullable=false)
147
	 */
148
	private $accountNumber = '';
149
150
	/**
151
	 * @var string
152
	 *
153
	 * @ORM\Column(name="bank_name", type="string", length=50, options={"default":""}, nullable=false)
154
	 */
155
	private $bankName = '';
156
157
	/**
158
	 * @var string
159
	 *
160
	 * @ORM\Column(name="bank_code", type="string", length=16, options={"default":""}, nullable=false)
161
	 */
162
	private $bankCode = '';
163
164
	/**
165
	 * @var string
166
	 *
167
	 * @ORM\Column(name="iban", type="string", length=32, options={"default":""}, nullable=true)
168
	 */
169
	private $iban = '';
170
171
	/**
172
	 * @var string
173
	 *
174
	 * @ORM\Column(name="bic", type="string", length=32, options={"default":""}, nullable=true)
175
	 */
176
	private $bic = '';
177
178
	/**
179
	 * @var string
180
	 *
181
	 * @ORM\Column(name="account_holder", type="string", length=50, options={"default":""}, nullable=false)
182
	 */
183
	private $accountHolder = '';
184
185
	/**
186
	 * @var string
187
	 *
188
	 * @ORM\Column(name="comment", type="text", options={"default":""}, nullable=false)
189
	 */
190
	private $comment = '';
191
192
	/**
193
	 * @var \DateTime
194
	 *
195
	 * @ORM\Column(name="export", type="datetime", nullable=true)
196
	 */
197
	private $export;
198
199
	/**
200
	 * @var \DateTime
201
	 *
202
	 * @ORM\Column(name="backup", type="datetime", nullable=true)
203
	 */
204
	private $backup;
205
206
	/**
207
	 * @var boolean
208
	 *
209
	 * @ORM\Column(name="wikilogin", type="boolean", options={"default":0}, nullable=false)
210
	 */
211
	private $wikilogin = 0;
212
213
	/**
214
	 * @var string
215
	 *
216
	 * @ORM\Column(name="tracking", type="string", length=50, nullable=true)
217
	 */
218
	private $tracking;
219
220
	/**
221
	 * @var integer
222
	 *
223
	 * @ORM\Column(name="status", type="smallint", options={"default":0}, nullable=true)
224
	 */
225
	private $status = 0;
226
227
	/**
228
	 * @var string
229
	 *
230
	 * @ORM\Column(name="country", type="string", length=8, options={"default":""}, nullable=true)
231
	 */
232
	private $country = '';
233
234
	/**
235
	 * @var string
236
	 *
237
	 * @ORM\Column(name="data", type="text", nullable=true)
238
	 */
239
	private $data;
240
241
	/**
242
	 * @var string
243
	 *
244
	 * @ORM\Column(name="guid", type="blob", length=16, nullable=true)
245
	 */
246
	private $guid;
0 ignored issues
show
Unused Code introduced by
The property $guid is not used and could be removed.

This check marks private properties in classes that are never used. Those properties can be removed.

Loading history...
247
248
	/**
249
	 * @var integer
250
	 *
251
	 * @ORM\Column(name="id", type="integer")
252
	 * @ORM\Id
253
	 * @ORM\GeneratedValue(strategy="IDENTITY")
254
	 */
255
	private $id;
256
257
	/**
258
	 * @var \DateTime
259
	 * @Gedmo\Timestampable(on="create")
260
	 * @ORM\Column(type="datetime")
261
	 */
262
	private $createdAt;
263
264
	const STATUS_CONFIRMED = 1;
265
	const STATUS_NEUTRAL = 0;
266
	const STATUS_DELETED = -1;
267
	const STATUS_MODERATION = -2;
268
	const STATUS_ABORTED = -4;
269
	const STATUS_CANCELED = -8;
270
271
	/**
272
	 * Set donationId
273
	 *
274
	 * @param integer $donationId
275
	 * @return Membership
276
	 */
277
	public function setDonationId( $donationId ) {
278
		$this->donationId = $donationId;
279
280
		return $this;
281
	}
282
283
	/**
284
	 * Get donationId
285
	 *
286
	 * @return integer
287
	 */
288
	public function getDonationId() {
289
		return $this->donationId;
290
	}
291
292
	/**
293
	 * Set timestamp
294
	 *
295
	 * @param \DateTime $timestamp
296
	 * @return Membership
297
	 */
298
	public function setTimestamp( $timestamp ) {
299
		$this->timestamp = $timestamp;
300
301
		return $this;
302
	}
303
304
	/**
305
	 * Get timestamp
306
	 *
307
	 * @return \DateTime
308
	 */
309
	public function getTimestamp() {
310
		return $this->timestamp;
311
	}
312
313
	/**
314
	 * Set salutation
315
	 *
316
	 * @param string $salutation
317
	 * @return Membership
318
	 */
319
	public function setSalutation( $salutation ) {
320
		$this->salutation = $salutation;
321
322
		return $this;
323
	}
324
325
	/**
326
	 * Get salutation
327
	 *
328
	 * @return string
329
	 */
330
	public function getSalutation() {
331
		return $this->salutation;
332
	}
333
334
	/**
335
	 * Set company name
336
	 *
337
	 * @param string $company
338
	 * @return Membership
339
	 */
340
	public function setCompany( $company ) {
341
		$this->company = $company;
342
343
		return $this;
344
	}
345
346
	/**
347
	 * Get company name
348
	 *
349
	 * @return string
350
	 */
351
	public function getCompany() {
352
		return $this->company;
353
	}
354
355
	/**
356
	 * Set title
357
	 *
358
	 * @param string $title
359
	 * @return Membership
360
	 */
361
	public function setTitle( $title ) {
362
		$this->title = $title;
363
364
		return $this;
365
	}
366
367
	/**
368
	 * Get title
369
	 *
370
	 * @return string
371
	 */
372
	public function getTitle() {
373
		return $this->title;
374
	}
375
376
	/**
377
	 * Set name
378
	 *
379
	 * @param string $name
380
	 * @return Membership
381
	 */
382
	public function setName( $name ) {
383
		$this->name = $name;
384
385
		return $this;
386
	}
387
388
	/**
389
	 * Get name
390
	 *
391
	 * @return string
392
	 */
393
	public function getName() {
394
		return $this->name;
395
	}
396
397
	/**
398
	 * Set first name
399
	 *
400
	 * @param string $firstName
401
	 * @return Membership
402
	 */
403
	public function setFirstName( $firstName ) {
404
		$this->firstName = $firstName;
405
		$this->setNameFromParts( $firstName, $this->getLastName() );
406
407
		return $this;
408
	}
409
410
	/**
411
	 * Get first name
412
	 *
413
	 * @return string
414
	 */
415
	public function getFirstName() {
416
		return $this->firstName;
417
	}
418
419
	/**
420
	 * Set last name
421
	 *
422
	 * @param string $lastName
423
	 * @return Membership
424
	 */
425
	public function setLastName( $lastName ) {
426
		$this->lastName = $lastName;
427
		$this->setNameFromParts( $this->getFirstName(), $lastName );
428
429
		return $this;
430
	}
431
432
	/**
433
	 * Get last name
434
	 *
435
	 * @return string
436
	 */
437
	public function getLastName() {
438
		return $this->lastName;
439
	}
440
441
	/**
442
	 * Sets the full name
443
	 */
444
	public function setNameFromParts( $vorname, $nachname) {
445
		$parts = array_filter( [ $vorname, $nachname ] );
446
		$this->setName( implode( ' ', $parts ) );
447
448
		return $this;
449
	}
450
451
	/**
452
	 * Set address (street, etc)
453
	 *
454
	 * @param string $address
455
	 * @return Membership
456
	 */
457
	public function setAddress( $address ) {
458
		$this->address = $address;
459
460
		return $this;
461
	}
462
463
	/**
464
	 * Get address (street, etc)
465
	 *
466
	 * @return string
467
	 */
468
	public function getAddress() {
469
		return $this->address;
470
	}
471
472
	/**
473
	 * Set postcode
474
	 *
475
	 * @param string $postcode
476
	 * @return Membership
477
	 */
478
	public function setPostcode( $postcode ) {
479
		$this->postcode = $postcode;
480
481
		return $this;
482
	}
483
484
	/**
485
	 * Get postcode
486
	 *
487
	 * @return string
488
	 */
489
	public function getPostcode() {
490
		return $this->postcode;
491
	}
492
493
	/**
494
	 * Set city
495
	 *
496
	 * @param string $city
497
	 * @return Membership
498
	 */
499
	public function setCity( $city ) {
500
		$this->city = $city;
501
502
		return $this;
503
	}
504
505
	/**
506
	 * Get city
507
	 *
508
	 * @return string
509
	 */
510
	public function getCity() {
511
		return $this->city;
512
	}
513
514
	/**
515
	 * Set email
516
	 *
517
	 * @param string $email
518
	 * @return Membership
519
	 */
520
	public function setEmail( $email ) {
521
		$this->email = $email;
522
523
		return $this;
524
	}
525
526
	/**
527
	 * Get email
528
	 *
529
	 * @return string
530
	 */
531
	public function getEmail() {
532
		return $this->email;
533
	}
534
535
	/**
536
	 * Set phone
537
	 *
538
	 * @param string $phone
539
	 * @return Membership
540
	 */
541
	public function setPhone( $phone ) {
542
		$this->phone = $phone;
543
544
		return $this;
545
	}
546
547
	/**
548
	 * Get phone
549
	 *
550
	 * @return string
551
	 */
552
	public function getPhone() {
553
		return $this->phone;
554
	}
555
556
	/**
557
	 * Set dob
558
	 *
559
	 * @param \DateTime $dob
560
	 * @return Membership
561
	 */
562
	public function setDob( $dob ) {
563
		$this->dob = $dob;
564
565
		return $this;
566
	}
567
568
	/**
569
	 * Get dob
570
	 *
571
	 * @return \DateTime
572
	 */
573
	public function getDob() {
574
		return $this->dob;
575
	}
576
577
	/**
578
	 * Set wikimediumShipping
579
	 *
580
	 * @param string $wikimediumShipping
581
	 * @return Membership
582
	 */
583
	public function setWikimediumShipping( $wikimediumShipping ) {
584
		$this->wikimediumShipping = $wikimediumShipping;
585
586
		return $this;
587
	}
588
589
	/**
590
	 * Get wikimediumShipping
591
	 *
592
	 * @return string
593
	 */
594
	public function getWikimediumShipping() {
595
		return $this->wikimediumShipping;
596
	}
597
598
	/**
599
	 * Set membershipType
600
	 *
601
	 * @param string $membershipType
602
	 * @return Membership
603
	 */
604
	public function setMembershipType( $membershipType ) {
605
		$this->membershipType = $membershipType;
606
607
		return $this;
608
	}
609
610
	/**
611
	 * Get membershipType
612
	 *
613
	 * @return string
614
	 */
615
	public function getMembershipType() {
616
		return $this->membershipType;
617
	}
618
619
	/**
620
	 * Set membershipFee
621
	 *
622
	 * @param integer $membershipFee
623
	 * @return Membership
624
	 */
625
	public function setMembershipFee( $membershipFee ) {
626
		$this->membershipFee = $membershipFee;
627
628
		return $this;
629
	}
630
631
	/**
632
	 * Get membershipFee
633
	 *
634
	 * @return integer
635
	 */
636
	public function getMembershipFee() {
637
		return $this->membershipFee;
638
	}
639
640
	/**
641
	 * Set membershipFeeInterval
642
	 *
643
	 * @param integer $membershipFeeInterval
644
	 *
645
	 * @return Membership
646
	 */
647
	public function setMembershipFeeInterval($membershipFeeInterval) {
648
		$this->membershipFeeInterval = $membershipFeeInterval;
649
650
		return $this;
651
	}
652
653
	/**
654
	 * Get membershipFeeInterval
655
	 *
656
	 * @return integer
657
	 */
658
	public function getMembershipFeeInterval() {
659
		return $this->membershipFeeInterval;
660
	}
661
662
663
	/**
664
	 * Set accountNumber
665
	 *
666
	 * @param string $accountNumber
667
	 * @return Membership
668
	 */
669
	public function setAccountNumber( $accountNumber ) {
670
		$this->accountNumber = $accountNumber;
671
672
		return $this;
673
	}
674
675
	/**
676
	 * Get accountNumber
677
	 *
678
	 * @return string
679
	 */
680
	public function getAccountNumber() {
681
		return $this->accountNumber;
682
	}
683
684
	/**
685
	 * Set bankName
686
	 *
687
	 * @param string $bankName
688
	 * @return Membership
689
	 */
690
	public function setBankName( $bankName ) {
691
		$this->bankName = $bankName;
692
693
		return $this;
694
	}
695
696
	/**
697
	 * Get bankName
698
	 *
699
	 * @return string
700
	 */
701
	public function getBankName() {
702
		return $this->bankName;
703
	}
704
705
	/**
706
	 * Set bankCode
707
	 *
708
	 * @param string $bankCode
709
	 * @return Membership
710
	 */
711
	public function setBankCode( $bankCode ) {
712
		$this->bankCode = $bankCode;
713
714
		return $this;
715
	}
716
717
	/**
718
	 * Get bankCode
719
	 *
720
	 * @return string
721
	 */
722
	public function getBankCode() {
723
		return $this->bankCode;
724
	}
725
726
	/**
727
	 * Set iban
728
	 *
729
	 * @param string $iban
730
	 * @return Membership
731
	 */
732
	public function setIban( $iban ) {
733
		$this->iban = $iban;
734
735
		return $this;
736
	}
737
738
	/**
739
	 * Get iban
740
	 *
741
	 * @return string
742
	 */
743
	public function getIban() {
744
		return $this->iban;
745
	}
746
747
	/**
748
	 * Set bic
749
	 *
750
	 * @param string $bic
751
	 * @return Membership
752
	 */
753
	public function setBic( $bic ) {
754
		$this->bic = $bic;
755
756
		return $this;
757
	}
758
759
	/**
760
	 * Get bic
761
	 *
762
	 * @return string
763
	 */
764
	public function getBic() {
765
		return $this->bic;
766
	}
767
768
	/**
769
	 * Set accountHolder
770
	 *
771
	 * @param string $accountHolder
772
	 * @return Membership
773
	 */
774
	public function setAccountHolder( $accountHolder ) {
775
		$this->accountHolder = $accountHolder;
776
777
		return $this;
778
	}
779
780
	/**
781
	 * Get accountHolder
782
	 *
783
	 * @return string
784
	 */
785
	public function getAccountHolder() {
786
		return $this->accountHolder;
787
	}
788
789
	/**
790
	 * Set comment
791
	 *
792
	 * @param string $comment
793
	 * @return Membership
794
	 */
795
	public function setComment( $comment ) {
796
		$this->comment = $comment;
797
798
		return $this;
799
	}
800
801
	/**
802
	 * Get comment
803
	 *
804
	 * @return string
805
	 */
806
	public function getComment() {
807
		return $this->comment;
808
	}
809
810
	/**
811
	 * Set export
812
	 *
813
	 * @param \DateTime $export
814
	 * @return Membership
815
	 */
816
	public function setExport( $export ) {
817
		$this->export = $export;
818
819
		return $this;
820
	}
821
822
	/**
823
	 * Get export
824
	 *
825
	 * @return \DateTime
826
	 */
827
	public function getExport() {
828
		return $this->export;
829
	}
830
831
	/**
832
	 * Set backup
833
	 *
834
	 * @param \DateTime $backup
835
	 * @return Membership
836
	 */
837
	public function setBackup( $backup ) {
838
		$this->backup = $backup;
839
840
		return $this;
841
	}
842
843
	/**
844
	 * Get backup
845
	 *
846
	 * @return \DateTime
847
	 */
848
	public function getBackup() {
849
		return $this->backup;
850
	}
851
852
	/**
853
	 * Set wikilogin
854
	 *
855
	 * @param boolean $wikilogin
856
	 * @return Membership
857
	 */
858
	public function setWikilogin( $wikilogin ) {
859
		$this->wikilogin = $wikilogin;
860
861
		return $this;
862
	}
863
864
	/**
865
	 * Get wikilogin
866
	 *
867
	 * @return boolean
868
	 */
869
	public function getWikilogin() {
870
		return $this->wikilogin;
871
	}
872
873
	/**
874
	 * Set tracking
875
	 *
876
	 * @param string $tracking
877
	 * @return Membership
878
	 */
879
	public function setTracking( $tracking ) {
880
		$this->tracking = $tracking;
881
882
		return $this;
883
	}
884
885
	/**
886
	 * Get tracking
887
	 *
888
	 * @return string
889
	 */
890
	public function getTracking() {
891
		return $this->tracking;
892
	}
893
894
	/**
895
	 * Set status
896
	 *
897
	 * @param integer $status
898
	 * @return Membership
899
	 */
900
	public function setStatus( $status ) {
901
		$this->status = $status;
902
903
		return $this;
904
	}
905
906
	/**
907
	 * Get status
908
	 *
909
	 * @return integer
910
	 */
911
	public function getStatus() {
912
		return $this->status;
913
	}
914
915
	/**
916
	 * Set country
917
	 *
918
	 * @param string $country
919
	 * @return Membership
920
	 */
921
	public function setCountry( $country ) {
922
		$this->country = $country;
923
924
		return $this;
925
	}
926
927
	/**
928
	 * Get country
929
	 *
930
	 * @return string
931
	 */
932
	public function getCountry() {
933
		return $this->country;
934
	}
935
936
	/**
937
	 * Set data
938
	 *
939
	 * @param string $data
940
	 * @return Membership
941
	 */
942
	public function setData( $data ) {
943
		$this->data = $data;
944
945
		return $this;
946
	}
947
948
	/**
949
	 * Get data
950
	 *
951
	 * @return string
952
	 */
953
	public function getData() {
954
		return $this->data;
955
	}
956
957
	/**
958
	 * Get id
959
	 *
960
	 * @return integer
961
	 */
962
	public function getId() {
963
		return $this->id;
964
	}
965
966
	/**
967
	 * @return \DateTime
968
	 */
969
	public function getCreatedAt() {
970
		return $this->createdAt;
971
	}
972
973
	/**
974
	 * @param \DateTime $createdAt
975
	 * @return Membership
976
	 */
977
	public function setCreatedAt( $createdAt ) {
978
		$this->createdAt = $createdAt;
979
		return $this;
980
	}
981
982
	public function isUnconfirmed() {
983
		return $this->getStatus() === self::STATUS_NEUTRAL;
984
	}
985
986
	public function log( $message ) {
987
		$dataArray = $this->getDataArray();
988
		$dataArray[ "log" ][ date( "Y-m-d H:i:s" ) ] = $message;
989
		return $this->saveDataArray( $dataArray );
990
	}
991
992
	private function getDataArray() {
993
		return unserialize( base64_decode( $this->data ) );
994
	}
995
996
	private function saveDataArray( array $dataArray ) {
997
		$this->data = base64_encode( serialize( $dataArray ) );
998
		return $this;
999
	}
1000
}
1001