last day (15 days later) » 

21:53
2
Q: Error en calculo de cambio moneda PHP

DBEtengo un problema de matemáticas. Este problema no siempre sucede. A veces hay una diferencia de 1 centavo entre el subtotal y el precio de los productos. Estoy probando con sandbox. Mi moneda por defecto es el euro, cuando esta activada funciona bien, en cambio si cambio mi moneda a Colombia o c...

DBE
DBE
@A.Cedano Estaba intentando agregar información para que se entendiera de la mejor manera XD. Pues realmente según tengo yo entendido si yo vendo en España la tasa de impuesto se paga en el país donde el comprador, en este caso el impuesto de España es más alto que el Impuesto de Colombia por ejemplo, entonces calculo sobre precio exclusivo el cambio de moneda y luego la tasa de impuesto según el país. Tuve un problema anterior y me contestaron en OP, y lo implementi stackoverflow.com/questions/70477765/…
@A.Cedano Te voy a añadir a mi respuesta la tabla que uso para el cambio de monedas, aun así, no entiendo porque a veces si funciona y otra no porque hay un fallo de 1 céntimo, como se puede observar en las primeros array de mi pregunta. Realmente es un poco confuso esto del cambio de moneda.
@A.Cedano yo por ejemplo para Colombia estoy haciendo un cambio de moneda de 4519.38 peso colombiano, según obtengo en google, este varia cada día. No se si lo hago bien, ya que tendría que hacer 4519.35 * cantidad de euros, tengo el demo aqui: extremera.work/moda-hombre/ropa/…
@A.Cedano por ejemplo si el cambio de moneda la pongo a 1.13 dolares, entonces 77,14 € me da $ 85,72, estos valores lo manejo facilmente desde la BD, realmente es algo que me confunde, ya que como me has mencionado hay peso colombiano y dolares, al igual para mas paises latino americano. Entonces si uso en-CO deberia aplicar la conversion a dolares 1.13 o a pesos colombianos 4519.38? De hecho si pongo a dolares la conversion (1.13) funciona mejor, pero sigue fallando en ocaciones.
@Xerif he cambiado los precios a int que sería 85 y me sigue saliendo el fallo en ocasiones me falla un céntimo. He cambiado las matemáticas de Funciones de BC Math a lo tradicional y me sigue pasando lo mismo. Hay que recordar que solo pasa cuando se hace el cambio de la moneda. Entonces no se si una vez se calcula el cambio hay que hacer algo diferente, he intentado también floatval(round($precio,2); y nada. Si alguien sabe cómo se debe calcular un cambio de moneda, sin fallos de céntimos se agradece.
@Xerif ahora entiendo, voy a probar lo que me comentas, modificando mi sistema, hare un backup, aunque una duda, por ejemplo cuando se hace un cálculo sobre el impuesto y el número es entero será en este caso 8572 me daría 10.372,12 , me volvería los números flotantes, este cálculo si sería precisa?
@Xerif he hecho pruebas con números enteros (8500), y antes de devolver los valores a mi buildrequest hago un $value_incl = bcdiv($value_incl, 100); y me sigue dando el fallo de un céntimo, me devuelve el mismo resultado de si uso decimal() en la BD. A ver si más tarde actualizo mejor mi respuesta, porque me gustaría resolver este tema.
Un apunte por si te es de ayuda. En los departamentos de gestión económica/financiera no se hace la conversión de moneda elemento a elemento en una factura, si no que ésta se calcula del total de la misma. Es el método más eficaz para evitar arrastrar en exceso o defecto decimales ocultos. De modo que no te recomiendo hacer conversión de moneda de cada uno de los elementos. Si insistes en hacerlo hazlo partiendo del total (es decir, calcula los impuestos del total y no de la conversión de moneda).
DBE
DBE
@OscarGarcia es un buen detalle que no sabía, pero entonces como lo calculan, cuando te refieras del total, digamos precio total inclusive impuestos ya añadido? ¿y después calculo el cambio de moneda? ¿Y para los items seria me imagino lo mismo, primero calculo precio inclusive y después el cambio de moneda? Digamos 85.00 + 21% IVA = 102.85 €, seria hacer el cambio aquí 1.13 * 112.85 + 1% del fallo que pueda tener
@OscarGarcia luego otra duda y es donde tengo el fallo, realmente es confuso este tema, digamos a PayPal le tengo que pasar los productos de la venta, estos deben ser sin tasas (IVA), ya que se añade en 'tax_total' =>, entonces esos precios deben tener el cambio de moneda también. Y esta suma tiene que cuadrar con el subtotal. Y allí es donde tengo el fallo del céntimo. también he observado que a veces puede estar en la suma de subtotal + taxes = amount
Es un tema muy extenso. Para empezar, los impuestos directos se pagan en tu país con tu moneda por el valor de la factura en tu moneda, no en la convertida, por lo que no debes hacer conversión de los impuestos. Son los que son y al cliente le importa lo que paga en total. Si quieres mostrar precios en otra moneda puedes agregar un descargo de responsabilidad indicando que puede haber pequeñas discrepancias. Y, por último, recuerda que el IVA (en España) se paga del total de la factura si todos los productos comparten el mismo tipo, o la suma de los parciales de lo que has cobrado realmente.
Es decir, que si la factura es de 90€ y por conversión de moneda emites una factura que al realizar el cargo te llega a tu cuenta 89,95€ (menos) o 90,02€ (más), el IVA se calcula de esos valores, de lo que realmente has recibido, independientemente de cuál fuera la conversión matemática que hubieras calculado en tu aplicación. Las grandes empresas mantienen contabilidades independientes en diferentes monedas, abriendo cuentas bancarias en los diferentes países en los que opera. Pero los pequeños comercios deben tener en cuenta esto a la hora de hacer la contabilidad (máxime si vas a usar SII).
Si operas en España te riges por el R.D. 1515/2007, de 16 de noviembre, del Plan General de Contabilidad de PYMES. En caso de trabajar con varias divisas debes revisar en el grupo 6 (compras y gastos) el punto 668 (diferencias negativas de cambio) y en el grupo 7 (ventas e ingresos) el punto 768 (diferencias positivas de cambio). En estos apartados te permiten regularizar la contabilidad "a toro pasado" cuando, tras acumular cuentas en divisas extranjeras durante un tiempo, haces la conversión a tu moneda funcional (el euro).
Bueno, como puedes ver te he dejado un buena cantidad de mensajes en forma de comentarios. Los he pasado al chat y los he borrado de la pregunta. Ten en cuenta que por el tamaño de los comentarios no me he explicado bien, pero es que depende mucho de cómo quieras afrontar la contabilidad.
Es decir, cobrar en tu divisa, poner un precio aproximado en moneda extranjera y que el cliente se haga cargo de las diferencias reales a la hora del pago, que te lo haga en su moneda y luego tú asumir la diferencia (teniendo en cuenta que deberás declarar lo que te ha llegado finalmente) o mantener contabilidad en diferentes divisas y luego ir transfiriendo los fondos en bloques (eso reduce los gastos de gestión y las comisiones que te cobran de las entidades bancarias).
Pero, lo más importante, es que quizá deberías hacer uso de un gestor económico que te lleve las cuentas y/o te oriente en cómo debes hacer las cosas. No sé si trabajas para una empresa pequeña, mediana, grande o si eres directamente el empresario.
DBE
DBE
22:12
@OscarGarcia gracias por la explicacion. Se me ha quedado ahora claro que digamos el IVA se pago segun el valor que cobre independiente mente en la divesa que este en la APP. No es que quiera vender, simplemente estaba creando una ecomerce hispano latinoamericano, y me opte con ese problema, e visto despues de investigar que PRESTASHOP tuvo problemas similares con el redondeo en PayPal.
Hola @DBE
DBE
DBE
Hola, buenas noches Oscar.
Es algo muy común cuando se opera con diferentes divisas, y son varias las soluciones que se pueden adoptar. La más sencilla es la de hacer todo en tu divisa (en lo que se denomina tu "moneda funcional").
DBE
DBE
Digamos en siempre en Euro
Este tipo de contabilidad no la estudié en FP2 (los estudios medios de mi época), si no que fue en un máster donde aprendí el tema de las divisas. Ni siquiera en la ingeniería (en gestión de empresas) enseñaron a trabajar con múltiples divisas.
DBE
DBE
22:15
sabes lo raro, e intentado cambiar la moneda por defecto a Dolares, ya que hay mas paises que en Euro, y alli en cambio si funciona, pongo la conversion de 0.88
El problema está en un redondeo que está fuera de tu alcance, lo hace el sistema que estás llamando. Ese redondeo hacia abajo o hacia arriba no tiene por qué funcionar en ambos sentidos.
DBE
DBE
Entiendo, yo lo hago como hobby, ice un master de 80horas para mirar si estaba en lo correcto, pero el resto lo aprendi mediante tutoriales y peleandome con el codigo
¿De contabilidad o de desarrollo de aplicaciones?
DBE
DBE
De HTML con CSS y PHP y MySQL
¿Y 80 horas? ¿ECTS?
DBE
DBE
22:17
Realmente lo hago como hobby
en España es dificil trabajar sin Universidad
Ice un master de MASTERS D no se si lo conoces en España hay bastantes, es online tienes que entregar proyecto y demas, pero aprendi mas solo
Depende, pero tienes mucha razón. Como autónomo no importa demasiado, a no ser que tengas que firmar proyectos. Pero como trabajador por cuenta ajena importa para opositar o para el típico CV que tiene que entrar por los ojos del que te hace la entrevista.
DBE
DBE
www.escuela24.com estab creando esto por mi cuenta
Un consejo, no escribas "ice un máster" en una entrevista online. Escribe mejor "hice un máster" :)
DBE
DBE
Lo se, normalmente me gusta escribir bien.
Mi problema es, que naci en Holanda
Entonces el Español me cuesta a veces aun.
Soy autonomo pero en reformas integrales, pero me encantaria la progrmación. Pero buscar trabajo de autonomo en programación me resulta dificil.
Yo tengo el defecto de corregir los fallos, pero no por dañar, si no por que se aprenda la manera correcta de escribir ciertos términos o palabras.
@DBE ánimo, yo fui autónomo 12 años.
DBE
DBE
22:24
Es verdad, asi aprendes, yo tambien porque asi aprendi mejor el Español
Ahora estoy de baja con el menisco roto XD
Llevo asi desde abril, con la Pandemia va todo lente.
El problema es que a veces los programadores nos metemos en campos donde no tenemos conocimientos. Por ejemplo, existe la rama de "informática de gestión" donde se enseña desarrollo de aplicaciones orientadas a la gestión de empresas. Allí se enseña todo lo que te estoy explicando.
La Ingeniería técnica en informática de gestión en España es una disciplina de la ingeniería que combina una importante carga docente en economía y gestión empresarial con la adquisición de conocimientos científicos y técnicos, para el diseño e implementación de sistemas y procesos de gestión de las tecnologías de la información y la comunicación (TIC) mediante computadoras. El propósito de esta titulación universitaria es formar especialistas con una sólida formación para realizar las siguientes funciones: estudiar las necesidades del usuario y crear y/o adaptar los programas informáticos para…
DBE
DBE
Me lo he guardado en favoritos.
Lo que estoy intentando es guardar los precios ya con el IVA incluidos
y si hay descuento envede %, lo voy hacer tambien en moneda digamos 20€ descuento
Yo estudié electrónica industrial y robótica, luego la carrera de telemática, luego cambié a informática de sistemas y el doctorado lo quería de telemática y robótica, pero lo abandoné cuando fui padre por falta de tiempo
Pero 12 años que estuve de autónomo me enseñaron mucho sobre contabilidad
DBE
DBE
y luego lo que me has comentado, hacer el calculo sobre el precio Total, PrestaShop lo soluciono asi.
Creo que aprendí más de autónomo que en la carrera
DBE
DBE
22:28
Mi padre es informatico de Siemens Step /
@DBE Es una de las soluciones que te he puesto. Complicarlo es complicar la contabilidad y el mantenimiento de las cuentas.
DBE
DBE
He ido muchas veces con el montando cintas transportadoras
con fotocelulas etc
Si, yo pienso que la practico es el mejor aprendizaje
Hay que saber algo teoria no, pero realmente aprendes peleando con el codigo.
@DBE pero por muy bien que sepas programar, si no sabes un mínimo de contabilidad no puedes desarrollar una aplicación contable :)
DBE
DBE
Pero a ver si puedo modificar el sistema y los calculos y a ver si asi me coinciden. Guardare el chat tambien, para asi tener la información.
En eso tienes razon, no pensaba que se me iba a complicar tanto este tema.
Márcalo con la estrella para que no lo pierdas.
DBE
DBE
22:32
XD
Pensaba que era mas sencillo esto del cambio de moneda, aun asi aunque sea otra moneda, no entiendo porque funciona en euro, y dolar tiene ese problema.
Eso ya se debe tanto al redondeo como a las operaciones con coma flotante. Voy a buscarte un ejemplo. El valor por el que multipliques es el culpable de que se puedan producir o no esos problemas.
DBE
DBE
Tambien PayPal podria ser una poco mas flexible. Ya que hay mas comercios con ese problema, deberian de aplicar un norma generalizado para calcular ese tipo de cambios.
Es decir, que multiplicar por 0.66 puede darte ese problema y, sin embargo (y por poner un ejemplo sin probar), multiplicar por 0.67 no.
DBE
DBE
Si es depende del numero.
@DBE ¿es el sandbox de paypal? No lo mencionaste en la pregunta.
DBE
DBE
22:36
Si ya se sabe que el numero flotante puede tener ese problema, porque no dan un margen de unos centimos?
Si, uso SandBox
Ahora que he usado el buscador sí que veo la palabra Paypal en el código xD
SandBox no es un producto, es un entorno de pruebas
Sandbox, palabra que del inglés significa caja de arena (sand: arena, y box: caja), puede referirse a: == Informática == un entorno de pruebas separado del entorno de producción. la Wikipedia:Zona de pruebas de la Wikipedia. un sistema de aislamiento de procesos o entorno aislado, a menudo usado como medida de seguridad. por extensión, una máquina virtual que emula el comportamiento de un ordenador completo. Sandboxie, una aplicación que implementa sandbox para Microsoft Windows. Google Sandbox, una minoración en la relevancia que sufren, presuntamente, los sitios web recientemente creados al ser…
DBE
DBE
Si, luego lo tengo que cambiar a productionEnvrioment
Si vas en real.
Uso PayPal Checkout SDK
Me refiero a que "sandbox" no es algo exclusivo de Paypal. Todos los sistemas de pago tienen un área de pruebas llamado "sandbox" para que pruebes en él su API
DBE
DBE
A vale, yo pensaba que era de PayPal
Tengo un demo, no se puede ver los fallos
De todas formas, Paypal lo hace bien.
Te ofrece la conversión de moneda para ese momento del total que debes pagar (o del que debe pagar el usuario)
DBE
DBE
22:39
Segun tengo entendido, PayPal lo hace asi:
Simplemente, PayPal redondea línea por línea y calcula así:

