Fix when "agenda external id" exists but the event chamilo doesn't exist

See BT#13441
pull/2487/head
jmontoyaa 8 years ago
parent a6eac1c2ae
commit d58ec0c912
  1. 90
      main/cron/import_csv.php

@ -1222,34 +1222,78 @@ class ImportCsv
$report['mail_not_sent_because_date']++;
}
}
$content = '';
if ($update && isset($item['item_id'])) {
//the event already exists, just update
$eventResult = $agenda->editEvent(
$item['item_id'],
$event['start'],
$event['end'],
false,
$event['title'],
$content,
array('everyone'), // $usersToSend
array(), //$attachmentArray = array(),
[], //$attachmentCommentList
$eventComment,
$color,
false,
false,
$this->defaultAdminId
);
if ($eventResult !== false) {
$this->logger->addInfo(
"Event updated #".$item['item_id']." External cal Id: (".$externalEventId.") $info"
$eventInfo = $agenda->get_event($item['item_id']);
if (empty($eventInfo)) {
// Means that agenda external id exists but the event doesn't exist
$this->logger->addInfo("external event id exists: $externalEventId");
$this->logger->addInfo("but Chamilo event don't exists: ".$item['item_id']);
$eventId = $agenda->addEvent(
$event['start'],
$event['end'],
false,
$event['title'],
$content,
array('everyone'), // $usersToSend
false, //$addAsAnnouncement = false
null, // $parentEventId
array(), //$attachmentArray = array(),
[], //$attachmentCommentList
$eventComment,
$color
);
if (!empty($eventId)) {
$this->logger->addInfo("Chamilo event created: ".$eventId);
$values = $extraFieldValue->get_values_by_handler_and_field_id(
$item['item_id'],
$extraFieldInfo['id']
);
foreach ($values as $extraFieldValueItem) {
$params = [
'id' => $extraFieldValueItem['id'],
'item_id' => $eventId
];
$extraFieldValue->update($params);
$this->logger->addInfo(
'Updating calendar extra field #'.$extraFieldValueItem['id'].' new item_id: '.$eventId.' old item_id: '.$item['item_id']
);
}
} else {
$this->logger->addInfo("Error while creating event external id: $externalEventId");
}
} else {
$this->logger->addInfo(
"Error while updating event with external id: $externalEventId"
// The event already exists, just update
$eventResult = $agenda->editEvent(
$item['item_id'],
$event['start'],
$event['end'],
false,
$event['title'],
$content,
array('everyone'), // $usersToSend
array(), //$attachmentArray = array(),
[], //$attachmentCommentList
$eventComment,
$color,
false,
false,
$this->defaultAdminId
);
if ($eventResult !== false) {
$this->logger->addInfo(
"Event updated #".$item['item_id']." External cal Id: (".$externalEventId.") $info"
);
} else {
$this->logger->addInfo(
"Error while updating event with external id: $externalEventId"
);
}
}
} else {
// New event. Create it.

Loading…
Cancel
Save