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


	//implementamos nuestro constructor
public function __construct(){

}

//metodo insertar registro
public function insertar($idcliente,$idusuario,$idvendedor,$idservicio,$idventa,$tipo_comprobante,$num_notacredito,$numcontrol_notacredito,$fecha_hora,$total_venta,$total_ventad,$tasa_dollar,$idclientedespacho,$observacion,
				$idarticulo,$idalmacen,$cantidad,$precio_venta,$precio_ventad,$nrolote,$porcentaje,$subtotald){
	$sql="INSERT INTO notacredito (idcliente,idusuario,idvendedor,idservicio,idventa,tipo_comprobante,num_notacredito,numcontrol_notacredito,fecha_hora,total_credito,total_creditod,tasa_dollar,estado,idclientedespacho,observacion) 
	     VALUES ('$idcliente','$idusuario','$idvendedor','$idservicio','$idventa','$tipo_comprobante','$num_notacredito','$numcontrol_notacredito','$fecha_hora','$total_venta','$total_ventad','$tasa_dollar','Pendiente','$idclientedespacho','$observacion')";
	//return ejecutarConsulta($sql);
	echo $sql;
	$sw									=true;
	$idnotacreditonew		=ejecutarConsulta_retornarID($sql) or $sw=false;;
	$num_elementos			=0;
	$num_notacreditos		=0;
	$notacredito 				=0;
	$notacreditoactual	=0;
	
	if ($sw){
		if ($nrolote[$num_elementos]<>'N/A') {
			$sql1="UPDATE venta SET devolucion='si',montodev=montodev+'$total_ventad' WHERE idventa='$idventa'";
			ejecutarConsulta($sql1) or $sw=false;
		}else{
			//Ahora vamos a verificar y actualizar los documento afectado por la nota de credito
			//el idarticulo tiene el idventa del documento
			while ($num_elementos < count($idarticulo)) {
				$sql1="UPDATE venta SET notacredito='si',montocxc=montocxc+'$subtotald[$num_elementos]' WHERE idventa='$idarticulo[$num_elementos]'";
				$num_elementos=$num_elementos+1;
				ejecutarConsulta($sql1) or $sw=false;
			}
			
		}	
	}
	
	//echo 'Lote: '.$nrolote[$num_elementos].$sql1;
	//$sw=false;
	$num_elementos			=0;
	if ($sw){
		//
		while ($num_elementos < count($idarticulo)) {
			$idventadoc = $idventa;
			//verificamos el idventa del documento afectado
			if ($nrolote[$num_elementos]=='N/A'){
				$idventadoc = $idarticulo[$num_elementos];
			}
			$sql_detalles="INSERT INTO detalle_notacredito (idnotacredito,idventa,idarticulo,idalmacen,cantidad,precio,preciod,descuento,impuestoart18,porcentaje,numerolote) 
			VALUES ('$idnotacreditonew','$idventadoc','$idarticulo[$num_elementos]','$idalmacen[$num_elementos]','$cantidad[$num_elementos]','$precio_venta[$num_elementos]','$precio_ventad[$num_elementos]','$subtotald[$num_elementos]','0','0','$nrolote[$num_elementos]')";
			echo $sql_detalles;
			ejecutarConsulta($sql_detalles) or $sw=false;
			if ($nrolote[$num_elementos]<>'N/A' AND $sw) {
				$sql_detalles1="UPDATE detalle_venta SET cantidadev='$cantidad[$num_elementos]',devolucion='si' WHERE idventa='$idventa' AND idarticulo='$idarticulo[$num_elementos]'";
				echo $sql_detalles1;
				ejecutarConsulta($sql_detalles1) or $sw=false;
			}
			$num_elementos=$num_elementos+1;
		}
	}


	if ($sw) {
		// Actualizamos los numeros de facturas,control y notacredito
		$idempresa_venta 	= 	$_SESSION['idempresa_venta_empresa'];
		/* $nrofactura			=	$num_comprobante + 1;
		$nrocontrol			=	$serie_comprobante + 1; */
		
		$nronotacredito			= $num_notacredito + 1;
		$nrocontrolnotacredito	= $numcontrol_notacredito + 1;
		$sql_update				= "UPDATE empresa_venta SET nronotacredito='$nronotacredito',nrocontrolnotacredito='$nrocontrolnotacredito' WHERE idempresa_venta='$idempresa_venta'";
		echo $sql_update;
		ejecutarConsulta($sql_update);
	}
 
	return $sw;
	
}

