-1

This is my function Add in Payment Controller. It writes to Payments table, reads from Agreements but do not update Agreements. Why?

    public function add( $agreement_id = null ) {

    if ($this->request->is('post')) {
        $this->Payment->create();

        if ($this->Payment->save($this->request->data)) {                               
           $my_agreement = $this->Agreement->read(null, $agreement_id);
           $my_agreement['Agreement']['payment']=
                   $my_agreement['Agreement']['payment']+
                   $this->request->data['Payment']['payment_volume'];
           $my_agreement['Agreement']['charge']=
                   $my_agreement['Price']['total_price']-
                   $my_agreement['Agreement']['payment'];

          $data = array(  'id' => $agreement_id,
                'Agreement.payment' => $my_agreement['Agreement']['payment'],
                'Agreement.charge' => $my_agreement['Agreement']['charge']
           );

               $this->Agreement->save($data);
        return $this->redirect(array('action' => 'index'));
        } 
    }
    $agreements = $this->Payment->Agreement->find('list'); 
    $this->set('agreement_id', $agreement_id); 
    $this->set(compact('agreements'));
}
tomas3man
  • 29
  • 7

1 Answers1

0

Instead of

$data = array(  'id' => $agreement_id,
                'Agreement.payment' => $my_agreement['Agreement']['payment'],
                'Agreement.charge' => $my_agreement['Agreement']['charge']
           );

it should be

$data = array(  'id' => $agreement_id,
                'payment' => $my_agreement['Agreement']['payment'],
                'charge' => $my_agreement['Agreement']['charge']
           );

or

$data = array('Agreement' => array('id' => $agreement_id,
                'payment' => $my_agreement['Agreement']['payment'],
                'charge' => $my_agreement['Agreement']['charge']
           ));
ADmad
  • 8,102
  • 16
  • 18
  • @nunser - this was problem with validation. echo debug help me find out that one filed was empty, it makes validation nonEmpty error. Thank you. – tomas3man Jul 30 '14 at 12:16