def save(self, force_insert=False, force_update=False, using=None, update_fields=None): import decimal super(OfferSheet, self).save(force_insert, force_update, using, update_fields) if self.discount_amount > 0: sql = ( "UPDATE sale_offeritem a SET a.discount_price = a.sale_price - " "((SELECT discount_amount/amount FROM sale_offersheet WHERE id = %s) * (a.sale_price*a.cnt)/a.cnt) WHERE a.master_id = %s" ) params = [self.id, self.id] # print(sql % (self.id,self.id)) generic.update(sql, params) item_count = OfferItem.objects.filter(master=self).count() if self.attach and item_count == 0: path = os.path.join(settings.MEDIA_ROOT, self.attach.name) workbook = xlrd.open_workbook(path) sheet = workbook.sheet_by_index(0) row_count = sheet.nrows with transaction.atomic(): total_amount = decimal.Decimal(0) for row_index in range(row_count): row = sheet.row_values(row_index) if row_index == 0: doc_type = row[1] if doc_type.startswith("0"): break else: continue elif row_index < 3: continue material = None measure = None try: measure = Measure.objects.get(code=row[4]) except Exception as e: measure = Measure.objects.create(code=row[4], name=force_text(row[5])) try: material = Material.objects.get(code=row[0]) except Exception as e: material = Material(code=row[0], name=force_text(row[1]), spec=force_text(row[2])) material.sale_price = row[6] material.purchase_price = row[7] material.save() OfferItem.objects.create( master=self, material=material, measure=measure, cnt=row[8], brand=force_text(row[3]), cost_price=row[7], sale_price=row[6], ) total_amount += decimal.Decimal(row[6]) * decimal.Decimal(row[8]) sql = "update sale_offersheet set amount = %s where id=%s" params = [total_amount, self.id] generic.update(sql, params)
def save(self, force_insert=False, force_update=False, using=None, update_fields=None): if self.price and self.cnt: money = self.price * self.cnt self.amount = money if self.measure is None and self.material and self.material.measure.count( ) > 0: self.measure = self.material.measure.all()[0] if self.is_in_stock: self.left_cnt -= self.entry_cnt else: self.left_cnt = self.cnt super(POItem, self).save(force_insert, force_update, using, update_fields) self.material.purchase_price = self.price self.material.save() sql = 'UPDATE purchase_purchaseorder SET amount = (SELECT SUM(a.price*a.cnt) AS amount FROM ' \ 'purchase_poitem a WHERE a.po_id = %s) WHERE id = %s' params = [self.po.id, self.po.id] generic.update(sql, params)
def save(self, force_insert=False, force_update=False, using=None, update_fields=None): super(SaleOrder,self).save(force_insert,force_update,using,update_fields) if self.discount_amount > 0: sql = 'UPDATE sale_saleitem a SET a.discount_price = a.sale_price - ' \ '((SELECT discount_amount/amount FROM sale_saleorder WHERE id = %s) * (a.sale_price*a.cnt)/a.cnt) WHERE a.master_id = %s' params = [self.id,self.id] generic.update(sql,params)
def save(self, force_insert=False, force_update=False, using=None, update_fields=None): super(SaleOrder, self).save(force_insert, force_update, using, update_fields) if self.discount_amount > 0: sql = ( "UPDATE sale_saleitem a SET a.discount_price = a.sale_price - " "((SELECT discount_amount/amount FROM sale_saleorder WHERE id = %s) * (a.sale_price*a.cnt)/a.cnt) WHERE a.master_id = %s" ) params = [self.id, self.id] generic.update(sql, params)
def save(self, force_insert=False, force_update=False, using=None, update_fields=None): super(ValueList, self).save(force_insert, force_update, using, update_fields) sql = 'update basedata_valuelistitem set group_code = %s where groud_id=%s' params = [self.code, self.id] generic.update(sql, params)
def save(self, force_insert=False, force_update=False, using=None, update_fields=None): super(ReimbursementItem, self).save(force_insert, force_update, using, update_fields) sql = 'UPDATE selfhelp_reimbursement SET amount = (SELECT SUM(amount) FROM selfhelp_reimbursementitem WHERE reimbursement_id = %s) WHERE id = %s' params = [self.reimbursement.id, self.reimbursement.id] generic.update(sql, params)
def save(self, force_insert=False, force_update=False, using=None, update_fields=None): if self.material and self.material.measure.count() > 0: self.measure = self.material.measure.all()[0] if self.material.sale_price or self.material.stock_price: self.sale_price = self.material.sale_price or self.material.stock_price*decimal.Decimal(1.17)/decimal.Decimal(0.6) super(SaleItem,self).save(force_insert,force_update,using,update_fields) sql = 'update sale_saleorder set amount = (select sum(sale_price*cnt) from sale_saleitem where master_id=%s) where id=%s' params = [self.master.id,self.master.id] # print sql % (self.master.id,self.master.id) generic.update(sql,params)
def save(self, force_insert=False, force_update=False, using=None, update_fields=None): if self.material and self.material.measure.count() > 0: self.measure = self.material.measure.all()[0] if self.material.sale_price or self.material.stock_price: self.sale_price = self.material.sale_price or self.material.stock_price * decimal.Decimal( 1.17 ) / decimal.Decimal(0.6) super(OfferItem, self).save(force_insert, force_update, using, update_fields) sql = "update sale_offersheet set amount = (select sum(sale_price*cnt) from sale_offeritem where master_id=%s) where id=%s" params = [self.master.id, self.master.id] # print(sql % (self.master.id,self.master.id)) generic.update(sql, params)
def save(self, force_insert=False, force_update=False, using=None, update_fields=None): import decimal super(OfferSheet,self).save(force_insert,force_update,using,update_fields) if self.discount_amount > 0: sql = 'UPDATE sale_offeritem a SET a.discount_price = a.sale_price - ' \ '((SELECT discount_amount/amount FROM sale_offersheet WHERE id = %s) * (a.sale_price*a.cnt)/a.cnt) WHERE a.master_id = %s' params = [self.id,self.id] # print sql % (self.id,self.id) generic.update(sql,params) item_count = OfferItem.objects.filter(master=self).count() if self.attach and item_count == 0: path = os.path.join(settings.MEDIA_ROOT,self.attach.name) workbook = xlrd.open_workbook(path) sheet = workbook.sheet_by_index(0) row_count = sheet.nrows with transaction.atomic(): total_amount = decimal.Decimal(0) for row_index in range(row_count): row = sheet.row_values(row_index) if row_index == 0: doc_type = row[1] if doc_type.startswith('0'): break else: continue elif row_index < 3: continue material = None measure = None try: measure = Measure.objects.get(code=row[4]) except Exception as e: measure = Measure.objects.create(code=row[4],name=force_text(row[5])) try: material = Material.objects.get(code=row[0]) except Exception as e: material = Material(code=row[0],name=force_text(row[1]),spec=force_text(row[2])) material.sale_price = row[6] material.purchase_price = row[7] material.save() OfferItem.objects.create(master=self,material=material,measure=measure,cnt=row[8],brand=force_text(row[3]), cost_price=row[7],sale_price=row[6]) total_amount += decimal.Decimal(row[6])*decimal.Decimal(row[8]) sql = 'update sale_offersheet set amount = %s where id=%s' params = [total_amount,self.id] generic.update(sql,params)
def save(self, force_insert=False, force_update=False, using=None, update_fields=None): super(PurchaseOrder,self).save(force_insert,force_update,using,update_fields) if self.discount_amount > 0: sql = 'UPDATE purchase_poitem a SET a.discount_price = ' \ 'a.price-((SELECT discount_amount/amount FROM purchase_purchaseorder WHERE id=%s)*a.amount/a.cnt) WHERE a.po_id = %s' params = [self.id,self.id] generic.update(sql,params) item_count = POItem.objects.filter(po=self).count() if self.attach and item_count == 0: path = os.path.join(settings.MEDIA_ROOT,self.attach.name) workbook = xlrd.open_workbook(path) sheet = workbook.sheet_by_index(0) row_count = sheet.nrows with transaction.atomic(): total_amount = decimal.Decimal(0) for row_index in range(row_count): row = sheet.row_values(row_index) if row_index == 0: doc_type = row[1] if doc_type.startswith('0'): break else: continue elif row_index < 3: continue material = None measure = None try: measure = Measure.objects.get(code=row[4]) except Exception as e: measure = Measure.objects.create(code=row[4],name=force_text(row[5])) try: material = Material.objects.get(code=row[0]) except Exception as e: material = Material(code=row[0],name=force_text(row[1]),spec=force_text(row[2])) material.purchase_price = row[6] material.save() amount = decimal.Decimal(row[6])*decimal.Decimal(row[7]) POItem.objects.create(po=self,material=material,measure=measure,cnt=row[7],price=row[6],amount=amount) total_amount += amount sql = 'update purchase_purchaseorder set amount = %s where id=%s' params = [total_amount,self.id] generic.update(sql,params)
def save(self, force_insert=False, force_update=False, using=None, update_fields=None): super(PurchaseOrder,self).save(force_insert,force_update,using,update_fields) if self.discount_amount > 0: sql = 'UPDATE purchase_poitem a SET a.discount_price = ' \ 'a.price-((SELECT discount_amount/amount FROM purchase_purchaseorder WHERE id=%s)*a.amount/a.cnt) WHERE a.po_id = %s' params = [self.id,self.id] generic.update(sql,params) item_count = POItem.objects.filter(po=self).count() if self.attach and item_count == 0: path = os.path.join(settings.MEDIA_ROOT,self.attach.name) workbook = xlrd.open_workbook(path) sheet = workbook.sheet_by_index(0) row_count = sheet.nrows with transaction.atomic(): total_amount = decimal.Decimal(0) for row_index in range(row_count): row = sheet.row_values(row_index) if row_index == 0: doc_type = row[1] if doc_type.startswith('0'): break else: continue elif row_index < 3: continue material = None measure = None try: measure = Measure.objects.get(code=row[4]) except Exception,e: measure = Measure.objects.create(code=row[4],name=force_text(row[5])) try: material = Material.objects.get(code=row[0]) except Exception,e: material = Material(code=row[0],name=force_text(row[1]),spec=force_text(row[2])) material.purchase_price = row[6] material.save() amount = decimal.Decimal(row[6])*decimal.Decimal(row[7]) POItem.objects.create(po=self,material=material,measure=measure,cnt=row[7],price=row[6],amount=amount) total_amount += amount sql = 'update purchase_purchaseorder set amount = %s where id=%s' params = [total_amount,self.id] generic.update(sql,params)
def save(self, force_insert=False, force_update=False, using=None, update_fields=None): if self.price and self.cnt: money = self.price * self.cnt self.amount = money if self.measure is None and self.material and self.material.measure.count() > 0: self.measure = self.material.measure.all()[0] if self.is_in_stock: self.left_cnt -= self.entry_cnt else: self.left_cnt = self.cnt super(POItem,self).save(force_insert,force_update,using,update_fields) self.material.purchase_price = self.price self.material.save() sql = 'UPDATE purchase_purchaseorder SET amount = (SELECT SUM(a.price*a.cnt) AS amount FROM ' \ 'purchase_poitem a WHERE a.po_id = %s) WHERE id = %s' params = [self.po.id,self.po.id] generic.update(sql,params)
def save(self, force_insert=False, force_update=False, using=None, update_fields=None): super(ValueList,self).save(force_insert,force_update,using,update_fields) sql = 'update basedata_valuelistitem set group_code = %s where groud_id=%s' params = [self.code,self.id] generic.update(sql,params)
def save(self, force_insert=False, force_update=False, using=None, update_fields=None): super(ReimbursementItem, self).save(force_insert, force_update, using, update_fields) sql = "UPDATE selfhelp_reimbursement SET amount = (SELECT SUM(amount) FROM selfhelp_reimbursementitem WHERE reimbursement_id = %s) WHERE id = %s" params = [self.reimbursement.id, self.reimbursement.id] generic.update(sql, params)