Jump to content

Recommended Posts

Hola a todos,

 

he buscado en foros aquí y allá sin respuestas...a lo mejor la encontraré aquí.

 

Tengo dos tiendas. Una exclusiva para mayoristas (precio mayorista de compra, precio aplicado a la venta al publico) y he creado varios grupos para crear descuento en el segundo y en el predeterminado el precio normal

Queda así

1) grupo default : precio de venta x + iva

2) grupo descuento : precio de venta x - dto de grupo x% + iva

 

hasta aquí todo bien.

 

Ahora tengo una segunda tienda para particulares y he creado unas VIEW en la bbdd...todo perfecto...funciona bien..pero.....

 

creo el grupo particular...y solo y no puedo aplicar el cargo solo exclusivamente indica DESCUENTO GRUPO....no hay algo para crear CARGO ?? o aplicar descuento negativo como venían preguntando muchas veces los foreros?

 

No puedo modificar los precios manualmente porqué modificaría las VISTAS...

mientras que si modifico solo el grupo más me vale...ya que quiero aplicar por ejemplo un cargo del +100%....es decir dos veces el precio de compra....correcto no? o más o menos este importe quiero aplicar a todos los precios...ya luego por cada uno puedo aplicar precios especiales....

 

Preguntas...

 

 

Puedo invertir la formula directamente en un php o en un tpl ?

o crear un campo adicional donde aplicar el cargo?

o mejor ...llamar una nueva tabla de precios solo de particulares y llamarla en no sé donde?

La verdad que ando perdido sobre cuales archivos tengo que hace modificaciones o añadir campos...directamente en adminController? ...

Gracias por las aportaciones...

Link to comment
Share on other sites

Me contesto solo....

 

He logrado "un cargo en porcentual" en lugar del descuento de grupo

Simplemente hay que modificar el archivo AdminGroups.php y comentar unas lineas que devuelve errores en el caso que los números interos comprendidos entre >100 y <0 no aplica la formula.

 

Mayor de 100 es obvio ya que sería precio cero...mientras si comentamos la función <0 , todos los valores inferior a cero, aplica la formula del descuento inverso....es decir "CARGO"....

 

Así que se puede tener un grupo de clientes mayoristas y otros grupos en la misma tienda (con descuento por ejemplo del precio base y da ahí jugando con los valores ...)...

 

y si quieres crear un grupo de clientes particulares (con llamada en otra bb.dd. en otra web como en mi caso con CREATE VIEW)...hay crear un grupo de particulares con un importa en la casilla de texto descuentos ...pero al negativo.....y listo...

 

Ej....

GRUPO PARTICULARES (-100)........es decir que aplica un cargo del 100% sobre el precio del producto....es decir precio del producto * 2...

 

ahora me toca probar la llamada en la otra web....que creo funcione.....simplemente crear el grupo con el mismo id...y listo

 

Si alguien necesita ayuda sobre que lineas comentar...aquí estoy...

Link to comment
Share on other sites

  • 2 weeks later...

Hola,

 

Ya intente comentar algunas lineas (311, 312, 333, 334, 344, 345) pero me da un error. Pudieras postear las lineas que hay que comentar? Mil gracias muy buena contribucion!

Hola,

 

Ya intente comentar algunas lineas (311, 312, 333, 334, 344, 345) pero me da un error. Pudieras postear las lineas que hay que comentar? Mil gracias muy buena contribucion!

 

 

 

el archivo es AdminGroups.php

aprox. linea 300 buscar :

