Avisos
Vaciar todo

Problemas con cambio de forma de pago en BackEnd

3 Respuestas
2 Usuarios
0 Reactions
968 Visitas
Respuestas: 358
Reputable Member
Topic starter
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Hola a todos,

Tengo un problema a la hora de cambiar la forma de pago en el backend de VM.

Tengo varios métodos de pagos con descuentos y con tasas:

Tarjeta --> 0,5% de descuento
Ingreso o Transferencia --> 0,5% de descuento
PayPal --> 2,5% de tasa
Contrareembolso --> 4%, minimo 5€ de tasa

Cuando compro todos los descuentos y tasas se aplican de forma correcta, pero si voy a l backend y cambio de una forma de pago a otra los descuentos o tasas se aplica de forma erronea.

Ejemplo si paso de tarjeta a Paypal en vez de calcular el 2,5% de tasa, le suma a la orden directamente 2,5€

He visto cosas por el fichero ps_order_change_html.....

URL del sitio: Contenido solo visible a usuarios registrados


 
Respondido : 01/11/2012 12:21 am
Pablo Velasco
Respuestas: 20382
Illustrious Member
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Hola,

Entiendo que te estás refiriendo a cambiar la forma de pago a un pedido que ya se ha completado. Es posible que se trate de un bug en Virtuemart 2.0 que todavía no se ha corregido. Lo mejor sería que cancelaras el pedido y realizaras uno nuevo con la nueva forma de pago, ya que supongo que esto no será un tema que te ocurra muy a menudo.


 
Respondido : 02/11/2012 9:35 am
Respuestas: 358
Reputable Member
Topic starter
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

La verdad es que no ocurre muy a menudo.. por cierto es en VM 1.1.9. A ver ya he solucionado el tema del calculo modificando la función. Ahora me encuentro el otro problema, aunque ahora calcula bien, cuando le doy a modificar sigue tomando los descuento tipo porcentaje como si fuesen enteros, es decir si el descuento es el 2%, el toma el descuento o tasa como 2€. Y la verdad no veo de donde "tira" para recalcular dentro del order.order_print.php.

A ver si me podéis ayudar.

function html_change_payment($payment_id,$ordertotal) {
global $VM_LANG, $CURRENCY_DISPLAY;
?>
<form method="post" action="">

query($q);
while ($dbs->next_record()){
if (!is_null( $dbs->f('payment_method_id') )) {
print 'f('payment_method_id').'"';
if($dbs->f('payment_method_id') == $payment_id) print " selected ";
print '>';
print $dbs->f('payment_method_name');
if ($dbs->f('payment_method_discount_is_percent') == 0 && $dbs->f('payment_method_discount_min_amount') > 0) {
print "-> ".$ordertotal. $CURRENCY_DISPLAY->getFullValue(($dbs->f('payment_method_discount_min_amount') * -1));
}

elseif ($dbs->f('payment_method_discount_is_percent') == 1 && $dbs->f('payment_method_discount_min_amount') == 0) {
$ordertotaldesc = round($ordertotal,2) * round($dbs->f('payment_method_discount'),2)/100;
print "-> ". $CURRENCY_DISPLAY->getFullValue(($ordertotaldesc * -1));
}

elseif ($dbs->f('payment_method_discount_is_percent') == 1 && $dbs->f('payment_method_discount_min_amount') f('payment_method_discount'),2)/100;
$descuentomin = $dbs->f('payment_method_discount_min_amount');
if ($descuentomin ".$CURRENCY_DISPLAY->getFullValue(($ordertotaldesc * -1));
}

elseif ($dbs->f('payment_method_discount_is_percent') == 1 && $dbs->f('payment_method_discount_min_amount') > 0) {
$ordertotaldesc = round($ordertotal,2) * round($dbs->f('payment_method_discount'),2)/100;
$descuentomin = $dbs->f('payment_method_discount_min_amount');
if ($descuentomin > $ordertotaldesc) {
$ordertotaldesc = $descuentomin;
}

print "-> ". $CURRENCY_DISPLAY->getFullValue(($ordertotaldesc * -1));

}
elseif ($dbs->f('payment_method_discount_is_percent') == 0 && $dbs->f('payment_method_discount_min_amount') == 0) {
print "-> ".$CURRENCY_DISPLAY->getFullValue(($dbs->f('payment_method_discount') * -1));
}

else{
print "-> ". $CURRENCY_DISPLAY->getFullValue(($dbs->f('payment_method_discount') * -1));
}
print '';
}
}
?>

<input type="image" title="_('PHPSHOP_UPDATE') ?>"
src="images/edit_f2.gif" border="0" alt="_('PHPSHOP_UPDATE') ?>" />

<input type="hidden" name="order_id" value="order_id ?>" />

<?php
}

}


 
Respondido : 02/11/2012 10:08 am