Thank you Jim, i'll keep working on it, i'm still struggling with summing 
up quantity sales values for each individual item but i will figure it out. 
Thanks for your help. Gratitude. 

On Thursday, October 28, 2021 at 4:41:30 PM UTC+2 Jim S wrote:

> In that case, then I'd do something like this:
>
> If the product name changes, add a 'total' row showing the totals from the 
> previous product name.
>
> <tbody>
> {{last_item_name=[]}}
> {{item_quantity = 0}}
> {{for sales in products:}}
> <tr>
>     {{if sales.product.name not in last_item_name:}}
>         {{if item_quantity > 0:}}
>             </tr>
>             <tr>
>                 <td colspan="2">&nbsp;</td>
>                 <td>{{=item_quantity}}</td>
>                 {{item_quantity = 0}}
>             </tr>
>             <tr>
>         {{pass}}
>         <td>{{=sales.product.name}}</td>
>         <td>{{=sales.product.Quantity}}</td>
>         {{last_item_name.append(sales.product.name)}}
>     {{else:}}
>         <td colspan="2">&nbsp;</td>
>     <td>{{=sales.quantity}}</td>
>     {{item_quantity += sales.product.quantity}}
>     {{pass}}
> </tr>
> {{pass}}
> </tbody>
>
> Again, I think the query will need some work, adding a left join to the 
> product table and setting the sort order properly. Add the left join will 
> then require that you include the table name in your field references in 
> your template.
>
> -Jim
>
> On Thursday, October 28, 2021 at 9:31:09 AM UTC-5 mostwanted wrote:
>
>> 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>&nbsp;</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 web2py+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/web2py/c78fb117-48dc-4a54-8fee-77544430780bn%40googlegroups.com.

Reply via email to