formbuilder veld berekening probleem.. bug?

Nederlandse ondersteuning voor CMS Made Simple

Moderator: velden

Post Reply
pedes
Power Poster
Power Poster
Posts: 840
Joined: Tue Jan 27, 2009 11:47 am

formbuilder veld berekening probleem.. bug?

Post by pedes »

Ik gebruik in FormBuilder het veld Berekeningstype.
Echter heeft Formbuilder precies een probleem als er een komma in een getal staat.
Vb. als ik volgende velden laat vermenigvuldigen met het eindgetal 58,37 dan lukt dat niet. Ik moet dus 58.37 (met punt ipv komma) gebruiken.
$fld_47*$fld_48*58.37

Echter Formbuilder zelf zet deze uitkomst met een komma, waardoor ik die waarde niet meer kan gebruiken om verder mee te rekenen (waardes van de veldjes samen tellen).

Iemand een idee hoe ik dit oplos?
Ik dacht al met smarty replace, waar ik dus de komma vervang door een punt, maar dit werkt niet in het berekeningsveld.

Mvg,
Peter
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: formbuilder veld berekening probleem.. bug?

Post by Rolf »

Je zult zoiets moeten doen:

Code: Select all

{$foo = $fld_47*$fld_48*58.37}
{$foo|replace:'.':','}
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
pedes
Power Poster
Power Poster
Posts: 840
Joined: Tue Jan 27, 2009 11:47 am

Re: formbuilder veld berekening probleem.. bug?

Post by pedes »

Dag Rolf,

Waar zet ik dit dan?
Ik heb vb.

Code: Select all

{$foo = $fld_47*$fld_48*58.37}

In het 1ste berekenings veld, maar dit geeft een berekeningsfout.
Het moet blijkbaar effectief

Code: Select all

$fld_47*$fld_48*58.37

zijn om te rekenen.

Ik heb dus 5 berekeningsvelden op dezelfde manier als hierboven.
Deze 5 worden dan op het einde samengeteld.
Maar doordat elke uitkomst van ieder berekeningsveld tevoorschijn komt met een komma, kan ik deze met het eindberekeningsveld niet meer samentellen, geeft een berekeningsfout.

Mvg,
Peter
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: formbuilder veld berekening probleem.. bug?

Post by Rolf »

meh oké, iets te snel gereageerd. Even de module erbij gepakt

Dit zet je in het berekeningsveld: $fld_47*$fld_48*58.37

Maar speel even met de waarde van "Interpreteer variabelen als nummers of strings".
Lijkt me als je "strings" instelt dat je wel |replace kan gebruiken(?)
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: formbuilder veld berekening probleem.. bug?

Post by Rolf »

Trouwens, je kunt de berekening natuurlijk ook in het mail sjabloon doen. Dan werk je buiten de module om en gebruik je alleen Smarty inclusief alle beschikbare mogelijkheden. Wellicht in dit geval een betere oplossing
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
pedes
Power Poster
Power Poster
Posts: 840
Joined: Tue Jan 27, 2009 11:47 am

Re: formbuilder veld berekening probleem.. bug?

Post by pedes »

Dank U rolf voor het meedenken

Ik heb het nog niet geprobeerd met de string in combinatie met smarty replace, ik ga dit dit weekend even checken.
Rolf wrote:Trouwens, je kunt de berekening natuurlijk ook in het mail sjabloon doen. Dan werk je buiten de module om en gebruik je alleen Smarty inclusief alle beschikbare mogelijkheden. Wellicht in dit geval een betere oplossing
Ik kan inderdaad de eindberekening doen in het mail sjabloon, maar ik neem de waarden ook mee naar een LISE lijst via een UDT (wat zeer handig is om dan weer te gebruiken in FEU).
Zo wil ik eigenlijk de ingelogde FEU gebruiker zijn verzendingen oplijsten vanuit die LISE lijst.
Als ik de berekening doe in het mailsjabloon dan kan die berekening wellicht niet via de UDT in de LISE lijst vallen.

Het is echt super FEU, Formbuilder en LISE te samen.
Ik worstel enkel met die eindberekening in Formbuilder en ook nog de mail naar de ingelogde FEU gebruiker, zie: eerder post

Mvg,
Peter
pedes
Power Poster
Power Poster
Posts: 840
Joined: Tue Jan 27, 2009 11:47 am

Re: formbuilder veld berekening probleem.. bug?

Post by pedes »

voor deze vraag... ik heb de eindberekening uitgevoerd door eigenlijk de volledige berekening te doen van alle tussen berekening samen, wat omslachtig maar dit werkt wel.

Echter zit ik met een ander probleem, mbt. berekeningen...
Volgende zou ik willen doen.
Ik heb 1 veld waar men de gewenste lengte van een product (er zijn 5 producten in het formulier) wil ingeven.
Indien de ingegeven lengte kleiner is dan 15 (meter) is de prijs per meter €29,95
Indien de lengte tussen 15 en 30 meter is ingegeven, dan is de prijs voor de 1ste 15meter €26,95 en voor het resterende €29,95
Indien de lengte 30 of meer meter is ingegeven, dan is de prijs voor de 1ste 30meter €24,95 en voor het resterende €29,95 (indien het minder dan 15meter betreft)

Is er een manier om dit uit te voeren in een berekeningsveld?
Of een andere manier?

Mvg,
Peter
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3483
Joined: Mon Nov 28, 2011 9:29 am
Location: The Netherlands

Re: formbuilder veld berekening probleem.. bug?

Post by velden »

Geen idee hoe dat berekeningsveld eruit ziet maar lijkt me toch een iets complexere berekening.
Zeker als je de uitleg leest, want niet helemaal duidelijk hoe het nu met de meters zit.

Bijvoorbeeld: 80 meter
Indien de lengte 30 of meer meter is ingegeven, dan is de prijs voor de 1ste 30meter €24,95 en voor het resterende €29,95 (indien het minder dan 15meter betreft)
Mijn aanname (anders dan in de uitleg)

Eerste 60 meter (2x30) is 24.95 p/m
Vervolgens 15 meter à 26.95 p/m
Laatste 5 meter à 29.95 p/m

Ik denk dat je dit moet oplossen met modulo en delen. Maar dat daar een paar tussenstappen noodzakelijk zijn (dus dan sowieso niet mogelijk in één veld)
User avatar
Rolf
Power Poster
Power Poster
Posts: 7825
Joined: Wed Apr 23, 2008 7:53 am
Location: The Netherlands
Contact:

Re: formbuilder veld berekening probleem.. bug?

Post by Rolf »

Indien de ingegeven lengte kleiner is dan 15 (meter) is de prijs per meter €29,95

Indien de lengte tussen 15 en 30 meter is ingegeven, dan is de prijs voor de 1ste 15meter €26,95 en voor het resterende €29,95

Indien de lengte 30 of meer meter is ingegeven, dan is de prijs voor de 1ste 30meter €24,95 en voor het resterende €29,95 (indien het minder dan 15meter betreft)
Met Smarty berekening maken in combinatie met {if} en {else} lijkt me dit niet zo'n probleem...

Heeft niets met Formbuilder te maken.
Het is meer wiskundig ontleden...
- + - + - + - + - + - + -
LATEST TUTORIAL AT CMS CAN BE SIMPLE:
Migrating Company Directory module to LISE
- + - + - + - + - + - + -
Image
pedes
Power Poster
Power Poster
Posts: 840
Joined: Tue Jan 27, 2009 11:47 am

Re: formbuilder veld berekening probleem.. bug?

Post by pedes »

Rolf en Velden dank voor het meedenken

Het is zo dat dit dus een formulier is in formbuilder, waarbij de gebruiker een veld kan ingegeven (vb die 80 meter van Velden).
Ik gebruikte nu een berekeningsveld van formbuilder om dan de berekening te maken, maar dat was toen lengte x aantal.
Nu wil ik dat de gebruiker enkel de lengte op geeft (vb. die 80 meter) en dat de berekening achterliggend gebeurd, in vb een berekeningsveld.
En zoals Velden aangeeft zal een ingave moeten gesplits worden, die 80 wordt 2 x 30 x 24.95 p/m, 1 x 15 x 26.95 p/m en 1 x 5 x 29.95 p/m

Maar dat berekeningsveld is wat beperkt, je kunt er geen smarty in kwijt.

Het is ook zo dat ik bij submit van de form de velden opsla in LISE module, zodat ik de 'bestelling' terug kan filteren als de gebruiker inlogt en zo zijn ingaves kan tonen.

Wellicht kan het via een UDT, in een UDT de berekening laten maken?
Maar daar heb ik weinig kennis van...

Mvg,
peter
User avatar
velden
Dev Team Member
Dev Team Member
Posts: 3483
Joined: Mon Nov 28, 2011 9:29 am
Location: The Netherlands

Re: formbuilder veld berekening probleem.. bug?

Post by velden »

Hoe het met FB, LISE en UDTs werkt weet ik zo niet uit mijn hoofd.

De berekening is denk ik als volgt in een UDT te doen:

Code: Select all

$length = $params['length'];

$price30 = 24.95;
$price15 = 26.95;
$priceless = 29.95;

$tmpprice = 0;

$tmpprice += ((int)($length / 30)) * $price30  * 30;
$tmpprice += ((int)(($length % 30) / 15)) * $price15  * 15;
$tmpprice += ((int)($length % 15)) * $priceless;
echo $tmpprice;
pedes
Power Poster
Power Poster
Posts: 840
Joined: Tue Jan 27, 2009 11:47 am

Re: formbuilder veld berekening probleem.. bug?

Post by pedes »

Dank u Velden,

Ik veronderstel dat als de gebruiker in het veld de waarde 80 ingeeft (voor het aantal meter), dat dan de UDT in werking moet treden??
Zodat de berekeing kan uitgevoerd worden en worden opgeslagen in een ander veld??

Ik ben niet thuis in UDT toestanden,misschien iemand die een idee heeft.

Het is dus zo dat er 5 producten zijn en men kan dus 5 velden invullen (lengte voor ieder product).

Na het invullen op versturen drukken, de velden worden opgeslagen in een LISE module en de mail wordt verstuurd (maar ook de berekening wordt gemaakt).

Mvg,
Peter
Post Reply

Return to “Dutch - Nederlands”