domingo, 27 de diciembre de 2015

Total de ISV, VAT no sale igual en Dolibarr

Problema:

El dolibarr no muestra el total del impuesto sobre venta (ISV / VAT) de forma correcta, quita monedas en el impuesto.

Explicación:

Lo que sucede es que el sistema de dolibarr hace el cálculo con el precio unitario del producto. Y durante el proceso de cálculo de los totales va quitando los dígitos cuando son mayores a dos, es decir, solo toma dos dígitos después del punto.
El error que se cometió, es que esos dígitos no deberían ser quitados durante el proceso, sino hasta haber finalizado el proceso. Me explico, lo que debieron hacer es que una vez que ya hayan sacado los totales, quitarle los dígitos que están de más… y no quitarlos antes de sacar los totales. 

Solución: 

Buscar la librería en htdocs/core/lib/price.lib.php

Una vez ahí de arriba hacia abajo quitar todos 
price2num(…,'MU')
price2num(…,'MT')

Pero deja la formula que están dentro del “price2num”… Hasta llegar a:
$pu = price2num($pu / (1 + ($txtva / 100)),'MU');
    }
$apply_tax = false;
    switch($localtax1_type) {
      case '1':     // localtax on product or service
        $apply_tax = true;
        break;
      case '3':     // localtax on product
        if ($type == 0) $apply_tax = true;
        break;
      case '5':     // localtax on service
        if ($type == 1) $apply_tax = true;
        break;
    }

Ejemplo:

Si tienes:
 $result[5] = price2num(($pu + $localtaxes[2]), 'MU');

Te debe quedar:
$result[5] = ($pu + $localtaxes[2]);

viernes, 4 de diciembre de 2015

Poner condiciones al agregar nueva linea en factura DOLIBARR

Deberás dirigirte al siguiente php, por ahí pasan todos los valores antes que la nueva linea sea agregada, asi que es el punto perfecto para poner condiciones.

htdocs/comta/facture/class/facture.class.php

Un ejemplo sería:
global $mysoc, $conf, $langs, $db, $sql;
$sql = "select A.tva_assuj from llx_societe AS A INNER JOIN llx_".$this->table_element. " AS B ON B.fk_soc=A.rowid WHERE B.rowid=".$this->id;
         
$rsql = $db->query($sql);
                     
if ($rsql) {              
      $obj = $db->fetch_object($rsql);            
      if($obj->tva_assuj == 1){                  
      } else {
                  $txtva = 0;              
      }                
}

Esta condición hace que si el cliente no aplica al ISV, entoces siempre se le pondrá cero de impuesto sobre venta en todos los productos que compre, es decir le quitará el impuesto sobre venta.

miércoles, 2 de diciembre de 2015

Agregar Nueva Pestaña o Tab en Dolibarr

Dentro de tu carpeta principal donde estará el modulo y en el php del modulo, es decir:
C:\wamp\www\doli362\htdocs\CarpetaDeModulo\core\modules\modNombreDeModulo.php


Deberás incluir el siguiente código, con las modificaciones que considerés necesarias para tu modulo, este solo es un formato:
$this->tabs = array('objecttype:+tabname:TitleOfTab:@mymodule:conditiontohavetab:urlfortab?id=__ID__'
);

Te pongo un ejemplo:
$this->tabs = array('supplier_invoice:+tabname:Nueva Pestaña 1:langfile@modNombreDeModulo:$user->rights->CarpetaDeModulo->contenidoDeModulo->read:/CarpetaDeModulo/contenidoDeModulo.php?id=__ID__'); 


Este tab será agregado dentro de Financiera, dentro de facturas a proveedores, pronto pondré un "diccionario" para que sepas donde será agregado cada tab según el objecttype.

No olvides que después de agregar el tab dentro del código, debes desactivar y volver a activar el modulo para que los cambios sean aplicados.

sábado, 10 de octubre de 2015

martes, 15 de septiembre de 2015

¿Cómo retornar valor en una función de Visual Basic 6.0 (VB 6.0)


Private Function RetornarTotal(numero As Integer) As Integer
    Dim Suma As Integer

    Suma = numero + 1

    RetornarTotal = Suma

