<?php 
//incluir la conexion de base de datos
require "../config/Conexion.php";
class Articulo{


	//implementamos nuestro constructor
public function __construct(){

}

//metodo insertar registro unidademedidad
public function insertar($idcategoria,$idalmacen,$codigo,$nombre,$stock,$precio,$preciod,$costo,$costod,$descripcion,$imagen,$exento,$idcategoriadeunidades,$idunidademedidad,$unidademedidad,$idfactorunidademedidad,$idtipoarticulo,$gradoalcohol,$preciopvp,$preciopvpd,$impuestoart18,$impuestoart18d,$preciolbs,$preciorbs,$preciodbs,$precioldollar,$preciordollar,$precioddollar,$idalicuota,$pvpldollar,$pvprdollar,$pvpddollar,$pvplbs,$pvprbs,$pvpdbs){
	$sql="INSERT INTO articulo (idcategoria,idalmacen,codigo,nombre,stock,precio,preciod,costo,costod,descripcion,imagen,tipo,porcentaje,condicion,exento,idcategoriadeunidades,idunidademedidad,unidademedidad,idfactorunidademedidad,idtipoarticulo,gradoalcohol,preciopvp,preciopvpd,impuestoart18,impuestoart18d,preciob,precioc,preciobd,preciocd,idalicuota,pvpb,pvpdb,pvpc,pvpdc)
	 VALUES ('$idcategoria','$idalmacen','$codigo','$nombre','$stock','$precio','$preciod','$costo','$costod','$descripcion','$imagen','A','0','1','$exento','$idcategoriadeunidades','$idunidademedidad','$unidademedidad','$idfactorunidademedidad','$idtipoarticulo','$gradoalcohol','$preciopvp','$preciopvpd','$impuestoart18','$impuestoart18d','$preciolbs','$preciorbs','$precioldollar','$preciordollar','$idalicuota','$pvplbs','$pvpldollar','$pvprbs','$pvprdollar')";
	//echo $sql;
	return ejecutarConsulta($sql);
}

public function editar($idarticulo,$idcategoria,$idalmacen,$codigo,$nombre,$stock,$precio,$preciod,$costo,$costod,$descripcion,$imagen,$exento,$idcategoriadeunidades,$idunidademedidad,$unidademedidad,$idfactorunidademedidad,$idtipoarticulo,$gradoalcohol,$preciopvp,$preciopvpd,$impuestoart18,$impuestoart18d,$preciolbs,$preciorbs,$preciodbs,$precioldollar,$preciordollar,$precioddollar,$idalicuota,$pvpldollar,$pvprdollar,$pvpddollar,$pvplbs,$pvprbs,$pvpdbs){
	$sql="UPDATE articulo SET idcategoria='$idcategoria',idalmacen='$idalmacen',codigo='$codigo', nombre='$nombre',stock='$stock',precio='$precio',preciod='$preciod',costo='$costo',costod='$costod',descripcion='$descripcion',imagen='$imagen',exento='$exento',idcategoriadeunidades='$idcategoriadeunidades',idunidademedidad='$idunidademedidad',unidademedidad='$unidademedidad', idfactorunidademedidad='$idfactorunidademedidad', idtipoarticulo='$idtipoarticulo', gradoalcohol='$gradoalcohol', preciopvp='$preciopvp', preciopvpd='$preciopvpd',impuestoart18='$impuestoart18',impuestoart18d='$impuestoart18d',preciob='$preciolbs',precioc='$preciorbs',preciobd='$precioldollar',preciocd='$preciordollar',idalicuota='$idalicuota',pvpb='$pvplbs',pvpdb='$pvpldollar',pvpc='$pvprbs',pvpdc='$pvprdollar' WHERE idarticulo='$idarticulo'";
	//echo $sql;
	return ejecutarConsulta($sql);
}
public function desactivar($idarticulo){
	$sql="UPDATE articulo SET condicion='0' WHERE idarticulo='$idarticulo'";
	return ejecutarConsulta($sql);
}
public function activar($idarticulo){
	$sql="UPDATE articulo SET condicion='1' WHERE idarticulo='$idarticulo'";
	return ejecutarConsulta($sql);
}

//metodo para mostrar registros
public function mostrar($idarticulo){
	$sql="SELECT * FROM articulo WHERE idarticulo='$idarticulo'";
	return ejecutarConsultaSimpleFila($sql);
}

//metodo para buscar un registro po codigo registros
public function buscararticulo($codigo){
	$sql="SELECT * FROM articulo WHERE codigo='$codigo'";
	return ejecutarConsultaSimpleFila($sql);
}

//metodo para buscar el numero de lote
public function buscarlote($idarticulo){
	$sql="SELECT * FROM lote WHERE idarticulo='$idarticulo'";
return ejecutarConsultaSimpleFila($sql);
}


//metodo para buscar un registro tipo de boleto
public function selectBoleto(){
	$sql="SELECT * FROM articulo WHERE nombre like '%BOLETO%'";
	return ejecutarConsulta($sql);
}

//listar registros 
public function listar(){
	$sql="SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.codigo, a.nombre,a.stock,a.precio,a.costo,IF ((((a.preciod*(1+(SELECT iva FROM empresa_impuestos)/100))-TRUNCATE((a.preciod*(1+(SELECT iva FROM empresa_impuestos)/100)),0))>0.49 AND
	((a.preciod*(1+(SELECT iva FROM empresa_impuestos)/100))-TRUNCATE((a.preciod*(1+(SELECT iva FROM empresa_impuestos)/100)),0))<0.55),
	(TRUNCATE((a.preciod*(1+(SELECT iva FROM empresa_impuestos)/100)),0)+0.5),
	(round(a.preciod*(1+((SELECT iva FROM empresa_impuestos)/100))))) as preciod,
	a.descripcion,a.imagen,a.condicion FROM articulo a INNER JOIN categoria c ON a.idcategoria=c.idcategoria
	WHERE a.tipo='A'";
	return ejecutarConsulta($sql);
}