public function insertarne($idcliente,$idusuario,$idvendedor,$idservicio,$idventa,$tipo_comprobante,$num_notacredito,$numcontrol_notacredito,$fecha_hora,$total_venta,$total_ventad,$tasa_dollar,$idclientedespacho,$observacion,
				$idarticulo,$idalmacen,$cantidad,$precio_venta,$precio_ventad,$nrolote,$porcentaje,$subtotald){
	$sql="INSERT INTO notacredito (idcliente,idusuario,idvendedor,idservicio,idventa,tipo_comprobante,num_notacredito,numcontrol_notacredito,fecha_hora,total_credito,total_creditod,tasa_dollar,estado,idclientedespacho,observacion) 
	     VALUES ('$idcliente','$idusuario','$idvendedor','$idservicio','$idventa','$tipo_comprobante','$num_notacredito','$numcontrol_notacredito','$fecha_hora','$total_venta','$total_ventad','$tasa_dollar','Pendiente','$idclientedespacho','$observacion')";
	//return ejecutarConsulta($sql);
	echo $sql;
	$sw									=true;
	$idnotacreditonew		=ejecutarConsulta_retornarID($sql) or $sw=false;;
	$num_elementos			=0;
	$num_notacreditos		=0;
	$notacredito 				=0;
	$notacreditoactual	=0;
	
	if ($sw){
		if ($nrolote[$num_elementos]<>'N/A') {
			$sql1="UPDATE venta SET devolucion='si',montodev=montodev+'$total_ventad' WHERE idventa='$idventa'";
			ejecutarConsulta($sql1) or $sw=false;
		}else{
			//Ahora vamos a verificar y actualizar los documento afectado por la nota de credito
			//el idarticulo tiene el idventa del documento
			while ($num_elementos < count($idarticulo)) {
				$sql1="UPDATE venta SET notacredito='si',montocxc=montocxc+'$subtotald[$num_elementos]' WHERE idventa='$idarticulo[$num_elementos]'";
				$num_elementos=$num_elementos+1;
				ejecutarConsulta($sql1) or $sw=false;
			}
			
		}	
	}
	
	//echo 'Lote: '.$nrolote[$num_elementos].$sql1;
	//$sw=false;
	$num_elementos			=0;
	if ($sw){
		//
		while ($num_elementos < count($idarticulo)) {
			$idventadoc = $idventa;
			//verificamos el idventa del documento afectado
			if ($nrolote[$num_elementos]=='N/A'){
				$idventadoc = $idarticulo[$num_elementos];
			}
			$sql_detalles="INSERT INTO detalle_notacredito (idnotacredito,idventa,idarticulo,idalmacen,cantidad,precio,preciod,descuento,impuestoart18,porcentaje,numerolote) 
			VALUES ('$idnotacreditonew','$idventadoc','$idarticulo[$num_elementos]','$idalmacen[$num_elementos]','$cantidad[$num_elementos]','$precio_venta[$num_elementos]','$precio_ventad[$num_elementos]','$subtotald[$num_elementos]','0','0','$nrolote[$num_elementos]')";
			echo $sql_detalles;
			ejecutarConsulta($sql_detalles) or $sw=false;
			if ($nrolote[$num_elementos]<>'N/A' AND $sw) {
				$sql_detalles1="UPDATE detalle_venta SET cantidadev='$cantidad[$num_elementos]',devolucion='si' WHERE idventa='$idventa' AND idarticulo='$idarticulo[$num_elementos]'";
				echo $sql_detalles1;
				ejecutarConsulta($sql_detalles1) or $sw=false;
			}
			$num_elementos=$num_elementos+1;
		}
	}


	if ($sw) {
		// Actualizamos los numeros de facturas,control y notacredito
		$idempresa_venta 	= 	$_SESSION['idempresa_venta_empresa'];
		/* $nrofactura			=	$num_comprobante + 1;
		$nrocontrol			=	$serie_comprobante + 1; */
		
		$nronotacredito			= $num_notacredito + 1;
		$nrocontrolnotacredito	= $numcontrol_notacredito + 1;
		$sql_update				= "UPDATE empresa_venta SET nronotacreditone='$nronotacredito',nrocontrolnotacreditone='$nrocontrolnotacredito' WHERE idempresa_venta='$idempresa_venta'";
		echo $sql_update;
		ejecutarConsulta($sql_update);
	}
 
	return $sw;
	
}

public function anular($idnotacredito){
	//Buscamos la Nota de Credito
	$sql 				= "SELECT n.*,s.nombre as notadecredito FROM notacredito n INNER JOIN servicio s ON s.idservicio=n.idservicio WHERE n.idnotacredito='$idnotacredito'";
	$resultp		=	ejecutarConsulta($sql);
	$sw					= true;
	if (mysqli_num_rows($resultp) > 0) {
		while($filap = mysqli_fetch_assoc($resultp)){
			$notadecredito 		= $filap["notadecredito"];
			$idnotacreditod		= $filap["idnotacredito"];
			$montod						= $filap["total_creditod"];
			$idventa					= $filap["idventa"];	
			//ubicamos el tipo de nota de credito
			//Ojo Managware Por Defecto la nota de credito por devolucion siempre le colocamos NOTA DE CREDITO POR DEVOLUCION pero el cliente lo puede cambiar pendiente
			if ($notadecredito=='NOTA DE CREDITO POR DEVOLUCION') {
				//Primero Actualizamos la Factura
				$sql1				= "UPDATE venta SET devolucion=IF((montodev-'$montod')<=0,'no',devolucion),montodev=IF((montodev-'$montod')<=0,0,montodev-'$montod') WHERE idventa='$idventa'";
				ejecutarConsulta($sql1) or $sw=false;
				//Actualizamos Estadode nota de Credito
				if ($sw) {
					$sql2				= "UPDATE notacredito SET estado='Anulado' WHERE idnotacredito='$idnotacredito'";
					ejecutarConsulta($sql2) or $sw=false;
				}
				//Ahora Rebajamos Inventario. Buscamos cada articulo de la nota de crédito 
				if ($sw) {
					$sqld 			="SELECT * FROM detalle_notacredito WHERE idnotacredito='$idnotacreditod'";
					$resultd		=	ejecutarConsulta($sqld);
					//Procedemos actualizar los documentos
					if (mysqli_num_rows($resultd) > 0) {
						while($filad = mysqli_fetch_assoc($resultd)){
							$idventa		= $filad["idventa"];	
							$montod			= $filad["descuento"];
							$idarticulo	=	$filad["idarticulo"];
							$idalmacen	= $filad["idalmacen"];
							$cantidad		= $filad["cantidad"];

							/* 
							UPDATE articulo SET stock=stock + NEW.cantidad WHERE articulo.idarticulo = NEW.idarticulo;
							UPDATE almacen1 SET stock=stock + NEW.cantidad WHERE almacen1.idarticulo = NEW.idarticulo AND almacen1.idalmacen=NEW.idalmacen;
							*/
							// buscamos en la table de detalle de venta el articulo para actualizar cada articulo
							$sqldv 			="SELECT * FROM detalle_venta WHERE idarticulo='$idarticulo' AND idventa='$idventa'";
							$resultdv		=	ejecutarConsulta($sqldv);
							if (mysqli_num_rows($resultdv) > 0) {
								$filadv = mysqli_fetch_assoc($resultdv);
								$lote		= $filadv["numerolote"];
								//Sé Actualiza todas las tablas que tienen que ver con el inventario
								$sql3		= "UPDATE articulo SET stock=stock - $cantidad WHERE idarticulo = '$idarticulo'";
								
								$sql4		= "UPDATE almacen1 SET stock=stock - $cantidad WHERE idarticulo = '$idarticulo' AND idalmacen='$idalmacen'";
								$sql5		= "UPDATE almacen2 SET stock=stock - $cantidad WHERE idarticulo = '$idarticulo' AND idalmacen='$idalmacen'";
								$sql6		= "UPDATE almacen3 SET stock=stock - $cantidad WHERE idarticulo = '$idarticulo' AND idalmacen='$idalmacen'";
								$sql7		= "UPDATE almacen4 SET stock=stock - $cantidad WHERE idarticulo = '$idarticulo' AND idalmacen='$idalmacen'";
								$sql8		= "UPDATE almacen5 SET stock=stock - $cantidad WHERE idarticulo = '$idarticulo' AND idalmacen='$idalmacen'";
								$sql9		= "UPDATE almacen6 SET stock=stock - $cantidad WHERE idarticulo = '$idarticulo' AND idalmacen='$idalmacen'";
								$sql10	= "UPDATE almacen7 SET stock=stock - $cantidad WHERE idarticulo = '$idarticulo' AND idalmacen='$idalmacen'";
								$sql11	= "UPDATE almacen8 SET stock=stock - $cantidad WHERE idarticulo = '$idarticulo' AND idalmacen='$idalmacen'";
								$sql12	= "UPDATE almacen9 SET stock=stock - $cantidad WHERE idarticulo = '$idarticulo' AND idalmacen='$idalmacen'";
								
								$sql13	= "UPDATE lote SET cantidad = cantidad-$cantidad WHERE idarticulo='$idarticulo' AND numerolote='$lote'";

								$sql14	= "UPDATE detalle_venta SET cantidadev = cantidadev-$cantidad WHERE idarticulo='$idarticulo' AND idventa='$idventa'";
								
								ejecutarConsulta($sql3);
								ejecutarConsulta($sql4);
								ejecutarConsulta($sql5);
								ejecutarConsulta($sql6);
								ejecutarConsulta($sql7);
								ejecutarConsulta($sql8);
								ejecutarConsulta($sql9);
								ejecutarConsulta($sql10);
								ejecutarConsulta($sql11);
								ejecutarConsulta($sql12);
								ejecutarConsulta($sql13);
								ejecutarConsulta($sql14);
							}else{
								$sw	= false;
							}
						}
					}else{
						$sw	= false;
					}
				}
			} else {
				//Ubicamos las facturas afectadas para actualizar saldo
				$sqld 			="SELECT * FROM detalle_notacredito WHERE idnotacredito='$idnotacreditod'";
				$resultd		=	ejecutarConsulta($sqld);
				//Procedemos actualizar los documentos
				if (mysqli_num_rows($resultd) > 0) {
					while($filad = mysqli_fetch_assoc($resultd)){
						$idventa		= $filad["idventa"];	
						$montod			= $filad["descuento"];
						$sql1				= "UPDATE venta SET notacredito=IF((montocxc-'$montod')<=0,'no',notacredito),montocxc=IF((montocxc-'$montod')<=0,0,montocxc-'$montod') WHERE idventa='$idventa'";
						ejecutarConsulta($sql1) or $sw=false;
						if ($sw) {
							$sql2				= "UPDATE notacredito SET estado='Anulado' WHERE idnotacredito='$idnotacredito'";
							ejecutarConsulta($sql2) or $sw=false;
						}
					}
				}else{
					$sw	= false;
				}
			}
		}
	}else{
		$sw	= false;
	}
	return $sw;
}

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


