public function updateEvent($params)
 {
     return churchcal_updateEvent($params);
 }
 public function updateEvent($params)
 {
     $this->checkPerm("edit events");
     include_once './' . CHURCHCAL . '/churchcal_db.php';
     churchcal_updateEvent($params);
 }
function churchservice_saveEvent($params, $source = null)
{
    global $user;
    include_once CHURCHCAL . '/churchcal_db.php';
    $cal_id = null;
    if ($source == "churchcal" && $params["id"] == null && isset($params["cal_id"])) {
        $cal_id = $params["cal_id"];
    } else {
        // Hole mir erst mal die zugeh�rige cc_cal_id, falls es das Event schon gibt.
        if (isset($_GET["id"])) {
            $cal_id = db_query("select cc_cal_id from {cs_event} where id=:id", array(":id" => $_GET["id"]))->fetch()->cc_cal_id;
        }
    }
    // Erst mal das cs_event updated/inserten
    $fields = array();
    if (isset($params["startdate"])) {
        $fields["startdate"] = $params["startdate"];
    }
    if (isset($params["valid_yn"])) {
        $fields["valid_yn"] = $params["valid_yn"];
    }
    if ($source == null) {
        $fields["special"] = isset($params["special"]) ? $params["special"] : "";
        $fields["admin"] = isset($params["admin"]) ? $params["admin"] : "";
    }
    if (isset($params["eventTemplate"])) {
        $db = db_query('select special, admin from {cs_eventtemplate} where id=:id', array(":id" => $params["eventTemplate"]))->fetch();
        if ($db != false) {
            if (!isset($fields["special"]) || �($fields["special"] == "")) {
                $fields["special"] = $db->special;
            }
            if (!isset($fields["admin"]) || �($fields["admin"] == "")) {
                $fields["admin"] = $db->admin;
            }
        }
    }
    if (isset($params["id"])) {
        $event_id = $params["id"];
        db_update("cs_event")->fields($fields)->condition('id', $params["id"], "=")->execute();
        // BENACHRICHTIGE ANDERE MODULE
        if ($source == null && $cal_id != null) {
            $cal_params = array_merge(array(), $params);
            $cal_params["event_id"] = $event_id;
            $cal_params["id"] = $cal_id;
            churchcal_updateEvent($cal_params, "churchservice");
        }
    } else {
        if ($source == null) {
            $params["repeat_id"] = 0;
            $params["intern_yn"] = 0;
            $params["notizen"] = "";
            $params["link"] = "";
            $params["ort"] = "";
            $cal_id = churchcal_createEvent($params, "churchservice");
        }
        $fields["cc_cal_id"] = $cal_id;
        if (isset($params["eventTemplate"])) {
            $fields["created_by_template_id"] = $params["eventTemplate"];
        }
        $event_id = db_insert("cs_event")->fields($fields)->execute();
    }
    if (!isset($params["eventTemplate"]) && isset($params["services"])) {
        // Nun die Eintr�ge updaten/inserten
        $rm_services = array();
        $new_services = array();
        $fields = array();
        $fields["event_id"] = $event_id;
        $dt = new datetime();
        $fields["valid_yn"] = 1;
        $fields["modified_date"] = $dt->format('Y-m-d H:i:s');
        $fields["modified_pid"] = $user->id;
        foreach ($params["services"] as $key => $arr) {
            $fields["service_id"] = $key;
            $fields["counter"] = null;
            if ($arr == 1) {
                db_insert("cs_eventservice")->fields($fields)->execute();
            } else {
                $i = $arr;
                while ($i > 0) {
                    $fields["counter"] = $i;
                    $i--;
                    db_insert("cs_eventservice")->fields($fields)->execute();
                }
            }
        }
    } else {
        if (isset($params["eventTemplate"])) {
            if (isset($params["id"])) {
                print_r($params);
                throw new CTException("Es kann kein Template uebergeben werden, wenn der Service schon existiert!");
            }
            $fields = array();
            $fields["event_id"] = $event_id;
            $fields["valid_yn"] = 1;
            $dt = new datetime();
            $fields["modified_date"] = $dt->format('Y-m-d H:i:s');
            $fields["modified_pid"] = $user->id;
            $db = db_query("select * from {cs_eventtemplate_service} where eventtemplate_id=:eventtemplate_id", array(':eventtemplate_id' => $params["eventTemplate"]));
            foreach ($db as $d) {
                $fields["service_id"] = $d->service_id;
                if ($d->count == 1) {
                    $fields["counter"] = null;
                    db_insert("cs_eventservice")->fields($fields)->execute();
                } else {
                    $i = $d->count;
                    while ($i > 0) {
                        $fields["counter"] = $i;
                        $i--;
                        db_insert("cs_eventservice")->fields($fields)->execute();
                    }
                }
            }
            ct_log("[ChurchService] Lege Template an " . $params["eventTemplate"] . " fuer Event", 2, $event_id, "service");
        }
    }
}
Exemplo n.º 4
0
function churchcal_saveSplittedEvent($params)
{
    global $user;
    $res = new stdClass();
    // if no splitDate given it is a new event without impact
    if (!isset($params["splitDate"])) {
        throw new CTException("saveSplittedEvent: splitDate not given!");
    }
    $splitDate = new DateTime($params["splitDate"]);
    $untilEnd_yn = $params["untilEnd_yn"];
    $pastEventId = $params["pastEvent"]["id"];
    // Get originEvent out of Database
    $dummy = churchcal_getCalPerCategory(array("category_ids" => array(0 => $params["pastEvent"]["category_id"])));
    $originEvent = (array) $dummy[$params["pastEvent"]["category_id"]][$params["newEvent"]["old_id"]];
    // Copy all entries from past to new event, cause CR und CS does not have all infos and doesn't need it :)
    $pastEventDB = db_query("SELECT bezeichnung, ort, notizen, link, intern_yn, category_id  " . "FROM {cc_cal} WHERE id = :id ", array(":id" => $pastEventId))->fetch();
    if ($pastEventDB != false) {
        foreach ($pastEventDB as $key => $entry) {
            if (empty($params["pastEvent"][$key])) {
                $params["pastEvent"][$key] = $entry;
            }
            if (empty($params["newEvent"][$key])) {
                $params["newEvent"][$key] = $entry;
            }
        }
    }
    // Save new Event without impact on CS and CR ...
    $res = churchcal_createEvent($params["newEvent"], false, true);
    // ... and now bind related bookings and services to the new event
    $newEventId = $res["id"];
    $params["newEvent"]["id"] = $newEventId;
    if (churchcore_isModuleActivated("churchservice")) {
        include_once './' . CHURCHSERVICE . '/churchservice_db.php';
        churchservice_rebindServicesToNewEvent($pastEventId, $newEventId, $splitDate, $untilEnd_yn);
        $params["newEvent"]["cal_id"] = $newEventId;
        $startdate = new Datetime($params["newEvent"]["startdate"]);
        if ($splitDate->format("Y-m-d H:i") != $startdate->format("Y-m-d H:i")) {
            $params["newEvent"]["old_startdate"] = $splitDate;
        }
        churchservice_operateEventFromChurchCal($params["newEvent"]);
    }
    // Save old Event
    churchcal_updateEvent($params["pastEvent"], false, true);
    if (getVar("informCreator", "true", $params["newEvent"]) == "true" && $originEvent["modified_pid"] != $user->id) {
        $data = (array) churchcal_getEventChangeImpact(array("newEvent" => $params["newEvent"], "originEvent" => $originEvent, "pastEvent" => $params["pastEvent"]));
        $data["caption"] = $params["newEvent"]["bezeichnung"];
        $data["startdate"] = churchcore_stringToDateDe($params["newEvent"]["startdate"]);
        $p = db_query("SELECT name, vorname, IF(spitzname, spitzname, vorname) AS nickname\n                    FROM {cdb_person}\n                    WHERE id=:id", array(":id" => $originEvent["modified_pid"]))->fetch();
        $data["p"] = $p;
        // get populated template and send email
        $lang = getUserLanguage($params["modified_pid"]);
        $content = getTemplateContent('email/informCreator', 'churchcal', $data, null, $lang);
        churchcore_sendEMailToPersonIDs($originEvent["modified_pid"], "[" . getConf('site_name') . "] " . t2($lang, 'information.for.your.event'), $content, null, true);
    }
    return array("id" => $newEventId, "bookingIds" => $res["bookingIds"]);
}
 public function updateEvent($params)
 {
     include_once './' . CHURCHCAL . '/churchcal_db.php';
     return churchcal_updateEvent($params);
 }