public function doSave($con = null) { // Redefinimos el metodo crear de la compra. // Al crear una compra automaticamente generamos el estado inicial. if ($this->isNew()) { $formu_compra = parent::doSave($con); // Objeto compra recien agregado $objCompra = $this->getObject(); // Nuevo objeto de estado de compra CompraEstado $compraEstado = new CompraEstado(); // singleton $singleton = sfContext::getInstance(); $compraEstado->setCompraId($objCompra->getId()); $compraEstado->setEstadoId(1); // <- Estado de compra inmediata $compraEstado->setCantidad($objCompra->getCantidad()); $compraEstado->setFecha($objCompra->getFecha()); $compraEstado->setUserId($singleton->getUser()->getGuardUser()->getId()); $compraEstado->setObservaciones('Carga inicial.'); $compraEstado->setNotaRecepcionId(null); // Grabamos estado $compraEstado->save(); return $formu_compra; } else { return parent::doSave($con); } }
protected function processForm(sfWebRequest $request, sfForm $form) { $form->bind($request->getParameter($form->getName()), $request->getFiles($form->getName())); if ($form->isValid()) { $this->getUser()->setFlash('notice-compra-edit', $form->getObject()->isNew() ? 'The item was created successfully.' : 'The item was updated successfully.'); $compra = $form->save(); // <- Objeto $compra recien agregado if ($this->getRequest()->hasParameter('compra[is4]') and $this->getRequest()->getParameter('compra[is4]') == 'producto') { $this->getUser()->getAttributeHolder()->remove('compra_directa'); $compraEstado = new CompraEstado(); $compraEstado->setCompraId($compra->getId()); $compraEstado->setEstadoId(7); // <- Estado de compra inmediata $compraEstado->setCantidad($compra->getCantidad()); $compraEstado->setFecha($compra->getFecha()); $compraEstado->setUserId($this->getUser()->getGuardUser()->getId()); $compraEstado->setObservaciones('Compra directa concluida.'); $compraEstado->setNotaRecepcionId(null); $compraEstado->save(); } $this->dispatcher->notify(new sfEvent($this, 'admin.save_object', array('object' => $compra))); if ($request->hasParameter('_save_and_add')) { $this->getUser()->setFlash('notice', $this->getUser()->getFlash('notice') . ' You can add another one below.'); // Modificamos comportamiento si es AJAX if ($this->getRequest()->isXmlHttpRequest()) { $this->redirect('compra/newWin'); } else { $this->redirect('@compra_new'); } } else { // Modificamos comportamiento si es AJAX if ($this->getRequest()->isXmlHttpRequest()) { $this->redirect('compra/editWinContent?id=' . $compra->getId()); } else { $this->redirect('@compra_edit?id=' . $compra->getId()); } } } else { $this->getUser()->setFlash('error-compra-edit', 'The item has not been saved due to some errors.'); } }