Bienvenido a los foros %s

Foro comunidad hispana Dolibarr

Identificarse Registrarse

Error en la conversión Multimoneda

Si cree que ha encontrado un error en una versión estable, siéntase libre de comunicarlo aquí, indicando la versión.
vivescloud
Novato
Mensajes: 32
Registrado: Lun, 11/06/2018, 23:27
Ubicación: Guadalajara, Jalisco, México

Error en la conversión Multimoneda

Mensaje por vivescloud »

No se si se habrán dado cuenta, pero el manejo de multimoneda, hasta ahora, es algo que me saca que quicio. Me explico:

Actualmente estoy integrando Doli en una empresa Mexicana, la cual trabaja en Dólares y en Pesos Mexicanos. ellos realizan facturas en dólares e introducen el tipo de cambio, hasta ahí todo bien. Mi problema viene cuando se registran los pagos y quedan centavos volando por el aire, la verdad es algo muy molesto. El problema viene en la tasa de conversión que maneja Doli, ya que es de 1 MXN a USD, quedando valores en decimales, y luego lo que hace es dividir el valor resultante por el monto a pagar en Dólares, y siempre siempre, quedan centavos volando.

Mi solución:

Modificando el archivo multicurrency.class.php (búsquenlo), la función que se encarga de buscar el tipo de cambio llamada getInvoiceRate hice la siguiente modificación:

Código: Seleccionar todo

	public static function getInvoiceRate($fk_facture, $table = 'facture')
	{
		global $db;

		// $sql = 'SELECT multicurrency_tx FROM '.MAIN_DB_PREFIX.$table.' WHERE rowid = '.$fk_facture;
		$sql = 'SELECT total_ttc, multicurrency_total_ttc FROM ' . MAIN_DB_PREFIX . $table . ' WHERE rowid = ' . $fk_facture;


		dol_syslog(__METHOD__, LOG_DEBUG);
		$resql = $db->query($sql);
		if ($resql && ($line = $db->fetch_object($resql)))
		{
			$result = $line->total_ttc / $line->multicurrency_total_ttc;
			$result = 1 / $result;
			return $result;
		}

		return false;
	}
	
Para que nos entendamos, vuelvo a sacar el tipo de cambio, dividiendo el monto de la factura en pesos, entre los dólares, luego divido 1 entre el resultado (que básicamente es lo que hace dolibarr para sus conversiones) y ahora si, ya me da los montos en dólares cerrados.

Espero que les ayude, y si no, pues visiten mi canal de youtube y me dan un Like jjajaja

Saludos Dolibarianos

Avatar de Usuario
aduart
Yoda
Mensajes: 1056
Registrado: Mié, 06/06/2012, 19:37

Mensaje por aduart »

Gracias, excelente aporte.
Saludos,
Eduardo.

pepebarzuna
Novato
Mensajes: 1
Registrado: Lun, 08/01/2024, 00:07

Mensaje por pepebarzuna »

Hola,
Excelente aporte, también sigo con frecuencia tu canal de Youtube, gracias por el esfuerzo

Hace unos días empecé a monterle a mis hijos un Dolibarr para sus emprendimientos y me he topado con algo que es muy propenso a errores, por razones legales debemos usar el Colón de Costa Rica como moneda base, pero casi todo se compra de los proveedores y se revende localmente en $ lo que para un tipo de cambio de 600CRC/USD da tasas de conversión en Dolibarr de 0.00166666666666667CRC=1USD, un número que es propenso a que alguien se brinque un cero o algo por el estilo y genere datos erróneos, es difícil de ver. Idealmente uno debería poder decir que son 600CRC=1USD, sea, la forma inversa de verlo, la moneda débil sobre la fuerte.

Se te ocurre alguna manera de mejorar esto en la interfaz?