make a prefix to the copied cart rule ('copy of XXX') and properly save related channels and customer groups after replication
This commit is contained in:
parent
bac17a08fb
commit
6ee005dda0
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
return array (
|
||||
'save' => 'Speichern',
|
||||
'copy-of' => 'Kopie von',
|
||||
'create' => 'Erstellen',
|
||||
'update' => 'Update',
|
||||
'delete' => 'Löschen',
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
return [
|
||||
'save' => 'Save',
|
||||
'copy-of' => 'Copy of',
|
||||
'create' => 'Create',
|
||||
'update' => 'Update',
|
||||
'delete' => 'Delete',
|
||||
|
|
|
|||
|
|
@ -85,10 +85,21 @@ class CartRuleController extends Controller
|
|||
|
||||
$copiedCartRule = $originalCartRule
|
||||
->replicate()
|
||||
->fill(['status' => 0]);
|
||||
->fill([
|
||||
'status' => 0,
|
||||
'name' => __('admin::app.copy-of') . ' ' . $originalCartRule->name,
|
||||
]);
|
||||
|
||||
$copiedCartRule->save();
|
||||
|
||||
foreach($copiedCartRule->channels as $channel) {
|
||||
$copiedCartRule->channels()->save($channel);
|
||||
}
|
||||
|
||||
foreach($copiedCartRule->customer_groups as $group) {
|
||||
$copiedCartRule->customer_groups()->save($group);
|
||||
}
|
||||
|
||||
return view($this->_config['view'], [
|
||||
'cartRule' => $copiedCartRule,
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
namespace Tests\Functional\CartRule;
|
||||
|
||||
use FunctionalTester;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use Webkul\CartRule\Models\CartRule;
|
||||
|
||||
class CartRuleCopyCest
|
||||
|
|
@ -16,19 +17,44 @@ class CartRuleCopyCest
|
|||
'status' => 1,
|
||||
]);
|
||||
|
||||
$count = count(cartRule::all());
|
||||
DB::table('cart_rule_channels')->insert([
|
||||
'cart_rule_id' => $original->id,
|
||||
'channel_id' => 1,
|
||||
]);
|
||||
|
||||
DB::table('cart_rule_customer_groups')->insert([
|
||||
'cart_rule_id' => $original->id,
|
||||
'customer_group_id' => 1,
|
||||
]);
|
||||
|
||||
$count = count(CartRule::all());
|
||||
|
||||
$I->amOnAdminRoute('admin.cart-rules.copy', ['id' => $original->id]);
|
||||
|
||||
$I->seeRecord(CartRule::class, [
|
||||
'id' => $original->id + 1,
|
||||
'status' => 0,
|
||||
'name' => $original->name,
|
||||
'name' => 'Copy of ' . $original->name,
|
||||
]);
|
||||
|
||||
$I->assertCount($count + 1, CartRule::all());
|
||||
|
||||
$I->assertEquals(
|
||||
DB::table('cart_rule_channels')
|
||||
->pluck('cart_rule_id', 'channel_id')
|
||||
->toArray(),
|
||||
[1 => $original->id + 1]
|
||||
);
|
||||
|
||||
$I->assertEquals(
|
||||
DB::table('cart_rule_customer_groups')
|
||||
->pluck('cart_rule_id', 'customer_group_id')
|
||||
->toArray(),
|
||||
[1 => $original->id + 1]
|
||||
);
|
||||
|
||||
$I->seeResponseCodeIsSuccessful();
|
||||
|
||||
$I->seeCurrentRouteIs('admin.cart-rules.copy');
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue