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


	//implementamos nuestro constructor
public function __construct(){

}

/* insertar($idcontrolvisita,$idusuario,$num_pedido,$fecha_hora,$impuesto,$total_venta,
			$_POST["idarticulo"],$_POST["cantidad"],$_POST["precio_venta"],$_POST["descuento"],$_POST["porcentaje"]) */

/*$idusuario,$num_controlvisita,$fecha_hora,$semana,$dia,
			$cliente,$fecha,$personacontacto,$telefono,$observacion 
*/

/* 
$idcontrolvisita,$idusuario,$num_controlvisita,$fecha_hora,$semana,$dia,
			$cliente,$fecha,$personacontacto,$telefono,$observacion
*/

//metodo insertar registro
public function insertar($idusuario,$num_controlvisita,$fecha_hora,$semana,$dia,
						$cliente,$fechavisita,$personacontacto,$telefono,$observacion){
	$sql = "INSERT INTO controlvisita (idusuario,num_controlvisita,fecha_hora,semana,dia,estado) 
			VALUES ('$idusuario','$num_controlvisita','$fecha_hora','$semana','$dia','Pendiente')";
	//return ejecutarConsulta($sql);
	//echo ($sql); 
	$sw=true;
	$idcontrolvisitanew=ejecutarConsulta_retornarID($sql) or $sw=false;
	$num_elementos=0;
	
	//Si no hay problemas se procede a agregar los clientes al control de visita
	echo 'nro de clientes: ',count($cliente);
	if ($sw) {
		while ($num_elementos < count($cliente)) {
			$partes = explode('/', $cliente[$num_elementos]);
			$idcliente = $partes[1];
			$idvendedor = $partes[2];
			if($fechavisita[$num_elementos]!=''||$personacontacto[$num_elementos]!=''||$telefono[$num_elementos]!=''||$observacion[$num_elementos]!=''){
				$sql_detalle = "INSERT INTO detalle_controlvisita(idcontrolvisita, idcliente, idvendedor, fechavisita, personacontacto, telefono, observacion) 
								VALUES('$idcontrolvisitanew','$idcliente','$idvendedor','$fechavisita[$num_elementos]','$personacontacto[$num_elementos]','$telefono[$num_elementos]','$observacion[$num_elementos]')";
				echo ($sql_detalle);
				ejecutarConsulta($sql_detalle) or $sw=false;
			}
				
			
			$num_elementos=$num_elementos+1;
		}
	}
	 
	return $sw;
}

//metodo insertar registro
public function actualizar($idcontrolvisita,$idusuario,$num_controlvisita,$fecha_hora,$semana,$dia,
							$cliente,$fechavisita,$personacontacto,$telefono,$observacion){
	//Actualizamos el total del pedido de controlvisita
	$sql = "UPDATE controlvisita SET idusuario='$idusuario',fecha_hora='$fecha_hora',estado='Actualizado' WHERE idcontrolvisita='$idcontrolvisita'";
	//echo ($sql);
	$sw=true;
	echo ($sql);
	ejecutarConsulta($sql) or $sw=false;
	$num_elementos=0;

	//Si no hay problemas se procede a actualizar los clientes al control de visita
	if ($sw) {
		while ($num_elementos < count($cliente)) {
			$partes = explode('/', $cliente[$num_elementos]);
			$idcliente = $partes[1];
			$idvendedor = $partes[2];
			
			if($fechavisita[$num_elementos]!=''||$personacontacto[$num_elementos]!=''||$telefono[$num_elementos]!=''||$observacion[$num_elementos]!=''){
				$sql_detalle = "INSERT INTO detalle_controlvisita(idcontrolvisita, idcliente, idvendedor, fechavisita, personacontacto, telefono, observacion) 
								VALUES('$idcontrolvisita','$idcliente','$idvendedor','$fechavisita[$num_elementos]','$personacontacto[$num_elementos]','$telefono[$num_elementos]','$observacion[$num_elementos]')";
				echo ($sql_detalle);
				ejecutarConsulta($sql_detalle) or $sw=false;
			}			
			
			$num_elementos=$num_elementos+1;
		}
	}

	
	return $sw;
}

//metodo insertar registro
public function actualizarm($iddetalle_controlvisita,$idcontrolvisita,$idusuario,$idcliente,$idvendedor,$fechavisita,$fecha_modificacion){
	//Actualizamos el total del pedido de controlvisita
	$sql = "UPDATE controlvisita SET idusuario='$idusuario',estado='Actualizado',fecha_modificacion='$fecha_modificacion' WHERE idcontrolvisita='$idcontrolvisita'";
	//echo ($sql);
	$sw=true;
	echo ($sql);
	ejecutarConsulta($sql) or $sw=false;
	

	//Si no hay problemas se procede a actualizar los clientes al control de visita
	if ($sw) {
		
		$sql_detalle = "UPDATE detalle_controlvisita 
						SET fechavisita='$fechavisita',fecha_modificacion='$fecha_modificacion'
						WHERE iddetalle_controlvisita='$iddetalle_controlvisita'";
		echo ($sql_detalle);
		ejecutarConsulta($sql_detalle) or $sw=false;
	}

	
	return $sw;
}

