Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 1 | Rev 780 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1 Rev 768
Línea 23... Línea 23...
23
use LeadersLinked\Form\CompanyProfileSocialNetworkForm;
23
use LeadersLinked\Form\CompanyProfileSocialNetworkForm;
24
use LeadersLinked\Form\CompanyProfileLocationForm;
24
use LeadersLinked\Form\CompanyProfileLocationForm;
25
use LeadersLinked\Form\CompanyProfileExtendedForm;
25
use LeadersLinked\Form\CompanyProfileExtendedForm;
26
use LeadersLinked\Form\CompanyProfileImageForm;
26
use LeadersLinked\Form\CompanyProfileImageForm;
27
use LeadersLinked\Form\CompanyProfileCoverForm;
27
use LeadersLinked\Form\CompanyProfileCoverForm;
-
 
28
use LeadersLinked\Form\CompanyProfileHeaderForm;
-
 
29
use LeadersLinked\Form\CompanyProfileFooterForm;
Línea 28... Línea 30...
28
 
30
 
29
use LeadersLinked\Form\CompanyProfileIndustryForm;
31
use LeadersLinked\Form\CompanyProfileIndustryForm;
30
use LeadersLinked\Form\CompanyProfileCompanySizeForm;
32
use LeadersLinked\Form\CompanyProfileCompanySizeForm;
31
use LeadersLinked\Form\CompanyProfileFoundationYearForm;
33
use LeadersLinked\Form\CompanyProfileFoundationYearForm;
Línea 141... Línea 143...
141
            $formExtended = new CompanyProfileExtendedForm();
143
            $formExtended = new CompanyProfileExtendedForm();
142
            $formFoundationYear = new CompanyProfileFoundationYearForm();
144
            $formFoundationYear = new CompanyProfileFoundationYearForm();
143
            $formWebsite = new CompanyProfileWebsiteForm();
145
            $formWebsite = new CompanyProfileWebsiteForm();
144
            $formImage = new CompanyProfileImageForm($this->config);
146
            $formImage = new CompanyProfileImageForm($this->config);
145
            $formCover = new CompanyProfileCoverForm($this->config);
147
            $formCover = new CompanyProfileCoverForm($this->config);
-
 
148
            $formHeader = new CompanyProfileHeaderForm($this->config);
-
 
149
            $formFooter = new CompanyProfileFooterForm($this->config);
-
 
150
 
-
 
151
 
-
 
152
 
146
            $formCompanySize = new CompanyProfileCompanySizeForm($this->adapter);
153
            $formCompanySize = new CompanyProfileCompanySizeForm($this->adapter);
147
            $formIndustry = new CompanyProfileIndustryForm($this->adapter);
154
            $formIndustry = new CompanyProfileIndustryForm($this->adapter);
Línea 148... Línea 155...
148
            
155
            
149
            $companyFollowerMapper = CompanyFollowerMapper::getInstance($this->adapter);
156
            $companyFollowerMapper = CompanyFollowerMapper::getInstance($this->adapter);
Línea 181... Línea 188...
181
                'formLocation'          => $formLocation,
188
                'formLocation'          => $formLocation,
182
                'formSocialNetwork'     => $formSocialNetwork,
189
                'formSocialNetwork'     => $formSocialNetwork,
183
                'formExtended'          => $formExtended,
190
                'formExtended'          => $formExtended,
184
                'formImage'             => $formImage,
191
                'formImage'             => $formImage,
185
                'formCover'             => $formCover,
192
                'formCover'             => $formCover,
-
 
193
                'formHeader'             => $formHeader,
-
 
194
                'formFooter'             => $formFooter,
186
                'formFoundationYear'    => $formFoundationYear,
195
                'formFoundationYear'    => $formFoundationYear,
187
                'formWebsite'           => $formWebsite,
196
                'formWebsite'           => $formWebsite,
188
                'formIndustry'          => $formIndustry,
197
                'formIndustry'          => $formIndustry,
189
                'formCompanySize'       => $formCompanySize,
