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>"; } }
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; }
/** * @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); } }
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); } } }