Etiquetas

Acer (1) Administrador (45) adobe (1) almacenamiento (2) Android (6) Apache (5) Apple (53) Apple Tv (3) Apps (4) AppStore (2) Articulos (36) ArtTech (3) Aspel (1) Asus (8) Audio (5) Bases de Datos (5) BlackBerry (5) Boot (8) BusinessIntelligence (4) CIO (4) CMS (2) Conmutador (4) Consola (17) CONTPAQi (1) Cydia (2) Debian (4) Diagnostico (22) Disco Duro (12) Diseño grafico (3) DIY (4) Drivers (3) ecommerce (3) electronica (4) Email (2) Excel (5) Facebook (2) Firewall (12) Forticlient (4) Fortinet (7) FTA (5) Ftp (4) Gadgets (47) google (5) googledocs (1) Hardware (63) Hp (3) HTML (2) Impresoras (7) Intel (6) IOS (28) Ipad (23) Iphone (27) Ipod (22) ITunes (14) Joomla (6) Kernel (2) LAMP (7) Laptop (24) Libro (3) Linux (24) Mac (22) Manuales (12) Microsip (4) Microsoft (13) Mods (7) MotherBoards (16) moviles (17) Mysql (2) Nagravision (3) Netbook (10) Noticias (4) Noticias. (12) Nube (11) Ocio (4) Office (9) Opensource (17) OS (1) Osx (22) Outlook (2) Pantallas (3) Perl (1) pgsql (1) Php (7) Programacion (4) publicidad (2) Red (45) Redes Sociales (8) Reparacion (21) Rss (1) satellite (4) Seguridad (9) Server (31) Servicio (10) Shell (12) Smartphones (10) Sofware (63) spam (1) Sql (2) SSH (4) Syslinux (5) Tablets (14) Teclado (3) Telefonia (11) transponder (3) Trucos (59) Ubuntu (8) unix (6) Usb (7) Video (8) virtuemart (1) Virus (3) Vista (6) Voz (3) Vpn (6) Wallpaper (1) web (18) Webmin (1) Wifi (7) Win7 (18) Windows (48) x64 (9) Youtube (3)
Mostrando entradas con la etiqueta Sql. Mostrar todas las entradas
Mostrando entradas con la etiqueta Sql. Mostrar todas las entradas

sábado, 21 de mayo de 2011

PhpMailer - Language string failed to load: from_failedroot@localhost.local

Este codigo de error generado por la libreria phpMailer se debe a que no registra o encuentra la direccion del remitente, la cual verifica su existencia. no basta con poner loquesea@midominio.com. Para esto ponga los valores correctos en los punteros ->From     y ->FromName como se muestra en el siguiente ejemplo:

<?
//Roman E. Herrera Coronado

require "class.phpmailer.php";

 include("config.php");



 $mail = new phpmailer();

  //Definimos las propiedades y llamamos a los métodos
  //correspondientes del objeto mail

  //Con PluginDir le indicamos a la clase phpmailer donde se
  //encuentra la clase smtp que como he comentado al principio de
  //este ejemplo va a estar en el subdirectorio includes
  //$mail->PluginDir = "includes/";

  //Con la propiedad Mailer le indicamos que vamos a usar un
  //servidor smtp
  $mail->Mailer = "smtp";

  //Asignamos a Host el nombre de nuestro servidor smtp
  $mail->Host = "smtp.midominio.com.mx";

  //Le indicamos que el servidor smtp requiere autenticación
  $mail->SMTPAuth = true;

  //Le decimos cual es nuestro nombre de usuario y password
  $mail->Username = "roman@midominio.com.mx";
  $mail->Password = "mipass";

  //Indicamos cual es nuestra dirección de correo y el nombre que
  //queremos que vea el usuario que lee nuestro correo
  $mail->From = "roman@midominio.com.mx";
  $mail->FromName = "Intranet ";


  //el valor por defecto 10 de Timeout es un poco escaso dado que voy a usar
  //una cuenta gratuita, por tanto lo pongo a 30 
  $mail->Timeout=30;

  //Indicamos cual es la dirección de destino del correo

  $mail->AddAddress("destino@midominio.com.mx");



 

  //Asignamos asunto y cuerpo del mensaje
  //El cuerpo del mensaje lo ponemos en formato html, haciendo
  //que se vea en negrita
  $mail->Subject = "Mi Asunto";
 
  $mail->Body = "Mi mensaje de correo";
  //Definimos AltBody por si el destinatario del correo no admite email con formato html 


  $mail->AltBody = "Solicitud de Requerimiento para la sucursal ".$m12;

  //se envia el mensaje, si no ha habido problemas
  //la variable $exito tendra el valor true
  $exito = $mail->Send();

  //Si el mensaje no ha podido ser enviado se realizaran 4 intentos mas como mucho
  //para intentar enviar el mensaje, cada intento se hara 5 segundos despues
  //del anterior, para ello se usa la funcion sleep    


  $intentos=1;
  while ((!$exito) && ($intentos < 5)) {
    sleep(5);
         //echo $mail->ErrorInfo;
         $exito = $mail->Send();
         $intentos=$intentos+1;   
   
   }

       
   if(!$exito)
   {
    echo "Problemas enviando correo electrónico a ".$valor;
    echo "<br/>".$mail->ErrorInfo;   
   }
   else
   {
    echo "Mensaje enviado correctamente";
   }
   
   
   

echo "&ERROR=1&";



?>

jueves, 17 de marzo de 2011

Microsip - Solucion al error de costeo en polizas de Inventario


Hace unos dias, que se lleva presentando un error en los meses de enero y febrero al intentar generar las polizas del modulo de inventarios 2010, con el mensage de error :

"No es posible generar polizas debido a que existen movimientos pendientes de asignar costo en el periodo inidicado" 

Pese a que se revisaron los movimientos de los dias, no se detecto ninguna anomalia e incluso se ejecuto la herramienta de recalcular costos, pero no hubo exito, todos los articulos tenian costo y ningun documento (entrada o Salida) estaba en Cero, a exepcion de unas ventas de mostrador, pero estas ya se encontraban contabilizadas, por lo que no era probable que estas ocasionen el error, debido a que los movimientos contabilizados se ignoran al crear las polizas. 

Despues de un rato de analizar y revisar la informacion desde la interfaz del microsip y no encontrar solucion, no me quedo mas remedio, que desensamblar el programa con el PE Explorer para revisar en su estructura , el origen del mensaje de error.
Y despues de revisar el codigo fuente del modulo de inventarios, me encuentro con este codigo, el cual me dice lo que verifica y de alli obtengo la solucion, la cual es que un codigo, aparentemente por error del mismo microsip esta marcado, con costeo pendiente, en la tabla DOCTOS_IN_DET por lo que la solucion es localizar dichos codigos y en ese campo remplazar el 'S' por el 'N', para eso abrimos el IBexpert para conectarnos a la base de datos y ejecutar el siguiente SQL:


SELECT * FROM DOCTOS_IN_DET A WHERE
A.fecha='12.01.2011'
AND A.costeo_pend='S'


Despues de asegurarnos que no hay registros pendientes de asignar costo, procedemos a crear las polizas desde el modulo de inventarios, com originalmente, se hizo y con lo anterior, queda solucionado el problema.