<?php
/**
* Building query for getting specimen data from original provider
* <br/><br/>
* @author Gabriele Droege, DNA Bank Network <contact@dnabank-network.org>
* @version 2.0
* @package Input
* @copyright Copyright Š 2011 DNA Bank Network http://www.dnabank-network.org<br>The contents of this file are subject to the Mozilla Public License Version 1.1
* @filesource
* @license http://www.mozilla.org/MPL/ MPL
*/


if($formSubmitVerify and (!isset($_SESSION['guest']) && !$_SESSION['guest'])) 
{

$SpecimenNumber = urlencode($_POST['formSpecimenNumber']);
$InstCode = urlencode($_POST['formInstitutionCode']);
$CollCode = urlencode($_POST['formCollectionCode']);
$Taxon = urlencode($_POST['formTaxonName']);
$CollYear = urlencode($_POST['formCollectionYearMin']);
$CollNo = urlencode($_POST['formCollectorsNo']);
$NoType = $_POST['CollNoType'];

if(empty($formProviderIntern) and empty($formProviderExtern))
{
unset($formProviderIntern);
unset($formProviderExtern); 
echo "<a id='Red'>Please select a Specimen Database!</a>";}

else {

if(!empty($formProviderIntern) and !empty($formProviderExtern))
{
echo '<a id="Red">Please select either an "Internal" or "External" Specimen database!</a>'; }

else
{
if(!empty($formProviderIntern))
{
$sql = mysqli_query($GLOBALS["___mysqli_ston"], "SELECT dataset.ID_Dataset, " .
 "       dataset.FK_Provider, " .
 "       schemata.QueryPart1, " .
 "       schemata.QueryPart1_1, " .
 "       schemata.QueryPart1_2, " .
 "       schemata.QueryPart2, " .
 "       schemata.QueryPart3, " .
 "       schemata.QueryPart4, " . 
 "       dataset.Digir_Resource, " .
 "       dataset.Digir_Source, " .
 "		 dataset.Protocol, " .
 "		 dataset.FK_Provider, " .
 "       provider.Provider, " .
 "       provider.FK_Schema " .
 "  FROM dataset " .
 "  LEFT JOIN provider ON dataset.FK_Provider = provider.ID_Provider " .
 "  LEFT JOIN schemata ON provider.FK_Schema = schemata.ID_Schema " .
 "  WHERE dataset.ID_Dataset = '$formProviderIntern'");
}

if(!empty($formProviderExtern))
{
$sql = mysqli_query($GLOBALS["___mysqli_ston"], "SELECT dataset.ID_Dataset, " .
 "       dataset.FK_Provider, " .
 "       schemata.QueryPart1, " .
 "       schemata.QueryPart1_1, " .
 "       schemata.QueryPart1_2, " .
 "       schemata.QueryPart2, " .
 "       schemata.QueryPart2a, " . 
 "       schemata.QueryPart3, " .
 "       schemata.QueryPart4, " .
 "       dataset.Digir_Resource, " .
 "       dataset.Digir_Source, " .
 "		 dataset.Protocol, " .
 "		 dataset.FK_Provider, " .
 "       provider.Provider, " . 
 "       provider.FK_Schema " .
 "  FROM dataset " .
 "  LEFT JOIN provider ON dataset.FK_Provider = provider.ID_Provider " . 
 "  LEFT JOIN schemata ON provider.FK_Schema = schemata.ID_Schema " .
 "  WHERE dataset.ID_Dataset = '$formProviderExtern'");
}

while($row = mysqli_fetch_object($sql)) 
      {
    /********************************************************************************************
    * All parts of the query are recorded in a table                                            *
    * it depends on required provider software and data schema which one to chose               *
    * the connection to a single specimen data provider is defined via new_dataset.php          *
    *********************************************************************************************/
      
$ID_Dataset = $row->ID_Dataset;
$ID_Provider = $row->FK_Provider;
$Provider = $row->Provider; 
$QueryPart1 = $row->QueryPart1;
$QueryPart1_1 = $row->QueryPart1_1;
$QueryPart1_2 = $row->QueryPart1_2;
$QueryPart2 = $row->QueryPart2;
$QueryPart2a = $row->QueryPart2a;
$QueryPart3 = $row->QueryPart3;
$QueryPart4 = $row->QueryPart4;
$Digir_Resource = $row->Digir_Resource;
$Digir_Source = $row->Digir_Source;
$ID_Schema = $row->FK_Schema;
$Protocol = $row->Protocol;
$FK_Provider = $row->FK_Provider;

}

$Digir_Resource1 = urlencode($Digir_Resource);
$Digir_Source1 = urlencode($Digir_Source);


if($ID_Dataset == '1' and $ID_Provider == NULL)
{ 
    /**
    * if specimen provider = Specimen Tool and its data are not yet availbae via a wrapper, calling this script
    */
    include ("../sptool/show_cache_data.php"); }
	
if($ID_Dataset == '2')
{ 
    /**
    * if specimen provider = GBIF, calling this script (GBIF web service)
    */
	
	include ("../input/gbif_occurrences.php"); 
}	

 else {   
    /**
    * calling script for building query and transforming received xml data into xslt and html
    */
	
    include ("../input/verify.php"); }
}
}
}

    /**********************************************************************************************
    * sometimes the user received more than one specimen record, than he/she has to select one    *
    * to be sure that during query process the right one is called some further help form elements*
    * are filled with content and are checked here                                                *
    * this parameters are filled during the xslt transformation  (see scripts in folder XSLT)     *
    **********************************************************************************************/


   $variable1 = $_POST['formUnitID']; 
   $CatalogNoText = $_POST['CatalogNoText']; 
   $variable2 = $_POST['formSourceInstitutionID'];
   $variable3 = $_POST['formSourceID']; 
   $variable4 = $_POST['formProviderExtern'];
   $variable5 = $_POST['formTest'];
   $variable6 = $_POST['formProviderIntern'];

   
   if($variable5 != "" and !$formSubmitVerify and !$formSubmitSave)
   {

$mykey = key($variable5);   

if(!empty($variable4))
{   
$sql = mysqli_query($GLOBALS["___mysqli_ston"], "SELECT dataset.ID_Dataset AS ID_Dataset, " .
 "       schema.QueryPart1b AS QueryPart1b, " .
 "       schema.QueryPart1_1 AS QueryPart1_1, " .
 "       schema.QueryPart1_2b AS QueryPart1_2b, " .
 "       schema.QueryPart2 AS QueryPart2, " .
 "       schema.QueryPart3 AS QueryPart3, " .
 "       schema.QueryPart4 AS QueryPart4, " . 
 "       schema.QueryPart5 AS QueryPart5, " . 
 "       provider.Provider AS Provider, " .
 "       dataset.Digir_Resource AS Digir_Resource, " .
 "       dataset.Digir_Source AS Digir_Source, " .
 "       provider.Provider AS Provider, " . 
 "       provider.FK_Schema " .
 "  FROM dataset " .
 "  LEFT JOIN provider ON dataset.FK_Provider = provider.ID_Provider " . 
 "  LEFT JOIN schemata ON provider.FK_Schema = schemata.ID_Schema " .
 " WHERE dataset.ID_Dataset = '$variable4'");
}

if(!empty($variable6))
{  

$sql = mysqli_query($GLOBALS["___mysqli_ston"], "SELECT dataset.ID_Dataset AS ID_Dataset, " .
 "       schemata.QueryPart1b AS QueryPart1b, " .
 "       schemata.QueryPart1_1 AS QueryPart1_1, " .
 "       schemata.QueryPart1_2b AS QueryPart1_2b, " .
 "       schemata.QueryPart2 AS QueryPart2, " .
 "       schemata.QueryPart3 AS QueryPart3, " .
 "       schemata.QueryPart4 AS QueryPart4, " . 
 "       schemata.QueryPart5 AS QueryPart5, " . 
 "       provider.Provider AS Provider, " .
 "       dataset.Digir_Resource AS Digir_Resource, " .
 "       dataset.Digir_Source AS Digir_Source, " .
 "       provider.Provider AS Provider, " . 
 "       provider.FK_Schema " .
 "  FROM dataset " .
 "  LEFT JOIN provider ON dataset.FK_Provider = provider.ID_Provider " . 
 "  LEFT JOIN schemata ON provider.FK_Schema = schemata.ID_Schema " .
 " WHERE dataset.ID_Dataset = '$variable6'");
}

while($row = mysqli_fetch_object($sql)) 
      {
$ID_Dataset = $row->ID_Dataset;      
$Provider = $row->Provider; 
$QueryPart1b = $row->QueryPart1b;
$QueryPart1_1 = $row->QueryPart1_1;
$QueryPart1_2b = $row->QueryPart1_2b;
$QueryPart2 = $row->QueryPart2;
$QueryPart3 = $row->QueryPart3;
$QueryPart4 = $row->QueryPart4;
$QueryPart5 = $row->QueryPart5;
$Digir_Resource = $row->Digir_Resource;
$Digir_Source = $row->Digir_Source;
$ID_Schema = $row->FK_Schema;
}

$SourceUnitID = urlencode($variable1[$mykey]);
$SourceInstitutionCode = urlencode($variable2[$mykey]);
$SourceCode = urlencode($variable3[$mykey]);
$Digir_Resource1 = urlencode($Digir_Resource);
$Digir_Source1 = urlencode($Digir_Source);

if($ID_Dataset == '1')
{
    /**
    * if specimen provider = Specimen Tool and its data are not yet available via a wrapper, calling this script
    */
    include ("../sptool/show_cache_data.php");
}

else {
       /**
    * calling script for transferring received xml data into html
    */
    include ("../input/verify.php");
}

    

}



?>