End Function

---------------------------------------------------------------------------------------------------------------------

La función de tipo Integer (entero), es igualada al total de la Suma para retornarla. Es decir en lugar de ser "Return Suma" es "RetornarTotal = Suma".

Leer un archivo de texto en Visual Basic 6.0 (VB 6.0)

Abre el archivo: Open "C:\Prueba.txt" for input as A

Lo lee con:

Declara variables: Dim Linea as String, Total as String

do until eof(1)
MsgBox (Linea)
Todas = Todas + Linea + vbcrlf
MsgBox (Todas)
loop

Cierra el archivo: close A

Crear carpeta o directorio en Visual Basic 6.0 (VB 6.0)

Agrega una referencia a la librería (¿Cómo agregar librerías?): Microsoft Scripting Runtime 

Luego declaras una variable: Dim p As New FileSystemObject 
Y para crear carpetas usas: p.CreateFolder "c:\tucarpeta"

Añadir / Agregar referencias (librerias) en Visual Basic 6.0 (VB 6.0)

Menú Proyecto / Referencias...

--------------------------------------------------------------------------------------------------------------------------

Se van al menú superior y hacen clic donde dice Proyecto, y luego hacer clic donde dice Referencias...

Una vez ahí podrá ver las librerías disponibles en su VB 6, y podrá agregar las que usted necesite.




jueves, 27 de agosto de 2015

Solución: An error occurred while signing: SignTool.exe not found

Probado en Windows 2R 2012
Visual Studio 2015


Este error me salió cuando intente publicar un proyecto (cuando quise crear un ejecutable). Leí el siguiente artículo http://revolution.screenstepslive.com/s/revolution/m/10695/l/112948-installing-signtool-exe, pero no encontré el SDK que salía ahí por lo que instale SDK for Windows 10 https://dev.windows.com/en-us/downloads/windows-10-sdk (según lo que parece no seguí las instrucciones del tutorial). Activé todas las opciones del instalador (alguna debía atinar, especialmente la que decía VS .Net). Finalizo la instalación y probé a publicar el proyecto ... y ... no funcionó. Concluí que Visual Studio lo estaba buscando en otra carpeta, así que debía verificar que estuviese en la carpeta que decía el primer tutorial.

En el primer tutorial decía que el ejecutable SignTool.exe se encontraba en la siguiente dirección
C:\Program Files (x86)\Windows Kits\8.0\bin\x86 pero debido a que instalé para Windows 10 lo busqué en la siguiente dirección C:\Program Files (x86)\Windows Kits\10\bin\x86 y en efecto, ahí estaba. Así que me pregunté ¿entonces donde lo está buscando?, seguí buscando tutoriales o foros y me encontré con el siguiente http://stackoverflow.com/questions/7548342/an-error-occurred-while-signing-signtool-exe-not-found ... ahí daba otra dirección C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin ... encontré las carpetas, pero no estaba el programa SignTool.exe, así que copié el ejecutable de la dirección anterior (C:\Program Files (x86)\Windows Kits\10\bin\x86) y lo pegué en la segunda dirección (C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin) y lo probé ... y ... NO FUNCIONO, pero ¡¡¡OJO!!! no me mostró el mismo error de An error occurred while signing: SignTool.exe not found, me mostró otro error, es decir, estaba en la carpeta correcta.

Pensé "seguro el ejecutable abre otros archivos de los que estaban en la carpeta original, junto al ejecutable" así que en lugar de solo copiar el ejecutable quise copiar toda la carpeta bin de la primera dirección en la segunda dirección, pero en la segunda dirección ya existía una carpeta "Bin" y yo no la quise eliminar, así que la nombré como "Bin2" y después peque la carpeta "bin" de la primera dirección en la segunda dirección, pero el ejecutable de esa carpeta estaba dentro de otra carpeta más llamada "x86" y los archivos (segun la segunda dirección) debían quedar justo en la carpeta "bin", así que copié los archivos de la carpeta "x86" y los pegué en la carpeta "bin".

Probé a publicar el proyecto ... y ... funcionó.

