function en_get_general_info($en_ID) { $entityInfo = array(); $sql = "SELECT en.*,CONV( en_access,10,2) as en_access_bin,cd.*\r\n\t\tFROM \r\n\t\t\t`cs_entities` as en \r\n\t\t\tleft join cs_companydetails cd on en_type='merchant' and en_type_ID = userId\r\n\t\twhere \r\n\t\t\ten_ID = '{$en_ID}'"; $result = sql_query_read($sql) or dieLog(mysql_error() . " ~ {$sql}"); $entityInfo = mysql_fetch_assoc($result); $entityInfo['en_info'] = etel_unserialize($entityInfo['en_info']); $entityInfo['PaySchedule'] = en_get_payout_schedule($entityInfo); $entityInfo['Affiliates'] = en_get_affiliates($en_ID); $access_bin = strrev(base_convert($entityInfo['en_access'], 10, 2)); $entityInfo['en_access'] = array(); for ($i = 0; $i < 64; $i++) { $entityInfo['en_access'][$i] = substr($access_bin, $i, 1) == 1; } if ($entityInfo['en_info']['General_Notes']) { $entityInfo['en_info']['General_Notes'] = html_entity_decode($entityInfo['en_info']['General_Notes']); } /* $sql="SELECT count(*) as Total, count(distinct file_type) as 'Distinct', sum(file_type='Articles') as Articles, sum(file_type='Contract') as Contracts, sum(file_type='History') as History, sum(file_type='License') as License, sum(file_type='Professional_Reference') as Reference FROM `cs_uploaded_documents` where status='Approved' and ud_en_ID = '$en_ID'"; $result = sql_query_read($sql) or dieLog(mysql_error()." ~ $sql"); $entityInfo['docs'] = mysql_fetch_assoc($result); foreach($entityInfo['docs'] as $type => $doc) if($doc) $entityInfo['docs']['stats'] .= "$type:$doc "; $sql="SELECT count(*) as Total, sum(cs_verified='pending') as Pending, sum(cs_verified='non-compliant') as 'Non-Compliant', sum(cs_verified='approved') as Approved, sum(cs_verified='ignored') as Ignored FROM cs_company_sites where cs_en_ID = '$en_ID'"; $result = sql_query_read($sql) or dieLog(mysql_error()." ~ $sql"); $entityInfo['sites'] = mysql_fetch_assoc($result); foreach($entityInfo['sites'] as $type => $site) if($site) $entityInfo['sites']['stats'] .= "$type:$site "; */ return $entityInfo; }
} $result = processAccessForm(&$access); if ($result) { $msg = "Company Updated Successfully (" . $result['cnt'] . " Field(s))"; $log = $adminInfo['en_username'] . " Updates " . $access['Data']['en_company']['Value'] . " with "; foreach ($result['updateInfo'] as $name => $value) { $log .= "{$name} (Old:'" . $value['old'] . "') = '" . $value['new'] . "' "; } toLog('misc', 'merchant', $log, $company_id); } else { $msg = "No Updates Detected"; } } $access['HeaderMessage'] .= $msg; if ($access['Data']['en_pay_data']['Value']) { $Schedule = en_get_payout_schedule(array('en_pay_data' => $access['Data']['en_pay_data']['Value'], 'en_pay_type' => $access['Data']['en_pay_type']['Value'])); $access['Data']['en_pay_data']['Value'] = $Schedule['Days']; } beginTable(); writeAccessForm(&$access); endTable("Update Company - " . $access['Data']['en_company']['Value'], ""); $rates_class = new rates_fees(); if (isset($_POST['frmb_process']) && $curUserInfo['en_access'][ACCESS_AUTH_RATES]) { $new_settings = array(); $banks = $rates_class->get_BanksById(); if (isset($_POST['frmb_bankid'])) { foreach ($_POST['frmb_bankid'] as $index => $bank_id) { $bank_name = $banks[$bank_id]['bank_name']; $new_settings[$bank_name] = array(); $new_settings[$bank_name]['bank_id'] = $bank_id; $custom = get_bank_custom_fields($bank_id, $new_settings[$bank_name]['custom']);
function get_month_profit($en_ID, $Month_Stamp = NULL) { global $companyInfo; if (!$Month_Stamp) { $Month_Stamp = time(); } $RF = new rates_fees(); $Month_FirstDay_Stamp = strtotime(date('Y-m-01', $Month_Stamp)); $Month_FirstDay_WeekDay = intval(date('w', $Month_FirstDay_Stamp)); $Month_NumberOfDays = intval(date('t', $Month_FirstDay_Stamp)); $Month_Start_Stamp = $Month_FirstDay_Stamp - 60 * 60 * 24 * $Month_FirstDay_WeekDay; $Month_End_Stamp = $Month_FirstDay_Stamp + 60 * 60 * 24 * (ceil($Month_NumberOfDays / 7) * 7); $Current_Stamp = $Month_Start_Stamp; $Calendar = array(); $Calendar['Notes'] = "This Calendar shows how much profit (after fees) is owed on each day.\n"; $Calendar['PayDayInfo'] = en_get_payout_schedule($companyInfo); $PayDays = $Calendar['PayDayInfo']['DayArray']; $Calendar['MonthName'] = date('F', $Month_FirstDay_Stamp); $Profit = $RF->get_profit(array('hidepayout' => true, 'EffectiveOnly' => false, 'group_date' => true, 'date_between' => array('Start' => date('Y-m-d', $Month_Start_Stamp), 'End' => date('Y-m-d', $Month_End_Stamp - 1))), $en_ID); $Calendar['PayoutHistory'] = $RF->get_payouts(array('date_between' => array('Start' => date('Y-m-d', $Month_Start_Stamp), 'End' => date('Y-m-d', $Month_End_Stamp - 1))), $en_ID); $NextPayday = $Calendar['PayDayInfo']['NextPayDay']; $ProjectedPayment = $RF->get_profit(array('EffectiveOnly' => $NextPayday), $en_ID); if ($ProjectedPayment['Total']['Amount'] > 0) { $Calendar['Notes'] .= " Next Projected Settlement Date is on " . date('l F d, Y', strtotime($NextPayday)) . " for \$" . formatMoney($ProjectedPayment['Total']['Amount']) . "\n"; $ProjectedPayment['Title'] = date('l F d, Y', strtotime($NextPayday)) . " Retroactive Projection Breakdown"; foreach ($ProjectedPayment['Revenue'] as $key => $type) { $ProjectedPayment['Revenue'][$key]['Link'] = "ProfitSmart.php?frm_pt_pt_type%5B%5D=" . $key . "&frm_pt_pt_date_effective_from=2000-01-01&frm_pt_pt_date_effective_to=" . $NextPayday . ""; } foreach ($ProjectedPayment['Deductions'] as $key => $type) { $ProjectedPayment['Deductions'][$key]['Link'] = "ProfitSmart.php?frm_pt_pt_type%5B%5D=" . $key . "&frm_pt_pt_date_effective_from=2000-01-01&frm_pt_pt_date_effective_to=" . $NextPayday . ""; } $ProjectedPayment['Link'] = "ProfitSmart.php?frm_pt_pt_date_effective_from=2000-01-01&frm_pt_pt_date_effective_to=" . $NextPayday . ""; } while ($Current_Stamp < $Month_FirstDay_Stamp + 60 * 60 * 24 * $Month_NumberOfDays) { for ($i = 0; $i < 7; $i++) { $Day = array('Date' => date('Y-m-d', $Current_Stamp), 'Num' => date('d', $Current_Stamp), 'CurMonth' => date('m', $Current_Stamp) == date('m', $Month_FirstDay_Stamp)); if ($companyInfo['en_pay_type'] == 'Weekly') { $Day['PayDay'] = $PayDays[intval(date('w', $Current_Stamp))] ? true : false; } if ($companyInfo['en_pay_type'] == 'Monthly') { $Day['PayDay'] = $PayDays[intval(date('d', $Current_Stamp))] ? true : false; } $ProfitDay = $Profit['ByDate'][$Day['Date']]; //$Day['Text'] = '<strong>Revenue</strong>:<br> $'.formatMoney($ProfitDay['Revenue']['Total']['Amount']).'<br>'; //$Day['Text'] .= '<strong>Deductions</strong>:<br> $'.formatMoney($ProfitDay['Deductions']['Total']['Amount']).'<br>'; $Day['Text'] .= "<a href='ProfitSmart.php?hideprofit=1&showdate=" . $Day['Date'] . "'>\$" . formatMoney($ProfitDay['Total']['Amount']) . "</a>"; if ($Calendar['PayoutHistory'][$Day['Date']]) { $Day['Text'] .= '<br><b>Payment: <a href=\'SmartInvoiceView.php?InvoiceID=' . $Calendar['PayoutHistory'][$Day['Date']]['pa_ID'] . '\'>$' . formatMoney($Calendar['PayoutHistory'][$Day['Date']]['Amount']) . '</a></b>'; } else { if ($Day['Date'] == $NextPayday && $ProjectedPayment['Total']['Amount'] > 0) { $Day['Text'] .= '<br><b>Projected Payment: <a href=\'#Projection\'>$' . formatMoney($ProjectedPayment['Total']['Amount']) . '</a></b>'; } else { if (!$ProfitDay['Total']['Count']) { $Day['Text'] = "No Activity"; } } } $Calendar['Week'][date('W', $Current_Stamp + 60 * 60 * 24)]['Day'][$i] = $Day; $Current_Stamp += 60 * 60 * 24; } } $Calendar['Profit'] = $Profit; $Calendar['ProjectedPayment'] = $ProjectedPayment; return $Calendar; }
function get_Merchant_Contract($en_ID) { $thisdate = time(); if (is_array($en_ID)) { $en_ID = intval($en_ID['en_ID']); } $sql = "\r\n\t\t\tselect\r\n\t\t\t\t*\r\n\t\t\tfrom\r\n\t\t\t\tcs_entities\r\n\t\t\tWhere\r\n\t\t\t\ten_ID = '{$en_ID}';\r\n\t\t\t"; $result = sql_query_read($sql) or dieLog(mysql_error() . " ~{$sql}"); $companyInfo = mysql_fetch_assoc($result); $companyInfo['en_info'] = @unserialize($companyInfo['en_info']); $PaySchedule = en_get_payout_schedule($companyInfo); $str_qry = "\r\n\t\t\tselect \r\n\t\t\t\t* \r\n\t\t\tfrom \r\n\t\t\t\tcs_company_sites \r\n\t\t\twhere \r\n\t\t\t\tcs_en_ID = '" . $companyInfo['en_ID'] . "'\r\n\t\t\t"; $sql_select_val = sql_query_read($str_qry) or dieLog(mysql_errno() . ": " . mysql_error() . "<BR>~{$str_qry}"); while ($site = mysql_fetch_assoc($sql_select_val)) { $websites[] = $site['cs_URL']; } if (sizeof($websites) < 1) { $websites[] = "No Sites"; } $ratesInfo = $this->get_MerchantRates($companyInfo['en_ID']); $disp_array = array('banks1' => array('type' => 'banks'), 'trans' => array('type' => 'trans', 'disp' => 'Transaction Fee', 'before' => '$'), 'disct' => array('type' => 'disct', 'disp' => 'Discount Rate', 'after' => ' %'), 'decln' => array('type' => 'decln', 'disp' => 'Decline Fee', 'before' => '$'), 'cstsv' => array('type' => 'cstsv', 'disp' => 'Customer Service Fee', 'before' => '$'), 'banks2' => array('type' => 'banks'), 'refnd' => array('type' => 'refnd', 'disp' => 'Refund Fee', 'before' => '$'), 'chgbk' => array('type' => 'chgbk', 'disp' => 'Chargeback Fee', 'before' => '$'), 'hold' => array('type' => 'hold', 'disp' => 'Payment Hold', 'after' => ' Days'), 'rserv' => array('type' => 'rserv', 'disp' => 'Reserve Rate', 'after' => ' %'), 'rservhold' => array('type' => 'rservhold', 'disp' => 'Reserve Hold Duration', 'after' => ' Days')); $contract_rates_table = ''; $contract_rates_table .= "<table class='invoice' border='1' width='100%'>"; $contract_rates_table .= "<tr class='infoHeader' align='center'><td><b>Transaction Rates and Fees</b></td></tr>"; $contract_rates_table .= "<tr><td><table class='report' border='1' width='100%'>"; $rates_array = array('Default' => null, 'Visa' => null, 'Mastercard' => null, 'Check' => null, 'Discover' => null); foreach ($ratesInfo as $key => $banks) { if ($key && $banks['trans_type']) { $rates_array[$banks['trans_type']] = $banks; } } if ($ratesInfo[0]) { $rates_array['Default'] = $ratesInfo[0]; $rates_array['Default']['trans_type'] = "Default *"; foreach ($rates_array as $type => $banks) { if (!$banks) { $rates_array[$type] = $ratesInfo[0]; } } $data['wire_fee'] = "\$" . formatMoney($rates_array['Default']['default']['Processor']['wirefee']); $data['ach_fee'] = "\$" . formatMoney($rates_array['Default']['default']['Processor']['achfee']); $data['monthly_fee'] = "\$" . formatMoney($rates_array['Default']['default']['Processor']['monthly']); $data['transaction_fee'] = "\$" . formatMoney($companyInfo['cc_merchant_trans_fees']); $data['refund_fee'] = "\$" . formatMoney($companyInfo['cc_discountrate']); $data['chargebackover_fee'] = "\$" . formatMoney($companyInfo['cc_overchargeback']); $data['chargebackunder_fee'] = "\$" . formatMoney($companyInfo['cc_underchargeback']); $data['setup_fee'] = "\$" . formatMoney($rates_array['Default']['default']['Processor']['setup']); } foreach ($disp_array as $display) { $contract_rates_table .= "<tr class='row" . $this->gen_row(1) . "' ><td><b>" . $display['disp'] . " </b></td>"; if ($display['type'] == 'banks') { foreach ($rates_array as $type => $banks) { $contract_rates_table .= "<td align='center'><b>" . $type . "</b></td>"; } } else { foreach ($rates_array as $banks) { $total = $banks['default']['Processor'][$display['type']] + $banks['default']['Reseller'][$display['type']]; if (is_array($banks)) { $contract_rates_table .= "<td align='center'>" . $display['before'] . formatMoney($total) . $display['after'] . " </td>"; } else { $contract_rates_table .= "<td align='center' > - </td>"; } } } $contract_rates_table .= "</tr>"; } $contract_rates_table .= "</table ></td></tr>"; $contract_rates_table .= "<tr class='small' ><td><b>* The default Rates and fees for any future payment methods that become available are marked under 'Default'</b></td></tr>"; $contract_rates_table .= "</table >"; $companyInfo['websites'] = implode(", ", $websites); $data['email'] = $companyInfo['en_email']; $data['fax_number'] = $companyInfo['en_info']['General_Info']['Contact_Fax']; $data['phone_number'] = $companyInfo['en_info']['General_Info']['Contact_Phone']; $data['companyname'] = $companyInfo['en_company']; $data['full_name'] = $companyInfo['en_firstname'] . " " . $companyInfo['en_lastname']; $data['date'] = "the " . date("jS", $thisdate) . " day of " . date("F", $thisdate) . ", the year " . date("Y", $thisdate); $data['address'] = $companyInfo['en_info']['General_Info']['Address'] . "," . $companyInfo['en_info']['General_Info']['City'] . "," . $companyInfo['en_info']['General_Info']['State'] . $companyInfo['en_info']['General_Info']['Country'] . $companyInfo['en_info']['General_Info']['Zip_Code']; $data['reference_number'] = $companyInfo['en_ref']; $data['contract_rates_table'] = $contract_rates_table; $data['days_behind'] = $PaySchedule['Schedule']; $data['tmpl_custom_id'] = $companyInfo['en_type_ID']; $contract = get_email_template('merchant_contract', $data); return $contract; }