function listTable()
 {
     $id = $_REQUEST['id'];
     $RutaImagen = $this->rutaImagenesProducto();
     $detalleOrdenCompra = new Detalleordencompra();
     $movimiento = new Movimiento();
     $data = $detalleOrdenCompra->listaDetalleOrdenCompra($id);
     $cantDetOrdCom = count($data);
     $archivoConfig = parse_ini_file("config.ini", true);
     for ($i = 0; $i < $cantDetOrdCom; $i++) {
         echo "<tr>";
         if ($i == $cantDetOrdCom - 1) {
             echo '<input type="hidden" name="cantidadDetalles" value="' . $cantDetOrdCom . '">';
             echo '<input type="hidden" name="vbimportaciones" value="' . $data[$i]['vbimportaciones'] . '">';
         }
         echo '<input type="hidden" name="Detallemovimiento[' . ($i + 1) . '][iddetalleordencompra]" value="' . $data[$i]['iddetalleordencompra'] . '">';
         echo '<input type="hidden" name="Detallemovimiento[' . ($i + 1) . '][idproducto]" value="' . $data[$i]['idproducto'] . '">';
         echo '<input type="hidden" name="Detallemovimiento[' . ($i + 1) . '][preciocosto]" value="' . $data[$i]['totalunitario'] . '">';
         echo '<input type="hidden" name="Producto[' . ($i + 1) . '][stockdisponible]" value="' . $data[$i]['stockdisponible'] . '">';
         echo '<input type="hidden" name="Producto[' . ($i + 1) . '][precioactual]" value="' . $data[$i]['preciocosto'] . '">';
         echo '<input type="hidden" value="1" name="Detallemovimiento[' . ($i + 1) . '][estado]" class="txtEstado">';
         echo '<td>' . '<img src="' . $RutaImagen . $data[$i]['codigo'] . '/' . $data[$i]['imagen'] . '" width="50" height="40">' . '</td>';
         echo "<td>" . $data[$i]['codigopa'] . "</td>";
         echo "<td>" . $data[$i]['nomemp'] . "</td>";
         echo "<td>" . $data[$i]['marca'] . "</td>";
         echo '<td><input type="text" name="Detallemovimiento[' . ($i + 1) . '][cantidadsolicitadaoc]" value="' . $data[$i]['cantidadsolicitadaoc'] . '" readonly style="width:50px" class="txtCantidadSolicitada"></td>';
         echo '<td><input type="text" name="Detallemovimiento[' . ($i + 1) . '][cantidadrecibidaoc]" value="' . $data[$i]['cantidadsolicitadaoc'] . '" readonly style="width:50px" class="txtCantidadRecibida required numeric"></td>';
         echo "<td>" . $archivoConfig['UnidadMedida'][$data[$i]['unidadmedida']] . "</td>";
         echo '<td><input type="text" class="text-50 txtStockActual" name="Producto[' . ($i + 1) . '][stockactual]" value="' . $data[$i]['stockactual'] . '" readonly></td>';
         echo '<td style="text-align:center"><input type="checkbox" value="1" class="chkVerificacion" checked></td>';
         echo '<td><a href="#" class="btnQuitaDetalleOrdenCompra"><img src="/imagenes/eliminar.gif"></a></td>';
         echo "</tr>";
     }
 }
示例#2
0
 public function agregarDetalleOrdenCompra($nroSerie, $nroOrden, $idProducto, $cantidad, $Precio)
 {
     $resultado = array('valor' => 1, 'message' => 'Su solicitud ha sido procesada correctamente.');
     $Detalle = new Detalleordencompra();
     $Detalle->nroSerie = $nroSerie;
     $Detalle->nroOrden = $nroOrden;
     $Detalle->idProducto = $idProducto;
     $Detalle->cantidad = $cantidad;
     $Detalle->precio = $Precio;
     $Detalle->save();
     return $resultado;
 }
