resources.py 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219
  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 SaleOrderResource(resources.Resource):
  7. def __init__(self):
  8. super(SaleOrderResource, self).__init__()
  9. self.fields['no'] = Field(attribute='no')
  10. self.fields['create_time'] = Field(attribute='create_time')
  11. self.fields['create_user_text'] = Field(attribute='create_user_text')
  12. self.fields['customer_name'] = Field(attribute='customer_name')
  13. self.fields['customer_tel'] = Field(attribute='customer_tel')
  14. self.fields['products'] = Field(attribute='products')
  15. self.fields['check_status_text'] = Field(attribute='check_status_text')
  16. self.fields['check_user_text'] = Field(attribute='check_user_text')
  17. self.fields['check_time'] = Field(attribute='check_time')
  18. self.fields['notes'] = Field(attribute='notes')
  19. self.fields['count'] = Field(attribute='count')
  20. self.fields['amount'] = Field(attribute='amount')
  21. self.fields['receive_count'] = Field(attribute='receive_count')
  22. self.fields['receive_amount'] = Field(attribute='receive_amount')
  23. self.fields['pay_amount'] = Field(attribute='pay_amount')
  24. self.fields['loss_amount'] = Field(attribute='loss_amount')
  25. self.fields['put_amount'] = Field(attribute='put_amount')
  26. self.fields['fare_amount'] = Field(attribute='fare_amount')
  27. self.fields['total_amount'] = Field(attribute='total_amount')
  28. self.fields['clear_text'] = Field(attribute='clear_text')
  29. def get_export_headers(self):
  30. return [u'单号', u'客户', u'客户电话', u'产品', u'合计数量', u'合计金额',
  31. u'收货数量', u'收货金额', u'扣减金额', u'应付金额', u'结算金额', u'装车费用', u'运输费用', u'结清',
  32. u'创建时间', u'创建人', u'审核状态', u'审核时间', u'审核人', u'备注']
  33. class Meta:
  34. fields = ('no', 'customer_name', 'customer_tel', 'products',
  35. 'count', 'amount', 'receive_count', 'receive_amount', 'loss_amount',
  36. 'total_amount', 'pay_amount', 'put_amount', 'fare_amount', 'clear_text',
  37. 'create_time', 'create_user_text', 'check_status_text',
  38. 'check_time', 'check_user_text', 'notes',)
  39. export_order = fields
  40. class SaleOrderDetailResource(resources.Resource):
  41. def __init__(self):
  42. super(SaleOrderDetailResource, self).__init__()
  43. self.fields['name'] = Field(attribute='name')
  44. self.fields['model'] = Field(attribute='model')
  45. self.fields['quality_request_text'] = Field(attribute='quality_request_text')
  46. self.fields['count'] = Field(attribute='count')
  47. self.fields['receive_count'] = Field(attribute='receive_count')
  48. self.fields['price'] = Field(attribute='price')
  49. self.fields['amount'] = Field(attribute='amount')
  50. def get_export_headers(self):
  51. return [u'产品名称', u'产品代码', u'质量标准',u'数量', u'收货数量', u'单价', u'金额',]
  52. class Meta:
  53. fields = ('name', 'model', 'quality_request_text', 'count', 'receive_count', 'price', 'amount',)
  54. export_order = fields
  55. class GoodsDeliverResource(resources.Resource):
  56. def __init__(self, is_show_cost=True):
  57. super(GoodsDeliverResource, self).__init__()
  58. self.is_show_cost = is_show_cost
  59. self.fields['no'] = Field(attribute='no')
  60. self.fields['sale_order_no'] = Field(attribute='sale_order_no')
  61. self.fields['agent_user_text'] = Field(attribute='agent_user_text')
  62. self.fields['agent_department_text'] = Field(attribute='agent_department_text')
  63. self.fields['customer_name'] = Field(attribute='customer_name')
  64. self.fields['customer_tel'] = Field(attribute='customer_tel')
  65. self.fields['status_text'] = Field(attribute='status_text')
  66. self.fields['create_user_text'] = Field(attribute='create_user_text')
  67. self.fields['create_time'] = Field(attribute='create_time')
  68. self.fields['check_user_text'] = Field(attribute='check_user_text')
  69. self.fields['check_time'] = Field(attribute='check_time')
  70. self.fields['warehouse_text'] = Field(attribute='warehouse_text')
  71. self.fields['total_count'] = Field(attribute='total_count')
  72. self.fields['total_amount'] = Field(attribute='total_amount')
  73. self.fields['notes'] = Field(attribute='notes')
  74. if is_show_cost:
  75. self.fields['total_cost'] = Field(attribute='total_cost')
  76. fields = ('no', 'sale_order_no', 'customer_name', 'customer_tel', 'agent_user_text','agent_department_text', 'total_count', 'total_cost', 'total_amount',
  77. 'warehouse_text', 'create_time', 'create_user_text', 'status_text', 'check_time', 'check_user_text', 'notes')
  78. else:
  79. fields = ('no', 'sale_order_no', 'customer_name', 'customer_tel', 'agent_user_text','agent_department_text', 'total_count', 'total_amount',
  80. 'warehouse_text', 'create_time', 'create_user_text', 'status_text', 'check_time', 'check_user_text', 'notes')
  81. self._meta.export_order = fields
  82. def get_export_headers(self):
  83. if self.is_show_cost:
  84. return [u'出库单号', u'销售单号', u'客户姓名', u'客户电话', u'经办人',u'经办部门', u'合计数量', u'合计成本', u'合计销售价', u'仓别', u'创建时间', u'创建人', u'审核状态', u'审核时间', u'审核人', u'备注']
  85. else:
  86. return [u'出库单号', u'销售单号', u'客户姓名', u'客户电话', u'经办人',u'经办部门', u'合计数量', u'合计销售价', u'仓别', u'创建时间', u'创建人', u'审核状态', u'审核时间', u'审核人', u'备注']
  87. class GoodsDeliverDetailResource(resources.Resource):
  88. def __init__(self, is_show_cost=True):
  89. super(GoodsDeliverDetailResource, self).__init__()
  90. self.is_show_cost = is_show_cost
  91. self.fields['name'] = Field(attribute='name')
  92. self.fields['model'] = Field(attribute='model')
  93. self.fields['unit_text'] = Field(attribute='unit_text')
  94. self.fields['count'] = Field(attribute='count')
  95. self.fields['price'] = Field(attribute='price')
  96. self.fields['no'] = Field(attribute='no')
  97. self.fields['warehouse_stock_count'] = Field(attribute='warehouse_stock_count')
  98. self.fields['total_amount'] = Field(attribute='total_amount')
  99. self.fields['notes'] = Field(attribute='notes')
  100. if is_show_cost:
  101. self.fields['total_cost'] = Field(attribute='total_cost')
  102. fields = ('name', 'model', 'unit_text', 'no', 'count', 'price', 'warehouse_stock_count', 'total_cost', 'total_amount', 'notes')
  103. else:
  104. fields = ('name', 'model', 'unit_text', 'no', 'count', 'price', 'warehouse_stock_count', 'total_amount', 'notes')
  105. self._meta.export_order = fields
  106. def get_export_headers(self):
  107. if self.is_show_cost:
  108. return [u'名称', u'代码', u'单位', u'入库单号', u'数量', u'单价', u'仓别库存', u'成本合计', u'销售价合计', u'备注']
  109. return [u'名称', u'代码', u'单位', u'入库单号', u'数量', u'单价', u'仓别库存', u'销售价合计', u'备注']
  110. class GoodsDeliverQueryResource(resources.Resource):
  111. def __init__(self, is_show_cost=True):
  112. super(GoodsDeliverQueryResource, self).__init__()
  113. self.is_show_cost = is_show_cost
  114. self.fields['no'] = Field(attribute='no')
  115. self.fields['type'] = Field(attribute='type')
  116. self.fields['name'] = Field(attribute='name')
  117. self.fields['model'] = Field(attribute='model')
  118. self.fields['unit'] = Field(attribute='unit')
  119. self.fields['entry_no'] = Field(attribute='entry_no')
  120. self.fields['product_type'] = Field(attribute='product_type')
  121. self.fields['warehouse'] = Field(attribute='warehouse')
  122. self.fields['cur_count'] = Field(attribute='cur_count')
  123. self.fields['count'] = Field(attribute='count')
  124. self.fields['total_amount'] = Field(attribute='total_amount')
  125. self.fields['return_count'] = Field(attribute='return_count')
  126. self.fields['check_user'] = Field(attribute='check_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['total_cost'] = Field(attribute='total_cost')
  133. self.fields['return_cost'] = Field(attribute='return_cost')
  134. fields = ('no', 'type', 'name', 'model', 'unit', 'entry_no', 'product_type', 'warehouse', 'count', 'price',
  135. 'cur_count', 'total_cost', 'total_amount', 'return_count', 'return_cost', 'check_time','check_user',
  136. 'warehouse_place', 'notes')
  137. else:
  138. fields = ('no', 'type', 'name', 'model', 'unit', 'entry_no', 'product_type', 'warehouse', 'count',
  139. 'cur_count', 'total_amount', 'return_count', 'check_time','check_user',
  140. 'warehouse_place', 'notes')
  141. self._meta.export_order = fields
  142. def get_export_headers(self):
  143. if self.is_show_cost:
  144. return [u'出库单号', u'出库类别', u'产品', u'代码', u'单位', u'入库单号', u'产品类别', u'仓别', u'数量', u'单价', u'剩余数量',
  145. u'合计成本', u'合计销售价', u'退料数量', u'退料成本合计', u'审核时间', u'审核人', u'存放库位', u'备注']
  146. return [u'出库单号', u'出库类别', u'产品', u'代码', u'单位', u'入库单号', u'产品类别', u'仓别', u'数量', u'剩余数量',
  147. u'合计销售价', u'退料数量', u'审核时间', u'审核人', u'存放库位', u'备注']
  148. class GoodsDeliverReturnQueryResource(resources.Resource):
  149. def __init__(self, is_show_cost=True):
  150. super(GoodsDeliverReturnQueryResource, self).__init__()
  151. self.is_show_cost = is_show_cost
  152. self.fields['no'] = Field(attribute='no')
  153. self.fields['return_no'] = Field(attribute='return_no')
  154. self.fields['type'] = Field(attribute='type')
  155. self.fields['name'] = Field(attribute='name')
  156. self.fields['model'] = Field(attribute='model')
  157. self.fields['product_type'] = Field(attribute='product_type')
  158. self.fields['warehouse'] = Field(attribute='warehouse')
  159. self.fields['cur_count'] = Field(attribute='cur_count')
  160. self.fields['return_count'] = Field(attribute='return_count')
  161. self.fields['create_user'] = Field(attribute='create_user')
  162. self.fields['create_time'] = Field(attribute='create_time')
  163. self.fields['warehouse_place'] = Field(attribute='warehouse_place')
  164. self.fields['reason'] = Field(attribute='reason')
  165. self.fields['notes'] = Field(attribute='notes')
  166. if is_show_cost:
  167. self.fields['return_cost'] = Field(attribute='return_cost')
  168. fields = ('no', 'return_no', 'type', 'name', 'model', 'product_type', 'warehouse',
  169. 'cur_count', 'return_count', 'return_cost', 'create_user', 'create_time'
  170. , 'warehouse_place', 'reason', 'notes')
  171. else:
  172. fields = ('no', 'return_no', 'type', 'name', 'model', 'product_type', 'warehouse',
  173. 'cur_count', 'return_count', 'create_user', 'create_time'
  174. , 'warehouse_place', 'reason', 'notes')
  175. self._meta.export_order = fields
  176. def get_export_headers(self):
  177. if self.is_show_cost:
  178. return [u'出库单号', u'退库单号', u'出库类别', u'产品', u'代码', u'产品类别', u'仓别', u'剩余数量'
  179. , u'退库数量', u'退库成本合计', u'创建人',u'创建时间', u'存放库位', u'退货原因', u'产品备注']
  180. return [u'出库单号', u'退库单号', u'出库类别', u'产品', u'代码', u'产品类别', u'仓别', u'剩余数量'
  181. , u'退库数量', u'创建人', u'创建时间', u'存放库位', u'退货原因', u'产品备注']
  182. class SaleOrderEntryImporter(ExcelImporter):
  183. fields = {
  184. u'客户姓名': (False, ExcelImporter.formatUnicode),
  185. u'客户电话': (False, ExcelImporter.formatUnicode),
  186. u'产品名称': (True, ExcelImporter.formatUnicode),
  187. u'产品代码': (True, ExcelImporter.formatUnicode),
  188. u'数量': (True, ExcelImporter.formatFloatGtZ),
  189. u'单价': (True, ExcelImporter.formatFloatGeZ),
  190. u'备注': (False, ExcelImporter.formatUnicode),
  191. }