コード例 #1
0
ファイル: actions.class.php プロジェクト: kcornejo/usac
 /**
  * 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();
 }
コード例 #2
0
ファイル: actions.class.php プロジェクト: kcornejo/usac
 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');
 }