//listar registros activos
public function listarActivos(){
	$sql="SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.codigo, a.nombre,a.stock,a.precio,a.costo,
	a.descripcion,a.imagen,a.condicion FROM articulo a INNER JOIN categoria c ON a.idcategoria=c.idcategoria 
	WHERE a.condicion='1' AND a.tipo='A'";
	return ejecutarConsulta($sql);
}


//listar registros activos
public function listarActivosBodegart(){
	$sql="SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.idalmacen,l.nombre,a.codigo, a.nombre,a1.stock,a.precio,a.costo, a.descripcion,a.imagen,a.condicion FROM almacen1 a1 INNER JOIN articulo a ON a.idarticulo=a1.idarticulo INNER JOIN categoria c ON a.idcategoria=c.idcategoria INNER JOIN almacen l ON l.idalmacen=a.idalmacen WHERE a.condicion='1' AND a.tipo='A' AND a1.stock>0";
	return ejecutarConsulta($sql);
}

public function listarActivosBodegartIngreso(){
	$sql="SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.idalmacen,l.nombre,a.codigo, a.nombre,a1.stock,a.precio,a.costo, a.descripcion,a.imagen,a.condicion, a.preciod, a.costod FROM almacen1 a1 INNER JOIN articulo a ON a.idarticulo=a1.idarticulo INNER JOIN categoria c ON a.idcategoria=c.idcategoria INNER JOIN almacen l ON l.idalmacen=a.idalmacen WHERE a.condicion='1' AND a.tipo='A' AND (a1.stock>0 OR a.idalmacen=a1.idalmacen)";
	return ejecutarConsulta($sql);
}


