<?php
	/**************************************************************************\
	* phpGroupWare Application - phonelog                                      *
	* http://www.phpgroupware.org                                              *
	* Written by Mathieu van Loon <mathieu@playcollective.com>                 *
	* --------------------------------------------                             *
	*  This program is free software; you can redistribute it and/or modify it *
	*  under the terms of the GNU General Public License as published by the   *
	*  Free Software Foundation; either version 2 of the License, or (at your  *
	*  option) any later version.                                              *
	\**************************************************************************/

	/* $Id: editentry.php,v 1.8 2001/05/07 06:24:21 jengo Exp $ */

	if(empty($querytype) || !$querytype) $querytype = "NEW";
  if(($querytype=="SELECT" || $querytype=="UPDATE") && !$callid) die("No callid supplied while require for this type of query : $querytype. Session halted.");
  if ($querytype=="INSERT" || $querytype=="UPDATE") {
     $phpgw_info["flags"] = array("noheader" => True, "nonavbar" => True);
  }

  $phpgw_info["flags"]["currentapp"] = "phonelog";
  include("../header.inc.php");

  // PREPARE LISTS
	if(is_array($phonelog["entry_status"]))
	{
		for($i=1;$i<=max(array_keys($phonelog["entry_status"]));$i++) {
			$callstatus_list[] = array($i, $phonelog["entry_status"][$i]);
		}
	}

  $calldate_month_list[] = array(1, lang("january"));
  $calldate_month_list[] = array(2, lang("february"));
  $calldate_month_list[] = array(3, lang("march"));
  $calldate_month_list[] = array(4, lang("may"));
  $calldate_month_list[] = array(5, lang("april"));
  $calldate_month_list[] = array(6, lang("june"));
  $calldate_month_list[] = array(7, lang("july"));
  $calldate_month_list[] = array(8, lang("august"));
  $calldate_month_list[] = array(9, lang("september"));
  $calldate_month_list[] = array(10, lang("october"));
  $calldate_month_list[] = array(11, lang("november"));
  $calldate_month_list[] = array(12, lang("december"));

  $users = $phpgw->accounts->get_list("accounts");
	for($i=0;$i<sizeof($users);$i++) {
		$callfor_list[$i] = array($users[$i]["account_id"], $users[$i]["account_firstname"] . " " . $users[$i]["account_lastname"]);
	}


 	$callfrom_company_all_list[] = array(0 , "------------------");
  $phpgw->db->query("SELECT DISTINCT org_name FROM phpgw_addressbook ORDER BY org_name",__LINE__,__FILE__);
  while($phpgw->db->next_record()) {
    list($company_name) = $phpgw->db->Record;
    $callfrom_company_all_list[] = array($company_name, $company_name);
  }
  $phpgw->db->free();
	$callfrom_person_one_list[] = array(0, "---------------------");


	$callfrom_person_all_list[] = array(0, "---------------------");
	$phpgw->db->query("SELECT id, n_given, n_middle, n_family FROM phpgw_addressbook ORDER BY n_family",__LINE__,__FILE__);
	while($phpgw->db->next_record()) {
		list($ab_id, $ab_firstname, $ab_middle, $ab_lastname) = $phpgw->db->Record;
		$callfrom_person_all_list[] = array($ab_id, $ab_firstname . " " . $ab_middle ." ".$ab_lastname);
	}
	$phpgw->db->free();

  // END PREPARE LISTS

  function prepForDb() {
    global $callfrom_type, $callfrom_person_all, $callfrom_person_one;
    global $calldate_year, $calldate_month, $calldate_day, $calldate_hour, $calldate_minute;
    global $callfrom_txt, $calldesc_short, $calldesc_long;
    global $tmp_callfrom_id, $tmp_calldate;
    // Handle caller id
    if($callfrom_type==0)
       $tmp_callfrom_id = $callfrom_person_all;
    elseif($callfrom_type==1)
       $tmp_callfrom_id = $callfrom_person_one;
    else
       $tmp_callfrom_id = 0;

    // Format time
    $tmp_calldate = mktime($calldate_hour,$calldate_minute,$calldate_second,$calldate_month,$calldate_day,$calldate_year);
  }

  if ($querytype == "INSERT") {
    prepForDb();
    $phpgw->db->query("INSERT INTO phonelog_entry (pl_callfrom_id, pl_callfrom_txt, pl_callfor, "
                    . "pl_calldate, pl_status, pl_desc_short, pl_desc_long) VALUES ($tmp_callfrom_id,"
                    . "'$callfrom_txt', '$callfor', '$tmp_calldate', $callstatus, '$calldesc_short',"
                    . "'$calldesc_long')",__LINE__,__FILE__);
    Header("Location: " . $phpgw->link("/phonelog/index.php"));
  }
  if ($querytype == "UPDATE") {
    prepForDb();
    $phpgw->db->query("UPDATE phonelog_entry SET pl_callfrom_id=$tmp_callfrom_id, pl_callfrom_txt='$callfrom_txt', pl_callfor='$callfor', pl_calldate='$tmp_calldate', pl_status=$callstatus, pl_desc_short='$calldesc_short', pl_desc_long='$calldesc_long' WHERE pl_id=$callid",__LINE__,__FILE__);
    Header("Location: " . $phpgw->link("/phonelog/"));
  }

  if ($querytype == "NEW") {
    $calldate_month = date("n");
  	$calldate_day = date("j");
    $calldate_year = date("Y");
    $calldate_hour = date("G");
    $calldate_minute = date("i");
    $callstatus = 3; // Default to status 3 ('call back') at this moment
    $callfor = 0;
    $callfrom_type = 0;
    $callfrom_txt = "";
    $callfrom_person_all = 0;
    $callfrom_company_one = "";
    $callfrom_company_all = 0;
    $callfrom_person_one = 0;
		$calldesc_short =  "";
		$calldesc_long = "";

    $querytype_new = "INSERT";
  }
  if ($querytype == "CALLFROMSELECTED") {
		 if($callfrom_type == 0) {
        $callfrom_company_all = 0;
        $callfrom_person_one = 0;
        $phpgw->db->query("SELECT org_name FROM phpgw_addressbook WHERE id=".$callfrom_person_all,__LINE__,__FILE__);
        $phpgw->db->next_record();
        list($callfrom_company_one) = $phpgw->db->Record;
        $phpgw->db->free();
     } elseif($callfrom_type == 1) {
        $callfrom_person_all = 0;
        $callfrom_company_one = "";
        $phpgw->db->query("SELECT id, fn FROM phpgw_addressbook WHERE "
                        . "org_name='".$callfrom_company_all."' ORDER BY n_family",__LINE__,__FILE__);
				while($phpgw->db->next_record()) {
        	list($ab_id, $ab_fullname) = $phpgw->db->Record;
					$callfrom_person_one_list[] = array($ab_id, $ab_fullname);
        }
     } else {
        $callfrom_person_all = 0;
        $callfrom_company_one = "";
        $callfrom_company_all = 0;
        $callfrom_person_one = 0;
     }

     if($callid) $querytype_new = "UPDATE";
     else $querytype_new = "INSERT";
  }
  if($querytype=="SELECT") {
     $phpgw->db->query("SELECT pl_callfrom_id, pl_callfrom_txt, pl_callfor, YEAR(pl_calldate), "
                     . "MONTH(pl_calldate), DAYOFMONTH(pl_calldate), HOUR(pl_calldate), "
                     . "MINUTE(pl_calldate), pl_status, pl_desc_short, pl_desc_long FROM "
                     . "phonelog_entry WHERE pl_id=$callid",__LINE__,__FILE__);
     $phpgw->db->next_record();
     list($callfrom_person_all, $callfrom_txt, $callfor, $calldate_year, $calldate_month, $calldate_day, $calldate_hour, $calldate_minute, $callstatus, $calldesc_short, $calldesc_long) = $phpgw->db->Record;
     $phpgw->db->free();
     // Set callfrom
     $callfrom_person_one = 1;
     $callfrom_company_all = 0;
     if($callfrom_person_all) {
       $callfrom_type = 0;
       if($phpgw_info["apps"]["timetrack"]["enabled"]) {
         $phpgw->db->query("SELECT company_name FROM addressbook, customers WHERE company_id=ab_company_id AND ab_id=".$callfrom_person_all,__LINE__,__FILE__);
       } else {
         $phpgw->db->query("SELECT ab_company FROM addressbook WHERE ab_id=".$callfrom_person_all,__LINE__,__FILE__);
       }
       $phpgw->db->next_record();
       list($callfrom_company_one) = $phpgw->db->Record;
       $phpgw->db->free();
     } else {
       $callfrom_type = 2;
       $callfrom_company_one = "";
       $callfrom_person_all = 0;
     }

     $querytype_new="UPDATE";
  }

 	$lang_phonelog_action = lang("phone log - add");
  $lang_callstatus = lang("status");
 	$lang_calldate = lang("call came in at");
	$lang_callfrom = lang("call from");
	$lang_by_person = lang("by person");
	$lang_by_company = lang("by company");
  $lang_by_txt = lang("as free text");
  $lang_callfor = lang("call for");
	$lang_desclong = lang("description");
	$lang_descshort = lang("summary");
  $lang_addsubmitb = lang("Add");
  $lang_addresetb = lang("Clear Form");