No digo que sea la solución correcta, pero pueden usarla como solución desesperada.

Les sugiero que sigan al pie de la letra lo del primer tutorial, quien sabe tal vez les funcione a la primera.

Para facilitarles aun más las cosas, les dejo el enlace del SDK que creo era el correcto
https://msdn.microsoft.com/es-hn/windows/desktop/ff851942.aspx

domingo, 24 de mayo de 2015

Características de la tecnología

Se puede definir a la tecnología como un cúmulo o conjunto de conocimientos técnicos, proviene el concepto del griego “tecne” que significa técnica y “logía” que significa estudio y lo entenderíamos como estudio de la técnica.

La tecnología es el medio principal e idóneo que tiene el hombre para satisfacer muchas de sus necesidades de adaptación.

Así las características de la tecnología ha evolucionado de la creación de herramientas simples para cacería, vasijas y utensilios simples hasta lo que conocemos hoy como aparatos médicos, computadoras, teléfonos, satélites, aviones etc.

Principios y características de la tecnología:

Creación.- La tecnología fue creada para satisfacer las necesidades básicas del ser humano, comenzando con utensilios y  procesos simples y culminando con procesos complicados y muy técnicos.

Servicio.- El origen de la tecnología es para el servicio; en sus inicios fue básicamente física, como se puede ver en los barcos, en las construcciones y en utensilios físico-matemáticos como el sextante, la brújula, la plomada y las escuadras que permitieron al ser humano realizar creaciones y actividades más sofisticadas.

Ciencia.- La tecnología utiliza mucho la ciencia, sobre todo la química y la física, pasando inicialmente de la conocida alquimia hasta la química avanzada que hoy en día nos permite realizar compuestos muy complicados con fines industriales y médicos.

Industria.- La tecnología permite a las industrias realizar productos de forma sistemática con compuestos químicos y procesos.

Comunicación.- La tecnología ha revolucionado la comunicación del ser humano, permitiendo hoy en día utilizar las microondas y los satélites para comunicar datos de índole digital a los dispositivos móviles y permitiendo que el internet se convierta en el proceso más perfectible que hasta este momento se conozca. Los periodistas logran con estas tecnologías comunicar los hechos y circunstancias en un momento casi inmediato e incluso en vivo.

Agricultura.- La tecnología ha jugado un papel muy importante y trascendental en la agricultura y sobre todo en la naturaleza, pues en el primero ha permitido la producción y la alimentación de la población mundial, pero produce en contraste un daño al ecosistema.

En este sentido es la misma tecnología la que produce hoy en día las posibles soluciones a tales abusos y manejos de los recursos naturales.

Energía.- La tecnología es la fuente inicial de la energía con la que se mueve el mundo, es mediante la tecnología y sus procesos que se ha refinado el petróleo, se han creado los nuevos dispositivos nucleares de producción energética y han desarrollado las denominadas energías limpias, producidas por  “viento”, “agua” y “sol”.

Daños tecnológicos.- Los daños tecnológicos son producidos por la sobre explotación de mantos, de pozos petroleros, la destrucción de la capa de ozono,  los desperdicios tecnológicos y la basura toxica, sobre todo la de las empresas.

Otro aspecto importante son los gases de efecto invernadero que como se dijo producen daños en la capa de ozono y no han sido regulados para evitar la continuación del daño.

Medicina.- La tecnología en la medicina, ha permitido pasar de la medicina divinatoria a la medicina científica, que puede detectar en forma certera la enfermedad y en la gran mayoría de los casos encontrar el proceso adecuado para su atención.

Especialización.- La tecnología permite la especialización en ciencias específicas, logrando procesos más exactos y diversos en cada tema.

Sociabilidad.- La tecnología permite un crecimiento y movimiento social que tiene el riesgo de producir el fenómeno del alma colectiva aunque también permite la individualización del usuario.

Universalidad.- Con la tecnología, los usuarios pueden universalizarse, y ésta tiene la cualidad actual de romper fronteras, permitiendo la comunicación y el comercio internacional.



