function populate(int $contract_id, &$contract) { if ($contract == null) { $contract_id = (int) $contract_id; $contract = new rental_contract($contract_id); $contract->set_contract_date(new rental_contract_date($this->unmarshal($this->db->f('date_start'), 'int'), $this->unmarshal($this->db->f('date_end'), 'int'))); $contract->set_billing_start_date($this->unmarshal($this->db->f('billing_start'), 'int')); $contract->set_billing_end_date($this->unmarshal($this->db->f('billing_end'), 'int')); $contract->set_old_contract_id($this->unmarshal($this->db->f('old_contract_id'), 'string')); $contract->set_contract_type_title($this->unmarshal($this->db->f('title'), 'string')); $contract->set_comment($this->unmarshal($this->db->f('comment'), 'string')); $contract->set_last_edited_by_current_user($this->unmarshal($this->db->f('edited_on'), 'int')); $contract->set_location_id($this->unmarshal($this->db->f('location_id'), 'int')); $contract->set_last_updated($this->unmarshal($this->db->f('last_updated'), 'int')); $contract->set_service_id($this->unmarshal($this->db->f('service_id'), 'string')); $contract->set_responsibility_id($this->unmarshal($this->db->f('responsibility_id'), 'string')); $contract->set_reference($this->unmarshal($this->db->f('reference'), 'string')); $contract->set_invoice_header($this->unmarshal($this->db->f('invoice_header'), 'string')); $contract->set_account_in($this->unmarshal($this->db->f('account_in'), 'string')); $contract->set_account_out($this->unmarshal($this->db->f('account_out'), 'string')); $contract->set_project_id($this->unmarshal($this->db->f('project_id'), 'string')); $contract->set_executive_officer_id($this->unmarshal($this->db->f('executive_officer'), 'int')); $contract->set_term_id($this->unmarshal($this->db->f('term_id'), 'int')); $contract->set_term_id_title($this->unmarshal($this->db->f('term_title'), 'string')); $contract->set_security_type($this->unmarshal($this->db->f('security_type'), 'int')); $contract->set_security_amount($this->unmarshal($this->db->f('security_amount'), 'string')); $contract->set_due_date($this->unmarshal($this->db->f('due_date'), 'int')); $contract->set_contract_type_id($this->unmarshal($this->db->f('contract_type_id'), int)); $contract->set_rented_area($this->unmarshal($this->db->f('rented_area'), 'float')); $contract->set_adjustable($this->unmarshal($this->db->f('adjustable'), 'bool')); $contract->set_adjustment_interval($this->unmarshal($this->db->f('adjustment_interval'), 'int')); $contract->set_adjustment_share($this->unmarshal($this->db->f('adjustment_share'), 'int')); $contract->set_adjustment_year($this->unmarshal($this->db->f('adjustment_year'), 'int')); $contract->set_publish_comment($this->unmarshal($this->db->f('publish_comment'), 'bool')); $contract->set_notify_before($this->unmarshal($this->db->f('notify_before'), 'int')); $contract->set_notify_before_due_date($this->unmarshal($this->db->f('notify_before_due_date'), 'int')); $contract->set_notify_after_termination_date($this->unmarshal($this->db->f('notify_after_termination_date'), 'int')); } $timestamp_end = $this->unmarshal($this->db->f('timestamp_end'), 'int'); $billing_deleted = $this->unmarshal($this->db->f('deleted'), 'bool'); if ($timestamp_end && !$billing_deleted) { $contract->add_bill_timestamp($timestamp_end); } $total_price = $this->unmarshal($this->db->f('total_price'), 'int'); if ($total_price) { $contract->set_total_price($total_price); } $party_id = $this->unmarshal($this->db->f('party_id', true), 'int'); if ($party_id) { $party = new rental_party($party_id); $party->set_first_name($this->unmarshal($this->db->f('first_name', true), 'string')); $party->set_last_name($this->unmarshal($this->db->f('last_name', true), 'string')); $party->set_company_name($this->unmarshal($this->db->f('company_name', true), 'string')); $party->set_department($this->unmarshal($this->db->f('department', true), 'string')); $party->set_org_enhet_id($this->unmarshal($this->db->f('org_enhet_id'), 'int')); $is_payer = $this->unmarshal($this->db->f('is_payer', true), 'bool'); if ($is_payer) { $contract->set_payer_id($party_id); } $contract->add_party($party); } $composite_id = $this->unmarshal($this->db->f('composite_id', true), 'int'); if ($composite_id) { $composite = new rental_composite($composite_id); $composite->set_name($this->unmarshal($this->db->f('composite_name', true), 'string')); $contract->add_composite($composite); } return $contract; }