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


	//implementamos nuestro constructor
public function __construct(){

}

//metodo insertar registro
public function insertar($idcliente,$idusuario,$idvendedor,$tipo_comprobante,$tipo_comprobante1,$num_pedido,$fecha_hora,$total_venta,$total_ventad,$tasa_dollar,$idclientedespacho,$idlistaprecio,$ivatd,$idalmacen1,$observacion,$diacredito,
				$idarticulo,$idalmacen,$cantidad,$precio_venta,$precio_ventad,$nrolote){
	$sql="INSERT INTO pedido (idcliente,idusuario,idvendedor,tipo_comprobante,tipo_comprobante1,num_pedido,fecha_hora,total_pedido,total_pedidod,tasa_dollar,estado,idclientedespacho,idlistaprecio,ivatd,idalmacen,observacion,diacredito) 
	     VALUES ('$idcliente','$idusuario','$idvendedor','$tipo_comprobante','$tipo_comprobante1','$num_pedido','$fecha_hora','$total_venta','$total_ventad','$tasa_dollar','Pendiente','$idclientedespacho','$idlistaprecio','$ivatd','$idalmacen1','$observacion','$diacredito')";
	//return ejecutarConsulta($sql);
	//echo $sql;
	$sw							=true;
	$idpedidoew			=ejecutarConsulta_retornarID($sql) or $sw=false;
	$num_elementos	=0;
	$num_pedidos		=0;
	$pedido 				=0;
	$pedidoactual		=0;
	$sw1							=true;
	
	
	if($sw){
		// se van ejecutar dos update para evitar duplicados en los pedidos
		$sqlp 						= "UPDATE pedido SET num_pedido='$idpedidoew' WHERE idpedido='$idpedidoew'";
		ejecutarConsulta($sqlp);
		$idempresa_venta 	= 	$_SESSION['idempresa_venta_empresa'];
		$sql_update				=	"UPDATE empresa_venta SET nropedido='$idpedidoew' WHERE idempresa_venta='$idempresa_venta'";
		ejecutarConsulta($sql_update);
		while ($num_elementos < count($idarticulo)) {
			//Se verifica si es un articulo o un servicio
			if ($nrolote[$num_elementos]=='N/A'){
				$sql_detalles="INSERT INTO detalle_serviciopedido (idpedido, idservicio, cantidad, precio_venta, precio_ventad,descuento,porcentaje) VALUES ('$idpedidoew','$idarticulo[$num_elementos]','$cantidad[$num_elementos]','$precio_venta[$num_elementos]','$precio_ventad[$num_elementos]','0','0')";
				//echo $sql_detalles;
				ejecutarConsulta($sql_detalles) or $sw=false;
			}else{
				$cantidad1	=$cantidad[$num_elementos];
				//Se busca si producto tiene un lote con inventario
				$sql_lote 	= "SELECT idlote, idarticulo, numerolote, fecha, cantidad FROM lote WHERE idarticulo='$idarticulo[$num_elementos]' AND cantidad>0 ORDER BY idarticulo,idlote ASC LIMIT 1";
				//echo $sql_lote;
				$result			=	ejecutarConsulta($sql_lote);
				if (mysqli_num_rows($result) > 0) {
					$fila 			= mysqli_fetch_assoc($result);
					$numerolote = $fila["numerolote"];
				}else{
					//Se busca si producto tiene un lote sin inventario
					$sql_lote1 	= "SELECT idlote, idarticulo, numerolote, fecha, cantidad FROM lote WHERE idarticulo='$idarticulo[$num_elementos]' AND cantidad>=0 ORDER BY idarticulo,idlote ASC LIMIT 1";
					//echo $sql_lote1;
					$result1			=	ejecutarConsulta($sql_lote1);
					if (mysqli_num_rows($result1) > 0) {
						$fila1 			= mysqli_fetch_assoc($result1);
						$numerolote = $fila1["numerolote"];
					}else{
						//producto sin lote y sin inventario
						$numerolote = '0000000000';
					}	
				}	
	
				$sql_detalle="INSERT INTO detalle_pedido (idpedido,idarticulo,idalmacen,cantidad,precio_venta,precio_ventad,numerolote,cantidad_facturada,backorder) VALUES('$idpedidoew','$idarticulo[$num_elementos]','$idalmacen[$num_elementos]','$cantidad1','$precio_venta[$num_elementos]','$precio_ventad[$num_elementos]','$numerolote','0','0')";
				//	echo $sql_detalle;
				ejecutarConsulta($sql_detalle) or $sw=false;
				
			}
			$num_elementos=$num_elementos+1;	   
		}
	}				
	
	
 
	return $sw;
	
}


