def process_nc2(file_name): incoming_name = os.path.join(INCOMING_ROOT, file_name) wh_records, errors = NC2CSVModel.import_data(data=open(incoming_name, 'rU')) wh_id = inventory_api.warehouse('NC2', {})['id'] new_recs_ctr = 0 exist_recs_ctr = 0 errors_cnt = len(errors) for rec in wh_records: rec['warehouse_id'] = wh_id rec_obj = WarehouseFulfill.objects \ .filter(warehouse_pack_id=rec['warehouse_pack_id']) \ .first() if rec_obj: # if warehose fulfill object already exists ... skip to next one exist_recs_ctr += 1 else: new_recs_ctr += 1 rec_obj = WarehouseFulfill(**rec) rec_obj.save() if rec_obj.fulfillment: create_nc2_shippingcharge(rec_obj) summary_msg = 'Loaded NC2 file: %d new records, %d duplicate records, %d bad rows' \ % (new_recs_ctr, exist_recs_ctr, errors_cnt) return summary_msg, errors
def backfill_nc2_shipcharges(): # delete the old ones ShippingCharge.objects.filter(shipper__company__id='IFS360').delete() new_charges = 0 duplicated_not_saved = 0 unknown = 0 for wf in WarehouseFulfill.objects \ .filter(warehouse__label='NC2'): ret_code = create_nc2_shippingcharge(wf) if ret_code == 'SHIPPING CHARGE ALREADY EXISTS': duplicated_not_saved += 1 elif ret_code == 'SHIPPING CHARGE CREATED': new_charges += 1 else: unknown += 1 logger.info('Manual Migration: backfill_nc2_shipcharges') logger.info('%s new shipping charges, %s duplicated not saved, %s unknown' \ % (new_charges, duplicated_not_saved, unknown)) return