resources.py 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  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. class MaterialResource(resources.Resource):
  7. def __init__(self):
  8. super(MaterialResource, self).__init__()
  9. self.fields['name'] = Field(attribute='name')
  10. self.fields['model'] = Field(attribute='model')
  11. self.fields['option_type_text'] = Field(attribute='option_type_text')
  12. self.fields['unit'] = Field(attribute='unit')
  13. self.fields['standard'] = Field(attribute='standard')
  14. self.fields['warehouse_place'] = Field(attribute='warehouse_place')
  15. self.fields['purchase_suggest_text'] = Field(attribute='purchase_suggest_text')
  16. self.fields['stock_upper_limit'] = Field(attribute='stock_upper_limit')
  17. self.fields['stock_lower_limit'] = Field(attribute='stock_lower_limit')
  18. self.fields['enabled_text'] = Field(attribute='enabled_text')
  19. self.fields['notes'] = Field(attribute='notes')
  20. def get_export_headers(self):
  21. return [u'名称', u'代码', u'类别', u'单位', u'规格', u'库位', u'库存预警', u'库存上限', u'库存下限', u'在用', u'备注',]
  22. class Meta:
  23. fields = ('name', 'model', 'option_type_text', 'unit', 'standard', 'warehouse_place', 'purchase_suggest_text',
  24. 'stock_upper_limit', 'stock_lower_limit', 'enabled_text', 'notes',)
  25. export_order = fields
  26. class MaterialImporter(ExcelImporter):
  27. fields = {
  28. u'类别': (True, ExcelImporter.formatUnicode),
  29. u'名称': (True, ExcelImporter.formatUnicode),
  30. u'代码': (True, ExcelImporter.formatUnicode),
  31. u'单位': (False, ExcelImporter.formatUnicode),
  32. u'产品标识': (False, ExcelImporter.formatUnicode),
  33. u'规格': (False, ExcelImporter.formatUnicode),
  34. u'库位': (False, ExcelImporter.formatUnicode),
  35. u'库存预警': (True, ExcelImporter.formatUnicode),
  36. u'库存上限': (True, ExcelImporter.formatFloatGeZ),
  37. u'库存下限': (True, ExcelImporter.formatFloatGeZ),
  38. u'备注': (False, ExcelImporter.formatUnicode),
  39. }
  40. class ConsumableResource(resources.Resource):
  41. def __init__(self):
  42. super(ConsumableResource, self).__init__()
  43. self.fields['name'] = Field(attribute='name')
  44. self.fields['model'] = Field(attribute='model')
  45. self.fields['option_type_text'] = Field(attribute='option_type_text')
  46. self.fields['unit'] = Field(attribute='unit')
  47. self.fields['standard'] = Field(attribute='standard')
  48. self.fields['warehouse_place'] = Field(attribute='warehouse_place')
  49. self.fields['purchase_suggest_text'] = Field(attribute='purchase_suggest_text')
  50. self.fields['stock_upper_limit'] = Field(attribute='stock_upper_limit')
  51. self.fields['stock_lower_limit'] = Field(attribute='stock_lower_limit')
  52. self.fields['enabled_text'] = Field(attribute='enabled_text')
  53. self.fields['notes'] = Field(attribute='notes')
  54. def get_export_headers(self):
  55. return [u'名称', u'代码', u'类别', u'单位', u'规格', u'库位', u'库存预警', u'库存上限', u'库存下限', u'在用', u'备注',]
  56. class Meta:
  57. fields = ('name', 'model', 'option_type_text', 'unit', 'standard', 'warehouse_place', 'purchase_suggest_text',
  58. 'stock_upper_limit', 'stock_lower_limit', 'enabled_text', 'notes',)
  59. export_order = fields
  60. class ConsumableImporter(ExcelImporter):
  61. fields = {
  62. u'类别': (True, ExcelImporter.formatUnicode),
  63. u'名称': (True, ExcelImporter.formatUnicode),
  64. u'代码': (True, ExcelImporter.formatUnicode),
  65. u'单位': (False, ExcelImporter.formatUnicode),
  66. u'规格': (False, ExcelImporter.formatUnicode),
  67. u'库位': (False, ExcelImporter.formatUnicode),
  68. u'库存预警': (True, ExcelImporter.formatUnicode),
  69. u'库存上限': (True, ExcelImporter.formatFloatGeZ),
  70. u'库存下限': (True, ExcelImporter.formatFloatGeZ),
  71. u'备注': (False, ExcelImporter.formatUnicode),
  72. }
  73. class DeliverResource(resources.Resource):
  74. def __init__(self, is_show_cost=True):
  75. super(DeliverResource, self).__init__()
  76. self.is_show_cost = is_show_cost
  77. self.fields['no'] = Field(attribute='no')
  78. self.fields['status_text'] = Field(attribute='status_text')
  79. self.fields['create_user_text'] = Field(attribute='create_user_text')
  80. self.fields['create_time'] = Field(attribute='create_time')
  81. self.fields['check_user_text'] = Field(attribute='check_user_text')
  82. self.fields['check_time'] = Field(attribute='check_time')
  83. self.fields['receiver_text'] = Field(attribute='receiver_text')
  84. self.fields['receiver_department_text'] = Field(attribute='receiver_department_text')
  85. self.fields['goods_text'] = Field(attribute='goods_text')
  86. self.fields['warehouse_text'] = Field(attribute='warehouse_text')
  87. self.fields['total_count'] = Field(attribute='total_count')
  88. self.fields['notes'] = Field(attribute='notes')
  89. if is_show_cost:
  90. self.fields['total_cost'] = Field(attribute='total_cost')
  91. fields = ('no', 'goods_text', 'receiver_text', 'receiver_department_text','warehouse_text', 'total_count', 'total_cost', 'create_time',
  92. 'create_user_text', 'status_text', 'check_time', 'check_user_text', 'notes',)
  93. else:
  94. fields = ('no', 'goods_text', 'receiver_text', 'receiver_department_text', 'warehouse_text', 'total_count', 'create_time',
  95. 'create_user_text', 'status_text', 'check_time', 'check_user_text', 'notes',)
  96. self._meta.export_order = fields
  97. def get_export_headers(self):
  98. if self.is_show_cost:
  99. return [u'出库单号', u'成品', u'领用人',u'领用部门', u'仓别', u'合计数量', u'合计成本', u'创建时间', u'创建人', u'审核状态', u'审核时间', u'审核人' , u'备注']
  100. return [u'出库单号', u'成品', u'领用人',u'领用部门', u'仓别', u'合计数量', u'创建时间', u'创建人', u'审核状态', u'审核时间', u'审核人' , u'备注']
  101. class DeliverDetailResource(resources.Resource):
  102. def __init__(self, is_show_cost=True):
  103. super(DeliverDetailResource, self).__init__()
  104. self.is_show_cost = is_show_cost
  105. self.fields['name'] = Field(attribute='name')
  106. self.fields['model'] = Field(attribute='model')
  107. self.fields['unit_text'] = Field(attribute='unit_text')
  108. self.fields['count'] = Field(attribute='count')
  109. self.fields['no'] = Field(attribute='no')
  110. self.fields['warehouse_stock_count'] = Field(attribute='warehouse_stock_count')
  111. self.fields['notes'] = Field(attribute='notes')
  112. if is_show_cost:
  113. self.fields['total_cost'] = Field(attribute='total_cost')
  114. fields = ('name', 'model', 'unit_text', 'no', 'count', 'warehouse_stock_count', 'total_cost', 'notes')
  115. else:
  116. fields = ('name', 'model', 'unit_text', 'no', 'count', 'warehouse_stock_count', 'notes')
  117. self._meta.export_order=fields
  118. def get_export_headers(self):
  119. if self.is_show_cost:
  120. return [u'产品名称', u'产品代码', u'单位', u'入库单号', u'数量', u'仓别库存', u'成本合计', u'备注']
  121. return [u'名称', u'代码', u'单位', u'入库单号', u'数量', u'仓别库存', u'备注']
  122. class InventoryResource(resources.Resource):
  123. def __init__(self, is_show_cost):
  124. super(InventoryResource, self).__init__()
  125. self.is_show_cost = is_show_cost
  126. self.fields['no'] = Field(attribute='no')
  127. self.fields['type_text'] = Field(attribute='type_text')
  128. self.fields['total_count'] = Field(attribute='total_count')
  129. self.fields['warehouse_text'] = Field(attribute='warehouse_text')
  130. self.fields['create_user_text'] = Field(attribute='create_user_text')
  131. self.fields['create_time'] = Field(attribute='create_time')
  132. self.fields['check_status_text'] = Field(attribute='check_status_text')
  133. self.fields['check_user_text'] = Field(attribute='check_user_text')
  134. self.fields['check_time'] = Field(attribute='check_time')
  135. self.fields['notes'] = Field(attribute='notes')
  136. if is_show_cost:
  137. self.fields['total_amount'] = Field(attribute='total_amount')
  138. fields = (
  139. 'no', 'type_text', 'total_count', 'total_amount','warehouse_text', 'create_time','create_user_text', 'check_status_text',
  140. 'check_time', 'check_user_text', 'notes',)
  141. else:
  142. fields = (
  143. 'no', 'type_text', 'total_count', 'warehouse_text', 'create_time', 'create_user_text', 'check_status_text',
  144. 'check_time', 'check_user_text', 'notes',)
  145. self._meta.export_order = fields
  146. def get_export_headers(self):
  147. if self.is_show_cost:
  148. return [u'盘存单号', u'类别', u'合计数量', u'合计金额', u'仓别', u'创建时间', u'创建人', u'审核状态', u'审核时间', u'审核人', u'备注']
  149. return [u'盘存单号', u'类别', u'合计数量', u'仓别', u'创建时间', u'创建人', u'审核状态', u'审核时间', u'审核人', u'备注']
  150. class InventoryDetailResource(resources.Resource):
  151. def __init__(self, is_show_cost=True):
  152. super(InventoryDetailResource, self).__init__()
  153. self.is_show_cost = is_show_cost
  154. self.fields['name'] = Field(attribute='name')
  155. self.fields['model'] = Field(attribute='model')
  156. self.fields['warehouse_text'] = Field(attribute='warehouse_text')
  157. self.fields['entry_no'] = Field(attribute='entry_no')
  158. self.fields['count'] = Field(attribute='count')
  159. self.fields['notes'] = Field(attribute='notes')
  160. if is_show_cost:
  161. self.fields['price'] = Field(attribute='price')
  162. self.fields['amount'] = Field(attribute='amount')
  163. fields = ('name', 'model', 'warehouse_text', 'entry_no', 'count', 'price', 'amount', 'notes')
  164. else:
  165. fields = ('name', 'model', 'warehouse_text', 'entry_no', 'count', 'notes')
  166. self._meta.export_order = fields
  167. def get_export_headers(self):
  168. if self.is_show_cost:
  169. return [u'产品名称', u'产品代码', u'仓别', u'入库单', u'数量', u'单价', u'金额', u'备注']
  170. return [u'产品名称', u'产品代码', u'仓别', u'入库单', u'备注']
  171. class DeliverQueryResource(resources.Resource):
  172. def __init__(self, is_show_cost=True):
  173. super(DeliverQueryResource, self).__init__()
  174. self.is_show_cost = is_show_cost
  175. self.fields['no'] = Field(attribute='no')
  176. self.fields['type'] = Field(attribute='type')
  177. self.fields['name'] = Field(attribute='name')
  178. self.fields['model'] = Field(attribute='model')
  179. self.fields['unit'] = Field(attribute='unit')
  180. self.fields['entry_no'] = Field(attribute='entry_no')
  181. self.fields['product_type'] = Field(attribute='product_type')
  182. self.fields['warehouse'] = Field(attribute='warehouse')
  183. self.fields['count'] = Field(attribute='count')
  184. self.fields['cur_count'] = Field(attribute='cur_count')
  185. self.fields['return_count'] = Field(attribute='return_count')
  186. self.fields['receiver'] = Field(attribute='receiver')
  187. self.fields['check_user'] = Field(attribute='check_user')
  188. self.fields['happen_time'] = Field(attribute='happen_time')
  189. self.fields['warehouse_place'] = Field(attribute='warehouse_place')
  190. self.fields['notes'] = Field(attribute='notes')
  191. if is_show_cost:
  192. self.fields['total_cost'] = Field(attribute='total_cost')
  193. self.fields['return_cost'] = Field(attribute='return_cost')
  194. fields = ('no', 'type', 'name', 'model', 'unit', 'entry_no', 'product_type', 'warehouse', 'count',
  195. 'cur_count', 'total_cost', 'return_count', 'return_cost', 'receiver', 'happen_time', 'check_user'
  196. , 'warehouse_place', 'notes')
  197. else:
  198. fields = ('no', 'type', 'name', 'model', 'unit', 'entry_no', 'product_type', 'warehouse', 'count',
  199. 'cur_count', 'return_count', 'receiver', 'happen_time', 'check_user', 'warehouse_place', 'notes')
  200. self._meta.export_order = fields
  201. def get_export_headers(self):
  202. if self.is_show_cost:
  203. return [u'出库单号', u'出库类别', u'产品', u'代码', u'单位', u'入库单号', u'产品类别', u'仓别', u'数量', u'剩余数量'
  204. , u'合计成本', u'退料数量', u'退料成本合计', u'领用人', u'审核时间',u'审核人', u'存放库位', u'备注']
  205. return [u'出库单号', u'出库类别', u'产品', u'代码', u'单位', u'入库单号', u'产品类别', u'仓别', u'数量', u'剩余数量'
  206. , u'退料数量', u'领用人', u'审核时间',u'审核人', u'存放库位', u'备注']
  207. class DeliverReturnQueryResource(resources.Resource):
  208. def __init__(self, is_show_cost=True):
  209. super(DeliverReturnQueryResource, self).__init__()
  210. self.is_show_cost = is_show_cost
  211. self.fields['no'] = Field(attribute='no')
  212. self.fields['return_no'] = Field(attribute='return_no')
  213. self.fields['type'] = Field(attribute='type')
  214. self.fields['name'] = Field(attribute='name')
  215. self.fields['model'] = Field(attribute='model')
  216. self.fields['product_type'] = Field(attribute='product_type')
  217. self.fields['warehouse'] = Field(attribute='warehouse')
  218. self.fields['cur_count'] = Field(attribute='cur_count')
  219. self.fields['return_count'] = Field(attribute='return_count')
  220. if is_show_cost:
  221. self.fields['return_cost'] = Field(attribute='return_cost')
  222. self.fields['create_user'] = Field(attribute='create_user')
  223. self.fields['create_time'] = Field(attribute='create_time')
  224. self.fields['warehouse_place'] = Field(attribute='warehouse_place')
  225. self.fields['reason'] = Field(attribute='reason')
  226. self.fields['notes'] = Field(attribute='notes')
  227. if is_show_cost:
  228. fields = ('no', 'return_no', 'type', 'name', 'model', 'product_type', 'warehouse',
  229. 'cur_count', 'return_count', 'return_cost', 'create_user', 'create_time'
  230. , 'warehouse_place', 'reason', 'notes')
  231. else:
  232. fields = ('no', 'return_no', 'type', 'name', 'model', 'product_type', 'warehouse',
  233. 'cur_count', 'return_count', 'create_user', 'create_time'
  234. , 'warehouse_place', 'reason', 'notes')
  235. self._meta.fields = fields
  236. def get_export_headers(self):
  237. if self.is_show_cost:
  238. return [u'出库单号', u'退料单号', u'出库类别', u'产品', u'代码', u'产品类别', u'仓别', u'剩余数量'
  239. , u'退料数量', u'退料成本合计', u'创建人',u'创建时间', u'存放库位', u'退料原因', u'备注']
  240. return [u'出库单号', u'退料单号', u'出库类别', u'产品', u'代码', u'产品类别', u'仓别', u'剩余数量'
  241. , u'退料数量', u'创建人',u'创建时间', u'存放库位', u'退料原因', u'备注']