#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
	demeter web
	name:origin.py 溯源相关
	author:rabin
"""
from __load__ import *

class index_path(Load):
	"""
	@api {get} /origin 获取溯源批次列表
	@apiVersion 1.0.0
	@apiName getOrigin
	@apiGroup Farm

	@apiParam {String} page 页数

	@apiSuccess {Object[]} setting 基本信息
	@apiSuccess {String}   setting.name  站点名
	@apiSuccess {Number}   setting.farm  当前的农场ID

	@apiSuccess {Object[]} list 溯源批次列表信息
	@apiSuccess {String}   list.name  名称
	@apiSuccess {String}   list.id	ID

	@apiSuccess {Object[]} page 分页信息
	@apiSuccess {String}   page.current  当前页
	@apiSuccess {String}   page.total	总页数
	@apiSuccess {String}   page.num	每页数据条数
	@apiSuccess {String}   page.totalNum	总数据条数
	
	@apiErrorExample 操作成功
	{"status": 1, "msg": "yes", "code": 0, "data": {"setting": {"farm": 1, "user": 0, "name": "\u519c\u5c0f\u76d2", "copyright": "2017 nongxiaohe.com v1.0.0", "site": "http://www.nongxiaohe.com/"}, "list": [{"pic": "http://192.168.15.10:8087/upload/2017/08/30/455f9d6c26b5c989b32eda1809e58d5f.jpg", "method_id": null, "land_id": "249be20d-5759-5af0-9859-b770d9f44e2a", "farm_id": 1, "state": true, "amount": "100ml", "workdate": 1504105397, "category_id": "9365ea66-be55-56f7-a511-059fc85a9478", "cdate": 1504076614, "id": "19e05f00-ae55-5605-be12-86dcd2866df9"}], "page": {"current": 1, "ajax": false, "total": 1.0, "num": 15, "totalNum": 1}}}
	@apiErrorExample 操作失败
	{"status": 2, "msg": "\u64cd\u4f5c\u5931\u8d25", "code": 0, "data": {}}
	"""
	@auth
	@Web.setting
	def get(self):
		self.data['list'] = self.service('common').list('origin_batch', state=True, page=True)
		if self.data['list']:
			for key, value in enumerate(self.data['list']):
				self.data['list'][key]['zzdates'] = Demeter.date(value['zzdate'], '%Y-%m-%d')
				self.data['list'][key]['csdates'] = Demeter.date(value['csdate'], '%Y-%m-%d')
				device = self.service('common').one('device_gateway', id=value['gateway_id'])
				self.data['list'][key]['device'] = device['name']
				land = self.service('common').one('gateway_id', id=value['gateway_id'])
				self.data['list'][key]['land'] = land['name']
		self.out('yes', self.data)

	"""
	@api {post} /origin 更新溯源批次
	@apiVersion 1.0.0
	@apiName updateOrigin
	@apiGroup Farm

	@apiParam {String} id 批次ID,为空则插入新记录
	@apiParam {String} update_name 批次名称
	@apiParam {String} update_pic 图片,多个逗号隔开
	@apiParam {String} update_device_id 设备网关ID
	@apiParam {String} update_land 地块ID
	@apiParam {String} update_zzdate 种植时间:2017-10-10
	@apiParam {String} update_csdate 采收时间:2017-10-10

	@apiSuccess {Bool} status 状态
	@apiSuccess {String}   msg  描述
	@apiSuccess {Number}   code  状态码

	@apiErrorExample 操作成功
	{"status": 1, "msg": "操作成功", "code": 0, "data": {}}
	@apiErrorExample 操作失败
	{"status": 2, "msg": "\u64cd\u4f5c\u5931\u8d25", "code": 0, "data": {}}
	"""
	@auth
	@Web.setting
	def post(self):
		id = self.input('id', None)
		if not id:
			self.out('no')
			return
		update = {}
		update['pic'] = self.input('update_pic')
		update['gateway_id'] = self.input('update_device_id')
		update['land'] = self.input('update_land')
		update['zzdate'] = self.input('update_zzdate')
		update['csdate'] = self.input('update_csdate')
		update['name'] = self.input('update_name')
		if not update['gateway_id']:
			self.out(u'请选择设备')
			return
		if not update['land']:
			self.out(u'请选择地块')
			return
		if not update['zzdate']:
			self.out(u'请输入种植时间')
			return
		if not update['csdate']:
			self.out(u'请输入采收时间')
			return
		if not update['name']:
			self.out(u'请输入产品名称')
			return
		update['zzdate'] = Demeter.mktime(update['zzdate'], '%Y-%m-%d')
		update['csdate'] = Demeter.mktime(update['csdate'], '%Y-%m-%d')
		state = self.service('common').update('origin_batch', id, update)
		self.out('yes', {'id':state})

class info_path(Load):
	"""
	@api {get} /origin/info 获取溯源批次信息
	@apiVersion 1.0.0
	@apiName getOrigin
	@apiGroup Farm

	@apiSuccess {Object[]} setting 基本信息
	@apiSuccess {String}   setting.name  站点名
	@apiSuccess {Number}   setting.farm  当前的农场ID

	@apiSuccess {Object[]} info 溯源批次信息
	@apiSuccess {String}   info.name  名称
	@apiSuccess {String}   info.id	ID
	@apiErrorExample 操作成功
	{"status": 1, "msg": "yes", "code": 0, "data": {"setting": {"farm": 1, "user": 0, "name": "\u519c\u5c0f\u76d2", "copyright": "2017 nongxiaohe.com v1.0.0", "site": "http://www.nongxiaohe.com/"}, "list": [{"pic": "http://192.168.15.10:8087/upload/2017/08/30/455f9d6c26b5c989b32eda1809e58d5f.jpg", "method_id": null, "land_id": "249be20d-5759-5af0-9859-b770d9f44e2a", "farm_id": 1, "state": true, "amount": "100ml", "workdate": 1504105397, "category_id": "9365ea66-be55-56f7-a511-059fc85a9478", "cdate": 1504076614, "id": "19e05f00-ae55-5605-be12-86dcd2866df9"}], "page": {"current": 1, "ajax": false, "total": 1.0, "num": 15, "totalNum": 1}}}
	@apiErrorExample 操作失败
	{"status": 2, "msg": "\u64cd\u4f5c\u5931\u8d25", "code": 0, "data": {}}
	"""
	@auth
	@Web.setting
	def get(self):
		id = self.input('id', None)
		if id:
			self.data['info'] = self.service('common').one('origin_batch', {id:id})
			if self.data['info']:
				self.data['info']['zzdates'] = Demeter.date(self.data['info']['zzdate'], '%Y-%m-%d')
				self.data['info']['csdates'] = Demeter.date(self.data['info']['csdate'], '%Y-%m-%d')
				
			self.out('yes', self.data)
		else:
			self.out('no')