예제 #1
0
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']);
예제 #3
0
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>&nbsp;$'.formatMoney($ProfitDay['Revenue']['Total']['Amount']).'<br>';
            //$Day['Text'] .= '<strong>Deductions</strong>:<br>&nbsp;$'.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;
}
예제 #4
0
 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'] . "&nbsp;</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;
 }