1712 lines
42 KiB
PHP
Executable File
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
|
|
|
|
?>
|