?>

<p>&nbsp; <?php echo $lang_phonelog_action ?><br>
<hr noshade width="98%" align="center" size="1">

<script>
function doShowCustomerDetails(inForm) {
  inForm.querytype.value = "CALLFROMSELECTED";
  inForm.submit();
}
</script>
<center>
 <form name="editform" action="<?php echo $phpgw->link("/phonelog/editentry.php"); ?>" method="POST">
   <input type="hidden" name="callid" value="<?php echo $callid ?>">
   <input type="hidden" name="querytype" value="<?php echo $querytype_new ?>">
   <table width="75%" border="0" cellspacing="0" cellpadding="0">
   <tr>
     <td rowspan="3" valign=top><?php echo $lang_callfrom ?>:</td>
     <td>
       <?php echo $lang_by_person ?> :
     </td>
     <td>
       <input type=radio name="callfrom_type" value="0" <?php if(!$callfrom_type) echo "CHECKED" ?>>
		   <select name="callfrom_person_all" size="1" onFocus="this.form.callfrom_type[0].checked = true;" onChange="doShowCustomerDetails(this.form);">
          <?php echo printSelectList($callfrom_person_all, $callfrom_person_all_list) ?>
       </select>
     </td>
     <td>
		   <input type=text name="callfrom_company_one" READONLY value="<?php echo $callfrom_company_one ?>">
     </td>
   </tr>
     <tr>
       <td>
    		 <?php echo $lang_by_company ?>
       </td>
       <td>
         <input type=radio name="callfrom_type" value="1" <?php if($callfrom_type==1) echo "CHECKED" ?>>
         <select name="callfrom_company_all" size="1" onFocus="this.form.callfrom_type[1].checked = true;" onChange="doShowCustomerDetails(this.form);">
           <?php echo printSelectList($callfrom_company_all, $callfrom_company_all_list) ?>
         </select>
       </td>
       <td width="50%">
         <select name="callfrom_person_one">
           <?php echo printSelectList($callfrom_person_one, $callfrom_person_one_list) ?>
         </select>
       </td>
     </tr>
   <tr>
     <td>
       <?php echo $lang_by_txt ?>
     </td>
     <td colspan="2">
       <input type=radio name="callfrom_type" value="2" <?php if($callfrom_type==2) echo "CHECKED" ?>>
       <input type="text" value="<?php echo $callfrom_txt ?>" onFocus="this.form.callfrom_type[2].checked = true;" name="callfrom_txt" size="20" maxlength="255">
     </td>
   </tr>
   <tr>
     <td><?php echo $lang_callstatus ?>:</td>
     <td colspan="3">
       <select name="callstatus">
         <?php echo printSelectList($callstatus, $callstatus_list) ?>
       </select>
     </td>
   </tr>
   <tr>
     <td><?php echo $lang_callfor ?>:</td>
     <td colspan="3">
       <select name="callfor">
         <?php echo printSelectList($callfor, $callfor_list) ?>
       </select>
     </td>
   </tr>
   <tr>
     <td><?php echo $lang_calldate ?>:</td>
     <td colspan="3">
     <?php
			$day   = '<input type="text" name="calldate_day" value="' . $calldate_day . '" size="2" maxlength="2">