//implementar un metodopara mostrar los datos de unregistro a modificar
public function mostrar($idnotacredito){
	$sql="SELECT v.idnotacredito,DATE(v.fecha_hora) as fecha,v.idcliente,p.nombre as cliente,p.num_documento, p.tipo_documento,u.idusuario,u.nombre as usuario, v.tipo_comprobante,v.total_credito,v.total_creditod,v.estado,v.tasa_dollar,v.num_notacredito,ve.idvendedor, v.idclientedespacho,d.nombred,v.observacion FROM notacredito v INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN usuario u ON v.idusuario=u.idusuario LEFT join vendedor ve ON p.idzona=ve.idzona LEFT JOIN despacho d ON d.idclientedespacho=v.idclientedespacho WHERE idnotacredito='$idnotacredito'";
	return ejecutarConsultaSimpleFila($sql);
}

public function agregarDetalleventa($idventa){
	$sql="SELECT dv.idventa,dv.idarticulo,a.nombre as articulo,dv.idalmacen,(case a.exento when 'si' then CONCAT(a.nombre,' (E)') when 'no' then a.nombre ELSE a.nombre end) as nombre, dv.cantidad,dv.precio_venta as precio, dv.precio_venta/(1+((SELECT iva FROM empresa_impuestos)/100)) as preciosiniva, dv.descuento, (dv.cantidad*dv.precio_venta-dv.descuento) as subtotal,a.porcentaje,l.numerolote,DATE_FORMAT(l.fecha, '%d%m%Y') as fecha, a.exento, (case a.exento when 'si' then dv.precio_venta when 'no' then 0 ELSE 0 end) as exentot,(case a.exento when 'si' then dv.precio_venta when 'no' then 0 ELSE 0 end)/v.tasa_dollar as exentotd ,IF(a.exento='no',(dv.precio_venta - (dv.precio_venta/(1+((SELECT iva FROM empresa_impuestos)/100)))),0) as iva,(IF(a.exento='no',(dv.precio_venta - (dv.precio_venta/(1+((SELECT iva FROM empresa_impuestos)/100)))),0))/v.tasa_dollar as ivad,dv.precio_venta/v.tasa_dollar as preciod,(dv.precio_venta/(1+((SELECT iva FROM empresa_impuestos)/100)))/v.tasa_dollar as preciodsiniva,v.idcliente,v.serie_comprobante,v.serie_comprobante,v.serie_comprobante1,v.num_comprobante1,v.tasa_dollar,dv.impuestoart18 as impoart18,dv.impuestoart18/v.tasa_dollar as impoart18d,dv.preciopvp/v.tasa_dollar as preciopvpd,dv.descuento,dv.porcentaje,((dv.cantidad*dv.precio_venta-dv.descuento))/v.tasa_dollar as subtotald,dv.preciopvp	FROM detalle_venta dv INNER JOIN venta v ON v.idventa=dv.idventa INNER JOIN articulo a ON dv.idarticulo=a.idarticulo LEFT JOIN lote l ON a.idarticulo=l.idarticulo WHERE dv.idventa='$idventa' AND l.numerolote=dv.numerolote";
	return ejecutarConsulta($sql);
}

public function listarDetalle($idnotacredito){
	$sql="SELECT dv.cantidad,dv.porcentaje, concat(s.nombre,' FACTURA: ',v.num_comprobante) as descripcion, dv.preciod,nc.total_creditod FROM detalle_notacredito dv INNER JOIN notacredito nc ON nc.idnotacredito=dv.idnotacredito INNER JOIN servicio s ON s.idservicio=nc.idservicio INNER JOIN venta v ON v.idventa=dv.idventa WHERE dv.cantidad>0 AND dv.idnotacredito='$idnotacredito'";
	return ejecutarConsulta($sql);
}

