function Main() { switch ($this->formArray["formAction"]) { case "save": $AFSDetails = new SoapObject(NCCBIZ . "AFSDetails.php", "urn:Object"); if (!($xmlStr = $AFSDetails->getAFS($this->formArray["afsID"]))) { exit("error xml"); } else { if (!($domDoc = domxml_open_mem($xmlStr))) { exit("error domDoc"); } else { $AFSEncode = new SoapObject(NCCBIZ . "AFSEncode.php", "urn:Object"); $afs = new AFS(); $afs->parseDomDocument($domDoc); $afs->setArpNumber($this->formArray["arpNumber"]); $afs->setCadastralLotNumber($this->formArray["cadastralLotNumber"]); // convert $pointsArray to $gisTechnicalDescription string // separate each point with "-" and each pointRecord with "," $pointsArray = $this->formArray["pointsArray"]; $pointID = 1; if (is_array($pointsArray)) { for ($pointID = 1; $pointID <= count($pointsArray); $pointID++) { $pointArray = array($pointID, $pointsArray[$pointID]["pointType"], $pointsArray[$pointID]["quadrant"], $pointsArray[$pointID]["bearingDeg"], $pointsArray[$pointID]["bearingMin"], $pointsArray[$pointID]["distance"]); $pointString = implode("-", $pointArray); $gisTechDescArray[$pointID] = $pointString; } $gisTechnicalDescription = implode(",", $gisTechDescArray); $this->formArray["gisTechnicalDescription"] = $gisTechnicalDescription; } $afs->setGISTechnicalDescription($this->formArray["gisTechnicalDescription"]); $afs->setDomDocument(); $doc = $afs->getDomDocument(); $xmlStr = $doc->dump_mem(true); if (!($ret = $AFSEncode->updateAFS($xmlStr))) { exit("error update"); } } } header("location: GISTechnicalDescriptionClose.php" . $this->sess->url("") . $this->sess->add_query(array("afsID" => $this->formArray["afsID"]))); exit; break; case "del": // temporarily del points $delPointsArray = $this->formArray["pointsArray"]; $pointID = 1; if (is_array($delPointsArray)) { for ($delPointID = 1; $delPointID <= count($delPointsArray); $delPointID++) { if ($delPointID != $this->formArray["delPointID"]) { $pointsArray[$pointID]["pointType"] = $delPointsArray[$delPointID]["pointType"]; $pointsArray[$pointID]["quadrant"] = $delPointsArray[$delPointID]["quadrant"]; $pointsArray[$pointID]["bearingDeg"] = $delPointsArray[$delPointID]["bearingDeg"]; $pointsArray[$pointID]["bearingMin"] = $delPointsArray[$delPointID]["bearingMin"]; $pointsArray[$pointID]["distance"] = $delPointsArray[$delPointID]["distance"]; $pointID++; } } if (is_array($pointsArray)) { $this->tpl->set_block("rptsTemplate", "PointsList", "PointsListBlock"); for ($pointID = 1; $pointID <= count($pointsArray); $pointID++) { $this->tpl->set_var("pointID", $pointID); $this->tpl->set_var("pointType", $pointsArray[$pointID]["pointType"]); $this->tpl->set_var("quadrant", $pointsArray[$pointID]["quadrant"]); $this->tpl->set_var("bearingDeg", $pointsArray[$pointID]["bearingDeg"]); $this->tpl->set_var("bearingMin", $pointsArray[$pointID]["bearingMin"]); $this->tpl->set_var("distance", $pointsArray[$pointID]["distance"]); $this->tpl->parse("PointsListBlock", "PointsList", true); } $this->formArray["pointsExist"] = "true"; } else { $this->formArray["pointsExist"] = "false"; $this->hideBlock("PointsList"); } } break; case "add": // temporarily add points $pointsArray = $this->formArray["pointsArray"]; $pointID = 1; if (is_array($pointsArray)) { $this->tpl->set_block("rptsTemplate", "PointsList", "PointsListBlock"); for ($pointID = 1; $pointID <= count($pointsArray); $pointID++) { $this->tpl->set_var("pointID", $pointID); $this->tpl->set_var("pointType", $pointsArray[$pointID]["pointType"]); $this->tpl->set_var("quadrant", $pointsArray[$pointID]["quadrant"]); $this->tpl->set_var("bearingDeg", $pointsArray[$pointID]["bearingDeg"]); $this->tpl->set_var("bearingMin", $pointsArray[$pointID]["bearingMin"]); $this->tpl->set_var("distance", $pointsArray[$pointID]["distance"]); $this->tpl->parse("PointsListBlock", "PointsList", true); } $pointsArray[$pointID]["pointType"] = $this->formArray["pointType"]; $pointsArray[$pointID]["quadrant"] = $this->formArray["quadrant"]; $pointsArray[$pointID]["bearingDeg"] = $this->formArray["bearingDeg"]; $pointsArray[$pointID]["bearingMin"] = $this->formArray["bearingMin"]; $pointsArray[$pointID]["distance"] = $this->formArray["distance"]; $this->tpl->set_var("pointID", $pointID); $this->tpl->set_var("pointType", $pointsArray[$pointID]["pointType"]); $this->tpl->set_var("quadrant", $pointsArray[$pointID]["quadrant"]); $this->tpl->set_var("bearingDeg", $pointsArray[$pointID]["bearingDeg"]); $this->tpl->set_var("bearingMin", $pointsArray[$pointID]["bearingMin"]); $this->tpl->set_var("distance", $pointsArray[$pointID]["distance"]); $this->tpl->parse("PointsListBlock", "PointsList", true); } else { $pointsArray[$pointID]["pointType"] = $this->formArray["pointType"]; $pointsArray[$pointID]["quadrant"] = $this->formArray["quadrant"]; $pointsArray[$pointID]["bearingDeg"] = $this->formArray["bearingDeg"]; $pointsArray[$pointID]["bearingMin"] = $this->formArray["bearingMin"]; $pointsArray[$pointID]["distance"] = $this->formArray["distance"]; $this->tpl->set_block("rptsTemplate", "PointsList", "PointsListBlock"); $this->tpl->set_var("pointID", $pointID); $this->tpl->set_var("pointType", $pointsArray[$pointID]["pointType"]); $this->tpl->set_var("quadrant", $pointsArray[$pointID]["quadrant"]); $this->tpl->set_var("bearingDeg", $pointsArray[$pointID]["bearingDeg"]); $this->tpl->set_var("bearingMin", $pointsArray[$pointID]["bearingMin"]); $this->tpl->set_var("distance", $pointsArray[$pointID]["distance"]); $this->tpl->parse("PointsListBlock", "PointsList", true); } $this->formArray["pointsExist"] = "true"; break; default: $AFSDetails = new SoapObject(NCCBIZ . "AFSDetails.php", "urn:Object"); $AFSDetails = new SoapObject(NCCBIZ . "AFSDetails.php", "urn:Object"); if (!($xmlStr = $AFSDetails->getAFS($this->formArray["afsID"]))) { exit("error xml"); } else { //echo $xmlStr; if (!($domDoc = domxml_open_mem($xmlStr))) { exit("error domDoc"); } else { $afs = new AFS(); $afs->parseDomDocument($domDoc); $this->formArray["afsID"] = $afs->getAfsID(); $this->formArray["cadastralLotNumber"] = $afs->getCadastralLotNumber(); $this->formArray["gisTechnicalDescription"] = $afs->getGISTechnicalDescription(); if ($this->formArray["gisTechnicalDescription"] == "") { $this->formArray["pointsExist"] = "false"; $this->hideBlock("PointsList"); } else { $this->formArray["pointsExist"] = "true"; // parse gisTechnicalDescription into $pointsArray // separate each pointRecord at "," and each point at "-" $gisTechDescArray = explode(",", $this->formArray["gisTechnicalDescription"]); foreach ($gisTechDescArray as $pointString) { $pointArray = explode("-", $pointString); $pointID = $pointArray[0]; $pointsArray[$pointID]["pointType"] = $pointArray[1]; $pointsArray[$pointID]["quadrant"] = $pointArray[2]; $pointsArray[$pointID]["bearingDeg"] = $pointArray[3]; $pointsArray[$pointID]["bearingMin"] = $pointArray[4]; $pointsArray[$pointID]["distance"] = $pointArray[5]; } if (is_array($pointsArray)) { $this->tpl->set_block("rptsTemplate", "PointsList", "PointsListBlock"); for ($pointID = 1; $pointID <= count($pointsArray); $pointID++) { $this->tpl->set_var("pointID", $pointID); $this->tpl->set_var("pointType", $pointsArray[$pointID]["pointType"]); $this->tpl->set_var("quadrant", $pointsArray[$pointID]["quadrant"]); $this->tpl->set_var("bearingDeg", $pointsArray[$pointID]["bearingDeg"]); $this->tpl->set_var("bearingMin", $pointsArray[$pointID]["bearingMin"]); $this->tpl->set_var("distance", $pointsArray[$pointID]["distance"]); $this->tpl->parse("PointsListBlock", "PointsList", true); } } } } } break; } $this->setForm(); $this->tpl->set_var("Session", $this->sess->url("") . $this->sess->add_query(array("afsID" => $this->formArray["afsID"]))); $this->tpl->parse("templatePage", "rptsTemplate"); $this->tpl->finish("templatePage"); $this->tpl->p("templatePage"); }