ADD: migrate review
This commit is contained in:
parent
55f39fc727
commit
0900b44e65
@ -616,6 +616,8 @@ class RequestViewSet(viewsets.ViewSet):
|
|||||||
|
|
||||||
subscription_request_files = SubscriptionRequestFile.objects.filter(file_query)
|
subscription_request_files = SubscriptionRequestFile.objects.filter(file_query)
|
||||||
|
|
||||||
|
reviewed_result = json.loads(data["reviewed_result"])
|
||||||
|
|
||||||
for subscription_request_file in subscription_request_files:
|
for subscription_request_file in subscription_request_files:
|
||||||
if subscription_request_file.doc_type == 'invoice':
|
if subscription_request_file.doc_type == 'invoice':
|
||||||
subscription_request_file.reviewed_result = reviewed_result
|
subscription_request_file.reviewed_result = reviewed_result
|
||||||
@ -624,7 +626,6 @@ class RequestViewSet(viewsets.ViewSet):
|
|||||||
subscription_request_file.reviewed_result = {"retailername": None, "sold_to_party": None, "purchase_date": [], "imei_number": [reviewed_result["imei_number"][subscription_request_file.index_in_request]]}
|
subscription_request_file.reviewed_result = {"retailername": None, "sold_to_party": None, "purchase_date": [], "imei_number": [reviewed_result["imei_number"][subscription_request_file.index_in_request]]}
|
||||||
subscription_request_file.save()
|
subscription_request_file.save()
|
||||||
|
|
||||||
reviewed_result = json.loads(data["reviewed_result"])
|
|
||||||
for field in ['retailername', 'sold_to_party', 'purchase_date', 'imei_number']:
|
for field in ['retailername', 'sold_to_party', 'purchase_date', 'imei_number']:
|
||||||
if not field in reviewed_result.keys():
|
if not field in reviewed_result.keys():
|
||||||
raise RequiredFieldException(excArgs=f'reviewed_result.{field}')
|
raise RequiredFieldException(excArgs=f'reviewed_result.{field}')
|
||||||
|
83
cope2n-api/fwd_api/management/commands/migrate-review.py
Normal file
83
cope2n-api/fwd_api/management/commands/migrate-review.py
Normal file
@ -0,0 +1,83 @@
|
|||||||
|
# myapp/management/commands/mycustomcommand.py
|
||||||
|
from django.core.management.base import BaseCommand
|
||||||
|
from fwd_api.models import SubscriptionRequestFile, SubscriptionRequest
|
||||||
|
import traceback
|
||||||
|
import copy
|
||||||
|
from openpyxl import load_workbook
|
||||||
|
import datetime
|
||||||
|
|
||||||
|
class Command(BaseCommand):
|
||||||
|
help = 'Migrate reviewed result'
|
||||||
|
|
||||||
|
def add_arguments(self, parser):
|
||||||
|
# Add your command-line arguments here
|
||||||
|
parser.add_argument('test', type=str, help='Value for the argument')
|
||||||
|
|
||||||
|
def process_request(self, subscription_request, ws, row):
|
||||||
|
if len(subscription_request.request_id.split(".")[0].split("_")) < 2:
|
||||||
|
return
|
||||||
|
|
||||||
|
try:
|
||||||
|
reviewed_result = copy.deepcopy(subscription_request.reviewed_result)
|
||||||
|
|
||||||
|
if reviewed_result is None:
|
||||||
|
reviewed_result = {
|
||||||
|
'request_id': subscription_request.request_id,
|
||||||
|
"retailername": None,
|
||||||
|
"sold_to_party": None,
|
||||||
|
"purchase_date": None,
|
||||||
|
"imei_number": []
|
||||||
|
}
|
||||||
|
|
||||||
|
# if ws['J' + str(row)].value:
|
||||||
|
# if isinstance(ws['J' + str(row)].value, str):
|
||||||
|
# reviewed_result['purchase_date'] = ws['J' + str(row)].value
|
||||||
|
# else:
|
||||||
|
# reviewed_result['purchase_date'] = datetime.date.strftime(ws['J' + str(row)].value, "%d/%m/%Y")
|
||||||
|
|
||||||
|
# bad_reason = ws['R' + str(row)].value
|
||||||
|
|
||||||
|
if ws['N' + str(row)].value:
|
||||||
|
reviewed_result['retailername'] = ws['N' + str(row)].value
|
||||||
|
|
||||||
|
bad_reason = ws['P' + str(row)].value
|
||||||
|
|
||||||
|
if not bad_reason:
|
||||||
|
bad_reason = ""
|
||||||
|
|
||||||
|
subscription_request_files = SubscriptionRequestFile.objects.filter(request=subscription_request)
|
||||||
|
|
||||||
|
for subscription_request_file in subscription_request_files:
|
||||||
|
if subscription_request_file.doc_type == 'invoice':
|
||||||
|
subscription_request_file.reviewed_result = reviewed_result
|
||||||
|
subscription_request_file.reviewed_result['imei_number'] = []
|
||||||
|
subscription_request_file.reason = bad_reason
|
||||||
|
# elif subscription_request_file.doc_type == 'imei' and len(reviewed_result['imei_number']) > 0:
|
||||||
|
# subscription_request_file.reviewed_result = {"retailername": None, "sold_to_party": None, "purchase_date": None, "imei_number": [reviewed_result["imei_number"][subscription_request_file.index_in_request]]}
|
||||||
|
subscription_request_file.save()
|
||||||
|
|
||||||
|
subscription_request.reviewed_result = reviewed_result
|
||||||
|
subscription_request.is_reviewed = True
|
||||||
|
|
||||||
|
subscription_request.save()
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
self.stdout.write(self.style.ERROR(f"Request: {subscription_request.request_id} failed with {e}"))
|
||||||
|
print(traceback.format_exc())
|
||||||
|
|
||||||
|
def handle(self, *args, **options):
|
||||||
|
test = options['test']
|
||||||
|
#open csv file
|
||||||
|
wb = load_workbook(filename = test)
|
||||||
|
ws = wb['Sheet1']
|
||||||
|
for row in range(2, 84):
|
||||||
|
print(ws['B' + str(row)].value)
|
||||||
|
request = SubscriptionRequest.objects.filter(request_id=ws['B' + str(row)].value).first()
|
||||||
|
if not request:
|
||||||
|
print("Not found ====>", row)
|
||||||
|
else:
|
||||||
|
self.process_request(request, ws, row)
|
||||||
|
print("")
|
||||||
|
|
||||||
|
|
||||||
|
self.stdout.write(self.style.SUCCESS('Sample Django management command executed successfully!'))
|
Loading…
Reference in New Issue
Block a user