function save_groups($post_data, $parent, $key = '') { $groups = array(); $group_count = count($post_data[$key . 'group_number']); $j = 0; for ($i = 0; $i < $group_count; ++$i) { if ($post_data[$key . 'deleted'][$i] == 1) { $this->mark_deleted($post_data[$key . 'id'][$i]); } else { $product_quote_group = new AOS_Line_Item_Groups(); foreach ($this->field_defs as $field_def) { if (isset($post_data[$key . $field_def['name']][$i])) { $product_quote_group->{$field_def}['name'] = $post_data[$key . $field_def['name']][$i]; } } $product_quote_group->number = ++$j; $product_quote_group->assigned_user_id = $parent->assigned_user_id; $product_quote_group->currency_id = $parent->currency_id; $product_quote_group->parent_id = $parent->id; $product_quote_group->parent_type = $parent->object_name; $product_quote_group->save(); if (isset($post_data[$key . 'group_number'][$i])) { $groups[$post_data[$key . 'group_number'][$i]] = $product_quote_group->id; } } } require_once 'modules/AOS_Products_Quotes/AOS_Products_Quotes.php'; $productQuote = new AOS_Products_Quotes(); $productQuote->save_lines($post_data, $parent, $groups, 'product_'); $productQuote->save_lines($post_data, $parent, $groups, 'service_'); }
public function testsave_lines() { error_reporting(E_ERROR | E_PARSE); $aosProductsQuotes = new AOS_Products_Quotes(); //populate required values $post_data = array(); $post_data['name'] = array('test1', 'test2'); $post_data['group_number'] = array('1', '2'); $post_data['product_id'] = array('1', '1'); $post_data['product_unit_price'] = array(100, 200); //create parent bean $aosQuote = new AOS_Quotes(); $aosQuote->id = 1; $aosProductsQuotes->save_lines($post_data, $aosQuote); //get the linked beans and verify if records created $product_quote_lines = $aosQuote->get_linked_beans('aos_products_quotes', $aosQuote->object_name); $this->assertEquals(count($post_data['name']), count($product_quote_lines)); }