public function editar($idpedido,$idcliente,$idusuario,$idvendedor,$tipo_comprobante,$tipo_comprobante1,$num_pedido,$fecha_hora,$total_venta,$total_ventad,$tasa_dollar,$idclientedespacho,$idlistaprecio,$ivatd,$idalmacen1,$observacion,$diacredito,
				$idarticulo,$idalmacen,$cantidad,$precio_venta,$precio_ventad,$nrolote){
	
	$sql="UPDATE pedido SET idcliente='$idcliente',idusuario='$idusuario',idvendedor='$idvendedor',tipo_comprobante1='$tipo_comprobante1',fecha_hora='$fecha_hora',total_pedido='$total_venta',total_pedidod='$total_ventad',tasa_dollar='$tasa_dollar',idclientedespacho='$idclientedespacho',idlistaprecio='1',ivatd='$ivatd',idalmacen='$idalmacen1',observacion='$observacion',diacredito='$diacredito'	
	WHERE idpedido='$idpedido'";
	//echo $sql;
	$sw = true;				
	ejecutarConsulta  ($sql) or $sw=false;
	
	//return ejecutarConsulta($sql);
	//echo $sql;
	$num_elementos	=0;
	$num_pedidos		=0;
	$pedido 				=0;
	$pedidoactual		=0;
	
	while ($num_elementos < count($idarticulo)) {
		if($nrolote[$num_elementos]=='N/A'){
			$sql_detalle = "UPDATE detalle_serviciopedido SET cantidad='$cantidad[$num_elementos]',precio_venta='$precio_venta[$num_elementos]',precio_ventad='$precio_ventad[$num_elementos]'
			WHERE idservicio='$idarticulo[$num_elementos]' AND idpedido='$idpedido'";
			ejecutarConsulta($sql_detalle);
			//echo $sql_detalle;
		}else{
			//Buscamos si el producto existe
			$sql1 		= "SELECT * FROM detalle_pedido WHERE idarticulo='$idarticulo[$num_elementos]' AND idpedido='$idpedido'";
			$result1	=	ejecutarConsulta($sql1);
			//echo $sql1;
			if( (mysqli_num_rows($result1) > 0)){
				$sql_detalle = "UPDATE detalle_pedido SET cantidad='$cantidad[$num_elementos]',precio_venta='$precio_venta[$num_elementos]',precio_ventad='$precio_ventad[$num_elementos]'
				WHERE idarticulo='$idarticulo[$num_elementos]' AND idpedido='$idpedido'";
				ejecutarConsulta($sql_detalle);
				//echo $sql_detalle;
			}else{
				$cantidad1	=$cantidad[$num_elementos];
				//Se busca si producto tiene un lote con inventario
				$sql_lote 	= "SELECT idlote, idarticulo, numerolote, fecha, cantidad FROM lote WHERE idarticulo='$idarticulo[$num_elementos]' AND cantidad>0 ORDER BY idarticulo,idlote ASC LIMIT 1";
				//echo $sql_lote;
				$result			=	ejecutarConsulta($sql_lote);
				if (mysqli_num_rows($result) > 0) {
					$fila 			= mysqli_fetch_assoc($result);
					$numerolote = $fila["numerolote"];
				}else{
					//Se busca si producto tiene un lote sin inventario
					$sql_lote1 	= "SELECT idlote, idarticulo, numerolote, fecha, cantidad FROM lote WHERE idarticulo='$idarticulo[$num_elementos]' AND cantidad>=0 ORDER BY idarticulo,idlote ASC LIMIT 1";
					//echo $sql_lote1;
					$result1			=	ejecutarConsulta($sql_lote1);
					if (mysqli_num_rows($result1) > 0) {
						$fila1 			= mysqli_fetch_assoc($result1);
						$numerolote = $fila1["numerolote"];
					}else{
						//producto sin lote y sin inventario
						$numerolote = '0000000000';
					}	
				}
				$sql_detalle="INSERT INTO detalle_pedido (idpedido,idarticulo,idalmacen,cantidad,precio_venta,precio_ventad,numerolote,cantidad_facturada,backorder) VALUES('$idpedido','$idarticulo[$num_elementos]','$idalmacen[$num_elementos]','$cantidad1','$precio_venta[$num_elementos]','$precio_ventad[$num_elementos]','$numerolote','0','0')";
				//	echo $sql_detalle;
				ejecutarConsulta($sql_detalle);
				//echo $sql_detalle;
			}
		}
				
		$num_elementos=$num_elementos+1;	   
	}

	//Revision final del pedido se verifica el pedido original con el actualizado y se quitan los articulos que no esten
	$sql    ="SELECT * FROM detalle_pedido WHERE idpedido='$idpedido'";
	$result	=	ejecutarConsulta($sql);
	if (mysqli_num_rows($result) > 0) {
    	while($fila = mysqli_fetch_assoc($result)){
    	    $idar = $fila["idarticulo"];
    	   // echo $idar." idarticulo del pedido original ";
    	    if (in_array($idar, $idarticulo)) {
                //echo $idar." Esta en el pedido nuevo ";
            }else{
                //echo $idar." No esta en el pedido nuevo ";
                $sqld="DELETE FROM detalle_pedido WHERE idpedido = '$idpedido' AND idarticulo='$idar'";
                ejecutarConsulta($sqld);
            }
    	}
	}
    //echo 'si';
	return $sw;
	
}


