<?php
class gestion_model{
    private $db;

    public function __construct(){
		//$this->guarda_log("Ingresando");
        $this->db = database::conexion();
	}
	
	public function get_login($user, $pass){
		$con = "select usuario.codigo_usuario ,usuario.id_usuario,contrasena.descripcion,usuario.primer_ingreso, asignacion_perfil_almacen.id_perfil_almacen, perfil_almacen.descripcion as perfil from usuario, contrasena, asignacion_perfil_almacen, perfil_almacen where usuario.codigo_usuario = '".$user."' and usuario.id_usuario = contrasena.id_usuario and usuario.estado = 1 and contrasena.estado = 1 and perfil_almacen.id_perfil_almacen = asignacion_perfil_almacen.id_perfil_almacen and asignacion_perfil_almacen.id_usuario = usuario.id_usuario;";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		if (password_verify($pass, $tmp['descripcion'])){
			
			return $tmp;

		}
        return "";
	}

	public function get_usuario_comprobar($user){
		$sql = "SELECT COUNT(*) as total FROM usuario WHERE codigo_usuario = ?;";
	
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$user));
		sqlsrv_execute($stmt);
	
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	

	public function get_validar_almacen($almacen){
		$sql = "SELECT COUNT(*) as total FROM almacen WHERE almacen LIKE ?;";
		
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$almacen));
		sqlsrv_execute($stmt);
	
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}

	public function get_validar_asignacion_ccosto($id_almacen, $id_ccosto){
		$sql = "SELECT COUNT(*) as total FROM asignacion_almacen_ccosto WHERE id_almacen = ? AND id_ccosto = ?;";
		
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$id_almacen, &$id_ccosto));
		sqlsrv_execute($stmt);
	
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		return $tmp;
	}

	public function get_validacion_producto_cliente_existe($sku){
		$sql = "select count(*) as total From producto_servicio where sku_cliente = ?;";
		
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$sku));
		sqlsrv_execute($stmt);
	
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		return $tmp;
	}

	public function get_validacion_producto_bio_existe($sku){
		$sql = "select  count(*) as total From producto_servicio where sku = ?;";
		
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$sku));
		sqlsrv_execute($stmt);
	
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		return $tmp;
	}
	

	public function get_usuario_comprobar_ccosto($id_usuario){
		$sql = "SELECT COUNT(*) as total FROM asignacion_perfil_almacen WHERE id_usuario = ?;";
		
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$id_usuario));
		sqlsrv_execute($stmt);
	
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	

	public function consulta_ajax($orden){
		$sql = "SELECT COUNT(*) as total FROM movimientos_almacen WHERE orden = ?;";
		
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$orden));
		sqlsrv_execute($stmt);
	
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}

	public function consulta_ajax_series($serie){
		$sql = "select count(*) as total From serie where serie = ? and estado = 1;";
		
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$serie));
		sqlsrv_execute($stmt);
	
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}

	public function consulta_ajax_series_con_gestion($serie){
		$sql = "select count(*) as total From detalle_solicitud_traspaso_almacen d, solicitud_traspaso_almacen s 
		where d.id_solicitud_traspaso_almacen = s.id_solicitud_traspaso_almacen and s.estado = 1 and serie = ?
		";
		
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$serie));
		sqlsrv_execute($stmt);
	
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}

	public function set_usuario($documento_identidad){
		$sql1 = "INSERT INTO usuario (codigo_usuario, id_usuario_interactua) VALUES (?, 400);";
		$stmt1 = sqlsrv_prepare($this->db, $sql1, array(&$documento_identidad));
		sqlsrv_execute($stmt1);
	
		$sql2 = "SELECT * FROM usuario WHERE codigo_usuario = ?;";
		$stmt2 = sqlsrv_prepare($this->db, $sql2, array(&$documento_identidad));
		sqlsrv_execute($stmt2);
		$tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
	
		$hash = password_hash($documento_identidad, PASSWORD_DEFAULT);
		
		$sql3 = "INSERT INTO contrasena (id_usuario, id_usuario_interactua, descripcion) VALUES (?, 400, ?);";
		$stmt3 = sqlsrv_prepare($this->db, $sql3, array(&$tmp2['id_usuario'], &$hash));
		sqlsrv_execute($stmt3);
	
		$sql4 = "INSERT INTO asignacion_perfil_asistencia (id_usuario, id_usuario_interactua, id_perfil_asistencia) VALUES (?, 400, 2);";
		$stmt4 = sqlsrv_prepare($this->db, $sql4, array(&$tmp2['id_usuario']));
		sqlsrv_execute($stmt4);
	
		return $tmp2;
	}	

	public function update_password($nueva_contrasena,$confirmar_nueva_contrasena,$id_usuario){

		if($nueva_contrasena == $confirmar_nueva_contrasena){
		
			$con = "update contrasena set descripcion = '".password_hash($nueva_contrasena, PASSWORD_DEFAULT)."' where id_usuario = '".$id_usuario."';";
			$stmt = sqlsrv_query($this->db, $con);
			$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

			$con2 = "update usuario set primer_ingreso = '1' where id_usuario = '".$id_usuario."';";
			$stmt2 = sqlsrv_query($this->db, $con2);
			$tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

			return "SE ACTUALIZÓ CORRECTAMENTE LA CONTRASEÑA";

		}else{
			return "";
		}
	}

	public function get_clientes(){

		$con = "select empresa.id_empresa,empresa.ruc, empresa.razon_social from empresa,asignacion_tipo_empresa,tipo_empresa 
		where empresa.id_empresa = asignacion_tipo_empresa.id_empresa and tipo_empresa.id_tipo_empresa = asignacion_tipo_empresa.id_tipo_empresa
		and asignacion_tipo_empresa.id_tipo_empresa = 1 order by empresa.ruc asc;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_empresa_validar($ruc){
		$sql = "SELECT empresa.*, asignacion_tipo_empresa.id_tipo_empresa FROM empresa, asignacion_tipo_empresa WHERE empresa.ruc = ? AND empresa.id_empresa = asignacion_tipo_empresa.id_empresa ORDER BY asignacion_tipo_empresa.id_tipo_empresa ASC;";
		
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$ruc));
		sqlsrv_execute($stmt);
	
		$lista = array();
		while ($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
			$lista[] = $tmp;
		}
		
		return $lista;
	}	

	public function get_contrata_validar($ruc){
		$sql = "SELECT COUNT(*) as total FROM contrata WHERE ruc = ? GROUP BY ruc;";
		
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$ruc));
		sqlsrv_execute($stmt);
	
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	

	public function get_contrata_validar2($razon_social){
		$sql = "SELECT COUNT(*) as total FROM contrata WHERE razon_social LIKE ?;";
		
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$razon_social));
		sqlsrv_execute($stmt);
	
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	

	public function get_proveedores(){

		$con = "select empresa.id_empresa,empresa.ruc, empresa.razon_social from empresa,asignacion_tipo_empresa,tipo_empresa 
		where empresa.id_empresa = asignacion_tipo_empresa.id_empresa and tipo_empresa.id_tipo_empresa = asignacion_tipo_empresa.id_tipo_empresa
		and asignacion_tipo_empresa.id_tipo_empresa = 2 order by empresa.ruc asc;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_contratas(){

		$con = "select * from contrata where estado = 1;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_lineas_negocios(){
		$con = "select * from linea_negocio where estado = 1;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_tipos_proveedores(){
		$con = "select * from tipo_proveedor where estado = 1;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function set_cliente_empresa($ruc_empresa, $razon_social_empresa, $linea_negocio_empresa){
		$sql1 = "INSERT INTO empresa (ruc, razon_social, id_usuario_interactua) VALUES (?, ?, ?);";
		$stmt1 = sqlsrv_prepare($this->db, $sql1, array(&$ruc_empresa, &$razon_social_empresa, &$_SESSION['id_usuario_almacen']));
		sqlsrv_execute($stmt1);
	
		$sql2 = "SELECT * FROM empresa WHERE ruc = ?;";
		$stmt2 = sqlsrv_prepare($this->db, $sql2, array(&$ruc_empresa));
		sqlsrv_execute($stmt2);
		$tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
	
		$sql3 = "INSERT INTO asignacion_linea_negocio (id_empresa, id_linea_negocio, id_usuario_interactua) VALUES (?, ?, ?);";
		$stmt3 = sqlsrv_prepare($this->db, $sql3, array(&$tmp2['id_empresa'], &$linea_negocio_empresa, &$_SESSION['id_usuario_almacen']));
		sqlsrv_execute($stmt3);
	
		$sql4 = "INSERT INTO asignacion_tipo_empresa (id_empresa, id_tipo_empresa, id_usuario_interactua) VALUES (?, '1', ?);";
		$stmt4 = sqlsrv_prepare($this->db, $sql4, array(&$tmp2['id_empresa'], &$_SESSION['id_usuario_almacen']));
		sqlsrv_execute($stmt4);
	
		return $tmp2;
	}	

	public function set_cliente($empresa_id, $linea_negocio_empresa){
		$sql1 = "INSERT INTO asignacion_linea_negocio (id_empresa, id_linea_negocio, id_usuario_interactua) VALUES (?, ?, ?);";
		$stmt1 = sqlsrv_prepare($this->db, $sql1, array(&$empresa_id, &$linea_negocio_empresa, &$_SESSION['id_usuario_almacen']));
		sqlsrv_execute($stmt1);
		$tmp = sqlsrv_fetch_array($stmt1, SQLSRV_FETCH_ASSOC);
	
		$sql2 = "INSERT INTO asignacion_tipo_empresa (id_empresa, id_tipo_empresa, id_usuario_interactua) VALUES (?, '1', ?);";
		$stmt2 = sqlsrv_prepare($this->db, $sql2, array(&$empresa_id, &$_SESSION['id_usuario_almacen']));
		sqlsrv_execute($stmt2);
		$tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	

	public function set_proveedor_empresa($ruc_empresa, $razon_social_empresa, $tipo_proveedor_empresa){
		// Query 1: Insertar en la tabla empresa
		$sql1 = "INSERT INTO empresa (ruc, razon_social, id_usuario_interactua) VALUES (?, ?, ?);";
		$stmt1 = sqlsrv_prepare($this->db, $sql1, array(&$ruc_empresa, &$razon_social_empresa, &$_SESSION['id_usuario_almacen']));
		sqlsrv_execute($stmt1);
		$tmp = sqlsrv_fetch_array($stmt1, SQLSRV_FETCH_ASSOC);
	
		// Query 2: Seleccionar la empresa recién insertada
		$sql2 = "SELECT * FROM empresa WHERE ruc = ?;";
		$stmt2 = sqlsrv_prepare($this->db, $sql2, array(&$ruc_empresa));
		sqlsrv_execute($stmt2);
		$tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
	
		// Query 3: Insertar en la tabla asignacion_tipo_proveedor
		$sql3 = "INSERT INTO asignacion_tipo_proveedor (id_empresa, id_tipo_proveedor, id_usuario_interactua) VALUES (?, ?, ?);";
		$stmt3 = sqlsrv_prepare($this->db, $sql3, array(&$tmp2['id_empresa'], &$tipo_proveedor_empresa, &$_SESSION['id_usuario_almacen']));
		sqlsrv_execute($stmt3);
		$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
	
		// Query 4: Insertar en la tabla asignacion_tipo_empresa
		$sql4 = "INSERT INTO asignacion_tipo_empresa (id_empresa, id_tipo_empresa, id_usuario_interactua) VALUES (?, '2', ?);";
		$stmt4 = sqlsrv_prepare($this->db, $sql4, array(&$tmp2['id_empresa'], &$_SESSION['id_usuario_almacen']));
		sqlsrv_execute($stmt4);
		$tmp4 = sqlsrv_fetch_array($stmt4, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	
	public function set_contrata_empresa($ruc_empresa, $razon_social_empresa){
		// Query: Insertar en la tabla contrata
		$sql = "INSERT INTO contrata (ruc, razon_social, id_usuario_interactua) VALUES (?, ?, ?);";
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$ruc_empresa, &$razon_social_empresa, &$_SESSION['id_usuario_almacen']));
		sqlsrv_execute($stmt);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}

	public function set_proveedor($empresa_id, $tipo_proveedor_empresa){
		// Query 1: Insertar en la tabla asignacion_tipo_proveedor
		$sql1 = "INSERT INTO asignacion_tipo_proveedor (id_empresa, id_tipo_proveedor, id_usuario_interactua) VALUES (?, ?, ?);";
		$stmt1 = sqlsrv_prepare($this->db, $sql1, array(&$empresa_id, &$tipo_proveedor_empresa, &$_SESSION['id_usuario_almacen']));
		sqlsrv_execute($stmt1);
		$tmp = sqlsrv_fetch_array($stmt1, SQLSRV_FETCH_ASSOC);
	
		// Query 2: Insertar en la tabla asignacion_tipo_empresa
		$sql2 = "INSERT INTO asignacion_tipo_empresa (id_empresa, id_tipo_empresa, id_usuario_interactua) VALUES (?, '2', ?);";
		$stmt2 = sqlsrv_prepare($this->db, $sql2, array(&$empresa_id, &$_SESSION['id_usuario_almacen']));
		sqlsrv_execute($stmt2);
		$tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}

	public function get_tipos_monedas(){
		$con = "select * from tipo_moneda where estado = 1;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_empresa($ruc){
		// Query: Obtener empresa por RUC
		$sql = "SELECT * FROM empresa WHERE ruc = ?;";
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$ruc));
		sqlsrv_execute($stmt);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	
	public function set_plantilla_liquidacion($codigo,$codigo2,$orden,$fecha){
		$con = "insert into plantilla_liquidacion (descripcion,id_asignacion,id_usuario_interactua,codigo,orden,fecha) values ('".$codigo."','".$_SESSION['id_asignacion']."','".$_SESSION['id_usuario_almacen']."','".$codigo2."','".$orden."','".$fecha."');";
		$stmt = sqlsrv_query($this->db, $con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		$con = "select top 1 * from plantilla_liquidacion order by id_plantilla_liquidacion desc;";
		$stmt = sqlsrv_query($this->db, $con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		return $tmp;
	}

	public function set_detalle_plantilla_liquidacion($id_producto,$id_tecnico,$serie,$cantidad,$id_liquidacion){
		$con = "insert into asignacion_plantilla_liquidacion (id_producto,id_asignacion,id_tecnico,serie,cantidad_liquidar,id_usuario_interactua,id_plantilla_liquidacion) values ('".$id_producto."','".$_SESSION['id_asignacion']."','".$id_tecnico."','".$serie."','".$cantidad."','".$_SESSION['id_usuario_almacen']."','".$id_liquidacion."');";
		$stmt = sqlsrv_query($this->db, $con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		return $tmp;
	}

	public function get_plantillas_liquidacion(){
		$con = "select * from plantilla_liquidacion where id_asignacion = '".$_SESSION['id_asignacion']."' and  estado = 1;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}
	
	public function get_usuario_dni($dni){
		// Query: Obtener usuario por código de usuario (DNI)
		$sql = "SELECT * FROM usuario WHERE codigo_usuario = ?;";
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$dni));
		sqlsrv_execute($stmt);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	
	public function set_usuario_nuevo($dni){
		// Query: Insertar nuevo usuario
		$sql = "INSERT INTO usuario (codigo_usuario, primer_ingreso, id_usuario_interactua, configuracion_administracion_personal) VALUES (?, '0', ?, 0);";
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$dni, &$_SESSION['id_usuario_almacen']));
		sqlsrv_execute($stmt);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}

	public function set_contrasena_nuevo($hash, $id_usuario){
		// Query: Insertar nueva contraseña
		$sql = "INSERT INTO contrasena (descripcion, id_usuario_interactua, id_usuario) VALUES (?, ?, ?);";
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$hash, &$_SESSION['id_usuario_almacen'], &$id_usuario));
		sqlsrv_execute($stmt);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}

	public function set_producto_serealizado($cantidad, $sku, $id_asignacion, $id_tecnico, $serie) {
		// Query: Insertar movimientos de almacén (tipo 2 y 12)
		$sql1 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_tipo_movimiento, id_usuario_interactua, id_tecnico_destino) VALUES (?, ?, ?, '', '2', ?, ?);";
		$stmt1 = sqlsrv_prepare($this->db, $sql1, array(&$sku, &$id_asignacion, &$cantidad, &$_SESSION['id_usuario_almacen'], &$id_tecnico));
		sqlsrv_execute($stmt1);
	
		$sql2 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_tipo_movimiento, id_usuario_interactua, id_tecnico_destino) VALUES (?, ?, ?, '', '12', ?, ?);";
		$stmt2 = sqlsrv_prepare($this->db, $sql2, array(&$sku, &$id_asignacion, &$cantidad, &$_SESSION['id_usuario_almacen'], &$id_tecnico));
		sqlsrv_execute($stmt2);
	
		// Query: Seleccionar stock de almacén actual
		$sql3 = "SELECT * FROM stock_almacen WHERE id_producto = ? AND id_asignacion = ?;";
		$stmt3 = sqlsrv_prepare($this->db, $sql3, array(&$sku, &$id_asignacion));
		sqlsrv_execute($stmt3);
		$tmp = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
	
		// Calcular nuevo valor de 'disponible'
		$r = $tmp['disponible'] - $cantidad;
	
		// Query: Actualizar stock de almacén
		$sql4 = "UPDATE stock_almacen SET disponible = ? WHERE id_producto = ? AND id_asignacion = ?;";
		$stmt4 = sqlsrv_prepare($this->db, $sql4, array(&$r, &$sku, &$id_asignacion));
		sqlsrv_execute($stmt4);
	
		return $tmp;
	}

	public function get_ubigeo(){
		$con = "select * from ubigeo where estado = 1;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function set_almacen($almacen, $descripcion, $id_ubigeo, $direccion) {
		$sql = "BEGIN IF NOT EXISTS (SELECT * FROM almacen WHERE almacen LIKE ? AND id_ubigeo LIKE ?) BEGIN INSERT INTO almacen (almacen, descripcion, id_ubigeo, direccion, id_usuario_interactua) VALUES (?, ?, ?, ?, ?) END END;";
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$almacen, &$id_ubigeo, &$almacen, &$descripcion, &$id_ubigeo, &$direccion, &$_SESSION['id_usuario_almacen']));
		sqlsrv_execute($stmt);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		return $tmp;
	}
	
	public function set_usuario_almacen($id_perfil, $correo, $id_usuario) {
		$sql = "BEGIN IF NOT EXISTS (SELECT * FROM asignacion_perfil_almacen WHERE id_usuario LIKE ?) BEGIN INSERT INTO asignacion_perfil_almacen (id_usuario, id_perfil_almacen, id_usuario_interactua) VALUES (?, ?, ?) END END;";
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$id_usuario, &$id_usuario, &$id_perfil, &$_SESSION['id_usuario_almacen']));
		sqlsrv_execute($stmt);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		$sql2 = "UPDATE usuario SET correo = ? WHERE id_usuario = ?;";
		$stmt2 = sqlsrv_prepare($this->db, $sql2, array(&$correo, &$id_usuario));
		sqlsrv_execute($stmt2);
		$tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	
	public function set_usuario_acceso($id_asig, $id_usuario) {
		$sql = "INSERT INTO asignacion_usuario_ccosto_almacen (id_usuario, id_asignacion_almacen_ccosto, id_usuario_interactua) VALUES (?, ?, ?);";
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$id_usuario, &$id_asig, &$_SESSION['id_usuario_almacen']));
		sqlsrv_execute($stmt);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	
	public function get_validacion_usuario($id_usuario, $id_almacen) {
		$sql = "SELECT COUNT(*) AS total FROM asignacion_usuario_ccosto_almacen WHERE id_usuario = ? AND id_asignacion_almacen_ccosto = ?;";
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$id_usuario, &$id_almacen));
		sqlsrv_execute($stmt);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}

	public function set_requerimiento($id_asignacion, $id_tecnico, $requerimiento) {
		$sql = "INSERT INTO requerimiento_almacen (id_usuario_interactua, id_asignacion, id_tecnico, requerimiento) VALUES (?, ?, ?, ?);";
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$_SESSION['id_usuario_almacen'], &$id_asignacion, &$id_tecnico, &$requerimiento));
		sqlsrv_execute($stmt);
		
		$sql2 = "SELECT TOP 1 * FROM requerimiento_almacen WHERE id_usuario_interactua = ? AND id_asignacion = ? AND id_tecnico = ? ORDER BY fecha_creacion DESC;";
		$stmt2 = sqlsrv_prepare($this->db, $sql2, array(&$_SESSION['id_usuario_almacen'], &$id_asignacion, &$id_tecnico));
		sqlsrv_execute($stmt2);
		$tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
		
		return $tmp2;
	}

	public function set_requerimiento2($id_asignacion, $id_tecnico, $requerimiento) {
		$sql = "INSERT INTO requerimiento_almacen (id_usuario_interactua, id_asignacion, id_tecnico, requerimiento,estado) VALUES (?, ?, ?, ?, ?);";
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$_SESSION['id_usuario_almacen'], &$id_asignacion, &$id_tecnico, &$requerimiento, 0));
		sqlsrv_execute($stmt);
		
		$sql2 = "SELECT TOP 1 * FROM requerimiento_almacen WHERE id_usuario_interactua = ? AND id_asignacion = ? AND id_tecnico = ? ORDER BY fecha_creacion DESC;";
		$stmt2 = sqlsrv_prepare($this->db, $sql2, array(&$_SESSION['id_usuario_almacen'], &$id_asignacion, &$id_tecnico));
		sqlsrv_execute($stmt2);
		$tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
		
		return $tmp2;
	}
	
	public function set_requerimiento_detalle($id, $id_producto_servicio, $cantidad, $id_asignacion, $id_tecnico) {
		$sql = "INSERT INTO detalle_requerimiento_almacen (id_usuario_interactua, id_requerimiento_almacen, id_producto_servicio, cantidad, id_asignacion, id_tecnico) VALUES (?, ?, ?, ?, ?, ?);";
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$_SESSION['id_usuario_almacen'], &$id, &$id_producto_servicio, &$cantidad, &$id_asignacion, &$id_tecnico));
		sqlsrv_execute($stmt);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}
	
	public function set_requerimiento_detalle_almacen($id, $id_producto_servicio, $cantidad, $id_asignacion, $id_tecnico, $precio) {
		$sql = "INSERT INTO detalle_requerimiento_almacen (id_usuario_interactua, id_requerimiento_almacen, id_producto_servicio, cantidad, id_asignacion, id_tecnico, precio_u) VALUES (?, ?, ?, ?, ?, ?, ?);";
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$_SESSION['id_usuario_almacen'], &$id, &$id_producto_servicio, &$cantidad, &$id_asignacion, &$id_tecnico, &$precio));
		sqlsrv_execute($stmt);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $stmt;
	}

	// public function set_requerimiento_detalle_almacen($id, $id_producto_servicio, $cantidad, $id_asignacion, $id_tecnico, $precio){
	// 	$con = "INSERT INTO detalle_requerimiento_almacen (id_usuario_interactua, id_requerimiento_almacen, id_producto_servicio, cantidad, id_asignacion, id_tecnico, precio_u) VALUES ('".$_SESSION['id_usuario_almacen']."','".$id."','".$id_producto_servicio."','".$cantidad."','".$id_asignacion."','".$id_tecnico."','".$precio."');";
	// 	$stmt = sqlsrv_query($this->db, $con, array($dni));
	// 	$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
	// 	return $con;
	// }
	
	public function update_disponible_almacen($id_asignacion, $id_producto, $disponible) {
		$sql = "UPDATE stock_almacen SET disponible = disponible + ? WHERE id_asignacion = ? AND id_producto = ?;";
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$disponible, &$id_asignacion, &$id_producto));
		sqlsrv_execute($stmt);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		$sqlmov = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_tipo_movimiento, id_usuario_interactua) VALUES (?, ?, ?, '', '14', ?);";
		$stmtmov = sqlsrv_prepare($this->db, $sqlmov, array(&$id_producto, &$id_asignacion, &$disponible, &$_SESSION['id_usuario_almacen']));
		sqlsrv_execute($stmtmov);
		$tmpmov = sqlsrv_fetch_array($stmtmov, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}	

	public function actualizar_rq($id, $observacion) {
		$sql = "UPDATE requerimiento_almacen SET estado = 0, observacion = ? WHERE id_requerimiento_almacen = ?;";
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$observacion, &$id));
		sqlsrv_execute($stmt);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}
	
	public function get_codigo_tecnico($id) {
		$sql = "SELECT usuario.codigo_usuario FROM usuario, requerimiento_almacen WHERE requerimiento_almacen.id_requerimiento_almacen = ? AND requerimiento_almacen.id_tecnico = usuario.id_usuario;";
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$id));
		sqlsrv_execute($stmt);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}

	public function get_stock_tecnico($id_tecnico,$id_producto){

		$con = "select s.*,p.stock_minimo, p.sku, p.nombre_producto from stock_tecnico s, producto_servicio p where id_tecnico = '".$id_tecnico."' and id_asignacion = '".$_SESSION['id_asignacion']."' and id_producto = '".$id_producto."' and s.id_producto = p.id_producto_servicio;";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);


		return $tmp;
	}

	public function set_movimientos_almacen($id_producto,$id_tecnico,$serie,$disponible,$movimiento,$codigo,$orden,$id_asignacion_liquidacion){

		$conmov = "insert into movimientos_almacen(id_producto,cantidad,serie,id_tipo_movimiento,id_usuario_interactua,id_tecnico,codigo,orden,id_asignacion) values ('".$id_producto."','".$disponible."','".$serie."','".$movimiento."','".$_SESSION['id_usuario_almacen']."','".$id_tecnico."','".$codigo."','".$orden."','".$_SESSION['id_asignacion']."');";
        $stmtmov = sqlsrv_query($this->db, $conmov);
        $tmpmov = sqlsrv_fetch_array($stmtmov, SQLSRV_FETCH_ASSOC);

		/* $con = "update serie set id_tecnico = 0, id_asignacion = 0, estado = 0, cantidad = 0 where serie = '".$serie."' and id_asignacion = '".$_SESSION['id_asignacion']."' and id_producto = '".$id_producto."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC); */

		$con = "update asignacion_plantilla_liquidacion set estado = 2 where id_asignacion_plantilla_liquidacion = '".$id_asignacion_liquidacion."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		
		
		return $tmp;
	}

	public function update_stock_tecnico_l3($id_producto,$id_tecnico,$serie,$disponible,$movimiento,$codigo,$orden){
		
		$cons1 = "select * from stock_tecnico where id_tecnico = '".$id_tecnico."' and id_asignacion = '".$_SESSION['id_asignacion']."' and id_producto = '".$id_producto."';";
		$stmts1 = sqlsrv_query($this->db, $cons1);
        $tmps1 = sqlsrv_fetch_array($stmts1, SQLSRV_FETCH_ASSOC);

		$dev = ( intval($tmps1['disponible']) - intval($disponible) );

		$con = "update stock_tecnico set disponible = '".$dev."' where id_tecnico = '".$id_tecnico."' and id_asignacion = '".$_SESSION['id_asignacion']."' and id_producto = '".$id_producto."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		$con = "select * from stock_almacen where id_asignacion = '".$_SESSION['id_asignacion']."' and id_producto = '".$id_producto."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		$con = "update serie set id_tecnico = 0, id_asignacion = 0, estado = 0, cantidad = 0 where serie = '".$serie."' and id_asignacion = '".$_SESSION['id_asignacion']."' and id_producto = '".$id_producto."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}

	public function update_plantilla_liquidacion($estado,$id){

		$con = "update plantilla_liquidacion set estado = '".$estado."' where id_plantilla_liquidacion = '".$id."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}
	
	public function get_codigo_tecnico2($id) {
		$sql = "SELECT usuario.codigo_usuario FROM usuario WHERE usuario.id_usuario = ?;";
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$id));
		sqlsrv_execute($stmt);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}
	
	public function get_requerimiento_almacen_especifico($id) {
		$sql = "SELECT * FROM requerimiento_almacen WHERE id_requerimiento_almacen = ?;";
		$stmt = sqlsrv_prepare($this->db, $sql, array(&$id));
		sqlsrv_execute($stmt);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}	

	public function set_stock_tecnico($cantidad, $sku, $id_asignacion, $id_tecnico, $serie, $movimiento, $validacion) {
		$id_usuario_almacen = $_SESSION['id_usuario_almacen'];
	
		if ($serie == 'SIN_SERIE') {
			$conmov = "INSERT INTO movimientos_almacen(id_producto, id_asignacion, cantidad, serie, id_tipo_movimiento, id_usuario_interactua, id_tecnico_destino) VALUES (?, ?, ?, '', ?, ?, ?);";
			$stmtmov = sqlsrv_prepare($this->db, $conmov, array(&$sku, &$id_asignacion, &$cantidad, &$movimiento, &$id_usuario_almacen, &$id_tecnico));
			sqlsrv_execute($stmtmov);
			$tmpmov = sqlsrv_fetch_array($stmtmov, SQLSRV_FETCH_ASSOC);
	
			$con2 = "SELECT COUNT(*) AS total FROM stock_tecnico WHERE id_producto = ? AND id_asignacion = ? AND id_tecnico = ?;";
			$stmt2 = sqlsrv_prepare($this->db, $con2, array(&$sku, &$id_asignacion, &$id_tecnico));
			sqlsrv_execute($stmt2);
			$tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
	
			if ($tmp2['total'] > 0) {
				$cons = "SELECT * FROM stock_tecnico WHERE id_producto = ? AND id_asignacion = ? AND id_tecnico = ?;";
				$stmts = sqlsrv_prepare($this->db, $cons, array(&$sku, &$id_asignacion, &$id_tecnico));
				sqlsrv_execute($stmts);
				$tmps = sqlsrv_fetch_array($stmts, SQLSRV_FETCH_ASSOC);
	
				$cantidad_total = $tmps['disponible'] + $cantidad;
	
				$con3 = "UPDATE stock_tecnico SET disponible = ? WHERE id_producto = ? AND id_asignacion = ? AND id_tecnico = ?;";
				$stmt3 = sqlsrv_prepare($this->db, $con3, array(&$cantidad_total, &$sku, &$id_asignacion, &$id_tecnico));
				sqlsrv_execute($stmt3);
				$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
			} else {
				$con3 = "INSERT INTO stock_tecnico (id_producto, disponible, id_asignacion, malogrado, merma, id_tecnico) VALUES (?, ?, ?, 0, 0, ?);";
				$stmt3 = sqlsrv_prepare($this->db, $con3, array(&$sku, &$cantidad, &$id_asignacion, &$id_tecnico));
				sqlsrv_execute($stmt3);
				$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
			}
	
			$con = "SELECT * FROM stock_almacen WHERE id_producto = ? AND id_asignacion = ?;";
			$stmt = sqlsrv_prepare($this->db, $con, array(&$sku, &$id_asignacion));
			sqlsrv_execute($stmt);
			$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
			$r = $tmp['disponible'] - $cantidad;
			$con = "UPDATE stock_almacen SET disponible = ? WHERE id_producto = ? AND id_asignacion = ?;";
			$stmt = sqlsrv_prepare($this->db, $con, array(&$r, &$sku, &$id_asignacion));
			sqlsrv_execute($stmt);
			$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		} else {
			$conmov = "INSERT INTO movimientos_almacen(id_producto, id_asignacion, cantidad, serie, id_tipo_movimiento, id_usuario_interactua, id_tecnico_destino) VALUES (?, ?, ?, ?, ?, ?, ?);";
			$stmtmov = sqlsrv_prepare($this->db, $conmov, array(&$sku, &$id_asignacion, &$cantidad, &$serie, &$movimiento, &$id_usuario_almacen, &$id_tecnico));
			sqlsrv_execute($stmtmov);
			$tmpmov = sqlsrv_fetch_array($stmtmov, SQLSRV_FETCH_ASSOC);
	
			$con2 = "SELECT COUNT(*) AS total FROM stock_tecnico WHERE id_producto = ? AND id_asignacion = ? AND id_tecnico = ?;";
			$stmt2 = sqlsrv_prepare($this->db, $con2, array(&$sku, &$id_asignacion, &$id_tecnico));
			sqlsrv_execute($stmt2);
			$tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
	
			if ($tmp2['total'] > 0) {
				$cons = "SELECT * FROM stock_tecnico WHERE id_producto = ? AND id_asignacion = ? AND id_tecnico = ?;";
				$stmts = sqlsrv_prepare($this->db, $cons, array(&$sku, &$id_asignacion, &$id_tecnico));
				sqlsrv_execute($stmts);
				$tmps = sqlsrv_fetch_array($stmts, SQLSRV_FETCH_ASSOC);
	
				$cantidad_total = $tmps['disponible'] + $cantidad;
	
				$con3 = "UPDATE stock_tecnico SET disponible = ? WHERE id_producto = ? AND id_asignacion = ? AND id_tecnico = ?;";
				$stmt3 = sqlsrv_prepare($this->db, $con3, array(&$cantidad_total, &$sku, &$id_asignacion, &$id_tecnico));
				sqlsrv_execute($stmt3);
				$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
			} else {
				$con3 = "INSERT INTO stock_tecnico (id_producto, disponible, id_asignacion, malogrado, merma, id_tecnico) VALUES (?, ?, ?, 0, 0, ?);";
				$stmt3 = sqlsrv_prepare($this->db, $con3, array(&$sku, &$cantidad, &$id_asignacion, &$id_tecnico));
				sqlsrv_execute($stmt3);
				$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
			}
	
			$conts = "UPDATE serie SET id_tecnico = ?, id_asignacion = ?, estado = '1', cantidad = '1' WHERE serie LIKE ? and id_producto = ?;";
			$stmtts = sqlsrv_prepare($this->db, $conts, array(&$id_tecnico, &$id_asignacion, &$serie, &$sku));
			sqlsrv_execute($stmtts);
			$tmpts = sqlsrv_fetch_array($stmtts, SQLSRV_FETCH_ASSOC);
	
			$conts2 = "SELECT COUNT(*) AS total FROM serie WHERE id_tecnico = ? AND serie LIKE ? AND id_asignacion = ?;";
			$stmtts2 = sqlsrv_prepare($this->db, $conts2, array(&$id_tecnico, &$serie, &$id_asignacion));
			sqlsrv_execute($stmtts2);
			$tmpts2 = sqlsrv_fetch_array($stmtts2, SQLSRV_FETCH_ASSOC);
	
			if ($tmpts2['total'] >= 1 && $validacion == 1) {
				$con = "SELECT * FROM stock_almacen WHERE id_producto = ? AND id_asignacion = ?;";
				$stmt = sqlsrv_prepare($this->db, $con, array(&$sku, &$id_asignacion));
				sqlsrv_execute($stmt);
				$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
				$r = $tmp['disponible'] - $cantidad;
				$con = "UPDATE stock_almacen SET disponible = ? WHERE id_producto = ? AND id_asignacion = ?;";
				$stmt = sqlsrv_prepare($this->db, $con, array(&$r, &$sku, &$id_asignacion));
				sqlsrv_execute($stmt);
				$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
			}
		}
	
		return $tmp;
	}
	

	public function get_productos_requerimiento($id) {
		$con = "SELECT p.id_producto_servicio, p.descripcion, p.sku_cliente, p.bio, d.cantidad, p.sku
				FROM detalle_requerimiento_almacen d
				INNER JOIN producto_servicio p ON d.id_producto_servicio = p.id_producto_servicio
				WHERE d.id_requerimiento_almacen = ?;";
		
		$stmt = sqlsrv_prepare($this->db, $con, array(&$id));
		sqlsrv_execute($stmt);
	
		$lista = array();
		while ($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
			$lista[] = $tmp;
		}
	
		return $lista;
	}
	

	public function set_stock_tecnico2($cantidad, $sku, $id_asignacion, $id_tecnico, $serie, $movimiento, $validacion, $tecnico) {
		$id_usuario_almacen = $_SESSION['id_usuario_almacen'];
	
		if ($serie == 'SIN_SERIE') {
			$conmov = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, id_asignacion_destino, cantidad, serie, id_tipo_movimiento, id_usuario_interactua, id_tecnico_destino, id_tecnico) 
					   VALUES (?, ?, ?, ?, '', ?, ?, ?, ?);";
			$stmtmov = sqlsrv_query($this->db, $conmov, array($sku, $id_asignacion, $id_asignacion, $cantidad, $movimiento, $id_usuario_almacen, $id_tecnico, $tecnico));
			$tmpmov = sqlsrv_fetch_array($stmtmov, SQLSRV_FETCH_ASSOC);
	
			$con2 = "SELECT COUNT(*) as total FROM stock_tecnico WHERE id_producto = ? AND id_asignacion = ? AND id_tecnico = ?;";
			$stmt2 = sqlsrv_query($this->db, $con2, array($sku, $id_asignacion, $id_tecnico));
			$tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
	
			if ($tmp2['total'] > 0) {
				$cons = "SELECT * FROM stock_tecnico WHERE id_producto = ? AND id_asignacion = ? AND id_tecnico = ?;";
				$stmts = sqlsrv_query($this->db, $cons, array($sku, $id_asignacion, $id_tecnico));
				$tmps = sqlsrv_fetch_array($stmts, SQLSRV_FETCH_ASSOC);
	
				$cantidad_total = $tmps['disponible'] + $cantidad;
	
				$con3 = "UPDATE stock_tecnico SET disponible = ? WHERE id_producto = ? AND id_asignacion = ? AND id_tecnico = ?;";
				$stmt3 = sqlsrv_query($this->db, $con3, array($cantidad_total, $sku, $id_asignacion, $id_tecnico));
				$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
			} else {
				$con3 = "INSERT INTO stock_tecnico (id_producto, disponible, id_asignacion, malogrado, merma, id_tecnico) 
						 VALUES (?, ?, ?, 0, 0, ?);";
				$stmt3 = sqlsrv_query($this->db, $con3, array($sku, $cantidad, $id_asignacion, $id_tecnico));
				$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
			}
	
			$con = "SELECT * FROM stock_almacen WHERE id_producto = ? AND id_asignacion = ?;";
			$stmt = sqlsrv_query($this->db, $con, array($sku, $id_asignacion));
			$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
			$r = $tmp['disponible'] - $cantidad;
			$con = "UPDATE stock_almacen SET disponible = ? WHERE id_producto = ? AND id_asignacion = ?;";
			$stmt = sqlsrv_query($this->db, $con, array($r, $sku, $id_asignacion));
			$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		} else {
			$conmov = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, id_asignacion_destino, cantidad, serie, id_tipo_movimiento, id_usuario_interactua, id_tecnico_destino, id_tecnico) 
					   VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);";
			$stmtmov = sqlsrv_query($this->db, $conmov, array($sku, $id_asignacion, $id_asignacion, $cantidad, $serie, $movimiento, $id_usuario_almacen, $id_tecnico, $tecnico));
			$tmpmov = sqlsrv_fetch_array($stmtmov, SQLSRV_FETCH_ASSOC);
	
			$con2 = "SELECT COUNT(*) as total FROM stock_tecnico WHERE id_producto = ? AND id_asignacion = ? AND id_tecnico = ?;";
			$stmt2 = sqlsrv_query($this->db, $con2, array($sku, $id_asignacion, $id_tecnico));
			$tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
	
			if ($tmp2['total'] > 0) {
				$cons = "SELECT * FROM stock_tecnico WHERE id_producto = ? AND id_asignacion = ? AND id_tecnico = ?;";
				$stmts = sqlsrv_query($this->db, $cons, array($sku, $id_asignacion, $id_tecnico));
				$tmps = sqlsrv_fetch_array($stmts, SQLSRV_FETCH_ASSOC);
	
				$cantidad_total = $tmps['disponible'] + $cantidad;
	
				$con3 = "UPDATE stock_tecnico SET disponible = ? WHERE id_producto = ? AND id_asignacion = ? AND id_tecnico = ?;";
				$stmt3 = sqlsrv_query($this->db, $con3, array($cantidad_total, $sku, $id_asignacion, $id_tecnico));
				$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
			} else {
				$con3 = "INSERT INTO stock_tecnico (id_producto, disponible, id_asignacion, malogrado, merma, id_tecnico) 
						 VALUES (?, ?, ?, 0, 0, ?);";
				$stmt3 = sqlsrv_query($this->db, $con3, array($sku, $cantidad, $id_asignacion, $id_tecnico));
				$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
			}
	
			$conts = "UPDATE serie SET id_tecnico = ?, id_asignacion = ?, estado = '1', cantidad = '1' WHERE serie LIKE ?;";
			$stmtts = sqlsrv_query($this->db, $conts, array($id_tecnico, $id_asignacion, $serie));
			$tmpts = sqlsrv_fetch_array($stmtts, SQLSRV_FETCH_ASSOC);
	
			$conts2 = "SELECT COUNT(*) as total FROM serie WHERE id_tecnico = ? AND serie LIKE ? AND id_asignacion = ?;";
			$stmtts2 = sqlsrv_query($this->db, $conts2, array($id_tecnico, $serie, $id_asignacion));
			$tmpts2 = sqlsrv_fetch_array($stmtts2, SQLSRV_FETCH_ASSOC);
	
			if ($tmpts2['total'] >= 1 && $validacion == 1) {
				$con = "SELECT * FROM stock_almacen WHERE id_producto = ? AND id_asignacion = ?;";
				$stmt = sqlsrv_query($this->db, $con, array($sku, $id_asignacion));
				$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
				$r = $tmp['disponible'] - $cantidad;
				$con = "UPDATE stock_almacen SET disponible = ? WHERE id_producto = ? AND id_asignacion = ?;";
				$stmt = sqlsrv_query($this->db, $con, array($r, $sku, $id_asignacion));
				$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
			}
		}
	
		return $tmp;
	}
	
	public function get_solicitudes_almacen(){
		$con = "select requerimiento_almacen.*, usuario.codigo_usuario from usuario,requerimiento_almacen where requerimiento_almacen.id_tecnico = usuario.id_usuario and requerimiento_almacen.estado = 1 and requerimiento_almacen.requerimiento = 1 and id_asignacion = '".$_SESSION['id_asignacion']."';";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_almacen_solicitudes_almacen(){
		$con = "select r.*, al.almacen, a.ccosto from requerimiento_almacen r, asignacion_almacen_ccosto a, almacen al where r.estado = 1 and r.id_tecnico = 0 and r.id_asignacion = a.id_asignacion_almacen_ccosto and r.requerimiento = 2 and al.id_almacen = a.id_almacen;";
		$stmt = sqlsrv_query($this->db, $con);
        $lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_solicitudes_almacen_constancias(){
		$con = "select requerimiento_almacen.*, usuario.codigo_usuario from usuario,requerimiento_almacen where requerimiento_almacen.id_tecnico = usuario.id_usuario and requerimiento_almacen.estado = 0 and id_asignacion = '".$_SESSION['id_asignacion']."' order by fecha_creacion desc;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function enviar_correo_stock_minimo($pdf,$correo1,$correo2,$nombre){
        require_once("./model/PHPMailer/PHPMailerAutoload.php");
        $resultado=true;
        $Fecha_Reporte = date('d_m_Y');
        $mail = new PHPMailer;
        $mail->isSMTP();

        $mail->Host = 'smtp.gmail.com';
        $mail->Port = 587;
        $mail->SMTPAuth = true;
        $mail->Username = 'helpdesk@bio.com.pe';
        $mail->Password = 'BioDerby2020..';
        $mail->SMTPSecure = 'TLS';
        $mail->SMTPOptions = array(
            'ssl' => array(
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
            )
        );
		$ms= utf8_decode("NOTIFICACIÓN:<br/><br/>El tecnico ".$nombre." se esta quedando sin stock de los siguientes producots"."<br/>"."<br/>"."Saludos.");
		$destinatario = $correo1;
		$destinatario2 = $correo2;
        $mail->From = 'helpdesk@bio.com.pe';
        $mail->FromName = utf8_decode('TRINITY ALMACEN');
        $mail->addAddress($destinatario,'');
		$mail->addAddress($destinatario2,'');
        $Nombre1=$ms;
		$Nombre=utf8_decode("Tecnico sin stock");
        $mail->WordWrap = 50;
        $mail->addAttachment('./'.$pdf);
        $mail->isHTML(true);
        $mail->Subject = ''.$Nombre;
        $mail->Body    = $Nombre1;

        if($destinatario!=""){
            if(!$mail->send()) {
                $resultado=false;
            } else {
                $resultado=true;
            }
        }

        return $resultado;
    }

	public function get_solicitudes_almacen_unico($id) {
		$con = "SELECT requerimiento_almacen.*, usuario.codigo_usuario 
				FROM usuario, requerimiento_almacen 
				WHERE requerimiento_almacen.id_tecnico = usuario.id_usuario 
				AND id_asignacion = ? 
				AND requerimiento_almacen.id_requerimiento_almacen = ?;";
		
		$stmt = sqlsrv_query($this->db, $con, array($_SESSION['id_asignacion'], $id));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}	

	public function get_ultimo_requerimiento(){
		$con = "select top 1 * from requerimiento_almacen order by id_requerimiento_almacen desc;";
		$stmt = sqlsrv_query($this->db, $con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		return $tmp;
	}

	public function get_update_requerimiento($id) {
		$con = "UPDATE requerimiento_almacen SET estado = 0 WHERE id_requerimiento_almacen = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($id));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		return $tmp;
	}


	
	public function get_usuario_unico($id) {
		$con = "SELECT usuario.codigo_usuario FROM usuario WHERE usuario.id_usuario = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($id));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		return $tmp;
	}
	
	public function get_series($id) {
		$con = "SELECT * FROM serie WHERE id_asignacion = ? AND id_tecnico = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($_SESSION['id_asignacion'], $id));
		$lista = array();
		
		while ($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
			$lista[] = $tmp;
		}
		
		return $lista;
	}	

	public function get_series_stock(){
		$con = "select * from serie where id_asignacion = '".$_SESSION['id_asignacion']."' and estado != 0 and (id_tecnico IS NULL or id_tecnico = 0);";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_productos_solicitados($id) {
		$con = "SELECT detalle_requerimiento_almacen.*, producto_servicio.sku_cliente, producto_servicio.id_catalogo_serializado, producto_servicio.sku, producto_servicio.bio, producto_servicio.nombre_producto, producto_servicio.descripcion, detalle_requerimiento_almacen.id_asignacion AS asig, stock_almacen.disponible 
				FROM stock_almacen, producto_servicio, detalle_requerimiento_almacen 
				WHERE producto_servicio.id_producto_servicio = detalle_requerimiento_almacen.id_producto_servicio 
				AND detalle_requerimiento_almacen.id_requerimiento_almacen = ? 
				AND stock_almacen.id_producto = detalle_requerimiento_almacen.id_producto_servicio 
				AND stock_almacen.id_asignacion = ? 
				ORDER BY producto_servicio.id_catalogo_serializado ASC;";
		$stmt = sqlsrv_query($this->db, $con, array($id, $_SESSION['id_asignacion']));
		$lista = array();
	
		while ($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
			$lista[] = $tmp;
		}
	
		return $lista;
	}

	public function get_productos_solicitados2($id) {
		$con = "SELECT detalle_requerimiento_almacen.*, producto_servicio.sku_cliente, producto_servicio.id_catalogo_serializado, producto_servicio.sku, producto_servicio.bio, producto_servicio.nombre_producto, producto_servicio.descripcion, detalle_requerimiento_almacen.id_asignacion AS asig
		FROM producto_servicio, detalle_requerimiento_almacen 
		WHERE producto_servicio.id_producto_servicio = detalle_requerimiento_almacen.id_producto_servicio 
		AND detalle_requerimiento_almacen.id_requerimiento_almacen = ?
		ORDER BY producto_servicio.id_catalogo_serializado ASC;";
		$stmt = sqlsrv_query($this->db, $con, array($id));
		$lista = array();
	
		while ($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
			$lista[] = $tmp;
		}
	
		return $lista;
	}
	
	public function get_series_asignacion() {
		$con = "SELECT * FROM serie 
				WHERE cantidad = 1 
				AND estado = 1 
				AND (id_tecnico IS NULL OR id_tecnico = 0) 
				AND id_asignacion = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($_SESSION['id_asignacion']));
		$lista = array();
	
		while ($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
			$lista[] = $tmp;
		}
	
		return $lista;
	}
	
	public function get_series_asignacion2($id) {
		$con = "SELECT *
		FROM serie s1
		WHERE id_producto = ?
		AND id_asignacion = ? 
		AND cantidad = 1 
		AND estado = 1 
		AND (id_tecnico IS NULL OR id_tecnico = 0) 
		AND estado_estado = 1
		AND serie NOT IN (
			SELECT d.serie 
			FROM detalle_solicitud_traspaso_almacen d
			JOIN solicitud_traspaso_almacen s ON d.id_solicitud_traspaso_almacen = s.id_solicitud_traspaso_almacen
			WHERE s.estado = 1
		);";
		$stmt = sqlsrv_query($this->db, $con, array($id, $_SESSION['id_asignacion']));
		$lista = array();
	
		while ($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
			$lista[] = $tmp;
		}
	
		return $lista;
	}

	public function get_series_asignacion3($id) {
		$con = "SELECT *
		FROM serie s
		WHERE s.id_producto = ? 
		  AND s.id_asignacion = ? 
		  AND s.cantidad = 1 
		  AND s.estado = 1 
		  AND (s.id_tecnico IS NULL OR s.id_tecnico = 0) 
		  AND NOT EXISTS (
			SELECT 1
			FROM solicitud_traspaso_almacen so
			JOIN detalle_solicitud_traspaso_almacen d ON so.id_solicitud_traspaso_almacen = d.id_solicitud_traspaso_almacen
			WHERE so.estado = 1
			  AND d.serie = s.serie
		  );";
		$stmt = sqlsrv_query($this->db, $con, array($id, $_SESSION['id_asignacion']));
		$lista = array();
	
		while ($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
			$lista[] = $tmp;
		}
	
		return $lista;
	}
	
	public function get_series_asignacion_tecnico($id_usuario, $id) {
		$con = "SELECT * FROM usuario WHERE codigo_usuario = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($id_usuario));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		$con = "SELECT * FROM serie 
				WHERE id_producto = ? 
				AND id_asignacion = ? 
				AND cantidad = 1 
				AND estado = 1 
				AND id_tecnico = ? 
				AND estado_estado = 1;";
		$stmt = sqlsrv_query($this->db, $con, array($id, $_SESSION['id_asignacion'], $tmp['id_usuario']));
		$lista = array();
	
		while ($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
			$lista[] = $tmp;
		}
	
		return $lista;
	}	

	public function get_productos_tecnico($id){
		$con = "select stock_tecnico.*,producto_servicio.bio,producto_servicio.sku,producto_servicio.nombre_producto,producto_servicio.id_producto_servicio,producto_servicio.id_catalogo_serializado,producto_servicio.sku_cliente from stock_tecnico,producto_servicio where id_tecnico = '".$id."' and id_asignacion = '".$_SESSION['id_asignacion']."' and producto_servicio.id_producto_servicio = stock_tecnico.id_producto order by producto_servicio.id_catalogo_serializado asc;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}
	
	public function get_productos_tecnico_todos($id) {
		$con = "SELECT stock_tecnico.*, producto_servicio.bio, producto_servicio.sku, producto_servicio.nombre_producto, producto_servicio.id_catalogo_serializado, producto_servicio.sku_cliente 
				FROM stock_tecnico, producto_servicio 
				WHERE id_tecnico = ? 
				AND id_asignacion = ? 
				AND producto_servicio.id_producto_servicio = stock_tecnico.id_producto 
				ORDER BY producto_servicio.id_catalogo_serializado ASC;";
		$stmt = sqlsrv_query($this->db, $con, array($id, $_SESSION['id_asignacion']));
		$lista = array();
	
		while ($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
			$lista[] = $tmp;
		}
	
		return $lista;
	}	

	public function get_productos_tecnicos(){
		$con = "select unidad_medida.descripcion as unidad_medida,stock_tecnico.*,producto_servicio.nombre_producto,producto_servicio.id_catalogo_serializado,producto_servicio.sku_cliente,usuario.codigo_usuario from unidad_medida,stock_tecnico,producto_servicio,usuario where unidad_medida.id_unidad_medida = producto_servicio.id_unidad_medida and id_asignacion = '".$_SESSION['id_asignacion']."' and producto_servicio.id_producto_servicio = stock_tecnico.id_producto and usuario.id_usuario = stock_tecnico.id_tecnico order by producto_servicio.id_catalogo_serializado asc;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_tecnicos_lista(){
		$con = "select usuario.codigo_usuario, usuario.id_usuario from asignacion_perfil_almacen,usuario,asignacion_usuario_ccosto_almacen where usuario.id_usuario = asignacion_usuario_ccosto_almacen.id_usuario and id_asignacion_almacen_ccosto = '".$_SESSION['id_asignacion']."' and asignacion_perfil_almacen.id_usuario = usuario.id_usuario and asignacion_perfil_almacen.id_perfil_almacen = 4;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function nombre_producto($id) {
		$con = "SELECT * FROM producto_servicio WHERE id_producto_servicio = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($id));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	
	public function get_validacion_producto($id, $id_asignacion) {
		$con = "SELECT COUNT(*) AS total FROM stock_almacen WHERE id_asignacion = ? AND id_producto = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($id_asignacion, $id));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}

	public function get_validacion_producto_cliente($sku_cliente,$ccosto) {
		$con = "SELECT COUNT(*) AS total FROM producto_servicio WHERE sku_cliente = ? and id_ccosto = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($sku_cliente,$ccosto));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}
	
	public function set_nuevo_producto($id, $id_asignacion) {
		$con = "INSERT INTO stock_almacen (id_producto, id_asignacion, disponible, malogrado, merma, sin_estado, id_usuario_interactua) 
				VALUES (?, ?, 0, 0, 0, 0, ?);";
		$stmt = sqlsrv_query($this->db, $con, array($id, $id_asignacion, $_SESSION['id_usuario_almacen']));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	
	public function get_validacion_producto_tecnico($id, $id_asignacion, $id_tecnico) {
		$con = "SELECT COUNT(*) AS total FROM stock_tecnico WHERE id_asignacion = ? AND id_producto = ? AND id_tecnico = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($id_asignacion, $id, $id_tecnico));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	
	public function get_producto_especifico($id) {
		$con = "SELECT p.*, u.descripcion AS unidad_medida 
				FROM producto_servicio p, unidad_medida u 
				WHERE p.id_unidad_medida = u.id_unidad_medida 
				AND p.id_producto_servicio = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($id));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}	

	public function get_serie_especifica($serie) {
		$con = "SELECT * FROM serie WHERE serie = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($serie));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	
	public function update_cantidad_almacen_disponible($id_producto, $serie) {
		$con = "UPDATE stock_almacen SET disponible = disponible - 1 WHERE id_asignacion = ? AND id_producto = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($_SESSION['id_asignacion'], $id_producto));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		$con3 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento) 
				 VALUES (?, ?, 1, ?, ?, 4);";
		$stmt3 = sqlsrv_query($this->db, $con3, array($id_producto, $_SESSION['id_asignacion'], $serie, $_SESSION['id_usuario_almacen']));
		$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	
	public function update_cantidad_almacen_merma($id_producto, $serie) {
		$con = "UPDATE stock_almacen SET merma = merma - 1 WHERE id_asignacion = ? AND id_producto = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($_SESSION['id_asignacion'], $id_producto));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		$con3 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento) 
				 VALUES (?, ?, 1, ?, ?, 4);";
		$stmt3 = sqlsrv_query($this->db, $con3, array($id_producto, $_SESSION['id_asignacion'], $serie, $_SESSION['id_usuario_almacen']));
		$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	
	public function update_cantidad_almacen_malogrado($id_producto, $serie) {
		$con = "UPDATE stock_almacen SET malogrado = malogrado - 1 WHERE id_asignacion = ? AND id_producto = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($_SESSION['id_asignacion'], $id_producto));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		$con3 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento) 
				 VALUES (?, ?, 1, ?, ?, 4);";
		$stmt3 = sqlsrv_query($this->db, $con3, array($id_producto, $_SESSION['id_asignacion'], $serie, $_SESSION['id_usuario_almacen']));
		$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	
	public function set_nuevo_producto_tecnico($id, $id_asignacion, $id_tecnico) {
		$con = "INSERT INTO stock_tecnico (id_producto, id_asignacion, id_tecnico, disponible, malogrado, merma) 
				VALUES (?, ?, ?, 0, 0, 0);";
		$stmt = sqlsrv_query($this->db, $con, array($id, $id_asignacion, $id_tecnico));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	
	public function get_carga_serie($serie) {
		$con = "SELECT * FROM carga WHERE serie = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($serie));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	
	public function get_ultima_asignacion_serie($serie) {
		$con = "SELECT TOP 1 * FROM movimientos_almacen WHERE serie = ? AND id_tipo_movimiento = 2 ORDER BY id_movimientos_almacen DESC;";
		$stmt = sqlsrv_query($this->db, $con, array($serie));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}	

	public function get_consulta_stock() {
		$con = "SELECT id_prod, SUM(cantidad_recepcion) as total_recepcion, CAST(centro_costo as varchar(max)) as centro_costo, CAST(almacen_destino as varchar(max)) as almacen_destino FROM 
				(SELECT ocd.id_oc, ocd.id_prod,
				SUM(CONVERT(decimal(10, 2), CAST(ocd.recepcion as varchar(max)))) as cantidad_recepcion,
				(SELECT TOP 1 rq.cod_ccosto FROM requerimiento_logistica as rq WHERE rq.id_requerimiento_logistica = oc.id_rq AND oc.id_oc = ocd.id_oc) as centro_costo,
				(SELECT TOP 1 almacen.almacen FROM almacen as almacen, requerimiento_logistica as rq WHERE almacen.direccion LIKE CAST(oc.direccion as varchar(max)) AND oc.id_rq = rq.id_requerimiento_logistica) as almacen_destino
				FROM oc_detalle as ocd , oc as oc
				WHERE (ocd.estado = 1 OR ocd.estado >= 3) AND oc.id_oc = ocd.id_oc AND ocd.recepcion IS NOT NULL
				GROUP BY ocd.id_oc, ocd.id_prod, oc.id_oc, oc.id_rq, CAST(oc.direccion as varchar(max))) AS subconsulta
				GROUP BY id_prod, CAST(centro_costo as varchar(max)), CAST(almacen_destino as varchar(max));";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
		while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}
	
	public function get_productos_tecnico_u($id) {
		$con = "SELECT unidad_medida.descripcion as unidad_medida, stock_tecnico.*, producto_servicio.id_producto_servicio, producto_servicio.nombre_producto, 
				producto_servicio.sku, producto_servicio.bio, producto_servicio.id_catalogo_serializado, producto_servicio.sku_cliente, usuario.codigo_usuario 
				FROM unidad_medida, stock_tecnico, producto_servicio, usuario 
				WHERE usuario.codigo_usuario = ? AND unidad_medida.id_unidad_medida = producto_servicio.id_unidad_medida 
				AND id_asignacion = ? AND producto_servicio.id_producto_servicio = stock_tecnico.id_producto 
				AND usuario.id_usuario = stock_tecnico.id_tecnico 
				ORDER BY producto_servicio.id_catalogo_serializado ASC;";
		$stmt = sqlsrv_query($this->db, $con, array($id, $_SESSION['id_asignacion']));
		$lista = array();
		while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}	

	public function reporte_general($fecha_inicio, $fecha_fin) {
		$con = "SELECT tipo_movimiento_almacen.descripcion, producto_servicio.nombre_producto, movimientos_almacen.cantidad, movimientos_almacen.serie,
					movimientos_almacen.id_asignacion, movimientos_almacen.contrata, movimientos_almacen.id_asignacion_destino, movimientos_almacen.id_tecnico, movimientos_almacen.id_tecnico_destino,
					(SELECT a.descripcion FROM almacen AS a, asignacion_almacen_ccosto AS asi WHERE a.id_almacen = asi.id_almacen and asi.id_asignacion_almacen_ccosto = movimientos_almacen.id_asignacion) AS almacen_origen,
					(SELECT a.descripcion FROM almacen AS a, asignacion_almacen_ccosto AS asi WHERE a.id_almacen = asi.id_almacen and asi.id_asignacion_almacen_ccosto = movimientos_almacen.id_asignacion_destino) AS almacen_destino,
					(SELECT u.codigo_usuario FROM usuario AS u WHERE u.id_usuario = movimientos_almacen.id_tecnico) AS tecnico_origen,
					(SELECT u.codigo_usuario FROM usuario AS u WHERE u.id_usuario = movimientos_almacen.id_tecnico_destino) AS tecnico_destino,
					movimientos_almacen.fecha_creacion, movimientos_almacen.codigo, movimientos_almacen.orden, movimientos_almacen.nro_documento,
					movimientos_almacen.estado_estado, producto_servicio.sku, producto_servicio.sku_cliente
					FROM movimientos_almacen, tipo_movimiento_almacen, producto_servicio 
					WHERE movimientos_almacen.id_tipo_movimiento = tipo_movimiento_almacen.id_tipo_movimiento_almacen 
					AND movimientos_almacen.fecha_creacion BETWEEN cast(? as date) AND cast(? as date)
					AND producto_servicio.id_producto_servicio = movimientos_almacen.id_producto
					AND (movimientos_almacen.id_asignacion = ? OR movimientos_almacen.id_asignacion_destino = ?);";
		$stmt = sqlsrv_query($this->db, $con, array($fecha_inicio, $fecha_fin, $_SESSION['id_asignacion'], $_SESSION['id_asignacion']));
		$lista = array();
		while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	// public function reporte_general($fecha_inicio, $fecha_fin) {
	// 	$con = "SELECT tipo_movimiento_almacen.descripcion, producto_servicio.nombre_producto, movimientos_almacen.cantidad, movimientos_almacen.serie,
	// 	movimientos_almacen.id_asignacion, movimientos_almacen.contrata, movimientos_almacen.id_asignacion_destino, movimientos_almacen.id_tecnico, movimientos_almacen.id_tecnico_destino,
	// 	(SELECT a.descripcion FROM almacen AS a, asignacion_almacen_ccosto AS asi WHERE a.id_almacen = asi.id_almacen and asi.id_asignacion_almacen_ccosto = movimientos_almacen.id_asignacion) AS almacen_origen,
	// 	(SELECT a.descripcion FROM almacen AS a, asignacion_almacen_ccosto AS asi WHERE a.id_almacen = asi.id_almacen and asi.id_asignacion_almacen_ccosto = movimientos_almacen.id_asignacion_destino) AS almacen_destino,
	// 	(SELECT u.codigo_usuario FROM usuario AS u WHERE u.id_usuario = movimientos_almacen.id_tecnico) AS tecnico_origen,
	// 	(SELECT u.codigo_usuario FROM usuario AS u WHERE u.id_usuario = movimientos_almacen.id_tecnico_destino) AS tecnico_destino,
	// 	movimientos_almacen.fecha_creacion, movimientos_almacen.codigo, movimientos_almacen.orden, movimientos_almacen.nro_documento,
	// 	movimientos_almacen.estado_estado, producto_servicio.sku, producto_servicio.sku_cliente
	// 	FROM movimientos_almacen, tipo_movimiento_almacen, producto_servicio 
	// 	WHERE movimientos_almacen.id_tipo_movimiento = tipo_movimiento_almacen.id_tipo_movimiento_almacen 
	// 	AND movimientos_almacen.fecha_creacion BETWEEN '".$fecha_inicio."' AND '".$fecha_fin."' 
	// 	AND producto_servicio.id_producto_servicio = movimientos_almacen.id_producto
	// 	AND (movimientos_almacen.id_asignacion = '".$_SESSION['id_asignacion']."' OR movimientos_almacen.id_asignacion_destino = '".$_SESSION['id_asignacion']."');";
	// 	$stmt = sqlsrv_query($this->db, $con);
	// 	$lista = array();
    //     while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
	// 		$lista[] = $tmp;
	// 	}
	// 	return $con;
	// }
	
	public function get_productos_almacen() {
		$con = "SELECT producto_servicio.id_producto_servicio, unidad_medida.descripcion as unidad_medida, stock_almacen.*, producto_servicio.nombre_producto, producto_servicio.sku, producto_servicio.bio, producto_servicio.id_catalogo_serializado, producto_servicio.sku_cliente FROM unidad_medida, stock_almacen, producto_servicio WHERE unidad_medida.id_unidad_medida = producto_servicio.id_unidad_medida AND id_asignacion = ? AND producto_servicio.id_producto_servicio = stock_almacen.id_producto 
		-- ñ{AND (producto_servicio.bio != 1 or producto_servicio.bio is null)
		 ORDER BY producto_servicio.id_catalogo_serializado ASC;";
		$stmt = sqlsrv_query($this->db, $con, array($_SESSION['id_asignacion']));
		$lista = array();
		while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_productos_almacen2() {
		$con = "SELECT producto_servicio.id_producto_servicio, unidad_medida.descripcion as unidad_medida, stock_almacen.*, producto_servicio.nombre_producto, producto_servicio.sku, producto_servicio.bio, producto_servicio.id_catalogo_serializado, producto_servicio.sku_cliente FROM unidad_medida, stock_almacen, producto_servicio WHERE unidad_medida.id_unidad_medida = producto_servicio.id_unidad_medida AND id_asignacion = ? AND producto_servicio.id_producto_servicio = stock_almacen.id_producto 
		-- AND (producto_servicio.bio != 1 or producto_servicio.bio is null)
		 and producto_servicio.id_catalogo_serializado = 2 ORDER BY producto_servicio.id_catalogo_serializado ASC;";
		$stmt = sqlsrv_query($this->db, $con, array($_SESSION['id_asignacion']));
		$lista = array();
		while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}
	
	public function get_productos_almacen_todos() {
		$con = "SELECT producto_servicio.id_producto_servicio, unidad_medida.descripcion as unidad_medida, stock_almacen.*, 
				producto_servicio.nombre_producto, producto_servicio.sku, producto_servicio.bio, 
				producto_servicio.id_catalogo_serializado, producto_servicio.sku_cliente 
				FROM unidad_medida, stock_almacen, producto_servicio 
				WHERE unidad_medida.id_unidad_medida = producto_servicio.id_unidad_medida 
				AND id_asignacion = ? AND producto_servicio.id_producto_servicio = stock_almacen.id_producto 
				ORDER BY producto_servicio.id_catalogo_serializado ASC;";
		$stmt = sqlsrv_query($this->db, $con, array($_SESSION['id_asignacion']));
		$lista = array();
		while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}
	

	public function get_series_stock_almacen($id) {
		$con = "SELECT s.*, e.descripcion as estado_serie 
				FROM serie s, estado_producto_almacen e 
				WHERE s.id_asignacion = ? 
				AND s.id_producto = ? 
				AND s.estado_estado = e.id_estado_producto_almacen 
				AND s.estado = 1 
				AND s.cantidad = 1 
				AND (s.id_tecnico = 0 OR s.id_tecnico IS NULL);";
		$stmt = sqlsrv_query($this->db, $con, array($_SESSION['id_asignacion'], $id));
		$lista = array();
		while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}
	
	public function get_series_stock_tecnico($id, $tecnico) {
		$con = "SELECT * FROM serie 
				WHERE id_producto = ? 
				AND id_asignacion = ? 
				AND id_tecnico = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($id, $_SESSION['id_asignacion'], $tecnico));
		$lista = array();
		while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}	

	public function get_almacenes(){
		$con = "select * from almacen;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_perfiles(){
		$con = "select * from perfil_almacen;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_almacen_ccosto(){
		$con = "select asignacion_almacen_ccosto.id_asignacion_almacen_ccosto,almacen.almacen,asignacion_almacen_ccosto.ccosto from asignacion_almacen_ccosto,almacen where almacen.id_almacen = asignacion_almacen_ccosto.id_almacen;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_trabajadores_almacen(){
		$con = "select usuario.codigo_usuario,perfil_almacen.descripcion,usuario.id_usuario,asignacion_perfil_almacen.estado, t.NOMBRES from asignacion_usuario_ccosto_almacen,usuario, asignacion_perfil_almacen,perfil_almacen,VWTRABAJ t where usuario.id_usuario = asignacion_perfil_almacen.id_usuario and perfil_almacen.id_perfil_almacen = asignacion_perfil_almacen.id_perfil_almacen and asignacion_usuario_ccosto_almacen.id_usuario = usuario.id_usuario and asignacion_usuario_ccosto_almacen.id_asignacion_almacen_ccosto = '".$_SESSION['id_asignacion']."' and t.DOCIDEN = usuario.codigo_usuario order by t.NOMBRES asc ;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_trabajadores_almacen2(){
		$con = "select usuario.codigo_usuario,perfil_almacen.descripcion,usuario.id_usuario,asignacion_perfil_almacen.estado, t.NOMBRES from asignacion_usuario_ccosto_almacen,usuario, asignacion_perfil_almacen,perfil_almacen,VWTRABAJ t where usuario.id_usuario = asignacion_perfil_almacen.id_usuario and perfil_almacen.id_perfil_almacen = asignacion_perfil_almacen.id_perfil_almacen and asignacion_usuario_ccosto_almacen.id_usuario = usuario.id_usuario and asignacion_usuario_ccosto_almacen.id_asignacion_almacen_ccosto = '".$_SESSION['id_asignacion']."' and t.DOCIDEN = usuario.codigo_usuario  and perfil_almacen.id_perfil_almacen = 4 and asignacion_perfil_almacen.estado = 1  order by t.NOMBRES asc ;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_almacen_ccosto_cc($cc) {
		$con = "SELECT asignacion_almacen_ccosto.id_asignacion_almacen_ccosto, almacen.almacen, asignacion_almacen_ccosto.ccosto 
				FROM asignacion_almacen_ccosto, almacen 
				WHERE almacen.id_almacen = asignacion_almacen_ccosto.id_almacen 
				AND asignacion_almacen_ccosto.ccosto = ? 
				AND asignacion_almacen_ccosto.id_asignacion_almacen_ccosto != ?;";
		$stmt = sqlsrv_query($this->db, $con, array($cc, $_SESSION['id_asignacion']));
		$lista = array();
		while ($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
			$lista[] = $tmp;
		}
		return $lista;
	}		

	public function get_usuarios(){
		$con = "select usuario.codigo_usuario,perfil_almacen.descripcion,usuario.id_usuario,asignacion_perfil_almacen.estado from usuario, asignacion_perfil_almacen,perfil_almacen where usuario.id_usuario = asignacion_perfil_almacen.id_usuario and perfil_almacen.id_perfil_almacen = asignacion_perfil_almacen.id_perfil_almacen;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_tecnicos(){
		$con = "select usuario.codigo_usuario,perfil_almacen.descripcion,usuario.id_usuario,asignacion_perfil_almacen.estado from asignacion_usuario_ccosto_almacen,usuario, asignacion_perfil_almacen,perfil_almacen where usuario.id_usuario = asignacion_perfil_almacen.id_usuario and perfil_almacen.id_perfil_almacen = asignacion_perfil_almacen.id_perfil_almacen and asignacion_perfil_almacen.id_perfil_almacen = 4 and asignacion_usuario_ccosto_almacen.id_usuario = usuario.id_usuario and asignacion_usuario_ccosto_almacen.id_asignacion_almacen_ccosto = '".$_SESSION['id_asignacion']."' and asignacion_perfil_almacen.estado = 1;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_tecnicos2($id) {
		$con = "SELECT usuario.codigo_usuario, perfil_almacen.descripcion, usuario.id_usuario, asignacion_perfil_almacen.estado 
				FROM asignacion_usuario_ccosto_almacen, usuario, asignacion_perfil_almacen, perfil_almacen 
				WHERE usuario.id_usuario = asignacion_perfil_almacen.id_usuario 
				AND perfil_almacen.id_perfil_almacen = asignacion_perfil_almacen.id_perfil_almacen 
				AND asignacion_perfil_almacen.id_perfil_almacen = 4 
				AND asignacion_usuario_ccosto_almacen.id_usuario = usuario.id_usuario 
				AND asignacion_usuario_ccosto_almacen.id_asignacion_almacen_ccosto = ? 
				AND usuario.id_usuario != ? and asignacion_perfil_almacen.estado = 1;";
		$stmt = sqlsrv_query($this->db, $con, array($_SESSION['id_asignacion'], $id));
		$lista = array();
		while ($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
			$lista[] = $tmp;
		}
		return $lista;
	}	

	public function get_usuarios_t(){
		$con = "select * from usuario;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_usuario($dni){
		$con = "SELECT a.*, usuario.codigo_usuario 
				FROM asignacion_perfil_almacen a, usuario 
				WHERE a.id_usuario = usuario.id_usuario 
				AND usuario.codigo_usuario = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($dni));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}
	
	public function update_tecnico0($id){
		$con = "UPDATE asignacion_perfil_almacen 
				SET estado = 0 
				WHERE id_usuario = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($id));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}

	public function update_tecnico1($id){
		$con = "UPDATE asignacion_perfil_almacen 
				SET estado = 1 
				WHERE id_usuario = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($id));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}
	
	public function get_usuarios_accesos($id_usuario){
		$con = "SELECT asignacion_almacen_ccosto.id_asignacion_almacen_ccosto, asignacion_almacen_ccosto.ccosto, almacen.almacen, asignacion_usuario_ccosto_almacen.estado 
				FROM almacen, usuario, asignacion_usuario_ccosto_almacen, asignacion_almacen_ccosto 
				WHERE almacen.id_almacen = asignacion_almacen_ccosto.id_almacen 
				AND usuario.id_usuario = asignacion_usuario_ccosto_almacen.id_usuario 
				AND asignacion_almacen_ccosto.id_asignacion_almacen_ccosto = asignacion_usuario_ccosto_almacen.id_asignacion_almacen_ccosto 
				AND usuario.id_usuario = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($id_usuario));
		$lista = array();
		while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}
	
	public function get_usuarios_accesos_inicial($id_usuario){
		$con = "SELECT TOP 1 asignacion_almacen_ccosto.id_asignacion_almacen_ccosto, asignacion_almacen_ccosto.ccosto, almacen.almacen, asignacion_usuario_ccosto_almacen.estado 
				FROM almacen, usuario, asignacion_usuario_ccosto_almacen, asignacion_almacen_ccosto 
				WHERE almacen.id_almacen = asignacion_almacen_ccosto.id_almacen 
				AND usuario.id_usuario = asignacion_usuario_ccosto_almacen.id_usuario 
				AND asignacion_almacen_ccosto.id_asignacion_almacen_ccosto = asignacion_usuario_ccosto_almacen.id_asignacion_almacen_ccosto 
				AND usuario.id_usuario = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($id_usuario));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}	

	public function get_usuarios_accesos_cambio($id_usuario, $id_asignacion){
		$con = "SELECT TOP 1 asignacion_almacen_ccosto.id_asignacion_almacen_ccosto, asignacion_almacen_ccosto.ccosto, almacen.almacen, asignacion_usuario_ccosto_almacen.estado 
				FROM almacen, usuario, asignacion_usuario_ccosto_almacen, asignacion_almacen_ccosto 
				WHERE almacen.id_almacen = asignacion_almacen_ccosto.id_almacen 
				AND usuario.id_usuario = asignacion_usuario_ccosto_almacen.id_usuario 
				AND asignacion_almacen_ccosto.id_asignacion_almacen_ccosto = asignacion_usuario_ccosto_almacen.id_asignacion_almacen_ccosto 
				AND usuario.id_usuario = ? 
				AND asignacion_almacen_ccosto.id_asignacion_almacen_ccosto = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($id_usuario, $id_asignacion));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}
	
	public function get_almacen($id_almacen){
		$con = "SELECT * FROM almacen WHERE id_almacen = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($id_almacen));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}

	public function get_validacion_ccosto($id_ccosto){
		$con = "select count(*) as total from ccosto where codigo_ccosto = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($id_ccosto));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}
	
	public function set_almacen_ccosto($id_ccosto, $ccosto, $id_almacen){
		$con = "BEGIN 
					IF NOT EXISTS (SELECT * FROM asignacion_almacen_ccosto WHERE id_ccosto = ? AND id_almacen = ?) 
					BEGIN 
						INSERT INTO asignacion_almacen_ccosto (id_ccosto, ccosto, id_almacen, id_usuario_interactua) 
						VALUES (?, ?, ?, ?) 
					END 
				END;";
		$params = array($id_ccosto, $id_almacen, $id_ccosto, $ccosto, $id_almacen, $_SESSION['id_usuario_almacen']);
		$stmt = sqlsrv_query($this->db, $con, $params);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}
	
	public function validar_serie_producto_existente($id_producto, $asignacion, $serie){
		$con = "SELECT COUNT(*) AS total 
				FROM serie 
				WHERE id_asignacion = ? 
				AND id_producto = ? 
				AND serie = ? 
				AND estado = 1 
				AND cantidad = 1;";
		$params = array($asignacion, $id_producto, $serie);
		$stmt = sqlsrv_query($this->db, $con, $params);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}
	
	public function validar_tipo_serie_producto($id_producto){
		$con = "SELECT * FROM producto_servicio WHERE id_producto_servicio = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($id_producto));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}	

	public function set_solicitud_temporal($id_producto, $cantidad, $id_solicitud){
		$con = "INSERT INTO temporal_solicitud (id_producto, cantidad, id_solicitud, id_usuario_interactua) 
				VALUES (?, ?, ?, ?);";
		$params = array($id_producto, $cantidad, $id_solicitud, $_SESSION['id_usuario_almacen']);
		$stmt = sqlsrv_query($this->db, $con, $params);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	
	public function set_historial_recojo_cliente($id_producto, $id_asignacion, $cantidad, $serie, $id_tecnico, $id_interaccion){
		$con = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tecnico, id_tipo_movimiento) 
				VALUES (?, ?, ?, ?, ?, ?, ?);";
		$params = array($id_producto, $id_asignacion, $cantidad, $serie, $_SESSION['id_usuario_almacen'], $id_tecnico, $id_interaccion);
		$stmt = sqlsrv_query($this->db, $con, $params);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	
	public function get_id_producto($sku){
		$con = "SELECT * FROM producto_servicio WHERE sku = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($sku));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	
	public function validar_serie_producto_disponible($id_producto, $asignacion, $serie){
		$con = "SELECT COUNT(*) AS total 
				FROM serie 
				WHERE id_asignacion = ? 
				AND id_producto = ? 
				AND serie = ? 
				AND estado = 1 
				AND cantidad = 1 
				AND (id_tecnico IS NULL OR id_tecnico = '0')AND serie NOT IN (
					SELECT d.serie 
					FROM detalle_solicitud_traspaso_almacen d
					JOIN solicitud_traspaso_almacen s ON d.id_solicitud_traspaso_almacen = s.id_solicitud_traspaso_almacen
					WHERE s.estado = 1
				);";
		$params = array($asignacion, $id_producto, $serie);
		$stmt = sqlsrv_query($this->db, $con, $params);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	
	public function get_asignacion_almacen_ccosto($id){
		$con = "SELECT * FROM asignacion_almacen_ccosto WHERE id_almacen = ?;";
		$stmt = sqlsrv_query($this->db, $con, array($id));
		$lista = array();
		while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
	
		return $lista;
	}	

	public function get_unidades_medida(){
		$con = "select * from unidad_medida where estado = 1;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_categorias(){
		$con = "select * from categoria_producto_servicio where estado = 1;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}



	public function enviar_correo($codigo,$pdf){
        require_once("./model/PHPMailer/PHPMailerAutoload.php");
        $resultado=true;
        $Fecha_Reporte = date('d_m_Y');
        $mail = new PHPMailer;
        $mail->isSMTP();

        $mail->Host = 'smtp.gmail.com';
        $mail->Port = 587;
        $mail->SMTPAuth = true;
        $mail->Username = 'helpdesk@bio.com.pe';
        $mail->Password = 'BioDerby2020..';
        $mail->SMTPSecure = 'TLS';
        $mail->SMTPOptions = array(
            'ssl' => array(
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
            )
        );

		$ms = "NOTIFICACION:<br/><br/>SE HA APROBADO LA PLANTILLA DE PAGO CON EL CODIGO: ".$codigo."<br/>"."<br/>"."Saludos.";

        $destinatario = 'csegura@bio.com.pe';
		$destinatario2 = 'jlsegura@bio.com.pe';
		$destinatario3 = 'vdelgadillo@bio.com.pe';
        $mail->From = 'helpdesk@bio.com.pe';
        $mail->FromName = utf8_decode('TRINITY almacen');
        $mail->addAddress($destinatario,'');
		$mail->addAddress($destinatario2,'');
		$mail->addAddress($destinatario3,'');
        $Nombre1=$ms;
        $Nombre=utf8_decode("PLANTILLA DE PAGO ".$codigo);
        $mail->WordWrap = 50;
        $mail->addAttachment('./'.$pdf);
        $mail->isHTML(true);

        $mail->Subject = ''.$Nombre;
        $mail->Body    = $Nombre1;

        if($destinatario!=""){
            if(!$mail->send()) {
                $resultado=false;
            } else {
                $resultado=true;
            }
        }

        return $resultado;
    }

	public function get_producto_servicio2($tipo){
		$con = "SELECT producto_servicio.*, catalogo_serializado.descripcion as catalogo_serializado, 
				unidad_medida.descripcion as unidad_medida, sub_categoria_producto_servicio.sub_categoria as sub_categoria_producto_servicio 
				FROM asignacion_almacen_ccosto, categoria_producto_servicio, producto_servicio, catalogo_serializado, unidad_medida, 
				sub_categoria_producto_servicio, stock_almacen 
				WHERE producto_servicio.id_catalogo_serializado = catalogo_serializado.id_catalogo_serializado 
				AND sub_categoria_producto_servicio.id_sub_categoria_producto_servicio = producto_servicio.id_sub_categoria_producto_servicio 
				AND producto_servicio.id_unidad_medida = unidad_medida.id_unidad_medida 
				AND categoria_producto_servicio.id_categoria_producto_servicio = sub_categoria_producto_servicio.id_categoria_producto_servicio 
				AND categoria_producto_servicio.id_tipo_producto_servicio = ? 
				AND producto_servicio.bio = 0 
				AND asignacion_almacen_ccosto.id_ccosto = producto_servicio.id_ccosto 
				AND stock_almacen.id_asignacion = ? 
				AND stock_almacen.id_producto = producto_servicio.id_producto_servicio;";
		$params = array($tipo, $_SESSION['id_asignacion']);
		$stmt = sqlsrv_query($this->db, $con, $params);
		$lista = array();
		while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}
	
	public function get_producto_servicio($tipo){
		$con = "SELECT producto_servicio.*, catalogo_serializado.descripcion as catalogo_serializado, 
				unidad_medida.descripcion as unidad_medida, sub_categoria_producto_servicio.sub_categoria as sub_categoria_producto_servicio 
				FROM asignacion_almacen_ccosto, categoria_producto_servicio, producto_servicio, catalogo_serializado, unidad_medida, 
				sub_categoria_producto_servicio 
				WHERE producto_servicio.id_catalogo_serializado = catalogo_serializado.id_catalogo_serializado 
				AND sub_categoria_producto_servicio.id_sub_categoria_producto_servicio = producto_servicio.id_sub_categoria_producto_servicio 
				AND producto_servicio.id_unidad_medida = unidad_medida.id_unidad_medida 
				AND categoria_producto_servicio.id_categoria_producto_servicio = sub_categoria_producto_servicio.id_categoria_producto_servicio 
				AND categoria_producto_servicio.id_tipo_producto_servicio = ? 
				AND producto_servicio.bio = 0 and producto_servicio.estado != 0
				AND asignacion_almacen_ccosto.id_ccosto = producto_servicio.id_ccosto 
				AND asignacion_almacen_ccosto.id_asignacion_almacen_ccosto = ?;";
		$params = array($tipo, $_SESSION['id_asignacion']);
		$stmt = sqlsrv_query($this->db, $con, $params);
		$lista = array();
		while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}
	
	public function get_temporal_series($codigo){
		$con = "SELECT t.*, p.sku_cliente, p.sku, p.nombre_producto, p.descripcion, p.id_catalogo_serializado, s.disponible, p.bio, p.id_producto_servicio
				FROM temporal_solicitud t, producto_servicio p, stock_almacen s
				WHERE t.id_producto = p.id_producto_servicio 
				AND s.id_producto = p.id_producto_servicio
				AND s.id_asignacion = ? 
				AND t.id_solicitud = ?;";
		$params = array($_SESSION['id_asignacion'], $codigo);
		$stmt = sqlsrv_query($this->db, $con, $params);
		$lista = array();
		while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}	

	public function get_producto_servicio_bio($tipo){
		$con = "SELECT p.*, cs.descripcion as catalogo_serializado, u.descripcion as unidad_medida,
				sp.sub_categoria as sub_categoria_producto_servicio , s.disponible
				FROM categoria_producto_servicio c, producto_servicio p, catalogo_serializado cs, unidad_medida u,
				sub_categoria_producto_servicio sp, stock_almacen s 
				WHERE p.id_catalogo_serializado = cs.id_catalogo_serializado 
				AND sp.id_sub_categoria_producto_servicio = p.id_sub_categoria_producto_servicio 
				AND p.id_unidad_medida = u.id_unidad_medida 
				AND c.id_categoria_producto_servicio = sp.id_categoria_producto_servicio 
				AND c.id_tipo_producto_servicio = ? 
				AND s.id_producto = p.id_producto_servicio 
				AND s.id_asignacion = ? 
				AND p.id_catalogo_serializado = 1;";
		$params = array($tipo, $_SESSION['id_asignacion']);
		$stmt = sqlsrv_query($this->db, $con, $params);
		$lista = array();
		while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_producto_servicio_bio2($tipo){
		$con = "SELECT p.*, cs.descripcion as catalogo_serializado, u.descripcion as unidad_medida,
				sp.sub_categoria as sub_categoria_producto_servicio , s.disponible
				FROM categoria_producto_servicio c, producto_servicio p, catalogo_serializado cs, unidad_medida u,
				sub_categoria_producto_servicio sp, stock_almacen s 
				WHERE p.id_catalogo_serializado = cs.id_catalogo_serializado 
				AND sp.id_sub_categoria_producto_servicio = p.id_sub_categoria_producto_servicio 
				AND p.id_unidad_medida = u.id_unidad_medida 
				AND c.id_categoria_producto_servicio = sp.id_categoria_producto_servicio 
				AND c.id_tipo_producto_servicio = ? 
				AND s.id_producto = p.id_producto_servicio 
				AND s.id_asignacion = ?;";
		$params = array($tipo, $_SESSION['id_asignacion']);
		$stmt = sqlsrv_query($this->db, $con, $params);
		$lista = array();
		while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}
	
	public function get_productos_caja_chica(){
		$con = "SELECT p.*, cs.descripcion as catalogo_serializado, u.descripcion as unidad_medida,
				sp.sub_categoria as sub_categoria_producto_servicio 
				FROM categoria_producto_servicio c, producto_servicio p, catalogo_serializado cs,
				unidad_medida u, sub_categoria_producto_servicio sp
				WHERE p.id_catalogo_serializado = cs.id_catalogo_serializado 
				AND sp.id_sub_categoria_producto_servicio = p.id_sub_categoria_producto_servicio 
				AND p.id_unidad_medida = u.id_unidad_medida 
				AND c.id_categoria_producto_servicio = sp.id_categoria_producto_servicio 
				AND c.id_tipo_producto_servicio = '1' 
				AND p.id_catalogo_serializado = 2 ;";
				// AND p.bio = 1;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
		while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}	
	
	public function get_sub_categorias_productos_servicios($tipo){
		$con = "SELECT sub_categoria_producto_servicio.*, categoria_producto_servicio.abreviatura as categoria 
				FROM sub_categoria_producto_servicio, categoria_producto_servicio 
				WHERE categoria_producto_servicio.id_tipo_producto_servicio = ? 
				AND categoria_producto_servicio.id_categoria_producto_servicio = sub_categoria_producto_servicio.id_categoria_producto_servicio;";
		$params = array($tipo);
		$stmt = sqlsrv_query($this->db, $con, $params);
		$lista = array();
		while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}	

	public function get_catalogo_serliazado(){
		$con = "select * from catalogo_serializado where estado = 1;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_sensibilidades(){
		$con = "select * from sensibilidad_producto where estado = 1;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function set_producto($id_sub_categoria_producto_servicio, $nombre_producto, $id_unidad_medida, $id_catalogo_serializado, $bio, $sku, $descripcion, $imagen, $id_sensibilidad, $sku_cliente, $id_ccosto) {
		$con = "BEGIN 
				IF NOT EXISTS (SELECT * FROM producto_servicio WHERE id_ccosto = ? AND sku_cliente = ?) 
				BEGIN 
					INSERT INTO producto_servicio (id_sub_categoria_producto_servicio, nombre_producto, id_unidad_medida, id_catalogo_serializado, sku, descripcion, imagen, id_usuario_interactua, id_sensibilidad_producto, bio, sku_cliente, id_ccosto) 
					VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, '0', ?, ?); 
				END 
				END;";
		$params = array($id_ccosto, $sku_cliente, $id_sub_categoria_producto_servicio, $nombre_producto, $id_unidad_medida, $id_catalogo_serializado, $sku, $descripcion, $imagen, $_SESSION['id_usuario_almacen'], $id_sensibilidad, $sku_cliente, $id_ccosto);
		$stmt = sqlsrv_query($this->db, $con, $params);
		// $con = "BEGIN 
		// IF NOT EXISTS (SELECT * FROM producto_servicio WHERE id_ccosto = '".$id_ccosto."' AND sku_cliente = '".$sku_cliente."') 
		// BEGIN 
		// 	INSERT INTO producto_servicio (id_sub_categoria_producto_servicio, nombre_producto, id_unidad_medida, id_catalogo_serializado, sku, descripcion, imagen, id_usuario_interactua, id_sensibilidad_producto, bio, sku_cliente, id_ccosto) 
		// 	VALUES ('".$id_sub_categoria_producto_servicio."', '".$nombre_producto."', '".$id_unidad_medida."', '".$id_catalogo_serializado."', '".$sku."', '".$descripcion."', '".$imagen."', '".$_SESSION['id_usuario_almacen']."', '".$id_sensibilidad."', '0', '".$sku_cliente."', '".$id_ccosto."'); 
		// END 
		// END;";
		// $stmt = sqlsrv_query($this->db, $con);
        // $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		// echo'<script type="text/javascript">alert("'.$con.'");</script>';
		$con2 = "SELECT * FROM producto_servicio WHERE sku = ? AND id_ccosto = ? AND sku_cliente = ?;";
		$params2 = array($sku, $id_ccosto, $sku_cliente);
		$stmt2 = sqlsrv_query($this->db, $con2, $params2);
		$tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
	
		$con3 = "SELECT * FROM asignacion_almacen_ccosto WHERE id_ccosto = ?;";
		$params3 = array($id_ccosto);
		$stmt3 = sqlsrv_query($this->db, $con3, $params3);
		$lista = array();
		while ($tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC)) {
			$con4 = "BEGIN 
					IF NOT EXISTS (SELECT * FROM stock_almacen WHERE id_producto = ? AND id_asignacion = ?) 
					BEGIN 
						INSERT INTO stock_almacen (id_producto, id_asignacion, disponible, malogrado, merma, sin_estado, id_usuario_interactua) 
						VALUES (?, ?, '0', '0', '0', '0', ?); 
					END 
					END;";
			$params4 = array($tmp2['id_producto_servicio'], $tmp3['id_asignacion_almacen_ccosto'], $tmp2['id_producto_servicio'], $tmp3['id_asignacion_almacen_ccosto'], $_SESSION['id_usuario_almacen']);
			$stmt4 = sqlsrv_query($this->db, $con4, $params4);
			$tmp4 = sqlsrv_fetch_array($stmt4, SQLSRV_FETCH_ASSOC);
		}
	
		return $tmp4;
	}	

	public function update_stock_tecnico($devolver, $id_producto, $id_tecnico, $serie, $estado, $disponible, $movimiento) {
		$cons = "SELECT * FROM stock_tecnico WHERE id_producto = ? AND id_asignacion = ? AND id_tecnico = ?;";
		$params_cons = array($id_producto, $_SESSION['id_asignacion'], $id_tecnico);
		$stmts = sqlsrv_query($this->db, $cons, $params_cons);
		$tmps = sqlsrv_fetch_array($stmts, SQLSRV_FETCH_ASSOC);
	
		$dev = $tmps['disponible'] - $devolver;
		$con = "UPDATE stock_tecnico SET disponible = ? WHERE id_tecnico = ? AND id_asignacion = ? AND id_producto = ?;";
		$params_con = array($dev, $id_tecnico, $_SESSION['id_asignacion'], $id_producto);
		$stmt = sqlsrv_query($this->db, $con, $params_con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		$con = "SELECT * FROM stock_almacen WHERE id_asignacion = ? AND id_producto = ?;";
		$params_con2 = array($_SESSION['id_asignacion'], $id_producto);
		$stmt = sqlsrv_query($this->db, $con, $params_con2);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		if ($estado == 'DISPONIBLE') {
			$estado_estado = 1;
		}
		if ($estado == 'MERMA') {
			$estado_estado = 2;
		}
		if ($estado == 'MALOGRADO') {
			$estado_estado = 3;
		}
	
		$conmov = "INSERT INTO movimientos_almacen (id_producto, id_asignacion_destino, cantidad, serie, id_tipo_movimiento, id_usuario_interactua, id_tecnico, estado_estado) 
				  VALUES (?, ?, ?, ?, ?, ?, ?, ?);";
		$params_conmov = array($id_producto, $_SESSION['id_asignacion'], $devolver, $serie, $movimiento, $_SESSION['id_usuario_almacen'], $id_tecnico, $estado_estado);
		$stmtmov = sqlsrv_query($this->db, $conmov, $params_conmov);
		$tmpmov = sqlsrv_fetch_array($stmtmov, SQLSRV_FETCH_ASSOC);
	
		if ($estado == 'DISPONIBLE') {
			$r = $tmp['disponible'] + $devolver;
			$con = "UPDATE stock_almacen SET disponible = ? WHERE id_producto = ? AND id_asignacion = ?;";
			$params_con3 = array($r, $id_producto, $_SESSION['id_asignacion']);
			$stmt = sqlsrv_query($this->db, $con, $params_con3);
			$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		}
	
		if ($estado == 'MERMA') {
			$r = $tmp['merma'] + $devolver;
			$con = "UPDATE stock_almacen SET merma = ? WHERE id_producto = ? AND id_asignacion = ?;";
			$params_con4 = array($r, $id_producto, $_SESSION['id_asignacion']);
			$stmt = sqlsrv_query($this->db, $con, $params_con4);
			$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		}
	
		if ($estado == 'MALOGRADO') {
			$r = $tmp['malogrado'] + $devolver;
			$con = "UPDATE stock_almacen SET malogrado = ? WHERE id_producto = ? AND id_asignacion = ?;";
			$params_con5 = array($r, $id_producto, $_SESSION['id_asignacion']);
			$stmt = sqlsrv_query($this->db, $con, $params_con5);
			$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		}
	
		$con = "UPDATE serie SET id_tecnico = NULL, estado_estado = ? WHERE serie = ? AND id_asignacion = ? AND id_producto = ?;";
		$params_con6 = array($estado_estado, $serie, $_SESSION['id_asignacion'], $id_producto);
		$stmt = sqlsrv_query($this->db, $con, $params_con6);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}	

	public function update_stock_tecnico2($devolver, $id_producto, $id_tecnico, $serie, $estado, $disponible, $movimiento, $observacion) {
		$cons = "SELECT * FROM stock_tecnico WHERE id_producto = ? AND id_asignacion = ? AND id_tecnico = ?;";
		$params_cons = array($id_producto, $_SESSION['id_asignacion'], $id_tecnico);
		$stmts = sqlsrv_query($this->db, $cons, $params_cons);
		$tmps = sqlsrv_fetch_array($stmts, SQLSRV_FETCH_ASSOC);
	
		$dev = $tmps['disponible'] - $devolver;
		$con = "UPDATE stock_tecnico SET disponible = ? WHERE id_tecnico = ? AND id_asignacion = ? AND id_producto = ?;";
		$params_con = array($dev, $id_tecnico, $_SESSION['id_asignacion'], $id_producto);
		$stmt = sqlsrv_query($this->db, $con, $params_con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		$con = "SELECT * FROM stock_almacen WHERE id_asignacion = ? AND id_producto = ?;";
		$params_con2 = array($_SESSION['id_asignacion'], $id_producto);
		$stmt = sqlsrv_query($this->db, $con, $params_con2);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		if ($estado == 'DISPONIBLE') {
			$estado_estado = 1;
		} elseif ($estado == 'MERMA') {
			$estado_estado = 2;
		} elseif ($estado == 'MALOGRADO') {
			$estado_estado = 3;
		}
	
		$conmov = "INSERT INTO movimientos_almacen (id_producto, id_asignacion_destino, cantidad, serie, id_tipo_movimiento, id_usuario_interactua, id_tecnico, estado_estado, observacion) 
				  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);";
		$params_conmov = array($id_producto, $_SESSION['id_asignacion'], $devolver, $serie, $movimiento, $_SESSION['id_usuario_almacen'], $id_tecnico, $estado_estado, $observacion);
		$stmtmov = sqlsrv_query($this->db, $conmov, $params_conmov);
		$tmpmov = sqlsrv_fetch_array($stmtmov, SQLSRV_FETCH_ASSOC);
	
		if ($estado == 'DISPONIBLE') {
			$r = $tmp['disponible'] + $devolver;
			$con = "UPDATE stock_almacen SET disponible = ? WHERE id_producto = ? AND id_asignacion = ?;";
			$params_con3 = array($r, $id_producto, $_SESSION['id_asignacion']);
			$stmt = sqlsrv_query($this->db, $con, $params_con3);
			$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		} elseif ($estado == 'MERMA') {
			$r = $tmp['merma'] + $devolver;
			$con = "UPDATE stock_almacen SET merma = ? WHERE id_producto = ? AND id_asignacion = ?;";
			$params_con4 = array($r, $id_producto, $_SESSION['id_asignacion']);
			$stmt = sqlsrv_query($this->db, $con, $params_con4);
			$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		} elseif ($estado == 'MALOGRADO') {
			$r = $tmp['malogrado'] + $devolver;
			$con = "UPDATE stock_almacen SET malogrado = ? WHERE id_producto = ? AND id_asignacion = ?;";
			$params_con5 = array($r, $id_producto, $_SESSION['id_asignacion']);
			$stmt = sqlsrv_query($this->db, $con, $params_con5);
			$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		}
	
		$con = "UPDATE serie SET id_tecnico = NULL, estado_estado = ? WHERE serie = ? AND id_asignacion = ? AND id_producto = ?;";
		$params_con6 = array($estado_estado, $serie, $_SESSION['id_asignacion'], $id_producto);
		$stmt = sqlsrv_query($this->db, $con, $params_con6);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}
	

	public function update_stock_almacen_contrata($id_producto, $disponible, $devolver_disponible, $malogrado, $devolver_malogrado, $merma, $disponible2, $devolver_merma, $serie, $contrata) {
		$conac = "SELECT * FROM stock_almacen WHERE id_asignacion = ? AND id_producto = ?;";
		$params_conac = array($_SESSION['id_asignacion'], $id_producto);
		$stmtac = sqlsrv_query($this->db, $conac, $params_conac);
		$tmpac = sqlsrv_fetch_array($stmtac, SQLSRV_FETCH_ASSOC);
	
		$disponible = intval($tmpac['disponible']) - intval($devolver_disponible);
		$malogrado = intval($tmpac['malogrado']) - intval($devolver_malogrado);
		$merma = intval($tmpac['merma']) - intval($devolver_merma);
	
		if (intval($devolver_disponible) != 0) {
			$con3 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento, contrata) 
					 VALUES (?, ?, ?, ?, ?, ?, ?);";
			$params_con3 = array($id_producto, $_SESSION['id_asignacion'], intval($devolver_disponible), $serie, $_SESSION['id_usuario_almacen'], 7, $contrata);
			$stmt3 = sqlsrv_query($this->db, $con3, $params_con3);
			$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
		}
	
		if (intval($devolver_malogrado) != 0) {
			$con3 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento, contrata) 
					 VALUES (?, ?, ?, ?, ?, ?, ?);";
			$params_con3 = array($id_producto, $_SESSION['id_asignacion'], intval($devolver_malogrado), $serie, $_SESSION['id_usuario_almacen'], 7, $contrata);
			$stmt3 = sqlsrv_query($this->db, $con3, $params_con3);
			$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
		}
	
		if (intval($devolver_merma) != 0) {
			$con3 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento, contrata) 
					 VALUES (?, ?, ?, ?, ?, ?, ?);";
			$params_con3 = array($id_producto, $_SESSION['id_asignacion'], intval($devolver_merma), $serie, $_SESSION['id_usuario_almacen'], 7, $contrata);
			$stmt3 = sqlsrv_query($this->db, $con3, $params_con3);
			$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
		}
	
		$con2 = "UPDATE stock_almacen SET disponible = ?, malogrado = ?, merma = ? WHERE id_asignacion = ? AND id_producto = ?;";
		$params_con2 = array($disponible, $malogrado, $merma, $_SESSION['id_asignacion'], $id_producto);
		$stmt = sqlsrv_query($this->db, $con2, $params_con2);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		$con = "UPDATE serie SET id_tecnico = '0', estado = '0' WHERE id_asignacion = ? AND id_producto = ? AND serie = ?;";
		$params_con = array($_SESSION['id_asignacion'], $id_producto, $serie);
		$stmt = sqlsrv_query($this->db, $con, $params_con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmpac;
	}	

	public function update_stock_almacen($id_producto, $disponible, $devolver_disponible, $malogrado, $devolver_malogrado, $merma, $disponible2, $devolver_merma, $serie) {
		$conac = "SELECT * FROM stock_almacen WHERE id_asignacion = ? AND id_producto = ?;";
		$params_conac = array($_SESSION['id_asignacion'], $id_producto);
		$stmtac = sqlsrv_query($this->db, $conac, $params_conac);
		$tmpac = sqlsrv_fetch_array($stmtac, SQLSRV_FETCH_ASSOC);
	
		$disponible = intval($tmpac['disponible']) - intval($devolver_disponible);
		$malogrado = intval($tmpac['malogrado']) - intval($devolver_malogrado);
		$merma = intval($tmpac['merma']) - intval($devolver_merma);
	
		if (intval($devolver_disponible) != 0) {
			$con3 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento) 
					 VALUES (?, ?, ?, ?, ?, ?);";
			$params_con3 = array($id_producto, $_SESSION['id_asignacion'], intval($devolver_disponible), $serie, $_SESSION['id_usuario_almacen'], 4);
			$stmt3 = sqlsrv_query($this->db, $con3, $params_con3);
			$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
		}
	
		if (intval($devolver_malogrado) != 0) {
			$con3 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento) 
					 VALUES (?, ?, ?, ?, ?, ?);";
			$params_con3 = array($id_producto, $_SESSION['id_asignacion'], intval($devolver_malogrado), $serie, $_SESSION['id_usuario_almacen'], 4);
			$stmt3 = sqlsrv_query($this->db, $con3, $params_con3);
			$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
		}
	
		if (intval($devolver_merma) != 0) {
			$con3 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento) 
					 VALUES (?, ?, ?, ?, ?, ?);";
			$params_con3 = array($id_producto, $_SESSION['id_asignacion'], intval($devolver_merma), $serie, $_SESSION['id_usuario_almacen'], 4);
			$stmt3 = sqlsrv_query($this->db, $con3, $params_con3);
			$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
		}
	
		$con2 = "UPDATE stock_almacen SET disponible = ?, malogrado = ?, merma = ? WHERE id_asignacion = ? AND id_producto = ?;";
		$params_con2 = array($disponible, $malogrado, $merma, $_SESSION['id_asignacion'], $id_producto);
		$stmt = sqlsrv_query($this->db, $con2, $params_con2);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		$con = "UPDATE serie SET id_tecnico = '0', estado = '0' WHERE id_asignacion = ? AND id_producto = ? AND serie = ?;";
		$params_con = array($_SESSION['id_asignacion'], $id_producto, $serie);
		$stmt = sqlsrv_query($this->db, $con, $params_con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmpac;
	}	

	public function update_stock_almacen2($id_producto, $disponible, $devolver_disponible, $malogrado, $devolver_malogrado, $merma, $disponible2, $devolver_merma, $serie) {
		$conac = "SELECT * FROM stock_almacen WHERE id_asignacion = ? AND id_producto = ?;";
		$params_conac = array($_SESSION['id_asignacion'], $id_producto);
		$stmtac = sqlsrv_query($this->db, $conac, $params_conac);
		$tmpac = sqlsrv_fetch_array($stmtac, SQLSRV_FETCH_ASSOC);
	
		$disponible = intval($tmpac['disponible']) - intval($devolver_disponible);
		$malogrado = intval($tmpac['malogrado']) - intval($devolver_malogrado);
		$merma = intval($tmpac['merma']) - intval($devolver_merma);
	
		$con2 = "UPDATE stock_almacen SET disponible = ?, malogrado = ?, merma = ? WHERE id_asignacion = ? AND id_producto = ?;";
		$params_con2 = array($disponible, $malogrado, $merma, $_SESSION['id_asignacion'], $id_producto);
		$stmt = sqlsrv_query($this->db, $con2, $params_con2);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		$con = "UPDATE serie SET id_tecnico = '0' WHERE id_asignacion = ? AND id_producto = ? AND serie = ?;";
		$params_con = array($_SESSION['id_asignacion'], $id_producto, $serie);
		$stmt = sqlsrv_query($this->db, $con, $params_con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}	

	public function update_stock_tecnico_l2($devolver, $id_producto, $id_tecnico, $serie, $disponible, $movimiento, $codigo, $orden) {
		$cons1 = "SELECT * FROM stock_tecnico WHERE id_tecnico = ? AND id_asignacion = ? AND id_producto = ?;";
		$params_cons1 = array($id_tecnico, $_SESSION['id_asignacion'], $id_producto);
		$stmts1 = sqlsrv_query($this->db, $cons1, $params_cons1);
		$tmps1 = sqlsrv_fetch_array($stmts1, SQLSRV_FETCH_ASSOC);
	
		$dev = (intval($tmps1['disponible']) - intval($devolver));
	
		$con = "UPDATE stock_tecnico SET disponible = ? WHERE id_tecnico = ? AND id_asignacion = ? AND id_producto = ?;";
		$params_con = array($dev, $id_tecnico, $_SESSION['id_asignacion'], $id_producto);
		$stmt = sqlsrv_query($this->db, $con, $params_con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		$con = "SELECT * FROM stock_almacen WHERE id_asignacion = ? AND id_producto = ?;";
		$params_con = array($_SESSION['id_asignacion'], $id_producto);
		$stmt = sqlsrv_query($this->db, $con, $params_con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		$con = "UPDATE serie SET id_tecnico = 0, id_asignacion = 0, estado = 0, cantidad = 0 WHERE serie = ? AND id_asignacion = ? AND id_producto = ?;";
		$params_con = array($serie, $_SESSION['id_asignacion'], $id_producto);
		$stmt = sqlsrv_query($this->db, $con, $params_con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}

	public function get_detalle_plantilla_liquidacion($id,$id_tecnico){
		$con = "select stock_tecnico.*,producto_servicio.bio,producto_servicio.sku,producto_servicio.id_producto_servicio,producto_servicio.nombre_producto ,producto_servicio.id_catalogo_serializado,producto_servicio.sku_cliente, a.cantidad_liquidar, a.serie, a.id_asignacion_plantilla_liquidacion, producto_servicio.liquidacion_maxima, producto_servicio.stock_minimo from stock_tecnico,producto_servicio, asignacion_plantilla_liquidacion a where a.id_plantilla_liquidacion = '".$id."' and a.id_producto = producto_servicio.id_producto_servicio and producto_servicio.id_producto_servicio = stock_tecnico.id_producto and a.estado = 1 and stock_tecnico.id_tecnico = '".$id_tecnico."' order by producto_servicio.id_catalogo_serializado asc;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function delete_asignacion_plantilla_liquidar($id_asignacion_liquidacion){

		$con = "update asignacion_plantilla_liquidacion set estado = 0 where id_asignacion_plantilla_liquidacion = '".$id_asignacion_liquidacion."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		return $tmp;
	}

	public function set_reenvio_plantilla($id_producto,$id_tecnico,$serie,$disponible,$movimiento,$id_asignacion_liquidacion,$id){

		$con = "update asignacion_plantilla_liquidacion set estado = 0 where id_asignacion_plantilla_liquidacion = '".$id_asignacion_liquidacion."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		$con = "update plantilla_liquidacion set estado = 1 where id_plantilla_liquidacion = '".$id."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);	

		$con = "insert into asignacion_plantilla_liquidacion (id_producto,id_asignacion,id_tecnico,serie,cantidad_liquidar,id_plantilla_liquidacion,id_usuario_interactua) values ('".$id_producto."','".$_SESSION['id_asignacion']."','".$id_tecnico."','".$serie."','".$disponible."','".$id."','".$_SESSION['id_usuario_almacen']."');";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}

	public function get_series2($id){
		$con = "select * from serie where id_asignacion = '".$_SESSION['id_asignacion']."' and id_tecnico = '".$id."';";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_plantillas_liquidacion_rechazadas(){
		$con = "select * from plantilla_liquidacion where id_asignacion = '".$_SESSION['id_asignacion']."' and  estado = 2 and id_usuario_interactua = '".$_SESSION['id_usuario_almacen']."';";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_plantilla_liquidacion_especifico($id){
		
		$con = "select * From plantilla_liquidacion where id_plantilla_liquidacion = '".$id."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}

	public function update_stock_tecnico_l($devolver, $id_producto, $id_tecnico, $serie, $disponible, $movimiento, $codigo, $orden) {
		$cons1 = "SELECT * FROM stock_tecnico WHERE id_tecnico = ? AND id_asignacion = ? AND id_producto = ?;";
		$params_cons1 = array($id_tecnico, $_SESSION['id_asignacion'], $id_producto);
		$stmts1 = sqlsrv_query($this->db, $cons1, $params_cons1);
		$tmps1 = sqlsrv_fetch_array($stmts1, SQLSRV_FETCH_ASSOC);
	
		$dev = (intval($tmps1['disponible']) - intval($devolver));
	
		$con = "UPDATE stock_tecnico SET disponible = ? WHERE id_tecnico = ? AND id_asignacion = ? AND id_producto = ?;";
		$params_con = array($dev, $id_tecnico, $_SESSION['id_asignacion'], $id_producto);
		$stmt = sqlsrv_query($this->db, $con, $params_con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		$con = "SELECT * FROM stock_almacen WHERE id_asignacion = ? AND id_producto = ?;";
		$params_con = array($_SESSION['id_asignacion'], $id_producto);
		$stmt = sqlsrv_query($this->db, $con, $params_con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		$con = "UPDATE serie SET id_tecnico = 0, id_asignacion = 0, estado = 0, cantidad = 0 WHERE serie = ? AND id_asignacion = ? AND id_producto = ?;";
		$params_con = array($serie, $_SESSION['id_asignacion'], $id_producto);
		$stmt = sqlsrv_query($this->db, $con, $params_con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		$conmov = "INSERT INTO movimientos_almacen(id_producto, cantidad, serie, id_tipo_movimiento, id_usuario_interactua, id_tecnico, codigo, orden, id_asignacion) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);";
		$params_conmov = array($id_producto, $devolver, $serie, $movimiento, $_SESSION['id_usuario_almacen'], $id_tecnico, $codigo, $orden, $_SESSION['id_asignacion']);
		$stmtmov = sqlsrv_query($this->db, $conmov, $params_conmov);
		$tmpmov = sqlsrv_fetch_array($stmtmov, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}

	public function update_stock_almacen_cc($id_producto, $disponible, $devolver_disponible, $malogrado, $devolver_malogrado, $merma, $disponible2, $devolver_merma, $serie, $acd) {
		$con = "SELECT * FROM stock_almacen WHERE id_producto = ? AND id_asignacion = ?;";
		$params_con = array($id_producto, $acd);
		$stmt = sqlsrv_query($this->db, $con, $params_con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		$disponible = $tmp['disponible'] + $devolver_disponible;
		$malogrado = $tmp['malogrado'] + $devolver_malogrado;
		$merma = $tmp['merma'] + $devolver_merma;
	
		if ($devolver_disponible != 0) {
			$con3 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento, id_asignacion_destino) VALUES (?, ?, ?, ?, ?, ?, ?);";
			$params_con3 = array($id_producto, $_SESSION['id_asignacion'], $devolver_disponible, $serie, $_SESSION['id_usuario_almacen'], 6, $acd);
			$stmt3 = sqlsrv_query($this->db, $con3, $params_con3);
			$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
		}
	
		if ($devolver_malogrado != 0) {
			$con3 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento, id_asignacion_destino) VALUES (?, ?, ?, ?, ?, ?, ?);";
			$params_con3 = array($id_producto, $_SESSION['id_asignacion'], $devolver_malogrado, $serie, $_SESSION['id_usuario_almacen'], 6, $acd);
			$stmt3 = sqlsrv_query($this->db, $con3, $params_con3);
			$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
		}
	
		if ($devolver_merma != 0) {
			$con3 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento, id_asignacion_destino) VALUES (?, ?, ?, ?, ?, ?, ?);";
			$params_con3 = array($id_producto, $_SESSION['id_asignacion'], $devolver_merma, $serie, $_SESSION['id_usuario_almacen'], 6, $acd);
			$stmt3 = sqlsrv_query($this->db, $con3, $params_con3);
			$tmp3 = sqlsrv_fetch_array($stmt3, SQLSRV_FETCH_ASSOC);
		}
	
		$con2 = "UPDATE stock_almacen SET disponible = ?, malogrado = ?, merma = ? WHERE id_asignacion = ? AND id_producto = ?;";
		$params_con2 = array($disponible, $malogrado, $merma, $acd, $id_producto);
		$stmt = sqlsrv_query($this->db, $con2, $params_con2);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		$con = "UPDATE serie SET id_tecnico = NULL, id_asignacion = ? WHERE id_asignacion = ? AND id_producto = ? AND serie = ?;";
		$params_con = array($acd, $_SESSION['id_asignacion'], $id_producto, $serie);
		$stmt = sqlsrv_query($this->db, $con, $params_con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
	
		return $tmp;
	}

	public function correo_liquidacion_maxima($tecnico,$producto,$correo){
		
        require_once("./model/PHPMailer/PHPMailerAutoload.php");
        $resultado=true;
        $Fecha_Reporte = date('d_m_Y');
        $mail = new PHPMailer;
        $mail->isSMTP();

        $mail->Host = 'smtp.gmail.com';
        $mail->Port = 587;
        $mail->SMTPAuth = true;
        $mail->Username = 'helpdesk@bio.com.pe';
        $mail->Password = 'BioDerby2020..';
        $mail->SMTPSecure = 'TLS';
        $mail->SMTPOptions = array(
            'ssl' => array(
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
            )
        );
        $destinatario = $correo;
        $mail->From = 'helpdesk@bio.com.pe';
        $mail->FromName = utf8_decode('TRINITY ALMACEN - CONSTANCIA');
        $mail->addAddress($destinatario,'');
        $Nombre1=utf8_decode("NOTIFICACION: El tecnico ".$tecnico." a liquidado el producto ".$producto." más de lo debido.");
        $Nombre=utf8_decode('BIO SAC - TRINITY ALMACEN - LIQUIDACIÓN DE PRODUCTO');
        $mail->WordWrap = 50;
        $mail->addAttachment($Nombre1);
        $mail->isHTML(true);

        $mail->Subject = ''.$Nombre;
        $mail->Body    = $Nombre1;

        if($destinatario!=""){
            if(!$mail->send()) {
                $resultado=false;
            } else {
                $resultado=true;
            }
        }

        return $resultado;
    }

	public function correo_stock_minimo($almacen,$producto,$correo){
		
        require_once("./model/PHPMailer/PHPMailerAutoload.php");
        $resultado=true;
        $Fecha_Reporte = date('d_m_Y');
        $mail = new PHPMailer;
        $mail->isSMTP();

        $mail->Host = 'smtp.gmail.com';
        $mail->Port = 587;
        $mail->SMTPAuth = true;
        $mail->Username = 'helpdesk@bio.com.pe';
        $mail->Password = 'BioDerby2020..';
        $mail->SMTPSecure = 'TLS';
        $mail->SMTPOptions = array(
            'ssl' => array(
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
            )
        );
        $destinatario = $correo;
        $mail->From = 'helpdesk@bio.com.pe';
        $mail->FromName = utf8_decode('TRINITY ALMACEN - CONSTANCIA');
        $mail->addAddress($destinatario,'');
        $Nombre1=utf8_decode("NOTIFICACION: El almacen ".$almacen." se esta quedando sin stock del producto ".$producto.'.');
        $Nombre=utf8_decode('BIO SAC - TRINITY ALMACEN - ALMACEN SIN STOCK');
        $mail->WordWrap = 50;
        $mail->addAttachment($Nombre1);
        $mail->isHTML(true);

        $mail->Subject = ''.$Nombre;
        $mail->Body    = $Nombre1;

        if($destinatario!=""){
            if(!$mail->send()) {
                $resultado=false;
            } else {
                $resultado=true;
            }
        }

        return $resultado;
    }

	public function enviar_constancia($link, $correo){
		
        require_once("./model/PHPMailer/PHPMailerAutoload.php");
        $resultado=true;
        $Fecha_Reporte = date('d_m_Y');
        $mail = new PHPMailer;
        $mail->isSMTP();

        $mail->Host = 'smtp.gmail.com';
        $mail->Port = 587;
        $mail->SMTPAuth = true;
        $mail->Username = 'helpdesk@bio.com.pe';
        $mail->Password = 'BioDerby2020..';
        $mail->SMTPSecure = 'TLS';
        $mail->SMTPOptions = array(
            'ssl' => array(
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
            )
        );
        $destinatario = $correo;
        $mail->From = 'helpdesk@bio.com.pe';
        $mail->FromName = utf8_decode('TRINITY ALMACEN - CONSTANCIA');
        $mail->addAddress($destinatario,'');
        $Nombre1=utf8_decode("NOTIFICACION: SE ENVÍA CONSTANCIA.<br/><br/>LINK: ".$link."<br/><br/>SALUDOS.");
        $Nombre=utf8_decode('BIO SAC - TRINITY ALMACEN - CONSTANCIA');
        $mail->WordWrap = 50;
        $mail->addAttachment($Nombre1);
        $mail->isHTML(true);

        $mail->Subject = ''.$Nombre;
        $mail->Body    = $Nombre1;

        if($destinatario!=""){
            if(!$mail->send()) {
                $resultado=false;
            } else {
                $resultado=true;
            }
        }

        return $resultado;
    }

	public function correo_prueba(){
		
        require_once("./vendor/autoload.php");

		// Inicializa el cliente de Google API PHP
		$client = new Google\Client();
		$client->setApplicationName('CorreoBio');
		$client->setScopes(Google\Service\Gmail::MAIL_GOOGLE_COM);
		$client->setAuthConfig('/credenciales/client_secret.json');
		$client->setAccessType('offline');

		// Autentica al usuario
		$client->refreshTokenWithAssertion();

		// Crea un objeto de servicio Gmail
		$service = new Google\Service\Gmail($client);

		// Crea el mensaje de correo electrónico
		$email = new Google\Service\Gmail\Message();
		$email->setRaw(base64_encode("From: meyzaguirre@bio.com.pe\r\nTo: avillalba@bio.com.pe\r\nSubject: Subject of the email\r\n\r\nBody of the email"));

		// Envía el correo electrónico
		try {
			$message = $service->users_messages->send('me', $email);
			echo 'Correo electrónico enviado exitosamente.';
		} catch (Exception $e) {
			echo 'Error al enviar el correo electrónico: ' . $e->getMessage();
		}
    }

	public function get_series_totales(){
		$con = "sp_getSeriesTotales ".$_SESSION['id_asignacion'];
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_dni_tecnico($id) {
		$con = "SELECT * FROM usuario WHERE id_usuario = ?;";
		$params_con = array($id);
		$stmt = sqlsrv_query($this->db, $con, $params_con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		return $tmp;
	}

	// NUEVO MICHELLI

	public function get_usuario_requerimiento($id) {
		$con = "EXEC sp_getUsuarioCargo ?;";
		$params_con = array($id);
		$stmt = sqlsrv_query($this->db, $con, $params_con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		return $tmp;
	}//

	public function get_productos_sku($sku) {
		$con = "EXEC sp_getProducto ?;";
		$params_con = array($sku);
		$stmt = sqlsrv_query($this->db, $con, $params_con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		return $tmp;
	}

	public function get_usuario_correo($dni) {
		$con = "SELECT * FROM usuario WHERE codigo_usuario = ?;";
		$params_con = array($dni);
		$stmt = sqlsrv_query($this->db, $con, $params_con);
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		return $tmp;
	}	
	
	public function set_requerimiento_traspaso_almacen($id_asignacion, $fecha_traspaso,$id_catalogo_serializado,$gestion){
		$con = "insert into solicitud_traspaso_almacen (id_asignacion,id_asignacion_destino,fecha_traspaso,id_usuario_interactua,id_catalogo_serializado,gestion) values ('".$_SESSION['id_asignacion']."','".$id_asignacion."','".$fecha_traspaso."','".$_SESSION['id_usuario_almacen']."','".$id_catalogo_serializado."','".$gestion."');";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		$con2 = "select top 1 * from  solicitud_traspaso_almacen order by id_solicitud_traspaso_almacen desc;";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
		
		return $tmp2;
	}

	public function set_requerimiento_traspaso_almacen_detalle($id, $id_producto,$cantidad,$serie,$estado) {
		$con = "insert into detalle_solicitud_traspaso_almacen (id_solicitud_traspaso_almacen,id_producto,cantidad,serie,estado_producto,id_usuario_interactua) values ('".$id."','".$id_producto."','".$cantidad."','".$serie."','".$estado."','".$_SESSION['id_usuario_almacen']."');";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}

	public function get_traspaso_almacen_especifico($id) {
		$con = "select * From solicitud_traspaso_almacen where id_solicitud_traspaso_almacen = '".$id."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}

	public function get_ultimo_requerimiento_almacen() {
		$con = "select top 1 * From requerimiento_almacen order by id_requerimiento_almacen desc;";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}

	public function update_plantilla_solicitud_traspaso_almacen($id,$adjunto) {
		$con = "update solicitud_traspaso_almacen set estado = 0, adjunto = '".$adjunto."' where id_solicitud_traspaso_almacen = '".$id."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		return $tmp;
	}

	public function update_plantilla_solicitud_traspaso_contrata($id) {
		$con = "update solicitud_traspaso_almacen set estado = 0 where id_solicitud_traspaso_almacen = '".$id."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		return $tmp;
	}

	public function get_resta_traspaso_almacen($id_producto) {
		$con = "select sum(d.cantidad) as total from detalle_solicitud_traspaso_almacen d, solicitud_traspaso_almacen s where d.id_solicitud_traspaso_almacen = s.id_solicitud_traspaso_almacen and s.estado = 1 and id_producto = '".$id_producto."' and id_asignacion = '".$_SESSION['id_asignacion']."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}

	public function get_cantidad_stock_almacen($id_producto) {
		$con = "select s.*, p.nombre_producto From stock_almacen s, producto_servicio p where s.id_asignacion = '".$_SESSION['id_asignacion']."' and s.id_producto = '".$id_producto."' and s.id_producto = p.id_producto_servicio;";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}
	
	public function set_traspaso_almacen_disponible($id_asignacion,$id_asignacion_destino,$serie,$id_producto) {
		$con = "update serie set id_asignacion = '".$id_asignacion_destino."' where serie = '".$serie."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		$con2 = "update stock_almacen set disponible = disponible - 1 where id_asignacion = '".$id_asignacion."' and id_producto = '".$id_producto."';";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		$con2 = "update stock_almacen set disponible = disponible + 1 where id_asignacion = '".$id_asignacion_destino."' and id_producto = '".$id_producto."';";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		$con2 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento, id_asignacion_destino) VALUES ('".$id_producto."', '".$id_asignacion."', '1', '".$serie."','".$_SESSION['id_usuario_almacen']."', '6', '".$id_asignacion_destino."');";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
		
		return $tmp2;
	}

	public function get_cantidad_liquidacion($id_producto,$id_tecnico) {
		$con = "SELECT DISTINCT sum(a.cantidad_liquidar) as total
		FROM plantilla_liquidacion p
		JOIN asignacion_plantilla_liquidacion a 
		ON p.id_plantilla_liquidacion = a.id_plantilla_liquidacion
		WHERE p.estado = 1 and p.id_usuario_interactua = '".$id_tecnico."' and a.id_producto = '".$id_producto."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		echo'<script type="text/javascript">alert("'.$con.'");</script>';
		return $tmp;
	}
	

	public function set_traspaso_contrata_disponible($id_asignacion,$id_asignacion_destino,$serie,$id_producto) {

		$con = "update serie set cantidad = 0, estado = 0, id_asignacion = 0 where serie = '".$serie."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		$con2 = "update stock_almacen set disponible = disponible - 1 where id_asignacion = '".$id_asignacion."' and id_producto = '".$id_producto."';";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		$con2 = "select * From contrata where id_contrata = '".$id_asignacion_destino."';";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		$con2 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento, contrata) VALUES ('".$id_producto."', '".$id_asignacion."', '1', '".$serie."','".$_SESSION['id_usuario_almacen']."', '7', '".$tmp2['razon_social']."');";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
		
		return $tmp2;
	}

	public function set_traspaso_almacen_disponible_sin_serie($id_asignacion,$id_asignacion_destino,$id_producto,$cantidad) {
		$con = "update stock_almacen set disponible = disponible - '".$cantidad."' where id_asignacion = '".$id_asignacion."' and id_producto = '".$id_producto."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		$con2 = "update stock_almacen set disponible = disponible + '".$cantidad."' where id_asignacion = '".$id_asignacion_destino."' and id_producto = '".$id_producto."';";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		$con2 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento, id_asignacion_destino) VALUES ('".$id_producto."', '".$id_asignacion."', '".$cantidad."', '','".$_SESSION['id_usuario_almacen']."', '6', '".$id_asignacion_destino."');";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		return $tmp2;
	}

	public function set_traspaso_contrata_disponible_sin_serie($id_asignacion,$id_asignacion_destino,$id_producto,$cantidad) {
		$con = "update stock_almacen set disponible = disponible - '".$cantidad."' where id_asignacion = '".$id_asignacion."' and id_producto = '".$id_producto."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		$con2 = "select * From contrata where id_contrata = '".$id_asignacion_destino."';";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		$con2 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento, id_asignacion_destino) VALUES ('".$id_producto."', '".$id_asignacion."', '".$cantidad."', '','".$_SESSION['id_usuario_almacen']."', '7', '".$tmp2['razon_social']."');";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		return $tmp2;
	}

	public function set_traspaso_almacen_merma_sin_serie($id_asignacion,$id_asignacion_destino,$id_producto,$cantidad) {
		$con = "update stock_almacen set merma = merma - '".$cantidad."' where id_asignacion = '".$id_asignacion."' and id_producto = '".$id_producto."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		$con2 = "update stock_almacen set merma = merma + '".$cantidad."' where id_asignacion = '".$id_asignacion_destino."' and id_producto = '".$id_producto."';";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		$con2 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento, id_asignacion_destino) VALUES ('".$id_producto."', '".$id_asignacion."', '".$cantidad."', '','".$_SESSION['id_usuario_almacen']."', '6', '".$id_asignacion_destino."');";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
		
		return $tmp2;
	}

	public function set_traspaso_contrata_merma_sin_serie($id_asignacion,$id_asignacion_destino,$id_producto,$cantidad) {
		$con = "update stock_almacen set merma = merma - '".$cantidad."' where id_asignacion = '".$id_asignacion."' and id_producto = '".$id_producto."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		$con2 = "select * From contrata where id_contrata = '".$id_asignacion_destino."';";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		$con2 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento, id_asignacion_destino) VALUES ('".$id_producto."', '".$id_asignacion."', '".$cantidad."', '','".$_SESSION['id_usuario_almacen']."', '7', '".$tmp2['razon_social']."');";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		return $tmp2;
	}

	public function set_traspaso_almacen_malogrado_sin_serie($id_asignacion,$id_asignacion_destino,$id_producto,$cantidad) {
		$con = "update stock_almacen set malogrado = malogrado - '".$cantidad."' where id_asignacion = '".$id_asignacion."' and id_producto = '".$id_producto."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		$con2 = "update stock_almacen set malogrado = malogrado + '".$cantidad."' where id_asignacion = '".$id_asignacion_destino."' and id_producto = '".$id_producto."';";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		$con2 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento, id_asignacion_destino) VALUES ('".$id_producto."', '".$id_asignacion."', '".$cantidad."', '','".$_SESSION['id_usuario_almacen']."', '6', '".$id_asignacion_destino."');";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
		
		return $tmp2;
	}

	public function set_traspaso_contrata_malogrado_sin_serie($id_asignacion,$id_asignacion_destino,$id_producto,$cantidad) {
		$con = "update stock_almacen set malogrado = malogrado - '".$cantidad."' where id_asignacion = '".$id_asignacion."' and id_producto = '".$id_producto."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		$con2 = "select * From contrata where id_contrata = '".$id_asignacion_destino."';";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		$con2 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento, id_asignacion_destino) VALUES ('".$id_producto."', '".$id_asignacion."', '".$cantidad."', '','".$_SESSION['id_usuario_almacen']."', '7', '".$tmp2['razon_social']."');";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		return $tmp2;
	}

	public function set_traspaso_almacen_merma($id_asignacion,$id_asignacion_destino,$serie,$id_producto) {
		$con = "update serie set id_asignacion = '".$id_asignacion_destino."' where serie = '".$serie."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		$con2 = "update stock_almacen set merma = merma - 1 where id_asignacion = '".$id_asignacion."' and id_producto = '".$id_producto."';";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		$con2 = "update stock_almacen set merma = merma + 1 where id_asignacion = '".$id_asignacion_destino."' and id_producto = '".$id_producto."';";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		$con2 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento, id_asignacion_destino) VALUES ('".$id_producto."', '".$id_asignacion."', '1', '".$serie."','".$_SESSION['id_usuario_almacen']."', '6', '".$id_asignacion_destino."');";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
		
		return $tmp2;
	}

	public function set_traspaso_contrata_merma($id_asignacion,$id_asignacion_destino,$serie,$id_producto) {
		
		$con = "update serie set cantidad = 0, estado = 0, id_asignacion = 0 where serie = '".$serie."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		$con2 = "update stock_almacen set merma = merma - 1 where id_asignacion = '".$id_asignacion."' and id_producto = '".$id_producto."';";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		$con2 = "select * From contrata where id_contrata = '".$id_asignacion_destino."';";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		$con2 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento, contrata) VALUES ('".$id_producto."', '".$id_asignacion."', '1', '".$serie."','".$_SESSION['id_usuario_almacen']."', '7', '".$tmp2['razon_social']."');";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
		
		return $tmp2;
	}

	public function set_traspaso_almacen_malogrado($id_asignacion,$id_asignacion_destino,$serie,$id_producto) {
		$con = "update serie set id_asignacion = '".$id_asignacion_destino."' where serie = '".$serie."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		$con2 = "update stock_almacen set malogrado = malogrado - 1 where id_asignacion = '".$id_asignacion."' and id_producto = '".$id_producto."';";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		$con2 = "update stock_almacen set malogrado = malogrado + 1 where id_asignacion = '".$id_asignacion_destino."' and id_producto = '".$id_producto."';";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		$con2 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento, id_asignacion_destino) VALUES ('".$id_producto."', '".$id_asignacion."', '1', '".$serie."','".$_SESSION['id_usuario_almacen']."', '6', '".$id_asignacion_destino."');";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
		
		return $tmp2;
	}

	public function set_traspaso_contrata_malogrado($id_asignacion,$id_asignacion_destino,$serie,$id_producto) {
		
		$con = "update serie set cantidad = 0, estado = 0, id_asignacion = 0 where serie = '".$serie."';";
		$stmt = sqlsrv_query($this->db, $con);
        $tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);

		$con2 = "update stock_almacen set malogrado = malogrado - 1 where id_asignacion = '".$id_asignacion."' and id_producto = '".$id_producto."';";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		$con2 = "select * From contrata where id_contrata = '".$id_asignacion_destino."';";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);

		$con2 = "INSERT INTO movimientos_almacen (id_producto, id_asignacion, cantidad, serie, id_usuario_interactua, id_tipo_movimiento, contrata) VALUES ('".$id_producto."', '".$id_asignacion."', '1', '".$serie."','".$_SESSION['id_usuario_almacen']."', '7', '".$tmp2['razon_social']."');";
		$stmt2 = sqlsrv_query($this->db, $con2);
        $tmp2 = sqlsrv_fetch_array($stmt2, SQLSRV_FETCH_ASSOC);
		
		return $tmp2;
	}

	public function get_detalle_requerimiento_traspaso_almacen($id) {
		$con = "select d.*, p.nombre_producto, p.id_catalogo_serializado, p.sku, p.bio, p.sku_cliente, d.estado_producto, p.id_producto_servicio from detalle_solicitud_traspaso_almacen d, producto_servicio p where d.id_producto = p.id_producto_servicio and d.id_solicitud_traspaso_almacen = '".$id."';";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_series_solicitud_traspaso_almacen($id,$id_producto) {
		$con = "select * From detalle_solicitud_traspaso_almacen where id_producto = '".$id_producto."' and id_solicitud_traspaso_almacen = '".$id."';";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_detalle_requerimiento_traspaso_almacen_serealizados($id) {
		$con = "SELECT d.id_producto, p.nombre_producto, p.id_catalogo_serializado, p.bio, p.sku, p.sku_cliente, d.estado_producto, SUM(d.cantidad) AS cantidad FROM detalle_solicitud_traspaso_almacen d JOIN producto_servicio p ON d.id_producto = p.id_producto_servicio WHERE d.id_solicitud_traspaso_almacen = '".$id."' GROUP BY d.id_producto, p.nombre_producto, p.id_catalogo_serializado, p.bio, p.sku, p.sku_cliente, d.estado_producto;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_requerimiento_traspaso_almacen() {
		$con = "SELECT s.*, CAST(a.descripcion AS varchar(max)) + ' - ' + ac.ccosto AS asignacion_origen,CAST(a_dest.descripcion AS varchar(max)) + ' - ' + ac_dest.ccosto AS asignacion_destino FROM solicitud_traspaso_almacen s JOIN asignacion_almacen_ccosto ac ON s.id_asignacion = ac.id_asignacion_almacen_ccosto JOIN almacen a ON a.id_almacen = ac.id_almacen JOIN asignacion_almacen_ccosto ac_dest ON s.id_asignacion_destino = ac_dest.id_asignacion_almacen_ccosto JOIN almacen a_dest ON a_dest.id_almacen = ac_dest.id_almacen where s.estado = 1 and s.gestion = 2;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}

	public function get_validacion_stock_tecnico($id_tecnico){
		$con = "SELECT sum(disponible) as total FROM stock_tecnico WHERE id_tecnico = '".$id_tecnico."';";
		$stmt = sqlsrv_query($this->db, $con, array($dni));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}

	public function get_stock_almacen($id_producto){
		$con = "SELECT * FROM stock_almacen WHERE id_producto = '".$id_producto."' and id_asignacion = '".$_SESSION['id_asignacion']."';";
		$stmt = sqlsrv_query($this->db, $con, array($dni));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}

	public function get_nombre_almacen(){
		$con = "select CONCAT(a.almacen,' - ', asl.ccosto) as almacen from asignacion_almacen_ccosto asl, almacen a where asl.id_almacen = a.id_almacen and id_asignacion_almacen_ccosto = '".$_SESSION['id_asignacion']."'";
		$stmt = sqlsrv_query($this->db, $con, array($dni));
		$tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
		
		return $tmp;
	}

	public function get_requerimiento_traspaso_contrata() {
		$con = "select s.*, CAST(al.almacen AS varchar(max)) + ' - ' + a.ccosto as asignacion, c.razon_social from solicitud_traspaso_almacen s, asignacion_almacen_ccosto a, contrata c, almacen al where s.id_asignacion = a.id_asignacion_almacen_ccosto and c.id_contrata = id_asignacion_destino and al.id_almacen = a.id_almacen and s.gestion = 3 and s.estado = 1;";
		$stmt = sqlsrv_query($this->db, $con);
		$lista = array();
        while($tmp = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)){
			$lista[] = $tmp;
		}
		return $lista;
	}
	
}

?>