if (Tools::isSubmit('submitAddGroupReduction'))
 {
  if ($this->tabAccess['add'] === '1')
  {
   if (!($obj = $this->loadObject()))
 return;
   $groupReduction = new GroupReduction();
   if (!$id_category = Tools::getValue('id_category') OR !Validate::isUnsignedId($id_category))
 $this->_errors[] = Tools::displayError('Wrong category ID');
   elseif (!$reduction = Tools::getValue('reductionByCategory') OR !Validate::isPrice($reduction))
 $this->_errors[] = Tools::displayError('Invalid reduction (must be a percentage)');
   elseif (Tools::getValue('reductionByCategory') > 100 OR Tools::getValue('reductionByCategory') < 0)
 $this->_errors[] = Tools::displayError('Reduction value is incorrect');
   elseif (GroupReduction::doesExist((int)($obj->id), $id_category))
 $this->_errors[] = Tools::displayError('A reduction already exists for this category.');
   else
   {

 

 

y comentar lo que segue aprox. linea 311:

 

if (Tools::isSubmit('submitAddGroupReduction'))
 {
  if ($this->tabAccess['add'] === '1')
  {
   if (!($obj = $this->loadObject()))
 return;
   $groupReduction = new GroupReduction();
   if (!$id_category = Tools::getValue('id_category') OR !Validate::isUnsignedId($id_category))
 $this->_errors[] = Tools::displayError('Wrong category ID');
   elseif (!$reduction = Tools::getValue('reductionByCategory') OR !Validate::isPrice($reduction))
 $this->_errors[] = Tools::displayError('Invalid reduction (must be a percentage)');
   /*elseif (Tools::getValue('reductionByCategory') > 100 OR Tools::getValue('reductionByCategory') < 0)
 $this->_errors[] = Tools::displayError('Reduction value is incorrect');*/
   elseif (GroupReduction::doesExist((int)($obj->id), $id_category))
 $this->_errors[] = Tools::displayError('A reduction already exists for this category.');
   else
   {

 

 

y luego aprox linea 329 buscar:

 

if (Tools::isSubmit('submitAddgroup'))
 {
  if ($this->tabAccess['add'] === '1')
  {
   if (Tools::getValue('reduction') > 100) //OR Tools::getValue('reduction') < 0)
 $this->_errors[] = Tools::displayError('Reduction value is incorrect');

   {
 $id_group_reductions = Tools::getValue('gr_id_group_reduction');
 $reductions = Tools::getValue('gr_reduction');
 if ($id_group_reductions)
 {
  foreach ($id_group_reductions AS $key => $id_group_reduction)
   if (!Validate::isUnsignedId($id_group_reductions[$key]) OR !Validate::isPrice($reductions[$key]))
    $this->_errors[] = Tools::displayError('Invalid reduction (must be a percentage)');
      elseif ($reductions[$key] > 100 OR $reductions[$key] < 0)
    $this->_errors[] = Tools::displayError('Reduction value is incorrect');
   else
   {

 

 

y comentar lo que segue:

 

if (Tools::isSubmit('submitAddgroup'))
 {
  if ($this->tabAccess['add'] === '1')
  {
   if (Tools::getValue('reduction') > 100) //OR Tools::getValue('reduction') < 0)
 $this->_errors[] = Tools::displayError('Reduction value is incorrect');

   {
 $id_group_reductions = Tools::getValue('gr_id_group_reduction');
 $reductions = Tools::getValue('gr_reduction');
 if ($id_group_reductions)
 {
  foreach ($id_group_reductions AS $key => $id_group_reduction)
   if (!Validate::isUnsignedId($id_group_reductions[$key]) OR !Validate::isPrice($reductions[$key]))
    $this->_errors[] = Tools::displayError('Invalid reduction (must be a percentage)');
   /*elseif ($reductions[$key] > 100 OR $reductions[$key] < 0)
    $this->_errors[] = Tools::displayError('Reduction value is incorrect');*/
   else
   {

 

 

Así haciendo, has quitado la condición ELSEIF de darte Error para insertar cualquier importe por debajo de CERO . Obviamente has quitado también la condición todo por encima de 100....pero nadie lo va a poner...así que

 

Solo pruebas introduciendo -100 o -150 o -200 en este campo de texto:

 

 

capturadepantalla201203g.png

 

Uploaded with ImageShack.us

 

y funciona...está testado en 1.4.6.2 y 1.4.7

debería también con versiones anteriores, ya que se utiliza la misma condición para asignar el descuento de grupo...

 

Dime si te funciona...chao

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...