Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.
 All Data Structures Functions Variables Pages
ImportCreateUpdateModelsSequentialProcess.php
1 <?php
2  /*********************************************************************************
3  * Zurmo is a customer relationship management program developed by
4  * Zurmo, Inc. Copyright (C) 2017 Zurmo Inc.
5  *
6  * Zurmo is free software; you can redistribute it and/or modify it under
7  * the terms of the GNU Affero General Public License version 3 as published by the
8  * Free Software Foundation with the addition of the following permission added
9  * to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED WORK
10  * IN WHICH THE COPYRIGHT IS OWNED BY ZURMO, ZURMO DISCLAIMS THE WARRANTY
11  * OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
12  *
13  * Zurmo is distributed in the hope that it will be useful, but WITHOUT
14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
15  * FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
16  * details.
17  *
18  * You should have received a copy of the GNU Affero General Public License along with
19  * this program; if not, see http://www.gnu.org/licenses or write to the Free
20  * Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
21  * 02110-1301 USA.
22  *
23  * You can contact Zurmo, Inc. with a mailing address at 27 North Wacker Drive
24  * Suite 370 Chicago, IL 60606. or at email address contact@zurmo.com.
25  *
26  * The interactive user interfaces in original and modified versions
27  * of this program must display Appropriate Legal Notices, as required under
28  * Section 5 of the GNU Affero General Public License version 3.
29  *
30  * In accordance with Section 7(b) of the GNU Affero General Public License version 3,
31  * these Appropriate Legal Notices must retain the display of the Zurmo
32  * logo and Zurmo copyright notice. If the display of the logo is not reasonably
33  * feasible for technical reasons, the Appropriate Legal Notices must display the words
34  * "Copyright Zurmo Inc. 2017. All rights reserved".
35  ********************************************************************************/
36 
42  {
43  protected $explicitReadWriteModelPermissions;
44 
45  public function __construct(Import $import, ImportDataProvider $dataProvider)
46  {
47  $unserializedData = unserialize($import->serializedData);
48  $this->import = $import;
49  $this->mappingData = $unserializedData['mappingData'];
50  $this->importRules = ImportRulesUtil::makeImportRulesByType($unserializedData['importRulesType']);
51  $this->dataProvider = $dataProvider;
52  if (isset($unserializedData['explicitReadWriteModelPermissions']))
53  {
54  $this->explicitReadWriteModelPermissions = ExplicitReadWriteModelPermissionsUtil::
56  $unserializedData['explicitReadWriteModelPermissions']);
57  }
58  else
59  {
60  $this->explicitReadWriteModelPermissions = new ExplicitReadWriteModelPermissions();
61  }
62  }
63 
64  public function getAllStepsMessage()
65  {
66  return Zurmo::t('ImportModule', 'Importing data...');
67  }
68 
69  protected function steps()
70  {
71  return array('processRows', 'complete');
72  }
73 
74  protected function stepMessages()
75  {
76  return array('processRows' => Zurmo::t('Core', 'Processing'),
77  'complete' => Zurmo::t('ImportModule', 'Completing...')
78  );
79  }
80 
81  protected function processRows($params)
82  {
83  $page = static::resolvePageByParams($params);
84  $this->dataProvider->getPagination()->setCurrentPage($page);
85  $importResultsUtil = new ImportResultsUtil($this->import);
86  $messageLogger = new ImportMessageLogger();
87  ImportUtil::importByDataProvider($this->dataProvider,
88  $this->importRules,
89  $this->mappingData,
90  $importResultsUtil,
91  $this->explicitReadWriteModelPermissions,
92  $messageLogger);
93  $importResultsUtil->processStatusAndMessagesForEachRow();
94  return $this->resolveNextPagingAndParams($page, $params);
95  }
96 
97  protected function resolveNextInformationByCurrentStep($step)
98  {
99  assert('is_string($step)');
100  $steps = $this->steps();
101  $currentKey = array_search($step, $steps);
102  $nextKey = $currentKey + 1;
103  if (count($steps) == 2)
104  {
105  $this->completionPercentage = $this->subSequenceCompletionPercentage;
106  }
107  else
108  {
109  $extraPercentage = ($this->subSequenceCompletionPercentage / 100) * (100 / count($steps));
110  $this->completionPercentage = ((($currentKey + 1) / count($steps)) * 100) + $extraPercentage;
111  }
112  }
113  }
114 ?>
static makeImportRulesByType($importRulesType)
static importByDataProvider(ImportDataProvider $dataProvider, ImportRules $importRules, $mappingData, ImportResultsUtil $importResultsUtil, ExplicitReadWriteModelPermissions $explicitReadWriteModelPermissions, ImportMessageLogger $messageLogger)
Definition: ImportUtil.php:51
Generated on Tue Jul 14 2020 07:10:33
Account Suspended
Account Suspended
This Account has been suspended.
Contact your hosting provider for more information.