<?php 

function flow_dlr($datocola_dato,$_tabla_pref,$datocola_fecha)
{
	global $link;
	$_peticion=json_decode($datocola_dato,true);
	
	$_fecha_time=strtotime($datocola_fecha);
	$_fecha=date("Y-m-d H:i:s",$_fecha_time);
	$_msisdn=get_msisdn_peticion($_peticion);
	
	$ref=$_peticion['REF'];
	$_estatus=$_peticion['status'];
	
	$idop_ref='';
	$idu=0;
	$aux=explode('_',$ref); //track de notificacion enviada   
	//OPWELCOME_'.$_tabla_date.'.'.$_id_operacion
	if ($aux[0]=='OPWELCOME')
		$idop_ref=$aux[1];
	//'OPBAJA_'.$_tabla_date.'.'.$_id_operacion.'_'.$dato_usuario['idu'];	
	elseif ($aux[0]=='OPBAJA') 
	{
		$idop_ref=$aux[1];	
		$idu=$aux[2];
	}
	//'OPREMAINDERSENT_'.$_tabla_date.'.'.$_idoperacion.'_'.$dato_usuario['idu']; 
	elseif ($aux[0]=='OPREMAINDERSENT')
	{
		$idop_ref=$aux[1];	
		$idu=$aux[2]; 
	}
	
	
	unset($in);			
	$in['tipo_notificacion']=2;
	$in['op_fecha']=$_fecha;
	$in['op_fechatime']=$_fecha_time;
	$in['msisdn']=$_msisdn;
	$in['notification_param']=$datocola_dato;
				
	if ($idop_ref!='')
	{ 	
			$in['op_estado']=3; // HECHO
			$in['op_resultado']=$_estatus; // HECHO
			$in['op_what']='DLR '.$aux[0];
			$in['accion']='';
			$in['idop_ref']=$idop_ref;
			$in['idu']=$idu;
	}//fin if
	$_tabla_date=date("dmY",$_fecha_time); //'16082016' pondre la fecha de cuando se hizo realmente la notificacion.;
	$_id_operacion=bd_insert($in,$_tabla_pref.$_tabla_date, $link, true,false); 
	
}//f8in flow dlr

//MIRA nos ha confirmado la solictud que le hemos enviado de una baja.
function flow_confirmacion_baja ($datocola_dato,$_tabla_pref,$datocola_fecha)
{
	
	global $link,$_coste_mt;
	$_peticion=json_decode($datocola_dato,true);
	$ref=$_peticion['clientref'];
	//'OPBAJA_'.$_tabla_date.'.'.$_id_operacion.'_'.$dato_usuario['idu']; 
	$aux=explode('_',$ref); 
	$_idusuario=$aux[2];
	$_idopref=$aux[1];
	//chequeo si existe el usuario
	$dato_usuario=bd_select('idu,  fecha_alta, source, money','mira_usuarios',array('idu'=>$_idusuario),$link,true,false);
	if ($dato_usuario!==false) //el usuario existe
	{
		unset($up);
		$up['suscrito']=4;
		$up['activo']=0;
		$up['fecha_baja']=date("Y-m-d H:i:s");
		$up['money']=$dato_usuario['money'] - $_coste_mt;
		bd_update($up,'mira_usuarios',array('idu'=>$dato_usuario['idu']),$link,true,false); 
		
		
		
	
		$_fecha_time=strtotime($datocola_fecha);
		$_fecha=date("Y-m-d H:i:s",$_fecha_time);
		$_msisdn=get_msisdn_peticion($_peticion);
		$_tipo_notificacion=get_tipo_notificacion($_peticion); 
		
		$_tabla_date=date("dmY",$_fecha_time); //tomada de la fecha de la notificacion de la cola
		
		
		unset($in);			
		$in['tipo_notificacion']=$_tipo_notificacion;
		$in['op_fecha']=$_fecha;
		$in['op_fechatime']=$_fecha_time;
		$in['msisdn']=$_msisdn;
		$in['notification_param']=$datocola_dato; 
		
		
		$in['op_estado']=3; // HECHO
		$in['op_what']='MIRA_CONFIRMA_SOLICITUD_DE_BAJA';
		$in['accion']='';
		$in['usuario_fecha_registro']=$dato_usuario['fecha_alta'];
		$in['money']=(-$_coste_mt);
		$in['idu']=$dato_usuario['idu'];
		$in['idop_ref']=$_idopref; //De la solicitud a mira de baja a la que pertenece.
		$in['source']=$dato_usuario['source'];
		$_id_operacion=bd_insert($in,$_tabla_pref.$_tabla_date, $link, true,false);
		
		//elimino los cobros programados.
		@mysql_query("delete from mira_cobros_programados where idu='".$dato_usuario['idu']."'",$link);
											
	}//fin existe usuario
}//fin function

