Example #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);
 }
Example #2
0
function EjecutarTicket($idDependiente, $entregado, $IdLocal, $IdCliente, $modoTicket, $entregaEfectivo, $entregaBono, $entregaTarjeta, $cambio, $modoTPV, $IdMProducto, $Estado, $IdMetaProducto)
{
    global $TotalImporte;
    global $ImporteNeto;
    global $IvaImporte;
    global $carrito, $UltimaInsercion;
    global $trabajos;
    $ImporteNeto = $TotalImporte - $IvaImporte;
    $IGV = getSesionDato("IGV");
    $CBMP = $modoTicket == "endmproducto" ? $IdMProducto : generaCBMP();
    $TipoVenta = getSesionDato("TipoVentaTPV");
    $vigencia = getSesionDato("VigenciaPresupuesto");
    $SerialNum = "";
    //Ensamblaje
    if ($modoTicket == "mproducto") {
        $esquema = " IdProducto, IdLocal, FechaRegistro, TipoVentaOperacion," . " UsuarioAlmacen, Costo , Status, CBMetaProducto, IdCliente,VigenciaMetaProducto";
        $datos = " '{$IdMProducto}', '{$IdLocal}', NOW(),'{$TipoVenta}'," . " '{$idDependiente}', '{$TotalImporte}','{$Estado}','{$CBMP}','{$IdCliente}','{$vigencia}' ";
        //IdProducto IdLocal Fecha UsuarioAlmacen Costo Estado
        $sql = "INSERT INTO ges_metaproductos (" . $esquema . ")" . "VALUES (" . $datos . ")";
        $res = query($sql, "Inserta Metaproducto ({$CBMP})");
    }
    //Finaliza...
    if ($modoTicket == "endmproducto") {
        //Costo...
        $sql = " update ges_metaproductos " . " set    Costo           = '" . $TotalImporte . "'," . "        IdCliente       = '" . $IdCliente . "'" . " where  IdMetaProducto  = '" . $IdMetaProducto . "'";
        $res = query($sql, "Actualiza TotalCosto MetaProducto ({$IdMProducto})");
        //Finaliza MetaProducto...
        if ($Estado == "Finalizado") {
            //Registros...
            $IdProducto = getIdProductoFromIdMetaProducto($IdMetaProducto);
            $Destino = $IdLocal;
            $Origen = $IdLocal;
            $Motivo = '9';
            $Codigo = getNextId('ges_comprobantesprov', 'IdComprobanteProv');
            //Ventas
            $IdComprobante = registrarAlbaranOrigen($Destino, $Origen, $Motivo, $Codigo, 0);
            //Compras...
            $IdPedido = registrarAlbaranDestino($Destino, $Origen, $Motivo, $Codigo, 'MetaProducto');
            $Costo = $TotalImporte;
            $Precio = abs(intval((abs($TotalImporte) + abs($TotalImporte * $IGV / 100)) * 100) / 100.0);
            $LoteVence = 0;
            $Cantidad = 1;
            //Detale Mproducto...
            $IdPedidoDet = registrarDetalleTrasladoEntrada($IdPedido, $IdProducto, $LoteVence, $Cantidad, $Costo, $Precio, true);
            //Series Mproducto...
            registrarNumeroSerieExtra($IdProducto, $IdPedidoDet, $CBMP, false, 'Pedido', 'MetaProducto', '0');
            //Fecha ensamblaje...
            $sql = " update ges_metaproductos " . " set    FechaEnsamblaje = NOW(),IdComprobante = " . $IdComprobante . " where  FechaEnsamblaje = '0000-00-00 00:00:00'" . " and    IdMetaProducto  = '" . $IdMetaProducto . "'";
            query($sql);
            //Importes Compras & Ventas
            registrarImportesTraslado($TotalImporte, $IdComprobante, $IdPedido, '9');
        }
    }
    if (!$res) {
        return false;
    }
    //Detalles...
    if ($modoTicket != "endmproducto") {
        $IdMetaProducto = $UltimaInsercion;
    }
    if ($modoTicket == "endmproducto") {
        setDelDetMetaProducto($IdMetaProducto);
    }
    foreach ($carrito as $fila) {
        //Detalle Mproducto...
        $fila->AltaMProductos($IdMetaProducto);
        //Detalle Albaran...
        if ($Estado == "Finalizado" && $modoTicket == "endmproducto") {
            $fila->Alta($IdComprobante, $SerialNum, $IdLocal, "venta");
        }
    }
    //Numero Pre-Venta
    return $CBMP;
}