<?php
/*
Plugin Name: Import Claim Submission
Description: Import Claim Submission
Version: 1.0
*/


function getPathFromString($string) {
  return explode("/",$string);
}


//
function importSubmissionFromForm($num, $importType=3) {
  global $CURRENT_USER;
  mysqlStrictMode(false);
  
  $filesImported=0;
  
  $importType = $CURRENT_USER['import_record_type'];
  
  $importMap = mysql_get('data_import',$importType);
  
  if($importMap['type_of_file'] != "xml") {
    $error =  "You are not set to import xml";
    return array($error, "");
  }
  
  
  $ignoreFields = array(  'dragSortOrder',
                          'updatedByUserNum',
                          'updatedDate',
                          'createdByUserNum',
                          'createdDate',
                          'num',
                          'title',
                          'type_of_file');
  
  foreach($ignoreFields as $field) {
    unset($importMap[$field]);
  }
  

  
  
  $insuredFields = array( 'field_insured_name',
                          'field_insured_last_name',
                          'field_insured_address',
                          'field_insured_city',
                          'field_insured_state',
                          'field_insured_zip',
                          'field_insured_phone',
                          'field_insured_cell',
                          'field_insured_email');
  
  $insuredPropertyFields = array( 'field_address',
                                  'field_city',
                                  'field_state',
                                  'field_zip');
  
                          
  $claimant1Fields = array( 'field_claimant_1_name',
                            'field_claimant_1_last_name',
                            'field_claimant_1_address',
                            'field_claimant_1_city',
                            'field_claimant_1_state',
                            'field_claimant_1_zip',
                            'field_claimant_1_phone',
                            'field_claimant_1_cell',
                            'field_claimant_1_email');
  
  $claimant2Fields = array( 'field_claimant_2_name',
                            'field_claimant_2_last_name',
                            'field_claimant_2_address',
                            'field_claimant_2_city',
                            'field_claimant_2_state',
                            'field_claimant_2_zip',
                            'field_claimant_2_phone',
                            'field_claimant_2_cell',
                            'field_claimant_2_email');
  
  
  
  $schema      = loadSchema('import_temp');
  $fieldSchema = $schema['uploads'];
  list($uploadDir, $uploadUrl) = getUploadDirAndUrl($fieldSchema);
  

  $importTempRecord = mysql_get('import_temp',$num);
  $uploadRecords = mysql_select('uploads', " tableName = 'import_temp' AND recordNum = '" . $num . "' ");
  
 // showme($importTempRecord);
 // showme($uploadRecords);
  
  
  if(!$uploadRecords) {
    return;
  }
  

  
  foreach($uploadRecords as $upload) {
   // echo $uploadDir  . $upload['filePath'] . "<br><br>";
    
    $xml = simplexml_load_file($uploadDir  . $upload['filePath']);
    

      foreach($importMap as $dbName => $importName) {
        if(in_array($dbName,$insuredFields)){ continue; }
        if(in_array($dbName,$claimant1Fields)){ continue; }
        if(in_array($dbName,$claimant2Fields)){ continue; }
        if(in_array($dbName,$insuredPropertyFields)){ continue; }        
        if($importName) {
          $node = "";
          $result = $xml->xpath($importName);
          //showme($result);
          if($result) {
            list($key , $node) = each($result);
            $dataArray[$dbName] = (string)$node;
            //echo $importName . " " .$key . " " . $node . "<br>";
          } 
        }
      }


    foreach($xml->Claim->Contacts->Contact as $contact) {
      if($contact->ContactTypeID=="1") {
        foreach($importMap as $dbName => $importName) {
          //echo $dbName . "<br>";
          if(!in_array($dbName,$insuredFields)){ continue; }
          if($importName) {
            $result = $contact->xpath($importName);
          }
          //echo $importName;
          //showme($result);
          if($result) {
            list($key , $node) = each($result);
            $dataArray[$dbName] = (string)$node;
            //echo $importName . " " .$key . " " . $node . "<br>";
          }
        }
      }

      if($contact->ContactTypeID=="4") {
        foreach($importMap as $dbName => $importName) {
          //echo $dbName . "<br>";
          if(!in_array($dbName,$claimant1Fields)){ continue; }
          if($importName) {
            $result = $contact->xpath($importName);
          }
          //echo $importName;
          //showme($result);
          if($result) {
            list($key , $node) = each($result);
            $dataArray[$dbName] = (string)$node;
            //echo $importName . " " .$key . " " . $node . "<br>";
          }
        }
      }     
      if($contact->ContactTypeID=="13") {
        foreach($importMap as $dbName => $importName) {
          //echo $dbName . "<br>";
          if(!in_array($dbName,$claimant2Fields)){ continue; }
          if($importName) {
            $result = $contact->xpath($importName);
          }
          //echo $importName;
          //showme($result);
          if($result) {
            list($key , $node) = each($result);
            $dataArray[$dbName] = (string)$node;
            //echo $importName . " " .$key . " " . $node . "<br>";
          }
        }
      }
      if($contact->ContactTypeID=="12") {
        foreach($importMap as $dbName => $importName) {
          //echo $dbName . "<br>";
          if(!in_array($dbName,$insuredPropertyFields)){ continue; }
          if($importName) {
            $result = $contact->xpath($importName);
          }
          //echo $importName;
          //showme($result);
          if($result) {
            list($key , $node) = each($result);
            $dataArray[$dbName] = (string)$node;
            //echo $importName . " " .$key . " " . $node . "<br>";
          }
        }
      }
      
      if($contact->ContactTypeID=="2") {
        foreach($importMap as $dbName => $importName) {
          //echo $dbName . "<br>";
          if(!in_array($dbName,$insuredPropertyFields)){ continue; }
          if($importName) {
            $result = $contact->xpath($importName);
          }
          //echo $importName;
          //showme($result);
          if($result) {
            list($key , $node) = each($result);
            $dataArray[$dbName] = (string)$node;
            //echo $importName . " " .$key . " " . $node . "<br>";
          }
        }
      }

    }
    foreach($dataArray as $key => $value) {
      $newKey = substr($key, 6);
      $insertArray[$newKey] = $value;
    }
    
    if($CURRENT_USER['company_type']=="Insurance") {
      $insertArray['member_company'] = $CURRENT_USER['member_company_accounts'];
      $insertArray['insurance_dispatcher'] = $CURRENT_USER['num'];
    }
    
    if($CURRENT_USER['company_type']=="Independent") {
      $insertArray['independent_company_name'] = $CURRENT_USER['member_company_accounts'];
      $insertArray['independent_dispatcher'] = $CURRENT_USER['num'];
      $insertArray['assign_to_independent_claim_company'] = "Yes";
    } 
    
    $insertArray['createdByUserNum'] = $CURRENT_USER['num'];
    $insertArray['createdDate'] = date("Y-m-d H:i:s");
    $insertArray['updatedDate'] = date("Y-m-d H:i:s");
    $insertArray['date_re_assigned'] = date("Y-m-d H:i:s");
    
    //showme($insertArray);
    
    if(!@$insertArray['claim_status']) {
      $insertArray['claim_status'] = "Assignment Received";
    }
    
    
    if(@$insertArray['claim_date']) {
      $insertArray['claim_date'] = date("Y-m-d", strtotime($insertArray['claim_date']));
    }
    if(isset($insertArray['insured_last_name'])) {
      $insertArray['insured_name'] = @$insertArray['insured_name'] . " " . $insertArray['insured_last_name'];
    }
    if(isset($insertArray['claimant_1_last_name'])) {
      $insertArray['claim_date'] = date("Y-m-d", strtotime($insertArray['claim_date']));
      $insertArray['claimant_1_name'] = @$insertArray['claimant_1_name'] . " " . $insertArray['claimant_1_last_name'];
    }
    if(isset($insertArray['claimant_2_last_name'])) {
      $insertArray['claimant_2_name'] = @$insertArray['claimant_2_name'] . " " . $insertArray['claimant_2_last_name'];
    }
    unset($insertArray['claimant_2_last_name']);
    unset($insertArray['claimant_1_last_name']);
    unset($insertArray['insured_last_name']);
      
    //showme($insertArray);die();
    
    $recordNum = mysql_insert('claims_submission',$insertArray);
    saveUploadFromFilepath('claims_submission','documents',$recordNum,null,$uploadDir  . $upload['filePath']);
    
    if($recordNum) {
      $filesImported++;
    }
    
    
  }
  
  return array("", $filesImported);
  
  
  
}

?>