function flow_solicitud_baja($datocola_dato,$_tabla_pref,$datocola_fecha)
{
	global $link,$_password,$_bulk_username_i;
	
	$_peticion=json_decode($datocola_dato,true);
	
	$_fecha_time=strtotime($datocola_fecha);
	$_fecha=date("Y-m-d H:i:s",$_fecha_time);
	$_msisdn=get_msisdn_peticion($_peticion);
	$_tipo_notificacion=get_tipo_notificacion($_peticion); 
	$_network=0; if (isset($_peticion['network'])) $_network=get_network_notificacion($_peticion['network']);
	
	$_tabla_date=date("dmY",$_fecha_time); //tomada de la fecha de la notificacion de la cola
	
	unset($in);			
	$in['network']=$_network;
	$in['tipo_notificacion']=$_tipo_notificacion;
	$in['op_fecha']=$_fecha;
	$in['op_fechatime']=$_fecha_time;
	$in['msisdn']=$_msisdn;
	$in['notification_param']=$datocola_dato;
	
	
	//chequeo primero que el usuario esté en nuestro sistema y esté suscrito.
	$dato_usuario=bd_select('idu,  suscrito','mira_usuarios',array('phone'=>$_msisdn),$link,true,false);
	if ($dato_usuario===false) //el usuario no existe
	{
		
		$in['op_estado']=3; // HECHO
		$in['op_what']='SOLICITUD_DE_BAJA';
		$in['accion']='NADA:USER_NO_EXISTE';
		$in['error_txt']='USUARIO NO EXISTE';
		$_id_operacion=bd_insert($in,$_tabla_pref.$_tabla_date, $link, true,false); 
	}
	//el usuario existe
	else
	{
			//el usuario ya estaba dado de baja [1 suscrito, > 1 ya no está suscrito]
			if ($dato_usuario['suscrito'] > 1) 
			{
				
				$in['op_estado']=3; // HECHO
				$in['op_what']='SOLICITUD_DE_BAJA';
				$in['accion']='NADA:USER_EXISTE_PERO_NO_SUSCRITO';
				$in['error_txt']='USUARIO EXISTE PERO NO SUSCRITO';
				$in['idu']=$dato_usuario['idu'];
				$_id_operacion=bd_insert($in,$_tabla_pref.$_tabla_date, $link, true,false); 
			}
			//el usuario está suscrito, hay de desuscribirlo.
			else
			{	
					//por defecto presupongo que el servicio funcionará correctamente
					unset($up);
					$in['op_estado']=3; // HECHO
					$in['op_what']='SOLICITUD_DE_BAJA';
					$in['accion']='ENVIADA_CONFIRMACION_DE_BAJA_A_MIRA';
					$in['fecha_processing']=date("Y-m-d H:i:s"); // HECHO
					$in['idu']=$dato_usuario['idu'];
					$_id_operacion=bd_insert($in,$_tabla_pref.$_tabla_date, $link, true,false); 
					
					$_text=str_replace(' ','+','Thansk. The service has terminated.'); 
					$_clientref='OPBAJA_'.$_tabla_date.'.'.$_id_operacion.'_'.$dato_usuario['idu']; //para trackear la notificacion enviada en su respuesta DLR
					$md5=md5($_password.'username='.$_bulk_username_i.'&text='.$_text.'&msisdn='.$_msisdn.'&clientref='.$_clientref.'&subsaction=unsubscribe');
					$url_web='http://gateway.miranetworks.net/bulksms/v2?username='.$_bulk_username_i.'&text='.$_text.'&msisdn='.$_msisdn.'&clientref='.$_clientref.'&subsaction=unsubscribe&md5='.$md5;  
					//$aux='PROCESSING';//
					$opts=array('http'=> array( 'method' => 'GET', 'header'=> 'Content-type: text/html' ) );
					$context=stream_context_create($opts);
					$aux=@file_get_contents($url_web,false,$context);    
					
					if (strpos($aux,'PROCESSING')===false) //proceso erroneo    
					{
						/* este es importante, tendré que verificar en base de datos que no haya estado=2 y tipo_operacion = 4 (es una baja con error al mandar la solicitud a esta gente */
						unset($up);
						$up['suscrito']=2;
						$up['activo']=0;
						bd_update($up,'mira_usuarios',array('idu'=>$dato_usuario['idu']),$link,true,false); 
						
						unset($up);
						$up['op_estado']=2; // ERROR PROCESING
						$up['op_what']='SOLICITUD_DE_BAJA';
						$up['accion']='SOLUCIONAR.BAJA';
						$up['error_txt']=$aux;
						$up['idu']=$dato_usuario['idu'];
						bd_update($up,$_tabla_pref.$_tabla_date,array('idop'=>$_id_operacion),$link,true,false);
					}
					//proceso correcto.
					else
					{
							unset($up);
							$up['suscrito']=3;
							$up['activo']=0;
							if (isset($_peticion['bloqueo_por_reclamacion']) && ($_peticion['bloqueo_por_reclamacion']=='si')) $up['bloqueo_por_reclamacion']=1;       
							bd_update($up,'mira_usuarios',array('idu'=>$dato_usuario['idu']),$link,true,false); 
							
							//desactivo al usuario de la plataforma.
							$url_web='http://www.gomifun.com/web/api/desactive.php?idu='.$dato_usuario['idu'];
							$opts=array('http'=> array( 'method' => 'GET', 'header'=> 'Content-type: text/html' ) );
							$context=stream_context_create($opts);
							$aux_web=@file_get_contents($url_web,false,$context);  
							  
					}//fin else  
			}//fin else
	}//fin else
}//fin solicitud de baja


