예제 #1
0
 function registra()
 {
     $dataMovimiento = $_REQUEST['Movimiento'];
     $dataDetalleMovimiento = $_REQUEST['Detallemovimiento'];
     $producto = new Producto();
     $movimiento = new Movimiento();
     $detalleMovimiento = new Detallemovimiento();
     $dataMovimiento['idtipooperacion'] = $dataMovimiento['conceptomovimiento'];
     if (!empty($dataMovimiento['iddocumentotipo'])) {
         $dataMovimiento['essunat'] = 1;
     }
     $exitoMovimiento = $movimiento->grabaMovimiento($dataMovimiento);
     if ($exitoMovimiento) {
         $operacion = $dataMovimiento['tipomovimiento'];
         foreach ($dataDetalleMovimiento as $data) {
             $idProducto = $data['idproducto'];
             $dataBusqueda = $producto->buscaProducto($idProducto);
             if ($operacion == 2) {
                 $valor = $dataBusqueda[0]['stockactual'] - $data['cantidad'];
                 if ($valor <= 0) {
                     $stockNuevo['esagotado'] = 1;
                     $stockNuevo['fechaagotado'] = date('Y-m-d');
                 }
                 $stockNuevo['esagotado'] = 0;
                 $stockNuevo['fechaagotado'] = null;
                 $stockNuevo['stockactual'] = $valor;
                 $stockNuevo['stockdisponible'] = $dataBusqueda[0]['stockdisponible'] - $data['cantidad'];
             } elseif ($operacion == 1) {
                 $stockNuevo['esagotado'] = 0;
                 $stockNuevo['fechaagotado'] = null;
                 $stockNuevo['stockactual'] = $dataBusqueda[0]['stockactual'] + $data['cantidad'];
                 $stockNuevo['stockdisponible'] = $dataBusqueda[0]['stockdisponible'] + $data['cantidad'];
             }
             //$stockNuevo=($operacion=='+')?array('esagotado'=>0,'stockactual'=>($data['stockactual']+$data['cantidad']),'stockdisponible'=>($data['stockdisponibledm']+$data['cantidad'])):array('stockactual'=>($data['stockactual']-$data['cantidad']),'stockdisponible'=>($data['stockdisponibledm']-$data['cantidad']));
             $exitoProducto = $producto->actualizaProducto($stockNuevo, $data['idproducto']);
             $data2['stockactual'] = $stockNuevo['stockactual'];
             $data2['idmovimiento'] = $exitoMovimiento;
             $data2['preciovalorizado'] = $dataBusqueda[0]['preciocosto'];
             $data2['importe'] = $data['cantidad'] * $dataBusqueda[0]['preciocosto'];
             $data2['stockdisponibledm'] = $stockNuevo['stockdisponible'];
             $data2['idproducto'] = $data['idproducto'];
             $data2['cantidad'] = $data['cantidad'];
             $data2['pu'] = $dataBusqueda[0]['preciocosto'];
             $exitoDetalleMovimiento = $detalleMovimiento->grabaDetalleMovimieto($data2);
         }
     }
     if ($exitoDetalleMovimiento and $exitoProducto) {
         $ruta['ruta'] = "/almacen/movstock";
         $this->view->show("ruteador.phtml", $ruta);
     }
 }