URL del artículo: http://www.ejemplode.com/13-ciencia/3449-caracteristicas_de_la_tecnologia.html
Nota completa: Características de la tecnología

lunes, 20 de abril de 2015

Ejecutar Proyectos JavaServer Pages(JSP) con Netbeans 8.0.2

Para realizar dicha acción debemos instalar:
Requerimientos para usar Netbeans (JDK, Java)
Netbeans (versión completa)
Tomcat



Una vez instalado todo, debes configurar los servidores de NetBeans:

Como podemos observar Netbeans tiene por defecto sus propios servidores ya configurados.

Pero nosotros agregaremos el Tomcat que instalamos (en la imagen yo ya lo tengo agregado pero siempre explicaré como lo hice).
Elegiremos el servidor donde dice Apache Tomcat or TomEE.


Buscaremos la carpeta principal de Tomcat.


La abriremos.


Si en lugar de decir Specify the Username (en amarillo), nos dice otra cosa y en rojo, seguramente elegimos la carpeta equivocada o ya tenemos agregado ese servidor (en caso que lo hayamos hecho antes).


Si no sale error, agregamos el usuario y contraseña. OJO: estas deben coincidir con las que tenemos en la configuración de Tomcat (al momento de instalarlo, o al modificar la configuración), Leer los pasos siguientes.


A continuación se muestra el servidor ya configurado en Netbeans.


Y Debes configurar Tomcat:
 Ingresando a la unidad C:/..... en la carpeta Program Files(Archivos de Programas) , Apache Software Foundation /Tomcat 8.0 / y por ultimo en la carpeta conf (de configuración). Ahi podemos encontrar dos archivos xml importantes, uno contiene los permisos de usuario, y el otro tiene los puertos y el host utilizado.

NOTA: En la unidad C:/ a veces no se nos permite realizar ciertas acciones, asi que pueden copiar los archivos que modificarán, en el escritorio, y eliminar los que estan en la cerpeta de configuración, modificar lo que tienen en el escritorio, copiarlos y pegarlos nuevamente en la carpeta conf.


 Yo abrí tomcat-users.xml con netbeans y agregué en rolename, manager-script y admin... lo que significa que al usuario root le estoy dando permisos de administrador. el usuario y contraseña deben  ser los mismos que estan en netbeans.

y acontinuación se muestra el contenido del server.xml, si se fijan los puertos son los mismos que pusimos en netbeans.


y listó, en teoria deberian poder ejecutar su proyecto JSP.


domingo, 29 de marzo de 2015

Cacheo (Sistemas / Informática)

Definición:
La Caché: es la memoria de acceso rápido de una computadora, que guarda temporalmente las últimas informaciones procesadas.

Ejemplo:
Una caché web almacena copias de los objetos web que pasan por ella, de forma que subsiguientes
peticiones pueden ser respondidas por el propio caché, si se cumplen ciertas
condiciones. Su objetivo principal es agilizar el sistema evitándole trabajos innecesarios.
________________________________________________________________________________

Definición:
Cacheo: Registrar para descubrir si oculta algún objeto ilegal.

Ejemplo: 
Sistema de cacheo orientado a la seguridad de un negocio, empresa etc. Cuya función es registrar al personal.


martes, 24 de marzo de 2015

¿Por qué no puedo agregar una clase de Modelo? (MVC)

¿Por qué no me sale activada la opción para agregar una clase de modelo? (MVC)


Si te has hecho esta pregunta, seguramente olvidaste detener o poner stop al depurador.

:B


martes, 3 de febrero de 2015

Crear Sitio con DreamWeaver CS6 y WampServer (localhost)

En este caso yo estoy usando el puerto 8080, por eso pongo “localhost:8080”, pero pueden cambiarlo según el puerto que estén usando.
















Crear Sitio con DreamWeaver CS3 y WampServer (localhost)

En este caso yo estoy usando el puerto 8080, por eso pongo “localhost:8080”, pero pueden cambiarlo según el puerto que estén usando.














Deprecated: mysql_select_db(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in

¿Les ha sucedido que intentan, hacer un query de conexión y les sale un mensaje de que la extensión que están usando es obsoleta? Les pon...