Source for file query_clean.php

Documentation is available at query_clean.php

  1. <?php
  2. /**
  3. * Data Cleaning query
  4. * @author Gabriele Droege, DNA Bank Network <contact@dnabank-network.org>
  5. * @version 2.0
  6. * @package Data_Cleaning
  7. * @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
  8. * @filesource
  9. * @license http://www.mozilla.org/MPL/ MPL
  10. */
  11.  
  12.     /**
  13.     * calling connection to database
  14.     */
  15.     include ("../config/head.php");
  16.  
  17.     /**
  18.     * calling authorisation script
  19.     */
  20.     include ("../auth.php");
  21.  
  22.     /********************************************************************************************
  23.     * Setting cookies after submitting search query                                             *
  24.     *********************************************************************************************/
  25.     
  26.     if($formSubmitSearch)
  27.     {setcookie("formSpecimenNumber", "");
  28.      setcookie("formProviderIntern", "");
  29.      setcookie("formProviderExtern", "");
  30.      setcookie("formHigherTaxon", "");
  31.      setcookie("formTaxonName", "");
  32.      setcookie("formGenus", "");
  33.      setcookie("formSpecificEpithet", "");
  34.      setcookie("formCountryList", "");
  35.      setcookie("formCountryListISO", "");
  36.      setcookie("formContinent", "");
  37.      setcookie("formLocality", "");
  38.      setcookie("formLatFrom", "");
  39.      setcookie("formLatTo", "");
  40.      setcookie("formLongFrom", "");
  41.      setcookie("formLongTo", "");
  42.      setcookie("formDnaBankNumber", "");
  43.      setcookie("formRelation", "");
  44.      setcookie("formType", "");
  45.      setcookie("formPreservation", "");
  46.      setcookie("formTissue", "");
  47.      setcookie("formExtractionMethod", "");
  48.      setcookie("formExtractionDateFrom", "");
  49.      setcookie("formExtractionDateTo", "");
  50.      setcookie("formExtractionStaff", "");
  51.      setcookie("formPurificationMethod", "");
  52.      setcookie("formAbsorbance280From", "");
  53.      setcookie("formAbsorbance280To", "");
  54.      setcookie("formAbsorbance230From", "");
  55.      setcookie("formAbsorbance230To", "");
  56.      setcookie("formConcentrationFrom", "");
  57.      setcookie("formConcentrationTo", "");
  58.      setcookie("formDegradation", "");
  59.      setcookie("formCheckDateFrom", "");
  60.      setcookie("formCheckDateTo", "");
  61.      setcookie("formNumberAliquots", "");
  62.      setcookie("formQuantityAliquotsFrom", "");
  63.      setcookie("formQuantityAliquotsTo", "");
  64.      setcookie("formGeneticLocus", "");
  65.      setcookie("formGenBankNumber", "");
  66.      setcookie("formGenBankNumberA", "");
  67.      setcookie("formGenBankNumberB", "");
  68.      setcookie("formGenBankNumberC", "");
  69.      setcookie("formGenBankNumberD", "");
  70.      setcookie("formGenBankLink", "");
  71.      setcookie("formGenBankLinkA", "");
  72.      setcookie("formGenBankLinkB", "");
  73.      setcookie("formGenBankLinkC", "");
  74.      setcookie("formGenBankLinkD", "");                    
  75.      setcookie("radioGenBank", "");
  76.      setcookie("formStockFridge", "");
  77.      setcookie("formStockRack", "");
  78.      setcookie("formStockBox", "");
  79.      setcookie("formProvider", "");
  80.      setcookie("formAliquotsFridge", "");
  81.      setcookie("formAliquotsRack", "");
  82.      setcookie("formAliquotsBox", "");
  83.      setcookie("radioSource", "");
  84.      setcookie("radioStock", "");
  85.      setcookie("radioBackup", "");
  86.      setcookie("formBlockDateFrom", "");
  87.      setcookie("formBlockDateTo", "");
  88.      setcookie("formBlockGeneral", "");
  89.      setcookie("formRequest", "");
  90.      setcookie("formNotes", "");
  91.      setcookie("formBarcodeAliquot", "");
  92.      setcookie("formPositionAliquot", "");
  93.      setcookie("formBarcodeStock", "");
  94.      setcookie("formPositionStock", "");
  95.     
  96.      setcookie("formSpecimenNumber", $formSpecimenNumber);
  97.      setcookie("formProviderIntern", $formProviderIntern);
  98.      setcookie("formProviderExtern", $formProviderExtern);
  99.      setcookie("formHigherTaxon", $formHigherTaxon);
  100.      setcookie("formTaxonName", $formTaxonName);
  101.      setcookie("formGenus", $formGenus);   
  102.      setcookie("formSpecificEpithet", $formSpecificEpithet);   
  103.      setcookie("formCountryList", $formCountryList);
  104.      setcookie("formCountryListISO", $formCountryListISO);
  105.      setcookie("formContinent", $formContinent);
  106.      setcookie("formLocality", $formLocality);
  107.      setcookie("formLatFrom", $formLatFrom);
  108.      setcookie("formLatTo", $formLatTo);
  109.      setcookie("formLongFrom", $formLongFrom);
  110.      setcookie("formLongTo", $formLongTo);
  111.      setcookie("formDnaBankNumber", $formDnaBankNumber);
  112.      setcookie("formRelation", $formRelation);
  113.      setcookie("formType", $formType);
  114.      setcookie("formPreservation", $formPreservation);
  115.      setcookie("formTissue", $formTissue);
  116.      setcookie("formExtractionMethod", $formExtractionMethod);
  117.      setcookie("formExtractionDateFrom", $formExtractionDateFrom);
  118.      setcookie("formExtractionDateTo", $formExtractionDateTo);
  119.      setcookie("formExtractionStaff", $formExtractionStaff);
  120.      setcookie("formPurificationMethod", $formPurificationMethod);
  121.      setcookie("formAbsorbance280From", $formAbsorbance280From);
  122.      setcookie("formAbsorbance280To", $formAbsorbance280To);
  123.      setcookie("formAbsorbance230From", $formAbsorbance230From);
  124.      setcookie("formAbsorbance230To", $formAbsorbance230To);
  125.      setcookie("formConcentrationFrom", $formConcentrationFrom);
  126.      setcookie("formConcentrationTo", $formConcentrationTo);
  127.      setcookie("formDegradation", $formDegradation);
  128.      setcookie("formCheckDateFrom", $formCheckDateFrom);
  129.      setcookie("formCheckDateTo", $formCheckDateTo);
  130.      setcookie("formNumberAliquots", $formNumberAliquots);
  131.      setcookie("formQuantityAliquotsFrom", $formQuantityAliquotsFrom);
  132.      setcookie("formQuantityAliquotsTo", $formQuantityAliquotsTo);
  133.      setcookie("formGeneticLocus", $formGeneticLocus);
  134.      setcookie("formGenBankNumber", $formGenBankNumber);
  135.      setcookie("formGenBankNumberA", $formGenBankNumberA);
  136.      setcookie("formGenBankNumberB", $formGenBankNumberB);
  137.      setcookie("formGenBankNumberC", $formGenBankNumberC);
  138.      setcookie("formGenBankNumberD", $formGenBankNumberD);
  139.      setcookie("formGenBankLink", $formGenBankLink);
  140.      setcookie("formGenBankLinkA", $formGenBankLinkA);
  141.      setcookie("formGenBankLinkB", $formGenBankLinkB);
  142.      setcookie("formGenBankLinkC", $formGenBankLinkC);
  143.      setcookie("formGenBankLinkD", $formGenBankLinkD);
  144.      setcookie("radioGenBank", $radioGenBank);
  145.      setcookie("formStockFridge", $formStockFridge);
  146.      setcookie("formStockRack", $formStockRack);
  147.      setcookie("formStockBox", $formStockBox);
  148.      setcookie("formProvider", $formProvider);
  149.      setcookie("formAliquotsFridge", $formAliquotsFridge);
  150.      setcookie("formAliquotsRack", $formAliquotsRack);
  151.      setcookie("formAliquotsBox", $formAliquotsBox);
  152.      setcookie("radioSource", $radioSource);
  153.      setcookie("radioStock", $radioStock);
  154.      setcookie("radioBackup", $radioBackup);
  155.      setcookie("formBlockDateFrom", $formBlockDateFrom);
  156.      setcookie("formBlockDateTo", $formBlockDateTo);
  157.      setcookie("formBlockGeneral", $formBlockGeneral);
  158.      setcookie("formRequest", $formRequest);
  159.      setcookie("formNotes", $formNotes);
  160.      setcookie("formBarcodeAliquot", $formBarcodeAliquot);
  161.      setcookie("formPositionAliquot", $formPositionAliquot);
  162.      setcookie("formBarcodeStock", $formBarcodeStock);
  163.      setcookie("formPositionStock", $formBarcodeAliquot);
  164.      
  165.      }
  166.     
  167. ?>
  168. <html>
  169.  
  170. <head>
  171. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  172. <title>DNA Module - Data Cleaning Results</title>
  173. <link rel="stylesheet" type="text/css" href="../format.css">
  174. <link rel="stylesheet" type="text/css" href="../input/XSLT/Styles.css">
  175. <SCRIPT LANGUAGE="JavaScript1.1" src="../Functions.js"></SCRIPT>
  176. <NOSCRIPT>Please enable Javascript!</NOSCRIPT>
  177.  
  178. </head>
  179.  
  180. <body>
  181. <div align="center">
  182. <?php 
  183.     /**
  184.     * including navigation menu
  185.     */
  186.     include("../tablenavi.php"); ?>
  187. <table id="tablemain" border="0" class="search">
  188.     <tr>
  189.   <td id="tdLogo"><img border="0" src="../images/Logo-DNA-Bank-Network.png" width="123" height="78"></td>
  190.         <td id="tdtitle">
  191.     <?php if ($formSubmitUpdate or $formSubmitVerify) { echo "<h1>Edit Dataset</h1>"; }
  192.     
  193.     else { echo "<h1>Search Results</h1>"; } ?>
  194.     
  195.     </td>
  196.     <td id="tdLogo2"><?php echo $Path_Logo; ?></td>
  197.     </tr>
  198.   <tr>
  199.   <td colspan="3"><?php
  200.     echo "Logged in as: ";
  201.     $log = $_SESSION["log"];
  202.     echo $log;
  203.     ?></td>
  204.   </tr>
  205.   <form name="formular" method="POST" action="query_clean.php?ID_DNA=<?php echo $ID_DNA; ?>">
  206.     <tr>
  207.         <td colspan="3" valign="top" align="center">
  208. <?php
  209.  
  210.     /********************************************************************************************
  211.     * Number of records per site                                                                *
  212.     *********************************************************************************************/
  213.     if($recordspage != "") {
  214.     $pagesize = $recordspage; }
  215.     else {$pagesize = 50; }
  216.  
  217.     $page = $_GET['page'];
  218.     if(!$page || $page<1 || !is_numeric($page))
  219.     { $page = 1; }
  220.     elseif($page<1)
  221.     $page = 1;
  222.     elseif(!is_numeric($page))
  223.     unset($page);
  224.    
  225.     /********************************************************************************************
  226.     * Create temporary table for hitlist                                                        *
  227.     *********************************************************************************************/
  228.    
  229.    $sql = "";
  230.    $sqlcreate = "CREATE TEMPORARY TABLE tmpDnaIDs AS ";
  231.    if($_GET['page']!= "")
  232.    $sqllimit = "LIMIT " . (($page-1) * $pagesize) . "," . ($pagesize + 1);
  233.    else
  234.     $sqllimit = "LIMIT " . ($pagesize + 1);
  235.  
  236.     
  237. if($formSubmitUpdate or $formSubmitVerify)
  238. { 
  239.     /**
  240.     * during editing process calling this script
  241.     */
  242.     include("update_clean.php"); } 
  243.  
  244. else { // if(!$formSubmitUpdate and !$formSubmitVerify)
  245.     
  246.     
  247.     /********************************************************************************************
  248.     * building search query                                                                     *
  249.     * START                                                                                     *
  250.     *********************************************************************************************/
  251.     
  252.     /********************************************************************************************
  253.     * $_REQUEST['sort'] is defined in lines 397-407, user can sort hitlist by several parameters*
  254.     *********************************************************************************************/
  255.     
  256. if($formSubmitSearch or $_REQUEST['hitlist'] == "true" or $_REQUEST['sort'] != "")
  257. {
  258.     $tr = "=";
  259.     $no = "!=";
  260.     $lk = "like";
  261.     $bt = ">=";
  262.     $st = "<=";
  263.     if($_REQUEST['hitlist'] == "true")
  264.     {$parr = $_COOKIE;}
  265.     if($_REQUEST['hitlist'] == "")
  266.     {$parr = $_POST; }
  267.     array($parr);
  268.     foreach ($parr as $varorigin)
  269.     {   $var = addslashes($varorigin);
  270.         $i ++;
  271.         if(!empty($var) and $var!="Search" and $var != $DNANo and key($parr)!="PHPSESSID")
  272.         {
  273.             switch (key($parr))
  274.             {
  275.                 case 'formDnaBankNumber':
  276.                     $str = "(dnabanknumbers.DNA_Bank_Number = '' OR dnabanknumbers.DNA_Bank_Number IS NULL) OR ";
  277.                     $description = " DNA Extraction No = ";
  278.                     $value = "empty";
  279.                     break;
  280.                 case 'formRelation':
  281.                     $str = "(dnabanknumbers.ID_RelationDNA_Voucher = '0' OR dnabanknumbers.ID_RelationDNA_Voucher = '' OR dnabanknumbers.ID_RelationDNA_Voucher IS NULL) OR ";
  282.                     $description = " Relation to Voucher = ";
  283.                     $value = "empty";                    
  284.                     break;
  285.                 case 'formNoVoucherData':
  286.                     $str = "dnabanknumbers.ID_Cache NOT IN (SELECT ID_Cache FROM cachecollection) OR ";
  287.                     $description = " DNA samples ";
  288.                     $value = "without voucher data";
  289.                     break;    
  290.                 case 'formType':
  291.                     $str = "(dnabanknumbers.ID_Type = '0' OR dnabanknumbers.ID_Tissue = '' OR dnabanknumbers.ID_Tissue IS NULL) OR ";
  292.                     $description = " DNA Type = ";
  293.                     $value = "empty";                    
  294.                     break;
  295.                 case 'formPreservation':
  296.                     $str = "(dnabanknumbers.ID_Preservation = '0' OR dnabanknumbers.ID_Preservation = '' OR dnabanknumbers.ID_Preservation IS NULL) OR ";
  297.                     $description = " Preservation = ";
  298.                     $value = "empty";                    
  299.                     break;
  300.                 case 'formTissue':
  301.                     $str = "(dnabanknumbers.ID_Tissue = '0' OR dnabanknumbers.ID_Tissue = '' OR dnabanknumbers.ID_Tissue IS NULL) OR ";
  302.                     $description = " Tissue = ";
  303.                     $value = "empty";                    
  304.                     break;
  305.                 case 'formExtractionMethod':
  306.                     $str = "(dnabanknumbers.ID_Extraction_Method = '0' OR dnabanknumbers.ID_Extraction_Method = '' OR dnabanknumbers.ID_Extraction_Method IS NULL) AND ";
  307.                     $description = " Extraction Method = ";
  308.                     $value = "empty";                    
  309.                     break;
  310.                 case 'formExtractionDate':
  311.                     $str = "(dnabanknumbers.Extraction_Date IS NULL OR dnabanknumbers.Extraction_Date = '') OR "; 
  312.                     $description = " Extraction Date = ";
  313.                     $value = "empty";                    
  314.                     break;
  315.                 case 'formExtractionStaff':
  316.                     $str = "dnabanknumbers.ID_Extraction_Staff = '0' OR ";
  317.                     $description = " Extraction Staff = ";
  318.                     $value = "empty";                    
  319.                     break;
  320.                 case 'formPurificationMethod':
  321.                     $str = "dnabanknumbers.ID_Purification = '0' OR ";
  322.                     $description = " Purification Method = ";
  323.                     $value = "empty";                    
  324.                     break;
  325.                 case 'formAbsorbance280':
  326.                     $str = "(dnabanknumbers.Absorbance280 IS NULL OR dnabanknumbers.Absorbance280 = '') OR ";
  327.                     $description = " Absorbance 280/260 = ";
  328.                     $value = "empty";                    
  329.                     break;
  330.                 case 'formAbsorbance230':
  331.                     $str = "(dnabanknumbers.Absorbance230 IS NULL OR dnabanknumbers.Absorbance230 = '') OR ";
  332.                     $description = " Absorbance 230/260 = ";
  333.                     $value = "empty";                    
  334.                     break;
  335.                 case 'formConcentration':
  336.                     $str = "(dnabanknumbers.Concentration IS NULL OR dnabanknumbers.Concentration = '') OR ";
  337.                     $description = " Concentration = ";
  338.                     $value = "empty";                    
  339.                     break;
  340.                 case 'formDegradation':
  341.                     $str = "(dnabanknumbers.ID_Degradation = '0' OR dnabanknumbers.ID_Degradation = '' OR dnabanknumbers.ID_Degradation IS NULL) OR ";
  342.                     $description = " Quality = ";
  343.                     $value = "empty";                    
  344.                     break; 
  345.                 case 'formCheckDate':
  346.                     $str = "(dnabanknumbers.Check_Date IS NULL OR dnabanknumbers.Check_Date = '') OR "; 
  347.                     $description = " Quality Check Date = ";
  348.                     $value = "empty";                    
  349.                     break;
  350.                 case 'formStock':
  351.                     $str = "(dnabanknumbers.ID_Location_Stock = '0' OR dnabanknumbers.ID_Location_Stock = '' OR dnabanknumbers.ID_Location_Stock IS NULL) OR ";
  352.                     $description = " Stock Fridge = ";
  353.                     $value = "empty";                    
  354.                     break;
  355.             }           
  356.             $where[$i] = $str;
  357.             $descriptionall[$i] = $description;
  358.             $valueall[$i] = $value;
  359.         }
  360.         next($parr);
  361.     }
  362.  
  363.     if(empty($str))
  364.     {  echo "<table  border='0' id='tablesearch'><tr><td colspan='5'><b>No search key entered.</b></td></tr>";
  365.     echo "<tr><td colspan='5'><a class='red' href=\"data_cleaning.php\">Back to Data Cleaning Overwiew.</a></td></tr></table>"; }
  366.     else {
  367.  
  368.     foreach($where AS $a) $string .= $a;
  369.  
  370.         $l=strlen ($string);
  371.         $max = $l-3;
  372.         $where_str = substr($string, 0, $max);
  373.         $wherestr = ' WHERE ' . $where_str;
  374.         
  375.         /********************************************************************************************
  376.         * Further restriction for members of group "Guest"                                          *
  377.         * Guests don't have access to blocked samples                                               *
  378.         *********************************************************************************************/
  379.         
  380.         if (isset($_SESSION['guest']) || $_SESSION['guest']) {
  381.         $wherestr .= ' AND dnabanknumbers.Block_General = "0"';    }
  382.         
  383.         /********************************************************************************************
  384.         * Further restriction for members of group "Project"                                        *
  385.         * Project members don't have access to blocked samples that are not created by themselves   *
  386.         *********************************************************************************************/
  387.         
  388.         if (isset($_SESSION['project']) || $_SESSION['project']) {
  389.         $wherestr .= " AND ((dnabanknumbers.Created_Who != '".$log."' AND dnabanknumbers.Block_General = '0') OR dnabanknumbers.Created_Who = '".$log."') ";    }
  390.      
  391.     mysql_query("DROP TABLE IF EXISTS tmpDnaIDs"); 
  392.     
  393.         /********************************************************************************************
  394.         * Sorting query                                                                             *
  395.         *********************************************************************************************/
  396.   
  397.              if($_REQUEST['sort'] == "DU" or $_REQUEST['sort'] == "" or $Sorting == "") { $OrderBy = " ORDER BY LENGTH(dnabanknumbers.Dna_Bank_Number),dnabanknumbers.DNA_Bank_Number "; }
  398.              if($_REQUEST['sort'] == "DD") { $OrderBy = " ORDER BY LENGTH(dnabanknumbers.Dna_Bank_Number),dnabanknumbers.DNA_Bank_Number DESC "; }             
  399.              if($_REQUEST['sort'] == "SU") { $OrderBy = " ORDER BY cachecollection.UnitID_Specimen "; }
  400.              if($_REQUEST['sort'] == "SD") { $OrderBy = " ORDER BY cachecollection.UnitID_Specimen DESC "; }
  401.              if($_REQUEST['sort'] == "CU") { $OrderBy = " ORDER BY cachecollection.CollectionCode_Specimen "; }
  402.              if($_REQUEST['sort'] == "CD") { $OrderBy = " ORDER BY cachecollection.CollectionCode_Specimen DESC "; }
  403.              if($_REQUEST['sort'] == "IU") { $OrderBy = " ORDER BY cachecollection.InstitutionCode_Specimen "; }             
  404.              if($_REQUEST['sort'] == "ID") { $OrderBy = " ORDER BY cachecollection.InstitutionCode_Specimen DESC "; }             
  405.              if($_REQUEST['sort'] == "TU") { $OrderBy = " ORDER BY cachetaxonidentified.NameAuthorYear "; }                          
  406.              if($_REQUEST['sort'] == "TD") { $OrderBy = " ORDER BY cachetaxonidentified.NameAuthorYear DESC "; }    
  407.              
  408.             
  409.             /********************************************************************************************
  410.             * building main query for hitlist ($sqlType == "Dna")                                        *
  411.             *********************************************************************************************/
  412.             
  413.             $sqlType = "Dna";
  414.             $sql = $sqlcreate .
  415.             $sql = "SELECT DISTINCT dnabanknumbers.ID_DNA FROM dnabanknumbers 
  416.                     LEFT JOIN cachecollection ON dnabanknumbers.ID_Cache = cachecollection.ID_Cache
  417.                     LEFT JOIN cachetaxonidentified ON cachecollection.ID_Cache = cachetaxonidentified.ID_Cache
  418.                     LEFT JOIN cachehighertaxa ON cachetaxonidentified.ID_TaxonIdentified = cachehighertaxa.ID_CacheTaxonidentified
  419.                     LEFT JOIN amplifications ON dnabanknumbers.ID_DNA = amplifications.ID_DNA 
  420.                     LEFT JOIN location_stock ON location_stock.ID_Location_Stock = dnabanknumbers.ID_Location_Stock 
  421.                     LEFT JOIN aliquots ON dnabanknumbers.ID_DNA = aliquots.ID_DNA 
  422.                     LEFT JOIN request ON dnabanknumbers.ID_DNA = request.ID_DNA " .
  423.                    $wherestr.$OrderBy.$sqllimit;  
  424.  
  425.            $result = mysql_query($sql);
  426.            
  427.            /********************************************************************************************
  428.            * building main query for counting records                                                  *
  429.            *********************************************************************************************/
  430.            
  431.            $sqlcount = "SELECT DISTINCT dnabanknumbers.ID_DNA FROM dnabanknumbers 
  432.                     LEFT JOIN cachecollection ON dnabanknumbers.ID_Cache = cachecollection.ID_Cache
  433.                     LEFT JOIN cachetaxonidentified ON cachecollection.ID_Cache = cachetaxonidentified.ID_Cache
  434.                     LEFT JOIN cachehighertaxa ON cachetaxonidentified.ID_TaxonIdentified = cachehighertaxa.ID_CacheTaxonidentified
  435.                     LEFT JOIN amplifications ON dnabanknumbers.ID_DNA = amplifications.ID_DNA 
  436.                     LEFT JOIN location_stock ON location_stock.ID_Location_Stock = dnabanknumbers.ID_Location_Stock 
  437.                     LEFT JOIN aliquots ON dnabanknumbers.ID_DNA = aliquots.ID_DNA 
  438.                     LEFT JOIN request ON dnabanknumbers.ID_DNA = request.ID_DNA " .
  439.                    $wherestr;
  440.  
  441.            $resultcount = mysql_query($sqlcount);
  442.            $sum = mysql_num_rows($resultcount);
  443.  
  444.  
  445.     } } //if($formSubmitSearch)
  446.     
  447.     /********************************************************************************************
  448.     * building search query                                                                     *
  449.     * Code for "Show Hitlist" see line 1596                                                     *
  450.     * Code for "Building main query for details of single record" see line 1148                 *
  451.     * Code for "Show details of single record" see line 1709                                    *
  452.     * END                                                                                       *
  453.     *********************************************************************************************/
  454.     
  455. else
  456. {
  457.     
  458.     /********************************************************************************************
  459.     * Saving edited record                                                                      *
  460.     * 1. insert old record into _log_-tables                                                    *
  461.     * 2. update tables with new parameters                                                      * 
  462.     * 3. show details of record again                                                           *
  463.     * record is locked for editing when another user is editing the same record at the same time*
  464.     * START                                                                                     *
  465.     *********************************************************************************************/
  466.  
  467.  
  468. if($formSubmitSave)
  469. {
  470.  
  471. $Current_Date = date('Y-m-d H:i:s');  
  472.  
  473.        $result2a = mysql_query
  474.         ("SELECT dnabanknumbers.ID_DNA, " .
  475.          "       people.Name_All " .
  476.          "  FROM dnabanknumbers, people " .
  477.          " WHERE dnabanknumbers.ID_Extraction_Staff = people.ID_People " .
  478.          "   AND dnabanknumbers.ID_DNA = '$ID_DNA'");
  479.        
  480.        while($row = mysql_fetch_object($result2a))
  481.        { $Extraction_Staff_old = $row->Name_All; }   
  482.        
  483.         $result3a = mysql_query
  484.         ("SELECT dnabanknumbers.ID_DNA, " .
  485.          "       people.Name_All " .
  486.          "  FROM dnabanknumbers, people " .
  487.          " WHERE dnabanknumbers.ID_Provided_By_People = people.ID_People " .
  488.          "   AND dnabanknumbers.ID_DNA = '$ID_DNA'");
  489.        
  490.        while($row = mysql_fetch_object($result3a))
  491.        { $Provided_By_People_old = $row->Name_All; }
  492.        
  493.         $result4a = mysql_query
  494.         ("SELECT dnabanknumbers.ID_DNA, " .
  495.          "       stock_fridge.Stock_Fridge, " .
  496.          "       stock_rack.Stock_Rack, " .
  497.          "       stock_box.Stock_Box, " .
  498.          "       location_stock.ID_Stock_Fridge, " .
  499.          "       location_stock.ID_Stock_Rack, " .
  500.          "       location_stock.ID_Stock_Box, " . 
  501.          "       location_stock.Origin_Quantity, " .         
  502.          "       location_stock.Rest_Quantity, " .
  503.          "       location_stock.Stock_Barcode, " .
  504.          "       location_stock.Stock_Position " .
  505.          "  FROM dnabanknumbers " .
  506.          "  LEFT JOIN location_stock ON dnabanknumbers.ID_Location_Stock = location_stock.ID_Location_Stock " .
  507.          "  LEFT JOIN stock_fridge ON location_stock.ID_Stock_Fridge = stock_fridge.ID_Stock_Fridge " .
  508.          "  LEFT JOIN stock_rack ON location_stock.ID_Stock_Rack = stock_rack.ID_Stock_Rack " .
  509.          "  LEFT JOIN stock_box ON location_stock.ID_Stock_Box = stock_box.ID_Stock_Box " .
  510.          " WHERE dnabanknumbers.ID_DNA = '$ID_DNA'");
  511.        
  512.        while($row = mysql_fetch_object($result4a))
  513.        { $Stock_Fridge = $row->Stock_Fridge; 
  514.          $Stock_Rack = $row->Stock_Rack;
  515.          $Stock_Box = $row->Stock_Box; 
  516.          $ID_Stock_Fridge_old = $row->ID_Stock_Fridge; 
  517.          $ID_Stock_Rack_old = $row->ID_Stock_Rack; 
  518.          $ID_Stock_Box_old = $row->ID_Stock_Box; 
  519.          $Stock_Origin_old = $row->Origin_Quantity;
  520.          $Stock_Rest_old = $row->Rest_Quantity;}
  521.          $Location_Stock_old = "Fridge: " . $Stock_Fridge . " Drawer: " . $Stock_Box . " Rack: " . $Stock_Rack . " Position: " . $Stock_Position . " Barcode: " . $Stock_Barcode;
  522.          
  523.          $result6a = mysql_query
  524.          ("SELECT dnabanknumbers.Dna_Bank_Number, " .
  525.             "dnabanknumbers.ID_Cache, " .
  526.             "dnabanknumbers.Extraction_Date, " .
  527.             "dnabanknumbers.NoExtractDate, " .
  528.             "dnabanknumbers.Check_Date, " .
  529.             "dnabanknumbers.Concentration, " .
  530.             "dnabanknumbers.Absorbance280, " .
  531.             "dnabanknumbers.Absorbance230, " .
  532.             "dnabanknumbers.Stock_Gone, " .
  533.             "dnabanknumbers.Source_Gone, " .
  534.             "dnabanknumbers.Notes, " .
  535.             "dnabanknumbers.Block_Until, " .
  536.             "dnabanknumbers.Block_General, " .
  537.             "dnabanknumbers.Backup_Aliquot, " .
  538.             "dnabanknumbers.ID_Type, " .
  539.             "dnabanknumbers.ID_Tissue, " .          
  540.             "dnabanknumbers.ID_RelationDNA_Voucher, " .
  541.             "dnabanknumbers.ID_Preservation, " .
  542.             "dnabanknumbers.ID_Extraction_Method, " .
  543.             "dnabanknumbers.ID_Purification, " .
  544.             "dnabanknumbers.ID_Degradation, " .
  545.             "dnabanknumbers.ID_Extraction_Staff, " .
  546.             "dnabanknumbers.ID_Provided_By_People, " .
  547.             "dnabanknumbers.ID_Location_Stock, " .
  548.             "dnatype.Type, " .
  549.             "tissue.Tissue, " .
  550.             "relationdna_voucher.RelationDNA_Voucher, " .
  551.             "preservation.Preservation, " .
  552.             "extractionmethod.Method AS Extraction_Method, " .
  553.             "purification.Method AS Purification_Method, " .
  554.             "degradation.Degradation " .
  555.             "FROM dnabanknumbers " .
  556.             "LEFT JOIN dnatype ON dnabanknumbers.ID_Type = dnatype.ID_Type " .
  557.             "LEFT JOIN tissue ON dnabanknumbers.ID_Tissue = tissue.ID_Tissue " .   
  558.             "LEFT JOIN relationdna_voucher ON dnabanknumbers.ID_RelationDNA_Voucher = relationdna_voucher.ID_RelationDNA_Voucher " .
  559.             "LEFT JOIN preservation ON dnabanknumbers.ID_Preservation = preservation.ID_Preservation " .
  560.             "LEFT JOIN extractionmethod ON dnabanknumbers.ID_Extraction_Method = extractionmethod.ID_Method " .
  561.             "LEFT JOIN purification ON dnabanknumbers.ID_Purification = purification.ID_Purification " . 
  562.             "LEFT JOIN degradation ON dnabanknumbers.ID_Degradation = degradation.ID_Degradation " .                       
  563.             "WHERE dnabanknumbers.ID_DNA = '$ID_DNA'");
  564.             
  565.           while($row = mysql_fetch_object($result6a))
  566.           { $Dna_Bank_Number_old = $row->Dna_Bank_Number;
  567.             $ID_Cache_old = $row->ID_Cache;
  568.             $Extraction_Date_old = $row->Extraction_Date;
  569.             $NoExtractDate_old = $row->NoExtractDate;
  570.             $Check_Date_old = $row->Check_Date;
  571.             $Concentration_old = $row->Concentration;
  572.             $Absorbance280_old = $row->Absorbance280;
  573.             $Absorbance230_old = $row->Absorbance230;
  574.             $Stock_Gone_old = $row->Stock_Gone;
  575.             $Source_Gone_old = $row->Source_Gone;
  576.             $Backup_Aliquot_old = $row->Backup_Aliquot;
  577.             $Notes_old = $row->Notes;
  578.             $Block_Until_old = $row->Block_Until;
  579.             $BlockGeneral_old = $row->Block_General;
  580.             $Type_old = $row->Type;
  581.             $ID_Type_old = $row->ID_Type;
  582.             $Tissue_old = $row->Tissue; 
  583.             $ID_Tissue_old = $row->ID_Tissue;
  584.             $RelationDNA_Voucher_old = $row->RelationDNA_Voucher; 
  585.             $ID_RelationDNA_Voucher_old = $row->ID_RelationDNA_Voucher;
  586.             $Preservation_old = $row->Preservation;
  587.             $ID_Preservation_old = $row->ID_Preservation;
  588.             $Extraction_Method_old = $row->Extraction_Method;
  589.             $ID_Extraction_Method_old = $row->ID_Extraction_Method;
  590.             $Purification_Method_old = $row->Purification_Method;
  591.             $ID_Extraction_Staff_old = $row->ID_Extraction_Staff;
  592.             $ID_Purification_Method_old = $row->ID_Purification; 
  593.             $Degradation_old = $row->Degradation;
  594.             $ID_Degradation_old = $row->ID_Degradation; 
  595.             $ID_Provided_By_People_old = $row->ID_Provided_By_People; 
  596.             $ID_Location_Stock_old = $row->ID_Location_Stock; }
  597. if(!empty($formAmplificationID))
  598.  {
  599.  
  600.        foreach ($formAmplificationID as $index => $AmplificationIDTest) 
  601.        { 
  602.         $LinkTest = $formLink[$index];
  603.         $GenBankNumberTest = $formGenBankNo[$index];
  604.         $FragmentIDTest = $formFragment[$index];
  605.         
  606.        $resultAmplification = mysql_query
  607.         ("SELECT dnabanknumbers.ID_DNA, " .
  608.          "       amplifications.GenBankNumber AS GenBankNumber, " .
  609.          "       amplifications.Link AS Link, " .
  610.          "       amplifications.ID_Fragment, " .
  611.          "       fragment.Fragment AS Fragment " .
  612.          "  FROM dnabanknumbers " .
  613.          "  LEFT JOIN amplifications ON dnabanknumbers.ID_DNA = amplifications.ID_DNA " .
  614.          "  LEFT JOIN fragment ON amplifications.ID_Fragment = fragment.ID_Fragment " .
  615.          " WHERE amplifications.ID_Amplification = '$AmplificationIDTest' " .
  616.          " ORDER BY amplifications.ID_Amplification");
  617.  
  618.      if(!empty($AmplificationIDTest))
  619.      {
  620.       while($row = mysql_fetch_object($resultAmplification))         
  621.     { 
  622.       $GenBankNumber_old = $row->GenBankNumber;
  623.       $Link_old = $row->Link;
  624.       $Fragment_old = $row->Fragment;
  625.       
  626.       
  627.     if ($row->Link != $LinkTest or $row->GenBankNumber != $GenBankNumberTest or $row->ID_Fragment != $FragmentIDTest)
  628.        { 
  629.          $sql1 = "INSERT INTO _log_amplifications (ID_Amplification, ID_DNA, Fragment, GenBankNumber, Link, Update_Created_Who, Source_Created_Who, Source_Created_When) " .
  630.                       " (SELECT amplifications.ID_Amplification, " .
  631.                       "amplifications.ID_DNA, " .
  632.                       "'$Fragment_old', " .
  633.                       "'$GenBankNumber_old', " .
  634.                       "'$Link_old', " .
  635.                       "'$log', " .
  636.                       "amplifications.Created_Who, " .
  637.                       "amplifications.Created_When " .
  638.                       "FROM amplifications " .
  639.                       "WHERE amplifications.ID_Amplification = '$AmplificationIDTest')";
  640.          $result1 = mysql_query($sql1);
  641.                       
  642. #######################################Error 1###############################################################
  643.  
  644. if(!$result1)
  645. { $msg = $sql1."\n";
  646.   $msg .= "####Error 1####";
  647.   trigger_error($msg, E_USER_ERROR);
  648.   $test1 = "false1";   }
  649.   
  650. #############################################################################################################                        
  651.  
  652.          if ($result1)
  653.          {
  654.          $sql2 = "UPDATE amplifications SET GenBankNumber = '$GenBankNumberTest', " .
  655.                            "Link = '$LinkTest', " .
  656.                            "ID_Fragment = '$FragmentIDTest', " .
  657.                            "Update_Who = '$log', " .
  658.                            "Update_When = '$Current_Date' " .
  659.                            "WHERE amplifications.ID_Amplification = '$AmplificationIDTest'";
  660.          $result2 = mysql_query($sql2);
  661. #######################################Error 2###############################################################
  662.  
  663. if(!$result2)
  664. { $msg = $sql2."\n";
  665.   $msg .= "####Error 2####";
  666.   trigger_error($msg, E_USER_ERROR);
  667.   $test1 = "false2";   }
  668.   
  669. #############################################################################################################   
  670. }
  671.       
  672.        }    
  673.        } //while($row = mysql_fetch_object($resultAmplification))
  674.        }
  675.       } //foreach End $formGenBankID
  676.       }
  677. $QuantityAliquots = array_sum($_POST['formRestQuantity']);
  678.        foreach ($formLocationAliquotsID as $index => $AliquotsID) 
  679.        {  
  680.         $AliquotsFridge = $formAliquotsFridge[$index];
  681.         $AliquotsRack = $formAliquotsRack[$index];
  682.         $AliquotsBox = $formAliquotsBox[$index];
  683.         $RestQuantity = $formRestQuantity[$index];
  684.         $SourceQuantity = $formSourceQuantity[$index];
  685.         $Positions = $_POST['PositionAliquot'][$index];
  686.         $Barcodes = $_POST['BarcodeAliquot'][$index];
  687.         
  688.        $resultAliquots = mysql_query
  689.         ("SELECT dnabanknumbers.ID_DNA, " .
  690.          "       aliquots.Aliquot_Number, " .
  691.          "       aliquots_fridge.Aliquots_Fridge, " .
  692.          "       aliquots.ID_Aliquots_Fridge, " .
  693.          "       aliquots_rack.Aliquots_Rack, " .
  694.          "       aliquots.ID_Aliquots_Rack, " .         
  695.          "       aliquots_box.Aliquots_Box, " .
  696.          "       aliquots.Rest_Quantity, " .
  697.          "       aliquots.Origin_Quantity, " .
  698.          "       aliquots.ID_Aliquots_Box, " .         
  699.          "       aliquots.Aliquot_Barcode, " .         
  700.          "       aliquots.Aliquot_Position " .         
  701.          "  FROM dnabanknumbers " .
  702.          "  LEFT JOIN aliquots ON dnabanknumbers.ID_DNA = aliquots.ID_DNA " .
  703.          "  LEFT JOIN aliquots_fridge ON aliquots.ID_Aliquots_Fridge = aliquots_fridge.ID_Aliquots_Fridge " .
  704.          "  LEFT JOIN aliquots_rack ON aliquots.ID_Aliquots_Rack = aliquots_rack.ID_Aliquots_Rack " .
  705.          "  LEFT JOIN aliquots_box ON aliquots.ID_Aliquots_Box = aliquots_box.ID_Aliquots_Box " .                  
  706.          " WHERE aliquots.ID_Aliquots = '$AliquotsID' " .
  707.          " ORDER BY aliquots.ID_Aliquots");    
  708.  
  709.      if(empty($AliquotsID))
  710.      {
  711.      $AliquotNumber = $formDnaBankNumber.'-A'; 
  712.      $sql3a = "INSERT INTO aliquots (ID_DNA, ID_Aliquots_Box, ID_Aliquots_Rack, ID_Aliquots_Fridge, Origin_Quantity, Rest_Quantity, Aliquot_Number, Aliquot_Barcode, Aliquot_Position, Created_Who) " .
  713.                       " VALUES('$ID_DNA','$AliquotsBox','$AliquotsRack','$AliquotsFridge','$SourceQuantity','$RestQuantity','$AliquotNumber','$Barcodes','$Positions','$log')";
  714.         $result3a = mysql_query($sql3a);
  715.         
  716. #######################################Error 3a/3b##############################################################
  717.  
  718. if(!$result3a)
  719. { $msg = $sql3a."\n";
  720.   $msg .= "####Error 3a####";
  721.   trigger_error($msg, E_USER_ERROR);
  722.   $test1 = "false1";   }
  723.   
  724. #############################################################################################################       
  725. }  
  726.      else {
  727.  
  728.       while($row = mysql_fetch_object($resultAliquots))
  729.     { 
  730.       $Aliquot_Number_old = $row->Aliquot_Number;
  731.       $Aliquots_Fridge_old = $row->Aliquots_Fridge;
  732.       $Aliquots_Rack_old = $row->Aliquots_Rack;
  733.       $Aliquots_Box_old = $row->Aliquots_Box;
  734.       $Origin_Quantity_old = $row->Origin_Quantity;
  735.       $Rest_Quantity_old = $row->Rest_Quantity;
  736.       $Barcode_old = $row->Aliquot_Barcode;
  737.       $Position_old = $row->Aliquot_Position;
  738.       
  739.     if ($row->ID_Aliquots_Fridge != $AliquotsFridge or $row->ID_Aliquots_Rack != $AliquotsRack or $row->ID_Aliquots_Box != $AliquotsBox or $Rest_Quantity_old != $RestQuantity or $Position_old != $Positions)
  740.        {
  741.         $sql3 = "INSERT INTO _log_aliquots (ID_Aliquots, ID_DNA, Aliquots_Box, Aliquots_Rack, Aliquots_Fridge, Aliquot_Number, Origin_Quantity, Rest_Quantity, Aliquot_Barcode, Aliquot_Position, Update_Created_Who, Source_Created_Who, Source_Created_When) " .
  742.                       " (SELECT aliquots.ID_Aliquots, " .
  743.                       "aliquots.ID_DNA, " .
  744.                       "'$Aliquots_Box_old', " .
  745.                       "'$Aliquots_Rack_old', " .
  746.                       "'$Aliquots_Fridge_old', " .
  747.                       "aliquots.Aliquot_Number, " .
  748.                       "aliquots.Origin_Quantity, " .
  749.                       "aliquots.Rest_Quantity, " .
  750.                       "'$Barcode_old', " .
  751.                       "'$Position_old', " .
  752.                       "'$log', " .
  753.                       "aliquots.Created_Who, " .
  754.                       "aliquots.Created_When " .
  755.                       "FROM aliquots " .
  756.                       "WHERE aliquots.ID_Aliquots = '$AliquotsID')";
  757.         $result3 = mysql_query($sql3);
  758.         
  759. #######################################Error 3###############################################################
  760.  
  761. if(!$result3)
  762. { $msg = $sql3."\n";
  763.   $msg .= "####Error 3####";
  764.   trigger_error($msg, E_USER_ERROR);
  765.   $test1 = "false1";   }
  766.   
  767. #############################################################################################################  
  768.          if ($result3)
  769.          { 
  770.  
  771.         $sql4 = "UPDATE aliquots SET ID_Aliquots_Fridge = '$AliquotsFridge', " .
  772.                            "ID_Aliquots_Rack = '$AliquotsRack', " .
  773.                            "ID_Aliquots_Box = '$AliquotsBox', " .
  774.                            "Origin_Quantity = '$SourceQuantity', " .
  775.                            "Rest_Quantity = '$RestQuantity', " .
  776.                            "Aliquot_Position = '$Positions', " .
  777.                            "Aliquot_Barcode = '$Barcodes', " .
  778.                            "Update_Who = '$log', " .
  779.                            "Update_When = '$Current_Date' " .
  780.                            "WHERE aliquots.ID_Aliquots = '$AliquotsID'";    
  781.         $result4 = mysql_query($sql4);    
  782.                                              
  783. #######################################Error 4###############################################################
  784.  
  785. if(!$result4)
  786. { $msg = $sql4."\n";
  787.   $msg .= "####Error 4####";
  788.   trigger_error($msg, E_USER_ERROR);
  789.   $test1 = "false2";   }
  790.   
  791. ############################################################################################################# 
  792.  }
  793.        }    
  794.        } //while($row = mysql_fetch_object($resultAliquots))
  795.        }
  796.       } //foreach End $formLocationAliquotsID
  797.  
  798.     if (isset($_REQUEST['c'])) 
  799.    {
  800.    reset($_REQUEST['c']);
  801.    foreach ($_REQUEST['c'] as $b)
  802.    {
  803.    if ($b == "SourceGone")
  804.    $SourceGone = "1";
  805.    if ($b == "StockGone")
  806.    $StockGone = "1";
  807.    if ($b == "BlockGeneral")
  808.    $BlockGeneral = "1";
  809.    if ($b == "Aliquot")
  810.    $Aliquot = "1";
  811.    if ($b == "Backup")
  812.    $Backup = "1";
  813.    }
  814.    }
  815.  
  816.  
  817.  if($formGenBankNumberA)
  818.  {
  819.   $sql = "INSERT INTO amplifications (ID_DNA, ID_Fragment, GenBankNumber, Link, Created_Who)" .
  820.                           "VALUES ('$ID_DNA','$formFragmentA','$formGenBankNumberA','$formGenBankLinkA','$log')";
  821.   $result = mysql_query($sql);
  822.                           
  823. #######################################Error formGenbankNumberA###############################################################
  824.  
  825. if(!$result)
  826. { $msg = $sql."\n";
  827.   $msg .= "####Error formGenBankNumberA####";
  828.   trigger_error($msg, E_USER_ERROR);
  829.   /**
  830.   * calling Error message
  831.   */
  832.   include ("../config/Errorreport.php");   }
  833.   
  834. #############################################################################################################                           
  835.  }
  836.  if($formGenBankNumberB)
  837.  {
  838.   $sql = "INSERT INTO amplifications (ID_DNA, ID_Fragment, GenBankNumber, Link, Created_Who)" .
  839.                           "VALUES ('$ID_DNA','$formFragmentB','$formGenBankNumberB','$formGenBankLinkB','$log')";
  840.   $result = mysql_query($sql);
  841.                           
  842. #######################################Error formGenbankNumberB###############################################################
  843.  
  844. if(!$result)
  845. { $msg = $sql."\n";
  846.   $msg .= "####Error formGenBankNumberB####";
  847.   trigger_error($msg, E_USER_ERROR);
  848.   /**
  849.   * calling Error message
  850.   */
  851.   include ("../config/Errorreport.php");   }
  852.   
  853. #############################################################################################################         
  854.  }  
  855.  if($formGenBankNumberC)
  856.  {
  857.   $sql = "INSERT INTO amplifications (ID_DNA, ID_Fragment, GenBankNumber, Link, Created_Who)" .
  858.                           "VALUES ('$ID_DNA','$formFragmentC','$formGenBankNumberC','$formGenBankLinkC','$log')";
  859.   $result = mysql_query($sql);
  860.                           
  861. #######################################Error formGenbankNumberC###############################################################
  862.  
  863. if(!$result)
  864. { $msg = $sql."\n";
  865.   $msg .= "####Error formGenBankNumberC####";
  866.   trigger_error($msg, E_USER_ERROR);
  867.   /**
  868.   * calling Error message
  869.   */
  870.   include ("../config/Errorreport.php");   }
  871.   
  872. #############################################################################################################                           
  873.  }   
  874.  if($formGenBankNumberD)
  875.  {
  876.   $sql = "INSERT INTO amplifications (ID_DNA, ID_Fragment, GenBankNumber, Link, Created_Who)" .
  877.                           "VALUES ('$ID_DNA','$formFragmentD','$formGenBankNumberD','$formGenBankLinkD','$log')";
  878.   $result = mysql_query($sql);
  879.                           
  880. #######################################Error formGenbankNumberD###############################################################
  881.  
  882. if(!$result)
  883. { $msg = $sql."\n";
  884.   $msg .= "####Error formGenBankNumberD####";
  885.   trigger_error($msg, E_USER_ERROR);
  886.   /**
  887.   * calling Error message
  888.   */
  889.   include ("../config/Errorreport.php");   }
  890.   
  891. #############################################################################################################  
  892.  }      
  893.  
  894. if (isset($_REQUEST['Aliquot']))
  895. { 
  896.   
  897. foreach ($_POST['x'] as $v => $value)
  898. {
  899.  
  900.      $rack = $_POST['y'][$v];
  901.      $box = $_POST['z'][$v];
  902.      
  903.      $SourceQuantity = $AliquotSourceQuantity[$v];
  904.      $RestQuantity = $AliquotRestQuantity[$v];
  905.      $Barcode = $BarcodeAliquot[$v];
  906.      $Position = $PositionAliquot[$v];
  907.      
  908.        
  909.      if (!isset($_REQUEST['Aliquot']))
  910.      { unset($value);
  911.        unset($rack);
  912.        unset($box); 
  913.        unset($SourceQuantity);   
  914.        unset($RestQuantity);
  915.        unset($Barcode); 
  916.        unset($Position);    }
  917.       
  918.      else {
  919.        
  920.        if($value=="")
  921.      { unset($value);
  922.        unset($rack); 
  923.        unset($box); 
  924.        unset($SourceQuantity);   
  925.        unset($RestQuantity);
  926.        unset($Barcode); 
  927.        unset($Position);  }
  928.        else {
  929.     
  930.  
  931.      $resultLastAliquotsNumber = mysql_query("SELECT Aliquot_Number FROM aliquots WHERE ID_DNA = '$ID_DNA' ORDER BY Aliquot_Number DESC LIMIT 0,1"); 
  932.  
  933.     if(!$resultLastAliquotsNumber)
  934.   
  935.    { $letter = A; 
  936.      $lettercount = $letter++;
  937.      $AliquotNumber = $formDnaBankNumber.'-'.$lettercount; 
  938. }
  939.  
  940.     else {  
  941.  
  942.   
  943.    while($row = mysql_fetch_object($resultLastAliquotsNumber))
  944. {
  945.     $Number = $row->Aliquot_Number;
  946.     $array = explode("-",$Number);
  947.     $letter = $array[1]; }
  948.  
  949.      $lettercount = $letter++;
  950.      $AliquotNumber = $formDnaBankNumber.'-'.$letter++; 
  951.      
  952.      $sql10 = "INSERT INTO aliquots (ID_DNA, ID_Aliquots_Fridge, ID_Aliquots_Rack, ID_Aliquots_Box, 
  953.                    Aliquot_Number, Origin_Quantity, Rest_Quantity, Aliquot_Barcode, Aliquot_Position, Created_Who) " .
  954.                   "VALUES ('$ID_DNA','$value','$rack','$box','$AliquotNumber','$SourceQuantity','$SourceQuantity','$Barcode','$Position','$log')";
  955.      $result10 = mysql_query($sql10);
  956.                   
  957. #######################################Error 10###############################################################
  958.  
  959. if(!$result10)
  960. { $msg = $sql10."\n";
  961.   $msg .= "####Error 10####";
  962.   trigger_error($msg, E_USER_ERROR);
  963.   $test1 = "false2";   }
  964.   
  965. #############################################################################################################   
  966. } } }
  967.  
  968.    
  969.     }
  970.  
  971. } //foreach ($_POST['x'] as $v => $value)
  972.  
  973.            
  974.  
  975.  
  976.       $sql11 = "INSERT INTO _log_dnabanknumbers (ID_DNA, ID_Cache, Dna_Bank_Number, Extraction_Date, NoExtractDate, Check_Date, Concentration, Absorbance280, Absorbance230, Quantity_Aliquots, Stock_Gone, Source_Gone, Notes, Block_Until, Block_General, Number_Aliquots, Source_Created_When, Source_Created_Who, Type, Tissue, Preservation, Purification, Extraction_Method, Degradation, RelationDNA_Voucher, Extraction_Staff, Provided_By_People, Update_Created_Who, Location_Stock, Backup_Aliquot) " .
  977.             "(SELECT dnabanknumbers.ID_DNA, " .
  978.             "'$ID_Cache_old', " .
  979.             "'$Dna_Bank_Number_old', " .
  980.             "'$Extraction_Date_old', " .
  981.             "'$NoExtractDate_old', " .
  982.             "'$Check_Date_old', " .
  983.             "'$Concentration_old', " .
  984.             "'$Absorbance280_old', " .
  985.             "'$Absorbance230_old', " .
  986.             "'$Quantity_Aliquots_old', " .
  987.             "'$Stock_Gone_old', " .
  988.             "'$Source_Gone_old', " .
  989.             "'$Notes_old', " .
  990.             "'$Block_Until_old', " .
  991.             "'$BlockGeneral_old', " .
  992.             "'$Number_Aliquots_old', " .
  993.             "dnabanknumbers.Created_When, " .
  994.             "dnabanknumbers.Created_Who, " .
  995.             "'$Type_old', " .
  996.             "'$Tissue_old', " .
  997.             "'$Preservation_old', " .
  998.             "'$Purification_Method_old', " .
  999.             "'$Extraction_Method_old', " .
  1000.             "'$Degradation_old', " .
  1001.             "'$RelationDNA_Voucher_old', " .
  1002.             "'$Extraction_Staff_old', " .
  1003.             "'$Provided_By_People_old', " .
  1004.             "'$log', " .
  1005.             "'$Location_Stock_old', " .
  1006.             "'$Backup_Aliquot_old' " .
  1007.             "FROM dnabanknumbers " .
  1008.             "WHERE dnabanknumbers.ID_DNA = '$ID_DNA')";    
  1009.       $result11 = mysql_query($sql11);
  1010.             $IDDnaLog=mysql_insert_id(); 
  1011.             
  1012. #######################################Error 11###############################################################
  1013.  
  1014. if(!$result11)
  1015. { $msg = $sql11."\n";
  1016.   $msg .= "####Error 11####";
  1017.   trigger_error($msg, E_USER_ERROR);
  1018.   $test1 = "false1";   }
  1019.   
  1020. ############################################################################################################# 
  1021.             
  1022.       if ($result11)
  1023.       {   
  1024.       if($_POST['formExtractionDate'] == "YYYY-MM-DD" or $_POST['formExtractionDate'] == "") {unset($formExtractionDate);}
  1025.       if($_POST['formCheckDate'] == "YYYY-MM-DD" or $_POST['formCheckDate'] == "") {unset($formCheckDate);}
  1026.       if($_POST['formBlockDate'] == "YYYY-MM-DD" or $_POST['formBlockDate == ""']) {unset($formBlockDate);}      
  1027.       
  1028.       
  1029.       if($_POST['formExtractionDate'] == "YYYY-MM-DD" or $_POST['formExtractionDate'] == "") { unset($_POST['formExtractionDate']); }
  1030.       else { $date = $_POST['formExtractionDate'];
  1031.       if (!valiDate($date)) {  
  1032.           $Validation = "FALSE";
  1033.           echo '<span class="error">Extraction date incorrect!</span><br>';  }
  1034.       else { $_POST['formExtractionDate'] = $_POST['formExtractionDate']; } }
  1035.  
  1036.       if($_POST['formCheckDate'] == "YYYY-MM-DD" or $_POST['formCheckDate'] == "") { unset($_POST['formCheckDate']); }
  1037.       else { $date = $_POST['formCheckDate'];
  1038.       if (!valiDate($date)) {  
  1039.           $Validation = "FALSE";
  1040.           echo '<span class="error">Quality check date incorrect!</span><br>';  }
  1041.       else { $_POST['formCheckDate'] = $_POST['formCheckDate']; } }
  1042.  
  1043.       if($_POST['formBlockDate'] == "YYYY-MM-DD" or $_POST['formBlockDate'] == "") { unset($_POST['formBlockDate']); }
  1044.       else { $date = $_POST['formBlockDate'];
  1045.       if (!valiDate($date)) {  
  1046.           $Validation = "FALSE";
  1047.           echo '<span class="error">Block date incorrect!</span><br>';  }
  1048.       else { $_POST['formBlockDate'] = $_POST['formBlockDate']; } }
  1049.       
  1050.       
  1051.       
  1052.           $sql12 = "UPDATE dnabanknumbers SET DNA_Bank_Number = '$formDnaBankNumber', " .
  1053.                            "Extraction_Date = '$formExtractionDate', " .
  1054.                            "NoExtractDate = '$formNoExtractDate', " .
  1055.                            "Check_Date = '$formCheckDate', " .
  1056.                            "Concentration = '$formConcentration', " .
  1057.                            "Absorbance280 = '$formAbsorbance280', " .
  1058.                            "Absorbance230 = '$formAbsorbance230', " .
  1059.                            "Notes = '$formNotes', " .
  1060.                            "Notes_Intern = '$formNotesIntern', " .
  1061.                            "Block_Until = '$formBlockDate', " .
  1062.                            "ID_Type = '$formType', " .
  1063.                            "ID_Tissue = '$formTissue', " .
  1064.                            "ID_RelationDNA_Voucher = '$formRelation', " .
  1065.                            "ID_Preservation = '$formPreservation', " .
  1066.                            "ID_Extraction_Method = '$formExtractionMethod', " .
  1067.                            "ID_Extraction_Staff = '$formExtractionStaff', " .
  1068.                            "ID_Purification = '$formPurificationMethod', " .
  1069.                            "ID_Degradation = '$formDegradation', " .
  1070.                            "ID_Provided_By_People = '$formProvidedBy', " .
  1071.                            "Stock_Gone = '$StockGone', " .
  1072.                            "Source_Gone = '$SourceGone', " .
  1073.                            "Block_General = '$BlockGeneral', " .
  1074.                            "Block_Until = '$formBlockDate', " .
  1075.                            "Backup_Aliquot = '$Backup', " .
  1076.                            "Update_Who = '$log', " .
  1077.                            "Update_When = '$Current_Date' " .
  1078.                            "WHERE dnabanknumbers.ID_DNA = '$ID_DNA'";      
  1079.           $result12 = mysql_query($sql12);
  1080.             
  1081.             if(empty($ID_Stock_Fridge_old) or empty($ID_Stock_Rack_old) or empty($ID_Stock_Box_old))
  1082.             { 
  1083.               $sql13a = "INSERT INTO location_stock (ID_Stock_Fridge, ID_Stock_Rack, ID_Stock_Box, Origin_Quantity, Rest_Quantity, Created_Who) " .
  1084.                            "VALUES ('$formStockFridge','$formStockRack','$formStockBox','$formStockQuantity','$formStockRest','$log')";
  1085.               $result13a = mysql_query($sql13a); 
  1086.  
  1087.               $ID_Location_Stock_New = mysql_insert_id();
  1088.             
  1089.               $sql13b = "UPDATE dnabanknumbers SET ID_Location_Stock = '$ID_Location_Stock_New' " .
  1090.                            "WHERE dnabanknumbers.ID_DNA = '$ID_DNA'";
  1091.               $result13b = mysql_query($sql13b);
  1092.             #######################################Error 13a/13b###############################################################
  1093.  
  1094. if(!$result13a or !$result13b)
  1095. { $msg = $sql13a."\n";
  1096.   $msg .= $sql13b. "\n";
  1097.   $msg .= "####Error 13a/13b####";
  1098.   trigger_error($msg, E_USER_ERROR);
  1099.   $test1 = "false2";   } 
  1100.   }
  1101.   
  1102. #############################################################################################################         
  1103.               
  1104.             
  1105.                            
  1106.            $sql13 = "UPDATE location_stock SET ID_Stock_Fridge = '$formStockFridge', " .
  1107.                            "ID_Stock_Rack = '$formStockRack', " .
  1108.                            "ID_Stock_Box = '$formStockBox', " .
  1109.                            "Origin_Quantity = '$formStockQuantity', " .
  1110.                            "Rest_Quantity = '$formStockRest', " .
  1111.                            "Stock_Position = '$formPositionStock', " .
  1112.                            "Update_Who = '$log', " .
  1113.                            "Update_When = '$Current_Date' " .
  1114.                            "WHERE location_stock.ID_Location_Stock = '$ID_Location_Stock_old'";   
  1115.            $result13 = mysql_query($sql13); 
  1116.  
  1117.            
  1118. #######################################Error 12/13###############################################################
  1119.  
  1120. if(!$result12 or !$result13)
  1121. { $msg = $sql12."\n";
  1122.   $msg .= $sql13. "\n";
  1123.   $msg .= "####Error 12/13####";
  1124.   trigger_error($msg, E_USER_ERROR);
  1125.   $test1 = "false2";   }
  1126.   
  1127. #############################################################################################################           
  1128.              /********************************************************************************************
  1129.              * Creating main query for details of single record after saving edits                       *
  1130.              *********************************************************************************************/          
  1131.                           
  1132.  mysql_query("DROP TABLE IF EXISTS tmpDnaIDs");
  1133.           
  1134.           $sqlType = "Detail";
  1135.           $sql = $sqlcreate .
  1136.           $sql = "SELECT DISTINCT dnabanknumbers.ID_DNA FROM dnabanknumbers 
  1137.                     LEFT JOIN cachecollection ON dnabanknumbers.ID_Cache = cachecollection.ID_Cache 
  1138.                     LEFT JOIN cachetaxonidentified ON cachecollection.ID_Cache = cachetaxonidentified.ID_Cache
  1139.                     LEFT JOIN cachehighertaxa ON cachetaxonidentified.ID_TaxonIdentified = cachehighertaxa.ID_CacheTaxonidentified
  1140.                     LEFT JOIN amplifications ON dnabanknumbers.ID_DNA = amplifications.ID_DNA 
  1141.                     LEFT JOIN location_stock ON location_stock.ID_Location_Stock = dnabanknumbers.ID_Location_Stock 
  1142.                     LEFT JOIN aliquots ON dnabanknumbers.ID_DNA = aliquots.ID_DNA 
  1143.                     LEFT JOIN request ON dnabanknumbers.ID_DNA = request.ID_DNA " .
  1144.                  "WHERE dnabanknumbers.ID_DNA = '$ID_DNA' ";
  1145.            if (isset($_SESSION['guest']) || $_SESSION['guest'])  {
  1146.            $sql .= " AND dnabanknumbers.Block_General = '0' "; }
  1147.            if (isset($_SESSION['project']) || $_SESSION['project'])  {
  1148.            $sql .= " AND ((dnabanknumbers.Created_Who != '".$log."' AND dnabanknumbers.Block_General = '0') OR dnabanknumbers.Created_Who = '".$log."') "; }
  1149.            $sql .= $sqllimit;                             
  1150.       }                     
  1151.  
  1152. } // if (isset($_REQUEST['Aliquot']))
  1153.  
  1154.     
  1155.  
  1156.    /********************************************************************************************
  1157.     * Creating main query for details of single record                                          *
  1158.     * START                                                                                     *
  1159.     *********************************************************************************************/ 
  1160. else {
  1161.  
  1162.      mysql_query("DROP TABLE IF EXISTS tmpDnaIDs");
  1163.           
  1164.           $sqlType = "Detail";
  1165.           $sql = $sqlcreate .
  1166.           $sql = "SELECT DISTINCT dnabanknumbers.ID_DNA FROM dnabanknumbers 
  1167.                     LEFT JOIN cachecollection ON dnabanknumbers.ID_Cache = cachecollection.ID_Cache 
  1168.                     LEFT JOIN cachetaxonidentified ON cachecollection.ID_Cache = cachetaxonidentified.ID_Cache
  1169.                     LEFT JOIN cachehighertaxa ON cachetaxonidentified.ID_TaxonIdentified = cachehighertaxa.ID_CacheTaxonidentified
  1170.                     LEFT JOIN amplifications ON dnabanknumbers.ID_DNA = amplifications.ID_DNA 
  1171.                     LEFT JOIN location_stock ON location_stock.ID_Location_Stock = dnabanknumbers.ID_Location_Stock 
  1172.                     LEFT JOIN aliquots ON dnabanknumbers.ID_DNA = aliquots.ID_DNA 
  1173.                     LEFT JOIN request ON dnabanknumbers.ID_DNA = request.ID_DNA " .
  1174.                  "WHERE dnabanknumbers.ID_DNA = '$ID_DNA' ";
  1175.            if (isset($_SESSION['guest']) || $_SESSION['guest'])  {
  1176.            $sql .= " AND dnabanknumbers.Block_General = '0' "; }
  1177.            if (isset($_SESSION['project']) || $_SESSION['project'])  {
  1178.            $sql .= " AND ((dnabanknumbers.Created_Who != '".$log."' AND dnabanknumbers.Block_General = '0') OR dnabanknumbers.Created_Who = '".$log."') "; }
  1179.            $sql .= $sqllimit;                             
  1180.     }
  1181.  
  1182.     /********************************************************************************************
  1183.     * Creating main query for details of single record                                          *
  1184.     * END                                                                                       *
  1185.     *********************************************************************************************/
  1186.   } // if(!$formSubmitUpdate and !$formSubmitVerify)
  1187.     
  1188.     /********************************************************************************************
  1189.     * Show data                                                                                 *
  1190.     * START                                                                                     *
  1191.     *********************************************************************************************/
  1192.     
  1193. $Dnacount=0;
  1194.  
  1195. if(!empty($sql)) 
  1196.  {
  1197.     /********************************************************************************************
  1198.     * just in case it is still here: drop tmpDnaIDs                                             *
  1199.     ********************************************************************************************/
  1200.     mysql_query("DROP TABLE IF EXISTS tmpDnaIDs");
  1201.  
  1202.     mysql_query($sql);
  1203.    if(!mysql_affected_rows()) 
  1204.    {
  1205.     echo "<table border='0' id='tablesearch'><tr><td colspan='5'><a class='red' href=\"data_cleaning.php\">Back to Data Cleaning Overview.</a></td></tr>"; 
  1206.     /********************************************************************************************
  1207.     * Further message for guests and project members when query was wrong                       *
  1208.     *********************************************************************************************/
  1209.    if (isset($_SESSION['guest']) || $_SESSION['guest'] || isset($_SESSION['project']) || $_SESSION['project'])  {
  1210.            echo "<tr><td colspan='5'><span class='error'>Sorry, you don't have permission to see this record.</span></td></tr></table>"; }
  1211.            
  1212.    else {    //user has access to data
  1213.  
  1214.     
  1215.     /********************************************************************************************
  1216.     * Search key string                                                                         *
  1217.     *********************************************************************************************/
  1218.     
  1219.     echo "<tr><td colspan='5'><b>No hits found for:</b>";
  1220.       
  1221.       foreach($descriptionall as $index => $descriptiontest)
  1222.       { $valuetest = $valueall[$index];
  1223.         echo $descriptiontest."[<b>".$valuetest."</b>]"; }
  1224.       echo "</td></tr></table>"; }
  1225.     
  1226.     } //END if(!mysql_affected_rows()) 
  1227.     else 
  1228.     {
  1229.       $result1 = mysql_query
  1230.         ("SELECT dnabanknumbers.ID_DNA, " .
  1231.          "       dnabanknumbers.ID_Cache, " .
  1232.          "       dnabanknumbers.DNA_Bank_Number, " .
  1233.          "       dnabanknumbers.Extraction_Date, " .
  1234.          "       dnabanknumbers.NoExtractDate, " .
  1235.          "       dnabanknumbers.Absorbance280, " .
  1236.          "       dnabanknumbers.Absorbance230, " .
  1237.          "       dnabanknumbers.Concentration, " .
  1238.          "       dnabanknumbers.Check_Date, " .
  1239.          "       dnabanknumbers.Created_Who, " .
  1240.          "       dnabanknumbers.Created_When, " .
  1241.          "       dnabanknumbers.Stock_Gone, " .
  1242.          "       dnabanknumbers.Source_Gone, " .         
  1243.          "       dnabanknumbers.Block_Until, " .
  1244.          "       dnabanknumbers.Block_General, " .
  1245.          "       dnabanknumbers.Notes, " .
  1246.          "       dnabanknumbers.Notes_Intern, " .         
  1247.          "       dnabanknumbers.Backup_Aliquot, " .
  1248.          "       dnabanknumbers.Update_Who, " .
  1249.          "       dnabanknumbers.Update_When, " .
  1250.          "       relationdna_voucher.RelationDNA_Voucher, " . 
  1251.          "       dnatype.Type, " .
  1252.          "       preservation.Preservation, " .
  1253.          "       tissue.Tissue, " .
  1254.          "       extractionmethod.Method, " .
  1255.          "       extractionmethod.Company, " .
  1256.          "       purification.Method, " .
  1257.          "       purification.Company, " .
  1258.          "       degradation.Degradation, " .
  1259.          "       cachecollection.ID_Dataset_Specimen, " .
  1260.          "       cachecollection.UnitID_Specimen, " .
  1261.          "       cachecollection.CollectionCode_Specimen, " .
  1262.          "       cachecollection.InstitutionCode_Specimen, " . 
  1263.          "       cachecollection.ContinentOrOcean, " .
  1264.          "       cachecollection.CountryName, " . 
  1265.          "       cachecollection.CountryISO2, " . 
  1266.          "       cachecollection.Collectors, " . 
  1267.          "       cachecollection.CollectionDate, " . 
  1268.          "       cachecollection.CollectorsNo, " . 
  1269.          "       cachecollection.Locality, " .
  1270.          "       cachecollection.Altitude, " . 
  1271.          "       cachecollection.Longitude, " .
  1272.          "       cachecollection.Latitude, " . 
  1273.          "       cachecollection.CollectionInfo_Other, " .
  1274.          "       cachecollection.TypeStatus, " .
  1275.          "       dataset.Display AS SpecimenDatabase, " .
  1276.          "       dataset.ID_Dataset, " .
  1277.          "       schemata.QueryPart1b, " .
  1278.          "       schemata.QueryPart1_1, " .
  1279.          "       schemata.QueryPart1_2b, " .
  1280.          "       schemata.QueryPart2, " .
  1281.          "       schemata.QueryPart3, " .
  1282.          "       schemata.QueryPart4, " . 
  1283.          "       schemata.QueryPart5, " . 
  1284.          "       provider.Provider, " .
  1285.          "       dataset.Digir_Resource, " .
  1286.          "       dataset.Digir_Source, " .
  1287.          "       provider.Provider, " . 
  1288.          "       provider.ID_Schema " .
  1289.          "  FROM dnabanknumbers JOIN tmpDnaIDs " .
  1290.          "       LEFT JOIN cachecollection ON dnabanknumbers.ID_Cache = cachecollection.ID_Cache " .
  1291.          "       LEFT JOIN relationdna_voucher ON dnabanknumbers.ID_RelationDNA_Voucher = relationdna_voucher.ID_RelationDNA_Voucher " .
  1292.          "       LEFT JOIN dnatype ON dnabanknumbers.ID_Type = dnatype.ID_Type " .
  1293.          "       LEFT JOIN preservation ON dnabanknumbers.ID_Preservation = preservation.ID_Preservation " .
  1294.          "       LEFT JOIN tissue ON dnabanknumbers.ID_Tissue = tissue.ID_Tissue " .
  1295.          "       LEFT JOIN extractionmethod ON dnabanknumbers.ID_Extraction_Method = extractionmethod.ID_Method " .
  1296.          "       LEFT JOIN purification ON dnabanknumbers.ID_Purification = purification.ID_Purification " .
  1297.          "       LEFT JOIN people ON dnabanknumbers.ID_Extraction_Staff = people.ID_People " .
  1298.          "       LEFT JOIN degradation ON dnabanknumbers.ID_Degradation = degradation.ID_Degradation " .
  1299.          "       LEFT JOIN dataset ON cachecollection.ID_Dataset_Specimen = dataset.ID_Dataset " .
  1300.          "       LEFT JOIN provider ON dataset.ID_Provider = provider.ID_Provider " . 
  1301.          "       LEFT JOIN schemata ON provider.ID_Schema = schemata.ID_Schema " .
  1302.          " WHERE dnabanknumbers.ID_DNA = tmpDnaIDs.ID_DNA");
  1303.          
  1304.      $result2 = mysql_query
  1305.         ("SELECT dnabanknumbers.ID_DNA AS ID_DNA, " .
  1306.          "       dnabanknumbers.ID_Cache, " .
  1307.          "       cachecollection.ID_Cache, " .
  1308.          "       cachetaxonidentified.NameAuthorYear AS NameAuthorYear, " .
  1309.          "       cachetaxonidentified.PreferredFlag AS PreferredFlag " .
  1310.          "  FROM cachecollection, cachetaxonidentified, dnabanknumbers, tmpDnaIDs " .
  1311.          " WHERE cachetaxonidentified.ID_Cache = cachecollection.ID_Cache " .
  1312.          "   AND cachecollection.ID_Cache = dnabanknumbers.ID_Cache " .
  1313.          "   AND cachetaxonidentified.PreferredFlag != '' " .
  1314.          "   AND dnabanknumbers.ID_DNA = tmpDnaIDs.ID_DNA");
  1315.         
  1316.      while($row = mysql_fetch_object($result2))
  1317.        {
  1318.        if(isset($PreferredFlag[$row->ID_DNA]))
  1319.          { $Flag = $PreferredFlag[$row->ID_DNA];
  1320.            if($Flag == 'true' or $Flag == '1') {$Preferred = "(preferred species name)";}
  1321.            else {$Preferred = ""; }
  1322.          }
  1323.         else
  1324.          { $PreferredFlag[$row->ID_DNA] = ""; }
  1325.          
  1326.        if(isset($NameAuthorYear[$row->ID_DNA]))
  1327.          { $NameAuthorYear[$row->ID_DNA] .= " " . $Preferred . ", Other Identifications: "; }
  1328.         else
  1329.          { $NameAuthorYear[$row->ID_DNA] = ""; }
  1330.         
  1331.         
  1332.         $tmp = $row->NameAuthorYear;
  1333.         $NameAuthorYear[$row->ID_DNA] .= $tmp;
  1334.         
  1335.         $tmp2 = $row->PreferredFlag;
  1336.         $PreferredFlag[$row->ID_DNA] .= $tmp2; }
  1337.                 
  1338.          
  1339.         $result3 = mysql_query
  1340.         ("SELECT dnabanknumbers.ID_DNA AS ID_DNA, " .
  1341.          "       dnabanknumbers.ID_Cache, " .
  1342.          "       cachecollection.ID_Cache, " .
  1343.          "       cachetaxonidentified.ID_TaxonIdentified, " .
  1344.          "       cachehighertaxa.HigherTaxon AS HigherTaxon, " .
  1345.          "       cachehighertaxa.TaxonRank AS TaxonRank " .
  1346.          "  FROM cachecollection, cachetaxonidentified, cachehighertaxa, dnabanknumbers, tmpDnaIDs " .
  1347.          " WHERE cachehighertaxa.ID_CacheTaxonIdentified = cachetaxonidentified.ID_TaxonIdentified " .
  1348.          "   AND cachetaxonidentified.ID_Cache = cachecollection.ID_Cache " .
  1349.          "   AND cachecollection.ID_Cache = dnabanknumbers.ID_Cache " .
  1350.          "   AND dnabanknumbers.ID_DNA = tmpDnaIDs.ID_DNA");
  1351.         
  1352.  while($row = mysql_fetch_object($result3))
  1353.        {
  1354.        if(isset($TaxonRank[$row->ID_DNA]))
  1355.        { $TaxonRank[$row->ID_DNA] .= "<br>"; }
  1356.        
  1357.        else { $TaxonRank[$row->ID_DNA] = ""; }
  1358.        
  1359.        
  1360.        if(isset($HigherTaxon[$row->ID_DNA]))
  1361.          { 
  1362.            $HigherTaxon[$row->ID_DNA] .= "<br>";
  1363.          }
  1364.         else
  1365.          { $HigherTaxon[$row->ID_DNA] = ""; }
  1366.          
  1367.         $tmp = $row->HigherTaxon;
  1368.         $HigherTaxon[$row->ID_DNA] .= $tmp;       
  1369.         
  1370.         $tmp2 = $row->TaxonRank;
  1371.         $TaxonRank[$row->ID_DNA] .= $tmp2; 
  1372.  
  1373.         }
  1374.  
  1375.         $result3a = mysql_query
  1376.         ("SELECT dnabanknumbers.ID_DNA AS ID_DNA, " .
  1377.          "       dnabanknumbers.ID_Cache, " .
  1378.          "       cacheimages.ID_Cache, " .
  1379.          "       cacheimages.Images " .
  1380.          "  FROM cacheimages, dnabanknumbers, tmpDnaIDs " .
  1381.          " WHERE cacheimages.ID_Cache = dnabanknumbers.ID_Cache " .
  1382.          "   AND dnabanknumbers.ID_DNA = tmpDnaIDs.ID_DNA");
  1383.          
  1384.          while($row = mysql_fetch_object($result3a))
  1385.          {
  1386.          if(isset($ImageLink[$row->ID_DNA]))
  1387.          { $ImageLink .= build_href1($row->Images,$row->Images) . "<br>"; }
  1388.          else
  1389.          {$ImageLink .= build_href1($row->Images,$row->Images) . "<br>"; }
  1390.          }
  1391.         
  1392.  
  1393.        
  1394.        $result5 = mysql_query
  1395.         ("SELECT dnabanknumbers.ID_DNA, " .
  1396.          "       people.Name_All AS Name_All_Extraction " .
  1397.          "  FROM dnabanknumbers,people, tmpDnaIDs " .
  1398.          " WHERE dnabanknumbers.ID_Extraction_Staff = people.ID_People " .
  1399.          "   AND dnabanknumbers.ID_DNA = tmpDnaIDs.ID_DNA");
  1400.        
  1401.        while($row = mysql_fetch_object($result5))
  1402.        { $Extraction_Staff = $row->Name_All_Extraction; }
  1403.        
  1404.        $result6 = mysql_query
  1405.         ("SELECT dnabanknumbers.ID_DNA, " .
  1406.          "       people.Name_All AS Name_All_Provided_By " .
  1407.          "  FROM dnabanknumbers,people, tmpDnaIDs " .
  1408.          " WHERE dnabanknumbers.ID_Provided_By_People = people.ID_People " .
  1409.          "   AND dnabanknumbers.ID_DNA = tmpDnaIDs.ID_DNA");
  1410.        
  1411.        while($row = mysql_fetch_object($result6))
  1412.        { $Provided_By_People = $row->Name_All_Provided_By; }
  1413.        
  1414.        
  1415.        
  1416.         $result7 = mysql_query
  1417.         ("SELECT dnabanknumbers.ID_DNA, " .
  1418.          "       amplifications.GenBankNumber AS GenBankNumber, " .
  1419.          "       amplifications.Link AS Link, " .
  1420.          "       geneticlocus.GeneticLocus AS GeneticLocus " .
  1421.          "  FROM dnabanknumbers JOIN tmpDnaIDs " .
  1422.          "  LEFT JOIN amplifications ON dnabanknumbers.ID_DNA = amplifications.ID_DNA " .
  1423.          "  LEFT JOIN geneticlocus ON amplifications.ID_GeneticLocus = geneticlocus.ID_GeneticLocus " .
  1424.          " WHERE dnabanknumbers.ID_DNA = tmpDnaIDs.ID_DNA");
  1425.  
  1426.       
  1427.        while($row = mysql_fetch_object($result7))
  1428.        {
  1429.         
  1430.          if(isset($Link[$row->ID_DNA]))
  1431.          { if($formSubmitSave) {}
  1432.          else { $Link[$row->ID_DNA] .= ""; }
  1433.           $Link2 .= build_href1($row->Link,$row->GenBankNumber) . "<br>";
  1434.          }
  1435.         else
  1436.          { 
  1437.            $Link[$row->ID_DNA] = "";
  1438.            $Link2 .= build_href1($row->Link,$row->GenBankNumber) . "<br>";
  1439.         } 
  1440.         if(empty($row->Link)) { $Link2 = ""; }
  1441.          
  1442.          
  1443.         if(isset($GeneticLocus[$row->ID_DNA]))
  1444.          { 
  1445.            $GeneticLocus[$row->ID_DNA] .= "<br>";
  1446.          }
  1447.         else
  1448.          { $GeneticLocus[$row->ID_DNA] = ""; }  
  1449.          
  1450.          
  1451.         if($formSubmitSave) {}
  1452.           else {
  1453.           $tmp = $row->Link;
  1454.           $Link[$row->ID_DNA] .= $tmp; }
  1455.         
  1456.           $tmp = $row->GeneticLocus;
  1457.           $GeneticLocus[$row->ID_DNA] .= $tmp;        
  1458.          
  1459.        }
  1460.        
  1461.         $result8 = mysql_query
  1462.         ("SELECT dnabanknumbers.ID_DNA, " .
  1463.          "       stock_box.Stock_Box, " .
  1464.          "       stock_rack.Stock_Rack, " .
  1465.          "       stock_fridge.Stock_Fridge, " .         
  1466.          "       location_stock.Origin_Quantity AS Location_Volume, " .
  1467.          "       location_stock.Rest_Quantity AS Location_Rest, " .
  1468.          "       location_stock.Stock_Barcode, " .
  1469.          "       location_stock.Stock_Position " .
  1470.          "  FROM dnabanknumbers JOIN tmpDnaIDs " .
  1471.          "  LEFT JOIN location_stock ON dnabanknumbers.ID_Location_Stock = location_stock.ID_Location_Stock " .
  1472.          "  LEFT JOIN stock_box ON stock_box.ID_Stock_Box = location_stock.ID_Stock_Box " .
  1473.          "  LEFT JOIN stock_rack ON stock_rack.ID_Stock_Rack = location_stock.ID_Stock_Rack " .
  1474.          "  LEFT JOIN stock_fridge ON stock_fridge.ID_Stock_Fridge = location_stock.ID_Stock_Fridge " .      
  1475.          " WHERE dnabanknumbers.ID_DNA = tmpDnaIDs.ID_DNA");
  1476.               
  1477.        
  1478.        while($row = mysql_fetch_object($result8))
  1479.        { $Location_Box = $row->Stock_Box; 
  1480.          $Location_Rack = $row->Stock_Rack; 
  1481.          $Location_Fridge = $row->Stock_Fridge;
  1482.          $Location_Volume = $row->Location_Volume;
  1483.          $Location_Rest = $row->Location_Rest;
  1484.          $Stock_Barcode = $row->Stock_Barcode;
  1485.          $Stock_Position = $row->Stock_Position;
  1486.        }
  1487.   
  1488.         $result9 = mysql_query
  1489.         ("SELECT dnabanknumbers.ID_DNA, " .
  1490.          "       aliquots_box.Aliquots_Box, " .
  1491.          "       aliquots_rack.Aliquots_Rack, " .
  1492.          "       aliquots_fridge.Aliquots_Fridge, " .         
  1493.          "       aliquots.Aliquot_Number, " .
  1494.          "       aliquots.Origin_Quantity AS Aliquot_Origin, " .
  1495.          "       aliquots.Rest_Quantity AS Aliquot_Rest, " .
  1496.          "       aliquots.Aliquot_Barcode, " . 
  1497.          "       aliquots.Aliquot_Position, " . 
  1498.          "       aliquots.Price, " . 
  1499.          "       aliquots.Currency " . 
  1500.          "  FROM dnabanknumbers JOIN tmpDnaIDs " .
  1501.          "  LEFT JOIN aliquots ON dnabanknumbers.ID_DNA = aliquots.ID_DNA " .
  1502.          "  LEFT JOIN aliquots_box ON aliquots_box.ID_Aliquots_Box = aliquots.ID_Aliquots_Box " .
  1503.          "  LEFT JOIN aliquots_rack ON aliquots_rack.ID_Aliquots_Rack = aliquots.ID_Aliquots_Rack " .
  1504.          "  LEFT JOIN aliquots_fridge ON aliquots_fridge.ID_Aliquots_Fridge = aliquots.ID_Aliquots_Fridge " .      
  1505.          " WHERE dnabanknumbers.ID_DNA = tmpDnaIDs.ID_DNA " .
  1506.          " ORDER BY aliquots.Aliquot_Number");
  1507.        
  1508.        
  1509.         $result10 = mysql_query
  1510.         ("SELECT dnabanknumbers.ID_DNA, " .
  1511.          "       request.Request_Date, " .
  1512.          "       request.Request_Number_Aliquots, " .
  1513.          "       request.Request_Notes, " .
  1514.          "       people.Name_All AS Customer " .
  1515.          "  FROM dnabanknumbers JOIN tmpDnaIDs " .
  1516.          "  LEFT JOIN request ON dnabanknumbers.ID_DNA = request.ID_DNA " .
  1517.          "  LEFT JOIN people ON request.ID_People = people.ID_People " .
  1518.          " WHERE dnabanknumbers.ID_DNA = tmpDnaIDs.ID_DNA");
  1519.        
  1520.        while($row = mysql_fetch_object($result10))
  1521.        {
  1522.         if(isset($Request_Date[$row->ID_DNA]))
  1523.          { $Request_Date[$row->ID_DNA] .= ""; 
  1524.            $DateRequest .= $row->Request_Date . "<br>";
  1525.          }
  1526.         else
  1527.          { $Request_Date[$row->ID_DNA] = ""; 
  1528.            $DateRequest .= $row->Request_Date . "<br>"; }
  1529.          
  1530.         if(isset($Request_Number_Aliquots[$row->ID_DNA]))
  1531.          { $Request_Number_Aliquots[$row->ID_DNA] .= "<br>"; }
  1532.         else
  1533.          { $Request_Number_Aliquots[$row->ID_DNA] = ""; }
  1534.  
  1535.         if(isset($Request_Notes[$row->ID_DNA]))
  1536.          { $Request_Notes[$row->ID_DNA] .= "<br>"; }
  1537.         else
  1538.          { $Request_Notes[$row->ID_DNA] = ""; }
  1539.  
  1540.         if(isset($Customer[$row->ID_DNA]))
  1541.          { $Customer[$row->ID_DNA] .= "<br>"; }
  1542.         else
  1543.          { $Customer[$row->ID_DNA] = ""; }
  1544.          
  1545.          $tmp = $row->Request_Date;
  1546.          $Request_Date[$row->ID_DNA] .= $tmp;
  1547.        
  1548.          $tmp = $row->Request_Number_Aliquots;
  1549.          $Request_Number_Aliquots[$row->ID_DNA] .= $tmp;
  1550.        
  1551.          $tmp = $row->Request_Notes;
  1552.          $Request_Notes[$row->ID_DNA] .= $tmp;
  1553.        
  1554.          $tmp = $row->Customer;
  1555.          $Customer[$row->ID_DNA] .= $tmp; }
  1556.          
  1557.  
  1558.         $result11 = mysql_query
  1559.         ("SELECT publications_amplifications.ID_DNA, " .
  1560.          "  publications_amplifications.Paper_Cache, " .
  1561.          "  publications_amplifications.GeneticLocus AS GeneticLocusPub, " .
  1562.          "  publications.Link AS LinkPub " .
  1563.          "  FROM publications_amplifications JOIN tmpDnaIDs " .
  1564.          " LEFT JOIN publications ON publications_amplifications.ID_Publications = publications.ID_Publications " .
  1565.          " WHERE publications_amplifications.ID_DNA = tmpDnaIDs.ID_DNA");
  1566.          
  1567.        while($row = mysql_fetch_object($result11))
  1568.        { 
  1569.         if(isset($Paper_Cache[$row->ID_DNA]))
  1570.          { $Paper_Cache[$row->ID_DNA] .= "<br>"; }
  1571.         else
  1572.          { $Paper_Cache[$row->ID_DNA] = ""; }
  1573.  
  1574.         if(isset($GeneticLocusPub[$row->ID_DNA]))
  1575.          { $GeneticLocusPub[$row->ID_DNA] .= "<br>"; }
  1576.         else
  1577.          { $GeneticLocusPub[$row->ID_DNA] = ""; }
  1578.       
  1579.         if(isset($LinkPub[$row->ID_DNA]))
  1580.          { if($formSubmitSave) {}
  1581.          else { $LinkPub[$row->ID_DNA] .= ""; }
  1582.           $LinkPub2 .= build_href1($row->LinkPub,"document") . "<br>";
  1583.          }
  1584.         else
  1585.          { 
  1586.            $LinkPub[$row->ID_DNA] = "";
  1587.            $LinkPub2 .= build_href1($row->LinkPub,"document") . "<br>";
  1588.         } 
  1589.  
  1590.          $tmp = $row->Paper_Cache;
  1591.          $Paper_Cache[$row->ID_DNA] .= $tmp;
  1592.        
  1593.          $tmp = $row->GeneticLocusPub;
  1594.          $GeneticLocusPub[$row->ID_DNA] .= $tmp;
  1595.          
  1596.          if($formSubmitSave) {}
  1597.           else {
  1598.           $tmp = $row->LinkPub;
  1599.           $LinkPub[$row->ID_DNA] .= $tmp; }
  1600.         }       
  1601.     
  1602.     /********************************************************************************************
  1603.     * Show hitlist  ($sqlType == "Dna")                                                         *
  1604.     * START                                                                                     *
  1605.     *********************************************************************************************/
  1606.     
  1607.     if($sqlType=="Dna") 
  1608.     { 
  1609.  
  1610.       echo "<table border='0' id='tablesearch'><tr><td colspan='5'><a class='red' href=\"data_cleaning.php\">Back to Data Cleaning Overview.</a></td></tr>"; 
  1611.       $pagesum = mysql_num_rows($result1);
  1612.       echo "<tr><td colspan='5' align='center'><b>".$sum;
  1613.       if($sum == 1) {echo " entry "; } else { echo " entries ";}
  1614.       echo "found for:</b>";
  1615.       
  1616.       foreach($descriptionall as $index => $descriptiontest)
  1617.       { $valuetest = $valueall[$index];
  1618.         echo $descriptiontest."[<b>".$valuetest."</b>]"; }
  1619.       echo ".<input type='hidden' name='page' value='".$page."'></td></tr>";
  1620.        /**
  1621.        * paging hitlist
  1622.        */
  1623.        include("pages.php");  
  1624.       echo "<tr><td colspan='5'><hr /></td></tr></table>";
  1625.       $Dnacount=0;
  1626.        
  1627.       echo "<table border='0' id='tablesearch'>";
  1628.       echo "<th></th><th width='120'><a href='query_clean.php?hitlist=true&sort=DU";
  1629.        if($_GET['page'] != "") { echo "&page=".$_GET['page']; }
  1630.       echo "'><img src='../images/";
  1631.       if($_GET['sort'] == "DU" or $_GET['sort'] == "") { echo "upg.jpg"; }
  1632.       else { echo "up.jpg"; }
  1633.       echo "' border='0'/></a>DNA Bank No<a href='query_clean.php?hitlist=true&sort=DD";
  1634.        if($_GET['page'] != "") { echo "&page=".$_GET['page']; }
  1635.       echo"'><img src='../images/";
  1636.       if($_GET['sort'] == "DD") { echo "downg.jpg"; }
  1637.       else { echo "down.jpg"; }
  1638.       echo "' border='0'/></a></th><th width='160'><a href='query_clean.php?hitlist=true&sort=SU";
  1639.        if($_GET['page'] != "") { echo "&page=".$_GET['page']; }
  1640.       echo "'><img src='../images/";
  1641.       if($_GET['sort'] == "SU") { echo "upg.jpg"; }
  1642.       else { echo "up.jpg"; }
  1643.       echo "' border='0'/></a>UnitID/Specimen No<a href='query_clean.php?hitlist=true&sort=SD";
  1644.        if($_GET['page'] != "") { echo "&page=".$_GET['page']; }
  1645.       echo "'><img src='../images/";
  1646.       if($_GET['sort'] == "SD") { echo "downg.jpg"; }
  1647.       else { echo "down.jpg"; }
  1648.       echo "' border='0'/></a></th><th width='200'><a href='query_clean.php?hitlist=true&sort=CU";
  1649.        if($_GET['page'] != "") { echo "&page=".$_GET['page']; }
  1650.       echo "'><img src='../images/";
  1651.       if($_GET['sort'] == "CU") { echo "upg.jpg"; }
  1652.       else { echo "up.jpg"; }
  1653.       echo "' border='0'/></a>Collection<a href='query_clean.php?hitlist=true&sort=CD";
  1654.        if($_GET['page'] != "") { echo "&page=".$_GET['page']; }
  1655.       echo "'><img src='../images/";
  1656.       if($_GET['sort'] == "CD") { echo "downg.jpg"; }
  1657.       else { echo "down.jpg"; }
  1658.       echo "' border='0'/></a></th><th width='120'><a href='query_clean.php?hitlist=true&sort=IU";
  1659.        if($_GET['page'] != "") { echo "&page=".$_GET['page']; }
  1660.       echo "'><img src='../images/";
  1661.       if($_GET['sort'] == "IU") { echo "upg.jpg"; }
  1662.       else { echo "up.jpg"; }
  1663.       echo "' border='0'/></a>Institution<a href='query_clean.php?hitlist=true&sort=ID";
  1664.        if($_GET['page'] != "") { echo "&page=".$_GET['page']; }
  1665.       echo "'><img src='../images/";
  1666.       if($_GET['sort'] == "ID") { echo "downg.jpg"; }
  1667.       else { echo "down.jpg"; }
  1668.       echo "' border='0'/></a></th><th><a href='query_clean.php?hitlist=true&sort=TU";
  1669.        if($_GET['page'] != "") { echo "&page=".$_GET['page']; }
  1670.       echo "'><img src='../images/";
  1671.       if($_GET['sort'] == "TU") { echo "upg.jpg"; }
  1672.       else { echo "up.jpg"; }
  1673.       echo "' border='0'/></a>Taxon<a href='query_clean.php?hitlist=true&sort=TD";
  1674.        if($_GET['page'] != "") { echo "&page=".$_GET['page']; }
  1675.       echo "'><img src='../images/";
  1676.       if($_GET['sort'] == "TD") { echo "downg.jpg"; }
  1677.       else { echo "down.jpg"; }
  1678.       echo "' border='0'/></a></th>";
  1679.       echo "<tr><td colspan='6'><hr/></td></tr>";
  1680.       
  1681.       for ($i=1; $i<=$pagesum; $i++) {
  1682.       $row=mysql_fetch_array($result1);
  1683.       {
  1684.         $Dnacount++;
  1685.         if($Dnacount<=$pagesize) 
  1686.          {
  1687.           $ID = $row['ID_DNA'];
  1688.           $LinkSpecimen = "sqlType=Detail&ID_DNA=".$ID;
  1689.           if($_GET['page'] > 1) { $LinkSpecimen .= "&Page=".$_GET['page']; }
  1690.           $number = ($page-1)*$pagesize+$i;
  1691.           
  1692.           echo "<tr style='border-top-width:1px;border-top-style:solid;border-color:#CCCCCC;'><td valign='top' align='right'><b>".$number.".</b></td><td valign='top'><b><span style='margin-left:10px;'>".build_href("query_clean.php",
  1693.                       $LinkSpecimen,
  1694.                       $row['DNA_Bank_Number']) . "</span></b></td><td valign='top'><span style='margin-left:10px;'>".$row['UnitID_Specimen']."</span></td><td valign='top'><span style='margin-left:10px;'>".$row['CollectionCode_Specimen']."</a></td><td valign='top'><span style='margin-left:10px;'>".$row['InstitutionCode_Specimen']."</a></td><td valign='top'>";
  1695.  
  1696. echo $NameAuthorYear[$row['ID_DNA']];
  1697.         
  1698. echo "</td></tr>";
  1699.            
  1700.  
  1701.           }
  1702.         } } // for ($i=1; $i<=$pagesum; $i++) 
  1703.         
  1704.               echo "</table>";
  1705.       } // if($sqlType=="Dna") 
  1706.  
  1707.       /********************************************************************************************
  1708.       * Show hitlist  ($sqlType == "Dna")                                                         *
  1709.       * END                                                                                       *
  1710.       *********************************************************************************************/
  1711.       
  1712.       /********************************************************************************************
  1713.       * Show details of a single record  ($sqlType == "Detail")                                   *
  1714.       * 1. Selecting DNA data from database                                                       *
  1715.       * 2. Selecting reference to specimen record                                                 *
  1716.       * 3. Getting specimen data live from original provider                                      *
  1717.       * 3a. When specimen provider is not available, show specimen data from cache tables         *
  1718.       * 3b. When specimen data recorded in Specimen Tool and not yet available via wrapper use    *
  1719.       *     another script (see line 1894)                                                        *
  1720.       * START                                                                                     *
  1721.       *********************************************************************************************/
  1722.       
  1723.      if($sqlType=="Detail")
  1724.      {
  1725.  
  1726.       echo "<table border='0' id='tablesearch'><tr><td width='80'><a class='red' href='query_clean.php'>Back to Data Cleaning Overview</a></td>"; 
  1727.       if($formSubmitSave)
  1728.       { echo "<td><a class='red' href='query_clean.php?hitlist=true' name='formBackToHitlist'>Back to Hitlist</a></td>";
  1729.          if ($test1 == 'false1' or $test1 == 'false2'){ echo "<td>"; 
  1730.          /**
  1731.          * calling Error message
  1732.          */
  1733.          include("../config/Errorreport.php"); }         
  1734.          
  1735.         if ($test1 != 'false1' and $test1 != 'false2') { echo "<td align='right'><div class='background3'><span class='fine'>Changes accepted.</span></div>"; }
  1736.         echo "</td></tr>"; }
  1737.       else {
  1738.       echo "<td><a class='red' href='query_clean.php?hitlist=true";
  1739.        if($_GET['Page'] != "") { echo "&page=".$_GET['Page']; }
  1740.       
  1741.       echo "'>Back to Hitlist</a></td></tr>"; }
  1742.       echo "</table>";
  1743.       
  1744.         /********************************************************************************************
  1745.         * Building table for DNA details                                                            *
  1746.         * START                                                                                     *
  1747.         *********************************************************************************************/
  1748.       
  1749.       echo "<table border='0' id='tabledetails' class='main'>";
  1750.  
  1751.       $Dnacount=0;
  1752.       while($row = mysql_fetch_object($result1)) 
  1753.       {
  1754.         $Dnacount++;
  1755.         $ID_Cache = $row->ID_Cache;
  1756.         
  1757.         /********************************************************************************************
  1758.         * Select further DNA samples from same voucher  ($test)                                     *
  1759.         * See also line 1960                                                                        *
  1760.         *********************************************************************************************/
  1761.         
  1762.         $test = mysql_query("SELECT dnabanknumbers.ID_DNA, dnabanknumbers.DNA_Bank_Number, " .
  1763.                             "dnabanknumbers.Extraction_Date FROM dnabanknumbers, tmpDnaIDs " .
  1764.                             "WHERE dnabanknumbers.ID_Cache = '$ID_Cache' " .
  1765.                             "  AND dnabanknumbers.ID_DNA != tmpDnaIDs.ID_DNA " .
  1766.                             "ORDER BY LENGTH(dnabanknumbers.DNA_Bank_Number),dnabanknumbers.DNA_Bank_Number");
  1767.         
  1768.         if($Dnacount<=$pagesize) 
  1769.          {
  1770.           
  1771.           if($row->NoExtractDate == '1')
  1772.           { $NoExtractDate = "No Extraction Date available."; }
  1773.           echo "<tr><td colspan='7'><hr></td></tr>",
  1774.           "<tr><td colspan='7'><h6>DNA details </h6></td></tr>",
  1775.  
  1776. "<tr><td id='DescriptionBlack2'>Extraction No</td><td colspan='2'><span class='details'>" . $row->DNA_Bank_Number . "</span></td>",
  1777. $row->Type ? "<td id='DescriptionBlack2'>DNA Type</td><td colspan='3'><span class='DescriptionGreen2'>" . $row->Type . "</span></td></tr>" : "<td colspan='2'></td></tr>",
  1778.  
  1779. "<tr><td><h4>Relation to voucher </h4></td><td colspan='6'><h4>" . $row->RelationDNA_Voucher . "</h4></td></tr>",
  1780. "<tr>",
  1781. $row->Tissue ? "<td id='DescriptionBlack2'>Tissue</td><td colspan='2'><span class='DescriptionGreen2'>" . $row->Tissue . "</span></td>" : "",
  1782. $row->Source_Gone ? "<td id='DescriptionBlack2'>Tissue source material gone</td><td colspan='3'><span class='DescriptionGreen2'>Yes</span></td>" : "",
  1783. "</tr>",
  1784. $row->Preservation ? "<tr><td id='DescriptionBlack2'>Preservation</td><td colspan='6'><span class='DescriptionGreen2'>" . $row->Preservation . "</span></td></tr>" : "",
  1785.  
  1786. "<tr><td colspan='7'><h4>Extraction </h4></td></tr>",
  1787.  
  1788. $row->Extraction_Date || $row->NoExtractDate ? "<tr><td id='DescriptionBlack2'>Extraction Date</td><td colspan='5'><span class='DescriptionGreen2'>" . $row->Extraction_Date . $NoExtractDate . "</span></td></tr>" : "",
  1789. "<tr>",
  1790. $row->Extraction_Method ? "<td id='DescriptionBlack2'>Extraction Method</td><td colspan='2'><span class='DescriptionGreen2'>" . $row->Extraction_Method . " (" . $row->Extraction_Company . ")</span></td>" : "",
  1791. $Extraction_Staff ? "<td id='DescriptionBlack2'>Extraction Staff</td><td colspan='3'><span class='DescriptionGreen2'>" . $Extraction_Staff . "</span></td>" : "",
  1792. "</tr>",
  1793.  
  1794. $row->Absorbance280 || $row->Absorbance230 || $row->Concentration || $row->Purification_Method || $row->Degradation || $row->Check_Date ?"<tr><td colspan='7'><h4>Quality </h4></td></tr>" : "",
  1795.  
  1796. $row->Absorbance280 || $row->Absorbance230 ? "<tr><td id='DescriptionBlack2'>Ratio of Absorbance</td>" : "",
  1797. $row->Absorbance280 ? "<td colspan='2'><span class='DescriptionGreen2'>" . $row->Absorbance280 . " OD<sub>260nm</sub>/OD<sub>280nm</sub></span></td>" : "",
  1798. $row->Absorbance230 ? "<td></td><td colspan='3'><span class='DescriptionGreen2'>" . $row->Absorbance230 . " OD<sub>260nm</sub>/OD<sub>230nm</sub></span></td>" : "",
  1799. $row->Absorbance280 || $row->Absorbance230 ? "</tr>" : "",
  1800.  
  1801. "<tr>",
  1802. $row->Concentration ? "<td id='DescriptionBlack2'>Concentration</td><td colspan='2'><span class='DescriptionGreen2'>" . $row->Concentration . " ng/&#956;l</span></td>" : "",
  1803. $row->Purification_Method ? "<td id='DescriptionBlack2'>Purification Method</td><td colspan='3'><span class='DescriptionGreen2'>" . $row->Purification_Method . " (" . $row->Purificaton_Company . ")</span></td>" : "",
  1804. "</tr>",
  1805. "<tr>",
  1806. $row->Degradation ? "<td id='DescriptionBlack2'>Quality</td><td colspan='2'><span class='DescriptionGreen2'>" . $row->Degradation . "</span></td>" : "",
  1807. $row->Check_Date ? "<td id='DescriptionBlack2'>Quality Check Date</td><td colspan='3'><span class='DescriptionGreen2'>" . $row->Check_Date . "</span></td>" : "",
  1808. "</tr>",
  1809.  
  1810. $Link2 || $Fragment[$row->ID_DNA] ? "<tr><td colspan='7'><h4>GenBank Entries </h4></td></tr>" : "",
  1811. "<tr>",
  1812. $Fragment[$row->ID_DNA] ? "<td id='DescriptionBlack2'>Genetic Locus</td><td colspan='6'><span class='DescriptionGreen2'>" . $Fragment[$row->ID_DNA] . "</span></td>" : "",
  1813. "</tr>",
  1814. $Link2 ? "<tr><td id='DescriptionBlack2' valign='top'>GenBank Acc.No/<br/>BOLD Process ID</td><td colspan='6'>" .$Link2 . "</td></tr>" : "",
  1815.  
  1816. $Provided_By_People || $row->Block_Until || $row->Block_General || $row->Notes ? "<tr><td colspan='7'><h4>Notes </h4></td></tr>" : "",
  1817. $Provided_By_People ? "<tr><td id='DescriptionBlack2'>DNA Sample Provided By</td><td colspan='6'><span class='DescriptionGreen2'>" . $Provided_By_People . "</span></td></tr>" : "",
  1818. "<tr>",
  1819. $row->Block_Until ? "<td id='DescriptionBlack2'>Blocked Until</td><td colspan='2'><span class='DescriptionGreen2'>" . $row->Block_Until . "</span></td>" : "",
  1820. $row->Block_General ? "<td id='DescriptionBlack2'>Blocked in General</td><td colspan='3'><span class='DescriptionGreen2'>Yes</span></td>" : "",
  1821. "</tr>",
  1822. "<tr>",
  1823. $row->Notes ? "<tr><td id='DescriptionBlack2'>Remarks for Customers</td><td colspan='6' valign='top'><span class='DescriptionGreen2'>" . $row->Notes . "</span></td>" : "";
  1824. if ((isset($_SESSION['guest']) && $_SESSION['guest']) || ((isset($_SESSION['project']) || $_SESSION['project']) && $row->Created_Who != $log) ) 
  1825. {}
  1826. else {
  1827. echo $row->Notes_Intern ? "<tr><td id='DescriptionBlack2'>Internal Remarks</td><td colspan='6' valign='top'><span class='DescriptionGreen2'>" . $row->Notes_Intern . "</span></td>" : ""; }
  1828. echo "</tr>";
  1829.  
  1830. if ((isset($_SESSION['guest']) && $_SESSION['guest']) || ((isset($_SESSION['project']) || $_SESSION['project']) && $row->Created_Who != $log) ) 
  1831. {}
  1832. else {
  1833.  
  1834. echo "<tr class='background1'><td><h4>Stock/Aliquots</h4></td><td align='center'><h4>Fridge/Rack/Box</h4></td><td align='center'><h4>Barcode</h4></td><td align='center'><h4>Position</h4></td><td align='center'><h4>Source (&micro;l)</h4></td><td align='center'><h4>Remaining (&micro;l)</h4></td><td><h4>Price</h4></td></tr>",
  1835.  
  1836. $row->Stock_Gone ? "<tr><td id='DescriptionBlack2'>Stock material gone</td><td colspan='6'><span class='DescriptionGreen2'>Yes</span></td></tr>" : "",
  1837. $Location_Fridge || $Location_Rack || $Location_Box || $Location_Volume || $Stock_Barcode || $Stock_Position ? "<tr><td id='DescriptionBlack2'><span class='DescriptionGreen2'>Stock ".$row->DNA_Bank_Number."&nbsp;&nbsp;&nbsp;</span></td><td align='center'><span class='DescriptionGreen2'>" . $Location_Fridge . "/" . $Location_Rack . " /" . $Location_Box . "</span></td><td align='center'><span class='DescriptionGreen2'> ".$Stock_Barcode."</span></td><td align='center'><span class='DescriptionGreen2'>".$Stock_Position."</span></td><td align='center'><span class='DescriptionGreen2'>" .$Location_Volume . "</span></td><td align='center'><span class='DescriptionGreen2'>" . $Location_Rest . "</span></td></tr>" : "<tr><td id='DescriptionBlack2'><span class='DescriptionGreen2'>Stock ".$row->DNA_Bank_Number."&nbsp;&nbsp;&nbsp;</span></td><td colspan='6'><span class='error'>No Stock made</span></td></tr>";
  1838.  
  1839. while($row2 = mysql_fetch_object($result9))
  1840.        {         
  1841.          $Test4[] = $row2->Aliquots_Box;
  1842.          $Test5[] = $row2->Aliquots_Rack;
  1843.          $Test6[] = $row2->Aliquots_Fridge;
  1844.          $Test7[] = $row2->Aliquot_Number;
  1845.          $Test9[] = $row2->Aliquot_Origin;
  1846.          $Test10[] = $row2->Aliquot_Rest;
  1847.          $Test11[] = $row2->Aliquot_Barcode;
  1848.          $Test12[] = $row2->Aliquot_Position; 
  1849.          $Test13[] = $row2->Price." ".$row2->Currency;      }    
  1850.        
  1851. foreach($Test7 as $index => $NumberTest)
  1852. {
  1853.       $RackTest = $Test5[$index];
  1854.       $FridgeTest = $Test6[$index];
  1855.       $BoxTest = $Test4[$index];
  1856.       $SourceQuantity = $Test9[$index];
  1857.       $RestQuantity = $Test10[$index];
  1858.       $Barcode = $Test11[$index];
  1859.       $Position = $Test12[$index];
  1860.       $Price = $Test13[$index];
  1861.          
  1862.   
  1863.  
  1864. echo "<tr><td id='DescriptionBlack2'>Aliquot ".$NumberTest."</td><td valign='top' align='center'><span class='DescriptionGreen2'>".$FridgeTest."/".$RackTest."/".$BoxTest;
  1865.     echo "</span></td><td align='center'><span class='DescriptionGreen2'>".$Barcode."</span></td><td align='center'><span class='DescriptionGreen2'>".$Position."</span></td><td align='center'><span class='DescriptionGreen2'>".$SourceQuantity."</span></td><td align='center'><span class='DescriptionGreen2'>".$RestQuantity."</span></td><td align='center'><span class='DescriptionGreen2'>".$Price."</span></td></tr>";    }
  1866. } // END if (!isset($_SESSION['guest']) && !$_SESSION['guest'])
  1867.  
  1868. echo $row->Backup_Aliquot ? "<tr><td id='DescriptionBlack2'>Backup Aliquot made</td><td colspan='6'><span class='DescriptionGreen2'>Yes</span></td></tr>" : "<tr><td id='DescriptionBlack2'>Backup Aliquot made</td><td colspan='6'><span class='DescriptionGreen2'>No</span></td></tr>";
  1869.  
  1870. echo $Paper_Cache[$row->ID_DNA] ? "<tr><td valign='top'><h4 class='background1'>Publications </h4></td><td valign='top'><b>Fragment</b><br><span class='DescriptionGreen2'>" . $FragmentPub[$row->ID_DNA] . "</span></td><td colspan='4'><b>Publication</b><br><span class='DescriptionGreen2'>" . $Paper_Cache[$row->ID_DNA] . "</span></td>" : "",
  1871. $LinkPub[$row->ID_DNA] && $Paper_Cache[$row->ID_DNA] ? "<td><br>" . $LinkPub2 ."</td></tr>" : "";
  1872.  
  1873. if (!isset($_SESSION['guest']) && !$_SESSION['guest'] && !isset($_SESSION['project']) && !$_SESSION['project']) {
  1874.  
  1875. echo $Customer[$row->ID_DNA] ? "<tr><td valign='top'><h4 class='background1'>Requests </h4></td><td colspan='3'><b>Customer</b><br><span class='DescriptionGreen2'>" . $Customer[$row->ID_DNA] . "</span></td><td><b>Date</b><br><span class='DescriptionGreen2'>" . $DateRequest . "</span></td><td><b>Aliquot No</b><br><span class='DescriptionGreen2'>" . $Request_Number_Aliquots[$row->ID_DNA] . "<(span></td><td valign='top'><b>Notes</b><br><span class='DescriptionGreen2'>" . $Request_Notes[$row->ID_DNA] . "</span></td></tr>" : ""; }
  1876.  
  1877.           echo "</table>";
  1878.           
  1879.           /********************************************************************************************
  1880.           * Building table for DNA details                                                            *
  1881.           * END                                                                                       *
  1882.           *********************************************************************************************/
  1883.           
  1884.           /********************************************************************************************
  1885.           * Building table for specimen/voucher details                                               *
  1886.           * START                                                                                     *
  1887.           *********************************************************************************************/
  1888.           
  1889.           echo  "<table border='0' id='tablesearch'>";
  1890.            echo "<tr><td colspan='5'>";
  1891.           
  1892.           $ID_Dataset = $row->ID_Dataset;      
  1893.           $Provider = $row->Provider; 
  1894.           $QueryPart1b = $row->QueryPart1b;
  1895.           $QueryPart1_1 = $row->QueryPart1_1;
  1896.           $QueryPart1_2b = $row->QueryPart1_2b;
  1897.           $QueryPart2 = $row->QueryPart2;
  1898.           $QueryPart3 = $row->QueryPart3;
  1899.           $QueryPart4 = $row->QueryPart4;
  1900.           $QueryPart5 = $row->QueryPart5;
  1901.           $Digir_Resource1 = urlencode($row->Digir_Resource);
  1902.           $Digir_Source1 = urlencode($row->Digir_Source);
  1903.           $ID_Schema = $row->ID_Schema;
  1904.           $SourceUnitID = urlencode($row->UnitID_Specimen);
  1905.           $SourceInstitutionCode = urlencode($row->InstitutionCode_Specimen);
  1906.           $SourceCode = urlencode($row->CollectionCode_Specimen);
  1907.           
  1908.           
  1909.          if($ID_Dataset == '1' and $Provider == '')
  1910.           {  /**
  1911.              * when specimen data are recorded in Specimen Tool ($ID_Dataset == '1') and this data are
  1912.              * not yet available via wrapper ($Provider == '') include another script
  1913.              */
  1914.              include ("../sptool/sptool.php");  }
  1915.  
  1916. else {  //data availabe via wrapper
  1917.           $searchform = true;
  1918.           /**
  1919.           * calling script verify.php for getting specimen data from original data provider
  1920.           * sending parameter $searchform = true in opposite to calling same script during Input package
  1921.           * see script verify.php for more details
  1922.           */
  1923.           include ("../input/verify.php");
  1924.       
  1925. if($ProviderCheck == true) {         
  1926.           
  1927.   echo "<h6>Specimen details (voucher) </h6></td></tr>",
  1928.   "<tr><td id='DescriptionGreen'>Specimen Number/UnitID</td><td>" . $row->UnitID_Specimen . "</td><td id='DescriptionGreen'>Specimen database</td><td colspan='2'>" . $row->SpecimenDatabase . "</td></tr>",            
  1929.   "<tr><td id='DescriptionGreen'>Collection Code</td><td>" . $row->CollectionCode_Specimen . "</td><td id='DescriptionGreen'>Institution Code</td><td colspan='2'>" . $row->InstitutionCode_Specimen . "</td></tr>", 
  1930.   "<tr><td colspan='5'><h4 class='background1'>Identifications</h4></td></tr>",
  1931.   "<tr><td valign='top' id='DescriptionGreen'>Taxon Name </td><td valign='top'>";
  1932.   echo $NameAuthorYear[$row->ID_DNA];
  1933.  echo "</td>",
  1934.  $HigherTaxon[$row->ID_DNA] ? "<td valign='top' id='DescriptionGreen'>Higher Taxon</td><td valign='top'>" . $HigherTaxon[$row->ID_DNA] . "</td><td valign='top'>" . $TaxonRank[$row->ID_DNA] . "</td></tr>" : "",
  1935.  
  1936.   "<tr><td colspan='5'><h4 class='background1'>Gathering</h4></td></tr>",
  1937.   "<tr>",
  1938.   $row->CountryName ? "<td id='DescriptionGreen'>Country</td><td>" . $row->CountryName . "</td>" : "",
  1939.   $row->CountryISO2 ? "<td id='DescriptionGreen'>Country ISO Code</td><td colspan='2'>" . $row->CountryISO2 . "</td>" : "",   
  1940.   "</tr>",
  1941.   "<tr>", 
  1942.   $row->ContinentOrOcean ? "<td id='DescriptionGreen'>Continent/Ocean</td><td>" . $row->ContinentOrOcean . "</b></td>" : "",
  1943.   $row->Locality ? "<td id='DescriptionGreen' valign='top'>Locality</td><td colspan='2'>" . $row->Locality . "</td>" : "",
  1944.   "</tr>",
  1945.   "<tr>",
  1946.   $row->Longitude || $row->Latitude ? "<td id='DescriptionGreen'>Long | Lat </td><td>" . $row->Longitude . " | ".$row->Latitude."</td>" : "",
  1947.   $row->Altitude ? "<td id='DescriptionGreen'>Altitude</td><td colspan='2'>" . $row->Altitude . "</td>" : "",
  1948.   "</tr>",
  1949.   "<tr>",
  1950.   $row->Collectors ? "<td id='DescriptionGreen'>Collector(s)</td><td>" . $row->Collectors . "</td>" : "",
  1951.   $row->CollectionDate ? "<td id='DescriptionGreen'>Collection Date</td><td colspan='2'>" . $row->CollectionDate . "</td>" : "",
  1952.   "</tr>",
  1953.   "<tr>",
  1954.   $row->CollectorsNo ? "<td id='DescriptionGreen'>Collectors' Number</td><td>" . $row->CollectorsNo . "</td>" : "",
  1955.   $row->CollectionInfo_Other ? "<td id='DescriptionGreen'>Collection</td><td colspan='2'>" . $row->CollectionInfo_Other . "</td>" : "",
  1956.   "</tr>",
  1957.  
  1958.   $ImageLink ? "<tr><td id='DescriptionGreen'>Multimedia</td><td colspan='4'>" . $ImageLink . "</td></tr>" : "",
  1959.   
  1960.   $row->TypeStatus ? "<tr><td id='DescriptionGreen'>Type Status</td><td colspan='4'>" . $row->TypeStatus . "</td></tr>" : ""; 
  1961.   } // if($ProviderCheck == true)
  1962.  
  1963. } //data availabe via wrapper
  1964.   echo "<tr><td colspan='5'><hr></td></tr></table>";
  1965.  
  1966.           /********************************************************************************************
  1967.           * Building table for specimen/voucher details                                               *
  1968.           * END                                                                                       *
  1969.           *********************************************************************************************/
  1970.  
  1971.           /********************************************************************************************
  1972.           * Building table for related DNA samples (source = same voucher/specimen) and details about *
  1973.           * creation date and staff of record and date and staff of last edit process                 *
  1974.           * START                                                                                     *
  1975.           *********************************************************************************************/
  1976.   
  1977.   echo "<table border='0' id='tablesearch' class='main'>";
  1978.  
  1979. if(mysql_num_rows($test) > 0)
  1980.   {  echo "<tr><td colspan='7'><h6>Other DNA Samples from this voucher</h6></td></tr>"; 
  1981.    while($roww = mysql_fetch_object($test))
  1982.   { $Test_ID = $roww->ID_DNA;
  1983.   echo "<tr><td id='DescriptionBlack2'>Extraction No</td><td colspan='6'>".build_href("query_clean.php","sqlType=Detail&ID_DNA=$Test_ID",$roww->DNA_Bank_Number)."</td></tr>"; }
  1984.    echo "<tr><td colspan='7'><hr /></td></tr>"; }
  1985.  
  1986. echo "<tr><td colspan='7'><h4>Dataset </h4></td></tr>",
  1987.  
  1988. "<tr><td id='DescriptionBlack2'>Created by</td><td colspan='6'><span class='DescriptionGreen2'>" . $row->Created_Who . " (" . $row->Created_When . ")</span></td></tr>",
  1989. $row->Update_Who ? "<tr><td id='DescriptionBlack2'>Last modified by</td><td colspan='6'><span class='DescriptionGreen2'>" . $row->Update_Who . " (" . $row->Update_When . ")</span></td></tr>" : "",   
  1990. "<tr><td colspan='7' align='right'>";
  1991. if($formSubmitSave)
  1992. {$sql0 = "UPDATE dnabanknumbers SET Lock_Who = '', Lock_When = '' WHERE dnabanknumbers.ID_DNA = '$ID_DNA'";
  1993.     $result0 = mysql_query($sql0);}
  1994. else { 
  1995.  
  1996. if ((isset($_SESSION['guest']) && $_SESSION['guest']) || ((isset($_SESSION['project']) || $_SESSION['project']) && $row->Created_Who != $log) ) 
  1997. {}
  1998.  
  1999. else {
  2000.  
  2001.           /********************************************************************************************
  2002.           * Locking record if another user is editing the same record at the same time                *
  2003.           * see also update_clean.php line 29                                                         *
  2004.           *********************************************************************************************/
  2005.  
  2006. $sql10 = "SELECT ID_DNA, Lock_Who, Lock_When FROM dnabanknumbers WHERE ID_DNA = '$ID_DNA'";
  2007. $result10 = mysql_query($sql10);
  2008.  
  2009. while($row = mysql_fetch_object($result10))
  2010. { $TestWho = $row->Lock_Who; 
  2011.   $TestWhen = $ow->Lock_When;}
  2012. if($TestWho == "")
  2013. { echo "<input type='submit' name='formSubmitUpdate' value='Edit Dataset'></td></tr>"; }
  2014. if($TestWho != "")
  2015. {
  2016. $TestWhen2 = $TestWhen + "0000-00-00 00:30:00";
  2017. if($TestWhen2 >= $Current_Date)
  2018. { 
  2019. if($TestWho != $log)
  2020. {echo "Dataset temporarily not editable."; }
  2021. }
  2022. if($TestWhen2 < $Current_Date or $TestWho == $log)
  2023. { $sql11 = "UPDATE dnabanknumbers SET Lock_Who = '', Lock_When = '' WHERE dnabanknumbers.ID_DNA = '$ID_DNA'";
  2024.   $result11 = mysql_query($sql11);
  2025.   echo "<input type='submit' name='formSubmitUpdate' value='Edit Dataset'></td></tr>";  
  2026.     }}
  2027.     
  2028.  } }
  2029. echo "</table>"; 
  2030.  
  2031.          /********************************************************************************************
  2032.           * Building table for related DNA samples (source = same voucher/specimen) and details about *
  2033.           * creation date and staff of record and date and staff of last edit process                 *
  2034.           * END                                                                                       *
  2035.           *********************************************************************************************/
  2036.           
  2037.           } // if($Dnacount<=$pagesize) 
  2038.         } //$Dnacount=0;  while($row = mysql_fetch_object($result1)) 
  2039.       }  //  if($sqlType=="Detail")
  2040.       
  2041.       /********************************************************************************************
  2042.       * Show details of a single record  ($sqlType == "Detail")                                   *
  2043.       * END                                                                                       *
  2044.       *********************************************************************************************/
  2045.       
  2046.     mysql_query("DROP TABLE IF EXISTS tmpDnaIDs");
  2047.  
  2048.  
  2049. } //user has access to data
  2050. } //if(!empty($sql))
  2051.  
  2052. }  /********************************************************************************************
  2053.     * Saving edited record                                                                      *
  2054.     * END                                                                                       *
  2055.     *********************************************************************************************/
  2056.  
  2057. ?>
  2058.  
  2059. </td>
  2060. </tr>
  2061. </form>
  2062. </table>
  2063. <?php
  2064.     /**
  2065.     * including footer
  2066.     */
  2067.     include("../footer.php"); ?> 
  2068. </div>
  2069. </body>
  2070. </html>

Documentation generated on Tue, 29 Nov 2011 10:45:04 +0100 by phpDocumentor 1.4.3