コード例 #1
0
ファイル: ProductEdit.go プロジェクト: elivoa/gotapestry
func (p *ProductEdit) Setup() { // (string, string) {
	// page values
	p.Title = "create product post"
	fmt.Println(p.Id)
	fmt.Println(p.Product)
	if p.Id != nil {
		var err error
		if p.Product, err = service.Product.GetFullProduct(p.Id.Int); err != nil {
			panic(err)
		}

		// fill Colors and Sizes for ng.
		if p.Product != nil {
			if p.Product.Colors != nil {
				for _, c := range p.Product.Colors {
					p.Colors = append(p.Colors, model.NewObject(c))
				}
			}
			if p.Product.Sizes != nil {
				for _, c := range p.Product.Sizes {
					p.Sizes = append(p.Sizes, model.NewObject(c))
				}
			}
		}
		p.SubTitle = "编辑"
	} else {
		p.Product = model.NewProduct()
		p.SubTitle = "新建"
		p.Colors = model.NewObjectArray(2, "")
		p.Sizes = model.NewObjectArray(2, "")
	}

	// stock json
	if p.Product.Stocks != nil && len(p.Product.Stocks) > 0 {
		jsonbytes, err := json.Marshal(p.Product.Stocks)
		if err != nil {
			p.StockJson = "{}"
		}
		p.StockJson = string(jsonbytes)
		// p.StockJson = p.StockJson[1 : len(p.StockJson)-1]
	} else {
		p.StockJson = "{}"
	}
}
コード例 #2
0
ファイル: ProductEdit.go プロジェクト: elivoa/gotapestry
func (p *ProductEdit) OnPrepareForSubmitFromProductForm() {
	if p.Id == nil { // if create
		p.Product = model.NewProduct()
	} else {
		// if edit
		// for security reason, TODO security check here.
		// 读取了数据库的order是为了保证更新的时候不会丢失form中没有的数据;
		model, err := service.Product.GetFullProduct(p.Id.Int)
		if err != nil {
			panic(err.Error())
		}
		p.Product = model
		// 但是这样做就必须清除form更新的时候需要删除的值,否则form提交和原有值是叠加的,会引起错误;
		// 这里只需要清除列表等数据,这个Order中只有Details是列表。
		p.Product.ClearColors()
		p.Product.ClearSizes()
		p.Product.ClearValues()
	}
}
コード例 #3
0
ファイル: ProductCalcTable.go プロジェクト: elivoa/gotapestry
	// get product
	productmap, err := service.Product.BatchFetchProductByIdMap(p.Data.ProductMap())
	if err != nil {
		return exit.Error(err)
	}
	p.products = productmap

	return nil
}

func (p *ProductCalcTable) GetData(date string, productId int64) string {
	value := p.Data.Get(date, productId)
	if value == 0 {
		return ""
	} else {
		return fmt.Sprint(value)
	}
}

var emptyproduct = model.NewProduct()

func (p *ProductCalcTable) GetProduct(productId int64) *model.Product {
	if nil != p.products {
		if product, ok := p.products[productId]; ok && nil != product {
			return product
		}
	}
	return emptyproduct
}