public function guardarfechacontroldevisitagrupo($idcontrolvisita,$idusuario,$num_controlvisita,$fecha_hora,$semana,$dia,$fechac,
											$controlfechavalido){
	$sw=true;
	
	//Cabecera
	if($idcontrolvisita==''){
		//Nuevo Control de visita
		$sql = "INSERT INTO controlvisita (idusuario,num_controlvisita,fecha_hora,semana,dia,estado) 
				VALUES ('$idusuario','$num_controlvisita','$fecha_hora','$semana','$dia','Pendiente')";
	 	$idcontrolvisita=ejecutarConsulta_retornarID($sql) or $sw=false;
	}else{
		//Actualizamos el controlvisita
		$sql = "UPDATE controlvisita SET idusuario='$idusuario',fecha_hora='$fecha_hora',estado='Actualizado' WHERE idcontrolvisita='$idcontrolvisita'";
		$sw=true;
	}

	//Detalle
	//Si no hay problemas se procede a actualizar los clientes al control de visita
	$num_elementos=0;
	if ($sw) {
		while ($num_elementos < count($controlfechavalido)) {
			$partes = explode('-', $controlfechavalido[$num_elementos]);
			$idcliente = $partes[1];
			$idvendedor = $partes[2];
			$sql1s 		= "SELECT * FROM detalle_controlvisita WHERE idcontrolvisita='$idcontrolvisita' AND idcliente='$idcliente' AND idvendedor='$idvendedor'";
			echo $sql1s;
			$result1s	=	ejecutarConsulta($sql1s);
			
			if( (mysqli_num_rows($result1s) > 0)){
				$sql_detalle = "UPDATE detalle_controlvisita 
								SET fechavisita='$fechac'
								WHERE idcontrolvisita='$idcontrolvisita' AND idcliente='$idcliente' AND idvendedor='$idvendedor'";
				echo ($sql_detalle);
				ejecutarConsulta($sql_detalle) or $sw=false;
			}else{
				$sql_detalle = "INSERT INTO detalle_controlvisita(idcontrolvisita, idcliente, idvendedor, fechavisita, personacontacto, telefono, observacion) 
								VALUES('$idcontrolvisita','$idcliente','$idvendedor','$fechac','','','')";
					echo ($sql_detalle);
					ejecutarConsulta($sql_detalle) or $sw=false;
			}
			$num_elementos=$num_elementos+1;
		}
	}
	
	

	
	return $sw;
}

public function anular($idcontrolvisita){
	$sql="UPDATE controlvisita SET estado='Anulado' WHERE idcontrolvisita='$idcontrolvisita'";
	return ejecutarConsulta($sql);
}


//implementar un metodopara mostrar los datos de unregistro a modificar

public function mostrar($idcontrolvisita){
	$sql="SELECT c.idcontrolvisita, c.idusuario, c.num_controlvisita, c.fecha_hora, c.dia, c.semana, c.estado FROM controlvisita c WHERE c.idcontrolvisita='$idcontrolvisita'";
	return ejecutarConsultaSimpleFila($sql);
}

public function verificarsemana($semana){
	$sql="SELECT c.idcontrolvisita, c.idusuario, c.num_controlvisita, c.fecha_hora, c.dia, c.semana, c.estado FROM controlvisita c WHERE c.semana='$semana' LIMIT 1";
	return ejecutarConsultaSimpleFila($sql);
}

public function buscarNumeroControlvisita(){
	/* $sql="SELECT * FROM controlvisita WHERE num_pedido = (SELECT MAX(num_pedido) from controlvisita)"; */
	$sql="SELECT COUNT(*) as num_controlvisita FROM controlvisita";
	
	return ejecutarConsultaSimpleFila($sql);
}

public function buscarSemanaControlvisita($semana){
	$sql="SELECT idcontrolvisita, num_controlvisita, fecha_hora, dia, semana FROM controlvisita WHERE semana = '$semana' ORDER BY fecha_hora DESC LIMIT 1";
	return ejecutarConsultaSimpleFila($sql);
}



public function listarDetalle($idcontrolvisita){
	$sql="SELECT dv.idcontrolvisita,dv.idarticulo,a.nombre,dv.cantidad,dv.precio_venta,dv.descuento,(dv.cantidad*dv.precio_venta-dv.descuento) as subtotal FROM detalle_barra dv INNER JOIN articulo a ON dv.idarticulo=a.idarticulo WHERE dv.idcontrolvisita='$idcontrolvisita'";
	return ejecutarConsulta($sql);
}

