Обновление одной таблицы с использованием другой записи таблицы - PullRequest
0 голосов
/ 16 октября 2019

У меня есть две следующие таблицы, к которым присоединился budget_id.

таблица finance_budget

+-----------+--------+------------+-----------------+---------------+
| budget_id | amount |    date    | transfer_status | budget_status |
+-----------+--------+------------+-----------------+---------------+
|         1 | 135000 | 2019-10-01 | Pending         | issue         |
|         2 |  25000 | 2019-10-02 | Pending         | issue         |
|         3 | 234000 | 2019-10-03 | Pending         | issue         |
|         4 | 175000 | 2019-10-03 | Pending         | issue         |
+-----------+--------+------------+-----------------+---------------+

таблица finance_budget_issue

+----+-----------+-----------+--------+-----------------+---------------+
| id | budget_id | office_id | amount | transfer_status | budget_status |
+----+-----------+-----------+--------+-----------------+---------------+
|  1 |         1 |       100 | 135000 | Pending         | issue         |
|  2 |         2 |       101 |  12500 | Pending         | issue         |
|  3 |         2 |       102 |  12500 | Pending         | issue         |
|  4 |         3 |       100 | 100000 | Pending         | issue         |
|  5 |         3 |       105 |  75000 | Pending         | issue         |
|  6 |         3 |       104 |  59000 | Pending         | issue         |
|  7 |         4 |       102 | 125000 | Pending         | issue         |
|  8 |         4 |       110 |  50000 | Pending         | issue         |
+----+-----------+-----------+--------+-----------------+---------------+

Я пытался изменить " Transfer_status"выше двух таблиц от" Ожидание"до" Утверждено"с использованием моей модели

Контроллер

public function approveIssues($id){
        $this->checkPermissions('index', 'pendingIssues');
        if(empty($id)){
            redirect('budget/pendingIssue');
        }

        if($this->Budget_model->approveIssues($id)){
            $this->session->set_flashdata('message', 'Allocation Approved successfully ..!!');
            redirect('budget/pendingIssue');
        }else{
            $this->session->set_flashdata('error', 'Error ...!!!');
            redirect('budget/pendingIssue');
        }
    }

Модель

function approveIssues($id)
    {

        $this->db->update('finance_budget_issue', array('transfer_status'=>'Approved'), array('id' => $id));
        $this->db->update('finance_budget', array('transfer_status'=>'Approved'), array('budget_id' => $id));

        if ($this->db->affected_rows()) {

            $activity=FZ_Controller::activity('approve','finance_budget_issues',$id,NULL);
            $this->db->insert('finance_user_activity',$activity);


            return true;
        }
        return false;
    }

Когда я нажимаю кнопку Утверждено, на моем экране отображается сообщение «Ошибка». Если я удаляю строку, $this->db->update('finance_budget', array('transfer_status'=>'Approved'), array('budget_id' => $id)); в моей модели операция успешно выполняется и показывает " Распределение подтверждено успешно .. !! "Сообщение.

Требуемый вывод

Мне также нужно, чтобы таблица Transfer_status of finance_budget была в" Approved ".

1 Ответ

0 голосов
/ 16 октября 2019

Вы можете попробовать это Model Код

function approveIssues($id) {

    $this->db->set('finance_budget.transfer_status','Approved');
    $this->db->set('finance_budget_issue.transfer_status','Approved');

    $this->db->where('finance_budget.budget_id', $id);
    $this->db->where('finance_budget_issue.id', $id);

    $this->db->update('finance_budget JOIN finance_budget_issue ON finance_budget.budget_id = finance_budget_issue.id');    

    if ($this->db->affected_rows()) {

        $activity=FZ_Controller::activity('approve','finance_budget_issues',$id,NULL);
        $this->db->insert('finance_user_activity',$activity);


        return true;
    }

    return false;
}

Я думаю, это очень полезно для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...