Completed
Push — master ( ef76c8...b7db51 )
by Antony
03:55
created

SchedulesService::cloneFromArray()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 12
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
c 1
b 0
f 1
dl 0
loc 12
rs 9.4285
cc 1
eloc 7
nc 1
nop 1
1
<?php
2
/*************************************************************************************/
3
/*      This file is part of the Thelia package.                                     */
4
/*                                                                                   */
5
/*      Copyright (c) OpenStudio                                                     */
6
/*      email : [email protected]                                                       */
7
/*      web : http://www.thelia.net                                                  */
8
/*                                                                                   */
9
/*      For the full copyright and license information, please view the LICENSE.txt  */
10
/*      file that was distributed with this source code.                             */
11
/*************************************************************************************/
12
/*************************************************************************************/
13
14
namespace Dealer\Service;
15
16
use Dealer\Event\DealerEvents;
17
use Dealer\Event\DealerSchedulesEvent;
18
use Dealer\Model\DealerShedules;
19
use Dealer\Model\DealerShedulesQuery;
20
use Dealer\Service\Base\AbstractBaseService;
21
use Dealer\Service\Base\BaseServiceInterface;
22
use Symfony\Component\EventDispatcher\Event;
23
24
/**
25
 * Class SchedulesService
26
 * @package Dealer\Service
27
 */
28
class SchedulesService extends AbstractBaseService implements BaseServiceInterface
29
{
30
    const EVENT_CREATE = DealerEvents::DEALER_SCHEDULES_CREATE;
31
    const EVENT_CREATE_BEFORE = DealerEvents::DEALER_SCHEDULES_CREATE_BEFORE;
32
    const EVENT_CREATE_AFTER = DealerEvents::DEALER_SCHEDULES_CREATE_AFTER;
33
    const EVENT_DELETE = DealerEvents::DEALER_SCHEDULES_DELETE;
34
    const EVENT_DELETE_BEFORE = DealerEvents::DEALER_SCHEDULES_DELETE_BEFORE;
35
    const EVENT_DELETE_AFTER = DealerEvents::DEALER_SCHEDULES_DELETE_AFTER;
36
    const EVENT_UPDATE = DealerEvents::DEALER_SCHEDULES_UPDATE;
37
    const EVENT_UPDATE_BEFORE = DealerEvents::DEALER_SCHEDULES_UPDATE_BEFORE;
38
    const EVENT_UPDATE_AFTER = DealerEvents::DEALER_SCHEDULES_UPDATE_AFTER;
39
40
    protected function createProcess(Event $event)
41
    {
42
        $event->getDealerSchedules()->save();
43
    }
44
45
    protected function updateProcess(Event $event)
46
    {
47
        $event->getDealerSchedules()->save();
48
    }
49
50
    protected function deleteProcess(Event $event)
51
    {
52
        $event->getDealerSchedules()->delete();
53
    }
54
55
    public function createFromArray($data, $locale = null)
56
    {
57
        $dealer_schedules = $this->hydrateObjectArray($data, $locale);
58
59
        $event = new DealerSchedulesEvent();
60
        $event->setDealerSchedules($dealer_schedules);
61
62
        $this->create($event);
63
64
        return $event->getDealerSchedules();
65
    }
66
67
    public function cloneFromArray($data)
68
    {
69
        $dealer_schedules = $this->hydrateObjectArray($data);
70
        $clone = $dealer_schedules->copy();
71
72
        $event = new DealerSchedulesEvent();
73
        $event->setDealerSchedules($clone);
74
75
        $this->create($event);
76
77
        return $event->getDealerSchedules();
78
    }
79
80
    public function updateFromArray($data, $locale = null)
81
    {
82
        $dealer_schedules = $this->hydrateObjectArray($data, $locale);
83
84
        $event = new DealerSchedulesEvent();
85
        $event->setDealerSchedules($dealer_schedules);
86
87
        $this->update($event);
88
89
        return $event->getDealerSchedules();
90
    }
91
92
    public function deleteFromId($id)
93
    {
94
        $dealer = DealerShedulesQuery::create()->findOneById($id);
95
96
        if ($dealer) {
97
            $event = new DealerSchedulesEvent();
98
            $event->setDealerSchedules($dealer);
99
100
            $this->delete($event);
101
        }
102
    }
103
104
    protected function hydrateObjectArray($data, $locale = null)
0 ignored issues
show
Unused Code introduced by
The parameter $locale is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
105
    {
106
        $model = new DealerShedules();
107
108
        if (isset($data['id'])) {
109
            $dealer = DealerShedulesQuery::create()->findOneById($data['id']);
110
            if ($dealer) {
111
                $model = $dealer;
112
            }
113
        }
114
115
        // Require Field
116
        if (isset($data['day'])) {
117
            $model->setDay($data['day']);
118
        }
119
        if (isset($data['begin'])) {
120
            $model->setBegin($data['begin']);
121
        }
122
        if (isset($data['end'])) {
123
            $model->setEnd($data['end']);
124
        }
125
        if (isset($data['period_begin'])) {
126
            $model->setPeriodBegin($data['period_begin']);
127
        }
128
        if (isset($data['period_end'])) {
129
            $model->setPeriodEnd($data['period_end']);
130
        }
131
        if (isset($data['dealer_id'])) {
132
            $model->setDealerId($data['dealer_id']);
133
        }
134
        if (isset($data['closed'])) {
135
            $model->setClosed($data['closed']);
136
        }
137
138
139
        return $model;
140
    }
141
}