/** * Executes index action * * @param sfRequest $request A request object */ public function executeIndex(sfWebRequest $request) { $this->form = new IngresoInventarioForm(); if ($request->isMethod('POST')) { $this->form->bind($request->getParameter('ingreso_inventario')); if ($this->form->isValid()) { $valores = $this->form->getValues(); $BitacoraCambios = new BitacoraCambios(); $BitacoraCambios->setModelo('Inventario'); $Producto = ProductoQuery::create()->findOneById($valores['Producto']); $BitacoraCambios->setDescripcion('Ingreso de Inventario de Producto: ' . $Producto->getDescripcion() . ' con cantidad ' . $valores['Cantidad']); $BitacoraCambios->setIp($request->getRemoteAddress()); $Usuario = UsuarioQuery::create()->findOneById(sfContext::getInstance()->getUser()->getAttribute('usuario', null, 'seguridad')); if ($Usuario) { $BitacoraCambios->setCreatedBy($Usuario->getUsuario()); } $Movimiento = new Movimiento(); $Movimiento->setTipoMovimiento('+'); $Movimiento->setProveedorId($valores['Proveedor']); $Movimiento->setProductoId($Producto->getId()); $Movimiento->setCantidad($valores['Cantidad']); $Movimiento->setPrecio($valores['Precio']); $Movimiento->save(); $BitacoraCambios->save(); $Comprobacion = InventarioQuery::create()->filterByProductoId($valores['Producto'])->filterByProveedorId($valores['Proveedor'])->findOne(); if ($Comprobacion) { $Comprobacion->setCantidad($Comprobacion->getCantidad() + $valores['Cantidad']); $anterior = $Comprobacion->getCantidad() * $Comprobacion->getPrecioCompra(); $actual = $valores['Cantidad'] * $valores['Precio']; $suma = ($anterior + $actual) / ($valores['Cantidad'] + $Comprobacion->getCantidad()); $Comprobacion->setPrecioCompra($suma); $Comprobacion->save(); } else { $Inventario = new Inventario(); $Inventario->setPrecioCompra($valores['Precio']); $Inventario->setProductoId($valores['Producto']); $Inventario->setProveedorId($valores['Proveedor']); $Inventario->setCantidad($valores['Cantidad']); $Inventario->save(); } $this->redirect('inventario/index'); } } $this->cinco = InventarioQuery::create()->orderById('DESC')->limit(5)->find(); }
public function executeEntregado(sfWebRequest $request) { $id = $request->getParameter('id'); $BitacoraCambios = new BitacoraCambios(); $BitacoraCambios->setModelo('Pedido Proveedores'); $Usuario = UsuarioQuery::create()->findOneById(sfContext::getInstance()->getUser()->getAttribute('usuario', null, 'seguridad')); $BitacoraCambios->setDescripcion('Cambio de estado de Pedido a Proveedor a Entregado con id : ' . $id . ' el usuario ' . $Usuario->getNombre()); $BitacoraCambios->setIp($request->getRemoteAddress()); $pedido = PedidoProveedorQuery::create()->findOneById($id); $pedido->setEstado('Entregado'); $pedido->save(); $detalle_pedido = DetallePedidoProveedorQuery::create()->filterByPedidoProveedor($pedido)->find(); foreach ($detalle_pedido as $det) { $Comprobacion = InventarioQuery::create()->filterByProductoId($det->getProductoId())->filterByProveedorId($pedido->getProveedorId())->findOne(); if ($Comprobacion) { $Comprobacion->setCantidad($Comprobacion->getCantidad() + $det->getCantidad()); $anterior = $det->getCantidad() * $Comprobacion->getPrecioCompra(); $actual = $det->getCantidad() * $det->getPrecio(); $suma = ($anterior + $actual) / ($det->getCantidad() + $Comprobacion->getCantidad()); $Comprobacion->setPrecioCompra($suma); $Comprobacion->save(); } else { $Inventario = new Inventario(); $Inventario->setPrecioCompra($det->getPrecio()); $Inventario->setProductoId($det->getProductoId()); $Inventario->setProveedorId($pedido->getProveedorId()); $Inventario->setCantidad($det->getCantidad()); $Inventario->save(); } $Movimiento = new Movimiento(); $Movimiento->setTipoMovimiento('+'); $Movimiento->setProveedorId($pedido->getProveedorId()); $Movimiento->setProductoId($det->getProductoId()); $Movimiento->setCantidad($det->getCantidad()); $Movimiento->setPrecio($det->getPrecio()); $Movimiento->save(); } $this->redirect('pedido_proveedor/index'); }