Files
ventas_php/classes/envio.class.php

1489 lines
36 KiB
PHP
Executable File

<?php
class Envio extends Main
{
private $envioId;
private $sucOrigen;
private $sucursalId;
private $sucursalId2;
private $pedidoId;
private $noCajas;
private $usuarioId;
private $tipo;
private $fecha;
private $status;
private $prodItemId;
private $productoId;
private $noLotes;
private $prendas;
private $completo;
private $faltantes;
private $cantidad;
private $total;
private $motivoId;
private $otroMotivo;
private $noPedido;
private $envProdId;
private $fechaIni;
private $fechaFin;
private $envRepProdId;
public function setEnvioId($value)
{
$this->Util()->ValidateInteger($value);
$this->envioId = $value;
}
public function setSucOrigen($value)
{
$this->Util()->ValidateInteger($value);
$this->sucOrigen = $value;
}
public function setSucursalId($value)
{
$this->Util()->ValidateString($value, $max_chars=50, $minChars = 1, 'Sucursal');
$this->sucursalId = $value;
}
public function setSucursalId2($value)
{
$this->Util()->ValidateString($value, $max_chars=50, $minChars = 1, 'Sucursal');
$this->sucursalId2 = $value;
}
public function setPedidoId($value)
{
$this->Util()->ValidateString($value, $max_chars=50, $minChars = 1, 'Pedido');
$this->pedidoId = $value;
}
public function setUsuarioId($value)
{
$this->Util()->ValidateInteger($value);
$this->usuarioId = $value;
}
public function setTipo($value)
{
$this->tipo = $value;
}
public function setFecha($value)
{
$this->fecha = $value;
}
public function setNoCajas($value)
{
$this->Util()->ValidateString($value, $max_chars=50, $minChars = 1, 'No. de Cajas');
$this->noCajas = $value;
}
public function setStatus($value)
{
$this->status = $value;
}
public function setProdItemId($value)
{
$this->prodItemId = $value;
}
public function setProductoId($value)
{
$this->productoId = $value;
}
public function setNoLotes($value)
{
$this->noLotes = $value;
}
public function setPrendas($value)
{
$this->prendas = $value;
}
public function setCompleto($value)
{
$this->completo = $value;
}
public function setFaltantes($value)
{
$this->faltantes = $value;
}
public function setCantidad($value)
{
$this->cantidad = $value;
}
public function setTotal($value)
{
$this->total = $value;
}
public function setMotivoId($value)
{
$this->Util()->ValidateString($value, $max_chars=50, $minChars = 1, 'Motivo');
$this->motivoId = $value;
}
public function setOtroMotivo($value)
{
$this->Util()->ValidateString($value, $max_chars=50, $minChars = 1, 'Otro Motivo');
$this->otroMotivo = $value;
}
public function setEnvProdId($value)
{
$this->Util()->ValidateInteger($value);
$this->envProdId = $value;
}
public function setNoPedido($value)
{
$this->Util()->ValidateInteger($value);
$this->noPedido = $value;
}
public function setFechaIni($value)
{
$this->fechaIni = $value;
}
public function setFechaFin($value)
{
$this->fechaFin = $value;
}
public function setEnvRepProdId($value)
{
$this->Util()->ValidateInteger($value);
$this->envRepProdId = $value;
}
function Info(){
$sql = "SELECT
*
FROM
envio
WHERE
envioId = '".$this->envioId."'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$row = $this->Util()->DBSelect($_SESSION["empresaId"])->GetRow();
return $row;
}
function EnumBySuc()
{
$sql = "SELECT e.* FROM envio AS e, envioPedido AS ep, pedido AS p
WHERE ep.envioId = e.envioId
AND ep.pedidoId = p.pedidoId
AND p.ajuste = '0'
AND sucursalId = '".$this->sucursalId."'
AND e.tipo = '".$this->tipo."'
GROUP BY e.envioId";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
$total = count($result);
$pages = $this->Util->HandleMultipages($this->page, $total ,WEB_ROOT."/envios");
$sqlAdd = " LIMIT ".$pages["start"].", ".$pages["items_per_page"];
$sql = "SELECT e.* FROM envio AS e, envioPedido AS ep, pedido AS p
WHERE ep.envioId = e.envioId
AND ep.pedidoId = p.pedidoId
AND p.ajuste = '0'
AND e.tipo = '".$this->tipo."'
AND sucursalId = '".$this->sucursalId."'
GROUP BY e.envioId
ORDER BY e.fecha DESC".$sqlAdd;
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$envios = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
$data["items"] = $envios;
$data["pages"] = $pages;
return $data;
}
function EnumBySucT()
{
$sql = 'SELECT COUNT(*) FROM envio
WHERE (sucOrigen = "'.$this->sucursalId.'"
OR sucursalId = "'.$this->sucursalId.'")
AND tipo = "TT"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$total = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
$pages = $this->Util->HandleMultipages($this->page, $total ,WEB_ROOT."/envios-tienda");
$sqlAdd = " LIMIT ".$pages["start"].", ".$pages["items_per_page"];
$sql = 'SELECT * FROM envio
WHERE (sucOrigen = "'.$this->sucursalId.'"
OR sucursalId = "'.$this->sucursalId.'")
AND tipo = "TT"
ORDER BY fecha DESC'.$sqlAdd;
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$envios = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
$data["items"] = $envios;
$data["pages"] = $pages;
return $data;
}
function EnumerateD()
{
$sql = "SELECT COUNT(*) FROM envioDevolucion";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$total = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
$pages = $this->Util->HandleMultipages($this->page, $total ,WEB_ROOT."/envios-tienda-cedis");
$sqlAdd = " LIMIT ".$pages["start"].", ".$pages["items_per_page"];
$sql = "SELECT * FROM envioDevolucion ORDER BY fecha DESC".$sqlAdd;
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$envios = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
$data["items"] = $envios;
$data["pages"] = $pages;
return $data;
}
function EnumBySucD()
{
$sql = 'SELECT COUNT(*) FROM envioDevolucion WHERE 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."/envios");
$sqlAdd = " LIMIT ".$pages["start"].", ".$pages["items_per_page"];
$sql = 'SELECT * FROM envioDevolucion WHERE sucursalId = "'.$this->sucursalId.'" ORDER BY fecha DESC'.$sqlAdd;
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$envios = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
$data["items"] = $envios;
$data["pages"] = $pages;
return $data;
}
function Enumerate()
{
$sql = "SELECT e.* FROM envio AS e, envioPedido AS ep, pedido AS p
WHERE ep.envioId = e.envioId
AND ep.pedidoId = p.pedidoId
AND p.ajuste = '0'
AND e.tipo = '".$this->tipo."'
GROUP BY e.envioId";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
$total = count($result);
$pages = $this->Util->HandleMultipages($this->page, $total ,WEB_ROOT."/envios");
$sqlAdd = " LIMIT ".$pages["start"].", ".$pages["items_per_page"];
$sql = "SELECT e.* FROM envio AS e, envioPedido AS ep, pedido AS p
WHERE ep.envioId = e.envioId
AND ep.pedidoId = p.pedidoId
AND p.ajuste = '0'
AND e.tipo = '".$this->tipo."'
GROUP BY e.envioId
ORDER BY e.fecha DESC".$sqlAdd;
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$envios = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
$data["items"] = $envios;
$data["pages"] = $pages;
return $data;
}
function Search()
{
$sqlAdd = '';
if($this->sucursalId)
$sqlAdd .= ' AND e.sucursalId = "'.$this->sucursalId.'"';
if($this->status)
$sqlAdd .= ' AND e.status = "'.$this->status.'"';
if($this->noPedido)
$sqlAdd .= ' AND p.noPedido = "'.$this->noPedido.'"';
if($this->fecha)
$sqlAdd .= ' AND DATE(e.fecha) = "'.$this->fecha.'"';
$sql = 'SELECT e.* FROM envio AS e, envioPedido AS ep, pedido AS p
WHERE e.tipo = "CT"
AND e.envioId = ep.envioId
AND ep.pedidoId = p.pedidoId
AND p.ajuste = "0"
'.$sqlAdd.'
GROUP BY e.envioId
ORDER BY e.fecha DESC';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$envios = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
return $envios;
}
function EnumerateT()
{
$sql = "SELECT COUNT(*) FROM envio
WHERE tipo = 'TT'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$total = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
$pages = $this->Util->HandleMultipages($this->page, $total ,WEB_ROOT."/envios-tienda");
$sqlAdd = " LIMIT ".$pages["start"].", ".$pages["items_per_page"];
$sql = "SELECT * FROM envio
WHERE tipo = 'TT'
ORDER BY fecha DESC".$sqlAdd;
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$envios = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
$data["items"] = $envios;
$data["pages"] = $pages;
return $data;
}
function SearchT()
{
$sqlAdd = '';
if($this->sucOrigen)
$sqlAdd .= ' AND sucOrigen = "'.$this->sucOrigen.'"';
if($this->sucursalId)
$sqlAdd .= ' AND sucursalId = "'.$this->sucursalId.'"';
if($this->status)
$sqlAdd .= ' AND status = "'.$this->status.'"';
if($this->fecha)
$sqlAdd .= ' AND DATE(fecha) = "'.$this->fecha.'"';
$sql = 'SELECT * FROM envio
WHERE tipo = "TT"
'.$sqlAdd.'
ORDER BY fecha DESC';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$envios = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
return $envios;
}
function SaveTemp(){
if($this->Util()->PrintErrors()){
return false;
}
return true;
}
function Save(){
if($this->Util()->PrintErrors()){
return false;
}
$sql = "INSERT INTO `envio`
(
sucOrigen,
sucursalId,
fecha,
usuarioId,
tipo,
status
)
VALUES (
'".$this->sucOrigen."',
'".$this->sucursalId."',
'".date('Y-m-d H:i:s')."',
'".$this->usuarioId."',
'".$this->tipo."',
'".$this->status."'
)";
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$envioId = $this->Util()->DBSelect($_SESSION['empresaId'])->InsertData();
return $envioId;
}
function Delete(){
$sql = "DELETE FROM
envio
WHERE
envioId = '".$this->envioId."'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$this->Util()->DBSelect($_SESSION["empresaId"])->DeleteData();
$sql = "DELETE FROM
envioPedido
WHERE
envioId = '".$this->envioId."'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$this->Util()->DBSelect($_SESSION["empresaId"])->DeleteData();
$sql = "DELETE FROM
envioRecibir
WHERE
envioId = '".$this->envioId."'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$this->Util()->DBSelect($_SESSION["empresaId"])->DeleteData();
$sql = "DELETE FROM
envioProducto
WHERE
envioId = '".$this->envioId."'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$this->Util()->DBSelect($_SESSION["empresaId"])->DeleteData();
$sql = "DELETE FROM
inventario
WHERE
envioId = '".$this->envioId."'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$this->Util()->DBSelect($_SESSION["empresaId"])->DeleteData();
$this->Util()->setError(30056, "complete");
$this->Util()->PrintErrors();
return true;
}
function Autorizar(){
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery("
UPDATE envio SET
fechaAutorizacion = '".date('Y-m-d H:i:s')."',
userIdAutorizacion = '".$this->usuarioId."',
status = 'Autorizado'
WHERE
envioId = '".$this->envioId."'"
);
$this->Util()->DBSelect($_SESSION["empresaId"])->UpdateData();
return true;
}
function AutorizarD(){
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery("
UPDATE envioDevolucion SET
fechaRecibido = '".date('Y-m-d')."',
status = '".$this->status."'
WHERE
envioDevolucionId = '".$this->envioId."'"
);
$this->Util()->DBSelect($_SESSION["empresaId"])->UpdateData();
return true;
}
function AutorizarSuc(){
if($this->Util()->PrintErrors()){
return false;
}
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery("
UPDATE envio SET
noCajas = '".$this->noCajas."',
fechaAutSuc = '".date('Y-m-d H:i:s')."',
userIdAutSuc = '".$this->usuarioId."',
status = 'AutSuc'
WHERE
envioId = '".$this->envioId."'"
);
$this->Util()->DBSelect($_SESSION["empresaId"])->UpdateData();
return true;
}
function Rechazar(){
if($this->Util()->PrintErrors()){
return false;
}
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery("
UPDATE envio SET
fechaRechazo = '".date('Y-m-d H:i:s')."',
userIdRechazo = '".$this->usuarioId."',
motivoId = '".$this->motivoId."',
otroMotivo = '".utf8_decode($this->otroMotivo)."',
status = 'Rechazado'
WHERE
envioId = '".$this->envioId."'"
);
$this->Util()->DBSelect($_SESSION["empresaId"])->UpdateData();
return true;
}//Rechazar
function SendMsgGte(){
global $mail;
global $usuario;
$usuario->setSucursalId($this->sucursalId);
$usuario->setTipo('gerente');
$infU = $usuario->GetInfoBySuc();
//Configurando el servidor SMTP
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Host = SMTP_HOST;
$mail->Username = SMTP_USER;
$mail->Password = SMTP_PASS;
$mail->Port = SMTP_PORT;
//Enviamos el mensaje
$email = $infU['email'];
$nomUsuario = $infU['nombre'].' '.$infU['apellidos'];
$subject = 'Envio No. '.$this->envioId.' Autorizado';
$message .= 'Estimado '.$nomUsuario.'<br><br>';
$message .= 'Por medio de la presente le confirmamos que el env&iacute;o No. '.$this->envioId;
$message .= ' ha sido autorizado correctamente.';
$message .= '<br><br>Por su atenci&oacute;n.';
$message .='<br><br>Gracias.';
$html = '<html>
<body>
'.$message.'
</body>
</html>';
try {
$mail->AddAddress($email, $nomUsuario);
$mail->SetFrom('contacto@novomoda.com', 'Novomoda');
$mail->Subject = $subject;
$mail->MsgHTML($html);
$mail->Send();
} catch (phpmailerException $e) {
return false;
} catch (Exception $e) {
return false;
}
return true;
}//SendMsgGte
function UpdateRecibido(){
if($this->Util()->PrintErrors()){
return false;
}
$sql = "UPDATE
envio
SET
fechaRecibido = '".date('Y-m-d H:i:s')."',
userIdRecibido = '".$this->usuarioId."',
status = 'Recibido'
WHERE
envioId = ".$this->envioId;
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->ExecuteQuery();
return true;
}
function UpdateStatus(){
if($this->Util()->PrintErrors()){
return false;
}
$sql = "UPDATE
envio
SET
status = '".$this->status."'
WHERE
envioId = ".$this->envioId;
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->ExecuteQuery();
return true;
}
function GetValorProdsBloq(){
global $util;
global $pedido;
$sql = 'SELECT
*
FROM
inventario
WHERE
envioIdBloq = "'.$this->envioId.'"
AND
status = "Bloqueado"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$result = $this->Util()->DBSelect($_SESSION['empresaId'])->GetResult();
$result = $util->CheckArray($result);
$total = 0;
foreach($result as $res){
$pedido->setPedidoId($res['pedidoId']);
$pedido->setProductoId($res['productoId']);
$infP = $pedido->GetInfoProd();
$total += $infP['costo'];
}
return $total;
}
function BloquearProductos(){
global $util;
global $producto;
$producto->setProdItemId($this->prodItemId);
$infP = $producto->GetInfoItemById();
$sql = 'SELECT
inventarioId
FROM
inventario AS inv, envio AS env
WHERE
inv.envioId = env.envioId
AND
inv.sucursalId = "'.$this->sucOrigen.'"
AND
inv.productoId = "'.$infP['productoId'].'"
AND
inv.status = "Disponible"
ORDER BY
env.fechaRecibido DESC
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
envioIdBloq = "'.$this->envioId.'",
envioIdFS = envioId,
status = "Bloqueado"
WHERE
inventarioId = "'.$res['inventarioId'].'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
}
return true;
}
function DesbloquearProductos(){
global $util;
$sql = 'UPDATE
inventario
SET
envioIdBloq = "0",
status = "Disponible"
WHERE
envioIdBloq = "'.$this->envioId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
return true;
}
function UpdateProdT(){
global $util;
global $producto;
$producto->setProdItemId($this->prodItemId);
$infP = $producto->GetInfoItemById();
$sql = 'SELECT
inventarioId
FROM
inventario
WHERE
envioIdBloq = "'.$this->envioId.'"
AND
sucursalId = "'.$this->sucursalId.'"
AND
productoId = "'.$infP['productoId'].'"
AND
status = "Bloqueado"
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
sucursalId = "'.$this->sucursalId2.'",
envioId = envioIdBloq,
envioIdBloq = 0,
status = "Disponible"
WHERE
inventarioId = "'.$res['inventarioId'].'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
}
return true;
}
function SavePedido(){
if($this->Util()->PrintErrors()){
return false;
}
$sql = "INSERT INTO `envioPedido`
(
envioId,
pedidoId,
noCajas
)
VALUES (
'".$this->envioId."',
'".$this->pedidoId."',
'".$this->noCajas."'
)";
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->ExecuteQuery();
return true;
}
function SaveMercancia(){
if($this->Util()->PrintErrors()){
return false;
}
$sql = "INSERT INTO envioRecibir
(
envioId,
pedidoId,
productoId,
noPrendas,
faltantes,
completo
)
VALUES (
'".$this->envioId."',
'".$this->pedidoId."',
'".$this->productoId."',
'".$this->prendas."',
'".$this->faltantes."',
'".$this->completo."'
)";
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->InsertData();
return true;
}
function SaveProducto(){
$sql = "INSERT INTO envioProducto
(
envioId,
productoId,
prodItemId,
cantidad
)
VALUES (
'".$this->envioId."',
'".$this->productoId."',
'".$this->prodItemId."',
'".$this->cantidad."'
)";
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->InsertData();
return true;
}
function UpdateProdsDist(){
$sql = 'UPDATE pedidoDistribucion
SET status = "'.$this->status.'",
envioId = "'.$this->envioId.'"
WHERE pedidoId = "'.$this->pedidoId.'"
AND sucursalId = "'.$this->sucursalId.'"
AND productoId = "'.$this->productoId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
return true;
}
function GetPedidos(){
$sql = "SELECT
*
FROM
envioPedido
WHERE
envioId = '".$this->envioId."'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$pedidos = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
return $pedidos;
}
function GetTotalCajas(){
$sql = "SELECT
SUM(noCajas)
FROM
envioPedido
WHERE
envioId = '".$this->envioId."'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$total = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
return $total;
}
function GetProductos(){
$sql = "SELECT
*
FROM
pedidoDistribucion
WHERE
pedidoId = '".$this->pedidoId."'
AND
sucursalId = '".$this->sucursalId."'
AND
envioId = '".$this->envioId."'
AND
status = 'Enviado'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$productos = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
return $productos;
}
function GetProductos2(){
$sql = "SELECT
*
FROM
pedidoDistribucion
WHERE
pedidoId = '".$this->pedidoId."'
AND
sucursalId = '".$this->sucursalId."'
AND
status = 'Enviado'
AND
cantidad > 0";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$productos = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
return $productos;
}
function GetProdsTienda(){
$sql = "SELECT
*
FROM
envioProducto
WHERE
envioId = '".$this->envioId."'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$productos = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
return $productos;
}
function GetProdRecibidos(){
$sql = "SELECT
*
FROM
envioRecibir
WHERE
envioId = '".$this->envioId."'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$productos = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
return $productos;
}
function GetValorTotal(){
global $pedido;
global $producto;
$info = $this->Info();
$resOrdenes = $this->GetPedidos();
$total = 0;
foreach($resOrdenes as $res){
$pedido->setPedidoId($res['pedidoId']);
$pedido->setSucursalId($info['sucursalId']);
$items = $pedido->GetItemsDistSuc();
foreach($items as $val){
$producto->setProductoId($val['productoId']);
$infP = $producto->Info();
$pedido->setProductoId($val['productoId']);
$infPP = $pedido->GetInfoProd();
$prendas = $val['cantidad']; //* $infPP['totalLote'];
$total += $prendas * $infP['costo'];
}//foreach
}//foreach
return $total;
}
function GetTotalPrendas(){
global $pedido;
$info = $this->Info();
$resOrdenes = $this->GetPedidos();
$prendas = 0;
foreach($resOrdenes as $res){
$pedido->setPedidoId($res['pedidoId']);
$pedido->setSucursalId($info['sucursalId']);
$items = $pedido->GetItemsDistSuc();
foreach($items as $val){
if($val['envioId'] != $this->envioId && $this->envioId >= 4776) //Local 4776, Prod = 4791
continue;
$pedido->setProductoId($val['productoId']);
$infPP = $pedido->GetInfoProd();
if($infPP['prendasComp'] == 0)
$val['cantidad'] = $val['prendas'];
$prendas += $val['cantidad'];
}//foreach
}//foreach
return $prendas;
}
function GetTotalRec(){
$sql = 'SELECT SUM(noPrendas) FROM envioRecibir
WHERE envioId = "'.$this->envioId.'"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$total = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
return $total;
}
function UpdateTotal(){
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery("
UPDATE envio SET
total = '".$this->total."'
WHERE
envioId = '".$this->envioId."'"
);
$this->Util()->DBSelect($_SESSION["empresaId"])->UpdateData();
return true;
}
function UpdateProdRec(){
$sql = 'UPDATE
envioProducto
SET
recibido = "'.$this->cantidad.'"
WHERE
envProdId = "'.$this->envProdId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->ExecuteQuery();
return true;
}
function UpdateNoCajasRec(){
$sql = 'UPDATE
envio
SET
noCajasRec = "'.$this->cantidad.'"
WHERE
envioId = "'.$this->envioId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->ExecuteQuery();
return true;
}
function GetEnvioByPedido(){
$sql = 'SELECT prod.* FROM envio AS env, envioProducto AS prod, envioPedido AS ped
WHERE ped.pedidoId = "'.$this->pedidoId.'"
AND env.envioId = prod.envioId
AND env.envioId = ped.envioId';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$envios = $this->Util()->DBSelect($_SESSION['empresaId'])->GetResult();
return $envios;
}
function GetEnvioByPedidoUtil(){
$sql = 'SELECT sucursalId FROM envioPedido
LEFT JOIN envio ON envio.envioId = envioPedido.envioId
WHERE envioPedido.pedidoId = "'.$this->pedidoId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$envios = $this->Util()->DBSelect($_SESSION['empresaId'])->GetRow();
return $envios;
}
function GetEnviosTransito(){
if($this->sucursalId)
$sqlFilter = ' AND sucursalId = "'.$this->sucursalId.'"';
if($this->fechaIni)
$sqlFilter .= ' AND DATE(fecha) >= "'.$this->fechaIni.'"';
if($this->fechaFin)
$sqlFilter .= ' AND DATE(fecha) <= "'.$this->fechaFin.'"';
$sql = 'SELECT * FROM envio WHERE status = "Pendiente"
AND tipo = "CT"'.$sqlFilter;
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$envios = $this->Util()->DBSelect($_SESSION['empresaId'])->GetResult();
return $envios;
}
function GetPedidosByEnvio(){
$sql = 'SELECT pedidoId FROM envioPedido
WHERE envioId = "'.$this->envioId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$pedidos = $this->Util()->DBSelect($_SESSION['empresaId'])->GetResult();
return $pedidos;
}
function GetTotalProdsRec(){
$sql = 'SELECT SUM(noPrendas) FROM envioRecibir
WHERE envioId = "'.$this->envioId.'"
AND productoId = "'.$this->productoId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$total = $this->Util()->DBSelect($_SESSION['empresaId'])->GetSingle();
return $total;
}
function GetTotalProdsRecTT(){
$sql = 'SELECT SUM(recibido) FROM envioProducto
WHERE envioId = "'.$this->envioId.'"
AND productoId = "'.$this->productoId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$total = $this->Util()->DBSelect($_SESSION['empresaId'])->GetSingle();
return $total;
}
function ExistProductoRec(){
$sql = 'SELECT COUNT(*) FROM envioRecibir
WHERE envioId = "'.$this->envioId.'"
AND productoId = "'.$this->productoId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$total = $this->Util()->DBSelect($_SESSION['empresaId'])->GetSingle();
return $total;
}
function ExistProductoRecTT(){
$sql = 'SELECT COUNT(*) FROM envioProducto
WHERE envioId = "'.$this->envioId.'"
AND productoId = "'.$this->productoId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$total = $this->Util()->DBSelect($_SESSION['empresaId'])->GetSingle();
return $total;
}
function ExistProductoRep(){
$sql = 'SELECT COUNT(*) FROM envioReporteProd
WHERE envioId = "'.$this->envioId.'"
AND productoId = "'.$this->productoId.'"
AND status <> "Rechazado"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$total = $this->Util()->DBSelect($_SESSION['empresaId'])->GetSingle();
return $total;
}
function SaveReporteProd(){
$sql = "INSERT INTO envioReporteProd
(
envioId,
sucursalId,
productoId,
total,
tipo,
cantidad,
fecha,
usuarioId
)
VALUES (
'".$this->envioId."',
'".$this->sucursalId."',
'".$this->productoId."',
'".$this->total."',
'".$this->tipo."',
'".$this->cantidad."',
'".date('Y-m-d H:i:s')."',
'".$this->usuarioId."'
)";
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->InsertData();
$this->Util()->setError(30074, "complete");
$this->Util()->PrintErrors();
return true;
}
function DelEnvRepProd(){
$sql = "DELETE FROM
envioReporteProd
WHERE
envRepProdId = '".$this->envRepProdId."'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$this->Util()->DBSelect($_SESSION["empresaId"])->DeleteData();
$this->Util()->setError(30076, "complete");
$this->Util()->PrintErrors();
return true;
}
function EnumRepProd()
{
if($this->sucursalId)
$sqlFilter .= ' AND sucursalId = "'.$this->sucursalId.'"';
$sql = "SELECT COUNT(*) FROM envioReporteProd WHERE 1 ".$sqlFilter;
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$total = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
$pages = $this->Util->HandleMultipages($this->page, $total ,WEB_ROOT."/envios-recibir-reporte");
$sqlAdd = " LIMIT ".$pages["start"].", ".$pages["items_per_page"];
$sql = "SELECT * FROM envioReporteProd
WHERE 1 ".$sqlFilter."
ORDER BY envRepProdId DESC".$sqlAdd;
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$productos = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
$data["items"] = $productos;
$data["pages"] = $pages;
return $data;
}
function SearchRepProd()
{
$sqlAdd = '';
if($this->sucursalId)
$sqlAdd .= ' AND sucursalId = "'.$this->sucursalId.'"';
if($this->envioId)
$sqlAdd .= ' AND envioId = "'.$this->envioId.'"';
if($this->productoId)
$sqlAdd .= ' AND productoId = "'.$this->productoId.'"';
if($this->status)
$sqlAdd .= ' AND status = "'.$this->status.'"';
$sql = "SELECT * FROM envioReporteProd
WHERE 1 ".$sqlAdd."
ORDER BY envRepProdId ASC";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$productos = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
$data["items"] = $productos;
$data["pages"] = $pages;
return $data;
}
function AutorizarRepProd(){
$sql = "UPDATE envioReporteProd SET status = 'Autorizado'
WHERE envRepProdId = ".$this->envRepProdId;
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$this->Util()->DBSelect($_SESSION["empresaId"])->UpdateData();
$this->Util()->setError(20134, "complete");
$this->Util()->PrintErrors();
return true;
}
function RechazarRepProd(){
$sql = "UPDATE envioReporteProd SET status = 'Rechazado'
WHERE envRepProdId = ".$this->envRepProdId;
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$this->Util()->DBSelect($_SESSION["empresaId"])->UpdateData();
$this->Util()->setError(20135, "complete");
$this->Util()->PrintErrors();
return true;
}
function InfoRepProd(){
$sql = 'SELECT * FROM envioReporteProd
WHERE envRepProdId = "'.$this->envRepProdId.'"';
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$info = $this->Util()->DBSelect($_SESSION['empresaId'])->GetRow();
return $info;
}
function AjustarInventario(){
$sql = "UPDATE inventario SET status = 'Ajuste'
WHERE envioId = '".$this->envioId."'
AND productoId = '".$this->productoId."'
AND status = 'Disponible'
LIMIT ".$this->cantidad;
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$this->Util()->DBSelect($_SESSION["empresaId"])->UpdateData();
return true;
}
function AjustarInventarioTT(){
$sql = "UPDATE inventario SET envioId = envioIdFS, envioIdFS = 0, sucursalId = '".$this->sucursalId."'
WHERE envioId = '".$this->envioId."'
AND productoId = '".$this->productoId."'
AND status = 'Disponible'
LIMIT ".$this->cantidad;
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$this->Util()->DBSelect($_SESSION["empresaId"])->UpdateData();
return true;
}
function AjustarEnvio(){
$envioId = $this->envioId;
$sql = 'SELECT *
FROM envioRecibir
WHERE envioId = "'.$envioId.'"
ORDER BY envioRecId ASC';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$resEnvios = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
foreach($resEnvios as $res){
$envioRecId = $res['envioRecId'];
$productoId = $res['productoId'];
$pedidoId = $res['pedidoId'];
//Checamos si existe el producto
$sql = 'SELECT COUNT(*)
FROM envioRecibir
WHERE envioRecId = "'.$envioRecId.'"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$existe = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
if(!$existe)
continue;
$sql = 'SELECT COUNT(*)
FROM envioRecibir
WHERE envioId = "'.$envioId.'"
AND productoId = "'.$productoId.'"
AND pedidoId = "'.$pedidoId.'"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$total = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
if($total > 1){
$sql = 'DELETE FROM envioRecibir
WHERE envioId = "'.$envioId.'"
AND productoId = "'.$productoId.'"
AND pedidoId = "'.$pedidoId.'"
AND envioRecId <> '.$envioRecId;
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$this->Util()->DBSelect($_SESSION["empresaId"])->DeleteData();
}//if
$sql = 'SELECT COUNT(*)
FROM inventario
WHERE envioId = "'.$envioId.'"
AND productoId = "'.$productoId.'"
AND pedidoId = "'.$pedidoId.'"';
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$totalInv = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
if($totalInv > $res['noPrendas']){
$sobrante = $totalInv - $res['noPrendas'];
$sql = 'DELETE FROM inventario
WHERE envioId = "'.$envioId.'"
AND productoId = "'.$productoId.'"
AND pedidoId = "'.$pedidoId.'"
AND status = "Disponible"
LIMIT '.$sobrante;
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$this->Util()->DBSelect($_SESSION["empresaId"])->DeleteData();
}
}//foreach
}//AjustarEnvio
function DesbProdRecT(){
$envioId = $this->envioId;
$sql = "SELECT *
FROM envioProducto
WHERE envioId = ".$envioId;
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$envios = $this->Util()->DBSelect($_SESSION["empresaId"])->GetResult();
foreach($envios as $res){
$recibido = $res['recibido'];
$cantidad = $res['cantidad'];
$sql = "SELECT COUNT(*)
FROM inventario
WHERE envioIdBloq = ".$envioId."
AND productoId = ".$res['productoId']."
AND status = 'Bloqueado'";
$this->Util()->DBSelect($_SESSION["empresaId"])->setQuery($sql);
$bloqueados = $this->Util()->DBSelect($_SESSION["empresaId"])->GetSingle();
if($bloqueados >= $cantidad){
$this->setEnvioId($envioId);
$infE = $this->Info();
$sql = 'UPDATE
inventario
SET
sucursalId = "'.$infE['sucursalId'].'",
envioId = envioIdBloq,
envioIdBloq = 0,
status = "Disponible"
WHERE
envioIdBloq = "'.$envioId.'"
AND productoId = "'.$res['productoId'].'"
AND status = "Bloqueado"
LIMIT '.$recibido;
$this->Util()->DBSelect($_SESSION['empresaId'])->setQuery($sql);
$this->Util()->DBSelect($_SESSION['empresaId'])->UpdateData();
}
}//foreach
}
}//Envio
?>