function flow_alta()
{
		global $link, $_tabla_pref, $_tabla_date, $_msisdn, $_id_operacion, $_bulk_username_i, $_bulk_username_b, $_password, $_network, $_cost, $_coste_mt, $_idtrack, $_numsource , $_servicio_suscrito;
		
		//Busco al usuario en la base de datos
		$dato_usuario=bd_select('idu, suscrito, activo, user_content_blocked,bloqueo_por_reclamacion, fecha_date_ultimo_cobro, intentos_cobros_hoy, money, fecha_alta, registro_repetido','mira_usuarios',array('phone'=>$_msisdn,'servicio_suscrito'=>$_servicio_suscrito),$link,true,false);
		if ($dato_usuario===false) //el usuario no existe
		{
				//Una vez registrado el usuario, será enviado aquí: http://www.gomifun.com/login.php?rwo=1&msisdn=$msisdn$
				$x=md5(uniqid(rand(),true));
				$pass_access=substr($x,0,rand(5,6));     
				
				
				//añado al usuario a la base de datos de usuarios.
				$fxtimestamp=time();
				$fxdatetime=date("Y-m-d H:i:s",$fxtimestamp);
				$fecha_reminded = date("Y-m-d",strtotime ( '+30 day' , $fxtimestamp)) ;
				$bolsacobro=0; if ($_network==2) $bolsacobro=$_cost; //inicializo la bolsa de cobro.
				unset($in);
				$in['intentos_cobros_hoy']=1;
				$in['phone']=$_msisdn;
				$in['fecha_alta']=$fxdatetime;  
				$in['idop_ref']=$_tabla_date.'.'.$_id_operacion;
				$in['pass_access']=$pass_access;
				$in['suscrito']=1;
				$in['activo']=1;
				$in['network']=$_network;
				$in['idtrack']=$_idtrack;
				$in['money']=(-$_coste_mt);
				$in['bolsa_cobro']=$bolsacobro;
				$in['fecha_reminded']=$fecha_reminded;
				$in['source']=$_numsource; 
				$_idusuario=bd_insert($in,'mira_usuarios',$link,true,false);
				
				
				//welcome to GOMIFUN. To support 0861106472. Your pass is PASS, click to web http://bit.ly/1rxhy95 R7/day. stop the service click http://bit.ly/1pyckba   
				$_text=str_replace(' ','+','Welcome Your pass is '.$pass_access.', click to web http://bit.ly/1rxhy95 GOMIFUN. To support 0861106472. R7/day. stop the service click http://bit.ly/1pyckba'); 
				$_clientref='OPWELCOME_'.$_tabla_date.'.'.$_id_operacion; //para trackear la notifificación en su respuesta DLR
				$md5=md5($_password.'username='.$_bulk_username_i.'&text='.$_text.'&msisdn='.$_msisdn.'&clientref='.$_clientref);
				$url='http://gateway.miranetworks.net/bulksms/v2?username='.$_bulk_username_i.'&text='.$_text.'&msisdn='.$_msisdn.'&clientref='.$_clientref.'&md5='.$md5;  
				$opts=array('http'=> array( 'method' => 'GET', 'header'=> 'Content-type: text/html' ) );
				$context=stream_context_create($opts);
				$aux=@file_get_contents($url,false,$context);   
				
				//echo $url; echo "\n";var_dump($aux);
				if (strpos($aux,'PROCESSING')===false) //proceso erroneo
				{
							unset($up);
							$up['op_estado']=2; // ERROR EN EL PROCESO
							$up['op_what']='SOLICITUD_DE_SUBS';
							$up['accion']='INTENTO_ENVIAR_WELCOME_SMS ERROR_PROCESSING';
							$up['error_txt']=$aux;
							$up['idu']=$dato_usuario['idu'];
							bd_update($up,$_tabla_pref.$_tabla_date,array('idop'=>$_id_operacion),$link,true,false);
				}
				else //proceso correcto.
				{ 
						
						
						
						//actualizo operacion
						unset($up);
						$up['op_estado']=3; // HECHO
						$up['op_resultado']=1; // REGISTRO_OK
						$up['usuario_fecha_registro']=$fxdatetime;
						$up['money']=(-$_coste_mt);
						$up['op_what']='SOLICITUD_DE_SUBS';
						$up['accion']='REGISTRO_NUEVO_OK_ENVIADO_WELCOME_SMS_Y_BILLING';
						$up['fecha_processing']=date("Y-m-d H:i:s"); // HECHO
						$up['idu']=$_idusuario;
						bd_update($up,$_tabla_pref.$_tabla_date,array('idop'=>$_id_operacion),$link,true,false);
						
						//----- activo al usuario en la plataforma ----------------------------------------------------------------
						$url_web='http://www.gomifun.com/web/api/newuser.php?phone='.$_msisdn.'&p='.$pass_access.'&idu='.$_idusuario;
						$opts=array('http'=> array( 'method' => 'GET', 'header'=> 'Content-type: text/html' ) );
						$context=stream_context_create($opts);
						$aux_web=@file_get_contents($url_web,false,$context);   
						
						//echo $url_web; echo "\n"; var_dump($aux_web);
						//realizo la peticion de billing
						$fxtimestamp_billing=time();
						$fxdatetime_billing=date("Y-m-d H:i:s",$fxtimestamp_billing);
						$_tabla_date=date("dmY",$fxtimestamp_billing);
						unset($in);
						$in['tipo_op']=1; //BILLING
						$in['network']=$_network;
						$in['tipo_notificacion']=3; //BILLING
						$in['op_estado']=1; //EN_PROCESO (para que no tome esta operación el procesado de cola)
						$in['op_fecha']=$fxdatetime_billing;
						$in['op_fechatime']=$fxtimestamp_billing;
						$in['msisdn']=$_msisdn;
						$in['idu']=$_idusuario;
						$in['op_what']='COBRAR';
						$in['idop_ref']=$_tabla_date.'.'.$_id_operacion;
						$in['usuario_fecha_registro']=$fxdatetime;
						$in['opcobrar_en_fecha']=$fxdatetime_billing;
						$in['opcobrar_cantidad']=$_cost;
						$in['opcobrar_numintento']=1; 
						$in['source']=$_numsource; 
						$_id_new_operacion=bd_insert($in,$_tabla_pref.$_tabla_date,$link,true,false);
						mira_do_bill_bytable($_id_new_operacion,$_bulk_username_b,$_msisdn,$_idusuario,$_cost,$_password,$_tabla_pref,$_tabla_date,$_network);  
						  
						//---- marco pixel de conversión
					    if ($_idtrack!='') 
						{
							unset($mp);
							//$mp['url']='http://p.bugioffers.com/?cx=LyPbZTAn53HK5GcHb3gJSc5kwpgAVZCokhy94iu1ARY=&cdgc='.$_idtrack.'&subid='.$_idusuario;
							$mp['cx']='LyPbZTAn53HK5GcHb3gJSc5kwpgAVZCokhy94iu1ARY=';
							$mp['cdgc']=$_idtrack;
							$mp['subid']=$_idusuario;
							$mp['fecha']=date("Y-m-d H:i:s");
							bd_insert($mp,'suscripcion_cola_pixels',$link,true,false);    
							/*
							$url_web='http://p.bugioffers.com/?cx=LyPbZTAn53HK5GcHb3gJSc5kwpgAVZCokhy94iu1ARY=&cdgc='.$_idtrack.'&subid='.$_idusuario;
							$opts=array('http'=> array( 'method' => 'GET', 'header'=> 'Content-type: text/html' ) );
							$context=stream_context_create($opts);
							$aux=@file_get_contents($url_web,false,$context);
							*/ 
							  
						}
				}//fin else
		}//fin usuario no existe
		//El usuario existe pero ya no está suscrito
		elseif (($dato_usuario!==false) && ($dato_usuario['suscrito']>1)) 
		{
				//EL USUARIO tiene el contenido BLOQUEADO (ocurre cuando se desuscribió en algún momento y llegó la notificación de además bloqueo de contenido por operador) NO SE HACE NADA
				if ($dato_usuario['user_content_blocked']==1)
				{
						//actualizo operacion
						unset($up);
						$up['op_estado']=3; //HECHO
						$up['op_resultado']=2; // USUARIO_EN_BD_Y_BLOQUEADO
						$up['op_what']='SOLICITUD_DE_SUBS';
						$up['accion']='NADA:USUARIO_EN_BD_Y_BLOQUEADO';
						$up['error_txt']='Usuario ya suscrito';
						$up['usuario_fecha_registro']=$dato_usuario['fecha_alta'];
						$up['idu']=$dato_usuario['idu'];
						bd_update($up,$_tabla_pref.$_tabla_date,array('idop'=>$_id_operacion),$link,true,false);
				}
				//EL USUARIO reclamó la baja y el dinero, con lo que NO hago nada.
				elseif ($dato_usuario['bloqueo_por_reclamacion']==1)
				{
						//actualizo operacion
						unset($up);
						$up['op_estado']=3; //HECHO
						$up['op_resultado']=2; // USUARIO_EN_BD_Y_BLOQUEADO
						$up['op_what']='SOLICITUD_DE_SUBS';
						$up['accion']='NADA:USUARIO_EN_BD_Y_BLOQUEADO_POR_RECLAMACION';
						$up['error_txt']='Usuario ya suscrito';
						$up['usuario_fecha_registro']=$dato_usuario['fecha_alta'];
						$up['idu']=$dato_usuario['idu'];
						bd_update($up,$_tabla_pref.$_tabla_date,array('idop'=>$_id_operacion),$link,true,false);
				}
				//EL USUARIO no tiene el contenido bloqueado, así que lo reactivo.
				else 
				{	
						$x=md5(uniqid(rand(),true));
						$pass_access=substr($x,0,rand(5,6));     
						
						//welcome to GOMIFUN. To support 0861106472. Your pass is PASS, click to web http://bit.ly/1rxhy95 R7/day. stop the service click http://bit.ly/1pyckba   
						$_text=str_replace(' ','+','Welcome Your pass is '.$pass_access.', click to web http://bit.ly/1rxhy95 GOMIFUN. To support 0861106472. R7/day. stop the service click http://bit.ly/1pyckba'); 
						$_clientref='OPWELCOME_'.$_tabla_date.'.'.$_id_operacion; //para trackear la notifificación en su respuesta DLR
						$md5=md5($_password.'username='.$_bulk_username_i.'&text='.$_text.'&msisdn='.$_msisdn.'&clientref='.$_clientref);
						$url='http://gateway.miranetworks.net/bulksms/v2?username='.$_bulk_username_i.'&text='.$_text.'&msisdn='.$_msisdn.'&clientref='.$_clientref.'&md5='.$md5;  
							$opts=array('http'=> array( 'method' => 'GET', 'header'=> 'Content-type: text/html' ) );
							$context=stream_context_create($opts);
							$aux=@file_get_contents($url,false,$context); 
							
						
						if (strpos($aux,'PROCESSING')===false) //proceso erroneo
						{
									unset($up);
									$up['op_estado']=2; // ERROR EN EL PROCESO DE REACTIVACION
									$up['op_what']='SOLICITUD_DE_SUBS';
									$up['accion']='INTENTO_ENVIAR_WELCOME_SMS_REACTIVACION ERROR_PROCESSING';
									$up['error_txt']=$aux;
									$up['idu']=$dato_usuario['idu'];
									bd_update($up,$_tabla_pref.$_tabla_date,array('idop'=>$_id_operacion),$link,true,false);
						}
						else //proceso correcto.
						{ 
								//añado al usuario a la base de datos de usuarios.
								$fxtimestamp=time();
								$fxdatetime=date("Y-m-d H:i:s",$fxtimestamp);
								$fecha_reminded = date("Y-m-d",strtotime ( '+30 day' , $fxtimestamp)) ;
								$bolsacobro=0;
								if ($_network==2) //si es MTN
								{
									if ($dato_usuario['fecha_date_ultimo_cobro']!=date("Y-m-d")) //si hoy no fue cobrado, entonces reseteo al usuario con R7
										$bolsacobro=$_cost;
									else
										$bolsacobro=0;  //hoy ya fue cobrado, entonces lo reseteo a 0.
								}//fin if
								
								//resuscribo al usuario
								unset($up);
								$up['intentos_cobros_hoy']=$dato_usuario['intentos_cobros_hoy']+1; 
								$up['bolsa_cobro']=$bolsacobro;
								$up['suscrito']=1;
								$up['activo']=1;
								$up['network']=$_network; //por si ha cambiado de network
								$up['fecha_alta']=$fxdatetime;
								$up['fecha_reminded']=$fecha_reminded;
								$up['idop_ref']=$_tabla_date.'.'.$_id_operacion;
								$up['idtrack']=$_idtrack;
								$up['money']=$dato_usuario['money']-$_coste_mt;
								$up['cobrado_en_el_dia_de_alta']=0;
								$up['fecha_baja']='0000-00-00 00:00:00';
								$up['registro_repetido']=$dato_usuario['registro_repetido'] + 1;
								bd_update($up,'mira_usuarios',array('idu'=>$dato_usuario['idu']),$link,true,false);
						
								//actualizo operacion
								unset($up);
								$up['op_estado']=3; //HECHO
								$up['op_resultado']=3; // USUARIO_EN_BD_Y_REACTIVADO
								$up['op_what']='SOLICITUD_DE_SUBS';
								$up['accion']='ENVIADO_WELCOME_SMS_REACTIVACION_Y_BILLING';
								$up['usuario_fecha_registro']=$fxdatetime;
								$up['fecha_processing']=date("Y-m-d H:i:s"); // HECHO
								$up['money']=(-$_coste_mt);
								$up['idu']=$dato_usuario['idu'];
								bd_update($up,$_tabla_pref.$_tabla_date,array('idop'=>$_id_operacion),$link,true,false);
								
								//reactivo al usuario en la plataforma
								$url_web='http://www.gomifun.com/web/api/active.php?idu='.$dato_usuario['idu'];
								$opts=array('http'=> array( 'method' => 'GET', 'header'=> 'Content-type: text/html' ) );
								$context=stream_context_create($opts);
								$aux_web=@file_get_contents($url_web,false,$context); 
								
								//realizo la peticion de billing
								if ($dato_usuario['fecha_date_ultimo_cobro']!=date("Y-m-d")) //solo realizo la petición si no fue ya cobrado este mismo día, para cualquier network.
								{
										$fxtimestamp_billing=time();
										$fxdatetime_billing=date("Y-m-d H:i:s",$fxtimestamp_billing);
										$_tabla_date=date("dmY",$fxtimestamp_billing);
										unset($in);
										$in['tipo_op']=1; //BILLING
										$in['network']=$_network;
										$in['tipo_notificacion']=3; //BILLING
										$in['op_estado']=1; //EN_PROCESO (para que no tome esta operación el procesado de cola)
										$in['op_fecha']=$fxdatetime_billing;
										$in['op_fechatime']=$fxtimestamp_billing;
										$in['msisdn']=$_msisdn;
										$in['idu']=$dato_usuario['idu'];
										$in['op_what']='COBRAR';
										$in['idop_ref']=$_tabla_date.'.'.$_id_operacion;
										$in['usuario_fecha_registro']=$fxdatetime;
										$in['opcobrar_en_fecha']=$fxdatetime_billing;
										$in['opcobrar_cantidad']=$_cost;
										$in['opcobrar_numintento']=1; 
										$in['source']=$_numsource;
										$_id_new_operacion=bd_insert($in,$_tabla_pref.$_tabla_date,$link,true,false);
										mira_do_bill_bytable($_id_new_operacion,$_bulk_username_b,$_msisdn,$dato_usuario['idu'],$_cost,$_password,$_tabla_pref,$_tabla_date,$_network);  
								 }//fin if			
						}//fin else proceso correcto
				}//fin else
		}//fin if
		//EL usuario ya está en la base de datos y suscrito (NO HAGO NADA)
		elseif (($dato_usuario!==false) && ($dato_usuario['suscrito']==1))
		{
				unset($up);
				$up['op_estado']=3; //HECHO
				$up['op_resultado']=4; // USUARIO_EN_BD_Y_SUSCRITO
				$up['op_what']='SOLICITUD_DE_SUBS';
				$up['accion']='NADA:USUARIO_EN_BD_Y_SUSCRITO';
				$up['error_txt']='Usuario ya suscrito';
				$up['idu']=$dato_usuario['idu'];
				bd_update($up,$_tabla_pref.$_tabla_date,array('idop'=>$_id_operacion),$link,true,false);  
		}//fin if
}//fin function alta



