<?php
date_default_timezone_set('America/Lima');
class cNotacredito{
	
	function insertar($fec,$docid,$numdoc,$usuid,$venid,$mot,$tip,$icbper,$tot, $digval,$sigval,$fecenv,$estsun,$urlxml){
		$now =  date('Y-m-d h:i:s a');
	$sql = "INSERT INTO tb_notacredito(
	tb_notacredito_reg ,
	tb_notacredito_mod ,
	tb_notacredito_fec ,
	tb_documento_id ,
	tb_notacredito_numdoc ,
	tb_usuario_id ,
	tb_venta_id ,
	tb_notacredito_motivo,
	tb_notacredito_tip,
	tb_notacredito_icbper,
	tb_notacredito_tot,
	
	tb_notacredito_digval,
	tb_notacredito_sigval,
	tb_notacredito_fecenvsun,
	tb_notacredito_estsun,
	tb_notacredito_urlxml
	)
	VALUES(
	'$now','$now','$fec','$docid','$numdoc','$usuid','$venid','$mot','$tip','$icbper','$tot', '$digval','$sigval','$fecenv','$estsun','$urlxml');"; 
	$oCado = new Cado();
	$rst=$oCado->ejecute_sql($sql);
	return $rst;	
	}
	
function mostrar_xperiodo($mes,$anio,$punven_id){
		$fec1 = $anio.'-'.$mes.'-'.'01';
		$fec2 = $anio.'-'.$mes.'-'.'31';
		$sql="select * from tb_notacredito nc
		inner join tb_venta v on v.tb_venta_id = nc.tb_venta_id
		inner join tb_puntoventa pv on pv.tb_puntoventa_id = v.tb_puntoventa_id
		where nc.tb_notacredito_fec BETWEEN '$fec1' AND '$fec2' and nc.tb_notacredito_xac = '1' ";
		
		if($punven_id>0) $sql.=" and pv.tb_puntoventa_id = '$punven_id' ";
		
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}
	
	function filtroreporte_agru($emp,$cli_id,$fec1,$fec2,$agrufec,$agruemp,$agrucli){
		$sql="select SUM(CASE WHEN v.tb_moneda_id = 1 THEN nc.tb_notacredito_tot ELSE 0 END) 'soles',
		SUM(CASE WHEN v.tb_moneda_id = 2 THEN nc.tb_notacredito_tot ELSE 0 END) 'dolares' ,
		" ; 
		if($agrufec>0) $sql.=" nc.tb_notacredito_fec as 'fecha' ";
		if($agruemp>0) $sql.=" em.tb_empresa_nomcom as 'emp',em.tb_empresa_id as 'emp_id' ";
		if($agrucli>0) $sql.=" c.tb_cliente_nom as 'cli',c.tb_cliente_id as 'cli_id' ";
		$sql.= "from tb_notacredito nc
		inner join tb_venta v on v.tb_venta_id = nc.tb_venta_id
        inner join tb_puntoventa pv on pv.tb_puntoventa_id = v.tb_puntoventa_id
		inner join tb_empresa em on em.tb_empresa_id = pv.tb_empresa_id
		INNER JOIN tb_cliente c ON c.tb_cliente_id=v.tb_cliente_id
		where nc.tb_notacredito_xac = '1' ";
		
		if($emp!="") $sql.=" and v.tb_empresa_id = '$emp' ";
		if($cli_id!="") $sql.=" and v.tb_cliente_id = '$cli_id' ";
		
		if($fec1!="") $sql.=" and nc.tb_notacredito_fec between '$fec1'  and '$fec2' ";
		
		if($agrufec>0) $sql.=" group by nc.tb_notacredito_fec order by nc.tb_notacredito_fec ASC ";
		if($agrucli>0) $sql.=" group by c.tb_cliente_nom ,c.tb_cliente_id order by  c.tb_cliente_id  ASC ";
		if($agruemp>0) $sql.=" group by em.tb_empresa_nomcom ,em.tb_empresa_id order by  pv.tb_empresa_id  ASC ";
		
				
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}
	
	
	function filtroreporte($fec,$agrufec,$agruemp,$agrcli,$emp_id,$cli_id,$fec1,$fec2){
		$sql="select * from tb_notacredito nc
		inner join tb_venta v on v.tb_venta_id = nc.tb_venta_id
        inner join tb_puntoventa pv on pv.tb_puntoventa_id = v.tb_puntoventa_id
		inner join tb_empresa em on em.tb_empresa_id = pv.tb_empresa_id
		INNER JOIN tb_cliente c ON c.tb_cliente_id=v.tb_cliente_id
		INNER JOIN tb_documento d ON v.tb_documento_id=d.tb_documento_id
		where nc.tb_notacredito_xac = '1' ";
		
		//if($emp!="") $sql.=" and c.tb_empresa_id = '$emp' ";
		
		if($agrufec=='1'){
			$sql.=" and nc.tb_notacredito_fec = '$fec'";
		}else if($agruemp=='1'){
			$sql.=" and em.tb_empresa_id = '$emp_id' ";
			$sql.="  and nc.tb_notacredito_fec between '$fec1'  and '$fec2' ";
		}else if($agrcli=='1'){
			$sql.=" and c.tb_cliente_id = '$cli_id' ";
			$sql.="  and nc.tb_notacredito_fec between '$fec1'  and '$fec2' ";
		}else{
			$sql.="  and nc.tb_notacredito_fec between '$fec1'  and '$fec2' ";
		}
		
		$sql.=" order by nc.tb_notacredito_fec, em.tb_empresa_id, c.tb_cliente_id ASC ";
		
		
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}
	
	
	
	function mostrar_detalle_agru($mes,$anio,$punven_id){
		$fec1 = $anio.'-'.$mes.'-'.'01';
		$fec2 = $anio.'-'.$mes.'-'.'31';
		
		$sql="select pv.tb_puntoventa_id, pv.tb_puntoventa_alias from tb_notacredito nc
		inner join tb_venta v on v.tb_venta_id = nc.tb_venta_id
		inner join tb_puntoventa pv on pv.tb_puntoventa_id = v.tb_puntoventa_id
		inner join tb_empresa emp on emp.tb_empresa_id = pv.tb_empresa_id
		where nc.tb_notacredito_fec BETWEEN '$fec1' AND '$fec2' and nc.tb_notacredito_xac = '1' ";
		
		if($punven_id>0) $sql.=" and pv.tb_puntoventa_id = '$punven_id' ";
		
		$sql.=" group by pv.tb_puntoventa_id,pv.tb_puntoventa_alias";
		
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}
	
	
	function notacredito_asunat($fec1,$fec2){
		
		$sql="SELECT * FROM tb_notacredito where tb_notacredito_estsun = 0 and tb_notacredito_xac = 1 and tb_notacredito_fec between '$fec1' and '$fec2'  ";
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}
	
