示例#1
0
 function TrasladoBrutal($Motivo)
 {
     $IdComprobante = $this->_IdComprobante;
     $IdPedido = $this->_IdPedido;
     $linea = 0;
     $totalimporte = 0;
     $Origen = $this->_origen;
     $Destino = $this->_destino;
     $igv = getSesionDato("IGV");
     $marcadotrans = getSesionDato("CarritoTrans");
     $Trans = getSesionDato("CarritoMover");
     $aSeries = getSesionDato("CarritoMoverSeries");
     $almacenes = new almacenes();
     $articulo = new articulo();
     foreach ($marcadotrans as $idarticulo) {
         $oProducto = new producto();
         $articulo->Load($idarticulo);
         $oProducto->Load($articulo->get("IdProducto"));
         $cantidad = 0;
         $idproducto = $articulo->get("IdProducto");
         $precio = round($Trans['Precio' . $idarticulo], 2);
         $costo = round($Trans['Costo' . $idarticulo], 2);
         $mSeleccion = $Trans[$idarticulo];
         $aSeleccion = explode("~", $mSeleccion);
         $esSerie = $aSeries[$idarticulo] ? true : false;
         foreach ($aSeleccion as $Pedido) {
             $aPedido = explode(":", $Pedido);
             $IdPedidoDet = $aPedido[0];
             //Kardex
             $cantidad = $aPedido[1];
             $LoteVence = isset($aPedido[3]) ? $aPedido[3] : 0;
             $totalimporte += $precio * $cantidad;
             $existencias = $almacenes->obtenerExistenciasKardex($idproducto, $Origen);
             //Control
             if ($existencias < $cantidad) {
                 return;
             }
             //Ventas
             $IdComprobanteDet = registrarDetalleTrasladoSalida($idproducto, $cantidad, $costo, $precio, $IdComprobante, $IdPedidoDet, $esSerie, $LoteVence);
             //Compras
             $nwIdPedidoDet = registrarDetalleTrasladoEntrada($IdPedido, $idproducto, $LoteVence, $cantidad, $costo, $precio, $esSerie);
             //Numeros de Series
             registrarTrasladoSeries($Origen, $Destino, $IdPedido, $nwIdPedidoDet, $IdPedidoDet, $idarticulo, $idproducto, $IdComprobante);
             //Kardex
             registrarTrasladoKardexFifo($Origen, $idproducto, $IdPedidoDet, $IdComprobanteDet, $costo, $cantidad, $existencias, $Motivo);
             //Kadex costo almacen
             $almacenes->actualizarCosto($idproducto, $Origen);
             //Kadex resumen almacen
             actualizaResumenKardex($idproducto, $Origen);
         }
     }
     //Importes Compras & Ventas
     registrarImportesTraslado($totalimporte, $IdComprobante, $IdPedido, $Motivo);
 }
示例#2
0
文件: selkardex.php 项目: klich3/gPOS
 //Ajustes
 //$Ajuste -> ~IdPedidoDet:Cantidad:Precio
 //$Series -> ~IdPedidoDet:Series,Series
 $aAjustes = explode("~", $Ajustes);
 $nAjustes = count($aAjustes);
 $aSeries = explode("~", $Series);
 $nSeries = count($aSeries);
 $xkeydet = array();
 $ckeydet = '';
 $xsrt = '';
 for ($i = 0; $i < $nAjustes; $i++) {
     $Ajuste = explode(":", $aAjustes[$i]);
     $IdPedidoDet = $Ajuste[0];
     $Cantidad = $Ajuste[1];
     //Venta AlbaranInt Detalle
     $xkey = registrarDetalleTrasladoSalida($IdProducto, $Cantidad, $Costo, $Precio, $IdComprobante, $IdPedidoDet, $esSerie, $LoteVence);
     //Salva id detalle
     $xkeydet[$xkey] = $IdPedidoDet;
     $ckeydet .= $xsrt . $xkey;
     $xsrt = ',';
     //Series
     if ($esSerie) {
         $Serie = explode(":", $aSeries[$i]);
         $cSeries = $Serie[1];
         registrarAjusteSalidaSeries($Origen, $IdComprobante, $IdProducto, $cSeries, $IdPedidoDet);
     }
 }
 //Venta AlbaranInt Importes
 ConsolidaDetalleVenta($IdComprobante, false);
 //Inventario? ó Inventario Nuevo?
 $IdInventario = $esInvent ? registraInventario($tipInvent, $IdLocal, $IdPedido, $IdComprobante) : 0;