Code Duplication    Length = 56-57 lines in 2 locations

system/modules/Ecommerce/Ecommerce.php 2 locations

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