//listar registros
public function listar(){
	//$sql="SELECT v.idnotacredito,DATE(v.fecha_hora) as fecha,v.idcliente,p.nombre as cliente,u.idusuario,u.nombre as usuario, v.tipo_comprobante,v.total_credito,v.total_creditod,v.estado,v.tasa_dollar,v.num_notacredito FROM notacredito v INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN usuario u ON v.idusuario=u.idusuario ORDER BY v.idnotacredito DESC";
	//$sql="SELECT v.idnotacredito,DATE(v.fecha_hora) as fecha,v.idcliente,p.nombre as cliente,u.idusuario,u.nombre as usuario, v.tipo_comprobante,v.total_credito,v.total_creditod,v.estado,v.tasa_dollar,v.num_notacredito, dtc.iva as ivad,v.idventa,se.idservicio,se.nombre FROM notacredito v INNER JOIN venta ve ON ve.idventa=v.idventa INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN (SELECT nc.idnotacredito,nc.num_notacredito,SUM(IF(vd.total_ventaimpuestod>vd.total_ventad,IF(nc.idservicio='4',(d.cantidad*d.preciod)*0.16,((d.descuento/1.16)*0.16)),0)) as iva,d.cantidad,d.preciod,d.descuento FROM notacredito nc INNER JOIN detalle_notacredito d ON d.idnotacredito=nc.idnotacredito INNER JOIN venta vd ON vd.idventa=d.idventa GROUP BY nc.idnotacredito) dtc ON dtc.idnotacredito=v.idnotacredito INNER JOIN usuario u ON v.idusuario=u.idusuario INNER JOIN servicio se ON se.idservicio=v.idservicio ORDER BY v.idnotacredito DESC";
	//$sql="SELECT v.idnotacredito,DATE(v.fecha_hora) as fecha,v.idcliente,p.nombre as cliente,u.idusuario,u.nombre as usuario, v.tipo_comprobante,v.total_credito,v.total_creditod,v.estado,v.tasa_dollar,v.num_notacredito, dtc.iva as ivad,v.idventa,se.idservicio,se.nombre, v.idventa,ve.idventa,ve.num_comprobante,ve.num_comprobante1 FROM notacredito v INNER JOIN venta ve ON ve.idventa=v.idventa INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN (SELECT nc.idnotacredito,nc.num_notacredito,SUM(IF(vd.total_ventaimpuestod>vd.total_ventad,IF(nc.idservicio='4',(d.cantidad*d.preciod)*0.16,((d.descuento/1.16)*0.16)),0)) as iva,d.cantidad,d.preciod,d.descuento FROM notacredito nc INNER JOIN detalle_notacredito d ON d.idnotacredito=nc.idnotacredito INNER JOIN venta vd ON vd.idventa=d.idventa GROUP BY nc.idnotacredito) dtc ON dtc.idnotacredito=v.idnotacredito INNER JOIN usuario u ON v.idusuario=u.idusuario INNER JOIN servicio se ON se.idservicio=v.idservicio LEFT JOIN venta vet ON vet.idventa=v.idventa WHERE vet.tipo_comprobante='Factura' ORDER BY v.idnotacredito DESC";
	$sql="SELECT v.idnotacredito,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,v.total_credito,v.total_creditod,v.estado,v.tasa_dollar,v.num_notacredito, dtc.iva as ivad,se.idservicio,se.nombre, v.idventa,ve.idventa AS idventafacrura,ve.num_comprobante,ve.num_comprobante1,ve.tipo_comprobante as tipo_comprobantefactura FROM notacredito v INNER JOIN venta ve ON ve.idventa=v.idventa INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN (SELECT nc.idnotacredito,nc.num_notacredito,SUM(IF(vd.total_ventaimpuestod>vd.total_ventad,IF(nc.idservicio='4',(d.cantidad*d.preciod)*0.16,((d.descuento/1.16)*0.16)),0)) as iva,d.cantidad,d.preciod,d.descuento FROM notacredito nc INNER JOIN detalle_notacredito d ON d.idnotacredito=nc.idnotacredito INNER JOIN venta vd ON vd.idventa=d.idventa GROUP BY nc.idnotacredito) dtc ON dtc.idnotacredito=v.idnotacredito INNER JOIN usuario u ON v.idusuario=u.idusuario INNER JOIN servicio se ON se.idservicio=v.idservicio WHERE ve.tipo_comprobante='Factura' ORDER BY v.idnotacredito DESC";
	return ejecutarConsulta($sql);
}

