resources.py 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. # -*- coding: utf-8 -*-
  2. from __future__ import absolute_import
  3. from import_export import resources
  4. from import_export.fields import Field
  5. from apps.base import ExcelImporter
  6. from apps.goods.models import Goods, GoodsGodownEntry, GoodsGodownEntryDetail
  7. class GoodsResource(resources.Resource):
  8. def __init__(self):
  9. super(GoodsResource, self).__init__()
  10. self.fields['name'] = Field(attribute='name')
  11. self.fields['model'] = Field(attribute='model')
  12. self.fields['option_type_text'] = Field(attribute='option_type_text')
  13. self.fields['standard'] = Field(attribute='standard')
  14. self.fields['goods_pack'] = Field(attribute='goods_pack')
  15. self.fields['unit'] = Field(attribute='unit')
  16. self.fields['code'] = Field(attribute='code')
  17. self.fields['warehouse_place'] = Field(attribute='warehouse_place')
  18. self.fields['retail_price'] = Field(attribute='retail_price')
  19. self.fields['enabled_text'] = Field(attribute='enabled_text')
  20. self.fields['notes'] = Field(attribute='notes')
  21. def get_export_headers(self):
  22. return [u'名称', u'代码', u'类别', u'标准', u'包装', u'单位', u'助记码', u'库位', u'销售价', u'在用', u'备注',]
  23. class Meta:
  24. fields = ('name', 'model', 'option_type_text', 'standard', 'goods_pack', 'unit', 'code', 'warehouse_place', 'retail_price',
  25. 'enabled_text', 'notes',)
  26. export_order = fields
  27. class GoodsImporter(ExcelImporter):
  28. fields = {
  29. u'类别': (True, ExcelImporter.formatUnicode),
  30. u'名称': (True, ExcelImporter.formatUnicode),
  31. u'代码': (True, ExcelImporter.formatUnicode),
  32. u'标准': (False, ExcelImporter.formatUnicode),
  33. u'包装': (False, ExcelImporter.formatUnicode),
  34. u'库位': (False, ExcelImporter.formatUnicode),
  35. u'销售价': (True, ExcelImporter.formatFloatGeZ),
  36. u'备注': (False, ExcelImporter.formatUnicode),
  37. }
  38. class GoodsGodownEntryResource(resources.Resource):
  39. def __init__(self, is_show_cost=True):
  40. super(GoodsGodownEntryResource, self).__init__()
  41. self.is_show_cost = is_show_cost
  42. self.fields['no'] = Field(attribute='no')
  43. self.fields['total_count'] = Field(attribute='total_count')
  44. self.fields['warehouse_text'] = Field(attribute='warehouse_text')
  45. self.fields['create_user_text'] = Field(attribute='create_user_text')
  46. self.fields['create_time'] = Field(attribute='create_time')
  47. self.fields['status_text'] = Field(attribute='status_text')
  48. self.fields['check_user_text'] = Field(attribute='check_user_text')
  49. self.fields['check_time'] = Field(attribute='check_time')
  50. self.fields['notes'] = Field(attribute='notes')
  51. if is_show_cost:
  52. self.fields['total_amount'] = Field(attribute='total_amount')
  53. self.fields['total_invoice_amount'] = Field(attribute='total_invoice_amount')
  54. fields = ('no', 'total_count', 'total_amount','total_invoice_amount', 'warehouse_text', 'create_user_text', 'create_time', 'status_text',
  55. 'check_user_text', 'check_time', 'notes')
  56. else:
  57. fields = ('no', 'total_count', 'warehouse_text', 'create_user_text', 'create_time', 'status_text',
  58. 'check_user_text', 'check_time', 'notes')
  59. self._meta.export_order = fields
  60. def get_export_headers(self):
  61. if self.is_show_cost:
  62. return [u'单号', u'数量合计', u'金额合计',u'发票金额合计', u'仓别', u'创建人', u'创建时间' , u'审核状态',u'审核人', u'审核时间', u'备注']
  63. return [u'单号', u'数量合计', u'仓别', u'创建人', u'创建时间' , u'审核状态',u'审核人', u'审核时间', u'备注']
  64. class GoodsGodownEntryDetailResource(resources.Resource):
  65. def __init__(self, is_show_cost=True):
  66. super(GoodsGodownEntryDetailResource, self).__init__()
  67. self.is_show_cost = is_show_cost
  68. self.fields['goods_text'] = Field(attribute='goods_text')
  69. self.fields['goods_model'] = Field(attribute='goods_model')
  70. self.fields['count'] = Field(attribute='count')
  71. self.fields['notes'] = Field(attribute='notes')
  72. if is_show_cost:
  73. self.fields['price'] = Field(attribute='price')
  74. self.fields['amount'] = Field(attribute='amount')
  75. self.fields['invoice_amount'] = Field(attribute='invoice_amount')
  76. fields = ('goods_text', 'goods_model', 'count', 'price', 'amount', 'invoice_amount', 'notes')
  77. else:
  78. fields = ('goods_text', 'goods_model', 'count', 'notes')
  79. self._meta.export_order = fields
  80. def get_export_headers(self):
  81. if self.is_show_cost:
  82. return [u'成品名称', u'成品代码', u'数量', u'单价', u'金额', u'发票金额', u'备注']
  83. return [u'成品名称', u'成品代码', u'数量', u'备注']
  84. class GoodsGodownEntryImporter(ExcelImporter):
  85. fields = {
  86. u'成品名称': (False, ExcelImporter.formatUnicode),
  87. u'成品代码': (True, ExcelImporter.formatUnicode),
  88. u'数量': (True, ExcelImporter.formatFloatGtZ),
  89. u'单价': (True, ExcelImporter.formatFloatGeZ),
  90. u'发票金额': (True, ExcelImporter.formatFloatGeZ),
  91. u'备注': (False, ExcelImporter.formatUnicode),
  92. }
  93. class GoodsProductResource(resources.Resource):
  94. def __init__(self):
  95. super(GoodsProductResource, self).__init__()
  96. self.fields['name'] = Field(attribute='name')
  97. self.fields['model'] = Field(attribute='model')
  98. self.fields['option_type_text'] = Field(attribute='option_type_text')
  99. self.fields['standard'] = Field(attribute='standard')
  100. self.fields['stock_count'] = Field(attribute='stock_count')
  101. self.fields['warehouse_place'] = Field(attribute='warehouse_place')
  102. self.fields['unit'] = Field(attribute='unit')
  103. self.fields['enabled_text'] = Field(attribute='enabled_text')
  104. self.fields['code'] = Field(attribute='code')
  105. self.fields['notes'] = Field(attribute='notes')
  106. def get_export_headers(self):
  107. return [u'名称', u'代码', u'类别', u'规格', u'库存', u'库位', u'单位', u'在用', u'助记码', u'备注',]
  108. class Meta:
  109. fields = ('name', 'model', 'option_type_text', 'standard', 'stock_count', 'warehouse_place', 'unit',
  110. 'enabled_text', 'code', 'notes',)
  111. export_order = fields
  112. class GodownEntryQueryResource(resources.Resource):
  113. def __init__(self, is_show_cost=True):
  114. super(GodownEntryQueryResource, self).__init__()
  115. self.is_show_cost = is_show_cost
  116. self.fields['no'] = Field(attribute='no')
  117. self.fields['type'] = Field(attribute='type')
  118. self.fields['product_name'] = Field(attribute='product_name')
  119. self.fields['product_model'] = Field(attribute='product_model')
  120. self.fields['product_unit'] = Field(attribute='product_unit')
  121. self.fields['product_type'] = Field(attribute='product_type')
  122. self.fields['warehouse'] = Field(attribute='warehouse')
  123. self.fields['count'] = Field(attribute='count')
  124. self.fields['deliver_count'] = Field(attribute='deliver_count')
  125. self.fields['surplus_count'] = Field(attribute='surplus_count')
  126. self.fields['create_user'] = Field(attribute='create_user')
  127. self.fields['check_time'] = Field(attribute='check_time')
  128. self.fields['warehouse_place'] = Field(attribute='warehouse_place')
  129. self.fields['notes'] = Field(attribute='notes')
  130. if is_show_cost:
  131. self.fields['price'] = Field(attribute='price')
  132. self.fields['amount'] = Field(attribute='amount')
  133. fields = (
  134. 'no', 'type', 'product_name', 'product_model', 'product_unit', 'product_type', 'warehouse',
  135. 'price', 'count', 'amount', 'deliver_count', 'surplus_count', 'create_user', 'check_time',
  136. 'warehouse_place', 'notes')
  137. else:
  138. fields = (
  139. 'no', 'type', 'product_name', 'product_model', 'product_unit', 'product_type', 'warehouse',
  140. 'count', 'deliver_count', 'surplus_count', 'create_user', 'check_time',
  141. 'warehouse_place', 'notes')
  142. self._meta.export_order = fields
  143. def get_export_headers(self):
  144. if self.is_show_cost:
  145. return [u'入库单号', u'入库类别', u'成品名称', u'成品代码', u'单位', u'产品类别', u'仓别', u'入库单价', u'数量'
  146. , u'合计金额', u'出库数量', u'剩余数量', u'创建人', u'审核时间', u'存放库位', u'备注']
  147. return [u'入库单号', u'入库类别', u'成品名称', u'成品代码', u'单位', u'产品类别', u'仓别', u'数量',
  148. u'出库数量', u'剩余数量', u'创建人', u'审核时间', u'存放库位', u'备注']