Merge pull request #509 from tiwariav/task/3828/invoice_period
task/3828 invoice period
This commit is contained in:
		
				commit
				
					
						1c50eb45e9
					
				
			
		
					 4 changed files with 32 additions and 9 deletions
				
			
		|  | @ -1,7 +1,9 @@ | |||
| import os | ||||
| import logging | ||||
| from dateutil.relativedelta import relativedelta | ||||
| 
 | ||||
| from django.db import models | ||||
| from django.utils import timezone | ||||
| from django.utils.functional import cached_property | ||||
| from Crypto.PublicKey import RSA | ||||
| from membership.models import StripeCustomer, CustomUser | ||||
|  | @ -172,3 +174,9 @@ class VMDetail(models.Model): | |||
|     ipv6 = models.TextField(default='') | ||||
|     created_at = models.DateTimeField(auto_now_add=True) | ||||
|     terminated_at = models.DateTimeField(null=True) | ||||
| 
 | ||||
|     def end_date(self): | ||||
|         end_date = self.terminated_at if self.terminated_at else timezone.now() | ||||
|         months = relativedelta(end_date, self.created_at).months or 1 | ||||
|         end_date = self.created_at + relativedelta(months=months, days=-1) | ||||
|         return end_date | ||||
|  |  | |||
|  | @ -375,4 +375,12 @@ | |||
|   outline: none; | ||||
|   color: #999; | ||||
|   fill: #999; | ||||
| } | ||||
| 
 | ||||
| .locale_date { | ||||
|   opacity: 0; | ||||
| } | ||||
| 
 | ||||
| .locale_date.done{ | ||||
|   opacity: 1; | ||||
| } | ||||
|  | @ -32,11 +32,11 @@ | |||
|             {% endif %} | ||||
|             <p> | ||||
|                 <strong>{% trans "Date" %}:</strong> | ||||
|                 <span id="order-created_at"> | ||||
|                 <span class="locale_date"> | ||||
|                     {% if order %} | ||||
|                         {{order.created_at|date:'Y-m-d H:i'}} | ||||
|                         {{order.created_at|date:'Y-m-d h:i a'}} | ||||
|                     {% else %} | ||||
|                         {% now "Y-m-d H:i" %} | ||||
|                         {% now "Y-m-d h:i a" %} | ||||
|                     {% endif %} | ||||
|                 </span> | ||||
|             </p> | ||||
|  | @ -107,7 +107,9 @@ | |||
|                         {% if vm.created_at %} | ||||
|                             <p> | ||||
|                                 <span>{% trans "Period" %}: </span> | ||||
|                                 <span>{{ vm.created_at|date:'Y/m/d' }} - {% if vm.terminated_at %}{{ vm.terminated_at|date:'Y/m/d' }}{% else %}{% now 'Y/m/d' %}{% endif %}</span> | ||||
|                                 <span> | ||||
|                                     <span class="locale_date" data-format="YYYY/MM/DD">{{ vm.created_at|date:'Y-m-d h:i a' }}</span> - <span class="locale_date" data-format="YYYY/MM/DD">{{ subscription_end_date|date:'Y-m-d h:i a' }}</span> | ||||
|                                 </span> | ||||
|                             </p> | ||||
|                         {% endif %} | ||||
|                         <p> | ||||
|  | @ -194,12 +196,16 @@ | |||
| <script type="text/javascript"> | ||||
|     {% trans "Some problem encountered. Please try again later." as err_msg %} | ||||
|     var create_vm_error_message = '{{err_msg|safe}}'; | ||||
| 
 | ||||
|     window.onload = function () { | ||||
|         var locale_date = moment.utc(document.getElementById("order-created_at").textContent, 'YYYY-MM-DD HH:mm').toDate(); | ||||
|         locale_date = moment(locale_date).format("YYYY-MM-DD h:mm:ss a"); | ||||
|         document.getElementById('order-created_at').innerHTML = locale_date; | ||||
| 
 | ||||
|         var locale_dates = document.getElementsByClassName("locale_date"); | ||||
|         var formats = ['YYYY-MM-DD hh:mm a'] | ||||
|         var i; | ||||
|         for (i = 0; i < locale_dates.length; i++) { | ||||
|             var oldDate = moment.utc(locale_dates[i].textContent, formats); | ||||
|             var outputFormat = locale_dates[i].getAttribute('data-format') || oldDate._f; | ||||
|             locale_dates[i].innerHTML = oldDate.local().format(outputFormat); | ||||
|             locale_dates[i].className += ' done'; | ||||
|         } | ||||
|     }; | ||||
| </script> | ||||
| {%endblock%} | ||||
|  |  | |||
|  | @ -703,6 +703,7 @@ class OrdersHostingDetailView(LoginRequiredMixin, | |||
|                     disk_size=context['vm']['disk_size'], | ||||
|                     memory=context['vm']['memory'] | ||||
|                 ) | ||||
|                 context['subscription_end_date'] = vm_detail.end_date() | ||||
|             except VMDetail.DoesNotExist: | ||||
|                 try: | ||||
|                     manager = OpenNebulaManager( | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue