Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

allenstriker

array que devolve promocoes que acumulam ou não

Recommended Posts

Boas pessoal,

Tenho um cesto de compras, quando adicionamos um produto, se este tiver campanhas estas mostram por baixo da linha do produto.

O produto ganha o desconto definido na campanha caso se em quantidade ou em valor do produto chegue ao minimo configurado na campanha.

Tenho tudo a funcionar corretamente à exceção de uma particularidade, quando se configura uma campanha posso dizer se a campanha acumula com outra.

Exemplo de Campanhas:

- Campanha A, esta campanha acumula com a Campanha C

- Campanha B, esta campanha acumula com a Campanha C

- Campanha C, esta campanha acumula com a Campanha A

ou seja

- Campanha C acumula com A e B
- Campanha B acumula com C
- Campanha A acumula com C
- Campanha B nunca acumula com A

Como fazer um array que retorne todas a possibilidades, não estou a ver forma de fazer simples.

Exemplo: Não sei se o raciocino esta correto, não estou a conseguir ver este processo

Produto XPTO:

Campanhas:

-Campanha A
|
E
|
-Campanha C
|
OU
|
-Campanha B
|
E
|
-Campanha C
|
OU
|
-Campanha A
|
E
|
-Campanha C


Muito obrigado desde já pela ajuda que possam fornecer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou exemplificar alguns casos:

 

1º caso, nenhuma delas acumula, ou seja, so posso ganhar apenas uma das campanhas, neste caso vou atribuir o mellhor desconto:

 

Campanha A que me dá 2% de desconto

ou

Campanha B que me dá 6% de desconto, ganhou esta por tem o melhor deconto

ou

Campanha C que me dá 5% de desconto

 

2º caso, Campanha A acumula com Campanha C, nenhuma acumula com B, vou ver dentro de cada bloco, qual o melhor desconto, sendo que o bloco das que acumulam soma o desconto

 

Campanha B que me dá 6% de desconto

ou

Campanha A que me dá 2% de desconto

e - ganhou esta por tem o melhor deconto

Campanha C que me dá 5% de desconto

 

3º caso, Campanha A acumula com Campanha C e Campanha B acumula com Campanha A, a Campanha B não acumula com C

 

Campanha A que me dá 2% de desconto

e

Campanha C que me dá 5% de desconto

ou

Campanha A que me dá 5% de desconto

e - ganhou esta por tem o melhor deconto

Campanha B que me dá 6% de desconto

 

4º caso, todas acumulam

 

Campanha A que me dá 2% de desconto

ou

Campanha B que me dá 6% de desconto- ganhei todos os descontos

ou

Campanha C que me dá 5% de desconto

 

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

OU SEJA

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

 

Eu tenho um array que me retorna todas as campanhas e desconto e dentro de cada campanha as que acumulam com ela.

O que eu preciso é de uma função que ao inserir o array das campanhas este me retorne as campanhas com que acumulam e que nao acumulam organizada, como nos exemplos acima, porque por exemplo no 3º caso como existem campanhas como a Campanha A acumla com duas diferentes tem que colocar o OU.

 

exemplo do meu array inicial:

 

CAMPANHA 33 acumula com a 35, 166, 172, 176

Array ( [0] => Array ( [33] => 35 ) [1] => Array ( [33] => 166 ) [2] => Array ( [33] => 172 ) [3] => Array ( [33] => 176 ) )

CAMPANHA 172 acumula com a 32, 33, 174, 176, 186
Array ( [0] => Array ( [172] => 32 ) [1] => Array ( [172] => 33 ) [2] => Array ( [172] => 174 ) [3] => Array ( [172] => 176 ) [4] => Array ( [172] => 186 ) )

 

Se eu fizesse um "merge" destes 2 arrays, ele devia devolver que a campanha 33 e 172 com "E" e as restantes com ou

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.