Productos: 2.26 +10% IVA (0.226 -> 0.23) + 0.23 = 2.49 X 24 = 59.76€
Transporte: 8.86 + 21% IVA (1.860 -> 1.86) + 1.86 = 10.72€
TOTAL: 10.72€ + 59.76€ = 70.48€
Lo calculo linea por linea
Segun lei en un articulo de PrestaShop, que tuvieron que adoptar su codigo
Tienes que tener en cuenta que esto es algo con lo que debes lidiar. Paypal solo te da la conversión de moneda, pero si luego la suma no es la misma en tu moneda que en la convertida no es culpa de paypal, es culpa de haber querido usar la conversión de moneda y los redondeos que se llevan a cabo a la alta o a la baja.
DBE
DBE
Entonces es mejor vender siempre en Euro?
Eso esta permitido digamos?
Por ejemplo:

8.7 * 0.63255 = 5.503184999999999 (5.50)
5.5 / 0.63255 = 8.694964824915028 (8.69)
@DBE ¿Tu contabilidad la haces en España con euros?
DBE
DBE
Si
Lo lleva mi Gestor el tema de Autonomo
@DBE Ya tienes la respuesta. Tu contabilidad debe ser en euros. Aunque trabajaras en diferentes divisas, al final debes tributar con su valor en euros.
DBE
DBE
22:46
Cada trimestre le llevo las facturas, en la reforma son pocas.
Te recomiendo que, si tienes tiempo, le eches un vistazo a la legislación de contabilidad de PYMES
DBE
DBE
Me lo he guardado tambien, asi me informo bien sobre todo.
Si lei en internet, si eres pequeña empresa en España, aunque vendas al extranjero, podrias aplicar siempre el 21% de IVA
Y no la que es del pais de venta.
@DBE Solo si los productos son todos con el tipo de IVA del 21%. Hay comercios que trabajan con diferentes IVAs
DBE
DBE
Por ejemplo si quieres vender cursos online
En España no esta libre de IVA
Si son por videos
@DBE Hay cursos que no tribuyan IVA (depende de las materias y el grado o curso), sin embargo los libros de texto y demás cargos que hagas al alumno podrían tener diferentes tipos de IVA.
DBE
DBE
22:52
Si estuve leindo bastante sobre ese tema, y es algo confuso.
Si la materia existe en la Universidad segun tengo entendido seria exento de IVA
Por ejemplo, aunque tu curso tuviera que aplicar el 21% del IVA, para los libros debes usar el del 4%
DBE
DBE
Y si es solo por video, digamos la materia es mediante descargar PDF
Digamos Video aprendizajes
Alli se paga el 21%
DBE
DBE
Me lo e guardado
10.º Las clases a título particular prestadas por personas físicas sobre materias incluidas en los planes de estudios de cualquiera de los niveles y grados del sistema educativo.