public function anular($idpedido,$idusuario){
	$sql="UPDATE pedido SET estado='Anulado',idusuario='$idusuario' WHERE idpedido='$idpedido'";
	return ejecutarConsulta($sql);
}

public function procesarpedido($idpedido,$idusuario){
	$sql="UPDATE pedido SET estado='Verificado',idusuario='$idusuario' WHERE idpedido='$idpedido'";
	return ejecutarConsulta($sql);
}

public function procesarpedidor($idpedido,$idusuario){
	$sql="UPDATE pedido SET estado='Pendiente',idusuario='$idusuario' WHERE idpedido='$idpedido'";
	return ejecutarConsulta($sql);
}



public function eliminararticulodecafeteriabd($iddetallec,$idpedidoc,$idarticuloc){
	$sql="DELETE FROM detalle_barra WHERE iddetalle_pedido='$iddetallec' AND idpedido='$idpedidoc' AND idarticulo='$idarticuloc'";
	return ejecutarConsulta($sql);
}


//implementar un metodopara mostrar los datos de unregistro a modificar
public function mostrar($idpedido){
	$sql="SELECT v.idpedido,DATE(v.fecha_hora) as fecha,v.idcliente,p.nombre as cliente,v.idclientedespacho,p.num_documento, p.tipo_documento,u.idusuario,u.nombre as usuario, v.tipo_comprobante,v.tipo_comprobante1,v.total_pedido,v.total_pedidod,v.estado,v.tasa_dollar,v.num_pedido,ve.idvendedor,ve.nombre as vendedor,v.observacion,v.diacredito FROM pedido v INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN usuario u ON v.idusuario=u.idusuario LEFT JOIN vendedor ve ON ve.idvendedor=v.idvendedor WHERE idpedido='$idpedido'";
	return ejecutarConsultaSimpleFila($sql);
}

