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; }
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 }