public function listarne(){
	//$sql="SELECT v.idnotacredito,DATE(v.fecha_hora) as fecha,v.idcliente,p.nombre as cliente,u.idusuario,u.nombre as usuario, v.tipo_comprobante,v.total_credito,v.total_creditod,v.estado,v.tasa_dollar,v.num_notacredito FROM notacredito v INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN usuario u ON v.idusuario=u.idusuario ORDER BY v.idnotacredito DESC";
	//Todos los documentos
	//$sql="SELECT v.idnotacredito,DATE(v.fecha_hora) as fecha,v.idcliente,p.nombre as cliente,u.idusuario,u.nombre as usuario, v.tipo_comprobante,v.total_credito,v.total_creditod,v.estado,v.tasa_dollar,v.num_notacredito,d1.ivad FROM notacredito v INNER JOIN (SELECT d.idnotacredito, (d.cantidad*d.descuento)*.16 as ivad FROM detalle_notacredito d WHERE d.numerolote='N/A' GROUP BY d.idnotacredito UNION ALL SELECT d.idnotacredito, SUM(IF(a.exento='no',(d.cantidad*d.preciod)*.16,0)) as ivad FROM detalle_notacredito d INNER JOIN articulo a ON a.idarticulo=d.idarticulo WHERE d.numerolote<>'N/A' GROUP BY d.idnotacredito) d1 ON d1.idnotacredito=v.idnotacredito INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN usuario u ON v.idusuario=u.idusuario ORDER BY v.idnotacredito DESC";
	
	//Solo Nota Entrega
	$sql="SELECT v.idnotacredito,DATE(v.fecha_hora) as fecha,v.idcliente,p.nombre as cliente,u.idusuario,u.nombre as usuario, v.tipo_comprobante,v.total_credito,v.total_creditod,v.estado,v.tasa_dollar,v.num_notacredito, dtc.iva as ivad,se.idservicio,IF(se.nombre='NOTA DE CREDITO POR DEVOLUCION','NOTA DE DEVOLUCION',REPLACE(se.nombre,'NOTA DE CREDITO','NOTA DE DESCUENTO')) as nombre, v.idventa,ve.idventa AS idventafacrura,ve.num_comprobante,ve.num_comprobante1,ve.tipo_comprobante as tipo_comprobantefactura FROM notacredito v INNER JOIN venta ve ON ve.idventa=v.idventa INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN (SELECT nc.idnotacredito,nc.num_notacredito,SUM(IF(vd.total_ventaimpuestod>vd.total_ventad,IF(nc.idservicio='4',(d.cantidad*d.preciod)*0.16,((d.descuento/1.16)*0.16)),0)) as iva,d.cantidad,d.preciod,d.descuento FROM notacredito nc INNER JOIN detalle_notacredito d ON d.idnotacredito=nc.idnotacredito INNER JOIN venta vd ON vd.idventa=d.idventa GROUP BY nc.idnotacredito) dtc ON dtc.idnotacredito=v.idnotacredito INNER JOIN usuario u ON v.idusuario=u.idusuario INNER JOIN servicio se ON se.idservicio=v.idservicio WHERE (ve.tipo_comprobante='NotaEntrega' OR ve.tipo_comprobante1='NotaEntrega') ORDER BY v.idnotacredito DESC";
	//solo Meraki
	//$sql="SELECT v.idnotacredito,DATE(v.fecha_hora) as fecha,v.idcliente,p.nombre as cliente,u.idusuario,u.nombre as usuario, v.tipo_comprobante,v.total_credito,v.total_creditod,v.estado,v.tasa_dollar,v.num_notacredito,IF(v.fecha_hora>='2023-01-01',d1.ivad,0) AS ivad FROM notacredito v INNER JOIN (SELECT d.idnotacredito, (d.cantidad*d.descuento)*.16 as ivad FROM detalle_notacredito d WHERE d.numerolote='N/A' GROUP BY d.idnotacredito UNION ALL SELECT d.idnotacredito, SUM(IF(a.exento='no',(d.cantidad*d.preciod)*.16,0)) as ivad FROM detalle_notacredito d INNER JOIN articulo a ON a.idarticulo=d.idarticulo WHERE d.numerolote<>'N/A' GROUP BY d.idnotacredito) d1 ON d1.idnotacredito=v.idnotacredito INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN usuario u ON v.idusuario=u.idusuario ORDER BY v.idnotacredito DESC";
	return ejecutarConsulta($sql);
}

public function listarnotacredito(){
	$sql="SELECT v.idnotacredito,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,v.total_notacredito,v.total_notacreditod,v.estado,v.tasa_dollar,v.num_notacredito,v.idvendedor,ve.nombre as vendedor,p.idzona, z.nombre as zona FROM notacredito v 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 ORDER BY v.idnotacredito DESC";
	return ejecutarConsulta($sql);
}

public function agregarDetallenotacredito($idnotacredito){
	$sql="SELECT dv.idarticulo,a.nombre as articulo,l.numerolote,dv.cantidad,
	(CASE WHEN pr.idlistaprecio =1 THEN a.preciod WHEN pr.idlistaprecio =2 THEN a.preciobd ELSE a.preciocd END)*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1) as precio,
	a.preciod,0 as porcentaje,0 as descuento,
	dv.cantidad*(CASE WHEN pr.idlistaprecio =1 THEN a.preciod WHEN pr.idlistaprecio =2 THEN a.preciobd ELSE a.preciocd END)*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1) as subtotal,
	dv.cantidad*(CASE WHEN pr.idlistaprecio =1 THEN a.preciod WHEN pr.idlistaprecio =2 THEN a.preciobd ELSE a.preciocd END) as subtotald,
	dv.idpedido,dv.idalmacen,
	IF (a.exento='no',((CASE WHEN pr.idlistaprecio =1 THEN a.preciod WHEN pr.idlistaprecio =2 THEN a.preciobd ELSE a.preciocd END)*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1)*(1+((SELECT iva FROM empresa_impuestos)/100)))-((CASE WHEN pr.idlistaprecio =1 THEN a.preciod WHEN pr.idlistaprecio =2 THEN a.preciobd ELSE a.preciocd END)*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1)),0) as iva,
	IF (a.exento='no',((CASE WHEN pr.idlistaprecio =1 THEN a.preciod WHEN pr.idlistaprecio =2 THEN a.preciobd ELSE a.preciocd END)*(1+((SELECT iva FROM empresa_impuestos)/100)))-((CASE WHEN pr.idlistaprecio =1 THEN a.preciod WHEN pr.idlistaprecio =2 THEN a.preciobd ELSE a.preciocd END)),0) as ivad,
	IF (a.exento='si',(CASE WHEN pr.idlistaprecio =1 THEN a.preciod WHEN pr.idlistaprecio =2 THEN a.preciobd ELSE a.preciocd END)*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1),0) as exentot,
	IF (a.exento='si',(CASE WHEN pr.idlistaprecio =1 THEN a.preciod WHEN pr.idlistaprecio =2 THEN a.preciobd ELSE a.preciocd 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 pr.idlistaprecio =1 THEN a.preciopvpd WHEN pr.idlistaprecio =2 THEN a.pvpdb ELSE a.pvpdc END)*(SELECT tasa_dollar FROM empresa_tasacambio ORDER by tasa_dollar DESC LIMIT 1) as preciopvp,
	(CASE WHEN pr.idlistaprecio =1 THEN a.preciopvpd WHEN pr.idlistaprecio =2 THEN a.pvpdb ELSE a.pvpdc END) as preciopvpd 
	FROM detalle_notacredito dv 
	INNER JOIN notacredito pe ON pe.idnotacredito=dv.idnotacredito
	INNER JOIN persona pr ON pr.idpersona=pe.idcliente
	INNER JOIN articulo a ON a.idarticulo=dv.idarticulo 
	INNER JOIN notacredito p ON p.idnotacredito=dv.idnotacredito 
	LEFT JOIN lote l ON l.idarticulo=dv.idarticulo 
	WHERE dv.idnotacredito='$idnotacredito'";
	return ejecutarConsulta($sql);
}