';
			$month = '<SELECT name="calldate_month" size="1">
'
					.  printSelectList($calldate_month, $calldate_month_list)
					. '</SELECT>
';
			$year  ='<input type="text" name="calldate_year" value="' . $calldate_year . '" size="4" maxlength="4">';

			echo $phpgw->common->dateformatorder($year,$month,$day,True);
		?>
		 -
       <input type="text" name="calldate_hour" value="<?php echo $calldate_hour ?>" size="2" maxlength="2">:
       <input type="text" name="calldate_minute" value="<?php echo $calldate_minute ?>" size="2" maxlength="2">
     </td>
   </tr>
   <tr>
     <td colspan="4">&nbsp;</td>
   </tr>
   <tr>
     <td><?php echo $lang_descshort ?>:</td>
     <td colspan="3"><input type="text" name="calldesc_short" size="60" maxlength="255" value="<?php echo $calldesc_short ?>"></td>
   </tr>
   <tr>
     <td><?php echo $lang_desclong ?>:</td>
     <td colspan="3"><textarea name="calldesc_long" cols="50" rows="5"><?php echo $calldesc_long ?></textarea></td>
   </tr>
   </table>
   <?php if($querytype_new=="INSERT") : ?>
     <input type="submit" value="Add">
   <?php elseif($querytype_new=="UPDATE") : ?>
     <input type="submit" value="Update">
   <?php endif ?>
 </form>
</center>

<?php
  $phpgw->common->phpgw_footer();
?>