198
                'formCompanySize'       => $formCompanySize,
190
                'image_size_cover'      => $image_size_cover,
199
                'image_size_cover'      => $image_size_cover,
Línea 1066... Línea 1075...
1066
                
1075
                
1067
            ]);
1076
            ]);
Línea -... Línea 1077...
-
 
1077
        }
-
 
1078
        
-
 
1079
        
-
 
1080
        $data = [
-
 
1081
            'success' => false,
-
 
1082
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
1083
        ];
-
 
1084
        
-
 
1085
        
-
 
1086
        return new JsonModel($data);
-
 
1087
    }
-
 
1088
 
-
 
1089
 
-
 
1090
 
-
 
1091
     /**
-
 
1092
     * Cambio de la imagen de de la cabecera de los reportes 
-
 
1093
     * @return \Laminas\View\Model\JsonModel
-
 
1094
     */
-
 
1095
    public function headerAction()
-
 
1096
    {
-
 
1097
        $operation = $this->params()->fromRoute('operation');
-
 
1098
 
-
 
1099
        
-
 
1100
        $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
1101
        $currentUser = $currentUserPlugin->getUser();
-
 
1102
        $currentCompany = $currentUserPlugin->getCompany();
-
 
1103
 
-
 
1104
        
-
 
1105
        
-
 
1106
        
-
 
1107
        $request = $this->getRequest();
-
 
1108
        if($request->isPost()) {
-
 
1109
            
-
 
1110
            $companyMapper = CompanyMapper::getInstance($this->adapter);
-
 
1111
            $company = $companyMapper->fetchOne($currentCompany->id);
-
 
1112
            
-
 
1113
            $target_path = $this->config['leaderslinked.fullpath.company'] . DIRECTORY_SEPARATOR . $company->uuid;
-
 
1114
            
-
 
1115
 
-
 
1116
            
-
 
1117
            if($operation == 'delete') {
-
 
1118
                if($company->header) {
-
 
1119
                    
-
 
1120
                    if(!Image::delete($target_path, $company->header)) {
-
 
1121
                        return new JsonModel([
-
 
1122
                            'success'   => false,
-
 
1123
                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
1124
                        ]);
-
 
1125
                    }
-
 
1126
                }
-
 
1127
                
-
 
1128
                $this->logger->info('Se borro el header  de la empresa ' . $company->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
-
 
1129
                $company->header = '';
-
 
1130
                if(!$companyMapper->updateHeader($company)) {
-
 
1131
                    return new JsonModel([
-
 
1132
                        'success'   => false,
-
 
1133
                        'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
1134
                    ]);
-
 
1135
                }
-
 
1136
                
-
 
1137
            } else {
-
 
1138
                $form = new CompanyProfileHeaderForm($this->config);
-
 
1139
                $data   = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
-
 
1140
                
-
 
1141
                $form->setData($data);
-
 
1142
                
-
 
1143
                if($form->isValid()) {
-
 
1144
                    
-
 
1145
 
-
 
1146
                    $files = $request->getFiles()->toArray();
-
 
1147
                    if(!empty($files['header']['error'])) {
-
 
1148
                        
-
 
1149
                        return new JsonModel([
-
 
1150
                            'success'   => false,
-
 
1151
                            'data'   =>  'ERROR_UPLOAD_FILE'
-
 
1152
                        ]);
-
 
1153
                        
-
 
1154
                        
-
 
1155
                    }
-
 
1156
                    
-
 
1157
                    if($company->header) {
-
 
1158
                        
-
 
1159
                        if(!Image::delete($target_path, $company->header)) {
-
 
1160
                            return new JsonModel([
-
 
1161
                                'success'   => false,
-
 
1162
                                'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
1163
                            ]);
-
 
1164
                        }
-
 
1165
                    }
-
 
1166
                    
-
 
1167
                    list( $target_width, $target_height ) = explode('x', $this->config['leaderslinked.image_sizes.company_header_size']);
-
 
1168
                    $source             = $files['header']['tmp_name'];
-
 
1169
                    $target_filename    = 'company-header-' . uniqid() . '.png';
-
 
1170
                    $crop_to_dimensions = false;
-
 
1171
                    
-
 
1172
                    if(!Image::uploadImage($source, $target_path, $target_filename, $target_width, $target_height, $crop_to_dimensions)) {
-
 
1173
                        return new JsonModel([
-
 
1174
                            'success'   => false,
-
 
1175
                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
1176
                        ]);
-
 
1177
                    }
-
 
1178
                    
-
 
1179
                    
-
 
1180
                    $company->header = $target_filename;
-
 
1181
                    if(!$companyMapper->updateHeader($company)) {
-
 
1182
                        return new JsonModel([
-
 
1183
                            'success'   => false,
-
 
1184
                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
1185
                        ]);
-
 
1186
                    }
-
 
1187
                    
-
 
1188
 
-
 
1189
 
-
 
1190
                    
-
 
1191
                    $this->logger->info('Se actualizo el header  de la empresa ' . $company->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
-
 
1192
                    
-
 
1193
                } else {
-
 
1194
                    $messages = [];
-
 
1195
                    $form_messages = (array) $form->getMessages();
-
 
1196
                    foreach($form_messages  as $fieldname => $field_messages)
-
 
1197
                    {
-
 
1198
                        $messages[$fieldname] = array_values($field_messages);
-
 
1199
                    }
-
 
1200
                    
-
 
1201
                    return new JsonModel([
-
 
1202
                        'success'   => false,
-
 
1203
                        'data'   => $messages
-
 
1204
                    ]);
-
 
1205
                }
-
 
1206
            }
-
 
1207
            return new JsonModel([
-
 
1208
                'success'   => true,
-
 
1209
                'data' => $this->url()->fromRoute('storage', ['type' => 'company-header', 'code' => $company->uuid, 'filename' => $company->header])
-
 
1210
                
-
 
1211
            ]);
-
 
1212
        }
-
 
1213
        
-
 
1214
        
-
 
1215
        $data = [
-
 
1216
            'success' => false,
-
 
1217
            'data' => 'ERROR_METHOD_NOT_ALLOWED'
-
 
1218
        ];
-
 
1219
        
-
 
1220
        
-
 
1221
        return new JsonModel($data);
-
 
1222
    }
-
 
1223
 
-
 
1224
 
-
 
1225
     /**
-
 
1226
     * Cambio de la imagen de de la cabecera de los reportes 
-
 
1227
     * @return \Laminas\View\Model\JsonModel
-
 
1228
     */
-
 
1229
    public function footerAction()
-
 
1230
    {
-
 
1231
        $operation          = $this->params()->fromRoute('operation');
-
 
1232
 
-
 
1233
        
-
 
1234
        $currentUserPlugin = $this->plugin('currentUserPlugin');
-
 
1235
        $currentUser = $currentUserPlugin->getUser();
-
 
1236
        $currentCompany = $currentUserPlugin->getCompany();
-
 
1237
 
-
 
1238
        
-
 
1239
        
-
 
1240
        
-
 
1241
        $request = $this->getRequest();
-
 
1242
        if($request->isPost()) {
-
 
1243
            
-
 
1244
            $companyMapper = CompanyMapper::getInstance($this->adapter);
-
 
1245
            $company = $companyMapper->fetchOne($currentCompany->id);
-
 
1246
            
-
 
1247
            $target_path = $this->config['leaderslinked.fullpath.company'] . DIRECTORY_SEPARATOR . $company->uuid;
-
 
1248
            
-
 
1249
 
-
 
1250
            
-
 
1251
            if($operation == 'delete') {
-
 
1252
                if($company->footer) {
-
 
1253
                    
-
 
1254
                    if(!Image::delete($target_path, $company->footer)) {
-
 
1255
                        return new JsonModel([
-
 
1256
                            'success'   => false,
-
 
1257
                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
1258
                        ]);
-
 
1259
                    }
-
 
1260
                }
-
 
1261
                
-
 
1262
                $this->logger->info('Se borro el footer  de la empresa ' . $company->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
-
 
1263
                $company->footer = '';
-
 
1264
                if(!$companyMapper->updateFooter($company)) {
-
 
1265
                    return new JsonModel([
-
 
1266
                        'success'   => false,
-
 
1267
                        'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
1268
                    ]);
-
 
1269
                }
-
 
1270
                
-
 
1271
            } else {
-
 
1272
                $form = new CompanyProfileFooterForm($this->config);
-
 
1273
                $data   = array_merge($request->getPost()->toArray(), $request->getFiles()->toArray());
-
 
1274
                
-
 
1275
                $form->setData($data);
-
 
1276
                
-
 
1277
                if($form->isValid()) {
-
 
1278
                    
-
 
1279
 
-
 
1280
                    $files = $request->getFiles()->toArray();
-
 
1281
                    if(!empty($files['footer']['error'])) {
-
 
1282
                        
-
 
1283
                        return new JsonModel([
-
 
1284
                            'success'   => false,
-
 
1285
                            'data'   =>  'ERROR_UPLOAD_FILE'
-
 
1286
                        ]);
-
 
1287
                        
-
 
1288
                        
-
 
1289
                    }
-
 
1290
                    
-
 
1291
                    if($company->footer) {
-
 
1292
                        
-
 
1293
                        if(!Image::delete($target_path, $company->footer)) {
-
 
1294
                            return new JsonModel([
-
 
1295
                                'success'   => false,
-
 
1296
                                'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
1297
                            ]);
-
 
1298
                        }
-
 
1299
                    }
-
 
1300
                    
-
 
1301
                    list( $target_width, $target_height ) = explode('x', $this->config['leaderslinked.image_sizes.company_footer_size']);
-
 
1302
                    $source             = $files['footer']['tmp_name'];
-
 
1303
                    $target_filename    = 'company-footer-' . uniqid() . '.png';
-
 
1304
                    $crop_to_dimensions = false;
-
 
1305
                    
-
 
1306
                    if(!Image::uploadImage($source, $target_path, $target_filename, $target_width, $target_height, $crop_to_dimensions)) {
-
 
1307
                        return new JsonModel([
-
 
1308
                            'success'   => false,
-
 
1309
                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
1310
                        ]);
-
 
1311
                    }
-
 
1312
                    
-
 
1313
                    
-
 
1314
                    $company->footer = $target_filename;
-
 
1315
                    if(!$companyMapper->updateFooter($company)) {
-
 
1316
                        return new JsonModel([
-
 
1317
                            'success'   => false,
-
 
1318
                            'data'   =>  'ERROR_THERE_WAS_AN_ERROR'
-
 
1319
                        ]);
-
 
1320
                    }
-
 
1321
                    
-
 
1322
 
-
 
1323
 
-
 
1324
                    
-
 
1325
                    $this->logger->info('Se actualizo el footer  de la empresa ' . $company->name, ['user_id' => $currentUser->id, 'ip' => Functions::getUserIP()]);
-
 
1326
                    
-
 
1327
                } else {
-
 
1328
                    $messages = [];
-
 
1329
                    $form_messages = (array) $form->getMessages();
-
 
1330
                    foreach($form_messages  as $fieldname => $field_messages)
-
 
1331
                    {
-
 
1332
                        $messages[$fieldname] = array_values($field_messages);
-
 
1333
                    }
-
 
1334
                    
-
 
1335
                    return new JsonModel([
-
 
1336
                        'success'   => false,
-
 
1337
                        'data'   => $messages
-
 
1338
                    ]);
-
 
1339
                }
-
 
1340
            }
-
 
1341
            return new JsonModel([
-
 
1342
                'success'   => true,
-
 
1343
                'data' => $this->url()->fromRoute('storage', ['type' => 'company-footer', 'code' => $company->uuid, 'filename' => $company->footer])
-
 
1344
                
-
 
1345
            ]);
1068
        }
1346
        }
1069
        
1347
        
1070
        
1348
        
1071
        $data = [
1349
        $data = [