public function notacreditocabecera($idnotacredito){
	//$sql= "SELECT v.idnotacredito, v.num_notacredito,v.idcliente, p.nombre AS cliente,d.nombred as cliented, ve.fecha_hora as fechafactura,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_credito, v.total_creditod, v.tasa_dollar,ve.tasa_dollar as tasaventa, t.nombre as nombrevendedor,s.idtiposervicio,s.nombre as notacredito,ve.serie_comprobante,ve.num_comprobante,ve.serie_comprobante1,ve.num_comprobante1,v.observacion FROM notacredito v INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN servicio s ON v.idservicio=s.idservicio INNER JOIN venta ve ON ve.idventa=v.idventa 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.idnotacredito='$idnotacredito'";
	//$sql= "SELECT v.idnotacredito, v.num_notacredito,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_credito, v.total_creditod, v.tasa_dollar,ve.tasa_dollar as tasaventa, t.nombre as nombrevendedor,s.idtiposervicio,s.nombre as notacredito,ve.serie_comprobante,ve.num_comprobante,ve.serie_comprobante1,ve.num_comprobante1,v.observacion,DATE(ve.fecha_hora) AS fechafactura,ve.idclientedespacho FROM notacredito v INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN servicio s ON v.idservicio=s.idservicio INNER JOIN venta ve ON ve.idventa=v.idventa LEFT JOIN despacho d ON d.idclientedespacho=ve.idclientedespacho LEFT JOIN usuario u ON v.idusuario=u.idusuario LEFT JOIN vendedor t ON v.idvendedor=t.idvendedor WHERE v.idnotacredito='$idnotacredito'";
	$sql= "SELECT v.idnotacredito, v.num_notacredito,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_credito, v.total_creditod, v.tasa_dollar, ve.tasa_dollar AS tasaventa,t.nombre as nombrevendedor,s.idtiposervicio,s.nombre as notacredito,ve.serie_comprobante,ve.num_comprobante,ve.serie_comprobante1,ve.num_comprobante1,v.observacion,DATE(ve.fecha_hora) AS fechafactura, ve.total_ventad as total_ventadf,ve.total_venta as total_ventaf,ve.total_ventaimpuestod as total_ventaimpuestodf,ve.total_ventaimpuesto as total_ventaimpuestof,ve.total_ventaimpuestod-ve.total_ventad as ivadf,ve.total_ventaimpuesto-ve.total_venta as ivaf,dtc.iva as ivanc FROM notacredito v INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN servicio s ON v.idservicio=s.idservicio INNER JOIN venta ve ON ve.idventa=v.idventa 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 INNER JOIN (SELECT nc.idnotacredito,nc.num_notacredito,SUM(IF(vd.total_ventaimpuestod>vd.total_ventad,IF(nc.idservicio='4',(d.cantidad*d.preciod)*0.16,((d.descuento/1.16)*0.16)),0)) as iva,d.cantidad,d.preciod,d.descuento FROM notacredito nc INNER JOIN detalle_notacredito d ON d.idnotacredito=nc.idnotacredito INNER JOIN venta vd ON vd.idventa=d.idventa GROUP BY nc.idnotacredito) dtc ON dtc.idnotacredito=v.idnotacredito WHERE v.idnotacredito='$idnotacredito'";
	return ejecutarConsulta($sql);
}

public function notacreditodetalles($idnotacredito){
	//$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_notacredito 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.idnotacredito='$idnotacredito'";
    $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_notacredito 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.idnotacredito='$idnotacredito'";
    return ejecutarConsulta($sql);
}

