Files
ventas_php/classes/venta.class.php

1712 lines
42 KiB
PHP
Executable File

<?php
class Venta extends Main
{
private $ventaId;
private $sucursalId;
private $usuarioId;
private $folio;
private $fecha;
private $promocionId;
private $productoId;
private $prodItemId;
private $cantidad;
private $subtotal;
private $iva;
private $total;
private $precioUnitario;
private $pago;
private $tipoDesc;
private $valDesc;
private $status;
private $devolucionId;
private $metodoPagoId;
private $monederoId;
private $vendedorId;
private $proveedorId;
private $comprobanteId;
public function setVentaId($value)
{
$this->Util()->ValidateInteger($value);
$this->ventaId = $value;
}
public function setSucursalId($value)
{
$this->sucursalId = $value;
}
public function setFolio($value)
{
$this->Util()->ValidateInteger($value);
$this->folio = $value;
}
public function setUsuarioId($value)
{
$this->usuarioId = $value;
}
public function setFecha($value)
{
$this->fecha = $value;
}
public function setPromocionId($value)
{
$this->promocionId = $value;
}
public function setProductoId($value)
{
$this->productoId = $value;
}
public function setProdItemId($value)
{
$this->prodItemId = $value;
}
public function setCantidad($value)
{
$this->cantidad = $value;
}
public function setPrecioUnitario($value)
{
$this->precioUnitario = $value;
}
public function setSubtotal($value)
{
$this->subtotal = $value;
}
public function setIva($value)
{
$this->iva = $value;
}
public function setTotal($value)
{
$this->total = $value;
}
public function setDevolucionId($value)
{
$this->devolucionId = $value;
}
public function setMetodoPagoId($value)
{
$this->metodoPagoId = $value;
}
public function setMonederoId($value)
{
$this->monederoId = $value;
}
public function setPago($value)
{
$this->pago = $value;
}
public function setTipoDesc($value)
{
$this->tipoDesc = $value;
}
public function setValDesc($value)
{
$this->valDesc = $value;
}
public function setStatus($value)
{
$this->status = $value;
}
public function setVendedorId($value)
{
$this->vendedorId = $value;
}
public function setProveedorId($value)
{
$this->proveedorId = $value;
}
public function setComprobanteId($value)
{
$this->comprobanteId = $value;
}
function Info()
{
$sql = "SELECT * FROM venta WHERE ventaId = '".$this->ventaId."'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$info = $this->Util()->DBSelect($_SESSION["empresaId"])->GetRow();
return $info;
}
function Info2()
{
$sql = "SELECT * FROM venta2 WHERE venta2Id = '".$this->ventaId."'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$info = $this->Util()->DBSelect($_SESSION["empresaId"])->GetRow();
return $info;
}
function Enumerate()
{
$sql = "SELECT COUNT(*) FROM venta
WHERE status <> 'Descuento' AND status <> 'DescAp'
AND sucursalId = '".$this->sucursalId."'
";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$total = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
$pages = $this->Util->HandleMultipages($this->page, $total ,WEB_ROOT."/ventas");
$sqlAdd = "LIMIT ".$pages["start"].", ".$pages["items_per_page"];
$sql = "SELECT *
FROM venta
WHERE status <> 'Descuento'
AND status <> 'DescAp'
AND sucursalId = '".$this->sucursalId."'
ORDER BY fecha DESC ".$sqlAdd;
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
$data["items"] = $result;
$data["pages"] = $pages;
return $data;
}//Enumerate
function Enumerate2()
{
$sql = "SELECT COUNT(*) FROM venta2
WHERE status = 'Activo'
AND sucursalId = '".$this->sucursalId."'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$total = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
$pages = $this->Util->HandleMultipages($this->page, $total ,WEB_ROOT."/ventas");
$sqlAdd = "LIMIT ".$pages["start"].", ".$pages["items_per_page"];
$sql = "SELECT *
FROM venta2
WHERE status = 'Activo'
AND sucursalId = '".$this->sucursalId."'
ORDER BY fecha DESC ".$sqlAdd;
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
$data["items"] = $result;
$data["pages"] = $pages;
return $data;
}//Enumerate2
function EnumByUser()
{
$sql = "SELECT COUNT(*) FROM venta2
WHERE status = 'Activo'
AND sucursalId = '".$this->sucursalId."'
AND usuarioId = '".$this->usuarioId."'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$total = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
$pages = $this->Util->HandleMultipages($this->page, $total ,WEB_ROOT."/ventas");
$sqlAdd = "LIMIT ".$pages["start"].", ".$pages["items_per_page"];
$sql = "SELECT *
FROM venta2
WHERE status = 'Activo'
AND sucursalId = '".$this->sucursalId."'
AND usuarioId = '".$this->usuarioId."'
ORDER BY fecha DESC ".$sqlAdd;
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
$data["items"] = $result;
$data["pages"] = $pages;
return $data;
}//EnumByUser
function Save(){
if($this->Util()->PrintErrors()){
return false;
}
$sql = "INSERT INTO venta
(
sucursalId,
usuarioId,
vendedorId,
folio,
fecha,
promocionId,
subtotal,
iva,
total,
pago,
status
)
VALUES (
'".$this->sucursalId."',
'".$this->usuarioId."',
'".$this->vendedorId."',
'".$this->folio."',
'".$this->fecha."',
'".$this->promocionId."',
'".$this->subtotal."',
'".$this->iva."',
'".$this->total."',
'".$this->pago."',
'".$this->status."'
)";
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$ventaId = $this->Util()->DBSelect($_SESSION['empresaId'])->InsertData();
return $ventaId;
}
function Save2(){
if($this->Util()->PrintErrors()){
return false;
}
$sql = "INSERT INTO venta2
(
sucursalId,
vendedorId,
usuarioId,
fecha,
promocionId,
subtotal,
iva,
total,
status
)
VALUES (
'".$this->sucursalId."',
'".$this->vendedorId."',
'".$this->usuarioId."',
'".$this->fecha."',
'".$this->promocionId."',
'".$this->subtotal."',
'".$this->iva."',
'".$this->total."',
'".$this->status."'
)";
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$ventaId = $this->Util()->DBSelect($_SESSION['empresaId'])->InsertData();
return $ventaId;
}
function GetProductos(){
$sql = 'SELECT * FROM ventaProducto WHERE ventaId = "'.$this->ventaId.'"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
return $result;
}
function GetProductosReporte(){
$sql = 'SELECT ventaProducto.cantidad * producto.costo AS importe
FROM ventaProducto
LEFT JOIN producto ON producto.productoId = ventaProducto.productoId WHERE ventaId = "'.$this->ventaId.'"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
return $result;
}
function GetSumProductosReporte(){
$sql = 'SELECT SUM(ventaProducto.cantidad * producto.costo) AS importe
FROM ventaProducto
LEFT JOIN producto ON producto.productoId = ventaProducto.productoId WHERE ventaId = "'.$this->ventaId.'"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
return $result;
}
function GetProductos2(){
$sql = 'SELECT * FROM ventaProducto2 WHERE venta2Id = "'.$this->ventaId.'"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
return $result;
}
function GetSingleProds(){
$sql = 'SELECT * FROM ventaProducto
WHERE ventaId = "'.$this->ventaId.'"
GROUP BY prodItemId';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
return $result;
}
function GetCantProdsByItem(){
$sql = 'SELECT SUM(cantidad) FROM ventaProducto
WHERE ventaId = "'.$this->ventaId.'"
AND prodItemId = "'.$this->prodItemId.'"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$total = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
return $total;
}
function GetCantAllProds(){
$sql = 'SELECT SUM(cantidad) FROM ventaProducto
WHERE ventaId = "'.$this->ventaId.'"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$total = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
return $total;
}
function GetProdsNoDev(){
$sql = 'SELECT * FROM ventaProducto
WHERE ventaId = "'.$this->ventaId.'"
AND devuelto = "0"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
return $result;
}
function GetTotalByItem(){
$sql = 'SELECT SUM(total) FROM ventaProducto
WHERE ventaId = "'.$this->ventaId.'"
AND prodItemId = "'.$this->prodItemId.'"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$total = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
return $total;
}
function GetMaxPrecioByItem(){
$sql = 'SELECT MAX(precioUnitario) FROM ventaProducto
WHERE ventaId = "'.$this->ventaId.'"
AND prodItemId = "'.$this->prodItemId.'"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$precio = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
return $precio;
}
function CancelVenta(){
$sql = 'UPDATE venta SET status = "Cancelado", cancelUserId = "'.$this->usuarioId.'", fechaCancel = "'.date('Y-m-d H:i:s').'"
WHERE ventaId = "'.$this->ventaId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
$this->Util()->setError(20074, "complete");
$this->Util()->PrintErrors();
return true;
}
function DeleteVenta2(){
$sql = 'DELETE FROM venta2
WHERE venta2Id = "'.$this->ventaId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
$sql = 'DELETE FROM ventaProducto2
WHERE venta2Id = "'.$this->ventaId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
$this->Util()->setError(20089, "complete");
$this->Util()->PrintErrors();
return true;
}
function SaveProducto(){
$sql = "INSERT INTO ventaProducto
(
ventaId,
promocionId,
monederoId,
prodItemId,
productoId,
cantidad,
precioUnitario,
total,
tipoDesc,
valDesc
)
VALUES (
'".$this->ventaId."',
'".$this->promocionId."',
'".$this->monederoId."',
'".$this->prodItemId."',
'".$this->productoId."',
'".$this->cantidad."',
'".$this->precioUnitario."',
'".$this->total."',
'".$this->tipoDesc."',
'".$this->valDesc."'
)";
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->InsertData();
return true;
}
function SaveProducto2(){
$sql = "INSERT INTO ventaProducto2
(
venta2Id,
promocionId,
monederoId,
prodItemId,
productoId,
cantidad,
precioUnitario,
total,
tipoDesc,
valDesc
)
VALUES (
'".$this->ventaId."',
'".$this->promocionId."',
'".$this->monederoId."',
'".$this->prodItemId."',
'".$this->productoId."',
'".$this->cantidad."',
'".$this->precioUnitario."',
'".$this->total."',
'".$this->tipoDesc."',
'".$this->valDesc."'
)";
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->InsertData();
return true;
}
function SavePago(){
$sql = "INSERT INTO ventaPago
(
ventaId,
metodoPagoId,
monederoId,
devolucionId,
cantidad
)
VALUES (
'".$this->ventaId."',
'".$this->metodoPagoId."',
'".$this->monederoId."',
'".$this->devolucionId."',
'".$this->cantidad."'
)";
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->InsertData();
return true;
}
function GetPagos(){
$sql = 'SELECT * FROM ventaPago WHERE ventaId = "'.$this->ventaId.'"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$pagos = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
return $pagos;
}
function GetNextFolio(){
/*
$sql = 'SHOW TABLE STATUS LIKE "venta"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$row = $this->Util()->DBSelect($_SESSION["empresaId"])->GetRow();
return $row['Auto_increment'];
*/
$sql = 'SELECT MAX(folio) FROM venta WHERE sucursalId = "'.$this->sucursalId.'"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$folio = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
$folio++;
return $folio;
}
function VenderProductos(){
global $util;
$sql = 'SELECT
inventarioId
FROM
inventario AS inv, envio AS env
WHERE
inv.envioId = env.envioId
AND
inv.sucursalId = "'.$this->sucursalId.'"
AND
inv.usuarioId = "'.$this->usuarioId.'"
AND
inv.prodItemId = "'.$this->prodItemId.'"
AND
inv.status = "Apartado"
ORDER BY
env.fechaRecibido DESC,
inv.inventarioId ASC
LIMIT
'.$this->cantidad;
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION['empresaId'])->GetResult();
$result = $util->CheckArray($result);
foreach($result as $res){
$sql = 'UPDATE
inventario
SET
ventaId = "'.$this->ventaId.'",
noControlVta = 0,
status = "Vendido"
WHERE
inventarioId = "'.$res['inventarioId'].'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
}
return true;
}
function VenderProductos2(){
global $util;
$sql = 'SELECT
inventarioId
FROM
inventario AS inv, envio AS env
WHERE
inv.envioId = env.envioId
AND
inv.sucursalId = "'.$this->sucursalId.'"
AND
inv.usuarioId = "'.$this->usuarioId.'"
AND
inv.productoId = "'.$this->productoId.'"
AND
inv.status = "Apartado"
ORDER BY
env.fechaRecibido DESC,
inv.inventarioId ASC
LIMIT
'.$this->cantidad;
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION['empresaId'])->GetResult();
$result = $util->CheckArray($result);
foreach($result as $res){
$sql = 'UPDATE
inventario
SET
venta2Id = "'.$this->ventaId.'",
noControlVta = 0,
status = "Vendido"
WHERE
inventarioId = "'.$res['inventarioId'].'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
}
return true;
}
function ApartarProducts(){
global $util;
$sql = 'SELECT
inventarioId
FROM
inventario AS inv, envio AS env
WHERE
inv.envioId = env.envioId
AND
inv.sucursalId = "'.$this->sucursalId.'"
AND
inv.productoId = "'.$this->productoId.'"
AND
inv.status = "Disponible"
ORDER BY
env.fechaRecibido DESC,
inv.inventarioId ASC
LIMIT
'.$this->cantidad;
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION['empresaId'])->GetResult();
$result = $util->CheckArray($result);
$noControlVta = $this->GetNoControlVta();
foreach($result as $res){
$sql = 'UPDATE
inventario
SET
usuarioId = "'.$this->usuarioId.'",
noControlVta = "'.$noControlVta.'",
status = "Apartado"
WHERE
inventarioId = "'.$res['inventarioId'].'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
}
return true;
}
function DesapartarProducts(){
global $util;
$sql = 'SELECT
inventarioId
FROM
inventario AS inv, envio AS env
WHERE
inv.envioId = env.envioId
AND
inv.sucursalId = "'.$this->sucursalId.'"
AND
inv.usuarioId = "'.$this->usuarioId.'"
AND
inv.productoId = "'.$this->productoId.'"
AND
inv.status = "Apartado"
ORDER BY
env.fechaRecibido ASC,
inv.inventarioId ASC
LIMIT
'.$this->cantidad;
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION['empresaId'])->GetResult();
$result = $util->CheckArray($result);
foreach($result as $res){
$sql = 'UPDATE
inventario
SET
usuarioId = 0,
noControlVta = 0,
status = "Disponible"
WHERE
inventarioId = "'.$res['inventarioId'].'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
}
return true;
}
function DevolverProductos(){
$sql = 'UPDATE
inventario
SET
ventaId = 0,
usuarioId = 0,
noControlVta = 0,
status = "Disponible"
WHERE
ventaId = "'.$this->ventaId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
return true;
}
function DevolverProductos2(){
$sql = 'UPDATE
inventario
SET
venta2Id = 0,
usuarioId = 0,
noControlVta = 0,
status = "Disponible"
WHERE
venta2Id = "'.$this->ventaId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
return true;
}
function DevolverProdsByCant(){
global $util;
$sql = 'SELECT
inventarioId
FROM
inventario
WHERE
ventaId = "'.$this->ventaId.'"
AND
prodItemId = "'.$this->prodItemId.'"
AND
status = "Vendido"
LIMIT
'.$this->cantidad;
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION['empresaId'])->GetResult();
$result = $util->CheckArray($result);
foreach($result as $res){
$sql = 'UPDATE
inventario
SET
status = "Disponible",
usuarioId = 0,
noControlVta = 0,
ventaId = 0
WHERE
inventarioId = "'.$res['inventarioId'].'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
}
return true;
}
function DevolverProdsByCant2(){
global $util;
$sql = 'SELECT
inventarioId
FROM
inventario
WHERE
ventaId = "'.$this->ventaId.'"
AND
productoId = "'.$this->productoId.'"
AND
status = "Vendido"
LIMIT
'.$this->cantidad;
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION['empresaId'])->GetResult();
$result = $util->CheckArray($result);
foreach($result as $res){
$sql = 'UPDATE
inventario
SET
status = "Disponible",
usuarioId = 0,
noControlVta = 0,
ventaId = 0
WHERE
inventarioId = "'.$res['inventarioId'].'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
}
return true;
}
function GetProdDispVta(){
$sql = "SELECT
SUM(cantidad)
FROM
ventaProducto
WHERE
ventaId = '".$this->ventaId."'
AND
prodItemId = '".$this->prodItemId."'
AND
devuelto = '0'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$disponible = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
return $disponible;
}
function InfoProducto(){
$sql = "SELECT
*
FROM
ventaProducto
WHERE
ventaId = '".$this->ventaId."'
AND
prodItemId = '".$this->prodItemId."'
LIMIT 1";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$info = $this->Util()->DBSelect($_SESSION["empresaId"])->GetRow();
return $info;
}
function TransferirProductos(){
$sql = 'UPDATE
inventario
SET
ventaId = "0",
status = "Disponible"
WHERE
ventaId = "'.$this->ventaId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
return true;
}
function UpdateVentaIdProds($idVenta){
$sql = 'UPDATE
inventario
SET
ventaId = "'.$idVenta.'"
WHERE
ventaId = "'.$this->ventaId.'"
AND
prodItemId = "'.$this->prodItemId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
return true;
}
function UpdateTotales(){
$sql = 'UPDATE
venta
SET
subtotal = "'.$this->subtotal.'",
iva = "'.$this->iva.'",
total = "'.$this->total.'"
WHERE
ventaId = "'.$this->ventaId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
return true;
}
function UpdateTotalesDesc(){
$sql = 'UPDATE
venta
SET
tipoDesc = "'.$this->tipoDesc.'",
valDesc = "'.$this->valDesc.'",
subtotalDesc = "'.$this->subtotal.'",
ivaDesc = "'.$this->iva.'",
totalDesc = "'.$this->total.'"
WHERE
ventaId = "'.$this->ventaId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
return true;
}
function UpdateDescVta(){
$sql = 'UPDATE
venta
SET
tipoDesc = "'.$this->tipoDesc.'",
valDesc = "'.$this->valDesc.'",
subtotalDesc = "'.$this->subtotal.'",
ivaDesc = "'.$this->iva.'",
totalDesc = "'.$this->total.'",
status = "DescAp"
WHERE
ventaId = "'.$this->ventaId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
return true;
}
function UpdateDescProd(){
$sql = 'UPDATE
ventaProducto
SET
tipoDesc = "'.$this->tipoDesc.'",
valDesc = "'.$this->total.'"
WHERE
ventaId = "'.$this->ventaId.'"
AND
prodItemId = "'.$this->prodItemId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
return true;
}
function UpdateStatus(){
$sql = 'UPDATE
venta
SET
status = "'.$this->status.'"
WHERE
ventaId = "'.$this->ventaId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
return true;
}
function UpdateStatusCancel(){
$sql = 'UPDATE
venta
SET
status = "'.$this->status.'",
cancelDev = "1"
WHERE
ventaId = "'.$this->ventaId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
return true;
}
function UpdateVentaAnt($idVentaAnt){
$sql = 'UPDATE
venta
SET
ventaIdAnt = "'.$idVentaAnt.'"
WHERE
ventaId = "'.$this->ventaId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
return true;
}
function UpdateTotalPago(){
$sql = 'UPDATE
venta
SET
pago = "'.$this->pago.'"
WHERE
ventaId = "'.$this->ventaId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
return true;
}
function GetTotalConceptos(){
$conceptos = $_SESSION['conceptos'];
$total = 0;
foreach($conceptos as $res)
$total += $res['total'];
return $total;
}//GetTotalConceptos
function GetCantConcepto(){
$conceptos = $_SESSION['conceptos'];
$total = 0;
foreach($conceptos as $res){
if($res['productoId'] == $this->productoId)
$total++;
}
return $total;
}//GetTotalConceptos
function GetTotalByBloque($k){
$conceptos = $_SESSION['conceptos'];
$total = 0;
foreach($conceptos as $kC => $r){
if($kC <= $k){
if($r['productoId'] == $this->productoId)
$total += $r['total'];
}
}
return $total;
}//GetTotalByBloque
function GetTotalByBloqueAnt($k){
$conceptos = $_SESSION['conceptos'];
$total = 0;
foreach($conceptos as $kC => $r){
if($kC < $k){
if($r['productoId'] == $this->productoId)
$total += $r['total'];
}
}
return $total;
}//GetTotalByBloqueAnt
function ExistPromoInConceptos($concepts){
foreach($concepts as $r){
if($r['promocionId'] == $this->promocionId)
return true;
}
return false;
}//ExistPromoInConceptos
function GetProdsWithPromo($concepts){
$total = 0;
foreach($concepts as $r){
if($r['promocionId'] == $this->promocionId)
$total++;
}
return $total;
}//GetProdsWithPromo
function GetCurrentProds($k){
$conceptos = $_SESSION['conceptos'];
$total = 0;
foreach($conceptos as $kC => $r){
if($kC <= $k){
if($r['productoId'] == $this->productoId)
$total++;
}
}
return $total;
}//GetCurrentProds
function ControlVenta(){
$sql = 'SELECT controlVentaId FROM controlVenta
WHERE usuarioId = "'.$this->usuarioId.'"
AND sucursalId = "'.$this->sucursalId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$controlVentaId = $this->Util()->DBSelect($_SESSION['empresaId'])->GetSingle();
if($controlVentaId){
$sql = 'UPDATE controlVenta SET noVenta = noVenta + 1
WHERE controlVentaId = "'.$controlVentaId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
}else{
$sql = 'INSERT INTO controlVenta (usuarioId, sucursalId, noVenta)
VALUES ("'.$this->usuarioId.'", "'.$this->sucursalId.'", 1)';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->InsertData();
}//else
}//ControlVenta
function GetNoControlVta(){
$sql = 'SELECT noVenta FROM controlVenta
WHERE usuarioId = "'.$this->usuarioId.'"
AND sucursalId = "'.$this->sucursalId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$noVenta = $this->Util()->DBSelect($_SESSION['empresaId'])->GetSingle();
return $noVenta;
}//GetNoControlVta
function LiberarProductos(){
$sql = 'SELECT * FROM usuario
WHERE sucursalId = "'.$this->sucursalId.'"';
$this->Util()->DB()->setQuery($sql);
$usuarios = $this->Util()->DB()->GetResult();
foreach($usuarios as $res){
$this->usuarioId = $res['usuarioId'];
$noVenta = $this->GetNoControlVta();
$sql = 'UPDATE inventario SET noControlVta = 0, usuarioId = 0, status = "Disponible"
WHERE usuarioId = "'.$res['usuarioId'].'"
AND sucursalId = "'.$this->sucursalId.'"
AND status = "Apartado"
AND noControlVta <> "'.$noVenta.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
}//foreach
}//LiberarProductos
function LoadProductos()
{
global $producto;
if($this->Util()->PrintErrors()){
return false;
}
$sql = "SELECT * FROM ventaProducto
WHERE ventaId ='".$this->ventaId."'
GROUP BY productoId";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$productos = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
$_SESSION['conceptos'] = array();
foreach($productos as $key => $res){
$producto->setProductoId($res['productoId']);
$infP = $producto->Info();
$sql = "SELECT SUM(cantidad) FROM ventaProducto
WHERE ventaId ='".$this->ventaId."'
AND productoId = '".$res['productoId']."'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$cantidad = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
$sql = "SELECT * FROM ventaProducto
WHERE ventaId ='".$this->ventaId."'
AND productoId = '".$res['productoId']."'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
$totalP = 0;
foreach($result as $val){
if($val['tipoDesc'] == 'Porcentaje'){
$totalDesc = ($val['valDesc'] / 100) * $val['precioUnitario'];
$precioUni = $val['precioUnitario'] - $totalDesc;
$total = $precioUni * $val['cantidad'];
$total = number_format($total,6,'.','');
}elseif($val['tipoDesc'] == 'Dinero'){
$precioUni = $val['precioUnitario'] - $val['valDesc'];
$total = $precioUni * $val['cantidad'];
$total = number_format($total,6,'.','');
}else{
$total = $val['total'];
}
$totalP += $total;
}//foreach
$precioUnitario = $totalP / $cantidad;
$precioUnitario = number_format($precioUnitario,2,'.','');
$precioUnitario = $precioUnitario / 1.16;
$precioUnitario = number_format($precioUnitario,2,'.','');
$totalP = $precioUnitario * $cantidad;
$_SESSION['conceptos'][$key]['noIdentificacion'] = $infP['codigoBarra'];
$_SESSION['conceptos'][$key]['cantidad'] = $cantidad;
$_SESSION['conceptos'][$key]['unidad'] = 'Pieza';
$_SESSION['conceptos'][$key]['valorUnitario'] = $precioUnitario;
$_SESSION['conceptos'][$key]['importe'] = $totalP;
$_SESSION['conceptos'][$key]['excentoIva'] = 'no';
$_SESSION['conceptos'][$key]['descripcion'] = utf8_encode(urldecode($infP['modelo']));
}
return true;
}//LoadProductos
function GetTotalDesglosado($datos){
if(!$_SESSION["conceptos"]){
return false;
}
$data = array();
$data["subtotal"] = 0;
$data["descuento"] = 0;
$data["iva"] = 0;
$data["ieps"] = 0;
$data["retIva"] = 0;
$data["retIsr"] = 0;
$data["total"] = 0;
$data['porcentajeDescuento'] = $datos['porcentajeDescuento'];
foreach($data as $key => $value){
$data[$key] = $this->Util()->RoundNumber($data[$key]);
}
$info['sucursalId'] = $_SESSION['idSuc'];
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery("
SELECT * FROM sucursal
LEFT JOIN rfc ON rfc.rfcId = sucursal.rfcId
WHERE sucursal.sucursalId ='".$info["sucursalId"]."'");
$suc = $this->Util()->DBSelect($_SESSION["empresaId"])->GetRow();
foreach($_SESSION["conceptos"] as $key => $concepto){
$data["subtotalOriginal"] = $this->Util()->RoundNumber($data["subtotalOriginal"] + $importe);
$data["subtotal"] = $this->Util()->RoundNumber($data["subtotal"] + $concepto["importe"]);
if($concepto["excentoIva"] == "si"){
$_SESSION["conceptos"][$key]["tasaIva"] = 0;
}else{
$_SESSION["conceptos"][$key]["tasaIva"] = $suc["iva"];
}
if($data["porcentajeDescuento"]){
$data["porcentajeDescuento"];
}
$data["descuentoThis"] = $this->Util()->RoundNumber($_SESSION["conceptos"][$key]["importe"] * ($data["porcentajeDescuento"] / 100));
$data["descuento"] += $data["descuentoThis"];
$afterDescuento = $_SESSION["conceptos"][$key]["importe"] - $data["descuentoThis"];
if($concepto["excentoIva"] == "si"){
$_SESSION["conceptos"][$key]["tasaIva"] = 0;
}else{
$_SESSION["conceptos"][$key]["tasaIva"] = $suc["iva"];
}
$data["ivaThis"] = $this->Util()->RoundNumber($afterDescuento * ($_SESSION["conceptos"][$key]["tasaIva"] / 100));
if(isset($_SESSION["conceptos"][$key]["hardCodedIva"])){
$data["iva"] = $_SESSION["conceptos"][$key]["hardCodedIva"];
}else{
$data["iva"] += $data["ivaThis"];
}
}//foreach
$data["impuestos"] = $_SESSION["impuestos"];
$afterDescuento = $data["subtotal"] - $data["descuento"];
$data["afterDescuento"] = $afterDescuento;
$data["afterIva"] = $afterDescuento + $data["iva"];
if(!$data["porcentajeIEPS"]){
$data["porcentajeIEPS"] = 0;
}
$data["ieps"] = $this->Util()->RoundNumber($data["afterDescuento"] * ($data["porcentajeIEPS"] / 100));
$afterImpuestos = $afterDescuento + $data["iva"] + $data["ieps"];
$data["afterImpuestos"] = $afterImpuestos;
$data["retIva"] = $this->Util()->RoundNumber($data["afterDescuento"] * ($data["porcentajeRetIva"] / 100));
$data["retIsr"] = $this->Util()->RoundNumber($data["afterDescuento"] * ($data["porcentajeRetIsr"] / 100));
$data["total"] = $this->Util()->RoundNumber($data["subtotal"] - $data["descuento"] + $data["iva"] + $data["ieps"] - $data["retIva"] - $data["retIsr"]);
return $data;
}//GetTotalDesglosado
function ExistVentaEspera(){
$sql = 'SELECT count(*) FROM venta2
WHERE sucursalId = "'.$this->sucursalId.'"
AND usuarioId = "'.$this->usuarioId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$exist = $this->Util()->DBSelect($_SESSION['empresaId'])->GetSingle();
return $exist;
}
function IsProdRebajado(){
$sql = 'SELECT COUNT(*) FROM inventario
WHERE ventaId = "'.$this->ventaId.'"
AND productoId = "'.$this->productoId.'"
AND rebajado = "1"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$exist = $this->Util()->DBSelect($_SESSION['empresaId'])->GetSingle();
return $exist;
}
function MarcarProdDevueltos(){
$sql = 'UPDATE ventaProducto SET devuelto = "1"
WHERE ventaId = "'.$this->ventaId.'"
AND devuelto = "0"
AND productoId = "'.$this->productoId.'"
ORDER BY ventaProdId ASC
LIMIT '.$this->cantidad;
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
return true;
}
function GetVentasBySuc($fechaIni, $fechaFin){
$sql = 'SELECT COUNT(*) FROM venta
WHERE sucursalId = "'.$this->sucursalId.'"
AND fecha >= "'.$fechaIni.'"
AND fecha <= "'.$fechaFin.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$ventas = $this->Util()->DBSelect($_SESSION['empresaId'])->GetSingle();
return $ventas;
}
function GetProvByVtas($fechaIni, $fechaFin){
$sql = 'SELECT v.ventaId, vp.productoId, p.proveedorId
FROM venta AS v, ventaProducto AS vp, producto AS p, proveedor AS prov
WHERE v.ventaId = vp.ventaId
AND vp.productoId = p.productoId
AND p.proveedorId = prov.proveedorId
AND v.sucursalId = "'.$this->sucursalId.'"
AND v.fecha >= "'.$fechaIni.'"
AND v.fecha <= "'.$fechaFin.'"
GROUP BY p.proveedorId
ORDER BY prov.nombre ASC';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$proveedores = $this->Util()->DBSelect($_SESSION['empresaId'])->GetResult();
return $proveedores;
}
function GetProdProvByVtas(){
$sql = 'SELECT v.ventaId, vp.productoId, p.proveedorId
FROM venta AS v, ventaProducto AS vp, producto AS p
WHERE v.ventaId = vp.ventaId
AND vp.productoId = p.productoId
AND v.sucursalId = "'.$this->sucursalId.'"
AND p.proveedorId = "'.$this->proveedorId.'"
GROUP BY p.productoId';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$productos = $this->Util()->DBSelect($_SESSION['empresaId'])->GetResult();
return $productos;
}
function GetProdProvByVtas2($fechaIni, $fechaFin){
$sql = 'SELECT v.ventaId, vp.*, p.proveedorId
FROM venta AS v, ventaProducto AS vp, producto AS p
WHERE v.ventaId = vp.ventaId
AND vp.productoId = p.productoId
AND v.sucursalId = "'.$this->sucursalId.'"
AND p.proveedorId = "'.$this->proveedorId.'"
AND vp.productoId = "'.$this->productoId.'"
AND v.fecha >= "'.$fechaIni.'"
AND v.fecha <= "'.$fechaFin.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$productos = $this->Util()->DBSelect($_SESSION['empresaId'])->GetResult();
return $productos;
}
function GetFoliosByCompId(){
$sql = 'SELECT folio FROM venta WHERE comprobanteId = "'.$this->comprobanteId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$folios = $this->Util()->DBSelect($_SESSION['empresaId'])->GetResult();
return $folios;
}
function SearchCentral($fechaIni, $fechaFin)
{
if($this->usuarioId)
$sqlFilter = ' AND usuarioId = "'.$this->usuarioId.'"';
$sql = "SELECT *
FROM venta
WHERE status <> 'Descuento'
AND status <> 'DescAp'
AND sucursalId = '".$this->sucursalId."'
AND DATE(fecha) >= '".$fechaIni."'
AND DATE(fecha) <= '".$fechaFin."'
".$sqlFilter."
ORDER BY fecha DESC ";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
$data["items"] = $result;
return $data;
}//SearchCentral
function BuenFinAplicado(){
$sql = "SELECT
promocionId
FROM
venta
WHERE
ventaId = '".$this->ventaId."'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$promocionId = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
return $promocionId;
}
function TicketsNoFacturados($fechaIni, $fechaFin){
$sql = 'SELECT ventaId FROM venta
WHERE status = "Activo"
AND DATE(fecha) >= "'.$fechaIni.'"
AND DATE(fecha) <= "'.$fechaFin.'"
AND sucursalId = "'.$this->sucursalId.'"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
$tickets = array();
foreach($result as $res)
$tickets[] = $res['ventaId'];
$_SESSION["notasPorFacturar"] = $tickets;
return true;
}
function TotalTicketsNoFact($fechaIni, $fechaFin){
$sql = 'SELECT COUNT(*) FROM venta
WHERE status = "Activo"
AND DATE(fecha) >= "'.$fechaIni.'"
AND DATE(fecha) <= "'.$fechaFin.'"
AND sucursalId = "'.$this->sucursalId.'"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$total = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
return $total;
}
function GetTicketByComprobanteId(){
$sql = "SELECT ventaId
FROM venta
WHERE comprobanteId = '".$this->comprobanteId."'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$ventaId = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
return $ventaId;
}
function GetFirstTicket(){
$sql = "SELECT *
FROM venta
WHERE sucursalId = '".$this->sucursalId."'
ORDER BY fecha ASC
LIMIT 1";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$row = $this->Util()->DBSelect($_SESSION["empresaId"])->GetRow();
return $row;
}
function MesFacturado(){
$sql = "SELECT comprobanteId
FROM comprobante
WHERE facturaGlobal = '1'
AND sucursalId = '".$this->sucursalId."'
AND fechaIni = '".$this->fecha."'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$comprobanteId = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
return $comprobanteId;
}
function CheckProdInv(){
global $util;
$infV = $this->Info();
$sql = 'SELECT * FROM ventaProducto
WHERE ventaId = "'.$this->ventaId.'"
GROUP BY productoId';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$productos = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
foreach($productos as $res){
$sql = 'SELECT SUM(cantidad) FROM inventario
WHERE ventaId = "'.$this->ventaId.'"
AND productoId = "'.$res['productoId'].'"
AND status = "Vendido"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$totalInv = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
$sql = 'SELECT SUM(cantidad) FROM ventaProducto
WHERE ventaId = "'.$this->ventaId.'"
AND productoId = "'.$res['productoId'].'"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$totalVta = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
if($totalInv < $totalVta){
$cantidad = $totalVta - $totalInv;
$sql = 'SELECT
inventarioId
FROM
inventario AS inv, envio AS env
WHERE
inv.envioId = env.envioId
AND
inv.sucursalId = "'.$infV['sucursalId'].'"
AND
inv.productoId = "'.$res['productoId'].'"
AND
inv.status = "Disponible"
ORDER BY
env.fechaRecibido DESC,
inv.inventarioId ASC
LIMIT
'.$cantidad;
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION['empresaId'])->GetResult();
$result = $util->CheckArray($result);
foreach($result as $res2){
$sql = 'UPDATE
inventario
SET
ventaId = "'.$this->ventaId.'",
usuarioId = "'.$infV['usuarioId'].'",
noControlVta = 0,
status = "Vendido"
WHERE
inventarioId = "'.$res2['inventarioId'].'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
}//foreach
}//if
}//foreach
}
}//Venta
?>