public function listarDetalle($idpedido){
	$sql="SELECT dv.idpedido,dv.idarticulo,a.nombre,dv.cantidad,dv.precio_venta,dv.precio_ventad,(dv.cantidad*dv.precio_venta) as subtotal, p.tasa_dollar, (dv.cantidad*dv.precio_ventad) as subtotald, dv.numerolote,dv.idalmacen,a.cantidadmayor FROM detalle_pedido dv INNER JOIN articulo a ON dv.idarticulo=a.idarticulo INNER JOIN pedido p ON dv.idpedido=p.idpedido WHERE dv.idpedido='$idpedido' UNION ALL SELECT dv.idpedido,dv.idservicio as idarticulo,a.nombre,dv.cantidad,dv.precio_venta,dv.precio_ventad,(dv.cantidad*dv.precio_venta) as subtotal, p.tasa_dollar, (dv.cantidad*dv.precio_ventad) as subtotald, 'N/A' AS numerolote,'N/A' AS idalmacen,1000000 AS cantidadmayor FROM detalle_serviciopedido dv INNER JOIN servicio a ON a.idservicio=dv.idservicio INNER JOIN pedido p ON dv.idpedido=p.idpedido WHERE dv.idpedido='$idpedido'";
	return ejecutarConsulta($sql);
}

//listar registros
public function listar(){
	$sql="SELECT v.idpedido,date_format(DATE(v.fecha_hora), '%d-%m-%Y') as fecha,v.idcliente,p.nombre as cliente,u.idusuario,u.nombre as usuario, v.tipo_comprobante,FORMAT(v.total_pedido, 2) as total_pedido,FORMAT(v.total_pedidod,2) as total_pedidod,v.estado,v.tasa_dollar,v.num_pedido,v1.nombre AS vendedor,FORMAT(v.ivatd,2) as ivatd,FORMAT(IF(d.cajas IS null,0,d.cajas),0) as cajas FROM pedido v LEFT JOIN (SELECT idpedido,SUM(cantidad) as cajas FROM detalle_pedido GROUP BY idpedido) d ON d.idpedido=v.idpedido INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN usuario u ON v.idusuario=u.idusuario INNER JOIN vendedor v1 ON v1.idvendedor=p.idvendedor ORDER BY v.idpedido DESC";
	return ejecutarConsulta($sql);
}

//listar registros de pedidos pero por producto
public function listardetalleexportar(){
	$sql="SELECT v.num_pedido,v.estado,date_format(DATE(v.fecha_hora), '%d-%m-%Y') as fecha,p.nombre as cliente,v1.nombre AS vendedor,d.idarticulo,a.nombre as articulo,FORMAT(IF( d.cantidad IS null,0,d.cantidad),0) as cajas FROM pedido v LEFT JOIN detalle_pedido d ON d.idpedido=v.idpedido INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN usuario u ON v.idusuario=u.idusuario INNER JOIN vendedor v1 ON v1.idvendedor=p.idvendedor LEFT JOIN articulo a ON a.idarticulo=d.idarticulo WHERE v.estado='Pendiente' OR v.estado='Verificado' ORDER BY v.idpedido DESC";
	return ejecutarConsulta($sql);
}

//listar registros
public function listarvendedor($idusuario){
	$sql="SELECT v.idpedido,date_format(DATE(v.fecha_hora), '%d-%m-%Y') as fecha,v.idcliente,p.nombre as cliente, v.tipo_comprobante,v.total_pedido,v.total_pedidod,v.estado,v.tasa_dollar,v.num_pedido,p.idvendedor,ve.nombre as vendedor,v.idusuario FROM pedido v INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN vendedor ve ON ve.idvendedor=p.idvendedor INNER JOIN relacionvendedorusuario r ON r.idvendedor=p.idvendedor WHERE r.idusuario='$idusuario' ORDER BY v.idpedido DESC";
	return ejecutarConsulta($sql);
}