public function notacreditodetallesimporte($idnotacredito){
	//$sql="SELECT s.nombre AS articulo, s.codigo, d.cantidad as cajas, 1 as unidadesxcaja, 1 as unidades, 1 as capacidad, 1 as litro, 0 as gradoalcohol, d.descuento as precio_ventad,d.descuento*v.tasa_dollar as precio_venta,d.descuento - ((d.porcentaje*d.descuento)/100) AS subtotal, 1 as idcategoriadeunidades, 'N/A' as nombre, 'NA/' AS idunidademedidad, 'NA/' AS nombre, 'si' as exento, 'NA/' AS codigotipoarticulo,d.porcentaje as alicuota, IF(v.num_comprobante<>0,CONCAT('FACTURA: ',SUBSTRING('000', 1, LENGTH(v.num_comprobante)+1),v.num_comprobante),CONCAT('NOTA ENTREGA: ',SUBSTRING('000', 1, LENGTH(v.num_comprobante1)+1),v.num_comprobante1)) AS factura FROM detalle_notacredito d LEFT JOIN venta v ON v.idventa=d.idventa INNER JOIN notacredito nc ON nc.idnotacredito=d.idnotacredito INNER JOIN servicio s ON s.idservicio=nc.idservicio WHERE d.idnotacredito='$idnotacredito'";
    /*$sql="SELECT s.nombre AS articulo, s.codigo, d.cantidad as cajas, 1 as unidadesxcaja, 1 as unidades, 1 as capacidad, 1 as litro, 0 as gradoalcohol, d.descuento as precio_ventad,d.descuento*v1.tasa_dollar as precio_venta,d.descuento - ((d.porcentaje*d.descuento)/100) AS subtotal, 1 as idcategoriadeunidades, 'N/A' as nombre, 'NA/' AS idunidademedidad, 'NA/' AS nombre, 'si' as exento, 'NA/' AS codigotipoarticulo,d.porcentaje as alicuota, IF(v1.num_comprobante<>0,CONCAT('FACTURA: ',SUBSTRING('000', 1, LENGTH(v1.num_comprobante)+1),v1.num_comprobante),CONCAT('NOTA ENTREGA: ',SUBSTRING('000', 1, LENGTH(v1.num_comprobante1)+1),v1.num_comprobante1)) AS factura,(v1.total_ventad-(v1.total_ventad*((v1.total_ventaimpuestod-v.total_creditod)/v1.total_ventaimpuestod)))*v1.tasa_dollar as totalventasiniva,((v1.total_ventad-(v1.total_ventad*((v1.total_ventaimpuestod-v.total_creditod)/v1.total_ventaimpuestod)))*v1.tasa_dollar)/v.tasa_dollar AS totalventasinivad,v.total_creditod*v1.tasa_dollar as total_ventaimpuesto,v.total_creditod as total_ventaimpuestod,((((v1.total_ventad*1.16)-v1.total_ventaimpuestod)/.16)-((((v1.total_ventad*1.16)-v1.total_ventaimpuestod)/.16)*((v1.total_ventaimpuestod-v.total_creditod)/v1.total_ventaimpuestod)))*v1.tasa_dollar as totalexento,((((v1.total_ventad*1.16)-v1.total_ventaimpuestod)/.16)-((((v1.total_ventad*1.16)-v1.total_ventaimpuestod)/.16)*((v1.total_ventaimpuestod-v.total_creditod)/v1.total_ventaimpuestod))) as totalexentod,((v1.total_ventaimpuestod-v1.total_ventad)-((v1.total_ventaimpuestod-v1.total_ventad)*((v1.total_ventaimpuestod-v.total_creditod)/v1.total_ventaimpuestod)))*v1.tasa_dollar as totalparimpuesto, ((v1.total_ventaimpuestod-v1.total_ventad)-((v1.total_ventaimpuestod-v1.total_ventad)*((v1.total_ventaimpuestod-v.total_creditod)/v1.total_ventaimpuestod))) AS totalparaimpuestod,(((v1.total_ventaimpuestod-v1.total_ventad)-((v1.total_ventaimpuestod-v1.total_ventad)*((v1.total_ventaimpuestod-v.total_creditod)/v1.total_ventaimpuestod)))*v1.tasa_dollar)*.16 as iva,((((v1.total_ventaimpuestod-v1.total_ventad)-((v1.total_ventaimpuestod-v1.total_ventad)*((v1.total_ventaimpuestod-v.total_creditod)/v1.total_ventaimpuestod)))*v1.tasa_dollar)*.16)/v.tasa_dollar AS ivad,v.total_creditod*v1.tasa_dollar as totalventa, v.total_creditod
FROM detalle_notacredito d
INNER JOIN notacredito v ON v.idnotacredito=d.idnotacredito
LEFT JOIN venta v1 ON v1.idventa=d.idventa 
INNER JOIN notacredito nc ON nc.idnotacredito=d.idnotacredito 
INNER JOIN servicio s ON s.idservicio=nc.idservicio 
WHERE d.idnotacredito='$idnotacredito'";*/
    //$sql="SELECT s.nombre AS articulo, s.codigo, d.cantidad as cajas, 1 as unidadesxcaja, 1 as unidades, 1 as capacidad, 1 as litro, 0 as gradoalcohol, d.descuento as precio_ventad,d.descuento*v.tasa_dollar as precio_venta,d.descuento - ((d.porcentaje*d.descuento)/100) AS subtotal, 1 as idcategoriadeunidades, 'N/A' as nombre, 'NA/' AS idunidademedidad, 'NA/' AS nombre, 'si' as exento, 'NA/' AS codigotipoarticulo,d.porcentaje as alicuota, IF(v.num_comprobante<>0,CONCAT('FACTURA: ',SUBSTRING('000', 1, LENGTH(v.num_comprobante)+1),v.num_comprobante),CONCAT('NOTA ENTREGA: ',SUBSTRING('000', 1, LENGTH(v.num_comprobante1)+1),v.num_comprobante1)) AS factura,IF(v.total_ventaimpuestod>v.total_ventad,((d.descuento/1.16)*0.16),0) as ivad,0 as totalexentod FROM detalle_notacredito d LEFT JOIN venta v ON v.idventa=d.idventa INNER JOIN notacredito nc ON nc.idnotacredito=d.idnotacredito INNER JOIN servicio s ON s.idservicio=nc.idservicio WHERE d.idnotacredito='$idnotacredito'";
    $sql="SELECT s.nombre AS articulo, s.codigo, d.cantidad as cajas, 1 as unidadesxcaja, 1 as unidades, 1 as capacidad, 1 as litro, 0 as gradoalcohol, d.descuento as precio_ventad,d.descuento*v.tasa_dollar as precio_venta,d.descuento - ((d.porcentaje*d.descuento)/100) AS subtotal, 1 as idcategoriadeunidades, 'N/A' as nombre, 'NA/' AS idunidademedidad, 'NA/' AS nombre, 'si' as exento, 'NA/' AS codigotipoarticulo,d.porcentaje as alicuota, IF(v.num_comprobante<>0,CONCAT('FACTURA: ',SUBSTRING('000', 1, LENGTH(v.num_comprobante)+1),v.num_comprobante),CONCAT('NOTA ENTREGA: ',SUBSTRING('000', 1, LENGTH(v.num_comprobante1)+1),v.num_comprobante1)) AS factura,IF(v.total_ventaimpuestod>v.total_ventad,((d.descuento/1.16)*0.16),0) as ivad,0 as totalexentod,d.preciod as totalfactura,v.total_ventaimpuestod,v.total_ventaimpuestod-v.total_ventad as ivaf,d.preciod-((d.preciod*(v.total_ventaimpuestod-v.total_ventad))/v.total_ventaimpuestod) AS totalfncbase,(d.preciod*(v.total_ventaimpuestod-v.total_ventad))/v.total_ventaimpuestod as ivafnc,d.preciod as totalfnc, d.descuento-((d.descuento*((d.preciod*(v.total_ventaimpuestod-v.total_ventad))/v.total_ventaimpuestod))/d.preciod) as totalncbase,(d.descuento*((d.preciod*(v.total_ventaimpuestod-v.total_ventad))/v.total_ventaimpuestod))/d.preciod AS ivanc,d.descuento as totalnc,round(((d.descuento*100)/d.preciod),2) as por FROM detalle_notacredito d LEFT JOIN venta v ON v.idventa=d.idventa INNER JOIN notacredito nc ON nc.idnotacredito=d.idnotacredito INNER JOIN servicio s ON s.idservicio=nc.idservicio WHERE d.idnotacredito='$idnotacredito'";      
    return ejecutarConsulta($sql);
}

public function notacreditodetallesimportefactura($idnotacredito){
	$sql="SELECT d.idarticulo,a.nombre as articulo,d.cantidad as cajas,d.precio_venta,round(d.precio_venta/v.tasa_dollar,2) as precio_ventad,f.factorconversion AS unidadesxcaja,a.gradoalcohol AS gradoalcohol,a.unidademedidad AS capacidad,1 as unidades, 1 as litro FROM detalle_venta d INNER JOIN venta v ON v.idventa=d.idventa INNER JOIN notacredito n ON n.idventa=v.idventa LEFT JOIN articulo a ON a.idarticulo=d.idarticulo LEFT JOIN factorunidademedidad f ON f.idfactorunidademedidad=a.idfactorunidademedidad WHERE n.idnotacredito='$idnotacredito' UNION ALL SELECT d.idservicio as idarticulo,a.nombre as articulo,d.cantidad,d.precio_venta,d.precio_venta/v.tasa_dollar as precio_ventad,1 AS unidadesxcaja,0 AS gradoalcohol,1 AS capacidad,1 as unidades, 1 as litro FROM detalle_servicio d INNER JOIN venta v ON v.idventa=d.idventa INNER JOIN notacredito n ON n.idventa=v.idventa LEFT JOIN servicio a ON a.idservicio=d.idservicio WHERE n.idnotacredito='$idnotacredito'";
    
    return ejecutarConsulta($sql);
}

public function notacreditodetallesimporteimpuesto($idnotacredito){
	$sql="SELECT date_format(DATE(v.fecha_hora), '%d-%m-%Y') as fecha,u.nombre as usuario, p.nombre as cliente, p.tipo_documento, p.num_documento, p.agenteretencion,0 as impuesto,v.tipo_comprobante,v.num_notacredito as serie_comprobante, v.numcontrol_notacredito as num_comprobante,1 as cantidad,(v1.total_ventad-(v1.total_ventad*((v1.total_ventaimpuestod-v.total_creditod)/v1.total_ventaimpuestod)))*v1.tasa_dollar as totalventasiniva,((v1.total_ventad-(v1.total_ventad*((v1.total_ventaimpuestod-v.total_creditod)/v1.total_ventaimpuestod)))*v1.tasa_dollar)/v.tasa_dollar AS totalventasinivad,v.total_creditod*v1.tasa_dollar as total_ventaimpuesto,v.total_creditod as total_ventaimpuestod,((((v1.total_ventad*1.16)-v1.total_ventaimpuestod)/.16)-((((v1.total_ventad*1.16)-v1.total_ventaimpuestod)/.16)*((v1.total_ventaimpuestod-v.total_creditod)/v1.total_ventaimpuestod)))*v1.tasa_dollar as totalexento,((((v1.total_ventad*1.16)-v1.total_ventaimpuestod)/.16)-((((v1.total_ventad*1.16)-v1.total_ventaimpuestod)/.16)*((v1.total_ventaimpuestod-v.total_creditod)/v1.total_ventaimpuestod))) as totalexentod,((v1.total_ventaimpuestod-v1.total_ventad)-((v1.total_ventaimpuestod-v1.total_ventad)*((v1.total_ventaimpuestod-v.total_creditod)/v1.total_ventaimpuestod)))*v1.tasa_dollar as totalparimpuesto, ((v1.total_ventaimpuestod-v1.total_ventad)-((v1.total_ventaimpuestod-v1.total_ventad)*((v1.total_ventaimpuestod-v.total_creditod)/v1.total_ventaimpuestod))) AS totalparaimpuestod,(((v1.total_ventaimpuestod-v1.total_ventad)-((v1.total_ventaimpuestod-v1.total_ventad)*((v1.total_ventaimpuestod-v.total_creditod)/v1.total_ventaimpuestod)))*v1.tasa_dollar)*.16 as iva,((((v1.total_ventaimpuestod-v1.total_ventad)-((v1.total_ventaimpuestod-v1.total_ventad)*((v1.total_ventaimpuestod-v.total_creditod)/v1.total_ventaimpuestod)))*v1.tasa_dollar)*.16)/v.tasa_dollar AS ivad,v.total_creditod*v1.tasa_dollar as totalventa, v.total_creditod,v.estado,0 as retencioniva,v1.num_comprobante as factura,p.agenteretencionp,0 AS ivapercibido FROM notacredito v	LEFT JOIN venta v1 ON v1.idventa=v.idventa INNER JOIN persona p ON v.idcliente=p.idpersona	INNER JOIN usuario u ON v.idusuario=u.idusuario	WHERE  v.idnotacredito='$idnotacredito'";
  return ejecutarConsulta($sql);
}

public function notacreditodetallesdevolucion($idnotacredito){
	//$sql="SELECT s.nombre AS articulo, s.codigo, d.cantidad as cajas, 1 as unidadesxcaja, 1 as unidades, 1 as capacidad, 1 as litro, 0 as gradoalcohol, d.precio as precio_venta,d.preciod as precio_ventad,d.preciod - ((d.porcentaje*d.preciod)/100) AS subtotal, 1 as idcategoriadeunidades, 'N/A' as nombre, 'NA/' AS idunidademedidad, 'NA/' AS nombre, s.exento, 'NA/' AS codigotipoarticulo,d.porcentaje as alicuota, IF(v.num_comprobante='',(CONCAT('FACTURA: ',SUBSTRING('000', 1, LENGTH(v.num_comprobante1)+1),v.num_comprobante1)),(CONCAT('FACTURA: ',SUBSTRING('000', 1, LENGTH(v.num_comprobante)+1),v.num_comprobante))) AS factura, IF(v.total_ventaimpuestod>v.total_ventad,'si','no') as iva FROM detalle_notacredito d LEFT JOIN venta v ON v.idventa=d.idventa INNER JOIN notacredito nc ON nc.idnotacredito=d.idnotacredito INNER JOIN articulo s ON s.idarticulo=d.idarticulo WHERE d.cantidad>0 AND d.idnotacredito='$idnotacredito'";
    $sql="SELECT s.nombre AS articulo, s.codigo, d.cantidad as cajas, f.factorconversion as unidadesxcaja, 1 as unidades, s.unidademedidad as capacidad, 1 as litro, s.gradoalcohol as gradoalcohol, d.precio as precio_venta,d.preciod as precio_ventad,d.preciod - ((d.porcentaje*d.preciod)/100) AS subtotal, 1 as idcategoriadeunidades, 'N/A' as nombre, 'NA/' AS idunidademedidad, 'NA/' AS nombre, s.exento, 'NA/' AS codigotipoarticulo,d.porcentaje as alicuota, IF(v.num_comprobante='',(CONCAT('FACTURA: ',SUBSTRING('000', 1, LENGTH(v.num_comprobante1)+1),v.num_comprobante1)),(CONCAT('FACTURA: ',SUBSTRING('000', 1, LENGTH(v.num_comprobante)+1),v.num_comprobante))) AS factura, IF(v.total_ventaimpuestod>v.total_ventad,'si','no') as iva FROM detalle_notacredito d LEFT JOIN venta v ON v.idventa=d.idventa INNER JOIN notacredito nc ON nc.idnotacredito=d.idnotacredito INNER JOIN articulo s ON s.idarticulo=d.idarticulo LEFT JOIN factorunidademedidad f ON f.idfactorunidademedidad=s.idfactorunidademedidad WHERE d.cantidad>0 AND d.idnotacredito='$idnotacredito'";
    return ejecutarConsulta($sql);
}
//
public function ventatasacambio(){
	$sql="SELECT tasa_dollar,tasa_euro FROM empresa_tasacambio WHERE idempresa='1'";
    return ejecutarConsulta($sql);
}

}

 ?>