示例#3
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getDetalleordencompras()
 {
     return $this->hasMany(Detalleordencompra::className(), ['ordencompra_did' => 'id']);
 }
 function confirmar()
 {
     $id = $_REQUEST['idOrdenCompra'];
     $dataOrdenCompra = $_REQUEST['OrdenCompra'];
     $dataOrdenCompraDetalle = $_REQUEST['Detalleordencompra'];
     //echo '<pre>';
     //print_r($dataOrdenCompraDetalle);
     //exit;
     $dataOrdenCompra['valorizado'] = 1;
     if ($_REQUEST['conformidad'] != 'on') {
         $dataOrdenCompra['vbimportaciones'] = 0;
     }
     if ($_REQUEST['registrado'] == 1) {
         $detalleMovimiento = $this->AutoLoadModel('detallemovimiento');
         $dataproducto = $_REQUEST['Producto'];
     }
     $totalDOC = count($dataOrdenCompraDetalle);
     $ordenCompra = new Ordencompra();
     $detalleOrdenCompra = new Detalleordencompra();
     $producto = new Producto();
     $historialProducto = new Historialproducto();
     $exito1 = $ordenCompra->actualizaOrdenCompra($dataOrdenCompra, $id);
     for ($i = 1; $i <= $totalDOC; $i++) {
         //Actualizando el DetalleOrdenCompra
         $idDOC = $dataOrdenCompraDetalle[$i]['iddetalleordencompra'];
         $ddoci = $dataOrdenCompraDetalle[$i];
         $exito_doc = $detalleOrdenCompra->actualizaDetalleOrdenCompra($ddoci, $idDOC);
         $idProducto = $dataOrdenCompraDetalle[$i]['idproducto'];
         if ($_REQUEST['registrado'] == 1) {
             $tcv = $ordenCompra->TipoCambioxIdOrdenCompra($id);
             $tipocambio = $tcv[0]['tipocambiovigente'];
             $filtro = "m.idordencompra='{$id}' and dm.idproducto='{$idProducto}' ";
             $dataMovimiento = $detalleMovimiento->buscaDetalleMovimientoxFiltro($filtro);
             $iddetallemovimiento = $dataMovimiento[0]['iddetallemovimiento'];
             $precioCosto = $dataOrdenCompraDetalle[$i]['cifunitario'] * $tipocambio;
             $cantidadRecibida = $dataOrdenCompraDetalle[$i]['cantidadrecibidaoc'];
             $stockactual = $dataMovimiento[0]['stockactual'] - $dataMovimiento[0]['cantidad'];
             $precioactual = $dataproducto[$i]['preciocosto'];
             $stockproducto = $stockactual + $cantidadRecibida;
             $preciovalorizado = ($precioCosto * $cantidadRecibida + $stockactual * $precioactual) / $stockproducto;
             $preciovalorizado = round($preciovalorizado, 2);
             $ddm['preciovalorizado'] = $preciovalorizado;
             $ddm['pu'] = $precioCosto;
             $datop['preciocosto'] = $preciovalorizado;
             $exitoM = $detalleMovimiento->actualizaDetalleMovimientoxid($iddetallemovimiento, $ddm);
         }
         $datop['fob'] = $dataOrdenCompraDetalle[$i]['fobdoc'];
         $exitoP = $producto->actualizaProducto($datop, $idProducto);
         // $preciocosto=$dataOrdenCompraDetalle[$i]['totalunitario'];
         // $idproducto=$dataOrdenCompraDetalle[$i]['idproducto'];
         // $cantidad=$dataOrdenCompraDetalle[$i]['cantidadsolicitadaoc'];
         // $dp=$producto->buscaProducto($idproducto);//Data producto
         // $psv=(($dp[0]['stockactual']*$dp[0]['preciocosto'])+($cantidad*$precioCosto))/($dp[0]['stockactual']+$cantidad);//Precio de stock valorizado
         // /*Datos de la tabla producto*/
         // $dp1['preciocosto']=$precioCosto;
         // $dp1['fob']=$dataOrdenCompraDetalle[$i]['fobdoc'];
         // $dp1['cif']=$dataOrdenCompraDetalle[$i]['cifunitario'];
         // $dp1['precioreferencia01']=($psv*1.10);
         // //Datos para Historial producto
         // $dhp['idproducto']=$idproducto;
         // $dhp['preciofob']=$dataOrdenCompraDetalle[$i]['fobdoc'];
         // $dhp['hpreciocosto']=$precioCosto;
         // $dhp['preciostockvalorizado']=$psv;
         // $exito2=$producto->actualizaProducto($dp1,$idproducto);
         // $exito3=$historialProducto->grabaHistorialProducto($dhp);
     }
     if ($exito_doc and $exito1) {
         $ruta['ruta'] = "/importaciones/ordencompra";
         $this->view->show('ruteador.phtml', $ruta);
     }
 }
示例#5
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);
         }
     }
 }