function getAmountSumByUserIdAndEntryNameIdAndStartDateAndEndDate($id, $entry_name_id, $start_date = NULL, $end_date = NULL, $exclude_id = NULL, $where = NULL, $order = NULL) { if ($id == '') { return FALSE; } if ($entry_name_id == '') { return FALSE; } if ($start_date == '') { $start_date = 0; } if ($end_date == '') { $end_date = TTDate::getTime(); } $pplf = new PayPeriodListFactory(); $pslf = new PayStubListFactory(); $ph = array('start_date' => $this->db->BindTimeStamp($start_date), 'end_date' => $this->db->BindTimeStamp($end_date), 'user_id' => $id, 'exclude_id' => (int) $exclude_id); $query = ' select sum(amount) as amount, sum(units) as units from ' . $this->getTable() . ' as a, ' . $pslf->getTable() . ' as b where a.pay_stub_id = b.id AND b.pay_period_id in (select id from ' . $pplf->getTable() . ' as y where y.pay_period_schedule_id = ( select pay_period_schedule_id from ' . $pplf->getTable() . ' as z where z.id = b.pay_period_id ) AND y.start_date >= ? AND y.start_date < ? and y.deleted =0) AND b.user_id = ? AND a.id != ? AND a.pay_stub_entry_name_id in (' . $this->getListSQL($entry_name_id, $ph) . ') AND a.deleted = 0 AND b.deleted=0 '; $query .= $this->getWhereSQL($where); $query .= $this->getSortSQL($order); Debug::Text('Query: ' . $query, __FILE__, __LINE__, __METHOD__, 10); $row = $this->db->GetRow($query, $ph); if ($row['amount'] === NULL) { $row['amount'] = 0; } if ($row['units'] === NULL) { $row['units'] = 0; } Debug::text('Over All Sum for ' . $entry_name_id . ': Amount ' . $row['amount'] . ' Units: ' . $row['units'], __FILE__, __LINE__, __METHOD__, 10); return $row; }
function getByCompanyIdAndPayPeriodId($company_id, $pay_period_id, $limit = NULL, $page = NULL, $where = NULL, $order = NULL) { if ($company_id == '') { return FALSE; } if ($pay_period_id == '') { return FALSE; } $strict_order = TRUE; if ($order == NULL or !is_array($order)) { $order = array('a.transaction_date' => 'desc', 'a.advance' => 'asc', 'b.last_name' => 'asc'); $strict_order = FALSE; } $ulf = new UserListFactory(); $pplf = new PayPeriodListFactory(); $ph = array('company_id' => $company_id); $query = ' select a.* from ' . $this->getTable() . ' as a, ' . $ulf->getTable() . ' as b, ' . $pplf->getTable() . ' as c where a.user_id = b.id AND a.pay_period_id = c.id AND b.company_id = ? AND a.pay_period_id in (' . $this->getListSQL($pay_period_id, $ph) . ') AND a.deleted = 0'; $query .= $this->getWhereSQL($where); $query .= $this->getSortSQL($order, $strict_order); if ($limit == NULL) { $this->rs = $this->db->Execute($query, $ph); } else { $this->rs = $this->db->PageExecute($query, $limit, $page, $ph); } //$this->rs = $this->db->Execute($query, $ph); return $this; }