public static function create_estimate($passed_args, $status = '')
 {
     $defaults = array('subject' => sprintf(__('New Estimate: %s', 'sprout-invoices'), date_i18n(get_option('date_format') . ' @ ' . get_option('time_format'), current_time('timestamp'))), 'user_id' => '', 'estimate_id' => '', 'invoice_id' => '', 'client_id' => '', 'project_id' => '', 'status' => $status ? $status : self::STATUS_REQUEST, 'total' => (double) 0, 'currency' => '', 'po_number' => '', 'discount' => '', 'tax' => (double) 0, 'tax2' => (double) 0, 'notes' => SI_Estimates_Edit::get_default_notes(), 'terms' => SI_Estimates_Edit::get_default_terms(), 'issue_date' => time(), 'expiration_date' => 0, 'line_items' => array(), 'fields' => array());
     $args = wp_parse_args($passed_args, $defaults);
     $id = wp_insert_post(array('post_status' => $args['status'], 'post_type' => self::POST_TYPE, 'post_title' => $args['subject']));
     if (is_wp_error($id)) {
         return 0;
     }
     $estimate = self::get_instance($id);
     if (isset($args['fields'])) {
         $estimate->set_submission_fields($args['fields']);
     }
     // Set the submitted user id if logged in.
     if (is_user_logged_in()) {
         $estimate->set_user_id(get_current_user_id());
     }
     $estimate->set_user_id($args['user_id']);
     $estimate->set_estimate_id($args['estimate_id']);
     $estimate->set_client_id($args['client_id']);
     $estimate->set_project_id($args['project_id']);
     $estimate->set_status($args['status']);
     $estimate->set_total($args['total']);
     $estimate->set_currency($args['currency']);
     $estimate->set_po_number($args['po_number']);
     $estimate->set_discount($args['discount']);
     $estimate->set_tax($args['tax']);
     $estimate->set_tax2($args['tax2']);
     $estimate->set_notes($args['notes']);
     $estimate->set_terms($args['terms']);
     $issue_date = is_numeric($args['issue_date']) ? $args['issue_date'] : strtotime($args['issue_date']);
     $estimate->set_issue_date($issue_date);
     $expiration_date = is_numeric($args['expiration_date']) ? $args['expiration_date'] : strtotime($args['expiration_date']);
     $estimate->set_expiration_date($expiration_date);
     $estimate->set_line_items($args['line_items']);
     do_action('sa_new_estimate', $estimate, $args);
     return $id;
 }