Skip to content

Instantly share code, notes, and snippets.

@widoyo
Last active December 13, 2015 20:18
Show Gist options
  • Save widoyo/4968810 to your computer and use it in GitHub Desktop.
Save widoyo/4968810 to your computer and use it in GitHub Desktop.
Script bantu data Sparelog
>>> # untuk import Lead Time yang berupa Matriks
>>>
>>> rdr = csv.reader(lines, delimiter='\t')
>>> h = rdr.next()[1:]
>>> for d in rdr:
... if d[0] != 'TANJUNG PANDAN':
... p1 = dpool[d[0]]
... i = 1
... for np in h:
... if np != 'TANJUNG PANDAN':
... p2 = dpool[np]
... if p1 != p2:
... lt = LeadTime.objects.create(pool1=p1, pool2=p2, lead_time=int(d[i]), cu_id=1, mu_id=1)
... i += 1
...
>>> reader = csv.reader(lines, delimiter='\t')
>>> for d in reader:
... (pn,sn,desc,qty) = d
... mr, dumm = ModuleRef.objects.get_or_create(partnum=pn, defaults={'desc': desc, 'vendor': '1', 'cu_id': 1, 'mu_id': 1, 'uom': 'PCS'})
... sp = Sparepart.objects.create(partnum=mr, sn=sn, pool_id=1, cu_id=1, mu_id=1, owner='9', faulty=False, jumlah=int(qty))
... m = Moving.objects.create(sparepart=sp, tanggal=t19, dari='DHK IDJKT', ke='INTI IDJKT', user='admin', tipe='1')
>>> i = 0
>>> lines = open('/home/widoyo/Desktop/ho/ho_050213.csv').readlines()
>>> reader = csv.reader(lines, delimiter='\t')
>>> for d in reader:
... (p, pn, desc, uom, qt, sn) = d
... mr, dumm = ModuleRef.objects.get_or_create(partnum=pn, defaults={'desc': desc, 'vendor': '5', 'cu_id': 1, 'mu_id': 1, 'uom': uom})
... if sn:
... try:
... sp = Sparepart.objects.get(sn=sn)
'''
Mengimport data handover
Asal: file Comma Separated Value
Tujuan:
class ModuleRef
class Sparepart
class Moving
Data lain dibutuhkan:
class Pool
VENDOR_CHOICE
Referensi: hsm/models.py
format file '/tmp/gsk_hcpt_nsn_gu.csv' diterjemahkan: pool IDGSK sparepart milik 'HCPT NSN', Good Unit (gu)
Format kolomnya: (\t = TAB)
partnum\tserialnum\tjumlah
'''
import csv # module standard python
from hsm.models import Pool, Sparepart, ModuleRef
lines = open('/tmp/gsk_hcpt_nsn_gu.csv').readlines()
reader = csv.reader(lines, delimiter='\t')
# siapkan data referensi
pool = Pool.objects.get(code='IDGSK')
owner = '8' # lihat ke https://bitbucket.org/widoyo/sparelog-hsm/src/d99720e2907c25083ac5ecb74e4dadccbdcc6eff/hsm/models.py?at=default#cl-8
vendor = '1' # '1' = NSN partnum > 8 digit, '5' = Huawei partnum = 8 digit
for d in reader:
(pn, sn, qty) = d
mr, dummy = ModuleRef.objects.get_or_create(partnum=pn, defaults={'desc': 'no desc', 'vendor': vendor, 'cu_id': 1, 'mu_id': 1, 'uom': 'PCS'})
if sn:
# jika sparepart ber-SN
sp, dummy = Sparepart.objects.get_or_create(sn=sn, defaults={'partnum': mr, 'jumlah': qty, 'owner': owner, 'faulty': False, 'pool': pool, 'cu_id': 1, 'mu_id': 1})
else:
# jika partnumber ini telah ada pada Pool
sp, created = Sparepart.objects.get_or_create(partnum=mr, pool=pool, defaults={'owner': owner, 'faulty': False, 'cu_id': 1, 'mu_id': 1, 'jumlah': int(qty)})
if not created:
# sparepart telah terdaftar pada pool ini, jadi jumlah ditambahkan
sp.jumlah = sp.jumlah + qty
# sp = Sparepart.objects.create(partnum=mr, sn=sn, jumlah=int(qt), cu_id=1, mu_id=1, pool=tng, faulty=False, owner='8')
import csv
from hsm.models import Engineer
read = csv.reader(open('/home/widoyo/Desktop/order.csv').readlines(), delimiter='\t')
i = 0
read.next() # baris pertama HEADER
for d in read:
try:
e = Engineer.objects.get(name=d[3]) # kolom index 3 = Applicant
except Engineer.DoesNotExist:
i += 1
print i, d[3] # nama applicant yang tidak ada pada table Engineer
'''
Mencari Serial Number yang doble
Tergantung kepada http://bitbucket.org/widoyo/sparelog-hsm dan data sparepart
'''
from hsm.models import Sparepart
i = 0
ts = ''
sn_out = []
for s in Sparepart.objects.exclude(sn='-').order_by('sn'):
if ts != s.sn:
ts = s.sn
else:
i += 1
print i, s.sn
sn_out.append(s.sn)
# Hapus yang doble (kedua)
for s in sn_out:
a = 0
for sp in Sparepart.objects.filter(sn=s):
a += 1
print a, s, sp.id
if a == 2:
print 'del', s, sp.id
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment