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

Diff of /contributions/modules/uc_turkish_banks/uc_turkish_banks.module

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

revision 1.3, Sun Jun 22 18:46:51 2008 UTC revision 1.4, Sun Jun 22 19:19:30 2008 UTC
# Line 1  Line 1 
1  <?php  <?php
2  // $Id: uc_turkish_banks.module,v 1.2 2008/06/22 15:14:09 bakyildiz Exp $  // $Id: uc_turkish_banks.module,v 1.3 2008/06/22 18:46:51 bakyildiz Exp $
3    
4  /**  /**
5   * @file   * @file
# Line 7  Line 7 
7   *   *
8   * A module used to process payments using Banks in Turkey. Currently uses the EST e-secure payment service. This module currently supports instalments and as a paymant method uses 3D Secure OOS PAY.   * A module used to process payments using Banks in Turkey. Currently uses the EST e-secure payment service. This module currently supports instalments and as a paymant method uses 3D Secure OOS PAY.
9   *   *
10   * Türk Bankalari için ödeme eklentisidir. EST Güvenli e-ödeme servisi kullanmaktadir. Taksitli satisi desteklemektedir. Satis yöntemi olarak 3D Secure OOS PAY metodunu kullanmaktadir.   * Türk Bankaları için ödeme eklentisidir. EST Güvenli e-ödeme servisi kullanmaktadır. Taksitli satışı desteklemektedir. Satış yöntemi olarak 3D Secure OOS PAY metodunu kullanmaktadır.
11   *   *
12   * Support the following banks / Asagidaki bankalar desteklenmektedir.   * Support the following banks / Asagidaki bankalar desteklenmektedir.
13   *   *
14   * 1. Is Bankasi   *  1. İş Bankası
15   * 2. Akbank   *  2. Akbank
16   * 3. Garanti   *  3. Garanti
17   * 4. HSBC   *  4. HSBC
18   * 5. Finansbank   *  5. Finansbank
19   * 6. TEB   *  6. TEB
20   * 7. Fortis   *  7. Fortis
21   * 8. Halkbank   *  8. Halkbank
22   * 9. Anadolubank   *  9. Anadolubank
23   * 10. Denizbank   * 10. Denizbank
24   */   */
25    
26  /**  /**
27   * Implementation of hook_menu().   * Implementation of hook_menu().
28   */   */
# Line 43  function uc_turkish_banks_menu($may_cach Line 43  function uc_turkish_banks_menu($may_cach
43        'callback arguments' => array('active'),        'callback arguments' => array('active'),
44        'type' => MENU_NORMAL_ITEM,        'type' => MENU_NORMAL_ITEM,
45      );      );
46    
47      $items[] = array(      $items[] = array(
48        'path' => 'admin/store/settings/banks/edit',        'path' => 'admin/store/settings/banks/edit',
49        'title' => t('Overview'),        'title' => t('Overview'),
# Line 53  function uc_turkish_banks_menu($may_cach Line 53  function uc_turkish_banks_menu($may_cach
53        'access' => user_access('view banks'),        'access' => user_access('view banks'),
54        'type' => MENU_DEFAULT_LOCAL_TASK,        'type' => MENU_DEFAULT_LOCAL_TASK,
55      );      );
56    
57      $items[] = array(      $items[] = array(
58            'path' => 'admin/store/settings/banks/add',        'path' => 'admin/store/settings/banks/add',
59            'title' => t('Add New Bank'),            'title' => t('Add New Bank'),
60            'description' => t('Add a New Bank'),            'description' => t('Add a New Bank'),
61            'callback' => 'drupal_get_form',            'callback' => 'drupal_get_form',
# Line 63  function uc_turkish_banks_menu($may_cach Line 63  function uc_turkish_banks_menu($may_cach
63            'access' => user_access('manage banks'),            'access' => user_access('manage banks'),
64            'type' => MENU_LOCAL_TASK,            'type' => MENU_LOCAL_TASK,
65            'weight' => 10,            'weight' => 10,
66          );      );
67          $items[] = array(      $items[] = array(
68        'path' => 'admin/store/settings/banks/instalments',        'path' => 'admin/store/settings/banks/instalments',
69        'title' => t('Bank Instalments Settings'),        'title' => t('Bank Instalments Settings'),
70        'description' => t('Manage Instalments'),        'description' => t('Manage Instalments'),
# Line 81  function uc_turkish_banks_menu($may_cach Line 81  function uc_turkish_banks_menu($may_cach
81            'access' => user_access('manage banks'),            'access' => user_access('manage banks'),
82            'type' => MENU_LOCAL_TASK,            'type' => MENU_LOCAL_TASK,
83            'weight' => 10,            'weight' => 10,
84          );      );
85          }    }
86          else {    else {
87      $items[] = array(      $items[] = array(
88            'path' => 'admin/store/settings/banks/'. arg(4) . '/edit',            'path' => 'admin/store/settings/banks/'. arg(4) . '/edit',
89            'title' => t('Edit Banks'),            'title' => t('Edit Banks'),
# Line 92  function uc_turkish_banks_menu($may_cach Line 92  function uc_turkish_banks_menu($may_cach
92            'callback arguments' => array('uc_turkish_banks_add_form', 'edit', arg(4)),            'callback arguments' => array('uc_turkish_banks_add_form', 'edit', arg(4)),
93            'access' => user_access('manage banks'),            'access' => user_access('manage banks'),
94            'type' => MENU_DYNAMIC_ITEM,            'type' => MENU_DYNAMIC_ITEM,
95            );      );
96          $items[] = array(      $items[] = array(
97            'path' => 'admin/store/settings/banks/'. arg(4) . '/delete',            'path' => 'admin/store/settings/banks/'. arg(4) . '/delete',
98            'title' => t('Delete Bank'),            'title' => t('Delete Bank'),
99            'description' => t('Delete a bank'),            'description' => t('Delete a bank'),
# Line 101  function uc_turkish_banks_menu($may_cach Line 101  function uc_turkish_banks_menu($may_cach
101            'callback arguments' => array('uc_turkish_banks_delete_confirm', arg(4)),            'callback arguments' => array('uc_turkish_banks_delete_confirm', arg(4)),
102        'access' => user_access('manage banks'),        'access' => user_access('manage banks'),
103            'type' => MENU_DYNAMIC_ITEM,            'type' => MENU_DYNAMIC_ITEM,
104          );      );
105          $items[] = array(      $items[] = array(
106            'path' => 'admin/store/settings/banks/instalments/'. arg(5).'/'.arg(6).'/delete',            'path' => 'admin/store/settings/banks/instalments/'. arg(5).'/'.arg(6).'/delete',
107            'title' => t('Delete instalment'),            'title' => t('Delete instalment'),
108            'description' => t('Delete an instalment'),            'description' => t('Delete an instalment'),
# Line 110  function uc_turkish_banks_menu($may_cach Line 110  function uc_turkish_banks_menu($may_cach
110            'callback arguments' => array('uc_turkish_banks_instalments_delete_confirm', arg(5),arg(6)),            'callback arguments' => array('uc_turkish_banks_instalments_delete_confirm', arg(5),arg(6)),
111        'access' => user_access('manage banks'),        'access' => user_access('manage banks'),
112            'type' => MENU_DYNAMIC_ITEM,            'type' => MENU_DYNAMIC_ITEM,
113          );      );
114    }    }
115    
116    return $items;    return $items;
117  }  }
118    
119  function uc_turkish_banks_perm() {  function uc_turkish_banks_perm() {
120    return array('1' => 'view banks', '1' => 'manage banks');    return array('1' => 'view banks', '1' => 'manage banks');
121  }  }
# Line 126  function uc_turkish_banks_instalments_di Line 126  function uc_turkish_banks_instalments_di
126    $rows = array();    $rows = array();
127    while ($row = db_fetch_object($result)) {    while ($row = db_fetch_object($result)) {
128      if ($row->type == 'percentage') {      if ($row->type == 'percentage') {
129              $value = $row->value . '%';        $value = $row->value . '%';
130            }      }
131            else {      else {
132              $value = '$' . $row->value;        $value = '$' . $row->value;
133            }      }
134      $rows[] = array(      $rows[] = array(
135          $row->cid,      $row->cid,
136          $row->instalment,      $row->instalment,
137          $row->instalment_ratio,      $row->instalment_ratio,
138          format_date($row->valid_until, 'custom', 'd/m/Y'),      format_date($row->valid_until, 'custom', 'd/m/Y'),
139          l(t('delete'),"admin/store/settings/banks/instalments/$row->cid/$row->instalment/delete"));      l(t('delete'),"admin/store/settings/banks/instalments/$row->cid/$row->instalment/delete"));
140          }    }
141    
142    $header = array(array('data' => 'Instalment', 'width' => '10'), 'Ratio','Valid Until','Ops');    $header = array(array('data' => 'Instalment', 'width' => '10'), 'Ratio','Valid Until','Ops');
143    $output .= theme('table',$header, $rows, array('width' => '100%'));    $output .= theme('table',$header, $rows, array('width' => '100%'));
# Line 151  function uc_turkish_banks_instalments_di Line 151  function uc_turkish_banks_instalments_di
151  }  }
152    
153  function uc_turkish_banks_instalments_add_form($action, $cid = null) {  function uc_turkish_banks_instalments_add_form($action, $cid = null) {
154      $form['uc_turkish_banks_instalments'] = array('#type' => 'fieldset',    $form['uc_turkish_banks_instalments'] = array('#type' => 'fieldset',
155        '#title' => t('Instalments'),        '#title' => t('Instalments'),
156        '#collapsible' => true,        '#collapsible' => true,
157        '#collapsed' => false,        '#collapsed' => false,
158        '#weight' => 0,        '#weight' => 0,
159      );    );
160      $form['cid'] = array('#type' => 'value',    $form['cid'] = array('#type' => 'value',
161                    '#value' => arg(6),                    '#value' => arg(6),
162                  );    );
163    
164      $form['uc_turkish_banks_instalments']['instalment'] = array('#type' => 'textfield',    $form['uc_turkish_banks_instalments']['instalment'] = array('#type' => 'textfield',
165        '#title' => t('Instalment'),        '#title' => t('Instalment'),
166                  '#default_value' => $value['instalment'],                  '#default_value' => $value['instalment'],
167                  '#size' => 3,                  '#size' => 3,
168        '#weight' => -3,        '#weight' => -3,
169                  '#required' => true,                  '#required' => true,
170      );    );
171      $form['uc_turkish_banks_instalments']['instalment_ratio'] = array('#type' => 'textfield',    $form['uc_turkish_banks_instalments']['instalment_ratio'] = array('#type' => 'textfield',
172        '#title' => t('Ratio'),        '#title' => t('Ratio'),
173                  '#default_value' => $value['instalment_ratio'],                  '#default_value' => $value['instalment_ratio'],
174                  '#size' => 5,                  '#size' => 5,
175        '#weight' => -2,        '#weight' => -2,
176                  '#required' => true,                  '#required' => true,
177      );    );
178      $valid_until = getdate($value['valid_until']);    $valid_until = getdate($value['valid_until']);
179      $default_valid_until= array(    $default_valid_until= array(
180        'month' => $valid_until['mon'],        'month' => $valid_until['mon'],
181        'day' => $valid_until['mday'],        'day' => $valid_until['mday'],
182        'year' => $valid_until['year'],        'year' => $valid_until['year'],
183      );    );
184      $form['uc_turkish_banks_instalments']['valid_until'] = array('#type' => 'select',    $form['uc_turkish_banks_instalments']['valid_until'] = array('#type' => 'select',
185        '#title' => t('Valid Until'),        '#title' => t('Valid Until'),
186        '#type' => 'date',        '#type' => 'date',
187        '#default_value' => $default_valid_until,        '#default_value' => $default_valid_until,
188        '#required' => TRUE,        '#required' => TRUE,
189        '#weight' => 3,        '#weight' => 3,
190      );    );
191    
192      $form['cancel'] = array('#type' => 'item',    $form['cancel'] = array('#type' => 'item',
193                  '#value' => l(t('Cancel and return to instalments listing'), 'admin/store/settings/banks/instalments/'.arg(0)),                  '#value' => l(t('Cancel and return to instalments listing'), 'admin/store/settings/banks/instalments/'.arg(0)),
194                  '#weight' => 20,                  '#weight' => 20,
195      );    );
196      $form['op'] = array('#type' => 'submit',    $form['op'] = array('#type' => 'submit',
197        '#value' => t('Submit'),        '#value' => t('Submit'),
198        '#weight' => 21,        '#weight' => 21,
199      );    );
200      return $form;    return $form;
201  }  }
202    
203  /**  /**
# Line 205  function uc_turkish_banks_instalments_ad Line 205  function uc_turkish_banks_instalments_ad
205   */   */
206  function uc_turkish_banks_instalments_add_form_validate($form_id, $form) {  function uc_turkish_banks_instalments_add_form_validate($form_id, $form) {
207    $result = db_result(db_query("SELECT instalment FROM {uc_turkish_banks_instalments} WHERE cid = %d and instalment = %d", $form['cid'], $form['instalment']));    $result = db_result(db_query("SELECT instalment FROM {uc_turkish_banks_instalments} WHERE cid = %d and instalment = %d", $form['cid'], $form['instalment']));
208          if ($result) {    if ($result) {
209                  form_set_error($form['cid'], t('Instalment exist.'));      form_set_error($form['cid'], t('Instalment exist.'));
210          }    }
211  }  }
212    
213  /**  /**
# Line 215  function uc_turkish_banks_instalments_ad Line 215  function uc_turkish_banks_instalments_ad
215   */   */
216  function uc_turkish_banks_instalments_add_form_submit($form_id, $form) {  function uc_turkish_banks_instalments_add_form_submit($form_id, $form) {
217    $valid_until = mktime(23,59,59,    $valid_until = mktime(23,59,59,
218      $form['valid_until']['month'],    $form['valid_until']['month'],
219      $form['valid_until']['day'],    $form['valid_until']['day'],
220      $form['valid_until']['year']    $form['valid_until']['year']
221     );    );
222    $result = db_query("INSERT INTO {uc_turkish_banks_instalments} (cid, instalment, instalment_ratio, valid_until)    $result = db_query("INSERT INTO {uc_turkish_banks_instalments} (cid, instalment, instalment_ratio, valid_until)
223      VALUES (%d, %d, %f, %d)", $form['cid'], $form['instalment'], $form['instalment_ratio'], $valid_until);      VALUES (%d, %d, %f, %d)", $form['cid'], $form['instalment'], $form['instalment_ratio'], $valid_until);
224    if ($result) {    if ($result) {
225      $message = "New instalment {$form['name']} added succesfully.";      $message = "New instalment {$form['name']} added succesfully.";
226          }    }
227          else {    else {
228            $message = "Sorry instalment could not be added. Try again.";      $message = "Sorry instalment could not be added. Try again.";
229          }    }
230    drupal_set_message($message);    drupal_set_message($message);
231    drupal_goto('admin/store/settings/banks/instalments/'.$form['cid']);    drupal_goto('admin/store/settings/banks/instalments/'.$form['cid']);
232  }  }
# Line 235  function uc_turkish_banks_instalments_ad Line 235  function uc_turkish_banks_instalments_ad
235   * Delete confirm   * Delete confirm
236   */   */
237  function uc_turkish_banks_instalments_delete_confirm($cid, $instalment) {  function uc_turkish_banks_instalments_delete_confirm($cid, $instalment) {
238   $form['cid'] = array('#type' => 'value', '#value' => $cid);    $form['cid'] = array('#type' => 'value', '#value' => $cid);
239   $form['instalment'] = array('#type' => 'value', '#value' => $instalment);    $form['instalment'] = array('#type' => 'value', '#value' => $instalment);
240    return confirm_form($form,    return confirm_form($form,
241            t('Confirm Deletion of instalment %instalment', array('%instalment' => $instalment)),    t('Confirm Deletion of instalment %instalment', array('%instalment' => $instalment)),
242            'admin/store/settings/banks/instalments/'.$cid,            'admin/store/settings/banks/instalments/'.$cid,
243            t('Are you sure ?'),    t('Are you sure ?'),
244      t('Delete'),    t('Delete'),
245      t('Cancel')    t('Cancel')
246    );    );
247  }  }
248    
# Line 252  function uc_turkish_banks_instalments_de Line 252  function uc_turkish_banks_instalments_de
252  function uc_turkish_banks_instalments_delete_confirm_submit($form_id, $form) {  function uc_turkish_banks_instalments_delete_confirm_submit($form_id, $form) {
253    $cid = $form['cid'];    $cid = $form['cid'];
254    $instalment = $form['instalment'];    $instalment = $form['instalment'];
255          if (db_query("DELETE FROM {uc_turkish_banks_instalments} WHERE cid = %d and instalment = '%s'", $cid, $instalment)) {    if (db_query("DELETE FROM {uc_turkish_banks_instalments} WHERE cid = %d and instalment = '%s'", $cid, $instalment)) {
256                  drupal_set_message("Instalment has been deleted successfully");      drupal_set_message("Instalment has been deleted successfully");
257          }    }
258          else {    else {
259                  drupal_set_message("Error deleting instalment");      drupal_set_message("Error deleting instalment");
260          }    }
261          drupal_goto('admin/store/settings/banks/instalments/'.$form['cid']);    drupal_goto('admin/store/settings/banks/instalments/'.$form['cid']);
262  }  }
263    
264    
# Line 270  function uc_turkish_banks_display() { Line 270  function uc_turkish_banks_display() {
270    $rows = array();    $rows = array();
271    while ($row = db_fetch_object($result)) {    while ($row = db_fetch_object($result)) {
272      if ($row->type == 'percentage') {      if ($row->type == 'percentage') {
273              $value = $row->value . '%';        $value = $row->value . '%';
274            }      }
275            else {      else {
276              $value = '$'. $row->value;        $value = '$'. $row->value;
277            }      }
278      $rows[] = array($row->bankname, $row->cardname, format_date($row->valid_until, 'custom', 'd/m/Y'),l(t('Instalments'), "admin/store/settings/banks/instalments/$row->cid") . '|' . l(t('edit'), "admin/store/settings/banks/$row->cid/edit") . '|' . l(t('delete'),"admin/store/settings/banks/$row->cid/delete"));      $rows[] = array($row->bankname, $row->cardname, format_date($row->valid_until, 'custom', 'd/m/Y'),l(t('Instalments'), "admin/store/settings/banks/instalments/$row->cid") . '|' . l(t('edit'), "admin/store/settings/banks/$row->cid/edit") . '|' . l(t('delete'),"admin/store/settings/banks/$row->cid/delete"));
279          }    }
280    
281    $header = array(array('data' => 'Bank Name', 'width' => '100'), 'Card Name','Valid Until','Ops');    $header = array(array('data' => 'Bank Name', 'width' => '100'), 'Card Name','Valid Until','Ops');
282    $output .= theme('table',$header, $rows, array('width' => '100%'));    $output .= theme('table',$header, $rows, array('width' => '100%'));
283    if ($output == null) {    if ($output == null) {
284      $output = "<p>There are currently no bank in the system.</p>";      $output = "<p>There are currently no bank in the system.</p>";
285    }    }
286          return $output;    return $output;
287  }  }
288    
289  /**  /**
# Line 292  function uc_turkish_banks_display() { Line 292  function uc_turkish_banks_display() {
292  function uc_turkish_banks_add_form($action, $cid = null) {  function uc_turkish_banks_add_form($action, $cid = null) {
293    
294    if ($action == 'edit') {    if ($action == 'edit') {
295                  // If the action is edit, we load the coupon from the database with default values      // If the action is edit, we load the coupon from the database with default values
296                  $value = uc_turkish_banks_load($cid);      $value = uc_turkish_banks_load($cid);
297                  // Set a form variable that holds the coupon id      // Set a form variable that holds the coupon id
298                  $form['cid'] = array('#type' => 'value',      $form['cid'] = array('#type' => 'value',
299                    '#value' => $value['cid'],                    '#value' => $value['cid'],
300                  );      );
301                  $valid_until = getdate($value['valid_until']);      $valid_until = getdate($value['valid_until']);
302      $default_valid_until= array(      $default_valid_until= array(
303        'month' => $valid_until['mon'],        'month' => $valid_until['mon'],
304        'day' => $valid_until['mday'],        'day' => $valid_until['mday'],
305        'year' => $valid_until['year'],        'year' => $valid_until['year'],
306      );      );
307    
308                  // Format the roles database values to set the chosen ones as defaults      // Format the roles database values to set the chosen ones as defaults
309                  $permissions = $value['roles'];      $permissions = $value['roles'];
310                  $allowed_users = explode(',', $value['users']);      $allowed_users = explode(',', $value['users']);
311    }    }
312      $form['bank'] = array('#type' => 'fieldset',    $form['bank'] = array('#type' => 'fieldset',
313        '#title' => t('Genel Tanimlar'),        '#title' => t('Genel Tanimlar'),
314        '#collapsible' => true,        '#collapsible' => true,
315        '#collapsed' => false,        '#collapsed' => false,
316        '#weight' => 0,        '#weight' => 0,
317      );    );
318    
319      $form['bank']['bankname'] = array('#type' => 'textfield',    $form['bank']['bankname'] = array('#type' => 'textfield',
320        '#title' => t('Bank Name'),        '#title' => t('Bank Name'),
321                  '#default_value' => $value['bankname'],                  '#default_value' => $value['bankname'],
322                  '#size' => 30,                  '#size' => 30,
323        '#weight' => -3,        '#weight' => -3,
324                  '#required' => true,                  '#required' => true,
325      );    );
326      $form['bank']['clientid'] = array('#type' => 'textfield',    $form['bank']['clientid'] = array('#type' => 'textfield',
327        '#title' => t('Client Id'),        '#title' => t('Client Id'),
328                  '#default_value' => $value['clientid'],                  '#default_value' => $value['clientid'],
329                  '#size' => 30,                  '#size' => 30,
330        '#weight' => -2,        '#weight' => -2,
331                  '#required' => true,                  '#required' => true,
332      );    );
333      $form['bank']['username'] = array('#type' => 'textfield',    $form['bank']['username'] = array('#type' => 'textfield',
334        '#title' => t('Username'),        '#title' => t('Username'),
335                  '#default_value' => $value['username'],                  '#default_value' => $value['username'],
336                  '#size' => 20,                  '#size' => 20,
337        '#weight' => -1,        '#weight' => -1,
338                  '#required' => true,                  '#required' => true,
339      );    );
340      $form['bank']['password'] = array('#type' => 'textfield',    $form['bank']['password'] = array('#type' => 'textfield',
341        '#title' => t('Password'),        '#title' => t('Password'),
342                  '#default_value' => $value['password'],                  '#default_value' => $value['password'],
343                  '#size' => 20,                  '#size' => 20,
344        '#weight' => 0,        '#weight' => 0,
345                  '#required' => true,                  '#required' => true,
346      );    );
347      $form['bank']['storekey'] = array('#type' => 'textfield',    $form['bank']['storekey'] = array('#type' => 'textfield',
348        '#title' => t('Store Key'),        '#title' => t('Store Key'),
349                  '#default_value' => $value['storekey'],                  '#default_value' => $value['storekey'],
350                  '#size' => 20,                  '#size' => 20,
351        '#weight' => 1,        '#weight' => 1,
352                  '#required' => true,                  '#required' => true,
353      );    );
354       $form['bank']['bankurl'] = array('#type' => 'textfield',    $form['bank']['bankurl'] = array('#type' => 'textfield',
355        '#title' => t('Bank URL'),        '#title' => t('Bank URL'),
356                  '#default_value' => $value['bankurl'],                  '#default_value' => $value['bankurl'],
357                  '#size' => 100,                  '#size' => 100,
358        '#weight' => 1,        '#weight' => 1,
359                  '#required' => true,                  '#required' => true,
360      );    );
361      $form['bank']['processtype'] = array('#type' => 'select',    $form['bank']['processtype'] = array('#type' => 'select',
362        '#title' => t('Process Type'),        '#title' => t('Process Type'),
363                  '#default_value' => $value['processtype'],                  '#default_value' => $value['processtype'],
364                  '#description' => t('Auth: Satis PreAuth: On Otorizasyon.'),                  '#description' => t('Auth: Satis PreAuth: On Otorizasyon.'),
365                  '#options' => array(                  '#options' => array(
366              'Auth' => t('Auth'),              'Auth' => t('Auth'),
367              'PreAuth' => t('PreAuth'),              'PreAuth' => t('PreAuth'),
368            ),    ),
369        '#weight' => 1,        '#weight' => 1,
370                  '#required' => true,                  '#required' => true,
371      );    );
372    
373      $form['bank']['cardname'] = array('#type' => 'textfield',    $form['bank']['cardname'] = array('#type' => 'textfield',
374        '#title' => t('Card Name'),        '#title' => t('Card Name'),
375                  '#default_value' => $value['cardname'],                  '#default_value' => $value['cardname'],
376                  '#size' => 30,                  '#size' => 30,
377        '#weight' => 2,        '#weight' => 2,
378                  '#required' => true,                  '#required' => true,
379      );    );
380    
381      $form['bank']['valid_until'] = array('#type' => 'select',    $form['bank']['valid_until'] = array('#type' => 'select',
382        '#title' => t('Experiation Date'),        '#title' => t('Experiation Date'),
383        '#type' => 'date',        '#type' => 'date',
384        '#default_value' => $default_valid_until,        '#default_value' => $default_valid_until,
385        '#required' => TRUE,        '#required' => TRUE,
386        '#weight' => 3,        '#weight' => 3,
387      );    );
388    
389      $form['cancel'] = array('#type' => 'item',    $form['cancel'] = array('#type' => 'item',
390                  '#value' => l(t('Cancel and return to Bank Listing'), 'admin/store/settings/banks'),                  '#value' => l(t('Cancel and return to Bank Listing'), 'admin/store/settings/banks'),
391                  '#weight' => 20,                  '#weight' => 20,
392      );    );
393      $form['op'] = array('#type' => 'submit',    $form['op'] = array('#type' => 'submit',
394        '#value' => t('Submit'),        '#value' => t('Submit'),
395        '#weight' => 21,        '#weight' => 21,
396      );    );
397      return $form;    return $form;
398  }  }
399    
400  /**  /**
401   * Validate the coupon form   * Validate the coupon form
402   */   */
403  function uc_turkish_banks_add_form_validate($form_id, $form) {  function uc_turkish_banks_add_form_validate($form_id, $form) {
404          // check to ensure a unique coupon code    // check to ensure a unique coupon code
405          $result = db_result(db_query("SELECT cid, bankname FROM {uc_turkish_banks} WHERE bankname = '%s' AND cid <> %d", $form['bankname'], $form['cid']));    $result = db_result(db_query("SELECT cid, bankname FROM {uc_turkish_banks} WHERE bankname = '%s' AND cid <> %d", $form['bankname'], $form['cid']));
406          if ($result) {    if ($result) {
407                  form_set_error($form['cid'], t('Bank name already used by bank: %bankname.', array('%bankname' => $result->bankname)));      form_set_error($form['cid'], t('Bank name already used by bank: %bankname.', array('%bankname' => $result->bankname)));
408          }    }
409  }  }
410    
411  /**  /**
# Line 413  function uc_turkish_banks_add_form_valid Line 413  function uc_turkish_banks_add_form_valid
413   */   */
414  function uc_turkish_banks_add_form_submit($form_id, $form) {  function uc_turkish_banks_add_form_submit($form_id, $form) {
415    $valid_until = mktime(23,59,59,    $valid_until = mktime(23,59,59,
416      $form['valid_until']['month'],    $form['valid_until']['month'],
417      $form['valid_until']['day'],    $form['valid_until']['day'],
418      $form['valid_until']['year']    $form['valid_until']['year']
419     );    );
420    
421    if (!isset($form['cid'])) {    if (!isset($form['cid'])) {
422    
423      if (db_query("INSERT INTO {uc_turkish_banks} (bankname,clientid,username,password,bankurl,storekey,processtype,cardname,valid_until)      if (db_query("INSERT INTO {uc_turkish_banks} (bankname,clientid,username,password,bankurl,storekey,processtype,cardname,valid_until)
424                    VALUES ('%s','%s','%s','%s','%s','%s','%s','%s', '%d')",                    VALUES ('%s','%s','%s','%s','%s','%s','%s','%s', '%d')",
425                    $form['bankname'],$form['clientid'],$form['username'],$form['password'],$form['bankurl'],$form['storekey'],$form['processtype'],$form['cardname'],$valid_until      $form['bankname'],$form['clientid'],$form['username'],$form['password'],$form['bankurl'],$form['storekey'],$form['processtype'],$form['cardname'],$valid_until
426      )) {      )) {
427        $message = "New bank {$form['name']} added succesfully";        $message = "New bank {$form['name']} added succesfully";
428          }      }
429          else {      else {
430            $message = "Sorry bank could not be added. Try again";        $message = "Sorry bank could not be added. Try again";
431          }      }
432    }    }
433    else {    else {
434      // Otherwise we try to update the coupon with matching coupon id      // Otherwise we try to update the coupon with matching coupon id
435            if (db_query("UPDATE {uc_turkish_banks} SET bankname = '%s', clientid = '%s',username = '%s',password = '%s',bankurl = '%s',storekey = '%s',processtype = '%s',cardname = '%s',valid_until = %d WHERE cid = %d",      if (db_query("UPDATE {uc_turkish_banks} SET bankname = '%s', clientid = '%s',username = '%s',password = '%s',bankurl = '%s',storekey = '%s',processtype = '%s',cardname = '%s',valid_until = %d WHERE cid = %d",
436                   $form['bankname'],$form['clientid'],$form['username'],$form['password'],$form['bankurl'],$form['storekey'],$form['processtype'],$form['cardname'],$valid_until,$form['cid'])) {      $form['bankname'],$form['clientid'],$form['username'],$form['password'],$form['bankurl'],$form['storekey'],$form['processtype'],$form['cardname'],$valid_until,$form['cid'])) {
437        $message = "Bank updated succssfully";        $message = "Bank updated succssfully";
438            }      }
439            else {      else {
440                    $message = "Bank could not be updated. Try again.";        $message = "Bank could not be updated. Try again.";
441            }      }
442    }    }
443    drupal_set_message($message);    drupal_set_message($message);
444    drupal_goto("admin/store/settings/banks");    drupal_goto("admin/store/settings/banks");
445  }  }
# Line 450  function uc_turkish_banks_add_form_submi Line 450  function uc_turkish_banks_add_form_submi
450  function uc_turkish_banks_load($cid) {  function uc_turkish_banks_load($cid) {
451    $object = db_fetch_array(db_query("SELECT * FROM {uc_turkish_banks} WHERE cid = %d", $cid));    $object = db_fetch_array(db_query("SELECT * FROM {uc_turkish_banks} WHERE cid = %d", $cid));
452    if ($object == '') {    if ($object == '') {
453            drupal_set_message("Sorry Bank $cid does not exist.  Choose another bank to edit or compose a new one");      drupal_set_message("Sorry Bank $cid does not exist.  Choose another bank to edit or compose a new one");
454            drupal_goto('admin/store/settings/banks');      drupal_goto('admin/store/settings/banks');
455    }    }
456    return $object;    return $object;
457  }  }
# Line 460  function uc_turkish_banks_load($cid) { Line 460  function uc_turkish_banks_load($cid) {
460   * Delete confirm   * Delete confirm
461   */   */
462  function uc_turkish_banks_delete_confirm($cid) {  function uc_turkish_banks_delete_confirm($cid) {
463   $form['cid'] = array('#type' => 'value', '#value' => $cid);    $form['cid'] = array('#type' => 'value', '#value' => $cid);
464    return confirm_form($form,    return confirm_form($form,
465            t('Confirm Deletion of Bank %cid', array('%cid' => $cid)),    t('Confirm Deletion of Bank %cid', array('%cid' => $cid)),
466            'admin/store/settings/banks',            'admin/store/settings/banks',
467            t('Are you sure ?'),    t('Are you sure ?'),
468      t('Delete'),    t('Delete'),
469      t('Cancel')    t('Cancel')
470    );    );
471  }  }
472    
# Line 474  function uc_turkish_banks_delete_confirm Line 474  function uc_turkish_banks_delete_confirm
474   * Delete coupon   * Delete coupon
475   */   */
476  function uc_turkish_banks_delete_confirm_submit($form_id, $form) {  function uc_turkish_banks_delete_confirm_submit($form_id, $form) {
477          $bank_id = $form['cid'];    $bank_id = $form['cid'];
478    if (db_query("DELETE FROM {uc_turkish_banks}, {uc_turkish_banks_instalments} USING {uc_turkish_banks}, {uc_turkish_banks_instalments} WHERE {uc_turkish_banks}.cid = {uc_turkish_banks_instalments}.cid AND {uc_turkish_banks}.cid = %d", $bank_id)) {    if (db_query("DELETE FROM {uc_turkish_banks}, {uc_turkish_banks_instalments} USING {uc_turkish_banks}, {uc_turkish_banks_instalments} WHERE {uc_turkish_banks}.cid = {uc_turkish_banks_instalments}.cid AND {uc_turkish_banks}.cid = %d", $bank_id)) {
479                  $msg = t('Bank and related instalments has been deleted successfully');      $msg = t('Bank and related instalments has been deleted successfully');
480          }    }
481          else {    else {
482                  $msg = t('Error deleting bank.');      $msg = t('Error deleting bank.');
483          }    }
484          drupal_goto('admin/store/settings/banks');    drupal_goto('admin/store/settings/banks');
485  }  }
486    
487  // BURASI MUALLAK BAKILACAK....  // BURASI MUALLAK BAKILACAK....
488  function uc_turkish_banks_order($op, $arg1, $arg2) {  function uc_turkish_banks_order($op, $arg1, $arg2) {
489    switch ($op) {    switch ($op) {
490          case 'save':      case 'save':
491            list($bank_temp,$amount_temp,$bank_cid,$taksit)=explode('|', $_SESSION['taksit']);        list($bank_temp,$amount_temp,$bank_cid,$taksit)=explode('|', $_SESSION['taksit']);
492            //print "TEST:".$_SESSION['bank_cid'].' '. $bank.' '.$amount ;        //print "TEST:".$_SESSION['bank_cid'].' '. $bank.' '.$amount ;
493            db_query("UPDATE {uc_order_line_items} SET title = '%s', amount = %f, weight = 0 WHERE order_id = %d AND type ='instalment'",$bank_temp, $amount_temp, $arg1->order_id);        db_query("UPDATE {uc_order_line_items} SET title = '%s', amount = %f, weight = 0 WHERE order_id = %d AND type ='instalment'",$bank_temp, $amount_temp, $arg1->order_id);
494                                          if (db_affected_rows() == 0) {        if (db_affected_rows() == 0) {
495                                                  db_query("INSERT INTO {uc_order_line_items} (order_id, type, title, amount, weight) VALUES (%d, 'instalment', '%s', %f, 0)", $arg1->order_id,$bank_temp, $amount_temp);          db_query("INSERT INTO {uc_order_line_items} (order_id, type, title, amount, weight) VALUES (%d, 'instalment', '%s', %f, 0)", $arg1->order_id,$bank_temp, $amount_temp);
496                                          }        }
497        break;        break;
498                  /*        /*
499      case 'load':         case 'load':
500                    $arg1->instalment_title ='NoInstalment';         $arg1->instalment_title ='NoInstalment';
501        $instalment_result = db_fetch_object(db_query("SELECT cid FROM {uc_instalments_orders} WHERE oid = %d", $arg1->order_id));         $instalment_result = db_fetch_object(db_query("SELECT cid FROM {uc_instalments_orders} WHERE oid = %d", $arg1->order_id));
502                    if (db_affected_rows() > 0) {         if (db_affected_rows() > 0) {
503                      $instalments = db_fetch_object(db_query("SELECT * FROM {uc_instalments} WHERE cid = %d", $instalment_result->cid));         $instalments = db_fetch_object(db_query("SELECT * FROM {uc_instalments} WHERE cid = %d", $instalment_result->cid));
504                      if (db_affected_rows() > 0) {         if (db_affected_rows() > 0) {
505            $arg1->instalment_title = $instalments->bankname. ' x '.$instalments->instalment;         $arg1->instalment_title = $instalments->bankname. ' x '.$instalments->instalment;
506          }         }
507                    }         }
508                          break;         break;
509                  */         */
510          }          }
511  }  }
512    
# Line 529  function uc_turkish_banks_form_alter($fo Line 529  function uc_turkish_banks_form_alter($fo
529  }  }
530    
531  /**  /**
532   * Implementation of hook_line_item().   * Implementation of hook_line_item().
533   */   */
534  function uc_turkish_banks_line_item() {  function uc_turkish_banks_line_item() {
535    $items[] = array(    $items[] = array(
# Line 541  function uc_turkish_banks_line_item() { Line 541  function uc_turkish_banks_line_item() {
541      'calculated' => TRUE,      'calculated' => TRUE,
542      'add_list' => TRUE,      'add_list' => TRUE,
543      'display_only' => FALSE,      'display_only' => FALSE,
544  //    'callback' => 'uc_line_item_instalment',    //    'callback' => 'uc_line_item_instalment',
545    );    );
546    return $items;    return $items;
547  }  }
# Line 549  function uc_turkish_banks_line_item() { Line 549  function uc_turkish_banks_line_item() {
549  function uc_line_item_instalment($op, $arg1) {  function uc_line_item_instalment($op, $arg1) {
550    switch ($op) {    switch ($op) {
551      /* checkout ta dogrudan ekleme      /* checkout ta dogrudan ekleme
552      case 'cart-preview':       case 'cart-preview':
553        $subtotal = 10.00;       $subtotal = 10.00;
554        drupal_add_js("\$(document).ready( function() { set_line_item('instalment', '". t('Instalment') ."', ". $subtotal ."); } );", 'inline');       drupal_add_js("\$(document).ready( function() { set_line_item('instalment', '". t('Instalment') ."', ". $subtotal ."); } );", 'inline');
555      break;       break;
556      /*       /*
557      case 'save':       case 'save':
558        db_query("DELETE FROM {uc_order_line_items} WHERE order_id = %d AND type = 'instalment'", $arg1->order_id);       db_query("DELETE FROM {uc_order_line_items} WHERE order_id = %d AND type = 'instalment'", $arg1->order_id);
559        uc_order_line_item_add($arg1->order_id, 'instalment', 'Banka Aciklama', 10.00, 1);       uc_order_line_item_add($arg1->order_id, 'instalment', 'Banka Aciklama', 10.00, 1);
560        break;       break;
561    
562      case 'load':       case 'load':
563         $lines[] = array(       $lines[] = array(
564          'id' => 'instalment',       'id' => 'instalment',
565          'title' => t('Instalment'),       'title' => t('Instalment'),
566          'amount' => "11.00",       'amount' => "11.00",
567        );       );
568        return $lines;       return $lines;
569        break;       break;
570      */       */
571    }    }
572  }  }
573    
# Line 615  function uc_payment_method_banks($op, &$ Line 615  function uc_payment_method_banks($op, &$
615        if (db_affected_rows() > 0) {        if (db_affected_rows() > 0) {
616          $options  = array();          $options  = array();
617          $select2='<select NAME="taksit" ID="taksit" class="combobox" onChange="instalment(this)">'          $select2='<select NAME="taksit" ID="taksit" class="combobox" onChange="instalment(this)">'
618                  .'<option selected>Taksitler...</option>'          .'<option selected>Taksitler...</option>'
619                  .'</select>';          .'</select>';
620          $select1='<select NAME="banka" ID="banka" onChange="subselect(this.options.selectedIndex)" ="combobox">';          $select1='<select NAME="banka" ID="banka" onChange="subselect(this.options.selectedIndex)" ="combobox">';
621          $select1.='<option selected>Bankalar...</option>';          $select1.='<option selected>Bankalar...</option>';
622          $outer=1;          $outer=1;
623          while ($row = db_fetch_array($result)) {          while ($row = db_fetch_array($result)) {
624              $select1.= '<OPTION VALUE="'. $outer. '">'. $row['bankname'].'</OPTION>' ;            $select1.= '<OPTION VALUE="'. $outer. '">'. $row['bankname'].'</OPTION>' ;
625              $select2Opt.= 'group[0]['.$outer.']=new Option("option'.$outer.'");';            $select2Opt.= 'group[0]['.$outer.']=new Option("option'.$outer.'");';
626              $inner=0;            $inner=0;
627              $select3OptLst .= 'group['.$outer.']['.$inner++.']=new Option("Taksitler");';            $select3OptLst .= 'group['.$outer.']['.$inner++.']=new Option("Taksitler");';
628    
629              $cid_ins = $row['cid'];            $cid_ins = $row['cid'];
630              $result_ins = db_query("SELECT * FROM {uc_turkish_banks_instalments} where cid = %d and valid_until > CURDATE() ORDER BY instalment", $cid_ins);            $result_ins = db_query("SELECT * FROM {uc_turkish_banks_instalments} where cid = %d and valid_until > CURDATE() ORDER BY instalment", $cid_ins);
631              while ($row_ins = db_fetch_array($result_ins)) {            while ($row_ins = db_fetch_array($result_ins)) {
632                    $new= $row_ins['instalment_ratio'] * $subtotal;              $new= $row_ins['instalment_ratio'] * $subtotal;
633                    $select_text = $row_ins['instalment']. " taksit +". uc_currency_format($new);              $select_text = $row_ins['instalment']. " taksit +". uc_currency_format($new);
634                    $select_value= $row['cardname']. ' ile '.$row_ins['instalment'] .' taksit'. '|'. $new.'|'.$row['cid'].'|'.$i;              $select_value= $row['cardname']. ' ile '.$row_ins['instalment'] .' taksit'. '|'. $new.'|'.$row['cid'].'|'.$i;
635                    $select3OptLst .= 'group['.$outer.']['.$inner++.']=new Option("'.$select_text.'","'.$select_value.'");';              $select3OptLst .= 'group['.$outer.']['.$inner++.']=new Option("'.$select_text.'","'.$select_value.'");';
636              }            }
637              /*            /*
638              for ($i=2;$i<=18;$i++)             for ($i=2;$i<=18;$i++)
639              {             {
640                  if ($row['instalment_'.$i] && $row['instalment_ratio_'.$i] > 0)             if ($row['instalment_'.$i] && $row['instalment_ratio_'.$i] > 0)
641                  {             {
642                    $new= $row['instalment_ratio_'.$i] * $subtotal;             $new= $row['instalment_ratio_'.$i] * $subtotal;
643                    $select_text = "$i taksit +". uc_currency_format($new);             $select_text = "$i taksit +". uc_currency_format($new);
644                    $select_value= $row['cardname']. ' ile '.$i .' taksit'. '|'. $new.'|'.$row['cid'].'|'.$i;             $select_value= $row['cardname']. ' ile '.$i .' taksit'. '|'. $new.'|'.$row['cid'].'|'.$i;
645                    $select3OptLst .= 'group['.$outer.']['.$inner++.']=new Option("'.$select_text.'","'.$select_value.'");';             $select3OptLst .= 'group['.$outer.']['.$inner++.']=new Option("'.$select_text.'","'.$select_value.'");';
646                  }             }
647              }             }
648              */             */
649              $outer++;            $outer++;
650          }          }
651          $select1.='</select>';          $select1.='</select>';
652    
653          $details = '<div class="form-item"><b>'. t('Select instalment:'). '</b>'          $details = '<div class="form-item"><b>'. t('Select instalment:'). '</b>'
654                  . $select1          . $select1
655                  . $select2          . $select2
656                  .'<script>          .'<script>
657                    <!--                    <!--
658                    var groups=document.getElementById("uc-cart-checkout-form").banka.options.length;                    var groups=document.getElementById("uc-cart-checkout-form").banka.options.length;
659                    var group=new Array(groups);                    var group=new Array(groups);
660                    for (i=0; i<groups; i++)                    for (i=0; i<groups; i++)
661                    group[i]=new Array();'                    group[i]=new Array();'
662                   .$select2Opt                    .$select2Opt
663                   .$select3OptLst                    .$select3OptLst
664    
665                   .'var temp=document.getElementById("uc-cart-checkout-form").taksit;                    .'var temp=document.getElementById("uc-cart-checkout-form").taksit;
666    
667                    function subselect(x){                    function subselect(x){
668                      if (x > 0)                      if (x > 0)
# Line 680  function uc_payment_method_banks($op, &$ Line 680  function uc_payment_method_banks($op, &$
680                    }                    }
681                    //-->                    //-->
682                    </script>';                    </script>';
683          /*                    /*
684                  .  '<select name="bank_cid" class="form-select" id="edit-bank-cid" onChange="instalment(this)">';                     .  '<select name="bank_cid" class="form-select" id="edit-bank-cid" onChange="instalment(this)">';
685    
686          $details .= '<option>Taksit Secenekleri</option>';                     $details .= '<option>Taksit Secenekleri</option>';
687          while ($row = db_fetch_array($result)) {                     while ($row = db_fetch_array($result)) {
688            for ($i=2;$i<=18;$i++)                     for ($i=2;$i<=18;$i++)
689            {                     {
690                if ($row['instalment_'.$i] && $row['instalment_ratio_'.$i] > 0)                     if ($row['instalment_'.$i] && $row['instalment_ratio_'.$i] > 0)
691                {                     {
692                  $new= $row['instalment_ratio_'.$i] * $subtotal;                     $new= $row['instalment_ratio_'.$i] * $subtotal;
693                  $select_item= $row['cardname']. ' ile '.$i .' taksit'. '|'. $new.'|'.$row['cid'].'|'.$i;                     $select_item= $row['cardname']. ' ile '.$i .' taksit'. '|'. $new.'|'.$row['cid'].'|'.$i;
694                  //$selected = $_SESSION['bank_cid'] ? ' selected="selected" ' :'';                     //$selected = $_SESSION['bank_cid'] ? ' selected="selected" ' :'';
695                  $details .= '<option value="'.$select_item .'"'.$selected. '>'. $row['cardname'] . ' ile '.$i .' taksit'. ' + '. uc_currency_format($new)  .'</option>';                     $details .= '<option value="'.$select_item .'"'.$selected. '>'. $row['cardname'] . ' ile '.$i .' taksit'. ' + '. uc_currency_format($new)  .'</option>';
696                }                     }
697            }                     }
698          }                     }
699          $details .= '</select></div>';                     $details .= '</select></div>';
700          */                     */
701          unset($_SESSION[$select_item]);                    unset($_SESSION[$select_item]);
702        }        }
703       // watchdog('banks',$details );        // watchdog('banks',$details );
704        return $details;        return $details;
705    
706      case 'cart-process':      case 'cart-process':
707        $_SESSION['taksit'] = $_POST['taksit'];        $_SESSION['taksit'] = $_POST['taksit'];
708        return;        return;
709      /*        /*
710      case 'cart-review':         case 'cart-review':
711        if ($_SESSION['bank_cid'] <> '')         if ($_SESSION['bank_cid'] <> '')
712        {         {
713           $bank_cid =substr($_SESSION['bank_cid'],0,strpos($_SESSION['bank_cid'],'_') );         $bank_cid =substr($_SESSION['bank_cid'],0,strpos($_SESSION['bank_cid'],'_') );
714           $taksit = substr($_SESSION['bank_cid'],strpos($_SESSION['bank_cid'],'_')+1,1);         $taksit = substr($_SESSION['bank_cid'],strpos($_SESSION['bank_cid'],'_')+1,1);
715           $bank_datail = db_fetch_object(db_query("SELECT * FROM {uc_turkish_banks} WHERE cid = %d",$bank_cid ));         $bank_datail = db_fetch_object(db_query("SELECT * FROM {uc_turkish_banks} WHERE cid = %d",$bank_cid ));
716                    if (db_affected_rows() > 0) {         if (db_affected_rows() > 0) {
717            $title= $bank_datail->bankname. ' x '.$taksit;         $title= $bank_datail->bankname. ' x '.$taksit;
718          }         }
719          $review[] = array('title' => t('Instalment'), 'data' => $title);         $review[] = array('title' => t('Instalment'), 'data' => $title);
720        }         }
721        return $review;         return $review;
722      */         */
723    }    }
724  }  }
725    
726  // Form to build the submission to bank  // Form to build the submission to bank
727  function uc_turkish_banks_form($order) {  function uc_turkish_banks_form($order) {
728    //print "CID:".$_SESSION['taksit'];    //print "CID:".$_SESSION['taksit'];
729    
730    list($bank_temp,$amount_temp,$bank_cid,$taksit)=explode('|', $_SESSION['taksit']);    list($bank_temp,$amount_temp,$bank_cid,$taksit)=explode('|', $_SESSION['taksit']);
731    
732    $bank = db_fetch_object(db_query("SELECT * FROM {uc_turkish_banks} WHERE cid = %d", $bank_cid));    $bank = db_fetch_object(db_query("SELECT * FROM {uc_turkish_banks} WHERE cid = %d", $bank_cid));
733    
734    $clientId = $bank->clientid;      //banks tarafindan magazaya verilen isyeri numarasi    $clientId = $bank->clientid;      //banks tarafindan magazaya verilen isyeri numarasi
735    $amount = uc_currency_format($order->order_total, FALSE, FALSE, '.');             //tutar    $amount = uc_currency_format($order->order_total, FALSE, FALSE, '.');             //tutar
736    $oid = $order->order_id;                    //Siparis numarasi    $oid = $order->order_id;                    //Siparis numarasi
737    $okUrl = url('cart/banks/complete/'. uc_cart_get_id(), NULL, NULL, TRUE);      //Islem basariliysa dönülecek isyeri sayfasi  (3D isleminin ve ödeme isleminin sonucu)    $okUrl = url('cart/banks/complete/'. uc_cart_get_id(), NULL, NULL, TRUE);      //Islem basariliysa dönülecek isyeri sayfasi  (3D isleminin ve ödeme isleminin sonucu)
738    $failUrl = url('cart/banks/complete/'. uc_cart_get_id(), NULL, NULL, TRUE);    //Islem basarisizsa dönülecek isyeri sayfasi  (3D isleminin ve ödeme isleminin sonucu)    $failUrl = url('cart/banks/complete/'. uc_cart_get_id(), NULL, NULL, TRUE);    //Islem basarisizsa dönülecek isyeri sayfasi  (3D isleminin ve ödeme isleminin sonucu)
739    $rnd = microtime();                    //Tarih ve zaman gibi sürekli degisen bir deger güvenlik amaçli kullaniliyor    $rnd = microtime();                    //Tarih ve zaman gibi sürekli degisen bir deger güvenlik amacli kullaniliyor
740    $islemtipi= $bank->processtype;                                       //Islem tipi    $islemtipi= $bank->processtype;                                       //Islem tipi
741    $storekey = $bank->storekey;                                  //Isyeri anahtari    $storekey = $bank->storekey;                                  //Isyeri anahtari
742    
743    $hashstr = $clientId . $oid . $amount . $okUrl . $failUrl . $islemtipi . $taksit . $rnd . $storekey; //güvenlik amaçli hashli deger    $hashstr = $clientId . $oid . $amount . $okUrl . $failUrl . $islemtipi . $taksit . $rnd . $storekey; //güvenlik amacli hashli deger
744    $hash = base64_encode(pack('H*',sha1($hashstr)));    $hash = base64_encode(pack('H*',sha1($hashstr)));
745    
746    
747    $data = array(    $data = array(
748      'clientid' => $clientId,      'clientid' => $clientId,
749      'firmaadi' => variable_get('uc_store_name', ''),      'firmaadi' => variable_get('uc_store_name', ''),
# Line 761  function uc_turkish_banks_form($order) { Line 761  function uc_turkish_banks_form($order) {
761    );    );
762    
763    /*    /*
764    $i = 0;     $i = 0;
765    foreach ($order->products as $product) {     foreach ($order->products as $product) {
766      $i++;     $i++;
767      $data['c_prod_'. $i] = $product->model .','. $product->qty;     $data['c_prod_'. $i] = $product->model .','. $product->qty;
768      $data['c_name_'. $i] = $product->title;     $data['c_name_'. $i] = $product->title;
769      $data['c_description_'. $i] = $desc;     $data['c_description_'. $i] = $desc;
770      $data['c_price_'. $i] = uc_currency_format($product->price, FALSE, FALSE, '.');     $data['c_price_'. $i] = uc_currency_format($product->price, FALSE, FALSE, '.');
771    }     }
772    */     */
773    
774    $form['#action'] = $bank->bankurl;    $form['#action'] = $bank->bankurl;
775    
# Line 784  function uc_turkish_banks_form($order) { Line 784  function uc_turkish_banks_form($order) {
784    
785    return $form;    return $form;
786  }  }
787    
788  function uc_turkish_banks_complete($cart_id = 0) {  function uc_turkish_banks_complete($cart_id = 0) {
789    watchdog('banks', t('Receiving new order notification for order !order_id.', array('!order_id' => check_plain($_POST['oid']))));    watchdog('banks', t('Receiving new order notification for order !order_id.', array('!order_id' => check_plain($_POST['oid']))));
790    
791    // siparisi yukle    // siparisi yukle
792    $order = uc_order_load($_POST['oid']);    $order = uc_order_load($_POST['oid']);
793    if ($order == FALSE || uc_order_status_data($order->order_status, 'state') != 'in_checkout') {    if ($order == FALSE || uc_order_status_data($order->order_status, 'state') != 'in_checkout') {
794      drupal_set_message(t('An error has occurred during payment.  Please contact us to ensure your order has submitted.'));      drupal_set_message(t('An error has occurred during payment.  Please contact us to ensure your order has submitted.'));
795      return;      return;
796    }    }
797    
798    $hashparams = $_POST["HASHPARAMS"];    $hashparams = $_POST["HASHPARAMS"];
799    $hashparamsval = $_POST["HASHPARAMSVAL"];    $hashparamsval = $_POST["HASHPARAMSVAL"];
800    $hashparam = $_POST["HASH"];    $hashparam = $_POST["HASH"];
# Line 802  function uc_turkish_banks_complete($cart Line 802  function uc_turkish_banks_complete($cart
802    $paramsval="";    $paramsval="";
803    $index1=0;    $index1=0;
804    $index2=0;    $index2=0;
805    
806    while ($index1 < strlen($hashparams)) {    while ($index1 < strlen($hashparams)) {
807      $index2 = strpos($hashparams,":",$index1);      $index2 = strpos($hashparams,":",$index1);
808      $vl = $_POST[substr($hashparams,$index1,$index2- $index1)];      $vl = $_POST[substr($hashparams,$index1,$index2- $index1)];
809      if ($vl == NULL) {      if ($vl == NULL) {
810        $vl = "";        $vl = "";
811      }      }
812      $paramsval = $paramsval . $vl;      $paramsval = $paramsval . $vl;
813      $index1 = $index2 + 1;      $index1 = $index2 + 1;
814    }    }
815    $storekey = variable_get('banks_settings_isyeri_anahtari', '');    $storekey = variable_get('banks_settings_isyeri_anahtari', '');
816    $hashval = $paramsval.$storekey;    $hashval = $paramsval.$storekey;
817    
818    $hash = base64_encode(pack('H*',sha1($hashval)));    $hash = base64_encode(pack('H*',sha1($hashval)));
819    
820    if($paramsval != $hashparamsval || $hashparam != $hash)    if($paramsval != $hashparamsval || $hashparam != $hash)
821    {    {
822            uc_order_comment_save($order->order_id, 0, t('Güvenlik Uyarisi. Sayisal Imza Geçerli Degil'), 'admin');      uc_order_comment_save($order->order_id, 0, t('Güvenlik Uyarisi. Sayisal Imza Geçerli Degil'), 'admin');
823          }    }
824    
825    $mdStatus = $_POST["mdStatus"];    $mdStatus = $_POST["mdStatus"];
826          $ErrMsg = $_POST["mdErrorMsg"];    $ErrMsg = $_POST["mdErrorMsg"];
827    
828    if($mdStatus == 1 || $mdStatus == 2 || $mdStatus == 3 || $mdStatus == 4)    if($mdStatus == 1 || $mdStatus == 2 || $mdStatus == 3 || $mdStatus == 4)
829    {    {
830      $comment = t('Garanti bankssi ile ödeme alidi.');      $comment = t('Ödeme alidi.');
831      uc_payment_enter($order->order_id, 'Garanti Bank', $_POST["amount"], 0, NULL, $comment);      uc_payment_enter($order->order_id, 'Garanti Bank', $_POST["amount"], 0, NULL, $comment);
832      uc_order_comment_save($order->order_id, 0, t('Order created through website.'), 'admin');      uc_order_comment_save($order->order_id, 0, t('Order created through website.'), 'admin');
833      $_SESSION['do_complete'] = TRUE;      $_SESSION['do_complete'] = TRUE;
834      drupal_goto('cart/checkout/complete');      drupal_goto('cart/checkout/complete');
# Line 897  function uc_turkish_banks_settings_form( Line 897  function uc_turkish_banks_settings_form(
897      '#options' => array(      '#options' => array(
898        'Auth' => t('Satis'),        'Auth' => t('Satis'),
899        'PreAuth' => t('On Otorizasyon'),        'PreAuth' => t('On Otorizasyon'),
900      ),    ),
901       '#default_value' => variable_get('banks_transaction_mode', 'Auth'),       '#default_value' => variable_get('banks_transaction_mode', 'Auth'),
902    );    );
903    $form['banks_settings']['banks_transaction_mode'] = array(    $form['banks_settings']['banks_transaction_mode'] = array(
904      '#type' => 'select',      '#type' => 'select',
905      '#title' => t('Transaction mode'),      '#title' => t('Transaction mode'),
# Line 907  function uc_turkish_banks_settings_form( Line 907  function uc_turkish_banks_settings_form(
907      '#options' => array(      '#options' => array(
908        'uretim' => t('Uretim'),        'uretim' => t('Uretim'),
909        'test' => t('Test'),        'test' => t('Test'),
910      ),    ),
911      '#default_value' => variable_get('banks_transaction_mode', 'test'),      '#default_value' => variable_get('banks_transaction_mode', 'test'),
912    );    );
913    return $form;    return $form;
# Line 920  function uc_turkish_banks_charge($order_ Line 920  function uc_turkish_banks_charge($order_
920    }    }
921    
922    // XML request sablonu    // XML request sablonu
923          $request= "DATA=<?xml version=\"1.0\" encoding=\"ISO-8859-9\"?>".    $request= "DATA=<?xml version=\"1.0\" encoding=\"ISO-8859-9\"?>".
924          "<CC5Request>".          "<CC5Request>".
925          "<Name>{NAME}</Name>".          "<Name>{NAME}</Name>".
926          "<Password>{PASSWORD}</Password>".          "<Password>{PASSWORD}</Password>".
# Line 967  function uc_turkish_banks_charge($order_ Line 967  function uc_turkish_banks_charge($order_
967          "</ShipTo>".          "</ShipTo>".
968          "<Extra></Extra>".          "<Extra></Extra>".
969          "</CC5Request>";          "</CC5Request>";
970    
971    $taksit=0;    $taksit=0;
972    
973    $request=str_replace("{NAME}",variable_get('banks_settings_name',''),$request);    $request=str_replace("{NAME}",variable_get('banks_settings_name',''),$request);
# Line 990  function uc_turkish_banks_charge($order_ Line 990  function uc_turkish_banks_charge($order_
990      $url = 'https://ccpos.garanti.com.tr/servlet/gar3Dgate';      $url = 'https://ccpos.garanti.com.tr/servlet/gar3Dgate';
991    }    }
992    
993          $ch = curl_init();    // initialize curl handle    $ch = curl_init();    // initialize curl handle
994    curl_setopt($ch, CURLOPT_URL,$url); // set url to post to    curl_setopt($ch, CURLOPT_URL,$url); // set url to post to
995    //curl_setopt($ch, CURLOPT_VERBOSE, 0);    //curl_setopt($ch, CURLOPT_VERBOSE, 0);
996    //curl_setopt($ch, CURLOPT_POST, 1);    //curl_setopt($ch, CURLOPT_POST, 1);
# Line 1003  function uc_turkish_banks_charge($order_ Line 1003  function uc_turkish_banks_charge($order_
1003    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable
1004    curl_setopt($ch, CURLOPT_TIMEOUT, 90); // times out after 4s    curl_setopt($ch, CURLOPT_TIMEOUT, 90); // times out after 4s
1005    curl_setopt($ch, CURLOPT_POSTFIELDS, $request); // add POST fields    curl_setopt($ch, CURLOPT_POSTFIELDS, $request); // add POST fields
1006    
1007    $result = curl_exec($ch); // run the whole process    $result = curl_exec($ch); // run the whole process
1008    
1009    if ($error = curl_error($ch)) {    if ($error = curl_error($ch)) {
1010      watchdog('uc_turkish_banks', $error, WATCHDOG_ERROR);      watchdog('uc_turkish_banks', $error, WATCHDOG_ERROR);
1011    }    }
1012    curl_close($ch);    curl_close($ch);
1013    
1014    $Response ="";    $Response ="";
1015    $OrderId ="";    $OrderId ="";
1016    $AuthCode  ="";    $AuthCode  ="";
1017    $ProcReturnCode    ="";    $ProcReturnCode    ="";
1018    $ErrMsg  ="";    $ErrMsg  ="";
1019    $HOSTMSG  ="";    $HOSTMSG  ="";
1020    
1021    $response_tag="Response";    $response_tag="Response";
1022    $posf = strpos($result, "<". $response_tag .">");    $posf = strpos($result, "<". $response_tag .">");
1023    $posl = strpos($result, "</". $response_tag .">");    $posl = strpos($result, "</". $response_tag .">");
1024    $posf = $posf+ strlen($response_tag) +2 ;    $posf = $posf+ strlen($response_tag) +2 ;
1025    $Response = substr($result, $posf, $posl - $posf);    $Response = substr($result, $posf, $posl - $posf);
1026    
1027    $response_tag="OrderId";    $response_tag="OrderId";
1028    $posf = strpos($result, "<". $response_tag .">");    $posf = strpos($result, "<". $response_tag .">");
1029    $posl = strpos($result, "</". $response_tag .">");    $posl = strpos($result, "</". $response_tag .">");
1030    $posf = $posf+ strlen($response_tag) +2;    $posf = $posf+ strlen($response_tag) +2;
1031    $OrderId = substr($result, $posf, $posl - $posf);    $OrderId = substr($result, $posf, $posl - $posf);
1032    
1033    $response_tag="AuthCode";    $response_tag="AuthCode";
1034    $posf = strpos($result, "<". $response_tag .">");    $posf = strpos($result, "<". $response_tag .">");
1035    $posl = strpos($result, "</". $response_tag .">");    $posl = strpos($result, "</". $response_tag .">");
1036    $posf = $posf+ strlen($response_tag) +2;    $posf = $posf+ strlen($response_tag) +2;
1037    $AuthCode = substr($result, $posf, $posl - $posf);    $AuthCode = substr($result, $posf, $posl - $posf);
1038    
1039    $response_tag="ProcReturnCode";    $response_tag="ProcReturnCode";
1040    $posf = strpos($result, "<". $response_tag .">");    $posf = strpos($result, "<". $response_tag .">");
1041    $posl = strpos($result, "</". $response_tag .">");    $posl = strpos($result, "</". $response_tag .">");
1042    $posf = $posf+ strlen($response_tag) +2;    $posf = $posf+ strlen($response_tag) +2;
1043    $ProcReturnCode = substr($result, $posf, $posl - $posf);    $ProcReturnCode = substr($result, $posf, $posl - $posf);
1044    
1045    $response_tag="ErrMsg";    $response_tag="ErrMsg";
1046    $posf = strpos($result, "<". $response_tag .">");    $posf = strpos($result, "<". $response_tag .">");
1047    $posl = strpos($result, "</". $response_tag .">");    $posl = strpos($result, "</". $response_tag .">");
1048    $posf = $posf+ strlen($response_tag) +2;    $posf = $posf+ strlen($response_tag) +2;
1049    $ErrMsg = substr($result, $posf, $posl - $posf);    $ErrMsg = substr($result, $posf, $posl - $posf);
1050    
1051    $x_response_code = $Response;    $x_response_code = $Response;
1052    $x_response_text = $ErrMsg;    $x_response_text = $ErrMsg;
1053    $x_approval_code = $AuthCode;    $x_approval_code = $AuthCode;

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

  ViewVC Help
Powered by ViewVC 1.1.2