//notificación de una solicitud de cobro.
function flow_bill($datocola_dato,$_tabla_pref,$datocola_fecha)
{
	global $link, $_bulk_username_b, $_password, $_cost;
	
	$_peticion=json_decode($datocola_dato,true);
	
	$ref=$_peticion['clientref'];
	$_estado=$_peticion['status'];
	$_razon_error=$_peticion['reason'];   
	
	
	//'OPBILLING_'.$_tabla_date.'.'.$idop.'_'.$_idusuario;
	$aux=explode('_',$ref); //'NEWBILLING_'.$id_billing_'.$_idusuario.'
	$_idoperacion_ref=$aux[1];
	$_idusuario=$aux[2];
	$_network=$aux[3];
	$_cantidad_a_cobrar=number_format($aux[4]/100,2,'.','');
	
	$aux=explode('.',$_idoperacion_ref);
	$_idop_ref_tabla=$aux[0];
	$_idop_ref_id=$aux[1];
	
	
	
	//lo primero es comprobar si el usuario existe.
	$dato_usuario=bd_select('idu, fecha_alta, DATE(fecha_alta) as fa,  fecha_date_ultimo_cobro, phone, intentos_cobros_hoy, bolsa_cobro, source, money, num_cobros','mira_usuarios',array('idu'=>$_idusuario),$link,true,false);
	if ($dato_usuario===false) //el usuario NO existe
	{
		unset($up);
		$up['op_resultado']=2; //ERROR el usuario no existe en la base de datos
		$up['op_what']='BILLING ERROR USER NOT EXIST';
		$up['accion']='NADA';
		$up['error_txt']='EL USUARIO NO EXISTE';
		$up['notification_param']=$datocola_dato;
		bd_update($up,$_tabla_pref.$_idop_ref_tabla,array('idop'=>$_idop_ref_id),$link,true,false);
	}
	//el usuario existe
	else
	{
					$_msisdn=$dato_usuario['phone'];
					$fx=$dato_usuario['fecha_alta'];
					
					$nueva_fecha_date_ultimo_cobro=date("Y-m-d");
					
					//TENEMOS EXITO DE COBRO
					if ($_estado=='billing_complete')
					{  
							//Actualización del beneficio que ha generado ese cobro.
							$money=0;
							if ($_network==1) //vodacom
								$money= (-0.06) + (4.08); //coste envio vodacome + cobro
							elseif ($_network==2) //mtn
							{
									$money= (-0) + (3.80);	 //no hay coste envio (en 3 intentos) + cobro
									if ($_cantidad_a_cobrar==7) $money= (-0) + (3.80);	
									elseif  ($_cantidad_a_cobrar==6) $money= (-0) + (3.22);	 
									elseif  ($_cantidad_a_cobrar==5) $money= (-0) + (2.64);	
									elseif  ($_cantidad_a_cobrar==4) $money= (-0) + (2.06);	  
									elseif  ($_cantidad_a_cobrar==3) $money= (-0) + (1.48);	
									elseif  ($_cantidad_a_cobrar==2) $money= (-0) + (0.90);	
									elseif  ($_cantidad_a_cobrar==1) $money= (-0) + (0.31);	
									
									if ($dato_usuario['intentos_cobros_hoy']>9) //si lleva mas de 9 intentos (que puede ocurrir en los recobros, entonces tiene un coste) ( //parece que para mtn no hay límite si intento 9 veces: 6/6/2016)
									{	
										$money= (-0.06) + $money;	
									}
							}//fin elseif
							elseif ($_network==3) //cellc
								$money= (-0) + (3.57);		//no hay coste de envio + cobro
							elseif ($_network==4) //telkom
								$money= (-0) + (3.95);		//no hay coste de envio + cobro
							
							
							unset($up);
							$up['op_resultado']=1; // COBRO CON EXITO
							$up['fecha_respuesta']=date("Y-m-d H:i:s");
							$up['money']=$money;
							$up['op_what']='BILLING OK';
							$up['accion']=''; //inicializo por si hubo anteriormente un error
							$up['error_txt']='';//inicializo por si hubo anteriormente un error
							$up['notification_param']=$datocola_dato;
							bd_update($up,$_tabla_pref.$_idop_ref_tabla,array('idop'=>$_idop_ref_id),$link,true,false);
							
							//actualizo los datos del usaurio
							unset($up);
							$up['money']=$dato_usuario['money'] + $money;
							if ($nueva_fecha_date_ultimo_cobro==$dato_usuario['fa']) $up['cobrado_en_el_dia_de_alta']=1; //si la fecha de cobro == a la fecha de alta, lo marco como usuario cobrado en el día de alta. 
							$up['fecha_date_ultimo_cobro']=$nueva_fecha_date_ultimo_cobro;
							
							$up['num_cobros']=$dato_usuario['num_cobros'] + 1;
							if ($_network==2)//MTN actualizo la bolsa de cobro.
								$up['bolsa_cobro']=$dato_usuario['bolsa_cobro'] - $_cantidad_a_cobrar;
							bd_update($up,'mira_usuarios',array('idu'=>$dato_usuario['idu']),$link,true,false); 
							
							if (($datocola_fecha=='') || (strtotime($datocola_fecha) >= mktime(0,0,1,9,16,2016)))
							{
									//SI ES MTN, Y TIENE MÁS DINERO PARA COBRAR EN LA BOLSA DE COBRO, ENTONCES LO VUELVO A INTENTAR A COBRAR.  añadido el 6/6/2016
									if (($_network==2) && ($dato_usuario['intentos_cobros_hoy'] < 9))
									{	
												$bolsa_cobro = $dato_usuario['bolsa_cobro'] - $_cantidad_a_cobrar;  //lo que le quedaría en la bolsa después del cobro con éxito.   
												if ($bolsa_cobro > 0) //hay más dinero para cobrar.
												{
															$cobrar_nuevo=$_cost; // 7.00 lo maximo que puedo cobrar.  
															if ($bolsa_cobro < $cobrar_nuevo) $cobrar_nuevo=$bolsa_cobro; //si queda menos en la bolsa de 7R, entonces cobraré lo que quede en la bolsa.
															//por defecto los intentos de cobro son de 7. si en ese caso fue un intento de cobro de 4 con éxito, es porque falló con 7, entonces a poco, si en la bolsa solo tenía 7
															//estarían quedándole 3  = 7 - 4, si no consiguió cobrarle 7, ¿cómo va a intentar cobrar 3 de forma seguida? estaría intentnado cobrar 4 + 3 de forma seguida, que serían 7.
															//entonces lo que hago es que si el intento de cobro con éxito fue < 7 , el nuevo intento de cobro tiene que ser menor que lo que acaba de cobrar y su suma con lo nuevo a cobrar no puede ser 7.
															if ($_cantidad_a_cobrar==7) 
															{
																	//añado un nuevo cobro.
																	//realizo la peticion de billing
																	$fxtimestamp_billing=time();
																	$fxdatetime_billing=date("Y-m-d H:i:s",$fxtimestamp_billing);
																	$_tabla_date=date("dmY",$fxtimestamp_billing);
																	unset($in);
																	$in['tipo_op']=1; //BILLING
																	$in['network']=$_network;
																	$in['tipo_notificacion']=3; //BILLING
																	$in['op_estado']=1; //EN_PROCESO (para que no tome esta operación el procesado de cola)
																	$in['op_fecha']=$fxdatetime_billing;
																	$in['op_fechatime']=$fxtimestamp_billing;
																	$in['msisdn']=$_msisdn;
																	$in['idu']=$dato_usuario['idu'];
																	$in['op_what']='COBRAR';
																	//$in['idop_ref']=$_tabla_date.'.'.$_id_operacion;
																	$in['usuario_fecha_registro']=$dato_usuario['fecha_alta'];
																	$in['opcobrar_en_fecha']=$fxdatetime_billing;
																	$in['opcobrar_cantidad']=$cobrar_nuevo;
																	$in['opcobrar_numintento'] = $dato_usuario['intentos_cobros_hoy'] + 1; 
																	$in['source']=$dato_usuario['source'];
																	$_id_new_operacion=bd_insert($in,$_tabla_pref.$_tabla_date,$link,true,false);
																	mira_do_bill_bytable($_id_new_operacion,$_bulk_username_b,$_msisdn,$dato_usuario['idu'],$cobrar_nuevo,$_password,$_tabla_pref,$_tabla_date,$_network);  
																	
																	unset($up);
																	$up['intentos_cobros_hoy']=$dato_usuario['intentos_cobros_hoy'] + 1;
																	bd_update($up,'mira_usuarios',array('idu'=>$dato_usuario['idu']),$link,true,false); 
															}
															else //si es exito, pero está en este caso es que fue un cobro menos de 7 (porque no tendría más dinero), entonces programaré otro cobro inicializado al maximo a otra  hora, porque si es el caso, habríamos cobrado con éxito 4R y probar a cobrar 3R sería tonto porque 4R + 3R serían 7R que fue lo que no consiguió cobrar.
															{ //esntonces se programará para las 12 y 20 horas.
																		
																		if (date("H") < 12) //probaré a las 12  significará que cobré a las 9.
																			$hora_nueva=12;	  
																		elseif (date("H") < 20) //probaré a las 20 
																			$hora_nueva=20;
																		else
																			$hora_nueva=24; //para parar el cobro.   
																		
																		if ($hora_nueva < 24)
																		{
																				if (strlen($hora_nueva)==1) $hora_nueva='0'.$hora_nueva;
																				$fecha_programada=date("Y-m-d ".$hora_nueva.":00:00"); 
																				
																				unset($in);
																				$in['fechatime_cobro']=$fecha_programada;
																				$in['idu']=$dato_usuario['idu'];
																				$in['network']=$_network;
																				$in['msisdn']=$_msisdn;
																				$in['usuario_fecha_registro']=$dato_usuario['fecha_alta'];
																				$in['cobrar_cantidad']=$cobrar_nuevo;
																				$in['opcobrar_numintento'] = $dato_usuario['intentos_cobros_hoy'] + 1; 
																				$in['source']=$dato_usuario['source'];
																				$in['prioridad']='1000000'; //le doy una prioridad muy baja, para que tenga prioridad alguna otra programación de vodacome u otra cosa.
																				$_idcobro_programado=bd_insert($in,'mira_cobros_programados',$link,true,false);
																				
																				unset($up);
																				$up['intentos_cobros_hoy']=$dato_usuario['intentos_cobros_hoy'] + 1;
																				bd_update($up,'mira_usuarios',array('idu'=>$dato_usuario['idu']),$link,true,false); 
																		}//fin if
															}//fin else
														
												}//fin hoy hay mas dinero para cobrar
											
									}//fin if mtn y aun posibilidad de intentos para cobrar.
							}
				}//fin if EXITO DE COBRO
					// FALLO EN EL COBRO	
					else 
					{
									//marco si el fallo de cobro ha tenido un coste.
									$money=0;
									if ($_network==1) //vodacom
										$money='-0.10'; //coste de error
									elseif (($_network==2) && ($dato_usuario['intentos_cobros_hoy']>9)) //esta puesto así por los recobros de dias anteriores. (cambiado a número de intetos a 9 dicho por niel 6.6.2016
										$money='-0.06'; //coste de error
									
									//miro el tipo de error.
									if ((stripos($_razon_error,'not_subscribed')!==false) || (stripos($_razon_error,'content_billing_blocked')!==false) ||  (stripos($_razon_error,'blocked')!==false)   ||  (stripos($_razon_error,'locked')!==false)) //el usuario ya no debería estar suscrito
									{
											//desuscribo al usuario.
											unset($up);
											$up['suscrito']=4;
											$up['activo']=0;
											$up['fecha_baja']=date("Y-m-d H:i:s");
											$up['money']=$dato_usuario['money'] + $money;
											//si ha bloqueado el contenido desde operador para que no sea cobrado más..
											if  ((stripos($_razon_error,'content_billing_blocked')!==false)  ||  (stripos($_razon_error,'blocked')!==false) ||  (stripos($_razon_error,'locked')!==false))
												$up['user_content_blocked']=1;
											bd_update($up,'mira_usuarios',array('idu'=>$dato_usuario['idu']),$link,true,false); 
											
											//actualizo la operación
											unset($up);
											$up['op_resultado']=3; // ERROR en le cobro El usuario ya no debería estar suscrito.
											$up['fecha_respuesta']=date("Y-m-d H:i:s");
											$up['money']=$money;
											$up['op_what']='BILLING ERROR NOT SUBSCRIBED';
											$up['accion']='DADO DE BAJA';
											$up['error_txt']=$_razon_error;
											$up['notification_param']=$datocola_dato;
											bd_update($up,$_tabla_pref.$_idop_ref_tabla,array('idop'=>$_idop_ref_id),$link,true,false);
											
											//elimino los cobros programados.
											@mysql_query("delete from mira_cobros_programados where idu='".$dato_usuario['idu']."'",$link);
											
											//desactivo al usuario de la plataforma.
											$url_web='http://www.gomifun.com/web/api/desactive.php?idu='.$dato_usuario['idu'];
											$opts=array('http'=> array( 'method' => 'GET', 'header'=> 'Content-type: text/html' ) );
											$context=stream_context_create($opts);
											$aux=@file_get_contents($url_web,false,$context); 
											
									}//FIN error de billling por no subscrito
									// ERROR BILLING por FONDOS INSUFICIENTES
									else
									{
												//actualizo la operación
												unset($up);
												$up['op_resultado']=4; // ERROR en le cobro fondos insuficientes
												$up['fecha_respuesta']=date("Y-m-d H:i:s");
												$up['money']=$money;
												$up['op_what']='BILLING ERROR FOUNDS';
												$up['accion']='';
												$up['error_txt']=$_razon_error;
												$up['notification_param']=$datocola_dato;
												bd_update($up,$_tabla_pref.$_idop_ref_tabla,array('idop'=>$_idop_ref_id),$link,true,false);
												
												//actualizo el monedero del usaurio
												if ($money>0) //sin es vodacome o el caso de que mtn sean más intentos. 
												{
													unset($up);
													$up['money']=$dato_usuario['money'] + $money;
													bd_update($up,'mira_usuarios',array('idu'=>$dato_usuario['idu']),$link,true,false); 
												}//fin if
												if (($datocola_fecha=='') || (strtotime($datocola_fecha) >= mktime(0,0,1,9,16,2016)))
												{
														//si no ha podido cobrar por fondos insuficientes, y es MTN y el número de intentos es <3, programo una nueva hora de cobro.	
														if  (($_network==2) && ($dato_usuario['intentos_cobros_hoy'] < 9)) //(cambiado a número de intetos a 9 dicho por niel 6.6.2016
														{ 
																		//si HA FALLADO, miro cuanto le intenté cobrar. si es 7 entonces probaré con 4 y si era 4, entonces probaré con 3. si era 5, probaré con 3 (este último, quizás fruto de lo que quedaba en la bolsa por cobrar)
																		if (($_cantidad_a_cobrar>=4))
																		{
																				if ($_cantidad_a_cobrar==7) $nuevo_cobro=4;
																				elseif  ($_cantidad_a_cobrar==6) $nuevo_cobro=4; //porque quedara eso en la bolsa por cobrar
																				elseif  ($_cantidad_a_cobrar==5) $nuevo_cobro=4; //porque quedara eso en la bolsa por cobrar
																				elseif  ($_cantidad_a_cobrar==4) $nuevo_cobro=3; //
																				
																				//añado un nuevo cobro.
																				//realizo la peticion de billing
																				$fxtimestamp_billing=time();
																				$fxdatetime_billing=date("Y-m-d H:i:s",$fxtimestamp_billing);
																				$_tabla_date=date("dmY",$fxtimestamp_billing);
																				unset($in);
																				$in['tipo_op']=1; //BILLING
																				$in['network']=$_network;
																				$in['tipo_notificacion']=3; //BILLING
																				$in['op_estado']=1; //EN_PROCESO (para que no tome esta operación el procesado de cola)
																				$in['op_fecha']=$fxdatetime_billing;
																				$in['op_fechatime']=$fxtimestamp_billing;
																				$in['msisdn']=$_msisdn;
																				$in['idu']=$dato_usuario['idu'];
																				$in['op_what']='COBRAR';
																				//$in['idop_ref']=$_tabla_date.'.'.$_id_operacion;
																				$in['usuario_fecha_registro']=$dato_usuario['fecha_alta'];
																				$in['opcobrar_en_fecha']=$fxdatetime_billing;
																				$in['opcobrar_cantidad']=$nuevo_cobro;
																				$in['opcobrar_numintento']= $dato_usuario['intentos_cobros_hoy'] + 1 ; 
																				$in['source']=$dato_usuario['source'];
																				$_id_new_operacion=bd_insert($in,$_tabla_pref.$_tabla_date,$link,true,false);
																				mira_do_bill_bytable($_id_new_operacion,$_bulk_username_b,$_msisdn,$dato_usuario['idu'],$nuevo_cobro,$_password,$_tabla_pref,$_tabla_date,$_network);  
																				
																				unset($up);
																				$up['intentos_cobros_hoy']=$dato_usuario['intentos_cobros_hoy'] + 1;
																				bd_update($up,'mira_usuarios',array('idu'=>$dato_usuario['idu']),$link,true,false); 
																				
																		}//fin if
																		//si HA FALLADO y el intento era con 3 o menos, entonces probaré a las 12 o a las 20 horas. inicializando el maximo cobro posible.
																		else
																		{	
																				$bolsa_cobro=$dato_usuario['bolsa_cobro'];    
																				if ($bolsa_cobro > 0) //hay más dinero para cobrar.
																				{
																							$cobrar_nuevo=$_cost; // 7.00 lo maximo que puedo cobrar.  
																							if ($bolsa_cobro < $cobrar_nuevo) $cobrar_nuevo=$bolsa_cobro; //si queda menos en la bolsa de 7R, entonces cobraré lo que quede en la bolsa.
																							
																							//si el usuario no se registró hoy, entonces programaré para las 12 y 20 horas. porque si ha FALLADO el cobro  es porque se inició a las 9:00
																							if ($dato_usuario['fa']!=date("Y-m-d"))
																							{
																									if (date("H") < 12) //probaré a las 12  
																										$hora_nueva=12;	 
																									elseif (date("H") < 20) //probaré a las 20 
																										$hora_nueva=20;
																									else 
																										$hora_nueva=24; //esto es para que pare.
																							}//fin if
																							else //será un usuario registrado HOY, así que probaré más tarde.
																							{
																									$hora=date("H");
																									$hora_alta=date("H",strtotime($dato_usuario['fecha_alta']));
																									if ($hora_alta <= 5)  //ha fallado el primer cobro de 00 a 5am
																									{
																										if ($hora <= 5) $hora_nueva=9; //siguiente hora.
																										elseif ($hora <= 9)  $hora_nueva=12;
																										else $hora_nueva=24; //no programaré más.
																									}
																									elseif ($hora_alta <= 9) //el primer cobro fue de 6-9
																									{
																										if ($hora <= 9)  $hora_nueva=12;
																										elseif ($hora <= 12)  $hora_nueva=20;
																										else $hora_nueva=24; //no programaré más.
																									}
																									elseif  ($hora_alta <= 12)  //el primer cobro fue de 10-12
																									{
																										if ($hora <= 12)  $hora_nueva=17;
																										elseif ($hora <= 17)  $hora_nueva=20;
																										else $hora_nueva=24; //no programaré más.
																									}
																									elseif  ($hora_alta <= 15)  //el primer cobro fue de 13 a 16
																									{
																										if ($hora <= 15)  $hora_nueva=17;
																										elseif ($hora <= 17)  $hora_nueva=20;
																										else $hora_nueva=24; //no programaré más.
																									}
																									elseif  ($hora_alta <= 18)  //el primer cobro fue de 16 a 18
																									{
																										if ($hora <= 18)  $hora_nueva=20;
																										elseif ($hora <= 20)  $hora_nueva=22;
																										else $hora_nueva=24; //no programaré más.
																									}
																									elseif  ($hora_alta <= 20)  //el primer cobro fue de 19 a 20
																									{
																										if ($hora <= 20)  $hora_nueva=21;
																										elseif ($hora <= 21)  $hora_nueva=22;
																										else $hora_nueva=24; //no programaré más.
																									}
																									elseif  ($hora_alta <= 22)  //el primer cobro fue de 21 a 22
																									{
																										if ($hora <= 22)  $hora_nueva=23;    
																										else $hora_nueva=24; //no programaré más.
																									}
																									else
																										$hora_nueva=24; //inicializo
																							}//fin else
																							
																							if ($hora_nueva<24) 
																							{
																								if (strlen($hora_nueva)==1) $hora_nueva='0'.$hora_nueva;
																								$fecha_programada=date("Y-m-d ".$hora_nueva.":00:00");
																								
																								unset($in);
																								$in['fechatime_cobro']=$fecha_programada;
																								$in['idu']=$dato_usuario['idu'];
																								$in['network']=$_network;
																								$in['msisdn']=$_msisdn;
																								$in['usuario_fecha_registro']=$dato_usuario['fecha_alta'];
																								$in['cobrar_cantidad']=$cobrar_nuevo;
																								$in['opcobrar_numintento'] = $dato_usuario['intentos_cobros_hoy'] + 1; 
																								$in['source']=$dato_usuario['source'];
																								$in['prioridad']='1000000'; //le doy una prioridad muy baja, para que tenga prioridad alguna otra programación de vodacome u otra cosa.
																								$_idcobro_programado=bd_insert($in,'mira_cobros_programados',$link,true,false);
																								
																								unset($up);
																								$up['intentos_cobros_hoy']=$dato_usuario['intentos_cobros_hoy'] + 1;
																								bd_update($up,'mira_usuarios',array('idu'=>$dato_usuario['idu']),$link,true,false); 
																								
																							}//fin if
																				}//fin if
																		}//fin else
														}//fin if
														//si no ha podido cobrar por fondos insuficientes, y es CELLC pruebo a cobrat en una hora. puesto que Cellc no cobra los intentos. Puesto el 6.6.2016
														elseif ($_network==3)  
														{		
																$hora=date("H");
																//$hora_nueva=$hora+1;   
																
																$hora_nueva=24;    
																if ($hora <= 9 ) $hora_nueva = 10;
																elseif ($hora == 10) $hora_nueva = 11;
																elseif ($hora == 11) $hora_nueva = 13;
																elseif ($hora == 12) $hora_nueva = 13;
																elseif ($hora == 13) $hora_nueva = 14;
																elseif ($hora == 14) $hora_nueva = 16;
																elseif ($hora == 15) $hora_nueva = 16;
																elseif ($hora == 16) $hora_nueva = 17;
																elseif ($hora == 17) $hora_nueva = 18;
																elseif ($hora == 18) $hora_nueva = 19;
																elseif ($hora == 19) $hora_nueva = 21;
																elseif ($hora == 20) $hora_nueva = 21;
																elseif ($hora == 21) $hora_nueva = 24; //no ejecutará nada, pero el reset inicializaar el conteo a 00:00
																elseif ($hora == 22) $hora_nueva = 24; //no ejecutará nada, pero el reset inicializaar el conteo a 00:00
																elseif ($hora == 23) $hora_nueva = 24; //no ejecutará nada, pero el reset inicializaar el conteo a 00:00    
																
																if ($hora_nueva<24)  
																{
																	if (strlen($hora_nueva)==1) $hora_nueva='0'.$hora_nueva;  
																	$fecha_programada=date("Y-m-d ".$hora_nueva.":00:00");    
																	
																	unset($in);
																	$in['fechatime_cobro']=$fecha_programada;
																	$in['idu']=$dato_usuario['idu'];
																	$in['network']=$_network;
																	$in['msisdn']=$_msisdn;
																	$in['usuario_fecha_registro']=$dato_usuario['fecha_alta'];
																	$in['cobrar_cantidad']=$_cost;
																	$in['opcobrar_numintento'] = $dato_usuario['intentos_cobros_hoy'] + 1; 
																	$in['source']=$dato_usuario['source'];   
																	$in['prioridad']='1000000'; //le doy una prioridad muy baja, para que tenga prioridad alguna otra programación de vodacome u otra cosa.
																	$_idcobro_programado=bd_insert($in,'mira_cobros_programados',$link,true,false);
																	
																	unset($up);
																	$up['intentos_cobros_hoy']=$dato_usuario['intentos_cobros_hoy'] + 1;
																	bd_update($up,'mira_usuarios',array('idu'=>$dato_usuario['idu']),$link,true,false); 
																	
																	
																}//fin if
														}//fin if
												}
									}//fin else
									//--------
					}//fin if fallo en el cobro
	}//fin else usuario existe.
}//fin function

	
?>