public function listarPedido(){
	//$sql="SELECT v.idpedido,date_format(DATE(v.fecha_hora), '%d-%m-%Y') as fecha,v.idcliente,p.nombre as cliente,u.idusuario,u.nombre as usuario, v.tipo_comprobante,FORMAT(v.total_pedido, 2) as total_pedido,FORMAT(v.total_pedidod,2) as total_pedidod,v.estado,v.tasa_dollar,v.num_pedido,v.idvendedor,ve.nombre as vendedor,p.idzona, z.nombre as zona,FORMAT(IF(d.cajas IS null,0,d.cajas),0) as cajas FROM pedido v LEFT JOIN (SELECT idpedido,SUM(cantidad) as cajas FROM detalle_pedido GROUP BY idpedido) d ON d.idpedido=v.idpedido INNER JOIN persona p ON v.idcliente=p.idpersona LEFT JOIN vendedor ve ON v.idvendedor=ve.idvendedor INNER JOIN usuario u ON v.idusuario=u.idusuario LEFT JOIN zona z ON p.idzona=z.idzona WHERE v.estado='Pendiente' ORDER BY v.idpedido DESC";
	$sql="SELECT v.idpedido,date_format(DATE(v.fecha_hora), '%d-%m-%Y') as fecha,v.idcliente,p.nombre as cliente,u.idusuario,u.nombre as usuario, v.tipo_comprobante,FORMAT(v.total_pedido, 2) as total_pedido,FORMAT(v.total_pedidod,2) as total_pedidod,v.estado,v.tasa_dollar,v.num_pedido,v.idvendedor,ve.nombre as vendedor,p.idzona, z.nombre as zona,FORMAT(IF(d.cajas IS null,0,d.cajas),0) as cajas FROM pedido v LEFT JOIN (SELECT idpedido,SUM(cantidad) as cajas FROM detalle_pedido GROUP BY idpedido) d ON d.idpedido=v.idpedido INNER JOIN persona p ON v.idcliente=p.idpersona LEFT JOIN vendedor ve ON v.idvendedor=ve.idvendedor INNER JOIN usuario u ON v.idusuario=u.idusuario LEFT JOIN zona z ON p.idzona=z.idzona WHERE v.estado='Verificado' ORDER BY v.idpedido DESC";
	return ejecutarConsulta($sql);
}