No tendrán la consideración de clases prestadas a título particular, aquéllas para cuya realización sea necesario darse de alta en las tarifas de actividades empresariales o artísticas del Impuesto sobre Actividades Económicas.
Es decir, las clases particulares de materias como matemáticas, ciencias, lengua, etc, no tienen IVA, pero si impartes un curso de desarrollo de aplicaciones en PHP y MySQL sí, siempre y cuando no sea sobre una asignatura de un módulo o carrera existente.
DBE
DBE
22:58
Me hace dificil entender eso, por mi idioma Holandes.
Disculpa x(
DBE
DBE
No, pasa nada, no lo decia por eso.
Las clases particulares son clases de apoyo que dan las academias a las asignaturas que se cursan en el colegio, instituto o universidad
DBE
DBE
Entendi la conclusión. :)
En cambio en latino america no pagan.
Esas no tributan IVA, el resto de docencia sí
Y los libros, lo que te decía. Un PDF se rige por el IVA general del 21% porque no se considera un libro. Los libros físicos tienen el 4% de IVA.
DBE
DBE
23:01
Por ese motivo es tan dificil empezar algo en España. XD
Así que una academia que envíe manuales impresos deben usar el 4% de IVA y no el 21%
@DBE Eso pasa en todo el mundo. España no es el único país que tiene diferentes impuestos para diferentes productos
DBE
DBE
Ahora esta la ayuda de autonomo.
En alimentación se usan el 4% y el 10%, dependiendo del producto...
DBE
DBE
Pero muchos paises lo que es online no pagan tanto como Europa.
Me refiero en cuanto a vender Cursos, etc
Si por ejemplo yo en la reforma integrales si existe mas material que mano obra se puede pagar el IVA reducido al 10%
@DBE Eso ya depende de su sistema tributario. Es como los que huyen a paraísos fiscales como Andorra. España no es de lo que tienen el IVA más alto
DBE
DBE
23:04
Holanda se paga tambien mucho.
Si tienes mas ingresos, mas pagas.
@DBE Pero una cosa es la declaración del IVA y otra la de Hacienda
Hay paraísos para el IVA y paraísos fiscales para la declaración de hacienda
DBE
DBE
Pero tendrias que vivir alli no?
Uno se lleva una cantidad fija por cada producto que vendas (o la diferencia entre el repercutido y el soportado, como el IVA) y el otro sobre tus ganancias
@DBE No necesariamente. En diferentes países se requieren diferentes requisitos para tributar allí.
DBE
DBE
Pero es legal ante hacienda?
Pero ahora tengo que dejarte, me queda una hora antes de irme a dormir y toca echar un ratito de ocio :)
DBE
DBE
23:07
Muy bien, y muchas gracias por la información, al menos lo tengo claro, que es casi necesario a un contable para un desarollo de un sistema ecomerce a nivel multi moneda.
Que tengas buenas noche, un abrazo.
@DBE ¡Claro que sí! Puedes tributar en el país que quieras si eres el dueño de la empresa y cumples con los requisitos del país en cuestión. Ejemplo muy sencillo: el que trabaja en otro país (como Francia, Italia, EEUU, etc) cotiza y paga impuestos en ese país.
DBE
DBE
A vale, pero tienes que tener algo fisico alli.
Algunos países te piden tener sede física en el país (cuando son sociedades), otros te piden la residencia (cuando eres particular), otros te piden vivir allí un porcentaje del año, etc. Cada país tiene requisitos diferentes ante sociedades y personas físicas y, por supuesto, solo estás obligado a tributar en un país.
DBE
DBE
Por ejemplo no podrias decir, que otra persona suba tu APP en otro pais, y tus tutoriales?
Y tributar en dicho país
Seria como socios.
Sí, pero recuerda que debes declarar esos ingresos en España también, aunque hayan tributado en otro país
DBE
DBE
23:12
Y pagarias lo misno no?
Depende de si trabajas por cuenta ajena o por cuenta propia, si tu residencia habitual está aquí o no, etc. Existe una declaración de hacienda para no residentes.
Nunca he estado en ese caso, pero sé que hay que tributar
DBE
DBE
Si, los bancos mismo ya estan con limites de sacar al dia etc.
DBE
DBE
Un dia los lee tranquilamente.
Lo dicho, hay que estudiar carrera para conocer todos. Como dice el dicho, yo sé más por viejo que por diablo.
DBE
DBE
23:18
jajajjaja si, yo de joven era muy distraido me costaba estudiar.
La informatico tuve que estar muchas horas.
Yo no soy de económicas, pero me he tenido que pelear en algún momento que otro con cosas de hacienda o de impuestos y me ha tocado leer
DBE
DBE
Se nota que entiendes, a veces le he preguntado a mi gestor y nunca me ha dado una explicación claro sobre esto.
@DBE dentro de la carrera de economía luego hay economía internacional, en la que se aprende este tipo de cosas con más detenimiento. Imagino que un gestor que se ocupa de cuentas de pequeñas y medianas empresas no suele tratar derecho o gestión internacional con frecuencia (y no le interesa invertir un tiempo en algo que probablemente no le saque rendimiento económico)
DBE
DBE
Hare una prueba mas poniendo precio con IVA y a ver como sale, y sino pues me tendre que conformar con el sistema de unica moneda.
Ya entiendo, si lleva pequeñas empresas.
Bueno Oscar no quiero entretenerte mas que es tarde.
Gracias por las explicaciones.
Buenas noches.
De nada. Espero haber sido de ayuda :) ¡un saludo y hasta otra!
DBE
DBE
23:27
Si, si quieres dejas alguna respuesta breve sobre el tema de la moneda cuando tienes tiempo y asi cierro la pregunta y podrias ayudar a otros.
Hasta otra, que descanses!

last day (15 days later) »