public function listarDetalleclientevendedor($idpersona){
	$sql="SELECT
	p.idpersona,
	p.nombre as cliente,
	v.idvendedor,
	v.nombre as vendedor,
	IFNULL(d.idcontrolvisita,'') AS idcontrolvisita,
	IFNULL(d.iddetalle_controlvisita,'') AS iddetalle_controlvisita,
	IFNULL(c.num_controlvisita,'') AS numerovisita,
	IF(d.fechavisita IS NULL,'',date_format(DATE(d.fechavisita), '%d-%m-%Y')) as fechavisita,
    IF(d.fechavisita IS NULL,'',d.fechavisita) as fechavisita2,
	IFNULL(c.num_controlvisita,'') AS num_controlvisita,
    IF(c.fecha_hora IS NULL,'',date_format(DATE(c.fecha_hora), '%d-%m-%Y')) as fecha_hora,
	IFNULL(c.semana,'') AS semana,
	IFNULL(c.dia,'') AS dia,
	IFNULL(c.estado,'') as estado
			FROM persona p
			LEFT JOIN vendedor v ON v.idvendedor=p.idvendedor
			LEFT JOIN detalle_controlvisita d ON d.idcliente=p.idpersona
			LEFT JOIN controlvisita c ON c.idcontrolvisita=d.idcontrolvisita
			WHERE p.idpersona='$idpersona' ORDER BY IF(d.fechavisita IS NULL,'',d.fechavisita) DESC";
	return ejecutarConsulta($sql);
}

public function agregarDetallePedidoDeBarra($idcontrolvisita){
	$sql="SELECT dv.iddetalle_pedido,dv.idcontrolvisita,b.idcontrolvisita,t.num_tarjeta,dv.idarticulo,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, 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 mexento, (dv.precio_venta - (dv.precio_venta/(1+((SELECT iva FROM empresa_impuestos)/100)))) as iva, dv.preciod FROM detalle_barra dv INNER JOIN articulo a ON dv.idarticulo=a.idarticulo LEFT JOIN lote l ON a.idarticulo=l.idarticulo LEFT JOIN controlvisita b ON dv.idcontrolvisita=b.idcontrolvisita LEFT JOIN tarjeta t ON b.idcontrolvisita=t.num_tarjeta WHERE dv.idcontrolvisita='$idcontrolvisita'";
	return ejecutarConsulta($sql);
}
//agregarDetallePedidoDeBarra
public function agregarDetallePorTarjeDeCliente($idcontrolvisita){
	$sql="SELECT dv.idcontrolvisita,dv.idarticulo,dv.idalmacen,a.nombre,dv.cantidad,dv.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,
	dv.precio_venta/(1+(SELECT iva FROM empresa_impuestos)/100) as preciosiniva,
	IF (a.exento='no',dv.precio_venta-dv.precio_venta/(1+(SELECT iva FROM empresa_impuestos)/100),0) as iva,
    IF (a.exento='si',dv.precio_venta,0) as exentot,
	a.exento,
	dv.descuento, (dv.cantidad*dv.precio_venta-dv.descuento) as subtotal,a.porcentaje,l.numerolote,l.fecha,b.idcontrolvisita,b.estado FROM detalle_barra dv INNER JOIN articulo a ON dv.idarticulo=a.idarticulo INNER JOIN controlvisita b ON dv.idcontrolvisita=b.idcontrolvisita LEFT JOIN lote l ON a.idarticulo=l.idarticulo WHERE b.estado='Pendiente' and b.idcontrolvisita='$idcontrolvisita'";
	return ejecutarConsulta($sql);
}

//listar registros
public function listar(){
	$sql="SELECT c.idcontrolvisita, u.nombre AS usuario, c.num_controlvisita, date_format(DATE(c.fecha_hora), '%d-%m-%Y') as fecha, c.dia,c.semana, c.estado FROM controlvisita c LEFT JOIN usuario u on u.idusuario=c.idusuario";
	return ejecutarConsulta($sql);
}

public function listarPedidoDeBarra(){
	$sql="SELECT v.idcontrolvisita,DATE(v.fecha_hora) as fecha,v.idcontrolvisita,p.nombre as tarjeta,u.idusuario,u.nombre as usuario, v.num_pedido,v.total_pedido,v.impuesto,v.estado FROM controlvisita v INNER JOIN tarjeta p ON v.idcontrolvisita=p.idcontrolvisita INNER JOIN usuario u ON v.idusuario=u.idusuario WHERE v.estado='Pendiente'";
	return ejecutarConsulta($sql);
}

public function controlvisitacabecera($idcontrolvisita){
	$sql= "SELECT idcontrolvisita,idusuario,num_controlvisita,fecha_hora,dia,semana,estado  FROM controlvisita WHERE idcontrolvisita ='$idcontrolvisita'";
	return ejecutarConsulta($sql);
}

public function ventadetalles($idcontrolvisita){
	$sql="SELECT a.nombre AS articulo, a.codigo, d.cantidad, d.precio_venta, d.descuento, (d.cantidad*d.precio_venta-d.descuento) AS subtotal FROM detalle_barra d INNER JOIN articulo a ON d.idarticulo=a.idarticulo WHERE d.idcontrolvisita='$idcontrolvisita'";
         return ejecutarConsulta($sql);
}




}

 ?>
