Bienvenidos

Este blog es un espacio creado por Daptech S.R.L destinado a compartir nuestras experiencias en tecnología y resolución de problemas con la comunidad. Aquí podrá encontrar tutoriales, tips and tricks, howtos, resolución a problemas típicos y frecuentes. Todo estos conocimientos fueron adquiridos en el día a día del desarrollo de nuestras labores profesionales. Esperamos disfruten de leer los contenidos tanto o mas que nosotros al escribirlos. Los que hacemos daptech info@daptech.com.ar

Friday, March 30, 2012

Factura Electronica Digito Verificador codigo de barras

El siguiente fragmento de código se puede utilizar para calcular el Dígito verificador empleado para el código de barras de las Facturas Electrónicas de AFIP para Argentina.


Esperamos sea de utilidad

  1. /**
  2. *
  3. * @param txtCuit CUIT del EMISOR del comprobante sin guiones
  4. * @param txtCodComp codigo de comprobantes dos digitos
  5. * @param txtPtoVta punto de venta del comprobante 4 digitos
  6. * @param txtCae cae
  7. * @param txtVtoCae vencimiento del cae en formato yyyyMMdd
  8. * @return devuelve el string completo para utilizar en el codigo de barras
  9. */
  10. public String calculoDigitoVerificador(String txtCuit, String txtCodComp,
  11. String txtPtoVta, String txtCae, String txtVtoCae) {
  12. int i;
  13. String cod;
  14. String txtDigito;
  15. int impares;
  16. int pares;
  17. int total;
  18. int digito;
  19. String txtCodBarra;
  20. cod = txtCuit + txtCodComp + txtPtoVta + txtCae + txtVtoCae;
  21. txtCodBarra = cod;
  22. //
  23. // Ahora analizo la cadena de caracteres:
  24. // Tengo que sumar todos los caracteres impares y los pares
  25. pares = 0;
  26. impares = 0;
  27. for (i = 1; i < 40; i++) {
  28. //
  29. // If I Mod 2 = 0 Then
  30. if (i % 2 == 0) {
  31. // es par
  32. // Pares = Pares + CLng(Mid(Cod, I, 1))
  33. pares += Integer.valueOf(StringUtils.mid(cod, i - 1, 1));
  34. } else {
  35. // es impar
  36. // Impares = Impares + CLng(Mid(Cod, I, 1))
  37. impares += Integer.valueOf(StringUtils.mid(cod, i - 1, 1));
  38. }
  39. }
  40. //
  41. impares = 3 * impares;
  42. total = pares + impares;
  43. digito = 10 - (total % 10);
  44. //
  45. if (digito == 10) {
  46. digito = 0;
  47. }
  48. return cod + digito;
  49. }

Tuesday, October 14, 2008

Jdeveloper 10g 10.1.3.4 + RichFaces 3.1.6

Jdeveloper 10.1.3.4 o jdeveloper 10g R3, utiliza OC4J r3, que tiene implementado JSF 1.1, utilizanco la implementacion de referencia de sun. Para utilizar RichFaces, hay que utilizar la version 3.1.6 que es la ultima versionq ue funciona con JSF 1.1, a partir de la version subsiguiente, hay que utilizar JSF 1.2, que seria ya con Jdeveloper 11g.
Hay que agregar las librearias de Richfaces, 
  • richfaces-api-3.1.6.GA.jar
  • richfaces-impl-3.1.6.GA.jar
  • richfaces-ui-3.1.6.GA.jar
Adicionalmente hay que agregar las siguientes librerias, reemplazando las que vienen con Jdeveloper, ya que estan desactualizadas
  • commons-beanutils-1.8.0.jar
  • commons-collections-3.2.1.jar
  • commons-digester-1.8.jar
  • commons-lang-2.4.jar
  • commons-logging-1.1.1.jar
Como tercer paso se deber crear una shared-library en oc4j con el parser XML xerces, para ello hay que logearse al Entreprise Managger, click en Administration. Alli click en Shared Libraries, luego en create. Asi invocamos al asistente de creacion de shared libraries, en la primera pantalla en Shared Library Name colocamos Xerces y en Shared Library Name 2.9.1 que es la ultima version de xerces. En la siguiente pantalla agragamos los dos jars que se listan a continuacion
  • xercesImpl.jar
  • xml-apis.jar
Hacemos click en finish y tenemos ya creada la shared library. 
De esta forma hemos agregado Xerces como parser xml disponible. lo que hay que hacer ahora es en nuestro proyecto de deploy de jdevloper agregar el archivo orion-application.xml y poner las siguientes lineas, 
  
para remover de nuestra applicacion el parser de xml, y las siguientes para importar la shared library de xerces que acabamos de crear
  

Por ultimo hay que descomprimir los tld dentro del directorio WEB-INF/tld y agregar las siguientes lineas en el web.xml.

De esta forma podemos desplegar en el OC4J StandAlone la aplicacion con richfaces



Saludos




Tuesday, August 19, 2008

Habilitrar Dependency Inyection en una aplicacion Web de Jdeveloper 10g

Para que funcione la inyeccion de dependencias en un proyecto Web, debemos utilizar la version 2.5 del api de servlets. Al momento de crear la aplicacion web, el archivo web.xml se configura para usar la version 2.4 con al siguiente linea



lo que hay que hacer es reemplazarla por


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

y listo tenemos funcionando la inyeccion de dependencias en la capa web de nuestra aplicacion

Saludos

Friday, March 7, 2008

Shortcuts en Netbeans 6.0

