update hatching
This commit is contained in:
67
app/views.py
67
app/views.py
@@ -797,6 +797,69 @@ class HatchingsViewSet(viewsets.ModelViewSet):
|
|||||||
'ک<EFBFBD><EFBFBD>ب': 'کاب'
|
'ک<EFBFBD><EFBFBD>ب': 'کاب'
|
||||||
}
|
}
|
||||||
if int(request.data['GoodSum']) > 0:
|
if int(request.data['GoodSum']) > 0:
|
||||||
|
poultry_data = {}
|
||||||
|
|
||||||
|
same_keys = [
|
||||||
|
'UnitName', 'SystemCode', 'EpidemiologicCode', 'LocationNameProvince',
|
||||||
|
'LocationNameCity', 'RegDate', 'RegDateShamsi', 'RegDateShamsiWithTime',
|
||||||
|
'RegDateShamsiOnlyTime', 'StringId', 'ModalCss', 'GridContainerParametersModel',
|
||||||
|
'MenuUserAccess', 'LogTableName', 'LogTableAlias', 'PageTitle',
|
||||||
|
'PartIdCode', 'UnitTypeName'
|
||||||
|
]
|
||||||
|
|
||||||
|
for key in same_keys:
|
||||||
|
if key in request.data and request.data[key] is not None:
|
||||||
|
poultry_data[key] = request.data[key]
|
||||||
|
|
||||||
|
bool_keys = ['IsPersisted', 'AllowInsert', 'AllowUpdate', 'UnitIsActive']
|
||||||
|
for key in bool_keys:
|
||||||
|
if key in request.data:
|
||||||
|
poultry_data[key] = bool(request.data[key])
|
||||||
|
|
||||||
|
if 'MenuUserAccessId' in request.data:
|
||||||
|
try:
|
||||||
|
poultry_data['MenuUserAccessId'] = int(request.data['MenuUserAccessId'])
|
||||||
|
except (ValueError, TypeError):
|
||||||
|
poultry_data['MenuUserAccessId'] = -1
|
||||||
|
|
||||||
|
if 'UnitPostalCode' in request.data:
|
||||||
|
poultry_data['PostalCode'] = request.data['UnitPostalCode']
|
||||||
|
|
||||||
|
if 'ProvinceName' in request.data:
|
||||||
|
poultry_data['Province'] = request.data['ProvinceName']
|
||||||
|
|
||||||
|
if 'CityName' in request.data:
|
||||||
|
poultry_data['City'] = request.data['CityName']
|
||||||
|
|
||||||
|
if 'PersonFullName' in request.data and 'UserName' not in poultry_data:
|
||||||
|
poultry_data['UserName'] = request.data['PersonFullName']
|
||||||
|
|
||||||
|
system_code = request.data.get('SystemCode')
|
||||||
|
if system_code:
|
||||||
|
poultry = Poultry.objects.filter(SystemCode=system_code).first()
|
||||||
|
|
||||||
|
if not poultry:
|
||||||
|
try:
|
||||||
|
poultry = Poultry.objects.create(**poultry_data)
|
||||||
|
poultry.save()
|
||||||
|
except Exception as e:
|
||||||
|
print(f"Error creating poultry: {e}")
|
||||||
|
else:
|
||||||
|
update_fields = []
|
||||||
|
for key, value in poultry_data.items():
|
||||||
|
if hasattr(poultry, key):
|
||||||
|
current_value = getattr(poultry, key)
|
||||||
|
if current_value != value:
|
||||||
|
setattr(poultry, key, value)
|
||||||
|
update_fields.append(key)
|
||||||
|
|
||||||
|
if update_fields:
|
||||||
|
try:
|
||||||
|
poultry.save(update_fields=update_fields)
|
||||||
|
except :
|
||||||
|
pass
|
||||||
|
|
||||||
|
poultry = Poultry.objects.filter(SystemCode=system_code).first()
|
||||||
bars = request.data.get('Transports', [])
|
bars = request.data.get('Transports', [])
|
||||||
if 'Transports' in request.data:
|
if 'Transports' in request.data:
|
||||||
request.data.pop('Transports')
|
request.data.pop('Transports')
|
||||||
@@ -809,10 +872,12 @@ class HatchingsViewSet(viewsets.ModelViewSet):
|
|||||||
if hatching:
|
if hatching:
|
||||||
for key, value in request.data.items():
|
for key, value in request.data.items():
|
||||||
setattr(hatching, key, value)
|
setattr(hatching, key, value)
|
||||||
|
if hatching.poultry is None:
|
||||||
|
hatching.poultry=poultry
|
||||||
hatching.save()
|
hatching.save()
|
||||||
|
|
||||||
else:
|
else:
|
||||||
poultry = Poultry.objects.filter(SystemCode=request.data['SystemCode']).first()
|
|
||||||
hatchings = Hatching.objects.filter(poultry=poultry).order_by('id').last()
|
hatchings = Hatching.objects.filter(poultry=poultry).order_by('id').last()
|
||||||
period = hatchings.Period + 1 if hatchings else 1
|
period = hatchings.Period + 1 if hatchings else 1
|
||||||
request.data['Period'] = period
|
request.data['Period'] = period
|
||||||
|
|||||||
Reference in New Issue
Block a user