"Досохранение" записи

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
mess@nger
Сообщения: 54
Зарегистрирован: 2012.06.25, 14:32
Откуда: Житомир

"Досохранение" записи

Сообщение mess@nger »

День добрый, не могу понять где же я ошибся... Суть такова: есть документ, есть позиции к нему, основная часть документа сохраняется сразу, дальше мы перебираем принятый в посте массив и создаем позиции по документу, для удобства хочется в таблице документа хранить еще общую сумму и НДС, соответственно я их считаю при создании позиций. И вот не хотят они у меня дозаписываться. =((
Я в программировании не силен, так что ошибка может быть и простой.... но я ее не вижу =((((

Код: Выделить всё

            $model->attributes=$_POST['DOCUMENTS'];
            if($model->save())
            {
                $summ=0;
                $spdv=0;
                foreach($_POST['POSITIONS'] as $position)
                {
                    $posit=new DOCPOSIT;
                    if ($model->ORG_OWNER->PDV_PL==1)
                    {
                        if ($position[PDV]==1) 
                        {
                            $pdv=$position[COST]/6;
                            $cost=$position[COST]/6*5;
                        }
                        else
                        {
                            $pdv=$position[COST]/5;
                            $cost=$position[COST];
                        }
                        
                    }
                    else
                    {
                        $pdv=0;
                        $cost=$position[COST];
                    }
                    $summ=$summ+$cost*$position[COL];
                    $spdv=$pdv+$pdv*$position[COL];
                    $attributes=array('DOC_ID'=>$model->ID , 'NAME'=>$position[NOMENCLATURA], 'COST'=>$cost, 'PDV' => $pdv,
                    'ED' => $position[EDIN], 'COL' => $position[COL]);
                    $posit->attributes=$attributes;
                    $posit->save(false);        
                }
            $model->attributes=array('SUMM'=>$summ,'PDV'=>$spdv);
            $model->save();
            } 
Аватара пользователя
futbolim
Сообщения: 2051
Зарегистрирован: 2012.07.08, 19:28

Re: "Досохранение" записи

Сообщение futbolim »

где каменты в коде ?
что пишет ?
mess@nger
Сообщения: 54
Зарегистрирован: 2012.06.25, 14:32
Откуда: Житомир

Re: "Досохранение" записи

Сообщение mess@nger »

Ничего не пишет =)) все работает только не сохраняет
сработало вот так

Код: Выделить всё

$model->saveAttributes(array('SUMM'=>$summ,'PDV'=>$spdv)); 
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: "Досохранение" записи

Сообщение slavcodev »

mess@nger писал(а):Ничего не пишет =)) все работает только не сохраняет
сработало вот так

Код: Выделить всё

$model->saveAttributes(array('SUMM'=>$summ,'PDV'=>$spdv)); 
предположу что на этом куске

Код: Выделить всё

$model->attributes=array('SUMM'=>$summ,'PDV'=>$spdv);
            $model->save();
скорее всего ошибка валидацией
чтоб избавить себя от бездарной траты времени
http://rmcreative.ru/blog/post/yii-vseg ... ave-modeli
Жду Yii 3!
mess@nger
Сообщения: 54
Зарегистрирован: 2012.06.25, 14:32
Откуда: Житомир

Re: "Досохранение" записи

Сообщение mess@nger »

да, на этом
так тоже делал, и тоже не сохранилось:

Код: Выделить всё

$model->save(false);
на валидацию не похоже
Аватара пользователя
Stamm
Сообщения: 407
Зарегистрирован: 2010.03.14, 18:59
Откуда: Россия, Москва
Контактная информация:

Re: "Досохранение" записи

Сообщение Stamm »

В модели есть beforeSave? Он должен возвращать true
Аватара пользователя
slavcodev
Сообщения: 3134
Зарегистрирован: 2009.04.02, 21:42
Откуда: Valencia
Контактная информация:

Re: "Досохранение" записи

Сообщение slavcodev »

так что там save() возвращает?
выведи $model->errors
Жду Yii 3!
Ответить