Navegando encontramos una pagina donde estan explicitados todos los shortcuts de netbeans 6.0. De a poco vamos a ir posteando los distntiso shortcuts para las distintas cosas que uno hace diariamente.
Vamos publicando en ingles, luego vamos a ir traducieondo.
Finding, Searching, and Replacing
Ctrl-Space Close/Open code completion
Ctrl-M Select next parameter
Shift-Space Enter space, no abbrev expansion
Alt-F1/Shift-F1 Display/search Javadoc
Ctrl-Shift-M Extract method
Alt-U, then G Prepend “get” to identifier
Alt-U, then S Prepend “set” to identifier
Alt-U, then I Prepend “is” to identifier
Ctrl-Backspace/Del Delete previous/current word
Ctrl-E Delete the current line
Ctrl-J, then S/E Start/end recording macro
Ctrl-Shift-J Insert internationalized string
Ctrl-NumPad - Collapse (hide) a block of code
Ctrl-NumPad + Expand a collapsed block of code
Ctrl-Shift-NumPad- Collapse all code blocks
Ctrl-Shift-NumPad+Expand all code blocks
Alt-Enter Show suggestion/tip/hint

Tuesday, March 4, 2008

Instalar la jdk 6 de sun en Ubuntu Gutsy(7.10)

Para instalar la JDK 6 de sun en ubuntu 7.10 o Ubuntu Gutsy. Lo que hay que hacer primero es
sudo apt-get install sun-java6-jdk sun-java6-plugin sun-java6-fonts
para bajar e instalar todos los paquetes necesarios.
Luego debemos hacer
sudo update-java-alternatives –set java-6-sun
Para que quede la jdk 6 como predeterminada.

para corroborar esto basta con hacer java -version desde una ventana de terminal lo que deberia devolver algo similar a
java version "1.6.0_03"
Java(TM) SE Runtime Environment (build 1.6.0_03-b05)
Java HotSpot(TM) Client VM (build 1.6.0_03-b05, mixed mode, sharing)

Espero les sirva.

Saludos

Monday, December 10, 2007

Reinstalar el soporte de php4 o php5 en apache sobre ubuntu

Muchas veces, luego de probar algunas cosas en servidores de prueba(apache), podemos encontrarnos con que de alguna mandear desconfiguramos el servidor y de repente no interpreta mas nuestros archivos php, ya sean de version 4 o version 5. Aqui detallo la solucion que al menos a mi me funciono en dos servidores.
Esto fue hecho sobre servidores ubuntu, 6.04 y 7.10
  1. Bajar el apache sudo /etc/init.d/apache2 stop
  2. Desinstlar todo lo relacionado con php, reemplazar la x por 4 o 5 segun se trate de php4 o php5
    1. sudo aptitude purge phpX-common phpX libapache2-mod-phpX
    2. sudo aptitude purge phpX-cli
    3. sudo aptitude purge phpX-cgi
    4. sudo aptitude purge phpX-mysql
  3. Volver a instalar los modulos correspondientes
    1. sudo aptitude install phpX-common phpX libapache2-mod-phpX
    2. sudo aptitude install phpX-cli
    3. sudo aptitude install phpX-cgi
    4. sudo aptitude install phpX-mysql
  4. seleccionar el modulo (php4 o php5) para habilitarlo a2enmod
  5. Antes de seguir, ir al browser que usamos y borrar el cache, ya que tal vez tenga algo en el mismo, y no nos muestre bien el php.
  6. en el directorio /var/www crear un archivo info.php con el siguiente contenido *
  7. Reiniciar apache sudo /etc/init.d/apache2 restart
  8. Ir al broser y abrir http://localhost/info.php
Con esto ya deberia quedar funcionando nuevamente apache + php

Saludos

*Contenido del archivo info.php

// Show all information, defaults to INFO_ALL
phpinfo();
?>

Monday, March 26, 2007

Deploy de Aplicaciones Win32 y CrystalReports

Para hacer el deployment de una aplicacion win32 que contiene Crystal Reports no basta con copiar las dlls del mismo al lado del exe. Para hacerlo hay que realizar los siguientes pasos.
Primero hay que bajar desde aqui los merge modules de Crystal Reports para Visual Studio 2005.
Una vez bajado descomprimiro en un directorio temporal.
Primero que todo debemos ir a la solucion que queremos hacer deploy, hacer boton derecho sobre el arhivo .sln y hacer click en add new project. Ahi aparecera el wizzard para agregar proyectos.


Alli en other projects elegimos setup and Deployment y luego clickeamos en setup Project con esto vamos a tener creado nuestro proyecto de deployment.
En el solution explorer podemos ver el proyecto nuevo, en nuestro caso DaptechERP.
Hacemos click con el boton derecho del mouse, add, y en el menu contextual que aparece elegimos proyect out put.

Luego donde dice proyect seleccionamos nuestro proyecto principal, por lo general el que es aplicacion windows FORMS, en nustro caso DaptechERPPL, luego elegimos primaryOutput.
Configuracion activa



Al dar click en OK, deberiamos ver la siguiente panatlla.


Ahi vemos que el proyecto instalador ha tomado las dependencias de nuestro proyecto principal, en nuestro caso DaptechERPPL. Luego tenemos que agregar el merge module de crystal reports, para ello debemos dar click con el boton derecho sobre el proyecto y elegir esta vez add merge module con lo que nos aparecera una pantalla como la siguiente. Alli tenemos que ir a la carpeta en la que descomprimimos el archivo bajado, y elegimos CrystalReportsRedist2005_x86.msm


Luego de dar open, solo restan agregar archivos de recursos que hagan falta, ico, .bmp,jpg, que no hayamos embebido en la aplicación.
Luego de que tenemos todo el set de archivos listo, damos click con el botón derecho sober el proyecto, build. y Listo, tenemos creado un .msi y un .setup que instalara nuestra aplicación con Crystal Reports funcionando.

Espero les sirva

Saludos

pd: agradecemos la inmensa ayuda de mi amigo horacio