//listar registros activos
public function listarActivosBodegartCafetin(){
	$sql="SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.idalmacen,l.nombre,a.codigo, a.nombre,a2.stock,a.precio,a.costo, a.descripcion,a.imagen,a.condicion FROM almacen2 a2 INNER JOIN articulo a ON a.idarticulo=a2.idarticulo INNER JOIN categoria c ON a.idcategoria=c.idcategoria INNER JOIN almacen l ON l.idalmacen=a.idalmacen WHERE a.condicion='1' AND a.tipo='A' AND a2.stock>0";
	//$sql="SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.codigo, a.nombre,a.stock,a.precio,a.costo, a.descripcion,a.imagen,a.condicion FROM articulo a INNER JOIN categoria c ON a.idcategoria=c.idcategoria WHERE a.condicion='1' AND a.tipo='A' AND c.nombre='CAFETERIA'";
	return ejecutarConsulta($sql);
}

public function listarActivosBodegartCafetinSuministro(){
	$sql="SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.idalmacen,l.nombre,a.codigo, a.nombre,a2.stock,a.precio,a.costo, a.descripcion,a.imagen,a.condicion FROM almacen2 a2 INNER JOIN articulo a ON a.idarticulo=a2.idarticulo INNER JOIN categoria c ON a.idcategoria=c.idcategoria INNER JOIN almacen l ON l.idalmacen=a.idalmacen WHERE a.condicion='1' AND a.tipo='A' AND (a2.stock>0 OR a.idalmacen=a2.idalmacen)";
	//$sql="SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.codigo, a.nombre,a.stock,a.precio,a.costo, a.descripcion,a.imagen,a.condicion FROM articulo a INNER JOIN categoria c ON a.idcategoria=c.idcategoria WHERE a.condicion='1' AND a.tipo='A' AND c.nombre='CAFETERIA'";
	return ejecutarConsulta($sql);
}

//implementar un metodo para listar los activos, su ultimo precio y el stock(vamos a unir con el ultimo registro de la tabla detalle_ingreso)
/*public function listarActivosVenta(){
	$sql="SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.codigo, a.nombre,a.stock,
	(SELECT precio_venta FROM detalle_ingreso WHERE idarticulo=a.idarticulo ORDER BY iddetalle_ingreso DESC LIMIT 0,1) AS precio_venta,a.descripcion,a.imagen,a.condicion FROM articulo a INNER JOIN categoria c ON a.idcategoria=c.idcategoria WHERE a.condicion='1' AND a.tipo='A'";
	return ejecutarConsulta($sql);
}*/


// Esta consulta trae los producto por su numero de lote.
/*public function listarActivosVenta(){
	$sql="SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.codigo, a.nombre,((a.stock+l.cantidad)-a.stock) as stock, (SELECT precio_venta FROM detalle_ingreso WHERE idarticulo=a.idarticulo ORDER BY iddetalle_ingreso DESC LIMIT 0,1) AS precio_venta,a.descripcion,a.imagen,a.condicion,l.numerolote,l.fecha,l.cantidad FROM articulo a INNER JOIN categoria c ON a.idcategoria=c.idcategoria LEFT JOIN lote l ON a.idarticulo=l.idarticulo WHERE a.condicion='1' AND a.tipo='A' AND (l.cantidad>0 or l.cantidad is null) AND c.nombre<>'CAFETERIA' ORDER BY stock DESC";
	return ejecutarConsulta($sql);
}
*/

