Beispiel #1
0
 function getCancelsTDNumberArray()
 {
     // capture cancelsTDNumber from odHistory
     $ODHistoryList = new SoapObject(NCCBIZ . "ODHistoryList.php", "urn:Object");
     $ODHistoryRecords = new ODHistoryRecords();
     if (!($xmlStr = $ODHistoryList->getPrecedingODList($this->formArray["odID"]))) {
         // error xml
     } else {
         if (!($domDoc = domxml_open_mem($xmlStr))) {
             // error domDoc
         } else {
             $ODHistoryRecords->parseDomDocument($domDoc);
             $precedingODList = $ODHistoryRecords->arrayList;
             $AFSEncode = new SoapObject(NCCBIZ . "AFSEncode.php", "urn:Object");
             $TDDetails = new SoapObject(NCCBIZ . "TDDetails.php", "urn:Object");
             foreach ($precedingODList as $key => $odHistory) {
                 $previousODID = $odHistory->getPreviousODID();
                 $previousAFSID = $AFSEncode->getAfsID($previousODID);
                 $precedingTDxml = $TDDetails->getTDFromAfsID($previousAFSID);
                 $precedingTDdomDoc = domxml_open_mem($precedingTDxml);
                 $precedingTD = new TD();
                 $precedingTD->parseDomDocument($precedingTDdomDoc);
                 $cancelsTDNumber[] = $precedingTD->taxDeclarationNumber;
             }
             return $cancelsTDNumber;
         }
     }
     return false;
 }
 function getPrecedingTDArray($td)
 {
     $ODDetails = new SoapObject(NCCBIZ . "ODDetails.php", "urn:Object");
     if ($this->formArray["odID"] = $ODDetails->getOdIDFromTdID($td->getTdID())) {
         $ODHistoryList = new SoapObject(NCCBIZ . "ODHistoryList.php", "urn:Object");
         $ODHistoryRecords = new ODHistoryRecords();
         if (!($xmlStr = $ODHistoryList->getPrecedingODList($this->formArray["odID"]))) {
             // do nothing. no preceding OD
             return false;
         } else {
             if (!($domDoc = domxml_open_mem($xmlStr))) {
                 // no nothing. no preceding OD
                 return false;
             } else {
                 $ODHistoryRecords->parseDomDocument($domDoc);
                 $precedingODList = $ODHistoryRecords->arrayList;
                 $AFSEncode = new SoapObject(NCCBIZ . "AFSEncode.php", "urn:Object");
                 $AFSDetails = new SoapObject(NCCBIZ . "AFSDetails.php", "urn:Object");
                 $TDDetails = new SoapObject(NCCBIZ . "TDDetails.php", "urn:Object");
                 foreach ($precedingODList as $key => $odHistory) {
                     $previousODID = $odHistory->getPreviousODID();
                     $previousAFSID = $AFSEncode->getAfsID($previousODID);
                     $previousAFSxml = $AFSDetails->getAfs($previousAFSID);
                     $previousAFSdomDoc = domxml_open_mem($previousAFSxml);
                     $previousAFS = new AFS();
                     $previousAFS->parseDomDocument($previousAFSdomDoc);
                     $precedingTDxml = $TDDetails->getTDFromAfsID($previousAFSID);
                     $precedingTDdomDoc = domxml_open_mem($precedingTDxml);
                     $precedingTD = new TD();
                     $precedingTD->parseDomDocument($precedingTDdomDoc);
                     $this->precedingTDArray[] = $precedingTD;
                 }
             }
             return $this->precedingTDArray;
         }
     }
 }
