/** * Save shipping action * * Save shipping address data */ public function savePaymentAction() { if ($this->Request()->isPost()) { $sourceIsCheckoutConfirm = $this->Request()->getParam('sourceCheckoutConfirm'); $values = $this->Request()->getPost('register'); $this->admin->sSYSTEM->_POST['sPayment'] = $values['payment']; $checkData = $this->admin->sValidateStep3(); if (!empty($checkData['checkPayment']['sErrorMessages']) || empty($checkData['sProcessed'])) { if (empty($sourceIsCheckoutConfirm)) { $this->View()->sErrorFlag = $checkData['checkPayment']['sErrorFlag']; $this->View()->sErrorMessages = $checkData['checkPayment']['sErrorMessages']; } return $this->forward('payment'); } else { $previousPayment = $this->admin->sGetUserData(); $previousPayment = $previousPayment['additional']['user']['paymentID']; $previousPayment = $this->admin->sGetPaymentMeanById($previousPayment); if ($previousPayment['paymentTable']) { $deleteSQL = 'DELETE FROM ' . $previousPayment['paymentTable'] . ' WHERE userID=?'; Shopware()->Db()->query($deleteSQL, array(Shopware()->Session()->sUserId)); } $this->admin->sUpdatePayment(); if ($checkData['sPaymentObject'] instanceof \ShopwarePlugin\PaymentMethods\Components\BasePaymentMethod) { $checkData['sPaymentObject']->savePaymentData(Shopware()->Session()->sUserId, $this->Request()); } } } if (!($target = $this->Request()->getParam('sTarget'))) { $target = 'account'; } $targetAction = $this->Request()->getParam('sTargetAction', 'index'); $this->redirect(array('controller' => $target, 'action' => $targetAction, 'success' => 'payment')); }
/** * AJAX action called from creditcard layer, saves client api response */ public function savePseudoCardAction() { $this->Front()->Plugins()->ViewRenderer()->setNoRender(); $userId = Shopware()->Session()->sUserId; $paymentData['mopt_payone__cc_truncatedcardpan'] = $this->Request()->getPost('mopt_payone__cc_truncatedcardpan'); $paymentData['mopt_payone__cc_pseudocardpan'] = $this->Request()->getPost('mopt_payone__cc_pseudocardpan'); $paymentData['mopt_payone__cc_cardtype'] = $this->Request()->getPost('mopt_payone__cc_cardtype'); $paymentData['mopt_payone__cc_accountholder'] = $this->Request()->getPost('mopt_payone__cc_accountholder'); $paymentData['mopt_payone__cc_month'] = $this->Request()->getPost('mopt_payone__cc_month'); $paymentData['mopt_payone__cc_year'] = $this->Request()->getPost('mopt_payone__cc_year'); $paymentData['mopt_payone__cc_paymentname'] = $this->Request()->getPost('mopt_payone__cc_paymentname'); $paymentData['mopt_payone__cc_paymentid'] = $this->Request()->getPost('mopt_payone__cc_paymentid'); $paymentData['mopt_payone__cc_paymentdescription'] = $this->Request()->getPost('mopt_payone__cc_paymentdescription'); $actualPaymentId = $paymentData['mopt_payone__cc_paymentid']; $sql = 'replace into `s_plugin_mopt_payone_payment_data`' . '(`userId`,`moptPaymentData`) values (?,?)'; $paymentData = serialize($paymentData); Shopware()->Db()->query($sql, array($userId, $paymentData)); $previousPayment = $this->admin->sGetUserData(); $previousPayment = $previousPayment['additional']['user']['paymentID']; $previousPayment = $this->admin->sGetPaymentMeanById($previousPayment); if ($previousPayment['paymentTable']) { $deleteSQL = 'DELETE FROM ' . $previousPayment['paymentTable'] . ' WHERE userID=?'; Shopware()->Db()->query($deleteSQL, array(Shopware()->Session()->sUserId)); } $sqlPayment = "UPDATE s_user SET paymentID = ? WHERE id = ?"; Shopware()->Db()->query($sqlPayment, array($actualPaymentId, $userId)); }
/** * Get complete user-data as an array to use in view * * @return array */ public function getUserData() { $system = Shopware()->System(); $userData = $this->admin->sGetUserData(); if (!empty($userData['additional']['countryShipping'])) { $sTaxFree = false; if (!empty($userData['additional']['countryShipping']['taxfree'])) { $sTaxFree = true; } elseif (!empty($userData['additional']['countryShipping']['taxfree_ustid']) && !empty($userData['billingaddress']['ustid']) && $userData['additional']['country']['id'] == $userData['additional']['countryShipping']['id']) { $sTaxFree = true; } $system->sUSERGROUPDATA = Shopware()->Db()->fetchRow("\n SELECT * FROM s_core_customergroups\n WHERE groupkey = ?\n ", array($system->sUSERGROUP)); if (!empty($sTaxFree)) { $system->sUSERGROUPDATA['tax'] = 0; $system->sCONFIG['sARTICLESOUTPUTNETTO'] = 1; //Old template Shopware()->Session()->sUserGroupData = $system->sUSERGROUPDATA; $userData['additional']['charge_vat'] = false; $userData['additional']['show_net'] = false; Shopware()->Session()->sOutputNet = true; } else { $userData['additional']['charge_vat'] = true; $userData['additional']['show_net'] = !empty($system->sUSERGROUPDATA['tax']); Shopware()->Session()->sOutputNet = empty($system->sUSERGROUPDATA['tax']); } } return $userData; }
/** * Get complete user-data as an array to use in view * * @return array */ public function getUserData() { $userData = $this->admin->sGetUserData(); if (!empty($userData['additional']['countryShipping'])) { $sTaxFree = false; if (!empty($userData['additional']['countryShipping']['taxfree'])) { $sTaxFree = true; } elseif ( !empty($userData['additional']['countryShipping']['taxfree_ustid']) && !empty($userData['billingaddress']['ustid']) && $userData['additional']['country']['id'] == $userData['additional']['countryShipping']['id'] ) { $sTaxFree = true; } if (!empty($sTaxFree)) { Shopware()->System()->sUSERGROUPDATA['tax'] = 0; Shopware()->System()->sCONFIG['sARTICLESOUTPUTNETTO'] = 1; //Old template Shopware()->Session()->sUserGroupData = Shopware()->System()->sUSERGROUPDATA; $userData['additional']['charge_vat'] = false; $userData['additional']['show_net'] = false; Shopware()->Session()->sOutputNet = true; } else { $userData['additional']['charge_vat'] = true; $userData['additional']['show_net'] = !empty(Shopware()->System()->sUSERGROUPDATA['tax']); Shopware()->Session()->sOutputNet = empty(Shopware()->System()->sUSERGROUPDATA['tax']); } } return $userData; }
/** * Save shipping action * * Save shipping address data */ public function savePaymentAction() { if($this->Request()->isPost()) { $values = $this->Request()->getPost('register'); $this->admin->sSYSTEM->_POST['sPayment'] = $values['payment']; $checkData = $this->admin->sValidateStep3(); if (!empty($checkData['checkPayment']['sErrorMessages']) || empty($checkData['sProcessed'])) { $this->View()->sErrorFlag = $checkData['checkPayment']['sErrorFlag']; $this->View()->sErrorMessages = $checkData['checkPayment']['sErrorMessages']; return $this->forward('payment'); } else { $previousPayment = $this->admin->sGetUserData(); $previousPayment = $previousPayment['additional']['user']['paymentID']; $previousPayment = $this->admin->sGetPaymentMeanById($previousPayment); if ($previousPayment['paymentTable']){ $deleteSQL = 'DELETE FROM '.$previousPayment['paymentTable'].' WHERE userID=?'; Shopware()->Db()->query($deleteSQL, array(Shopware()->Session()->sUserId)); } $this->admin->sUpdatePayment(); if (method_exists($checkData['sPaymentObject'],'sUpdate')){ $checkData['sPaymentObject']->sUpdate(); } } } if(!$target = $this->Request()->getParam('sTarget')) { $target = 'account'; } $this->redirect(array('controller'=>$target, 'action'=>'index', 'success'=>'payment')); }
/** * @covers sAdmin::sManageRisks * @covers sAdmin::sRiskORDERVALUELESS * @covers sAdmin::sRiskORDERVALUEMORE * @covers sAdmin::sRiskCUSTOMERGROUPIS * @covers sAdmin::sRiskCUSTOMERGROUPISNOT * @covers sAdmin::sRiskZIPCODE * @covers sAdmin::sRiskZONEIS * @covers sAdmin::sRiskZONEISNOT * @covers sAdmin::sRiskLANDIS * @covers sAdmin::sRiskLANDISNOT * @covers sAdmin::sRiskNEWCUSTOMER * @covers sAdmin::sRiskORDERPOSITIONSMORE * @covers sAdmin::sRiskATTRIS * @covers sAdmin::sRiskATTRISNOT * @covers sAdmin::sRiskINKASSO * @covers sAdmin::sRiskLASTORDERLESS * @covers sAdmin::sRiskARTICLESFROM * @covers sAdmin::sRiskLASTORDERSLESS * @covers sAdmin::sRiskPREGSTREET * @covers sAdmin::sRiskDIFFER * @covers sAdmin::sRiskCUSTOMERNR * @covers sAdmin::sRiskLASTNAME * @covers sAdmin::sRiskSUBSHOP * @covers sAdmin::sRiskSUBSHOPNOT * @covers sAdmin::sRiskCURRENCIESISOIS * @covers sAdmin::sRiskCURRENCIESISOISNOT */ public function testsManageRisks() { $customer = $this->createDummyCustomer(); $this->session->offsetSet('sUserId', $customer->getId()); $basket = array('content' => 1, 'AmountNumeric' => 10); $user = $this->module->sGetUserData(); // Inject demo data $orderData = array('ordernumber' => uniqid(), 'userID' => $customer->getId(), 'invoice_amount' => '37.99', 'invoice_amount_net' => '31.92', 'invoice_shipping' => '0', 'invoice_shipping_net' => '0', 'ordertime' => new DateTime(), 'status' => '0', 'cleared' => '17', 'paymentID' => '4', 'transactionID' => '', 'comment' => '', 'customercomment' => '', 'internalcomment' => '', 'net' => '0', 'taxfree' => '0', 'partnerID' => '', 'temporaryID' => '', 'referer' => '', 'cleareddate' => NULL, 'cleared' => 16, 'trackingcode' => '', 'language' => '2', 'dispatchID' => '9', 'currency' => 'EUR', 'currencyFactor' => '1', 'subshopID' => '1', 'remote_addr' => '127.0.0.1'); Shopware()->Db()->insert('s_order', $orderData); $orderId = Shopware()->Db()->lastInsertId(); // No rules, returns false $this->assertFalse($this->module->sManageRisks(2, $basket, $user)); // Test all rules // sRiskORDERVALUELESS Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'ORDERVALUELESS', 'value1' => 20)); $firstTestRuleId = Shopware()->Db()->lastInsertId(); $this->assertTrue($this->module->sManageRisks(2, $basket, $user)); // sRiskORDERVALUEMORE Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'ORDERVALUEMORE', 'value1' => 20)); // Test 'OR' logic between different rules (only one needs to be true) $this->assertTrue($this->module->sManageRisks(2, $basket, $user)); // Deleting the first rule, only a false one is left Shopware()->Db()->delete('s_core_rulesets', 'id = ' . $firstTestRuleId); $this->assertFalse($this->module->sManageRisks(2, $basket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskCUSTOMERGROUPIS // sRiskCUSTOMERGROUPISNOT Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'CUSTOMERGROUPIS', 'value1' => 'EK', 'rule2' => 'CUSTOMERGROUPISNOT', 'value2' => 'EK')); // Test 'AND' logic between the two parts of the same rule (both need to be true) $this->assertFalse($this->module->sManageRisks(2, $basket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskZIPCODE Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'ZIPCODE', 'value1' => '12345')); $this->assertTrue($this->module->sManageRisks(2, $basket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskZONEIS Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'ZONEIS', 'value1' => '12345')); $this->assertFalse($this->module->sManageRisks(2, $basket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskZONEISNOT Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'ZONEISNOT', 'value1' => '12345')); $this->assertTrue($this->module->sManageRisks(2, $basket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskLANDIS // sRiskLANDISNOT Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'LANDIS', 'value1' => 'DE', 'rule2' => 'LANDISNOT', 'value2' => 'UK')); $this->assertTrue($this->module->sManageRisks(2, $basket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskNEWCUSTOMER Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'NEWCUSTOMER')); $this->assertTrue($this->module->sManageRisks(2, $basket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskORDERPOSITIONSMORE Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'ORDERPOSITIONSMORE', 'value1' => '2')); $this->assertFalse($this->module->sManageRisks(2, $basket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); $this->module->sSYSTEM->sSESSION_ID = uniqid(); $this->session->offsetSet('sessionId', $this->module->sSYSTEM->sSESSION_ID); $this->basketModule->sAddArticle('SW10118.8'); // sRiskATTRIS Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'ATTRIS', 'value1' => '1|0')); $fullBasket = $this->basketModule->sGetBasket(); $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); $this->basketModule->sAddArticle('SW10118.8'); // sRiskATTRISNOT Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'ATTRISNOT', 'value1' => '17|null')); $this->assertFalse($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskINKASSO Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'INKASSO')); $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskLASTORDERLESS Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'LASTORDERLESS', 'value1' => '1')); $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskARTICLESFROM Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'ARTICLESFROM', 'value1' => '1')); $this->assertFalse($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskARTICLESFROM Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'ARTICLESFROM', 'value1' => '9')); $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskLASTORDERSLESS Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'LASTORDERSLESS', 'value1' => '9')); $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskLASTORDERSLESS Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'LASTORDERSLESS', 'value1' => '0')); $this->assertFalse($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskPREGSTREET Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'PREGSTREET', 'value1' => 'Merkel')); $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskPREGSTREET Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'PREGSTREET', 'value1' => 'Google')); $this->assertFalse($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskDIFFER Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'DIFFER')); $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskCUSTOMERNR Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'CUSTOMERNR', 'value1' => $customer->getBilling()->getNumber())); $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskCUSTOMERNR Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'CUSTOMERNR', 'value1' => 'ThisIsNeverGoingToBeACustomerNumber')); $this->assertFalse($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskLASTNAME Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'LASTNAME', 'value1' => 'Mustermann')); $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskLASTNAME Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'LASTNAME', 'value1' => 'NotMustermann')); $this->assertFalse($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskSUBSHOP Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'SUBSHOP', 'value1' => '1')); $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskSUBSHOP Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'SUBSHOP', 'value1' => '2')); $this->assertFalse($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskSUBSHOPNOT Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'SUBSHOPNOT', 'value1' => '2')); $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskSUBSHOPNOT Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'SUBSHOPNOT', 'value1' => '1')); $this->assertFalse($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskCURRENCIESISOIS Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'CURRENCIESISOIS', 'value1' => 'eur')); $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskCURRENCIESISOIS Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'CURRENCIESISOIS', 'value1' => 'yen')); $this->assertFalse($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskCURRENCIESISOISNOT Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'CURRENCIESISOISNOT', 'value1' => 'eur')); $this->assertFalse($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); // sRiskCURRENCIESISOISNOT Shopware()->Db()->insert('s_core_rulesets', array('paymentID' => 2, 'rule1' => 'CURRENCIESISOISNOT', 'value1' => 'yen')); $this->assertTrue($this->module->sManageRisks(2, $fullBasket, $user)); Shopware()->Db()->delete('s_core_rulesets', 'id >= ' . $firstTestRuleId); Shopware()->Db()->delete('s_order', 'id = ' . $orderId); $this->deleteDummyCustomer($customer); }