/** * Insert a new chart * * @param array $args */ function erp_ac_insert_chart($args = array()) { global $wpdb; $defaults = array('id' => null, 'name' => '', 'type_id' => '', 'active' => 1, 'parent' => 0, 'system' => 0); $args = wp_parse_args($args, $defaults); $table_name = $wpdb->prefix . 'erp_ac_ledger'; // some basic validation if (empty($args['name'])) { return new WP_Error('no-name', __('No Name provided.', 'erp-accounting')); } // remove row id to determine if new or update $row_id = (int) $args['id']; unset($args['id']); if (!$row_id) { $ledger = WeDevs\ERP\Accounting\Model\Ledger::create($args); if ($ledger->id) { return $ledger->id; } } else { // don't allow to change account type unset($args['type_id']); // do update method here if ($wpdb->update($table_name, $args, array('id' => $row_id))) { return $row_id; } } return false; }