/**
  * do conversions
  *
  * @param array $_data
  * @return array
  */
 protected function _doConversions($_data)
 {
     $result = parent::_doConversions($_data);
     if ((isset($result['warranty']) || array_key_exists('warranty', $result)) && empty($_data['warranty'])) {
         unset($result['warranty']);
     }
     if ((isset($result['invoice_date']) || array_key_exists('invoice_date', $result)) && empty($_data['invoice_date'])) {
         unset($result['invoice_date']);
     }
     if ((isset($result["name"]) || array_key_exists("name", $result)) && $result['name'] == "") {
         $result['name'] = "!Not defined!";
     }
     if ((isset($result["inventory_id"]) || array_key_exists("inventory_id", $result)) && $result['inventory_id'] == "") {
         $result['inventory_id'] = Tinebase_Record_Abstract::generateUID(40);
     }
     if (isset($result["costcentre"]) || array_key_exists("costcentre", $result)) {
         $result["costcentre"] = $c = Sales_Controller_CostCenter::getInstance()->search(new Sales_Model_CostCenterFilter(array(array('field' => 'number', 'operator' => 'equals', 'value' => $result["costcentre"]))))->getFirstRecord();
     }
     if (isset($result["status"]) || array_key_exists("status", $result)) {
         $statusRecord = Inventory_Config::getInstance()->get(Inventory_Config::INVENTORY_STATUS)->getKeyfieldRecordByValue($result["status"]);
         if (empty($statusRecord)) {
             $statusRecord = Inventory_Config::getInstance()->get(Inventory_Config::INVENTORY_STATUS)->getKeyfieldDefault();
         }
         $result["status"] = $statusRecord['id'];
     }
     return $result;
 }
 /**
  * do conversions (transformations, charset, replacements ...)
  *
  * @param array $_data
  * @return array
  *
  * TODO think about moving this to import definition
  * TODO simplify crm/lead config handling for leadstate/source/type
  */
 protected function _doConversions($_data)
 {
     $data = parent::_doConversions($_data);
     if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) {
         Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . ' ' . print_r($data, true));
     }
     // adjust lead_name/leadstate/source/types if missing
     $configSettings = Crm_Controller::getInstance()->getConfigSettings()->toArray();
     $requiredFields = array('leadstate_id' => 'leadstates', 'leadtype_id' => 'leadtypes', 'leadsource_id' => 'leadsources');
     foreach ($requiredFields as $requiredField => $configKey) {
         if (!empty($data[$requiredField])) {
             continue;
         }
         switch ($requiredField) {
             default:
                 // get default leadstate/source/type OR try to find it by name if given
                 if (!isset($configSettings[$configKey])) {
                     continue;
                 }
                 $settingField = preg_replace('/s$/', '', $configKey);
                 if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) {
                     Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . ' config settings' . print_r($configSettings[$configKey], true));
                 }
                 // init with default
                 $data[$requiredField] = isset($configSettings[$configKey][0]['id']) ? $configSettings[$configKey][0]['id'] : 1;
                 foreach ($configSettings[$configKey] as $setting) {
                     if (isset($setting[$settingField]) && isset($_data[$settingField]) && strtolower($setting[$settingField]) === strtolower($_data[$settingField])) {
                         $data[$requiredField] = $setting['id'];
                     }
                 }
         }
     }
     return $data;
 }
 /**
  * do conversions
  * -> sanitize account_id
  *
  * @param array $_data
  * @return array
  */
 protected function _doConversions($_data)
 {
     $result = parent::_doConversions($_data);
     // unset account id
     if (isset($result['account_id']) && empty($result['account_id'])) {
         unset($result['account_id']);
     }
     if (empty($result['n_family']) && empty($result['org_name'])) {
         if (isset($result['n_fn'])) {
             $result['n_family'] = $result['n_fn'];
         } else {
             $result['n_family'] = 'imported';
         }
     }
     return $result;
 }
 /**
  * do conversions (transformations, charset, replacements ...)
  *
  * @param array $_data
  * @return array
  *
  * TODO think about moving this to import definition
  */
 protected function _doConversions($_data)
 {
     $data = parent::_doConversions($_data);
     if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) {
         Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . ' ' . print_r($data, true));
     }
     // adjust lead_name/leadstate/source/types if missing
     $keyFields = array(Crm_Config::LEAD_STATES => 'leadstate_id', Crm_Config::LEAD_TYPES => 'leadtype_id', Crm_Config::LEAD_SOURCES => 'leadsource_id');
     foreach ($keyFields as $keyFieldName => $fieldName) {
         $keyField = Crm_Config::getInstance()->get($keyFieldName);
         if (isset($data[$fieldName])) {
             $data[$fieldName] = $keyField->getIdByTranslatedValue($data[$fieldName]);
         } else {
             $data[$fieldName] = $keyField->getKeyfieldDefault()->getId();
         }
     }
     return $data;
 }
예제 #5
0
 /**
  * do conversions
  * -> sanitize account_id
  *
  * @param array $_data
  * @return array
  */
 protected function _doConversions($_data)
 {
     $result = parent::_doConversions($_data);
     return $result;
 }