/[drupal]/contributions/modules/fee/fee.module
ViewVC logotype

Diff of /contributions/modules/fee/fee.module

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.1, Sun Jun 10 15:58:43 2007 UTC revision 1.1.2.1, Mon Sep 17 02:17:59 2007 UTC
# Line 1  Line 1 
1  <?php  <?php
2    
3  // $Id$  // $Id: fee.module,v 1.1 2007/06/10 15:58:43 kbahey Exp $
4    
5  // Variables  // Variables
6  define('FEE_EMAIL',                'fee_email');  define('FEE_EMAIL',                'fee_email');
# Line 120  function fee_init() { Line 120  function fee_init() {
120  function fee_check_fee() {  function fee_check_fee() {
121    global $user;    global $user;
122    
123    $num_rows = db_result(db_query("SELECT COUNT(*) FROM {fees} WHERE uid = %d", $user->uid));    if ($user->uid) {
124    if ($user->uid && !$num_rows) {      if (fee_check_fee_uid($user->uid)) {
125      return FALSE;        return TRUE;
126        }
127      }
128    
129      if ($user->uid == 0) {
130        return TRUE;
131      }
132    
133      return FALSE;
134    }
135    
136    function fee_check_fee_uid($uid) {
137      $num_rows = db_result(db_query("SELECT COUNT(*) FROM {fees} WHERE uid = %d", $uid));
138      if ($num_rows) {
139        return TRUE;
140    }    }
141    return TRUE;    return FALSE;
142  }  }
143    
144  function fee_menu($may_cache) {  function fee_menu($may_cache) {
# Line 351  function fee_edit_submit($form_id, $form Line 365  function fee_edit_submit($form_id, $form
365    
366    switch($mode) {    switch($mode) {
367      case 'add':      case 'add':
368        db_query("INSERT INTO {fees} (id, uid, time_paid, method_id, currency, amount, mail, name)        db_query("INSERT INTO {fees} (id, uid, time_paid, method_id, currency, amount, net_amount, mail, name)
369          VALUES (0, %d, %d, %d, '%s', %f, '%s', '%s')",          VALUES (0, %d, %d, %d, '%s', %f, %f, '%s', '%s')",
370          $form['uid'],          $form['uid'],
371          strtotime($form['time_paid']),          strtotime($form['time_paid']),
372          $form['method'],          $form['method'],
373          $form['currency'],          $form['currency_code'],
374          $form['amount'],          $form['amount'],
375            $form['net_amount'],
376          $form['mail'],          $form['mail'],
377          $form['name']);          $form['name']);
378        drupal_set_message(t('The fee has been added.'));        drupal_set_message(t('The fee has been added.'));
# Line 367  function fee_edit_submit($form_id, $form Line 382  function fee_edit_submit($form_id, $form
382    
383      case 'edit':      case 'edit':
384        db_query("UPDATE {fees}        db_query("UPDATE {fees}
385          SET uid = %d, time_paid = %d, method_id = %d, currency = '%s', amount = %f, mail = '%s', name = '%s'          SET uid = %d, time_paid = %d, method_id = %d, currency = '%s', amount = %f, net_amount = %f, mail = '%s', name = '%s'
386          WHERE id = %d",          WHERE id = %d",
387          $form['uid'],          $form['uid'],
388          strtotime($form['time_paid']),          strtotime($form['time_paid']),
389          $form['method'],          $form['method'],
390          $form['currency'],          $form['currency_code'],
391          $form['amount'],          $form['amount'],
392            $form['net_amount'],
393          $form['mail'],          $form['mail'],
394          $form['name'],          $form['name'],
395          $form['id']);          $form['id']);
# Line 657  function fee_block($op = 'list', $delta Line 673  function fee_block($op = 'list', $delta
673    }    }
674  }  }
675    
676    function fee_load_fee($uid) {
677      $result = db_query("SELECT * FROM {fees} WHERE uid = %d", $uid);
678      $row = db_fetch_object($result);
679      return $row;
680    }
681    
682    function fee_views_tables() {
683      $tables['fees'] = array(
684        'name' => 'fees',
685        'join' => array(
686          'type' => 'left',
687          'left' => array(
688            'table' => 'node',
689            'field' => 'uid'
690          ),
691          'right' => array(
692            'table' => 'fees',
693            'field' => 'uid'
694          ),
695        ),
696        'fields' => array(
697          'uid' => array(
698            'name' => t('Fee: Paid'),
699            'handler' => array(
700              'fee_views_handler_field_paid' => t('Paid?'),
701              'sortable' => true,
702            ),
703          ),
704          'time_paid' => array(
705            'name' => t('Fee: Time Paid'),
706            'handler' => array(
707              'fee_views_handler_field_time_paid' => t('Time Paid'),
708            ),
709          ),
710          'method_id' => array(
711            'name' => t('Fee: Method'),
712            'handler' => array(
713              'fee_views_handler_field_method' => t('Method'),
714            ),
715          ),
716          'currency' => array(
717            'name' => t('Fee: Currency'),
718            'handler' => array(
719              'fee_views_handler_field_currency' => t('Currency'),
720            ),
721          ),
722          'amount' => array(
723            'name' => t('Fee: Gross Amount'),
724            'handler' => array(
725              'fee_views_handler_field_amount' => t('Gross Amount'),
726            ),
727          ),
728          'net_amount' => array(
729            'name' => t('Fee: Net Amount'),
730            'handler' => array(
731              'fee_views_handler_field_net_amount' => t('Net Amount'),
732            ),
733          ),
734        ),
735        'filters' => array(
736          'uid' => array(
737            'name'       => t('Fee: Paid'),
738            'list'       => 'views_handler_filter_paid_list',
739            'handler'    => 'views_handler_filter_paid',
740            'operator'   => 'views_handler_operator_or',
741          ),
742        ),
743      );
744      return $tables;
745    }
746    
747    function fee_views_handler_field_paid($fieldinfo, $fielddata, $value, $data) {
748      $node = node_load(array('nid' => $data->nid));
749      if (fee_check_fee_uid($node->uid)) {
750        $result = t('Yes');
751      }
752      else {
753        $result = t('No');
754      }
755    
756      return $result;
757    }
758    
759    function fee_views_handler_field_time_paid($fieldinfo, $fielddata, $value, $data) {
760      $node = node_load(array('nid' => $data->nid));
761      $fee = fee_load_fee($node->uid);
762    
763      return format_date($fee->time_paid);
764    }
765    
766    function fee_views_handler_field_method($fieldinfo, $fielddata, $value, $data) {
767      $node = node_load(array('nid' => $data->nid));
768      if ($node->nid) {
769        $fee = fee_load_fee($node->uid);
770        $methods = fee_get_methods();
771      }
772      return $methods[$fee->method_id];
773    }
774    
775    function fee_views_handler_field_currency($fieldinfo, $fielddata, $value, $data) {
776      $node = node_load(array('nid' => $data->nid));
777      if ($node->nid) {
778        $fee = fee_load_fee($node->uid);
779    
780        $currency = fee_get_currency();
781      }
782      return $currency[$fee->currency];
783    }
784    
785    function fee_views_handler_field_amount($fieldinfo, $fielddata, $value, $data) {
786      $node = node_load(array('nid' => $data->nid));
787      if ($node->nid) {
788        $fee = fee_load_fee($node->uid);
789      }
790      if ($fee->amount) {
791        $ret = number_format($fee->amount, 2);
792      }
793      else {
794        $ret = NULL;
795      }
796      return $ret;
797    }
798    
799    function fee_views_handler_field_net_amount($fieldinfo, $fielddata, $value, $data) {
800      $node = node_load(array('nid' => $data->nid));
801      if ($node->nid) {
802        $fee = fee_load_fee($node->uid);
803      }
804      if ($fee->net_amount) {
805        $ret = number_format($fee->net_amount, 2);
806      }
807      else {
808        $ret = NULL;
809      }
810      return $ret;
811    }
812    
813    function views_handler_filter_paid_list($op, $filter) {
814      return array(t('Yes'), t('No'));
815    }
816    
817    function views_handler_filter_paid($op, $filter, $filterinfo, &$query) {
818      $table = $filterinfo['table'];
819      $column = $filterinfo['field'];
820    
821      $field = "$table.$column";
822      $query->ensure_table($table);
823    
824      $where = array();
825      $args = array();
826    
827      $operator = "=";
828    
829      if( !is_array($filter['value']) ) $filter['value'] = array($filter['value']);
830    
831      switch($filter['value'][0]) {
832        case 0:
833          $where[] = "$field > 0";
834          break;
835        case 1:
836          $where[] = "$field IS NULL";
837          break;
838      }
839    
840      $operator = ($filter['operator'] == 'NOR') ? 'AND' : $filter['operator'];
841      $where = implode(" $operator ", $where);
842      $query->add_where("$where", $args);
843    }

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.1.2.1

  ViewVC Help
Powered by ViewVC 1.1.2