Esempio n. 1
0
def _create_part(creator_profile, asset_data, part_info_data, sn):
    part_info = PartInfo(**part_info_data)
    part_info.save(user=creator_profile.user)
    asset = Asset(part_info=part_info,
                  sn=sn.strip(),
                  created_by=creator_profile,
                  **asset_data)
    asset.save(user=creator_profile.user)
    return asset.id
Esempio n. 2
0
def _create_part(creator_profile, asset_data, part_info_data, sn):
    part_info = PartInfo(**part_info_data)
    part_info.save(user=creator_profile.user)
    asset = Asset(
        part_info=part_info,
        sn=sn.strip(),
        created_by=creator_profile,
        **asset_data
    )
    asset.save(user=creator_profile.user)
    return asset.id
 def create_asset(self, record_id, roolback=True):
     obj = ImportRecord.objects.get(id=record_id)
     date = obj.date or None
     obj.device_id, crtd = Device.objects.get_or_create(sn=obj.sn)
     ass = Asset.create(
         base_args=dict(
             type=AssetType.data_center,
             model=AssetModel.concurrent_get_or_create(name=obj.model)[0],
             category=AssetCategory.concurrent_get_or_create(
                 name=obj.device_type,defaults=dict(type=AssetCategoryType.data_center))[0],
             invoice_no=obj.fv,
             price=decimal.Decimal(str(obj.invent_value.replace(',', '.')) or 0),
             remarks=obj.info + '\n' + 'Inw. name: ' + obj.name,
             niw=obj.niw,
             production_use_date=date,
             source=AssetSource.shipment,
             sn=obj.sn or None,
             barcode=obj.barcode or None,
             deprecation_rate=decimal.Decimal(obj.deprecation_rate.replace(',','.') or 0),
             warehouse=Warehouse.concurrent_get_or_create(name=obj.dc)[0],
         ),
         device_info_args=dict(
             ralph_device_id=obj.device_id.id,
             u_level=obj.u_level,
             u_height=obj.u_height,
             size=0,
             rack=obj.rack,
         ),
     )
     obj.imported = True
     obj.save()
     return ass
Esempio n. 4
0
def _create_device(creator_profile, asset_data, device_info_data, sn, mode,
                   barcode=None):
    device_info = DeviceInfo()
    if mode == 'dc':
        device_info.ralph_device_id = device_info_data['ralph_device_id']
        device_info.u_level = device_info_data['u_level']
        device_info.u_height = device_info_data['u_height']
    device_info.save(user=creator_profile.user)
    asset = Asset(
        device_info=device_info,
        sn=sn.strip(),
        created_by=creator_profile,
        **asset_data
    )
    if barcode:
        asset.barcode = barcode
    asset.save(user=creator_profile.user)
    return asset.id
Esempio n. 5
0
def _create_device(creator_profile, asset_data, device_info_data, sn, mode,
                   barcode=None):
    device_info = DeviceInfo()
    if mode == 'dc':
        device_info.size = device_info_data['size']
        device_info.ralph_device_id = device_info_data['ralph_device_id']
        device_info.u_level = device_info_data['u_level']
        device_info.u_height = device_info_data['u_height']
    device_info.save(user=creator_profile.user)
    asset = Asset(
        device_info=device_info,
        sn=sn.strip(),
        created_by=creator_profile,
        **asset_data
    )
    if barcode:
        asset.barcode = barcode
    asset.save(user=creator_profile.user)
    return asset.id
Esempio n. 6
0
def _create_assets(creator_profile, asset_form, additional_form, mode):
    asset_data = {}
    for f_name, f_value in asset_form.cleaned_data.items():
        if f_name not in {
            "barcode", "category", "company", "cost_center",
            "department", "employee_id", "imei", "licences", "manager",
            "management_ip", "sn", "profit_center", "supports", "segment",
        }:
            asset_data[f_name] = f_value
    force_unlink = additional_form.cleaned_data.pop('force_unlink', None)
    sns = asset_form.cleaned_data.get('sn', [])
    barcodes = asset_form.cleaned_data.get('barcode', [])
    imeis = (
        asset_form.cleaned_data.pop('imei')
        if 'imei' in asset_form.cleaned_data else None
    )

    assets_ids = []
    for index in range(len(sns or barcodes)):
        asset_data['sn'] = sns[index] if sns else None
        asset_data['barcode'] = barcodes[index] if barcodes else None
        if imeis:
            additional_form.cleaned_data['imei'] = imeis[index]
        cleaned_additional_info = additional_form.cleaned_data
        if mode == 'dc':
            asset = Asset(created_by=creator_profile, **asset_data)
            device_info = DeviceInfo(**cleaned_additional_info)
            device_info.save(user=creator_profile.user)
            asset.device_info = device_info
            asset.save(user=creator_profile.user, force_unlink=force_unlink)
        elif mode == 'back_office':
            _move_data(asset_data, cleaned_additional_info, ['purpose'])
            asset = Asset(created_by=creator_profile, **asset_data)
            office_info = OfficeInfo()
            office_info.__dict__.update(**cleaned_additional_info)
            office_info.coa_oem_os = cleaned_additional_info['coa_oem_os']
            office_info.save(user=creator_profile.user)
            asset.office_info = office_info
            asset.save(user=creator_profile.user)
        asset.save(force_unlink=force_unlink)
        update_management_ip(asset, asset_form.cleaned_data)
        assets_ids.append(asset.id)
    return assets_ids
Esempio n. 7
0
def _create_assets(creator_profile, asset_form, additional_form, mode):
    asset_data = {}
    for f_name, f_value in asset_form.cleaned_data.items():
        if f_name not in {
            "barcode", "category", "company", "cost_center",
            "department", "employee_id", "imei", "licences", "manager",
            "sn", "profit_center", "supports",
        }:
            asset_data[f_name] = f_value
    force_unlink = additional_form.cleaned_data.get('force_unlink', None)
    sns = asset_form.cleaned_data.get('sn', [])
    barcodes = asset_form.cleaned_data.get('barcode', [])
    imeis = (
        asset_form.cleaned_data.pop('imei')
        if 'imei' in asset_form.cleaned_data else None
    )

    assets_ids = []
    for index in range(len(sns or barcodes)):
        asset_data['sn'] = sns[index] if sns else None
        asset_data['barcode'] = barcodes[index] if barcodes else None
        if imeis:
            additional_form.cleaned_data['imei'] = imeis[index]
        cleaned_additional_info = additional_form.cleaned_data
        if mode == 'dc':
            asset = Asset(created_by=creator_profile, **asset_data)
            device_info = DeviceInfo()
            for field in ['ralph_device_id', 'u_level', 'u_height']:
                setattr(device_info, field, cleaned_additional_info[field])
            device_info.save(
                user=creator_profile.user,
            )
            asset.device_info = device_info
            asset.save(
                user=creator_profile.user,
                force_unlink=cleaned_additional_info['force_unlink'],
            )
        elif mode == 'back_office':
            _move_data(asset_data, cleaned_additional_info, ['purpose'])
            asset = Asset(created_by=creator_profile, **asset_data)
            office_info = OfficeInfo()
            office_info.__dict__.update(**cleaned_additional_info)
            office_info.coa_oem_os = cleaned_additional_info['coa_oem_os']
            office_info.save(user=creator_profile.user)
            asset.office_info = office_info
            asset.save(user=creator_profile.user)
        asset.save(force_unlink=force_unlink)
        assets_ids.append(asset.id)
    return assets_ids