Skip to content

Commit

Permalink
Create new OPEN order state. Fix bug with double order update.
Browse files Browse the repository at this point in the history
  • Loading branch information
lvgunst committed Jun 11, 2014
1 parent 4908e1e commit c798cc8
Show file tree
Hide file tree
Showing 6 changed files with 96 additions and 25 deletions.
18 changes: 11 additions & 7 deletions README.mdown
Original file line number Diff line number Diff line change
Expand Up @@ -16,19 +16,22 @@ Met iDEAL kunt u vertrouwd, veilig en gemakkelijk uw online aankopen afrekenen.
Via [Mollie](https://www.mollie.nl/) is iDEAL gemakkelijk aan te sluiten zonder de gebruikelijke technische en administratieve rompslomp. Mollie geeft u op ieder moment toegang tot uw transactieoverzichten en andere statistieken. Tevens is het mogelijk per e-mail of SMS een notificatie te ontvangen bij elke gelukte betaling. [Mollie](https://www.mollie.nl/) is hierdoor dus een perfecte partner op het gebied van iDEAL en is het dan ook niet verbazingwekkend dat [Mollie](https://www.mollie.nl/) ondertussen op meer dan 20.000 websites iDEAL-betalingen mag verzorgen.

### Creditcard ###
Creditcard is vrijwel de bekendste methode voor het ontvangen van betalingen met wereldwijde dekking. Doordat we onder andere de bekende merken Mastercard en Visa ondersteunen, zorgt dit direct voor veel potentiële kopers.
[Creditcard](https://www.mollie.nl/betaaldiensten/creditcard/) is vrijwel de bekendste methode voor het ontvangen van betalingen met wereldwijde dekking. Doordat we onder andere de bekende merken Mastercard en Visa ondersteunen, zorgt dit direct voor veel potentiële kopers.

### Mister Cash ###
Mister Cash maakt gebruik van een fysieke kaart die gekoppeld is aan tegoed op een Belgische bankrekening. Betalingen via Mister Cash zijn gegarandeerd en lijkt daarmee sterk op iDEAL in Nederland. Daarom is het uitermate geschikt voor uw webwinkel.
[Mister Cash](https://www.mollie.nl/betaaldiensten/mistercash/) maakt gebruik van een fysieke kaart die gekoppeld is aan tegoed op een Belgische bankrekening. Betalingen via Mister Cash zijn gegarandeerd en lijkt daarmee sterk op iDEAL in Nederland. Daarom is het uitermate geschikt voor uw webwinkel.

### Overboekingen ###
[Overboekingen](https://www.mollie.nl/betaaldiensten/overboeking/) binnen de SEPA zone ontvangen via Mollie. Hiermee kun je betalingen ontvangen van zowel particulieren als zakelijke klanten in meer dan 35 Europese landen.

### PayPal ###
PayPal is wereldwijd een zeer populaire betaalmethode. In enkele klikken kunt u betalingen ontvangen via een bankoverschrijving, creditcard of het PayPal-saldo.
[PayPal](https://www.mollie.nl/betaaldiensten/paypal/) is wereldwijd een zeer populaire betaalmethode. In enkele klikken kunt u betalingen ontvangen via een bankoverschrijving, creditcard of het PayPal-saldo.

### paysafecard ###
paysafecard is de populairste prepaidcard voor online betalingen die veel door ouders voor hun kinderen wordt gekocht.
### Bitcoin ###
[Bitcoin](https://www.mollie.nl/betaaldiensten/bitcoin/) is een vorm van elektronisch geld. De bitcoin-euro wisselkoers wordt vastgesteld op het moment van de transactie waardoor het bedrag en de uitbetaling zijn gegarandeerd.

### Overboeking ###
Overboekingen binnen de SEPA zone ontvangen via Mollie. Hiermee kun je betalingen ontvangen van zowel particulieren als zakelijke klanten in meer dan 35 Europese landen.
### paysafecard ###
[paysafecard](https://www.mollie.nl/betaaldiensten/paysafecard/) is de populairste prepaidcard voor online betalingen die veel door ouders voor hun kinderen wordt gekocht.

# Veel gestelde vragen #

Expand Down Expand Up @@ -56,6 +59,7 @@ Contact: [www.mollie.nl](https://www.mollie.nl) — [email protected] — +31 20-61
+ [Meer informatie over Mister Cash via Mollie](https://www.mollie.nl/betaaldiensten/mistercash/)
+ [Meer informatie over Overboeking via Mollie](https://www.mollie.nl/betaaldiensten/overboeking/)
+ [Meer informatie over PayPal via Mollie](https://www.mollie.nl/betaaldiensten/paypal/)
+ [Meer informatie over Bitcoin via Mollie](https://www.mollie.nl/betaaldiensten/bitcoin/)
+ [Meer informatie over paysafecard via Mollie](https://www.mollie.nl/betaaldiensten/paysafecard/)

![Powered By Mollie](https://www.mollie.nl/images/badge-betaling-medium.png)
3 changes: 0 additions & 3 deletions mollie/controllers/front/payment.php
Original file line number Diff line number Diff line change
Expand Up @@ -118,9 +118,6 @@ public function initContent()
$payment_data = $this->_getPaymentData($amount, $method, $issuer, $order_id);
$payment = $this->_createPayment($payment_data);

// Save initial status
$this->module->setOrderStatus($order_id, Mollie_API_Object_Payment::STATUS_OPEN);

// Store payment
Db::getInstance()->insert(
'mollie_payments',
Expand Down
63 changes: 57 additions & 6 deletions mollie/mollie.php
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ class Mollie extends PaymentModule
public $statuses = array();
public $name = 'mollie';
public $tab = 'payments_gateways';
public $version = '1.0.1';
public $version = '1.0.2';
public $author = 'Mollie B.V.';
public $need_instance = TRUE;
public $ps_versions_compliancy = array('min' => '1.5', 'max' => '2');
Expand Down Expand Up @@ -193,6 +193,12 @@ public function install()
return FALSE;
}

if (!$this->installOpenState())
{
$this->_errors[] = 'Unable to install new OPEN state.';
return FALSE;
}

$sql = sprintf('
CREATE TABLE IF NOT EXISTS `%s` (
`order_id` INT(64) NOT NULL PRIMARY KEY,
Expand Down Expand Up @@ -320,7 +326,6 @@ protected function _initConfig()
$this->initConfigValue('MOLLIE_STATUS_CANCELLED', 6) &&
$this->initConfigValue('MOLLIE_STATUS_EXPIRED', 8) &&
$this->initConfigValue('MOLLIE_STATUS_REFUNDED', 7) &&
$this->initConfigValue('MOLLIE_MAIL_WHEN_OPEN', FALSE) &&
$this->initConfigValue('MOLLIE_MAIL_WHEN_PAID', TRUE) &&
$this->initConfigValue('MOLLIE_MAIL_WHEN_CANCELLED', FALSE) &&
$this->initConfigValue('MOLLIE_MAIL_WHEN_EXPIRED', FALSE) &&
Expand Down Expand Up @@ -565,15 +570,20 @@ protected function _getSaveResult($image_options = array(), $issuer_options = ar
$this->updateConfigValue('MOLLIE_CSS', $_POST['Mollie_Css']);
$this->updateConfigValue('MOLLIE_DISPLAY_ERRORS', (int) $_POST['Mollie_Errors']);
$this->updateConfigValue('MOLLIE_DEBUG_LOG', (int) $_POST['Mollie_Logger']);

foreach ($this->statuses as $name => $old)
{
$new = (int) $_POST['Mollie_Status_' . $name];
$this->statuses[$name] = $new;
$this->updateConfigValue('MOLLIE_STATUS_' . strtoupper($name), $new);
$this->updateConfigValue(
'MOLLIE_MAIL_WHEN_' . strtoupper($name),
!empty($_POST['Mollie_Mail_When_' . $name]) ? TRUE : FALSE
);

if ($name != Mollie_API_Object_Payment::STATUS_OPEN)
{
$this->updateConfigValue(
'MOLLIE_MAIL_WHEN_' . strtoupper($name),
!empty($_POST['Mollie_Mail_When_' . $name]) ? TRUE : FALSE
);
}
}
$result_msg = $this->l('The configuration has been saved!');
}
Expand Down Expand Up @@ -818,4 +828,45 @@ public function hookDisplayPayment()

return $this->display(__FILE__, 'mollie_methods.tpl');
}

public function installOpenState ()
{
$order_state = new OrderState();
$order_state->name = array();

foreach (Language::getLanguages() as $language)
{
switch (Tools::strtolower($language['iso_code']))
{
case 'nl':
$translation = 'Wachten op betaling';
break;

case 'fr':
$translation = 'En attente de paiement';
break;

default:
$translation = 'Pending payment';
break;
}

$order_state->name[$language['id_lang']] = $translation;
}

$order_state->send_email = FALSE;
$order_state->color = '#CCCCCC';
$order_state->hidden = FALSE;
$order_state->delivery = FALSE;
$order_state->logable = FALSE;
$order_state->invoice = FALSE;
$order_state->paid = FALSE;

if(!$order_state->add())
return FALSE;

Configuration::updateValue('MOLLIE_STATUS_OPEN', (int)$order_state->id);

return TRUE;
}
}
12 changes: 12 additions & 0 deletions mollie/upgrade/Upgrade-1.0.2.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
<?php
/**
* Upgrade script to upgrade Mollie to version 1.0.2
* This function will not get called on new installation
*
* @param Mollie $module
* @return bool
*/
function upgrade_module_1_0_2($module)
{
return $module->installOpenState();
}
20 changes: 11 additions & 9 deletions mollie/views/templates/hook/mollie_config.tpl
Original file line number Diff line number Diff line change
Expand Up @@ -171,15 +171,17 @@
<label for="Mollie_Status_{$name|escape}"><i>{$desc_status_{$name|escape}}</i></label>
</td>
</tr>
<tr>
<td class="mollie_msg">
<label for="Mollie_Mail_When_{$name|escape}"><b>{$msg_mail_{$name|escape}}</b></label>
</td>
<td class="mollie_input">
<input name="Mollie_Mail_When_{$name|escape}" id="Mollie_Mail_When_{$name|escape}" type="checkbox" value="1" {if $val_mail_{$name|escape}}checked="checked"{/if} style="width: auto;" /> <br />
<label for="Mollie_Mail_When_{$name|escape}"><i>{$desc_mail_{$name|escape}}</i></label>
</td>
</tr>
{if $name != Mollie_API_Object_Payment::STATUS_OPEN}
<tr>
<td class="mollie_msg">
<label for="Mollie_Mail_When_{$name|escape}"><b>{$msg_mail_{$name|escape}}</b></label>
</td>
<td class="mollie_input">
<input name="Mollie_Mail_When_{$name|escape}" id="Mollie_Mail_When_{$name|escape}" type="checkbox" value="1" {if $val_mail_{$name|escape}}checked="checked"{/if} style="width: auto;" /> <br />
<label for="Mollie_Mail_When_{$name|escape}"><i>{$desc_mail_{$name|escape}}</i></label>
</td>
</tr>
{/if}
{/foreach}
<tr>
<td colspan="2" class="mollie_title">{$title_debug}</td>
Expand Down
5 changes: 5 additions & 0 deletions tests/unittests/mollieTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public function setUp()
'updateConfigValue',
'display',
'_getUpdateXML',
'installOpenState',
));

$this->mollie->version = '1.0.0';
Expand All @@ -36,6 +37,10 @@ public function testInstall()
->method('initConfigValue')
->will($this->returnValue(TRUE));

$this->mollie->expects($this->once())
->method("installOpenState")
->will($this->returnValue(TRUE));

// execute
$this->mollie->install();
}
Expand Down

0 comments on commit c798cc8

Please sign in to comment.