//Pedido con la lista de precio del cliente
public function agregarDetallePedido($idpedido){
	$sql="SELECT dv.idarticulo,a.nombre as articulo,a.cantidadmayor,l.numerolote,dv.cantidad,(CASE WHEN pe.idlistaprecio =1 THEN a.preciod WHEN pe.idlistaprecio =2 THEN a.preciobd WHEN pe.idlistaprecio =3 THEN a.preciocd WHEN pe.idlistaprecio =4 THEN a.precioddd ELSE a.precioed END)*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1) as precio,(CASE WHEN pe.idlistaprecio =1 THEN a.preciod WHEN pe.idlistaprecio =2 THEN a.preciobd WHEN pe.idlistaprecio =3 THEN a.preciocd WHEN pe.idlistaprecio =4 THEN a.precioddd ELSE a.precioed END) as preciod,	
	0 as porcentaje,0 as descuento,
	dv.cantidad*(CASE WHEN pe.idlistaprecio =1 THEN a.preciod WHEN pe.idlistaprecio =2 THEN a.preciobd WHEN pe.idlistaprecio =3 THEN a.preciocd WHEN pe.idlistaprecio =4 THEN a.precioddd ELSE a.precioed END)*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1) as subtotal,dv.cantidad*(CASE WHEN pe.idlistaprecio =1 THEN a.preciod WHEN pe.idlistaprecio =2 THEN a.preciobd WHEN pe.idlistaprecio =3 THEN a.preciocd WHEN pe.idlistaprecio =4 THEN a.precioddd ELSE a.precioed END) as subtotald,
	dv.idpedido,dv.idalmacen,
	IF (a.exento='no',((CASE WHEN pe.idlistaprecio =1 THEN a.preciod WHEN pe.idlistaprecio =2 THEN a.preciobd WHEN pe.idlistaprecio =3 THEN a.preciocd WHEN pe.idlistaprecio =4 THEN a.precioddd ELSE a.precioed END)*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1)*(1+((SELECT iva FROM empresa_impuestos)/100)))-((CASE WHEN pe.idlistaprecio =1 THEN a.preciod    WHEN pe.idlistaprecio =2 THEN a.preciobd WHEN pe.idlistaprecio =3 THEN a.preciocd	WHEN pe.idlistaprecio =4 THEN a.precioddd ELSE a.precioed END)*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1)),0) as iva,IF (a.exento='no',((CASE WHEN pe.idlistaprecio =1 THEN a.preciod WHEN pe.idlistaprecio =2 THEN a.preciobd WHEN pe.idlistaprecio =3 THEN a.preciocd WHEN pe.idlistaprecio =4 THEN a.precioddd ELSE a.precioed END)*(1+((SELECT iva FROM empresa_impuestos)/100)))-((CASE WHEN pe.idlistaprecio =1 THEN a.preciod WHEN pe.idlistaprecio =2 THEN a.preciobd ELSE a.preciocd END)),0) as ivad,	IF (a.exento='si',(CASE WHEN pe.idlistaprecio =1 THEN a.preciod WHEN pe.idlistaprecio =2 THEN a.preciobd WHEN pe.idlistaprecio =3 THEN a.preciocd WHEN pe.idlistaprecio =4 THEN a.precioddd ELSE a.precioed END)*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1),0) as exentot,
	IF (a.exento='si',(CASE WHEN pe.idlistaprecio =1 THEN a.preciod WHEN pe.idlistaprecio =2 THEN a.preciobd WHEN pe.idlistaprecio =3 THEN a.preciocd WHEN pe.idlistaprecio =4 THEN a.precioddd ELSE a.precioed END),0) as exentotd,a.impuestoart18d*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1) as impoart18,	
	a.impuestoart18d as impoart18d,	
	(CASE WHEN pe.idlistaprecio =1 THEN a.preciopvpd     WHEN pe.idlistaprecio =2 THEN a.pvpdb WHEN pe.idlistaprecio =3 THEN a.pvpdc WHEN pe.idlistaprecio =4 THEN a.pvpddd ELSE a.pvpde END)*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1) as preciopvp,(CASE WHEN pe.idlistaprecio =1 THEN a.preciopvpd WHEN pe.idlistaprecio =2 THEN a.pvpdb WHEN pe.idlistaprecio =3 THEN a.pvpdc WHEN pe.idlistaprecio =4 THEN a.pvpddd ELSE a.pvpde END) as preciopvpd, 
	l.cantidad as stock,l.idlote
	FROM detalle_pedido dv 
	INNER JOIN pedido pe ON pe.idpedido=dv.idpedido 
	INNER JOIN articulo a ON a.idarticulo=dv.idarticulo 
	INNER JOIN pedido p ON p.idpedido=dv.idpedido 
	LEFT JOIN (SELECT * FROM lote WHERE cantidad>0 GROUP BY idarticulo) l ON l.idarticulo=dv.idarticulo
	LEFT JOIN almacen1 a1 ON a.idarticulo=a1.idarticulo 
	WHERE dv.idpedido='$idpedido'";
	return ejecutarConsulta($sql);
}