function mostrar_detalle_des($mes,$anio,$punven_id){
		$fec1 = $anio.'-'.$mes.'-'.'01';
		$fec2 = $anio.'-'.$mes.'-'.'31';
		
		$sql="select * from tb_notacredito nc
		inner join tb_venta v on v.tb_venta_id = nc.tb_venta_id
		inner join tb_puntoventa pv on pv.tb_puntoventa_id = v.tb_puntoventa_id
		inner join tb_empresa em on em.tb_empresa_id = pv.tb_empresa_id
		left join tb_cliente c on c.tb_cliente_id = v.tb_cliente_id
		inner join tb_documento doc on doc.tb_documento_id = nc.tb_documento_id
		where nc.tb_notacredito_fec BETWEEN '$fec1' AND '$fec2' and nc.tb_notacredito_xac = '1' ";
		if($punven_id>0) $sql.=" and pv.tb_puntoventa_id = '$punven_id' ";
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}
	function validarVenta($id){
		$sql="SELECT * FROM tb_notacredito WHERE tb_venta_id='$id' and tb_notacredito_xac = '1' ";
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}
	
	function insertardetalle($imei_id,$imei_nom,$catcod,$catid,$marid,$esp_id,$nom,$can,$icbper,$preuni,$notcreid){
		
	$sql = "INSERT INTO tb_notacreditodetalle(
	tb_especificacionimei_id ,
	tb_especificacionimei_nom ,
	tb_catalogo_cod ,
	tb_catalogo_id ,
	tb_marca_id ,
	tb_especificacion_id ,
	tb_notacreditodetalle_nom ,
	tb_notacreditodetalle_can ,
	tb_notacreditodetalle_icbper ,
	tb_notacreditodetalle_preuni ,
	tb_notacredito_id
	)
	VALUES ('$imei_id','$imei_nom','$catcod','$catid','$marid','$esp_id','$nom','$can','$icbper','$preuni','$notcreid')"; 
	$oCado = new Cado();
	$rst=$oCado->ejecute_sql($sql);
	return $rst;	
	}
	
	function ultimoInsert(){
	$sql = "select max(tb_notacredito_id) as 'id' from tb_notacredito "; 
	$oCado = new Cado();
	$rst=$oCado->ejecute_sql($sql);
	return $rst;	
	}
	
	function filtrar($fec1,$fec2,$punven_id,$numdoc,$monid,$cliid,$estsun,$lim){
	$sql = "SELECT * FROM tb_notacredito nc 
	inner join tb_venta v on v.tb_venta_id = nc.tb_venta_id
	inner join tb_puntoventa pv on pv.tb_puntoventa_id = v.tb_puntoventa_id
	left join tb_empresa emp on emp.tb_empresa_id = pv.tb_empresa_id
	where tb_notacredito_xac = '1' "; 
	
	
	if($numdoc!=""){
			$sql.=" AND nc.tb_notacredito_numdoc like '%$numdoc%' ";
	}else{
			$sql.=" AND nc.tb_notacredito_fec BETWEEN '$fec1' AND '$fec2' ";
	}
	
	if($punven_id>0)$sql.=" AND v.tb_puntoventa_id = '$punven_id' ";
	
	if($cliid>0)$sql.=" AND v.tb_cliente_id = '$cliid' ";
	if($monid>0)$sql.=" AND v.tb_moneda_id = $monid ";
		
	if($estsun==""){
			
		}else if($estsun==0){ /// RECHAZADA

			$sql.=" AND nc.tb_notacredito_estsun = $estsun ";
			
		}else if($estsun==1){ /// ACEPTADA

			$sql.=" AND nc.tb_notacredito_estsun = $estsun ";
			
		}else if($estsun==2){ /// ANULADA

			$sql.=" AND nc.tb_notacredito_estsun = $estsun ";
			
		}
	
	
	$sql.=" ORDER BY nc.tb_notacredito_id desc";
		
		if($lim!="")$sql.=" limit $lim ";
		
	$oCado = new Cado();
	$rst=$oCado->ejecute_sql($sql);
	return $rst;	
	}
	
	function mostrarUno($notcreid){
	$sql = "SELECT * FROM tb_notacredito nc 
	inner join tb_venta v on v.tb_venta_id = nc.tb_venta_id
	inner join tb_puntoventa pv on pv.tb_puntoventa_id = v.tb_puntoventa_id
	where tb_notacredito_id = '$notcreid'"; 
	$oCado = new Cado();
	$rst=$oCado->ejecute_sql($sql);
	return $rst;	
	}
	
	
	function mostrar_detalle($notcreid){
	$sql = "SELECT * FROM tb_notacreditodetalle ncd
inner join tb_catalogo cat on cat.tb_catalogo_id = ncd.tb_catalogo_id
inner join tb_producto pro on pro.tb_producto_id = cat.tb_producto_id
inner join tb_marca m on m.tb_marca_id = ncd.tb_marca_id
inner join tb_unidad u on u.tb_unidad_id = cat.tb_unidad_id
where ncd.tb_notacredito_id = '$notcreid'"; 
	$oCado = new Cado();
	$rst=$oCado->ejecute_sql($sql);
	return $rst;	
	}
	
	function ver_estadoventa($id){
		$sql="SELECT * FROM tb_venta v 
		inner join tb_puntoventa pv on pv.tb_puntoventa_id = v.tb_puntoventa_id
		WHERE tb_venta_id='$id'";
		$oCado = new Cado();
		$rst=$oCado->ejecute_sql($sql);
		return $rst;
	}
	
	function act_firma($id,$digval,$sigval,$urlxml){
		$now =  date('Y-m-d h:i:s a');
	$sql = "UPDATE tb_notacredito SET  
	tb_notacredito_digval =  '$digval',
	tb_notacredito_sigval =  '$sigval',
	tb_notacredito_urlxml =  '$urlxml'
	WHERE tb_notacredito_id = '$id' "; 
	$oCado = new Cado();
	$rst=$oCado->ejecute_sql($sql);
	return $rst;
	}
	
	function act_sunat($id,$est){
		$now =  date('Y-m-d h:i:s a');
	$sql = "UPDATE tb_notacredito SET  
	tb_notacredito_fecenvsun = '$now',
	tb_notacredito_estsun =  '$est'
	WHERE tb_notacredito_id = '$id' "; 
	$oCado = new Cado();
	$rst=$oCado->ejecute_sql($sql);
	return $rst;
	}
	
	function convertir_hash($id){
	$key = 'EixMKU90GHKJGhDVN78A';
	$sql="SELECT * FROM tb_notacredito nt inner JOIN
	tb_venta v on v.tb_venta_id = nt.tb_venta_id
	WHERE MD5(concat('$key',tb_notacredito_id)) = '$id'";
	$oCado = new Cado();
	$rst=$oCado->ejecute_sql($sql);
	return $rst;
	}
	
	
}
?>