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 ?>