Code Duplication    Length = 56-57 lines in 2 locations

system/modules/Ecommerce/Ecommerce.php 2 locations

@@ 67-123 (lines=57) @@
64
        }
65
    }
66
67
    public function parseFields($data, $cart) {
68
        $fields = \Ecommerce\UserAdds\Field::getList();
69
        $name = '';
70
        foreach ($fields as $field) {
71
            if ($field->save && !empty($data[$field->id])) {
72
                $name .= htmlspecialchars($data[$field->id]) . ' ';
73
            }
74
        }
75
        $name = trim($name);
76
77
        $userAdds = Ecommerce\UserAdds::get([['user_id', $cart->user->id], ['name', $name]]);
78
        if (!$userAdds) {
79
            $userAdds = new Ecommerce\UserAdds();
80
            $userAdds->user_id = $cart->user->id;
81
            $userAdds->name = $name;
82
            $userAdds->save();
83
            foreach ($fields as $field) {
84
                if (!$field->save) {
85
                    continue;
86
                }
87
                $userAddsValue = new Ecommerce\UserAdds\Value();
88
                $userAddsValue->value = htmlspecialchars($data[$field->id]);
89
                $userAddsValue->useradds_field_id = $field->id;
90
                $userAddsValue->useradds_id = $userAdds->id;
91
                $userAddsValue->save();
92
            }
93
        }
94
        $user = \Users\User::get($cart->user_id);
95
        foreach ($fields as $field) {
96
            $info = new \Ecommerce\Cart\Info();
97
            $info->name = $field->name;
98
            $info->value = htmlspecialchars($data[$field->id]);
99
            $info->useradds_field_id = $field->id;
100
            $info->cart_id = $cart->id;
101
            $info->save();
102
            $relations = [];
103
            if ($field->userfield) {
104
                if (strpos($field->userfield, ':')) {
105
                    $path = explode(':', $field->userfield);
106
                    if (!$user->{$path[0]}->{$path[1]}) {
107
                        $user->{$path[0]}->{$path[1]} = $info->value;
108
                        $relations[$path[0]] = $path[0];
109
                    }
110
                } else {
111
                    if (!$user->{$field->userfield}) {
112
                        $user->{$field->userfield} = $info->value;
113
                    }
114
                }
115
            }
116
            foreach ($relations as $rel) {
117
                $user->$rel->save();
118
            }
119
            $user->save();
120
        }
121
        return $userAdds;
122
    }
123
124
    public function parseDeliveryFields($data, $cart, $fields) {
125
        $name = '';
126
        foreach ($fields as $field) {
@@ 124-179 (lines=56) @@
121
        return $userAdds;
122
    }
123
124
    public function parseDeliveryFields($data, $cart, $fields) {
125
        $name = '';
126
        foreach ($fields as $field) {
127
            if ($field->save && !empty($data[$field->id])) {
128
                $name .= htmlspecialchars($data[$field->id]) . ' ';
129
            }
130
        }
131
        $name = trim($name);
132
133
        $save = Ecommerce\Delivery\Save::get([['user_id', $cart->user->id], ['name', $name]]);
134
        if (!$save) {
135
            $save = new Ecommerce\Delivery\Save();
136
            $save->user_id = $cart->user->id;
137
            $save->name = $name;
138
            $save->save();
139
            foreach ($fields as $field) {
140
                if (!$field->save) {
141
                    continue;
142
                }
143
                $saveValue = new Ecommerce\Delivery\Value();
144
                $saveValue->value = htmlspecialchars($data[$field->id]);
145
                $saveValue->delivery_field_id = $field->id;
146
                $saveValue->delivery_save_id = $save->id;
147
                $saveValue->save();
148
            }
149
        }
150
        $user = \Users\User::get($cart->user_id);
151
        foreach ($fields as $field) {
152
            $info = new \Ecommerce\Cart\DeliveryInfo();
153
            $info->name = $field->name;
154
            $info->value = htmlspecialchars($data[$field->id]);
155
            $info->delivery_field_id = $field->id;
156
            $info->cart_id = $cart->id;
157
            $info->save();
158
            $relations = [];
159
            if ($field->userfield) {
160
                if (strpos($field->userfield, ':')) {
161
                    $path = explode(':', $field->userfield);
162
                    if (!$user->{$path[0]}->{$path[1]}) {
163
                        $user->{$path[0]}->{$path[1]} = $info->value;
164
                        $relations[$path[0]] = $path[0];
165
                    }
166
                } else {
167
                    if (!$user->{$field->userfield}) {
168
                        $user->{$field->userfield} = $info->value;
169
                    }
170
                }
171
            }
172
            foreach ($relations as $rel) {
173
                $user->$rel->save();
174
            }
175
            $user->save();
176
        }
177
        return $save;
178
    }
179
180
    public function getCurCart($create = true) {
181
        $cart = false;
182
        if (!empty($_SESSION['cart']['cart_id'])) {