//Pedido Original con el precio del pedido
public function agregarDetallePedido1($idpedido){
	//$sql="SELECT dv.idarticulo,a.nombre as articulo,a.cantidadmayor,l.numerolote,dv.cantidad,dv.precio_ventad*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1) as precio ,dv.precio_ventad as preciod,0 as porcentaje,0 as descuento,(dv.precio_ventad*dv.cantidad)*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1) as subtotal,	dv.cantidad*dv.precio_ventad as subtotald,dv.idpedido,dv.idalmacen,IF (a.exento='si',dv.precio_ventad*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1),0) as exentot,IF (a.exento='si',dv.precio_ventad,0) as exentotd,IF (a.exento='no',((dv.precio_ventad*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1))*((SELECT iva FROM empresa_impuestos)/100)),0) as iva,IF (a.exento='no',((dv.precio_ventad*((SELECT iva FROM empresa_impuestos)/100))),0) as ivad,a.impuestoart18d*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1) as impoart18,a.impuestoart18d as impoart18d,	(CASE WHEN pe.idlistaprecio =1 THEN a.preciopvpd     WHEN pe.idlistaprecio =2 THEN a.pvpdb WHEN pe.idlistaprecio =3 THEN a.pvpdc WHEN pe.idlistaprecio =4 THEN a.pvpddd ELSE a.pvpde END)*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1) as preciopvp,(CASE WHEN pe.idlistaprecio =1 THEN a.preciopvpd WHEN pe.idlistaprecio =2 THEN a.pvpdb WHEN pe.idlistaprecio =3 THEN a.pvpdc WHEN pe.idlistaprecio =4 THEN a.pvpddd ELSE a.pvpde END) as preciopvpd, a1.stock 	FROM detalle_pedido dv INNER JOIN pedido pe ON pe.idpedido=dv.idpedido INNER JOIN articulo a ON a.idarticulo=dv.idarticulo INNER JOIN pedido p ON p.idpedido=dv.idpedido LEFT JOIN (SELECT * FROM lote WHERE cantidad>0 GROUP BY idarticulo) l ON l.idarticulo=dv.idarticulo	LEFT JOIN almacen1 a1 ON a.idarticulo=a1.idarticulo WHERE dv.idpedido='$idpedido'";
	$sql="SELECT dv.idarticulo,a.nombre as articulo,a.cantidadmayor,l.numerolote,dv.cantidad,dv.precio_ventad*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1) as precio ,dv.precio_ventad as preciod,0 as porcentaje,0 as descuento,(dv.precio_ventad*dv.cantidad)*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1) as subtotal,	dv.cantidad*dv.precio_ventad as subtotald,dv.idpedido,dv.idalmacen,	IF (a.exento='si',dv.precio_ventad*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1),0) as exentot, IF (a.exento='si',dv.precio_ventad,0) as exentotd, IF (a.exento='no',((dv.precio_ventad*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1))*((SELECT iva FROM empresa_impuestos)/100)),0) as iva, IF (a.exento='no',((dv.precio_ventad*((SELECT iva FROM empresa_impuestos)/100))),0) as ivad,	a.impuestoart18d*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1) as impoart18,a.impuestoart18d as impoart18d,	(CASE WHEN pe.idlistaprecio =1 THEN a.preciopvpd     WHEN pe.idlistaprecio =2 THEN a.pvpdb WHEN pe.idlistaprecio =3 THEN a.pvpdc WHEN pe.idlistaprecio =4 THEN a.pvpddd ELSE a.pvpde END)*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1) as preciopvp,(CASE WHEN pe.idlistaprecio =1 THEN a.preciopvpd WHEN pe.idlistaprecio =2 THEN a.pvpdb WHEN pe.idlistaprecio =3 THEN a.pvpdc WHEN pe.idlistaprecio =4 THEN a.pvpddd ELSE a.pvpde END) as preciopvpd, l.cantidad AS stock  	FROM detalle_pedido dv INNER JOIN pedido pe ON pe.idpedido=dv.idpedido INNER JOIN articulo a ON a.idarticulo=dv.idarticulo INNER JOIN pedido p ON p.idpedido=dv.idpedido LEFT JOIN (SELECT * FROM lote WHERE cantidad>0 GROUP BY idarticulo) l ON l.idarticulo=dv.idarticulo LEFT JOIN almacen1 a1 ON a.idarticulo=a1.idarticulo WHERE dv.idpedido='$idpedido'	UNION ALL	SELECT dv.idservicio AS idarticulo,a.nombre as articulo,1000000 AS cantidadmayor,'N/A' AS numerolote,dv.cantidad,dv.precio_venta as precio ,dv.precio_ventad as preciod,0 as porcentaje,0 as descuento,(dv.precio_ventad*dv.cantidad)*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1) as subtotal,	dv.cantidad*dv.precio_ventad as subtotald,dv.idpedido,'N/A' AS idalmacen,IF (a.exento='si',dv.precio_ventad*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1),0) as exentot,IF (a.exento='si',dv.precio_ventad,0) as exentotd,IF (a.exento='no',((dv.precio_ventad*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1))*((SELECT iva FROM empresa_impuestos)/100)),0) as iva,IF (a.exento='no',((dv.precio_ventad*((SELECT iva FROM empresa_impuestos)/100))),0) as ivad,0 as impoart18,0 as impoart18d,	dv.precio_venta as preciopvp,dv.precio_ventad as preciopvpd,100000 AS stock 	FROM detalle_serviciopedido dv INNER JOIN pedido pe ON pe.idpedido=dv.idpedido INNER JOIN servicio a ON a.idservicio=dv.idservicio	INNER JOIN pedido p ON p.idpedido=dv.idpedido WHERE dv.idpedido='$idpedido'";
	return ejecutarConsulta($sql);
}