예제 #2
0
 function registra()
 {
     $dataMovimiento = $_REQUEST['Movimiento'];
     $idOrdenCompra = $dataMovimiento[idordencompra];
     $numero = $_REQUEST['txtCantidadDetalleMovimiento'];
     $producto = new Producto();
     $movimiento = new Movimiento();
     $detalleMovimiento = new Detallemovimiento();
     $ordenCompra = new Ordencompra();
     $detalleOrdenCompra = new Detalleordencompra();
     $historialProducto = new Historialproducto();
     $exitoMovimiento = $movimiento->grabaMovimiento($dataMovimiento);
     $operacion = $dataMovimiento[idtipomovimiento] == 1 ? "+" : "-";
     //Si el concepto movimiento es ingreso por compras
     if ($dataMovimiento[idordencompra]) {
         $dataOrdenCompra = array('registrado' => '1');
         $exitoOrdenCompra = $ordenCompra->actualizaOrdenCompra($dataOrdenCompra, $idOrdenCompra);
         for ($i = 1; $i <= $numero; $i++) {
             $datosDetalleMovimiento = $_REQUEST['Detallemovimiento' . $i];
             $datosProducto = $_REQUEST['Producto' . $i];
             if ($datosDetalleMovimiento[estado]) {
                 $cantidad = $datosDetalleMovimiento[cantidadrecibida];
                 $idProducto = $datosDetalleMovimiento[idproducto];
                 $iddetalleordencompra = $datosDetalleMovimiento[iddetalleordencompra];
                 //Obtenemos el stock actual y agregamos el elemento stockactual al
                 //array $datosProducto y lo actualizamos la tabla wc_producto
                 $dataProducto = $producto->buscaProducto($idProducto);
                 $datosProducto['stockactual'] = $dataProducto[0]['stockactual'] + $cantidad;
                 $exitoProducto = $producto->actualizaProducto($datosProducto, $idProducto);
                 //Actualizamos la cantidadrecibida de la tabla wc_detalleordencompra
                 $cantidadRecibida = array('cantidadrecibida' => $cantidad);
                 $exitoDetalleOrdenCompra = $detalleOrdenCompra->actualizaDetalleOrdenCompra($cantidadRecibida, $iddetalleordencompra);
                 //Preparar el array $datosProducto para insertar registro en al tabla
                 //wc_historialproducto. Eliminamos los elemtos stockactual y preciolista
                 //luego agregamos idproducto y cantidad.
                 unset($datosProducto['stockactual']);
                 unset($datosProducto['preciolista']);
                 $datosProducto['idproducto'] = $idProducto;
                 $datosProducto['cantidad'] = $cantidad;
                 $datosProducto['fecha'] = date('Y/m/d');
                 $exitoHistorialProducto = $historialProducto->grabaHistorialProducto($datosProducto);
                 //Preparamos el array $datosDetalleMovimiento para insertar registro en la
                 //tabla wc_detallemovimiento.
                 unset($datosDetalleMovimiento['iddetalleordencompra']);
                 unset($datosDetalleMovimiento['estado']);
                 array_splice($datosDetalleMovimiento, -2);
                 $datosDetalleMovimiento['cantidad'] = $cantidad;
                 $exitoDetalleMovimiento = $detalleMovimiento->grabaDetalleMovimieto($datosDetalleMovimiento);
             }
         }
         if ($exitoMovimiento and $exitoOrdenCompra and $exitoProducto and $exitoDetalleOrdenCompra and $exitoHistorialProducto and $exitoDetalleMovimiento) {
             $ruta['ruta'] = "/movimiento/listar";
             $this->view->show("ruteador.phtml", $ruta);
         }
     } else {
         $dataDetalleMovimiento = array_splice($_REQUEST, 3, count($_REQUEST) - 8);
         foreach ($dataDetalleMovimiento as $data) {
             $cantidad = $data[cantidad];
             $idProducto = $data[idproducto];
             $dataProducto = $producto->buscaProducto($idProducto);
             $stockActual = $dataProducto[0]['stockactual'];
             $stockNuevo = $operacion == '+' ? array('stockactual' => $stockActual + $cantidad) : array('stockactual' => $stockActual - $cantidad);
             $exitoDetalleMovimiento = $detalleMovimiento->grabaDetalleMovimieto($data);
             $exitoProducto = $producto->actualizaProducto($stockNuevo, $idProducto);
         }
         if ($exitoMovimiento and $exitoDetalleMovimiento and $exitoProducto) {
             $ruta['ruta'] = "/movimiento/listar";
             $this->view->show("ruteador.phtml", $ruta);
         }
     }
 }
예제 #3
0
 function elimina()
 {
     $id = $_REQUEST['id'];
     $ordenCompra = new Ordencompra();
     $detalleOrdenCompra = new Detalleordencompra();
     $producto = new Producto();
     //buscamos sus detalles de la orden de compra que le perntenece para aumentar el stockdisponible
     $dataDetalle = $detalleOrdenCompra->buscaDetalleOrdenCompra($id);
     $cantidad = count($dataDetalle);
     for ($i = 0; $i < $cantidad; $i++) {
         $cantidadsolicitadaoc = $dataDetalle[$i]['cantidadsolicitadaoc'];
         $idProducto = $dataDetalle[$i]['idproducto'];
         $dataProducto = $producto->buscaProducto($idProducto);
         $stockDisponible = $dataProducto[0]['stockdisponible'];
         $data['stockdisponible'] = $stockDisponible - $cantidadsolicitadaoc;
         $exito = $producto->actualizaProducto($data, $idProducto);
     }
     $estado = $ordenCompra->eliminaOrdenCompra($id);
     if ($estado) {
         $ruta['ruta'] = "/importaciones/ordencompra";
         $this->view->show("ruteador.phtml", $ruta);
     }
 }
예제 #4
0
 function cantidadStockFisico()
 {
     $idProducto = $_REQUEST['id'];
     $producto = new Producto();
     $data = $producto->buscaProducto($idProducto);
     echo '{"stockDisponible":"' . $data[0]['stockactual'] . '"}';
 }