Correct the way we get periods for invoices list
This commit is contained in:
		
					parent
					
						
							
								965cc3adf9
							
						
					
				
			
			
				commit
				
					
						1ccb4e9790
					
				
			
		
					 3 changed files with 10 additions and 8 deletions
				
			
		| 
						 | 
					@ -500,7 +500,8 @@ class HostingBillLineItem(AssignPermissionsMixin, models.Model):
 | 
				
			||||||
        :return:
 | 
					        :return:
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        item_detail = ""
 | 
					        item_detail = ""
 | 
				
			||||||
        if self.metadata is not None and len(self.metadata) > 0:
 | 
					        # metadata is a dict; a dict with nothing has two chars at least {}
 | 
				
			||||||
 | 
					        if self.metadata is not None and len(self.metadata) > 2:
 | 
				
			||||||
            try:
 | 
					            try:
 | 
				
			||||||
                vm_dict = json.loads(self.metadata)
 | 
					                vm_dict = json.loads(self.metadata)
 | 
				
			||||||
                item_detail = "VM ID: {}<br/>".format(vm_dict["VM_ID"])
 | 
					                item_detail = "VM ID: {}<br/>".format(vm_dict["VM_ID"])
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -30,8 +30,8 @@
 | 
				
			||||||
                <tr>
 | 
					                <tr>
 | 
				
			||||||
                    <td class="xs-td-inline" data-header="{% trans 'VM ID' %}">{{ invoice.order.vm_id }}</td>
 | 
					                    <td class="xs-td-inline" data-header="{% trans 'VM ID' %}">{{ invoice.order.vm_id }}</td>
 | 
				
			||||||
                    <td class="xs-td-inline" data-header="{% trans 'IP Address' %}">{{ ips|get_value_from_dict:invoice.invoice_number|join:"<br/>" }}</td>
 | 
					                    <td class="xs-td-inline" data-header="{% trans 'IP Address' %}">{{ ips|get_value_from_dict:invoice.invoice_number|join:"<br/>" }}</td>
 | 
				
			||||||
                    {% with line_items|get_value_from_dict:invoice.invoice_number as line_items_to_show %}
 | 
					                    {% with period|get_value_from_dict:invoice.invoice_number as period_to_show %}
 | 
				
			||||||
                    <td class="xs-td-inline" data-header="{% trans 'Period' %}">{{ period_start | date:'Y-m-d' }} — {{ period_end | date:'Y-m-d' }}</td>
 | 
					                    <td class="xs-td-inline" data-header="{% trans 'Period' %}">{{ period_to_show.period_start | date:'Y-m-d' }} — {{ period_to_show.period_end | date:'Y-m-d' }}</td>
 | 
				
			||||||
                    {% endwith %}
 | 
					                    {% endwith %}
 | 
				
			||||||
                    <td class="xs-td-inline" data-header="{% trans 'Amount' %}">{{ invoice.total_in_chf|floatformat:2|intcomma }}</td>
 | 
					                    <td class="xs-td-inline" data-header="{% trans 'Amount' %}">{{ invoice.total_in_chf|floatformat:2|intcomma }}</td>
 | 
				
			||||||
                    <td class="text-right last-td">
 | 
					                    <td class="text-right last-td">
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1185,7 +1185,7 @@ class InvoiceListView(LoginRequiredMixin, ListView):
 | 
				
			||||||
                customer__user=self.request.user
 | 
					                customer__user=self.request.user
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
        ips_dict = {}
 | 
					        ips_dict = {}
 | 
				
			||||||
        line_items_dict = {}
 | 
					        line_item_period_dict = {}
 | 
				
			||||||
        for mhb in mhbs:
 | 
					        for mhb in mhbs:
 | 
				
			||||||
            try:
 | 
					            try:
 | 
				
			||||||
                vm_detail = VMDetail.objects.get(vm_id=mhb.order.vm_id)
 | 
					                vm_detail = VMDetail.objects.get(vm_id=mhb.order.vm_id)
 | 
				
			||||||
| 
						 | 
					@ -1193,17 +1193,18 @@ class InvoiceListView(LoginRequiredMixin, ListView):
 | 
				
			||||||
                all_line_items = HostingBillLineItem.objects.filter(monthly_hosting_bill=mhb)
 | 
					                all_line_items = HostingBillLineItem.objects.filter(monthly_hosting_bill=mhb)
 | 
				
			||||||
                for line_item in all_line_items:
 | 
					                for line_item in all_line_items:
 | 
				
			||||||
                    if line_item.get_item_detail_str() != "":
 | 
					                    if line_item.get_item_detail_str() != "":
 | 
				
			||||||
                        context['period_start'] = line_item.period_start
 | 
					                        line_item_period_dict[mhb.invoice_number] = {
 | 
				
			||||||
                        context['period_end'] = line_item.period_end
 | 
					                            "period_start": line_item.period_start,
 | 
				
			||||||
 | 
					                            "period_end": line_item.period_end
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
                        break
 | 
					                        break
 | 
				
			||||||
                line_items_dict[mhb.invoice_number] = all_line_items
 | 
					 | 
				
			||||||
            except VMDetail.DoesNotExist as dne:
 | 
					            except VMDetail.DoesNotExist as dne:
 | 
				
			||||||
                ips_dict[mhb.invoice_number] = ['--']
 | 
					                ips_dict[mhb.invoice_number] = ['--']
 | 
				
			||||||
                logger.debug("VMDetail for {} doesn't exist".format(
 | 
					                logger.debug("VMDetail for {} doesn't exist".format(
 | 
				
			||||||
                    mhb.order.vm_id
 | 
					                    mhb.order.vm_id
 | 
				
			||||||
                ))
 | 
					                ))
 | 
				
			||||||
        context['line_items'] = line_items_dict
 | 
					 | 
				
			||||||
        context['ips'] = ips_dict
 | 
					        context['ips'] = ips_dict
 | 
				
			||||||
 | 
					        context['period'] = line_item_period_dict
 | 
				
			||||||
        return context
 | 
					        return context
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_queryset(self):
 | 
					    def get_queryset(self):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue