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


	//implementamos nuestro constructor
	public function __construct(){

	}
	
	//metodo insertar registro
	public function insertar($idcliente,$idusuario,$tipo_comprobante,$serie_comprobante,$num_comprobante,$fecha_hora,$impuesto,
	$total_venta,$idtransportista,$tasa_dollar,$idarticulo,$cantidad,$precio_venta,$descuento,$nrolote,$idpedidosolo,$idalmacen,$impoart18,$precio_ventapvp){
		$sql="INSERT INTO venta (idcliente,idusuario,tipo_comprobante,serie_comprobante,num_comprobante,fecha_hora,impuesto,total_venta,estado,idtransportista,tasa_dollar) 
		VALUES ('$idcliente','$idusuario','$tipo_comprobante','$serie_comprobante','$num_comprobante','$fecha_hora','$impuesto','$total_venta','Pendiente','$idtransportista','$tasa_dollar')";
		//return ejecutarConsulta($sql);
		//echo $sql;
		$idventanew		=ejecutarConsulta_retornarID($sql);
		$num_elementos	=0;
		$num_pedidos	=0;
		$pedido 		=0;
		$pedidoactual	=0;
		$sw				=true;
		
		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_servicio (idventa, idservicio, cantidad, precio_venta, descuento) VALUES ('$idventanew','$idarticulo[$num_elementos]','$cantidad[$num_elementos]','$precio_venta[$num_elementos]','$descuento[$num_elementos]')";
				echo $sql_detalles;
				ejecutarConsulta($sql_detalles) or $sw=false;
			}else{
				$sql_lote 	= "SELECT idlote, idarticulo, numerolote, fecha, cantidad FROM lote WHERE idarticulo='$idarticulo[$num_elementos]'";
				echo $sql_lote;
				$result		=	ejecutarConsulta($sql_lote);
				if (mysqli_num_rows($result) > 0) {
					$cantidad1=$cantidad[$num_elementos];
					while($fila = mysqli_fetch_assoc($result)){
						$cantidadi 	= $cantidad1;
						$numerolote = $fila["numerolote"];
						$fecha		= $fila["fecha"];
						$cantidadl	= $fila["cantidad"];
						$cantidad1 	= $cantidad1 - $cantidadl;
						if ($cantidad1>0){
							$sql_detalle="INSERT INTO detalle_venta (idventa,idarticulo,cantidad,precio_venta,descuento,numerolote,idalmacen,impuestoart18,preciopvp) VALUES('$idventanew','$idarticulo[$num_elementos]','$cantidadl','$precio_venta[$num_elementos]','$descuento[$num_elementos]','$numerolote','$idalmacen[$num_elementos]','$impoart18[$num_elementos]','$precio_ventapvp[$num_elementos]')";
							echo $sql_detalle;
							ejecutarConsulta($sql_detalle) or $sw=false;
						}else{
							$sql_detalle="INSERT INTO detalle_venta (idventa,idarticulo,cantidad,precio_venta,descuento,numerolote,idalmacen,impuestoart18,preciopvp) VALUES('$idventanew','$idarticulo[$num_elementos]','$cantidadi','$precio_venta[$num_elementos]','$descuento[$num_elementos]','$numerolote','$idalmacen[$num_elementos]','$impoart18[$num_elementos]','$precio_ventapvp[$num_elementos]')";
							echo $sql_detalle;
							ejecutarConsulta($sql_detalle) or $sw=false;
						break;
						}
					}   
				} else {
					die("Error: No hay datos en la tabla seleccionada");
				}
			}
			$num_elementos=$num_elementos+1;	   
		}
		if ($sw) {
			// Actualizamos los numeros de facturas
			$idempresa_venta 	= 	$_SESSION['idempresa_venta_empresa'];
			$nrofactura			=	$num_comprobante + 1;
			$nrocontrol			=	$serie_comprobante + 1;
				$sql_update		=	"UPDATE empresa_venta SET nrofactura='$nrofactura',nrocontrol='$nrocontrol'
				WHERE idempresa_venta='$idempresa_venta'";
			//	echo $sql_update;
			ejecutarConsulta($sql_update);
		}
	
		return $sw;
		
	}
	
	public function anular($idventa,$idusuario){
		//Buscamos la factura
		$sqlventa 	="SELECT * FROM venta WHERE idventa='$idventa'";
		//echo $sqlventa;
		$sw			=true;
		$result		=	ejecutarConsulta($sqlventa);
		if (mysqli_num_rows($result) > 0) {
			$fila 						= mysqli_fetch_assoc($result);
			$idcliente 				= $fila["idcliente"];
			$total_devolucion	= $fila["total_venta"];
		}else {
			die("Error: No hay datos en la tabla seleccionada");
		}
		$fecha 	= date("Y-m-d");
		$estado = 'Anulacion';
		// vamos a devoluciones y insertamos la devolucion
		$sql 				="INSERT INTO devoluciones (idcliente,idventa,idusuario,fecha,total_devolucion,estado) VALUES ('$idcliente','$idventa','$idusuario','$fecha','$total_devolucion','$estado')";
		//echo $sql;
		$iddevolucionnew	=ejecutarConsulta_retornarID($sql) or $sw=false;
		// Ahora insertamos en el detalle de la devolucion
		if ($sw) {
			$sqlventadetalle 	="SELECT * FROM detalle_venta WHERE idventa='$idventa'";
			$result1			=ejecutarConsulta($sqlventadetalle);
			if (mysqli_num_rows($result1) > 0) {
				$fila1 				= mysqli_fetch_assoc($result);
				while($fila1 = mysqli_fetch_assoc($result1)){
					$idarticulo 				= $fila1["idarticulo"];
					$idalmacen					= $fila1["idalmacen"];
					$cantidad						= $fila1["cantidad"];
					$precio_devolucion	= $fila1["precio_venta"];
					$numerolote					= $fila1["numerolote"];
					$sql_detalle 				="INSERT INTO detalle_devoluciones (iddevolucion,idventa,idarticulo,idalmacen,cantidad,precio_devolucion,numerolote) VALUES ('$iddevolucionnew','$idventa','$idarticulo','$idalmacen','$cantidad','$precio_devolucion','$numerolote')";
					//echo $sql_detalle;
					ejecutarConsulta($sql_detalle) or $sw=false;
				}
			} else {
				die("Error: No hay datos en la tabla seleccionada");
			}
			if ($sw){
				$sql="UPDATE venta SET estado='Anulado' WHERE idventa='$idventa'";
				ejecutarConsulta($sql) or $sw=false;	
			}
		}
		
		return $sw;
	}
	
	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($idventa){
		$sql="SELECT v.idventa,DATE(v.fecha_hora) as fecha,v.idcliente,p.nombre as cliente, p.tipo_documento,p.num_documento,u.idusuario,u.nombre as usuario, v.tipo_comprobante,v.serie_comprobante,v.num_comprobante,v.total_venta,v.impuesto,v.estado FROM venta v INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN usuario u ON v.idusuario=u.idusuario WHERE idventa='$idventa'";
		return ejecutarConsultaSimpleFila($sql);
	}
	
	public function listarDetalle($idventa){
		$sql="SELECT dv.idventa,dv.idarticulo,a.nombre,dv.cantidad,dv.precio_venta,dv.descuento,(dv.cantidad*dv.precio_venta-dv.descuento) as subtotal, dv.impuestoart18 FROM detalle_venta dv INNER JOIN articulo a ON dv.idarticulo=a.idarticulo WHERE dv.idventa='$idventa'";
		return ejecutarConsulta($sql);
	}
	
	//listar registros
	public function listar(){
		$sql="SELECT v.idventa,DATE(v.fecha_hora) as fecha,v.idcliente,p.nombre as cliente,u.idusuario,u.nombre as usuario, v.tipo_comprobante,v.serie_comprobante,v.num_comprobante,v.total_venta,v.impuesto,v.estado FROM venta v INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN usuario u ON v.idusuario=u.idusuario WHERE v.estado<>'Pagada' ORDER BY v.idventa DESC";
		return ejecutarConsulta($sql);
	}
	
	
	public function ventacabecera($idventa){
		$sql= "SELECT v.idventa, v.idcliente, p.nombre AS cliente, p.nombred AS cliented, p.direccion,p.direcciond,p.licencia_licor,p.licencia_licord, p.tipo_documento,p.tipo_documentod, p.num_documento, p.num_documentod, p.email, p.emaild, p.telefono,p.telefonod, p.resenaendollar, v.idusuario, u.nombre AS vendedor, v.tipo_comprobante, v.serie_comprobante, v.num_comprobante, DATE(v.fecha_hora) AS fecha, v.impuesto, v.total_venta, v.tasa_dollar, t.nombre as nombretransporte, t.vehiculo, t.placa FROM venta v INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN usuario u ON v.idusuario=u.idusuario INNER JOIN transportista t ON t.idtransportista=v.idtransportista WHERE v.idventa='$idventa'";
		return ejecutarConsulta($sql);
	}
	
	public function ventadetalles($idventa){
		$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.impuestoart18 as impuestoart16, (d.cantidad*d.precio_venta+d.descuento) AS subtotal, d.porcentaje, c.idcategoriadeunidades, c.nombre, u.idunidademedidad, u.nombre, a.exento, t.codigotipoarticulo,al.porcentaje as alicuota,d.preciopvp FROM detalle_venta 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.idventa='$idventa'";
		return ejecutarConsulta($sql);
	}
	
	public function ventatasacambio(){
		$sql="SELECT tasa_dollar,tasa_euro FROM empresa_tasacambio WHERE idempresa='1'";
		return ejecutarConsulta($sql);
	}
	
	}
	
	 ?>
	