Beispiel #3
0
 function updateTDCancelsTDNumber($td)
 {
     $ODHistoryList = new SoapObject(NCCBIZ . "ODHistoryList.php", "urn:Object");
     $ODHistoryRecords = new ODHistoryRecords();
     // capture cancelsTDNumber from odHistory
     if (!($xmlStr = $ODHistoryList->getPrecedingODList($this->formArray["odID"]))) {
         // error xml
     } else {
         if (!($domDoc = domxml_open_mem($xmlStr))) {
             // error domDoc
         } else {
             $ODHistoryRecords->parseDomDocument($domDoc);
             $precedingODList = $ODHistoryRecords->arrayList;
             $AFSEncode = new SoapObject(NCCBIZ . "AFSEncode.php", "urn:Object");
             $TDDetails = new SoapObject(NCCBIZ . "TDDetails.php", "urn:Object");
             foreach ($precedingODList as $key => $odHistory) {
                 $previousODID = $odHistory->getPreviousODID();
                 $previousAFSID = $AFSEncode->getAfsID($previousODID);
                 $precedingTDxml = $TDDetails->getTDFromAfsID($previousAFSID);
                 $precedingTDdomDoc = domxml_open_mem($precedingTDxml);
                 $precedingTD = new TD();
                 $precedingTD->parseDomDocument($precedingTDdomDoc);
                 $cancelsTDNumber[] = $precedingTD->taxDeclarationNumber;
             }
             if (count($cancelsTDNumber) > 0) {
                 $i = 0;
                 $td->cancelsTDNumber = "";
                 foreach ($cancelsTDNumber as $key => $tdNumber) {
                     if ($i > 0) {
                         $td->cancelsTDNumber .= ", ";
                     }
                     $td->cancelsTDNumber .= $tdNumber;
                     $i++;
                 }
             }
             $td->setDomDocument();
             $domDoc = $td->getDomDocument();
             $xmlStr = $domDoc->dump_mem(true);
             $TDEncode = new SoapObject(NCCBIZ . "TDEncode.php", "urn:Object");
             $TDEncode->updateTD($xmlStr);
         }
     }
     return $td;
 }
 function displayPrecedingOD()
 {
     $ODHistoryList = new SoapObject(NCCBIZ . "ODHistoryList.php", "urn:Object");
     if (!($xmlStr = $ODHistoryList->getPrecedingODList($this->formArray["odID"]))) {
         $this->tpl->set_var("precedingUpdateCode", "");
         $this->tpl->set_var("precedingARPNumber", "");
         $this->tpl->set_var("precedingAssessedValue", "");
     } else {
         if (!($domDoc = domxml_open_mem($xmlStr))) {
             $this->tpl->set_var("precedingUpdateCode", "");
             $this->tpl->set_var("precedingARPNumber", "");
             $this->tpl->set_var("precedingAssessedValue", "");
         } else {
             $odHistoryRecords = new ODHistoryRecords();
             $odHistoryRecords->parseDomDocument($domDoc);
             $arrayList = $odHistoryRecords->getArrayList();
             if (count($arrayList)) {
                 $value = $arrayList[0];
                 $ODDetails = new SoapObject(NCCBIZ . "ODDetails.php", "urn:Object");
                 if (!($xmlStr = $ODDetails->getOD($value->getPreviousODID()))) {
                     $this->tpl->set_var("precedingUpdateCode", "");
                     $this->tpl->set_var("precedingARPNumber", "");
                     $this->tpl->set_var("precedingAssessedValue", "");
                 } else {
                     if (!($domDoc = domxml_open_mem($xmlStr))) {
                         $this->tpl->set_var("precedingUpdateCode", "");
                         $this->tpl->set_var("precedingARPNumber", "");
                         $this->tpl->set_var("precedingAssessedValue", "");
                     } else {
                         $precedingOD = new OD();
                         $precedingOD->parseDomDocument($domDoc);
                         $precedingODID = $precedingOD->getOdID();
                         $precedingAFS = $this->getAFSDetails($precedingODID);
                         $this->tpl->set_var("precedingUpdateCode", $value->getTransactionCode());
                         $this->tpl->set_var("precedingARPNumber", $precedingAFS->getARPNumber());
                         $this->tpl->set_var("precedingAssessedValue", number_format($precedingAFS->getTotalAssessedValue(), 2, ".", ","));
                     }
                 }
             }
         }
     }
 }
