コード例 #1
0
			debug_message($task->getLastError());
		}

		if($project->get($task->project_id) === FALSE){
			$error_msg .= "Error getting project information!\n";
			debug_message($project->getLastError());
		}
	}else{
		if($project->get($ps->project_id) === FALSE){
			$error_msg .= "Error getting project information!\n";
			debug_message($project->getLastError());
		}
	}

	if($_POST['save']){
		$_POST['due_ts'] = getTSFromInput($_POST['due_ts']);
		$ps->updateFromAssocArray($_POST);
		if($ps->update()){
			goBack();
		}else{
			$error_msg .= "Error updating Payment Schedule!\n";
			debug_message($ps->getLastError());
		}
	}
}else if($_REQUEST['mode'] == 'delete'){
	$title = "Delete Payment Schedule";

	if(!$ps->get($_REQUEST['id'])){
		$error_msg .= "Error retrieving payment information!\n";
		debug_message($ps->getLastError());
	}
コード例 #2
0
$reports = new SI_Reports();

$start_ts = 0;
$end_ts = 0;
if(isset($_REQUEST['start'])){
	$start_ts = getTSFromInput($_REQUEST['start']);
}elseif(isset($_REQUEST['start_ts'])){
	$start_ts = $_REQUEST['start_ts'];
}else{
	$start_ts = mktime(0, 0, 0, date("n"), 1, date("Y"));
}
$next_start_ts = mktime(0, 0, 0, date("n", $start_ts) + 1, 1, date("Y", $start_ts));
$prev_start_ts = mktime(0, 0, 0, date("n", $start_ts) - 1, 1, date("Y", $start_ts));

if(isset($_REQUEST['end'])){
	$end_ts = getTSFromInput($_REQUEST['end']) + 86399;
}elseif(isset($_REQUEST['end_ts'])){
	$end_ts = $_REQUEST['end_ts'];
}else{
	$end_ts = mktime(23, 59, 59, date("n") + 1, 1, date("Y")) - (24 * 60 * 60);
}
$next_end_ts = mktime(0, 0, 0, date("n", $next_start_ts) + 1, 1, date("Y", $next_start_ts)) - (24 * 60 * 60);
$prev_end_ts = mktime(0, 0, 0, date("n", $prev_start_ts) + 1, 1, date("Y", $prev_start_ts)) - (24 * 60 * 60);


$next_month_url = $_SERVER['PHP_SELF']."?start_ts=$next_start_ts&end_ts=$next_end_ts&";
$prev_month_url = $_SERVER['PHP_SELF']."?start_ts=$prev_start_ts&end_ts=$prev_end_ts&";

$rows = $reports->salesByItemCode($start_ts, $end_ts);
if($rows === FALSE){
	$error_msg .= "Error getting report data!\n";
コード例 #3
0
ファイル: json_api.php プロジェクト: nanoprime/sureinvoice
         $tasks = $task->findTasks($params[0]);
     }
     if ($tasks === false) {
         $output['error'] = $task->getLastError();
     } else {
         $output['tasks'] = $tasks;
     }
     break;
 case 'addTaskActivity':
     $project = new SI_Project();
     $company = new SI_Company();
     $task = new SI_Task();
     $item_code = new SI_ItemCode();
     $task_activity = new SI_TaskActivity();
     $task_activity->start_ts = getTSFromInput($_POST['ta_popup_start_ts']['date'], $_POST['ta_popup_start_ts']['time']);
     $task_activity->end_ts = getTSFromInput($_POST['ta_popup_end_ts']['date'], $_POST['ta_popup_end_ts']['time']);
     $task_activity->task_id = intval($_POST['ta_popup_task_id']);
     $task_activity->user_id = $loggedin_user->id;
     $task_activity->text = $_POST['ta_popup_text'];
     $task_activity->item_code_id = $_POST['ta_popup_item_code_id'];
     $debug_info = "\n\t\t\tPOST = " . print_r($_POST, true) . "\n\n\t\t\tstart_ts = {$task_activity->start_ts}\n\n\t\t\tend_ts = {$task_activity->end_ts}\n\n\t\t\ttask_id = {$task_activity->task_id}\n\n\t\t\tuser_id = {$task_activity->user_id}\n\n\t\t\titem_code_id = {$task_activity->item_code_id}\n\n\t\t\ttext = {$task_activity->text}\n\n\t\t";
     $output['debug'] = $debug_info;
     if ($task_activity->task_id > 0 || $task_activity->start_ts > 0 || $task_activity->end_ts > 0) {
         if ($task_activity->task_id <= 0 || $task_activity->start_ts <= 0 || $task_activity->end_ts <= 0) {
             $output['error'] = "Skipping incomplete entry\n";
             break;
         }
     } else {
         $output['error'] = "Skipping incomplete entry\n";
         break;
     }
コード例 #4
0
		}
		if($project->get($task->project_id) === FALSE){
			fatal_error("Could not retreive project!");
			debug_message($project->getLastError());
		}
		if(!$project->hasRights(PROJECT_RIGHT_EDIT)){
			fatal_error('Insufficent access rights for this project!');
		}
		
		$company =& $project->getCompany();
	}

	if($_POST['save']){
		if(!$task_activity->isPaid() && !$task_activity->isBilled()){
			if(isset($_POST['start_ts'])) $_POST['start_ts'] = getTSFromInput($_POST['start_ts']['date'], $_POST['start_ts']['time']);
			if(isset($_POST['end_ts'])) $_POST['end_ts'] = getTSFromInput($_POST['end_ts']['date'], $_POST['end_ts']['time']);
		}
		$hourly_rate = $item_code->getCompanyPrice($company->id, $_POST['item_code_id']);
		if($hourly_rate === FALSE){
			$error_msg = "Error getting price for this item code!";
			debug_message($item_code->getLastError());
		}
		$task_activity->hourly_rate = $hourly_rate;
		$task_activity->updateFromAssocArray($_POST);
		if($task_activity->update()){
			if(is_array($_POST['item_ids'])){
				if($task_activity->setItems($_POST['item_ids']) === FALSE){
					$error_msg .= "Error adding completed items to activity!\n";
					debug_message($task_activity->getLastError());
				}
			}
コード例 #5
0
$invoice = new SI_Invoice();
if($invoice->get(intval($_REQUEST['id'])) === FALSE){
  $error_msg .= "Error retreiving invoice information!\n";
  debug_message($invoice->getLastError());
}

$company = new SI_Company();
if($company->get($invoice->company_id) === FALSE){
  $error_msg .= "Error retreiving company information!\n";
  debug_message($company->getLastError());
}


if(isset($_POST['save_top'])){
	$old_invoice = $invoice;
	$timestamp = getTSFromInput($_POST['timestamp']);
	$_POST['timestamp'] = $timestamp;
	$invoice->updateFromAssocArray($_POST);
	if($invoice->update() === FALSE){
		$error_msg .= "Error updating invoice information!";
		debug_message($invoice->getLastError());
	}else{
		//Add discount line
		if($_POST['discount_line'] == 'Y'){
			if($invoice->addDiscountLine() === FALSE){
				$error_msg = "Error calculating discount line\n";
				debug_message($invoice->getLastError());	
			}
		}
	
コード例 #6
0
ファイル: time_entry.php プロジェクト: nanoprime/sureinvoice
require_once('includes/SI_ItemCode.php');

$title = '';
$task_activity = new SI_TaskActivity();
$task = new SI_Task();
$project = new SI_Project();
$item_code = new SI_ItemCode();
$num_entries = 5;

$title = "Add Time";
if($_POST['save']){

	for($i=0; $i<$num_entries; $i++){
		$task_activity = new si_taskactivity();
		$task_activity->start_ts = getTSFromInput($_POST[start_ts][$i]['date'], $_POST[start_ts][$i]['time']);
		$task_activity->end_ts = getTSFromInput($_POST[end_ts][$i]['date'], $_POST[end_ts][$i]['time']);
		$task_activity->task_id = intval($_POST['task_id'][$i]);
		$task_activity->user_id = $loggedin_user->id;
		$task_activity->text = $_POST['text'][$i];
		$task_activity->item_code_id = $_POST['item_code_id'][$i];

//		var_dump($task_activity);
		if(($task_activity->task_id > 0 || $task_activity->start_ts > 0 || $task_activity->end_ts > 0)){
			if(($task_activity->task_id <= 0 || $task_activity->start_ts <= 0 || $task_activity->end_ts <= 0)){
				$error_msg .= "Skipping incomplete entry #".($i + 1)."\n";
				continue;
			}
		}else{
			continue;
		}
コード例 #7
0
ファイル: reports.php プロジェクト: nanoprime/sureinvoice
if(!isset($_REQUEST['billable'])){
	$_REQUEST['billable'] = 'N';
}

if($_REQUEST['save']){
	if(!$loggedin_user->hasRight('admin') && !$loggedin_user->isDeveloper()){
		$_REQUEST['billable'] = 'Y';
		$_REQUEST['company_id'] = $loggedin_user->company_id;
	}

	if(!$loggedin_user->hasRight('admin') && $loggedin_user->isDeveloper()){
		$_REQUEST['resource_id'] = $loggedin_user->id;
	}

	if(empty($_REQUEST['start_ts'])) $_REQUEST['start_ts'] = getTSFromInput($_REQUEST['start']);
	if(empty($_REQUEST['end_ts'])) $_REQUEST['end_ts'] = getTSFromInput($_REQUEST['end']) + 86399;
	$url = $_SERVER['PHP_SELF']."?start_ts=".$_REQUEST['start_ts']."&end_ts=".$_REQUEST['end_ts']."&resource_id=".$_REQUEST['resource_id']."&company_id=".$_REQUEST['company_id']."&billable=".$_REQUEST['billable']."&save=Report&graph_company=".$_REQUEST['graph_company']."&graph_project=".$_REQUEST['graph_project']."&";
	
	$activities = $activity->find($_REQUEST['start_ts'], $_REQUEST['end_ts'], $_REQUEST['resource_id'], $_REQUEST['company_id'], $_REQUEST['billable']);
	if($activities === FALSE){
		$error_msg .= "Error getting report data!\n";
		debug_message($activity->getLastError());
	}
}

?>
<? require('header.php'); ?>
<form action="<?php 
echo $_SERVER['PHP_SELF'];
?>
" METHOD="GET">
コード例 #8
0
 * with this program; if not, write to the Free Software Foundation, Inc.,
 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
 * http://www.gnu.org/copyleft/gpl.html
 *
 */
require_once('includes/common.php');
require_once('includes/SI_Company.php');
require_once('includes/SI_ItemCode.php');
require_once('includes/SI_Account.php');
require_once('includes/SI_Invoice.php');
require_once('includes/SI_Payment.php');


checkLogin();
if(isset($_REQUEST['last_update_ts'])){
	$_REQUEST['update_ts'] = getTSFromInput($_REQUEST['last_update_ts']);	
}

if(isset($_REQUEST['update_ts'])){
	$last_update_ts = $_REQUEST['update_ts'];
}else{
	$last_update_ts = time() - (60 * 60 * 24 * 30);	
}

$company = new SI_Company();
$companies = $company->retrieveSet("WHERE updated_ts > $last_update_ts");
if($companies === FALSE){
	$error_msg .= "Error getting companies updated since ".date('m-d-Y', $last_update_ts);
	debug_message($company->getLastError());
}