<?php 
//Incluímos inicialmente la conexión a la base de datos
require "../config/Conexion.php";

Class Venta
{
	//Implementamos nuestro constructor
	public function __construct()
	{

	}

	//Implementamos un método para insertar registros
	public function insertar($idcliente,$idusuario,$tipo_comprobante,$fecha_hora,$idsede,$idarea,$idcargo,$ubicacion,$verificador,$observaciones,$procedimiento,$total_venta,$idarticulo,$cod_patri,$articulo,$marca,$modelo,$serie,$color,$condicion,$estado,$observacion,$cantidad,$precio_venta,$descuento)
	{
		$sql="INSERT INTO venta (idcliente,idusuario,tipo_comprobante,fecha_hora,idsede,idarea,idcargo,ubicacion,verificador,observaciones,procedimiento,total_venta,estado)
		VALUES ('$idcliente','$idusuario','$tipo_comprobante','$fecha_hora','$idsede','$idarea','$idcargo','$ubicacion','$verificador','$observaciones','$procedimiento','$total_venta','Aceptado')";
		//return ejecutarConsulta($sql);
		$idventanew=ejecutarConsulta_retornarID($sql);

		$num_elementos=0;
		$sw=true;

		while ($num_elementos < count($idarticulo))

		{
			$sql_detalle = "INSERT INTO detalle_venta(idventa,idarticulo,cod_patri,articulo,marca,modelo,serie,color,condicion,estado,observacion,cantidad,precio_venta,descuento) VALUES ('$idventanew','$idarticulo[$num_elementos]','$cod_patri[$num_elementos]','$articulo[$num_elementos]','$marca[$num_elementos]','$modelo[$num_elementos]','$serie[$num_elementos]','$color[$num_elementos]','$condicion[$num_elementos]','$estado[$num_elementos]','$observacion[$num_elementos]','$cantidad[$num_elementos]','$precio_venta[$num_elementos]','$descuento[$num_elementos]')";
			ejecutarConsulta($sql_detalle) or $sw = false;
			$num_elementos=$num_elementos + 1;
		}

		return $sw;
	}

	
	//Implementamos un método para anular la venta
	public function anular($idventa)
	{
		$sql="UPDATE venta SET estado='Anulado' WHERE idventa='$idventa'";
		return ejecutarConsulta($sql);
	}


	//Implementar un método para mostrar los datos de un registro a modificar
	public function mostrar($idventa)
	{
		$sql="SELECT v.idventa,DATE(v.fecha_hora) as fecha,v.idcliente,p.nombre as cliente,u.idusuario,u.login as usuario,v.tipo_comprobante,v.total_venta,v.idsede,v.idarea,v.idcargo,v.ubicacion,v.observaciones,v.procedimiento,v.verificador,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.idventa='$idventa'";
		return ejecutarConsultaSimpleFila($sql);
	}

	public function listarDetalle($idventa)
	{
		$sql="SELECT v.idcliente,dv.idventa,dv.idarticulo,dv.articulo,dv.cod_patri,dv.marca,dv.modelo,dv.serie,dv.color,dv.condicion,dv.estado,dv.observacion,dv.cantidad,dv.precio_venta,dv.descuento,(dv.cantidad*dv.precio_venta-dv.descuento) as subtotal FROM detalle_venta dv inner join articulo a on dv.idarticulo=a.idarticulo INNER JOIN venta v ON dv.idventa=v.idventa where v.idventa='$idventa'";
		return ejecutarConsulta($sql);
	}
	
	//para mostrar en el listado principal ojo aumentar where  pr.grupo_proc='2' 

	public function listar()
	{
		$sql="SELECT LPAD(v.idventa,5,0) as idventa,DATE_FORMAT(v.fecha_hora,'%d/%m/%y') as fecha,v.idcliente,p.nombre as cliente,a.nombre as n_art,dv.cod_patri,dv.marca,dv.modelo,dv.serie,dv.color,dv.condicion,v.procedimiento,u.idusuario,u.login as usuario,u.login,v.tipo_comprobante,v.total_venta,s.nombre,se.nom_sede,ar.nombre_a,c.nombre_c,v.ubicacion,v.observaciones,v.procedimiento,v.verificador,v.estado FROM venta v INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN usuario u ON v.idusuario=u.idusuario inner join detalle_venta dv on v.idventa=dv.idventa inner join articulo a on dv.idarticulo=a.idarticulo INNER JOIN sedes s ON v.idsede=s.idsede INNER JOIN area ar on v.idarea=ar.idarea INNER JOIN cargo c ON v.idcargo=c.idcargo INNER JOIN sede se ON v.ubicacion=se.sigla INNER JOIN procedimientos pr ON v.procedimiento=pr.id_proc WHERE pr.grupo_proc='2' GROUP BY v.idventa ORDER by v.idventa desc";
		return ejecutarConsulta($sql);		
	}

	public function ventacabecera($idventa){
		$sql="SELECT concat(s.sigla,'',se.sigla,'',ar.sigla,'',LPAD(a.codigo,4,0),LPAD(dv.idventa,3,0)) as cod_patri,LPAD(v.idventa,4,0) as idventa,a.nombre as articulo,p.nombre as cliente,p.direccion,p.tipo_documento,p.num_documento,p.email,p.telefono,u.login as usuario,v.tipo_comprobante,DATE_FORMAT(v.fecha_hora,'%d/%m/%y') as fecha,s.nom_sede,ar.nombre_a,c.nombre_c,v.verificador,pr.nom_proc,v.total_venta,dv.marca,dv.observacion,se.nombre,u.login,v.ubicacion FROM venta v INNER JOIN detalle_venta dv ON v.idventa=dv.idventa INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN usuario u ON v.idusuario=u.idusuario INNER JOIN sedes se ON v.idsede=se.idsede INNER JOIN sede s ON v.ubicacion=s.sigla INNER join area ar ON v.idarea=ar.idarea INNER JOIN cargo c ON v.idcargo=c.idcargo INNER JOIN procedimientos pr ON v.procedimiento=pr.id_proc INNER JOIN articulo a ON dv.idarticulo=a.idarticulo WHERE v.idventa='$idventa'";
		return ejecutarConsulta($sql);
	}
	//se muestra info en reportes
	public function ventadetalle($idventa){
		$sql="SELECT ROW_NUMBER() OVER () AS lineas,cod_patri,LPAD(v.idventa,4,0) as idventa,p.nombre as cliente,p.direccion,p.tipo_documento,p.num_documento,p.email,p.telefono,u.login as usuario,v.tipo_comprobante,DATE_FORMAT(v.fecha_hora,'%d/%m/%y') as fecha,se.nom_sede,ar.nombre_a,c.nombre_c,v.verificador,pr.nom_proc,v.total_venta,dv.marca,dv.articulo,dv.marca,dv.modelo,dv.serie,dv.color,dv.condicion,dv.estado,dv.observacion,v.ubicacion,v.procedimiento,dv.cantidad FROM venta v INNER JOIN detalle_venta dv ON v.idventa=dv.idventa INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN usuario u ON v.idusuario=u.idusuario INNER JOIN sede se ON v.ubicacion=se.sigla INNER join area ar ON v.idarea=ar.idarea INNER JOIN cargo c ON v.idcargo=c.idcargo INNER JOIN procedimientos pr ON v.procedimiento=pr.id_proc INNER JOIN articulo a ON dv.idarticulo=a.idarticulo INNER JOIN sedes s ON v.idsede=s.idsede WHERE v.idventa='$idventa'";
		//$sql="SELECT ROW_NUMBER() OVER () AS lineas,cod_patri,LPAD(v.idventa,4,0) as idventa,p.nombre as cliente,p.direccion,p.tipo_documento,p.num_documento,p.email,p.telefono,u.login as usuario,v.tipo_comprobante,DATE_FORMAT(v.fecha_hora,'%d/%m/%y') as fecha,se.nom_sede,ar.nombre_a,c.nombre_c,v.verificador,pr.nom_proc,v.total_venta,dv.marca,a.nombre as articulo,dv.marca,dv.modelo,dv.serie,dv.color,dv.condicion,dv.estado,dv.observacion,v.ubicacion,v.procedimiento FROM venta v INNER JOIN detalle_venta dv ON v.idventa=dv.idventa INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN usuario u ON v.idusuario=u.idusuario INNER JOIN sede se ON v.ubicacion=se.sigla INNER join area ar ON v.idarea=ar.idarea INNER JOIN cargo c ON v.idcargo=c.idcargo INNER JOIN procedimientos pr ON v.procedimiento=pr.id_proc INNER JOIN articulo a ON dv.idarticulo=a.idarticulo INNER JOIN sedes s ON v.idsede=s.idsede WHERE v.idventa='$idventa' //and cod_patri not in ('MC')";
		//$sql="SELECT a.nombre as articulo,d.cod_patri,d.marca,d.modelo,d.serie,d.color,d.condicion,d.estado,d.cantidad,d.precio_venta,d.descuento,(d.cantidad*d.precio_venta-d.descuento) as subtotal,u.nombre FROM detalle_venta d INNER JOIN venta v ON d.idventa=v.idventa INNER JOIN usuario u ON v.idusuario=u.idusuario INNER JOIN articulo a ON d.idarticulo=a.idarticulo; WHERE d.idventa='$idventa'";
		return ejecutarConsulta($sql);
	}

	public function ventadetalle1($idventa){
		$sql="SELECT LPAD(v.idventa,4,0) as idventa,p.nombre as cliente,p.direccion,p.tipo_documento,p.num_documento,p.email,p.telefono,u.login as usuario,v.tipo_comprobante,DATE_FORMAT(v.fecha_hora,'%d/%m/%y') as fecha,s.nom_sede,a.nombre_a,c.nombre_c,v.verificador,pr.nom_proc,v.total_venta,dv.cod_patri,dv.marca,dv.articulo,dv.marca,dv.modelo,dv.serie,dv.color,dv.condicion,dv.estado,dv.observacion,v.ubicacion,v.procedimiento FROM venta v INNER JOIN detalle_venta dv ON v.idventa=dv.idventa INNER JOIN persona p ON v.idcliente=p.idpersona INNER JOIN usuario u ON v.idusuario=u.idusuario INNER JOIN sede s ON v.ubicacion=s.sigla INNER join area a ON v.idarea=a.idarea INNER JOIN cargo c ON v.idcargo=c.idcargo INNER JOIN procedimientos pr ON v.procedimiento=pr.id_proc INNER JOIN articulo ar ON dv.idarticulo=ar.idarticulo WHERE v.idventa='$idventa'";
		//$sql="SELECT a.nombre as articulo,d.cod_patri,d.marca,d.modelo,d.serie,d.color,d.condicion,d.estado,d.cantidad,d.precio_venta,d.descuento,(d.cantidad*d.precio_venta-d.descuento) as subtotal,u.nombre FROM detalle_venta d INNER JOIN venta v ON d.idventa=v.idventa INNER JOIN usuario u ON v.idusuario=u.idusuario INNER JOIN articulo a ON d.idarticulo=a.idarticulo; WHERE d.idventa='$idventa'";
		return ejecutarConsulta($sql);
	}
}
?>