public function pedidocabecera($idpedido){
	$sql= "SELECT v.idpedido, v.num_pedido,v.idcliente, p.nombre AS cliente,d.nombred as cliented, p.direccion,d.direcciond,p.licencia_licor,d.licencia_licord, p.tipo_documento,d.tipo_documentod, p.num_documento, d.num_documentod, p.email, d.emaild, p.telefono,d.telefonod, p.resenaendollar, v.idusuario, u.nombre AS vendedor, DATE(v.fecha_hora) AS fecha, v.total_pedido, v.total_pedidod, v.tasa_dollar, t.nombre as nombrevendedor FROM pedido v INNER JOIN persona p ON v.idcliente=p.idpersona LEFT JOIN despacho d ON v.idclientedespacho=d.idclientedespacho LEFT JOIN usuario u ON v.idusuario=u.idusuario LEFT JOIN vendedor t ON v.idvendedor=t.idvendedor WHERE v.idpedido='$idpedido'";
	return ejecutarConsulta($sql);
}

public function pedidodetalles($idpedido){
	$sql="SELECT a.nombre AS articulo, a.codigo, d.cantidad as cajas, f.factorconversion as unidadesxcaja, (f.factorconversion*d.cantidad) as unidades, a.unidademedidad as capacidad, (f.factorconversion*d.cantidad*a.unidademedidad) as litro, a.gradoalcohol, d.precio_venta,d.precio_ventad,(d.cantidad*d.precio_ventad) AS subtotal, c.idcategoriadeunidades, c.nombre, u.idunidademedidad, u.nombre, a.exento, t.codigotipoarticulo,al.porcentaje as alicuota FROM detalle_pedido d INNER JOIN articulo a ON d.idarticulo=a.idarticulo INNER JOIN categoriadeunidades c ON c.idcategoriadeunidades=a.idcategoriadeunidades INNER JOIN unidademedidad u ON u.idunidademedidad=a.idunidademedidad INNER JOIN factorunidademedidad f ON f.idfactorunidademedidad=a.idfactorunidademedidad INNER JOIN tipoarticulo t ON t.idtipoarticulo=a.idtipoarticulo INNER JOIN alicuota al ON al.idalicuota=a.idalicuota WHERE d.idpedido='$idpedido' UNION ALL SELECT a.nombre AS articulo, a.codigo, d.cantidad as cajas, 1 as unidadesxcaja, d.cantidad as unidades, 1 as capacidad, 0 as litro, 0 AS gradoalcohol, d.precio_venta,d.precio_ventad,(d.cantidad*d.precio_ventad) AS subtotal, '0' AS idcategoriadeunidades, 'N/A' AS nombre, 1 AS idunidademedidad, 'N/A' AS nombre, a.exento, t.nombre AS codigotipoarticulo,0 as alicuota FROM detalle_serviciopedido d INNER JOIN servicio a ON a.idservicio=d.idservicio INNER JOIN tiposervicio t ON t.idtiposervicio=a.idtiposervicio WHERE d.idpedido='$idpedido'";
  return ejecutarConsulta($sql);
}

public function ventatasacambio(){
	$sql="SELECT tasa_dollar,tasa_euro FROM empresa_tasacambio WHERE idempresa='1'";
    return ejecutarConsulta($sql);
}

public function listaprecio(){
	$sql="SELECT idlistaprecio,nombre,SUBSTRING(nombre,1, 2) as lista FROM categorialistaprecio WHERE condicion=1";
    return ejecutarConsulta($sql);
}

public function buscarIdClienteporpedido($idpedido){
	$sql="SELECT * FROM pedido WHERE idpedido='$idpedido'";
    return ejecutarConsultaSimpleFila($sql);
}

public function buscarstockloteporalmacen($idlote,$idarticulo,$idalmacen){
	$sql="SELECT idlote,idarticulo,idalmacen,cantidad FROM lotealmacen WHERE idlote='$idlote' AND idarticulo='$idarticulo' AND idalmacen='$idalmacen'";
  return ejecutarConsulta($sql);
}




}

?>
