I apologize for that, i'm terrible at giving variables, my variable confuse
me at times too, *sales.product.Quantity* is the initial stock, its the
Quantity in the *Products *table, different from the sold quantity in the
*sales
*table (*sales.quantity*)
On Thursday, October 28, 2021 at 4:22:15 PM UTC+2 Jim S wrote:
> Ok, here is what I would do in my template:
>
> <tbody>
> {{last_item_name=[]}}
> {{item_quantity = 0}}
> {{for sales in products:}}
> <tr>
> {{if sales.product.name not in last_item_name:}}
> <td>{{=sales.product.name}}</td>
> {{last_item_name.append(sales.product.name)}}
> {{else:}}
> <td> </td>
> {{pass}}
> <td>{{=sales.product.Quantity}}</td>
> {{item_quantity += sales.product.Quantity}}
> <td>{{=item_quantity}}</td>
> </tr>
> {{pass}}
> </tbody>
>
> In my controller I'd go another step further and add an orderby to ensure
> all products with the same name are in order and in the order of when they
> were purchased. But, this probably means you need a left join as well.
>
> I started coding this, but then was confused by what your columns are
> supposed to be. From what I gathered,
>
> Name
> Quantity Sold for this sale
> Total quantity so far
>
> But now I'm not sure I'm right
>
> What does product.Quantity represent vs sales.quantity?
>
> -Jim
>
> On Thursday, October 28, 2021 at 8:57:38 AM UTC-5 mostwanted wrote:
>
>> Hey Jim, thanks for your proposed solution,it worked as shown below, i
>> hope this is how you imagined it but this works now the problem I still
>> have &cant imagine is how I do the sum up of all of the item's purchase
>> quantity, how would you go about it:
>>
>> *CONTROLLER:*
>> products=db().select(db.sales.ALL)
>>
>> *VIEW:*
>> <script>
>> $(function() { *//Script to hide the empty rows*
>> $("table tr").each(function() {
>> var cell = $.trim($(this).find('td').text());
>> if (cell.length == 0){console.log('empty');
>> $(this).addClass('nodisplay');
>> }});});
>> </script>
>>
>> <tbody>
>> {{last_item_name=[]}}
>> {{for sales in products:}}
>> <tr>
>> {{if sales.product.name not in last_item_name:}}
>> <td>{{=sales.product.name}}</td>
>> <td>{{=sales.product.Quantity}}</td>
>> <td>{{=sales.quantity}}</td>
>>
>> {{last_item_name.append(sales.product.name)}}
>> {{else:}}
>> <td class="hideTd"> </td>
>> {{pass}}
>> {{pass}}
>> </tr>
>> </tbody>
>>
>> On Thursday, October 28, 2021 at 2:01:34 PM UTC+2 Jim S wrote:
>>
>>> In the solution I proposed, I would create a variable in my template and
>>> sum it as I looped through the records.
>>>
>>> It might help if you showed a visual example of what you're trying to
>>> accomplish. I may be misunderstanding the question, and if so, giving bad
>>> advice.
>>>
>>> -Jim
>>>
>>> On Thursday, October 28, 2021 at 4:15:49 AM UTC-5 mostwanted wrote:
>>>
>>>> I am able to group them up using *(groupby) *e.g
>>>> (*products=db().select(db.sales.ALL,
>>>> orderby=db.sales.product.name <http://db.sales.product.name>,
>>>> groupby=db.sales.product.name <http://db.sales.product.name>)*) but
>>>> now I have a problem calculating the sum of each item's sold quantities.
>>>>
>>>> On Wednesday, October 27, 2021 at 8:27:50 PM UTC+2 Jim S wrote:
>>>>
>>>>> I have done this before, but not using SQLFORM.grid
>>>>>
>>>>> In a nutshell
>>>>>
>>>>> 1. Create table tag
>>>>> 2. create your table header
>>>>> 3. create a temp variable last_item_name and set to None
>>>>> 4. loop through all the data you're going to display
>>>>> 5. in the item_name column, check if the current item name is equal to
>>>>> last_item_name - if it is, put blanks in that cell, if not, put the item
>>>>> name
>>>>> 6. set last_item_name = current item name
>>>>>
>>>>> Not pretty or clever, more of a brute force way to get it to work.
>>>>>
>>>>> -Jim
>>>>>
>>>>> On Wednesday, October 27, 2021 at 9:56:28 AM UTC-5 Clemens wrote:
>>>>>
>>>>>> Have a look here:
>>>>>>
>>>>>> http://www.web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#groupby-having
>>>>>>
>>>>>> Combining this with:
>>>>>>
>>>>>> http://www.web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#sum-avg-min-max-and-len
>>>>>>
>>>>>> Is it what you need?
>>>>>>
>>>>>> Best regards
>>>>>> Clemens
>>>>>>
>>>>>>
>>>>>> On Wednesday, October 27, 2021 at 4:44:11 PM UTC+2 mostwanted wrote:
>>>>>>
>>>>>>> I have a sales database table that records items sold in a store, an
>>>>>>> item can appear several times in the table having been sold several
>>>>>>> times
>>>>>>> or in different days. What i wanna do is display this information in an
>>>>>>> html table in a view without the item names repeating also with the
>>>>>>> sold
>>>>>>> quantity summed up for every item that appears more than once, how can
>>>>>>> i
>>>>>>> achieve this?
>>>>>>>
>>>>>>> Regards
>>>>>>>
>>>>>>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/web2py/82c3ce39-9f95-44b2-80bb-7ea8d1c57d47n%40googlegroups.com.