Example #1
0
function EjecutarTicket($idDependiente, $entregado, $IdLocal, $IdCliente, $modoTicket, $entregaEfectivo, $entregaBono, $entregaTarjeta, $cambio, $modoTPV, $IdPresupuesto)
{
    global $TotalImporte;
    global $ImporteNeto;
    global $IvaImporte;
    global $carrito, $UltimaInsercion;
    global $trabajos;
    switch ($modoTicket) {
        case "preventa":
            //Lo que sea
            $ImportePendiente = intval((abs($TotalImporte) - abs($entregado)) * 100) / 100.0;
            if ($ImportePendiente < 0) {
                //Se entrego mas de lo que se dio
                $ImportePendiente = 0;
            }
            break;
        case "mproducto":
            //Normalmente la totalidad del coste
            $ImportePendiente = abs(intval((abs($TotalImporte) - abs($entregado)) * 100) / 100.0);
            break;
        case "interno":
            $ImportePendiente = 0;
            break;
        default:
            $modoTicket = "tipoError:" + CleanRealMysql(CleanParaWeb($modoTicket));
            $ImportePendiente = abs(intval((abs($TotalImporte) - abs($entregado)) * 100) / 100.0);
            break;
    }
    $IdLocal = CleanID($IdLocal);
    $ImporteNeto = $TotalImporte - $IvaImporte;
    $IGV = getSesionDato("IGV");
    $textDoc = $modoTicket == "preventa" ? "Preventa" : "";
    //Npresupuesto & SPresupuesto
    $IdArqueoCaja = GetArqueoActivoExtra($IdLocal);
    //Obtenemos la seie del id arqueo caja
    $codDocumento = explode("-", NroComprobantePreVentaMax($IdLocal, $textDoc, $IdArqueoCaja));
    $sreDocumento = $codDocumento[0] != $IdArqueoCaja ? $IdArqueoCaja : $codDocumento[0];
    $nroDocumento = $codDocumento[0] != $IdArqueoCaja ? 1 : $codDocumento[1];
    $TipoVenta = getSesionDato("TipoVentaTPV");
    //PreVenta...
    $esquema = " IdLocal, IdUsuario," . " NPresupuesto, TipoPresupuesto," . " TipoVentaOperacion, FechaPresupuesto," . " ImporteNeto, ImporteImpuesto," . " Impuesto, TotalImporte, " . " Status, IdCliente, ModoTPV, Serie ";
    $datos = " '{$IdLocal}', '{$idDependiente}'," . " '{$nroDocumento}', '{$textDoc}'," . " '{$TipoVenta}', NOW()," . " '{$ImporteNeto}', '{$IvaImporte}'," . " '{$IGV}', '{$TotalImporte}'," . " 'Pendiente', '{$IdCliente}', '{$modoTPV}','{$sreDocumento}'";
    $sql = "INSERT INTO ges_presupuestos (" . $esquema . ")" . "VALUES (" . $datos . ")";
    $res = query($sql, "Creando Pre venta ({$nroDocumento})");
    if ($res) {
        //Comprobantes...
        $IdComprobante = $UltimaInsercion;
        //Detalles...
        foreach ($carrito as $fila) {
            $fila->AltaPedidos($IdComprobante);
        }
    }
    //Presupuesto...
    if ($IdPresupuesto != '0') {
        setIdCPPresupuesto($IdPresupuesto, $IdComprobante);
    }
    //Numero Pre-Venta...
    return $nroDocumento;
}
Example #2
0
function EjecutarTicket($idDependiente, $entregado, $IdLocal, $Num, $Serie, $IdCliente, $modoTicket, $entregaEfectivo, $entregaBono, $entregaTarjeta, $cambio, $nroDocumento, $idDocumento, $documentoventa, $idPresupuesto, $mensaje, $vigencia, $nsmprod, $sreDocumento, $idPromocion, $bonoPromocion)
{
    global $TotalImporte;
    global $ImporteNeto;
    global $IvaImporte;
    global $carrito, $UltimaInsercion;
    global $trabajos;
    switch ($modoTicket) {
        case "cesion":
        case "venta":
            $ImportePendiente = abs(intval((abs($TotalImporte) - abs($entregado)) * 100) / 100.0);
            $esVenta = true;
            $esPedido = false;
            break;
        case "pedidos":
            $ImportePendiente = 0;
            $esVenta = false;
            $esPedido = true;
            break;
    }
    switch ($idDocumento) {
        case 0:
            $textDoc = "Ticket";
            $nroDocumento = $Num;
            break;
        case 1:
            $textDoc = "Boleta";
            break;
        case 2:
            $textDoc = "Factura";
            break;
        case 4:
            $textDoc = "Albaran";
            break;
        case 5:
            $textDoc = "Proforma";
            break;
        case 6:
            $textDoc = "Preventa";
            break;
    }
    $IdLocal = CleanID($IdLocal);
    $Status = abs($ImportePendiente) > 0.008999999999999999 ? FAC_PENDIENTE_PAGO : FAC_PAGADA;
    $IGV = getSesionDato("IGV");
    $IvaImporte = $TotalImporte * 100 / 100.0 - round($TotalImporte * 100 / ($IGV + 100), 2);
    $ImporteNeto = $TotalImporte - $IvaImporte;
    $TipoVenta = getSesionDato("TipoVentaTPV");
    $t_Doc = $modoTicket == "interno" ? $textDoc . " Servicio" : $textDoc . " Venta";
    $textticket = $t_Doc . " " . $sreDocumento . "-" . $nroDocumento;
    $SerialNum = "{$Serie}-{$Num}";
    $IdCliente = $IdCliente ? $IdCliente : 1;
    $res = false;
    $textCaja = $textticket . "  Cod. " . $SerialNum;
    $cobranza = $modoTicket == 'cesion' ? 'Pendiente' : 'Ninguno';
    //Comprobantes...
    if ($esVenta) {
        $esquema = "IdLocal, IdUsuario, SerieComprobante," . "NComprobante,TipoVentaOperacion,FechaComprobante," . "ImporteNeto, ImporteImpuesto, Impuesto, TotalImporte," . "ImportePendiente, Status,IdCliente,IdPromocion,IdPresupuesto,Cobranza";
        $datos = "'{$IdLocal}','{$idDependiente}','{$Serie}'," . "'{$Num}','{$TipoVenta}',NOW()," . "'{$ImporteNeto}','{$IvaImporte}','{$IGV}','{$TotalImporte}'," . "'{$ImportePendiente}','{$Status}','{$IdCliente}','{$idPromocion}','{$idPresupuesto}','{$cobranza}'";
        $sql = "INSERT INTO ges_comprobantes (" . $esquema . ") VALUES (" . $datos . ")";
        $res = query($sql, "Creando Ticket ({$modoTicket})");
        $idComprobante = $UltimaInsercion;
        //Bono && Historial Venta...
        $xbono = $entregaBono > 0 ? ' Bono = 0 ' : false;
        $xbono = $bonoPromocion > 0 ? " Bono = '{$bonoPromocion}' " : $xbono;
        cargarVenta2HistorialVenta($IdCliente, $TotalImporte, true, $xbono);
        //AdelantosEnPresupuesto
        if ($modoTicket == "cesion" && $idPresupuesto != '0') {
            ActualizaPagoAdelantadoPresupuesto($idPresupuesto, $idComprobante, $textCaja);
        }
    }
    //Proformas...
    if ($esPedido) {
        $IdOperacionCaja = getSesionDato("OperacionCajaPresupuesto");
        $ImporteAdelanto = getSesionDato("OperacionCajaImportePresupuesto");
        $esquema = "IdLocal, IdUsuario, NPresupuesto,TipoPresupuesto," . "TipoVentaOperacion,FechaPresupuesto,ImporteNeto," . "ImporteImpuesto, Impuesto, TotalImporte, Status,IdCliente," . "Observaciones,CBMetaProducto,VigenciaPresupuesto,Serie,IdOperacionCaja,ImporteAdelanto";
        $datos = "'{$IdLocal}','{$idDependiente}','{$nroDocumento}','{$textDoc}'," . "'{$TipoVenta}',NOW(),'{$ImporteNeto}'," . "'{$IvaImporte}','{$IGV}','{$TotalImporte}','Pendiente','{$IdCliente}'," . "'{$mensaje}','{$nsmprod}','{$vigencia}','{$sreDocumento}','{$IdOperacionCaja}','{$ImporteAdelanto}'";
        $sql = "INSERT INTO ges_presupuestos (" . $esquema . ") VALUES (" . $datos . ")";
        $res = query($sql, "Creando Ticket ({$modoTicket})");
        $idComprobante = $UltimaInsercion;
        setVigenciaMProductos($nsmprod, $vigencia);
        //VIgencia meta Productos
        setSesionDato("OperacionCajaPresupuesto", 0);
        setSesionDato("OperacionCajaImportePresupuesto", 0);
    }
    if (!$res) {
        return 0;
    }
    //ges_comprobantes...
    $TipoOperacion = "Ingreso";
    //venta, otros
    //NumeroComprobante...
    if ($esVenta) {
        if (RegistrarNumeroComprobante($nroDocumento, $idComprobante, $textDoc, $sreDocumento, false, false)) {
            return;
        }
    }
    //Dinero...
    if ($esVenta) {
        EntregarCantidades($textCaja, $IdLocal, $entregaEfectivo, $entregaBono, $entregaTarjeta, $idComprobante, $TipoOperacion);
    }
    //Procesar Lineas...
    foreach ($carrito as $fila) {
        if ($esVenta) {
            $fila->Alta($idComprobante, $SerialNum, $IdLocal, $documentoventa);
        }
        if ($esPedido) {
            $fila->AltaPedidos($idComprobante, $SerialNum, $modoTicket);
        }
        AgrupaJob($fila);
    }
    if ($esVenta) {
        //Trabajos
        foreach ($carrito as $fila) {
            $codigojob = $fila->codigojob;
            $IdServicio = $fila->descripcion;
            if (isset($trabajos[$codigojob])) {
                $trabajos[$codigojob]->AgnadeId($IdServicio);
            } else {
                error(__LINE__ . __FILE__, "Error: no acepto {$codigojob} ");
            }
        }
        foreach ($trabajos as $job) {
            $job->SaveIdServicio();
        }
    }
    //Preventa
    if ($idPresupuesto != '0') {
        //Presupuestos
        setIdCPPresupuesto($idPresupuesto, $idComprobante, $modoTicket);
    }
    return $idComprobante;
    //IdComprobante
}