// Solo para bodegart porque van facturar sin importar el numero de lote
public function listarActivosVenta(){
	//SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.codigo, a.nombre,a1.stock, a1.idalmacen, (SELECT precio_venta FROM detalle_ingreso WHERE idarticulo=a.idarticulo ORDER BY iddetalle_ingreso DESC LIMIT 0,1) AS precio_venta, a.descripcion,a.imagen,a.condicion,'0000000000' as numerolote,CURRENT_TIMESTAMP as fecha, a.stock as cantidad, a.exento FROM almacen1 a1 INNER JOIN articulo a ON a.idarticulo=a1.idarticulo INNER JOIN categoria c ON a.idcategoria=c.idcategoria WHERE a.condicion='1' AND a.tipo='A' AND a1.stock>0 ORDER by a.nombre
	$sql="SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.codigo, a.nombre,a1.stock, a1.idalmacen, a.precio AS precio_venta, IF ((((a.preciod*(1+(SELECT iva FROM empresa_impuestos)/100))-TRUNCATE((a.preciod*(1+(SELECT iva FROM empresa_impuestos)/100)),0))>0.49 AND ((a.preciod*(1+(SELECT iva FROM empresa_impuestos)/100))-TRUNCATE((a.preciod*(1+(SELECT iva FROM empresa_impuestos)/100)),0))<0.55), (TRUNCATE((a.preciod*(1+(SELECT iva FROM empresa_impuestos)/100)),0)+0.5), (round(a.preciod*(1+((SELECT iva FROM empresa_impuestos)/100))))) as preciod, a.preciod as preciodsiniva, a.impuestoart18, a.preciopvp, a.descripcion,a.imagen,a.condicion,'0000000000' as numerolote,CURRENT_TIMESTAMP as fecha, a.stock as cantidad, a.exento FROM almacen1 a1 INNER JOIN articulo a ON a.idarticulo=a1.idarticulo INNER JOIN categoria c ON a.idcategoria=c.idcategoria WHERE a.condicion='1' AND a.tipo='A' AND a1.stock>0 ORDER by a.nombre";
	return ejecutarConsulta($sql);
}

public function listarActivosVentaa(){
	//SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.codigo, a.nombre,a1.stock, a1.idalmacen, (SELECT precio_venta FROM detalle_ingreso WHERE idarticulo=a.idarticulo ORDER BY iddetalle_ingreso DESC LIMIT 0,1) AS precio_venta, a.descripcion,a.imagen,a.condicion,'0000000000' as numerolote,CURRENT_TIMESTAMP as fecha, a.stock as cantidad, a.exento FROM almacen1 a1 INNER JOIN articulo a ON a.idarticulo=a1.idarticulo INNER JOIN categoria c ON a.idcategoria=c.idcategoria WHERE a.condicion='1' AND a.tipo='A' AND a1.stock>0 ORDER by a.nombre
	$sql="SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.codigo, a.nombre,a1.stock, a1.idalmacen, a.precio AS precio_venta, a.preciod, a.impuestoart18,a.impuestoart18d, a.preciopvp,a.preciopvpd,a.descripcion,a.imagen,a.condicion,l.numerolote,l.fecha, a.stock as cantidad, a.exento FROM almacen1 a1 INNER JOIN articulo a ON a.idarticulo=a1.idarticulo INNER JOIN categoria c ON a.idcategoria=c.idcategoria LEFT JOIN lote l ON a.idarticulo=l.idarticulo WHERE a.condicion='1' AND a.tipo='A' AND a1.stock>0 ORDER by a.nombre";
	return ejecutarConsulta($sql);
}

public function listarActivosVentab(){
	//SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.codigo, a.nombre,a1.stock, a1.idalmacen, (SELECT precio_venta FROM detalle_ingreso WHERE idarticulo=a.idarticulo ORDER BY iddetalle_ingreso DESC LIMIT 0,1) AS precio_venta, a.descripcion,a.imagen,a.condicion,'0000000000' as numerolote,CURRENT_TIMESTAMP as fecha, a.stock as cantidad, a.exento FROM almacen1 a1 INNER JOIN articulo a ON a.idarticulo=a1.idarticulo INNER JOIN categoria c ON a.idcategoria=c.idcategoria WHERE a.condicion='1' AND a.tipo='A' AND a1.stock>0 ORDER by a.nombre
	$sql="SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.codigo, a.nombre,a1.stock, a1.idalmacen, a.preciob AS precio_venta, a.preciobd as preciod, a.impuestoart18,a.impuestoart18d, a.pvpb as preciopvp, a.pvpdb as preciopvpd,a.descripcion,a.imagen,a.condicion,l.numerolote,l.fecha, a.stock as cantidad, a.exento FROM almacen1 a1 INNER JOIN articulo a ON a.idarticulo=a1.idarticulo INNER JOIN categoria c ON a.idcategoria=c.idcategoria LEFT JOIN lote l ON a.idarticulo=l.idarticulo WHERE a.condicion='1' AND a.tipo='A' AND a1.stock>0 ORDER by a.nombre";
	return ejecutarConsulta($sql);
}

