示例#1
0
	$display_currency = strtoupper($_SESSION['currency']);
	if (strtoupper($_SESSION['currency']) != strtoupper(BASE_CURRENCY))
		$two_currency = true;
}

$HD_Form = new FormHandler("cc_payment_methods", "payment_method");

getpost_ifset(array (
	'item_id',
	'item_type',
	'payment_error'
));

$DBHandle = DbConnect();
$HD_Form->setDBHandler($DBHandle);
$HD_Form->init();

// #### HEADER SECTION

$static_amount = false;
$amount = 0;
if ($item_type = "invoice" && is_numeric($item_id)) {
	$table_invoice = new Table("cc_invoice", "status,paid_status");
	$clause_invoice = "id = " . $item_id;
	$result = $table_invoice->Get_list($DBHandle, $clause_invoice);
	if (is_array($result) && $result[0]['status'] == 1 && $result[0]['paid_status'] == 0) {
		$table_invoice_item = new Table("cc_invoice_item", "COALESCE(SUM(price*(1+(vat/100))),0)");
		$clause_invoice_item = "id_invoice = " . $item_id;
		$result = $table_invoice_item->Get_list($DBHandle, $clause_invoice_item);
		$amount = $result[0][0];
示例#2
0
$tmp->Form->model[] = new FreeClauseField("sessiontime > 0");
$tmp->Form->model[] = new DateTimeField(_("Time"), 'starttime');
$tmp->Form->model[] = new TextField(_("Number"), 'calledstation');
$tmp->Form->model[] = new TextField(_("Destination"), 'destination');
$tmp->Form->model[] = new SecondsField(_("Duration"), 'sessiontime');
end($tmp->Form->model)->fieldacr = _("Dur");
//$tmp->Form->model[] = new PKeyFieldTxt(_("ID"),'id');
$tmp->Form->model[] = new MoneyField(_("Bill"), 'sessionbill');
//one non-summed group
$tmp->Form->views['list']->sums[] = array('fns' => array('starttime' => true, 'calledstation' => true, 'destination' => true, 'sessiontime' => true, 'sessionbill' => true), 'order' => 'starttime');
//Per day/destination
$tmp->Form->views['list']->sums[] = array('title' => _("Sum per destination"), 'fns' => array('starttime' => false, 'destination' => true, 'sessiontime' => 'SUM', 'sessionbill' => 'SUM'), 'order' => 'sessiontime', 'sens' => 'DESC');
$tmp->Form->views['list']->sums[] = array('title' => _("Total"), 'fns' => array('calledstation' => 'COUNT', 'sessiontime' => 'SUM', 'sessionbill' => 'SUM'));
$hform = new FormHandler('cc_card');
$hform->checkRights(ACX_INVOICING);
$hform->init(null, false);
$hform->setAction('details');
$hform->views['details'] = new DetailsView();
$hform->model[] = new FreeClauseField(str_dbparams(A2Billing::DBHandle(), 'id = (SELECT cardid FROM cc_invoices WHERE id = %#1)', array($dform->getpost_dirty('id'))));
//$hform->model[] = new PKeyField(_("ID"),'id');
$hform->model[] = new TextField(_("Local number"), 'useralias');
$hform->model[] = new TextFieldN(_("First name"), 'firstname');
$hform->model[] = new TextFieldN(_("Last name"), 'lastname');
$hform->model[] = new TextAreaField(_("Address"), 'address');
$hform->model[] = new TextFieldN(_("City"), 'city');
$hform->model[] = new TextFieldN(_("State"), 'state');
$hform->model[] = new TextFieldN(_("Country"), 'country');
$hform->model[] = new TextFieldN(_("Zipcode"), 'zipcode');
//$hform->model[] = new TextFieldN(_("Phone"),'phone');
$hform->model[] = new TextFieldN(_("Fax"), 'fax');
$PAGE_ELEMS[] =& $hform;
示例#3
0
<?php

require_once "./lib/defines.php";
require_once "./lib/module.access.php";
require_once DIR_COMMON . "Form.inc.php";
require_once DIR_COMMON . "Class.HelpElem.inc.php";
require_once DIR_COMMON . "Form/Class.SqlRefField.inc.php";
require_once DIR_COMMON . "Form/Class.VolField.inc.php";
require_once DIR_COMMON . "Form/Class.ClauseField.inc.php";
$menu_section = 'menu_booths';
HelpElem::DoHelp(_("Booths are the physical phones where a customer can enter and make calls."));
$HD_Form = new FormHandler('cc_booth_v', _("Booths"), _("Booth"));
$HD_Form->checkRights(ACX_ACCESS);
$HD_Form->init(null, false);
$HD_Form->views['list'] = new ListView();
$HD_Form->views['details'] = new DetailsView();
$PAGE_ELEMS[] =& $HD_Form;
$HD_Form->model[] = new PKeyField(_("ID"), 'id');
$HD_Form->model[] = new FreeClauseField('agentid = \'' . $_SESSION['agent_id'] . '\'');
$HD_Form->model[] = new TextField(_("Name"), 'name');
$HD_Form->model[] = new TextAreaField(_("Location"), 'location');
$cs_list = array();
$cs_list[] = array('0', _("N/A"));
$cs_list[] = array('1', _("Empty"));
$cs_list[] = array('2', _("Idle"));
$cs_list[] = array('3', _("Ready"));
$cs_list[] = array('4', _("Active"));
$cs_list[] = array('5', _("Disabled"));
$cs_list[] = array('6', _("Stopped"));
$HD_Form->model[] = dontEdit(new RefField(_("State"), 'state', $cs_list));
$HD_Form->model[] = dontEdit(new MoneyField(_("Credit"), 'credit', _("Money now in the card inside the booth.")));
示例#4
0
<?php

require "lib/defines.php";
require "lib/module.access.php";
require_once DIR_COMMON . "Form.inc.php";
//require_once (DIR_COMMON."Form/Class.SqlActionForm.inc.php");
require_once DIR_COMMON . "Form/Class.TimeField.inc.php";
require_once DIR_COMMON . "Form/Class.ClauseField.inc.php";
$User_Form = new FormHandler("cc_card");
$User_Form->checkRights(ACX_ACCESS);
$User_Form->init(null, false);
$User_Form->views['list'] = new DetailsView();
// $User_Form->views['list']->table_class="user-info";
$User_Form->model[] = new ClauseField("id", $_SESSION['card_id']);
$User_Form->model[] = new TextField(_('First name'), 'firstname');
$User_Form->model[] = new TextField(_('Last name'), 'lastname');
$User_Form->model[] = new MoneyField(_('Credit'), 'credit');
$User_Form->model[] = new DateField(_('Last used'), 'lastuse');
$User_Form->submitString = _("Calculate!");
$User_Form->edit_no_records = _("Database error: your details cannot be found!");
$PAGE_ELEMS[] =& $User_Form;
require "PP_page.inc.php";
if (false) {
    //require (LANGUAGE_DIR.FILENAME_USERINFO);
    $QUERY = "SELECT  username, credit, lastname, firstname, address, city, state, country, zipcode, phone, email, fax, lastuse, activated, status FROM cc_card WHERE username = '******' AND uipass = '******'";
    $DBHandle_max = DbConnect();
    $numrow = 0;
    $resmax = $DBHandle_max->Execute($QUERY);
    if ($resmax) {
        $numrow = $resmax->RecordCount();
    } else {
示例#5
0
function AgentMoney($agentid, &$sel_form, $intl, $rights)
{
    global $PAGE_ELEMS;
    global $FG_DEBUG;
    $dbhandle = A2Billing::DBHandle();
    $HD_Form = new FormHandler('cc_agent_money_v', _("Transactions"), _("Transaction"));
    $HD_Form->checkRights($rights);
    $HD_Form->init(null, false);
    $HD_Form->views['list'] = new SumMultiView();
    $HD_Form->views['pay'] = $HD_Form->views['true'] = $HD_Form->views['false'] = new IdleView();
    if ($FG_DEBUG) {
        $HD_Form->views['dump-form'] = new DbgDumpView();
    }
    $clauses = $sel_form->buildClauses();
    // $PAGE_ELEMS[] = new DbgElem(print_r($clauses,true));
    $PAGE_ELEMS[] =& $HD_Form;
    $HD_Form->model[] = new ClauseField('agentid', $agentid);
    if (isset($clauses['date_from'])) {
        $HD_Form->model[] = new FreeClauseField($clauses['date_from']);
    }
    if (isset($clauses['date_to'])) {
        $HD_Form->model[] = new FreeClauseField($clauses['date_to']);
    }
    $HD_Form->model[] = new DateTimeField(_("Date"), 'date');
    $HD_Form->model[] = new TextField(_("Type"), 'pay_type');
    if ($intl) {
        end($HD_Form->model)->fieldexpr = 'gettexti(pay_type,\'' . getenv('LANG') . '\')';
    } else {
        end($HD_Form->model)->fieldexpr = 'gettexti(pay_type,\'C\')';
    }
    $HD_Form->model[] = new TextField(_("Description"), 'descr');
    if ($intl) {
        end($HD_Form->model)->fieldexpr = 'gettext(descr,\'' . getenv('LANG') . '\')';
    }
    $HD_Form->model[] = new MoneyField(_("In"), 'pos_credit');
    $HD_Form->model[] = new MoneyField(_("Out"), 'neg_credit');
    $HD_Form->model[] = new MoneyField(_("Sum"), 'credit');
    $HD_Form->views['list']->sums[] = array('group' => false, 'fns' => array('date' => true, 'pay_type' => true, 'descr' => true, 'pos_credit' => true, 'neg_credit' => true));
    $HD_Form->views['list']->sums[] = array('fns' => array('descr' => array(_("Totals")), 'pos_credit' => 'SUM', 'neg_credit' => 'SUM'));
    $HD_Form->views['list']->sums[] = array('fns' => array('descr' => array(_("Sum Total")), 'credit' => 'SUM'));
    $Totals = new SqlDetailsActionForm();
    $Totals->checkRights($rights);
    $Totals->init();
    $Totals->setAction('true');
    $PAGE_ELEMS[] =& $Totals;
    $Totals->expectRows = false;
    $Totals->listclass = 'total';
    $Totals->headerString = _("Agent Totals");
    $Totals->successString = null;
    $dc2 = '';
    if (isset($clauses['date_from'])) {
        $dc2 .= ' AND ' . str_replace('date ', 'starttime ', $clauses['date_from']);
    }
    if (isset($clauses['date_to'])) {
        $dc2 .= ' AND ' . str_replace('date ', 'starttime ', $clauses['date_to']);
    }
    $cardsqr = "SELECT SUM(CASE WHEN credit > 0.0 THEN credit ELSE NULL END) AS pos_credit,\n\t\t\tSUM(CASE WHEN credit < 0.0 THEN (0.0 - credit) ELSE NULL END) AS neg_credit,\n\t\t\tSUM(creditlimit) AS climit\n\t\t\tFROM cc_card, cc_card_group\n\t\t\tWHERE cc_card.grp = cc_card_group.id AND cc_card_group.agentid IS NOT NULL\n\t\t\tAND agentid = %1";
    $callsqr = "SELECT SUM(sessionbill) AS calls \n\t\t\tFROM cc_call, cc_card, cc_card_group \n\t\t\tWHERE cc_call.cardid = cc_card.id AND cc_card_group.id = cc_card.grp\n\t\t\t\tAND cc_card_group.agentid = %1 " . $dc2;
    $dleftqr = "cc_calc_daysleft(%1,now(), interval '1 month')";
    $Totals->QueryString = str_dbparams($dbhandle, "SELECT format_currency(tc.pos_credit, %2) AS total_ccredit,\n\t\t format_currency(tc.neg_credit, %2) AS total_cdebit, " . "format_currency(tc.climit, %2) AS total_cclimit,\n\t\tformat_currency(sb.calls,%2) AS total_calls, format_currency((sb.calls * cc_agent.commission), %2) AS total_com,\n\t\tformat_currency((sb.calls * (1.0 - cc_agent.commission)), %2) AS total_wh,\n\t\tformat_currency(cc_agent.credit, %2) AS agent_credit, format_currency(cc_agent.climit, %2) AS climit, dleft.days_left\n\t\t  FROM ({$cardsqr}) AS tc, ({$callsqr}) AS sb, cc_agent, {$dleftqr} AS dleft\n\t\t  WHERE cc_agent.id = %1;", array($agentid, A2Billing::instance()->currency));
    $Totals->noRowsString = _("Totals could not be calculated!");
    $Totals->rmodel[] = new MoneyField(_("Total sum credited to customers"), 'total_ccredit');
    $Totals->rmodel[] = new MoneyField(_("Total sum debited from customers"), 'total_cdebit');
    $Totals->rmodel[] = new MoneyField(_("Total potential debit from customers"), 'total_cclimit');
    $Totals->rmodel[] = new IntField(_("Total calls made by customers"), 'total_calls');
    $Totals->rmodel[] = new MoneyField(_("Wholesale price of calls"), 'total_wh');
    $Totals->rmodel[] = new MoneyField(_("Estimated profit from calls"), 'total_com');
    $Totals->rmodel[] = new MoneyField(_("Outstanding balance"), 'agent_credit');
    $Totals->rmodel[] = new MoneyField(_("Credit Limit"), 'climit');
    $Totals->rmodel[] = new IntField(_("Estimated Days left"), 'days_left');
    // if ($vat>0) echo  " (" .gettext("includes VAT"). "$vat %)";
}
示例#6
0
/** One function that sets up page elems for an agent-session invoice */
function AgentSessionInvoice($sess_row, $rights, $booth_page)
{
    global $PAGE_ELEMS;
    global $FG_DEBUG;
    $dbhandle = A2Billing::DBHandle();
    $HD_Form = new FormHandler('cc_session_invoice', _("Transactions"), _("Transaction"));
    $HD_Form->checkRights($rights);
    $HD_Form->init(null, false);
    $HD_Form->views['list'] = new ListSumView();
    $HD_Form->views['pay'] = $HD_Form->views['true'] = $HD_Form->views['false'] = new IdleView();
    if ($FG_DEBUG) {
        $HD_Form->views['dump-form'] = new DbgDumpView();
    }
    $PAGE_ELEMS[] =& $HD_Form;
    $HD_Form->model[] = new ClauseField('sid', $sess_row['sid']);
    $HD_Form->model[] = new DateTimeField(_("Date"), 'starttime');
    $HD_Form->model[] = new TextField(_("Description"), 'descr');
    end($HD_Form->model)->fieldacr = _("Descr");
    $HD_Form->model[] = new TextField("", 'f2');
    $HD_Form->model[] = new TextField(_("Called Number"), 'cnum');
    end($HD_Form->model)->fieldacr = _("C. Num");
    //end($HD_Form->model)->fieldname ='agent';
    $HD_Form->model[] = new SecondsField(_("Duration"), "duration");
    end($HD_Form->model)->fieldacr = _("Dur");
    $HD_Form->model[] = new MoneyField(_("Credit"), "pos_charge");
    $HD_Form->model[] = new MoneyField(_("Charge"), "neg_charge");
    $HD_Form->views['list']->sum_fns = array('duration' => 'SUM', 'pos_charge' => 'SUM', 'neg_charge' => 'SUM');
    // Per date calls..
    $Sum_Form = new FormHandler('cc_session_calls', _("Per-date calls"));
    $Sum_Form->checkRights($rights);
    $Sum_Form->init(null, false);
    $Sum_Form->views['list'] = new SumMultiView();
    $Sum_Form->views['pay'] = $Sum_Form->views['true'] = $Sum_Form->views['false'] = new IdleView();
    if ($FG_DEBUG) {
        $Sum_Form->views['dump-form'] = new DbgDumpView();
    }
    $PAGE_ELEMS[] =& $Sum_Form;
    $Sum_Form->model[] = new ClauseField('sid', $sess_row['sid']);
    $Sum_Form->model[] = new DateField(_("Date"), 'starttime');
    end($Sum_Form->model)->fieldexpr = 'date_trunc(\'day\', starttime)';
    $Sum_Form->model[] = new IntField(_("Calls"), 'cnum');
    $Sum_Form->model[] = new SecondsField(_("Duration"), "duration");
    //$Sum_Form->model[] = new FloatField(_("Credit"), "pos_charge");
    $Sum_Form->model[] = new MoneyField(_("Charge"), "neg_charge");
    if ($sess_row['has_days'] == 't') {
        $Sum_Form->views['list']->sums[] = array('title' => _("Per day calls"), 'fns' => array('starttime' => true, 'cnum' => 'COUNT', 'duration' => 'SUM', 'neg_charge' => 'SUM'));
    }
    $Sum_Form->views['list']->sums[] = array('title' => _("Total"), 'fns' => array('cnum' => 'COUNT', 'duration' => 'SUM', 'neg_charge' => 'SUM'));
    if ($sess_row['is_open'] != 't') {
        $PAGE_ELEMS[] = new StringElem(_("Session is closed"));
    } elseif ($sess_row['is_inuse'] == 't') {
        $PAGE_ELEMS[] = new StringElem(_("Card is in use, cannot close session now."));
    } else {
        $pay_form = new SqlActionElem();
        $pay_form->action_do = 'pay';
        $pay_form->action_ask = 'list';
        $pay_form->init();
        $PAGE_ELEMS[] =& $pay_form;
        if ($sess_row['credit'] > 0) {
            $pay_form->ButtonStr = str_params(_("Pay back %1"), array($sess_row['credit_fmt']), 1);
            $pay_form->elem_success = new StringElem(_("Sesion paid back!"));
        } else {
            $pay_form->ButtonStr = str_params(_("Pay %1"), array($sess_row['credit_fmt']), 1);
            $pay_form->elem_success = new StringElem(_("Sesion paid!"));
        }
        $pay_form->follow_params['sum'] = $sess_row['credit'];
        $pay_form->follow_params['sid'] = $sess_row['sid'];
        $pay_form->QueryString = str_dbparams($dbhandle, 'SELECT pay_session(%1, %2, true) AS money;', array($sess_row['sid'], $_GET['sum']));
        $pay_form->elem_fail = new StringElem(_("Session could not be paid!"));
        $pay_form->elem_success->content .= "\n<br><a href=\"{$booth_page}\">" . _("Back to booths") . "</a>";
    }
}