<?php

session_start();
include_once "../dao/dbcon.php";
include_once "../dao/service.php";
$statement = $_POST['serv_stat'];
$provider_id = $_SESSION['provider']['serviceprovider_id'];
$service_name = "Company Service Statement for " . $_SESSION['provider']['primaryname'];
$errors = "";
if (!empty($statement) || $statement != null) {
    $no_of_rows = get_servicedesc_rows($service_name);
    if ($no_of_rows > 0 || $no_of_rows == 1) {
        // if record exists ... update
        updateServices($statement, $service_name);
        echo "UPDATE";
    } else {
        // insert new record
        $service_sq = pg_query_params("select nextval('techmatcher.serviceid_seq')", array());
        $result_service = pg_fetch_row($service_sq);
        $service_id = $result_service[0];
        $result = setServices($service_id, $service_name, $statement);
        $result1 = setSPOfferServices($provider_id, $service_id);
        echo "INSERT";
    }
} else {
    $errors = $errors . "<li> Statement couldn't be empty. </li>";
    echo $errors;
}
} elseif (isset($_POST['addNewFeature'])) {
    $desc = $_POST['addNewFeature'];
    addFeature($desc);
    $id = getFeatureID($desc);
    echo $id;
} elseif (isset($_POST['featureID'])) {
    $id = $_POST['featureID'];
    deleteFeature($id);
} elseif (isset($_POST['addNewAdvantage'])) {
    $advantage = $_POST['addNewAdvantage'];
    addAdvantages($advantage);
    $resp['advKey'] = getAdvantageID($advantage);
    echo json_encode($resp);
} elseif (isset($_POST['advID'])) {
    $Aid = $_POST['advID'];
    deleteAdvantage($Aid);
} elseif (isset($_POST['updService'])) {
    $service = $_POST['updService'];
    $price = $_POST['updPrice'];
    $id = $_POST['serviceID'];
    updateServices($service, $price, $id);
} elseif (isset($_POST['addNewService'])) {
    $service = $_POST['addNewService'];
    $price = $_POST['addNewPrice'];
    addCharges($service, $price);
    $id = getServiceID($service, $price);
    echo $id;
} elseif (isset($_POST['ServId'])) {
    $id = $_POST['ServId'];
    deleteService($id);
}
 /**
  * @param $triggers
  */
 protected function updateReal(array $triggers)
 {
     $triggers = zbx_toArray($triggers);
     $infos = array();
     $dbTriggers = $this->get(array('triggerids' => zbx_objectValues($triggers, 'triggerid'), 'output' => API_OUTPUT_EXTEND, 'selectHosts' => array('name'), 'selectDependencies' => API_OUTPUT_REFER, 'preservekeys' => true, 'nopermissions' => true));
     $descriptionChanged = $expressionChanged = false;
     foreach ($triggers as &$trigger) {
         $dbTrigger = $dbTriggers[$trigger['triggerid']];
         $hosts = zbx_objectValues($dbTrigger['hosts'], 'name');
         if (isset($trigger['description']) && strcmp($dbTrigger['description'], $trigger['description']) != 0) {
             $descriptionChanged = true;
         } else {
             $trigger['description'] = $dbTrigger['description'];
         }
         $expressionFull = explode_exp($dbTrigger['expression']);
         if (isset($trigger['expression']) && strcmp($expressionFull, $trigger['expression']) != 0) {
             $this->validateItems($trigger);
             $expressionChanged = true;
             $expressionFull = $trigger['expression'];
             $trigger['error'] = 'Trigger expression updated. No status update so far.';
         }
         if ($expressionChanged) {
             // check the expression
             $expressionData = new CTriggerExpression();
             if (!$expressionData->parse($expressionFull)) {
                 self::exception(ZBX_API_ERROR_PARAMETERS, $expressionData->error);
             }
             // if the trigger contains templates, delete any events that may exist
             if ($this->expressionHasTemplates($expressionData)) {
                 DB::delete('events', array('object' => EVENT_OBJECT_TRIGGER, 'objectid' => $trigger['triggerid']));
             }
             DB::delete('functions', array('triggerid' => $trigger['triggerid']));
             try {
                 $trigger['expression'] = implode_exp($expressionFull, $trigger['triggerid'], $hosts);
             } catch (Exception $e) {
                 self::exception(ZBX_API_ERROR_PARAMETERS, _s('Cannot implode expression "%s".', $expressionFull) . ' ' . $e->getMessage());
             }
             if (isset($trigger['status']) && $trigger['status'] != TRIGGER_STATUS_ENABLED) {
                 if ($trigger['value_flags'] == TRIGGER_VALUE_FLAG_NORMAL) {
                     addUnknownEvent($trigger['triggerid']);
                     $trigger['value_flags'] = TRIGGER_VALUE_FLAG_UNKNOWN;
                 }
             }
             // if the expression has changed, we must revalidate the existing dependencies
             if (!isset($trigger['dependencies'])) {
                 $trigger['dependencies'] = zbx_objectValues($dbTrigger['dependencies'], 'triggerid');
             }
         }
         $triggerUpdate = $trigger;
         if (!$descriptionChanged) {
             unset($triggerUpdate['description']);
         }
         if (!$expressionChanged) {
             unset($triggerUpdate['expression']);
         }
         DB::update('triggers', array('values' => $triggerUpdate, 'where' => array('triggerid' => $trigger['triggerid'])));
         // update service status
         if (isset($trigger['priority']) && $trigger['priority'] != $dbTrigger['priority']) {
             $serviceStatus = $dbTrigger['value'] == TRIGGER_VALUE_TRUE ? $trigger['priority'] : 0;
             updateServices($trigger['triggerid'], $serviceStatus);
         }
         // restore the full expression to properly validate dependencies
         $trigger['expression'] = $expressionChanged ? explode_exp($trigger['expression']) : $expressionFull;
         $infos[] = _s('Updated: Trigger "%1$s" on "%2$s".', $trigger['description'], implode(', ', $hosts));
         add_audit_ext(AUDIT_ACTION_UPDATE, AUDIT_RESOURCE_TRIGGER, $dbTrigger['triggerid'], $dbTrigger['description'], null, $dbTrigger, $triggerUpdate);
     }
     unset($trigger);
     foreach ($infos as $info) {
         info($info);
     }
 }