public function listarActivosVentac(){
	//SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.codigo, a.nombre,a1.stock, a1.idalmacen, (SELECT precio_venta FROM detalle_ingreso WHERE idarticulo=a.idarticulo ORDER BY iddetalle_ingreso DESC LIMIT 0,1) AS precio_venta, a.descripcion,a.imagen,a.condicion,'0000000000' as numerolote,CURRENT_TIMESTAMP as fecha, a.stock as cantidad, a.exento FROM almacen1 a1 INNER JOIN articulo a ON a.idarticulo=a1.idarticulo INNER JOIN categoria c ON a.idcategoria=c.idcategoria WHERE a.condicion='1' AND a.tipo='A' AND a1.stock>0 ORDER by a.nombre
	$sql="SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.codigo, a.nombre,a1.stock, a1.idalmacen, a.precioc AS precio_venta, a.preciocd as preciod, a.impuestoart18,a.impuestoart18d, a.pvpc as preciopvp, a.pvpdc as preciopvpd,a.descripcion,a.imagen,a.condicion,l.numerolote,l.fecha, a.stock as cantidad, a.exento FROM almacen1 a1 INNER JOIN articulo a ON a.idarticulo=a1.idarticulo INNER JOIN categoria c ON a.idcategoria=c.idcategoria LEFT JOIN lote l ON a.idarticulo=l.idarticulo WHERE a.condicion='1' AND a.tipo='A' AND a1.stock>0 ORDER by a.nombre";
	return ejecutarConsulta($sql);
}

public function listarActivosVentaBarra(){
	//$sql="SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.codigo, a.nombre,((a.stock+l.cantidad)-a.stock) as stock, (SELECT precio_venta FROM detalle_ingreso WHERE idarticulo=a.idarticulo ORDER BY iddetalle_ingreso DESC LIMIT 0,1) AS precio_venta,a.descripcion,a.imagen,a.condicion,l.numerolote,l.fecha,l.cantidad FROM articulo a INNER JOIN categoria c ON a.idcategoria=c.idcategoria LEFT JOIN lote l ON a.idarticulo=l.idarticulo WHERE a.condicion='1' AND a.tipo='A' AND (l.cantidad>0 or l.cantidad is null) AND c.nombre='CAFETERIA' ORDER BY stock DESC";
	$sql="SELECT a.idarticulo,a.idcategoria,c.nombre as categoria,a.codigo, a.nombre,(a2.stock-IFNULL(v.cantidad,'0')) as stock,a2.idalmacen, (SELECT precio_venta FROM detalle_ingreso WHERE idarticulo=a.idarticulo ORDER BY iddetalle_ingreso DESC LIMIT 0,1) AS precio_venta, IF ((((a.preciod*(1+(SELECT iva FROM empresa_impuestos)/100))-TRUNCATE((a.preciod*(1+(SELECT iva FROM empresa_impuestos)/100)),0))>0.49 AND
	((a.preciod*(1+(SELECT iva FROM empresa_impuestos)/100))-TRUNCATE((a.preciod*(1+(SELECT iva FROM empresa_impuestos)/100)),0))<0.55),
	(TRUNCATE((a.preciod*(1+(SELECT iva FROM empresa_impuestos)/100)),0)+0.5),
	(round(a.preciod*(1+((SELECT iva FROM empresa_impuestos)/100))))) as preciod, a.preciod as preciodsiniva, a.descripcion,a.imagen,a.condicion,a.exento FROM almacen2 a2 INNER JOIN articulo a ON a.idarticulo=a2.idarticulo INNER JOIN categoria c ON a.idcategoria=c.idcategoria LEFT JOIN vistaarticulopedidopendiente v ON a.idarticulo=v.idarticulo WHERE a.condicion='1' AND a.tipo='A' AND (a2.stock-IFNULL(v.cantidad,'0'))>0";
	return ejecutarConsulta($sql);
}

}
 ?>
