Index: branches/5.1.x/admin_templates/products/products_pricing_grid.tpl
===================================================================
diff -u -r13946 -r14114
--- branches/5.1.x/admin_templates/products/products_pricing_grid.tpl (.../products_pricing_grid.tpl) (revision 13946)
+++ branches/5.1.x/admin_templates/products/products_pricing_grid.tpl (.../products_pricing_grid.tpl) (revision 14114)
@@ -99,5 +99,13 @@
+
+
\ No newline at end of file
Index: branches/5.1.x/units/pricing/pricing_event_handler.php
===================================================================
diff -u -r13809 -r14114
--- branches/5.1.x/units/pricing/pricing_event_handler.php (.../pricing_event_handler.php) (revision 13809)
+++ branches/5.1.x/units/pricing/pricing_event_handler.php (.../pricing_event_handler.php) (revision 14114)
@@ -1,6 +1,6 @@
Array('subitem' => 'add|edit'),
- 'OnInfinity' => Array('subitem' => 'add|edit'),
- 'OnArrange' => Array('subitem' => 'add|edit'),
+ 'OnMoreBrackets' => Array('subitem' => 'add|edit'),
+ 'OnInfinity' => Array('subitem' => 'add|edit'),
+ 'OnArrange' => Array('subitem' => 'add|edit'),
+ 'OnDeleteBrackets' => Array('subitem' => 'add|edit'),
);
$this->permMapping = array_merge($this->permMapping, $permissions);
}
function mapEvents()
{
parent::mapEvents(); // ensure auto-adding of approve/decine and so on events
- $brackets_events = Array( 'OnMoreBrackets' => 'PricingBracketsAction',
- 'OnArrange' => 'PricingBracketsAction',
- 'OnInfinity' => 'PricingBracketsAction');
+ $brackets_events = Array(
+ 'OnMoreBrackets' => 'PricingBracketsAction',
+ 'OnArrange' => 'PricingBracketsAction',
+ 'OnInfinity' => 'PricingBracketsAction',
+ 'OnDeleteBrackets' => 'PricingBracketsAction',
+ );
$this->eventMethods = array_merge($this->eventMethods, $brackets_events);
}
@@ -98,8 +102,6 @@
$temp[$i]['Negotiated'] = '0';
$temp[$i]['IsPrimary'] = '0';
$temp[$i]['GroupId'] = $group_id;
-
-
}
$this->Application->SetVar($event->getPrefixSpecial(true), $temp);
@@ -150,50 +152,57 @@
$this->Application->SetVar($event->getPrefixSpecial(true), $temp);
$event->CallSubEvent('OnPreSaveBrackets');
break;
+
+ case 'OnDeleteBrackets':
+ if ($group_id) {
+ $temp = ''; // delete all pricings from "pr_tang" var
+
+ $sql = 'DELETE FROM ' . $bracket->TableName . '
+ WHERE ProductId = ' . $this->Application->GetVar('p_id') . ' AND GroupId = ' . $group_id;
+ $this->Conn->Query($sql);
+ }
+ break;
default:
}
- $this->Application->SetVar($event->getPrefixSpecial(true), $temp);
+ $this->Application->SetVar($event->getPrefixSpecial(true), $temp); // store pr_tang var
}
function OnPreSaveBrackets(&$event)
{
- if( $this->Application->GetVar('pr_tang'))
- {
+ if( $this->Application->GetVar('pr_tang') ) {
+
$object =& $event->GetObject();
+ /* @var $object kDBItem */
+ $product_id = $this->Application->GetVar('p_id');
$group_id = $this->Application->getVar('group_id');
- if($group_id>0){
- $where_group=' AND GroupId = '.$group_id.' ';
- }
- $stored_ids = $this->Conn->GetCol("SELECT PriceId FROM ".$object->TableName." WHERE ProductId=".$this->Application->GetVar("p_id").' '.$where_group);
-
- $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true));
-
-
+ $sql = 'SELECT PriceId
+ FROM ' . $object->TableName . '
+ WHERE ProductId = ' . $product_id . ' ' . ($group_id? 'AND GroupId = ' . $group_id : '');
+ $stored_ids = $this->Conn->GetCol($sql);
+
+ $items_info = $this->Application->GetVar( $event->getPrefixSpecial(true) ); // get pr_tang var
uasort($items_info, 'pr_bracket_comp');
+
+ foreach ($items_info as $item_id => $values) {
-
- foreach ($items_info as $item_id=>$values)
- {
-
if (in_array($item_id, $stored_ids)) { //if it's already exist
$object->SetDefaultValues();
$object->Load($item_id);
$object->SetFieldsFromHash($values);
+
if (!$object->Validate()) {
unset($stored_ids[array_search($item_id, $stored_ids)]);
$event->redirect = false;
continue;
}
- if( $object->Update($item_id) )
- {
+ if( $object->Update($item_id) ) {
$event->status=erSUCCESS;
}
- else
- {
+ else {
$event->status=erFAIL;
$event->redirect=false;
break;
@@ -203,18 +212,17 @@
else {
$object->SetDefaultValues();
$object->SetFieldsFromHash($values);
- $object->SetDBField('ProductId', $this->Application->GetVar("p_id"));
+ $object->SetDBField('ProductId', $product_id);
- if( $object->Create() )
- {
+ if( $object->Create() ) {
$event->status=erSUCCESS;
}
}
}
// delete
- foreach ($stored_ids as $stored_id){
- $this->Conn->Query("DELETE FROM ".$object->TableName." WHERE PriceId=".$stored_id);
+ foreach ($stored_ids as $stored_id) {
+ $this->Conn->Query('DELETE FROM ' . $object->TableName . ' WHERE PriceId = ' . $stored_id);
}
}
Index: branches/5.1.x/install/english.lang
===================================================================
diff -u -r13769 -r14114
--- branches/5.1.x/install/english.lang (.../english.lang) (revision 13769)
+++ branches/5.1.x/install/english.lang (.../english.lang) (revision 14114)
@@ -532,6 +532,7 @@
bW9udGg=
UGF0YWNh
T3VndWl5YQ==
+ UGxlYXNlIGNvbmZpcm0geW91IHdhbnQgdG8gZGVsZXRlIHRoZSBQcmljaW5nIGZvciB0aGlzIFVzZXIgR3JvdXAuIENsaWNrIE9LIHRvIHByb2NlZWQgd2l0aCBkZWxldGlvbiwgb3IgY2xpY2sgQ2FuY2VsIHRvIGNhbmNlbCBpdC4=
TWFsdGVzZSBMaXJh
TWF1cml0aXVzIFJ1cGVl
UnVmaXlhYQ==
Index: branches/5.1.x/admin_templates/products/products_pricing.tpl
===================================================================
diff -u -r13893 -r14114
--- branches/5.1.x/admin_templates/products/products_pricing.tpl (.../products_pricing.tpl) (revision 13893)
+++ branches/5.1.x/admin_templates/products/products_pricing.tpl (.../products_pricing.tpl) (revision 14114)
@@ -122,7 +122,16 @@
}
a_toolbar.AddButton( new ToolBarButton('in-commerce:arrange', '', arrange_brackets) );
-
+ function delete_brackets()
+ {
+ if (confirm('')) {
+ set_hidden_field('group_id', get_hidden_field('current_group_id'));
+ set_hidden_field('item_prefix', $BracketManager.ActivePrefix);
+ $BracketManager.submit_event('pr.tang', 'OnDeleteBrackets', 'in-commerce/products/products_pricing_grid', true);
+ }
+ }
+ a_toolbar.AddButton( new ToolBarButton('delete', '::', delete_brackets) );
+
function edit(){ }
a_toolbar.Render();
@@ -140,6 +149,9 @@
a_toolbar.DisableButton('prev');
+
+ a_toolbar.DisableButton('delete');
+