Beispiel #5
0
 function displayPrecedingOD()
 {
     $ODHistoryList = new SoapObject(NCCBIZ . "ODHistoryList.php", "urn:Object");
     if (!($xmlStr = $ODHistoryList->getPrecedingODList($this->formArray["odID"]))) {
         $this->tpl->set_block("rptsTemplate", "PrecedingODList", "PrecedingODListBlock");
         $this->tpl->set_var("PrecedingODListBlock", "");
     } else {
         if (!($domDoc = domxml_open_mem($xmlStr))) {
             $this->tpl->set_block("rptsTemplate", "PrecedingODList", "PrecedingODListBlock");
             $this->tpl->set_var("PrecedingODListBlock", "");
         } else {
             $odHistoryRecords = new ODHistoryRecords();
             $odHistoryRecords->parseDomDocument($domDoc);
             $arrayList = $odHistoryRecords->getArrayList();
             if (count($arrayList)) {
                 $this->tpl->set_block("rptsTemplate", "PrecedingODDBEmpty", "PrecedingODDBEmptyBlock");
                 $this->tpl->set_var("PrecedingODDBEmptyBlock", "");
                 $this->tpl->set_block("rptsTemplate", "PrecedingODList", "PrecedingODListBlock");
                 $this->tpl->set_block("PrecedingODList", "PrecedingODPersonList", "PrecedingODPersonListBlock");
                 $this->tpl->set_block("PrecedingODList", "PrecedingODCompanyList", "PrecedingODCompanyListBlock");
                 foreach ($arrayList as $key => $value) {
                     $ODDetails = new SoapObject(NCCBIZ . "ODDetails.php", "urn:Object");
                     if (!($xmlStr = $ODDetails->getOD($value->getPreviousODID()))) {
                         // error xml
                     } else {
                         if (!($domDoc = domxml_open_mem($xmlStr))) {
                             // error domdoc
                         } else {
                             $precedingOD = new OD();
                             $precedingOD->parseDomDocument($domDoc);
                             $this->tpl->set_var("odID", $precedingOD->getOdID());
                             $this->tpl->set_var("transactionCode", $value->getTransactionCode());
                             $oValue = $precedingOD->owner;
                             $pOwnerStr = "";
                             if (count($oValue->personArray)) {
                                 foreach ($oValue->personArray as $pKey => $pValue) {
                                     $this->tpl->set_var("personID", $pValue->getPersonID());
                                     $this->tpl->set_var("OwnerPerson", $pValue->getFullName());
                                     $this->tpl->parse("PrecedingODPersonListBlock", "PrecedingODPersonList", true);
                                 }
                             }
                             if (count($oValue->companyArray)) {
                                 foreach ($oValue->companyArray as $cKey => $cValue) {
                                     $this->tpl->set_var("companyID", $cValue->getCompanyID());
                                     $this->tpl->set_var("OwnerCompany", $cValue->getCompanyName());
                                     $this->tpl->parse("PrecedingODCompanyListBlock", "PrecedingODCompanyList", true);
                                 }
                             }
                             if (count($oValue->personArray) || count($oValue->companyArray)) {
                                 $this->tpl->set_var("none", "");
                             } else {
                                 $this->tpl->set_var("none", "none");
                             }
                             if ($precedingOD->locationAddress != "") {
                                 $this->tpl->set_var("locationAddress", $precedingOD->locationAddress->getFullAddress());
                             }
                             $this->tpl->set_var("landArea", number_format($precedingOD->getLandArea(), 2, '.', ','));
                         }
                     }
                     $this->tpl->set_var("odID", $value->getPreviousODID());
                     $this->tpl->parse("PrecedingODListBlock", "PrecedingODList", true);
                     $this->tpl->set_var("PrecedingODPersonListBlock", "");
                     $this->tpl->set_var("PrecedingODCompanyListBlock", "");
                 }
             }
         }
     }
 }
Beispiel #6
0
 function refreshTDHistory($td)
 {
     $ODDetails = new SoapObject(NCCBIZ . "ODDetails.php", "urn:Object");
     if ($this->formArray["odID"] = $ODDetails->getOdIDFromTdID($td->getTdID())) {
         $ODHistoryList = new SoapObject(NCCBIZ . "ODHistoryList.php", "urn:Object");
         $ODHistoryRecords = new ODHistoryRecords();
         if (!($xmlStr = $ODHistoryList->getPrecedingODList($this->formArray["odID"]))) {
             // do nothing. no preceding OD
             return false;
         } else {
             if (!($domDoc = domxml_open_mem($xmlStr))) {
                 // no nothing. no preceding OD
             } else {
                 $ODHistoryRecords->parseDomDocument($domDoc);
                 $precedingODList = $ODHistoryRecords->arrayList;
                 $AFSEncode = new SoapObject(NCCBIZ . "AFSEncode.php", "urn:Object");
                 $AFSDetails = new SoapObject(NCCBIZ . "AFSDetails.php", "urn:Object");
                 $TDDetails = new SoapObject(NCCBIZ . "TDDetails.php", "urn:Object");
                 foreach ($precedingODList as $key => $odHistory) {
                     $previousODID = $odHistory->getPreviousODID();
                     $previousAFSID = $AFSEncode->getAfsID($previousODID);
                     $previousAFSxml = $AFSDetails->getAfs($previousAFSID);
                     $previousAFSdomDoc = domxml_open_mem($previousAFSxml);
                     $previousAFS = new AFS();
                     $previousAFS->parseDomDocument($previousAFSdomDoc);
                     $precedingTDxml = $TDDetails->getTDFromAfsID($previousAFSID);
                     $precedingTDdomDoc = domxml_open_mem($precedingTDxml);
                     $precedingTD = new TD();
                     $precedingTD->parseDomDocument($precedingTDdomDoc);
                     // capture DUES of precedingTD
                     $DueList = new SoapObject(NCCBIZ . "DueList.php", "urn:Object");
                     if (!($xmlStr = $DueList->getDueList($precedingTD->getTdID(), $this->formArray["taxableYear"] - 1))) {
                         // no Dues for precedingTD
                         //echo "no dues";
                     } else {
                         if (!($domDoc = domxml_open_mem($xmlStr))) {
                             // no Dues for precedingTD
                             //echo "no dues";
                         } else {
                             $dueRecords = new DueRecords();
                             $dueRecords->parseDomDocument($domDoc);
                             foreach ($dueRecords->getArrayList() as $due) {
                                 foreach ($due as $dueKey => $dueValue) {
                                     switch ($dueKey) {
                                         case "dueType":
                                             $dueArray[$dueValue] = $due;
                                             break;
                                     }
                                 }
                             }
                             $BacktaxTDDetails = new SoapObject(NCCBIZ . "BacktaxTDDetails.php", "urn:Object");
                             $BacktaxTDEncode = new SoapObject(NCCBIZ . "BacktaxTDEncode.php", "urn:Object");
                             if (!($xmlStr = $BacktaxTDDetails->getBacktaxTD($td->getTdID(), $this->formArray["taxableYear"] - 1))) {
                                 // backtax for Due does not exist, create backtax record
                                 $backtaxTD = $this->setBacktaxTDFromDueArray($td->getTdID(), "", $dueArray, $precedingTD, $previousAFS);
                                 $backtaxTD->setDomDocument();
                                 $backtaxTDDoc = $backtaxTD->getDomDocument();
                                 $backtaxTDXmlStr = $backtaxTDDoc->dump_mem(true);
                                 if (!($backtaxTDID = $BacktaxTDEncode->saveBacktaxTD($backtaxTDXmlStr))) {
                                     echo "Error saving BacktaxTD";
                                 }
                             } else {
                                 if (!($domDoc = domxml_open_mem($xmlStr))) {
                                     // backtax for Due does not exist, create backtax
                                     $backtaxTD = $this->setBacktaxTDFromDueArray($td->getTdID(), "", $dueArray, $precedingTD, $previousAFS);
                                     $backtaxTD->setDomDocument();
                                     $backtaxTDDoc = $backtaxTD->getDomDocument();
                                     $backtaxTDXmlStr = $backtaxTDDoc->dump_mem(true);
                                     if (!($backtaxTDID = $BacktaxTDEncode->saveBacktaxTD($backtaxTDXmlStr))) {
                                         echo "Error saving BacktaxTD";
                                     }
                                 } else {
                                     // update backtax record from Due
                                     $backtaxTD = new BacktaxTD();
                                     $backtaxTD->parseDomDocument($domDoc);
                                     $backtaxTD = $this->setBacktaxTDFromDueArray($td->getTdID(), $backtaxTD->getBacktaxTDID(), $dueArray, $precedingTD, $previousAFS);
                                     $backtaxTD->setDomDocument();
                                     $backtaxTDDoc = $backtaxTD->getDomDocument();
                                     $backtaxTDXmlStr = $backtaxTDDoc->dump_mem(true);
                                     if (!($backtaxTDID = $BacktaxTDEncode->updateBacktaxTD($backtaxTDXmlStr))) {
                                         echo "Error updating BacktaxTD";
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
 }
 function displayPrecedingOD()
 {
     $ODHistoryList = new SoapObject(NCCBIZ . "ODHistoryList.php", "urn:Object");
     if (!($xmlStr = $ODHistoryList->getPrecedingODList($this->formArray["odID"]))) {
         $this->tpl->set_var("precedingUpdateCode", "");
         $this->tpl->set_var("precedingARPNumber", "");
         $this->tpl->set_var("precedingAssessedValue", "");
     } else {
         if (!($domDoc = domxml_open_mem($xmlStr))) {
             $this->tpl->set_var("precedingUpdateCode", "");
             $this->tpl->set_var("precedingARPNumber", "");
             $this->tpl->set_var("precedingAssessedValue", "");
         } else {
             $odHistoryRecords = new ODHistoryRecords();
             $odHistoryRecords->parseDomDocument($domDoc);
             $arrayList = $odHistoryRecords->getArrayList();
             if (count($arrayList)) {
                 $value = $arrayList[0];
                 $ODDetails = new SoapObject(NCCBIZ . "ODDetails.php", "urn:Object");
                 if (!($xmlStr = $ODDetails->getOD($value->getPreviousODID()))) {
                     $this->tpl->set_var("precedingUpdateCode", "");
                     $this->tpl->set_var("precedingARPNumber", "");
                     $this->tpl->set_var("precedingAssessedValue", "");
                 } else {
                     if (!($domDoc = domxml_open_mem($xmlStr))) {
                         $this->tpl->set_var("precedingUpdateCode", "");
                         $this->tpl->set_var("precedingARPNumber", "");
                         $this->tpl->set_var("precedingAssessedValue", "");
                     } else {
                         $precedingOD = new OD();
                         $precedingOD->parseDomDocument($domDoc);
                         $precedingODID = $precedingOD->getOdID();
                         $precedingAFS = $this->getAFSDetails($precedingODID);
                         $this->tpl->set_var("precedingUpdateCode", $value->getTransactionCode());
                         $this->tpl->set_var("precedingARPNumber", $precedingAFS->getARPNumber());
                         $this->tpl->set_var("precedingAssessedValue", number_format($precedingAFS->getTotalAssessedValue(), 2, ".", ","));
                         // get previous owner of Auctioned property
                         $owner = $precedingOD->owner;
                         if (is_array($owner->personArray)) {
                             foreach ($owner->personArray as $p) {
                                 $ownerNamesArray[] = $p->getLastName() . ", " . $p->getFirstName() . " " . substr($p->getMiddleName(), 0, 1) . ".";
                             }
                         }
                         if (is_array($owner->companyArray)) {
                             foreach ($owner->companyArray as $c) {
                                 $ownerNamesArray[] = $c->getCompanyName();
                             }
                         }
                         if (is_array($ownerNamesArray)) {
                             $ownerNamesString = implode("<br>", $ownerNamesArray);
                             unset($ownerNamesArray);
                             $this->tpl->set_var("ownerNames", $ownerNamesString);
                         } else {
                             $this->tpl->set_var("ownerNames", "");
                         }
                     }
                 }
             }
         }
     }
 }
 function displayPrecedingOD()
 {
     $ODHistoryList = new SoapObject(NCCBIZ . "ODHistoryList.php", "urn:Object");
     if (!($xmlStr = $ODHistoryList->getPrecedingODList($this->formArray["odID"]))) {
         $this->tpl->set_var("precedingUpdateCode", "");
         $this->tpl->set_var("precedingARPNumber", "");
         $this->tpl->set_var("precedingAssessedValue", "");
         $this->tpl->set_var("fromFirstOwner", "");
         $this->tpl->set_var("fromAndOthers", "");
         $this->tpl->set_var("fromNone", "");
     } else {
         if (!($domDoc = domxml_open_mem($xmlStr))) {
             $this->tpl->set_var("precedingUpdateCode", "");
             $this->tpl->set_var("precedingARPNumber", "");
             $this->tpl->set_var("precedingAssessedValue", "");
             $this->tpl->set_var("fromFirstOwner", "");
             $this->tpl->set_var("fromAndOthers", "");
             $this->tpl->set_var("fromNone", "");
         } else {
             $odHistoryRecords = new ODHistoryRecords();
             $odHistoryRecords->parseDomDocument($domDoc);
             $arrayList = $odHistoryRecords->getArrayList();
             if (count($arrayList)) {
                 $value = $arrayList[0];
                 $ODDetails = new SoapObject(NCCBIZ . "ODDetails.php", "urn:Object");
                 if (!($xmlStr = $ODDetails->getOD($value->getPreviousODID()))) {
                     $this->tpl->set_var("precedingUpdateCode", "");
                     $this->tpl->set_var("precedingARPNumber", "");
                     $this->tpl->set_var("precedingAssessedValue", "");
                     $this->tpl->set_var("fromFirstOwner", "");
                     $this->tpl->set_var("fromAndOthers", "");
                     $this->tpl->set_var("fromNone", "");
                 } else {
                     if (!($domDoc = domxml_open_mem($xmlStr))) {
                         $this->tpl->set_var("precedingUpdateCode", "");
                         $this->tpl->set_var("precedingARPNumber", "");
                         $this->tpl->set_var("precedingAssessedValue", "");
                         $this->tpl->set_var("fromFirstOwner", "");
                         $this->tpl->set_var("fromAndOthers", "");
                         $this->tpl->set_var("fromNone", "");
                     } else {
                         $precedingOD = new OD();
                         $precedingOD->parseDomDocument($domDoc);
                         $precedingODID = $precedingOD->getOdID();
                         $precedingAFS = $this->getAFSDetails($precedingODID);
                         $this->tpl->set_var("precedingUpdateCode", $value->getTransactionCode());
                         $this->tpl->set_var("precedingARPNumber", $precedingAFS->getARPNumber());
                         $this->tpl->set_var("precedingAssessedValue", number_format($precedingAFS->getTotalAssessedValue(), 2, ".", ","));
                         $oValue = $precedingOD->getOwner();
                         if (count($oValue->personArray)) {
                             $firstOwner = $oValue->personArray[0]->getLastName();
                             $firstOwner .= ", ";
                             $firstOwner .= $oValue->personArray[0]->getFirstName();
                             $firstOwner .= " ";
                             $firstOwner .= substr($oValue->personArray[0]->getMiddleName(), 0, 1) . ".";
                             $pAddress = $oValue->personArray[0]->addressArray ? $oValue->personArray[0]->addressArray[0]->getFullAddress() : "no address";
                             $firstOwnerAddress = $pAddress;
                             $firstOwnerTelephone = $oValue->personArray[0]->getTelephone();
                             $this->tpl->set_var("fromFirstOwner", $firstOwner);
                             $this->tpl->set_var("fromFirstOwnerAddress", $firstOwnerAddress);
                             $this->tpl->set_var("fromFirstOwnerTelephone", $firstOwnerTelephone);
                             $this->tpl->set_var("fromNone", "");
                         }
                         if (count($oValue->companyArray)) {
                             if ($firstOwner == "") {
                                 $firstOwner = $oValue->companyArray[0]->getCompanyName();
                                 $cAddress = $oValue->companyArray[0]->addressArray ? $oValue->companyArray[0]->addressArray[0]->getFullAddress() : "no address";
                                 $firstOwnerAddress = $cAddress;
                                 $firstOwnerTelephone = $oValue->companyArray[0]->getTelephone();
                                 $this->tpl->set_var("fromFirstOwner", $firstOwner);
                                 $this->tpl->set_var("fromFirstOwnerAddress", $firstOwnerAddress);
                                 $this->tpl->set_var("fromFirstOwnerTelephone", $firstOwnerTelephone);
                                 $this->tpl->set_var("fromNone", "");
                             }
                         }
                         if ($firstOwner != "") {
                             $this->tpl->set_var("none", "");
                             if (count($oValue->personArray) + count($oValue->companyArray) > 1) {
                                 $this->tpl->set_var("fromAndOthers", "(and others)");
                             } else {
                                 $this->tpl->set_var("fromAndOthers", "");
                             }
                         } else {
                             $this->tpl->set_var("fromNone", "-");
                             $this->tpl->set_var("fromFirstOwner", "");
                             $this->tpl->set_var("fromAndOthers", "");
                             $this->tpl->set_var("fromFirstOwnerAddress", "");
                             $this->tpl->set_var("fromFirstOwnerTelephone", "");
                         }
                     }
                 }
             }
         }
     }
 }