示例#1
0
/*
	Listado de sucursales por empresa
*/
func ShowEmpSucs(w http.ResponseWriter, r *http.Request) {
	c := appengine.NewContext(r)
	emsucs := model.GetEmpSucursales(c, r.FormValue("IdEmp"))
	if emsucs != nil {
		wssucs := make([]WsSucursal, len(*emsucs), cap(*emsucs))
		for i, v := range *emsucs {
			wssucs[i].IdOft = ""
			wssucs[i].IdSuc = v.IdSuc
			wssucs[i].IdEmp = v.IdEmp
			wssucs[i].Sucursal = v.Nombre
			wssucs[i].FechaHora = v.FechaHora
		}
		w.Header().Set("Content-Type", "application/json")
		b, _ := json.Marshal(wssucs)
		w.Write(b)
	}
}
示例#2
0
func ShowEmpSucs(w http.ResponseWriter, r *http.Request) {
	var timetolive = 7200 //seconds
	c := appengine.NewContext(r)
	var b []byte
	cachename := "sucs_" + r.FormValue("id")
	if item, err := memcache.Get(c, cachename); err == memcache.ErrCacheMiss {
		emsucs := model.GetEmpSucursales(c, r.FormValue("id"))
		if emsucs == nil {
			w.WriteHeader(http.StatusNotFound)
			return
		}
		wssucs := make([]wssucursal, len(*emsucs), cap(*emsucs))
		for i, v := range *emsucs {
			wssucs[i].IdSuc = v.IdSuc
			wssucs[i].Sucursal = v.Nombre
			wssucs[i].DirCalle = v.DirCalle
			wssucs[i].DirCol = v.DirCol
			wssucs[i].DirEnt = v.DirEnt
			wssucs[i].Latitud, _ = strconv.ParseFloat(v.Geo1, 64)
			wssucs[i].Longitud, _ = strconv.ParseFloat(v.Geo2, 64)
		}
		sortutil.AscByField(wssucs, "Sucursal")
		b, _ = json.Marshal(wssucs)
		item := &memcache.Item{
			Key:        cachename,
			Value:      b,
			Expiration: time.Duration(timetolive) * time.Second,
		}
		if err := memcache.Add(c, item); err == memcache.ErrNotStored {
			c.Errorf("memcache.Add %v : %v", cachename, err)
			if err := memcache.Set(c, item); err == memcache.ErrNotStored {
				c.Errorf("Memcache.Set %v : %v", cachename, err)
			} else {
				c.Infof("memcached %v", cachename)
			}
		} else {
			c.Infof("memcached %v", cachename)
		}
	} else {
		c.Infof("memcache retrieve sucs_idemp : %v", r.FormValue("id"))
		b = item.Value
	}
	w.Header().Set("Content-Type", "application/json")
	w.Header().Set("Access-Control-Allow-Origin", "*")
	w.Write(b)
}
示例#3
0
/*
	Listado de sucursales por empresa con la oferta marcada
*/
func ShowEmpSucursalOft(w http.ResponseWriter, r *http.Request) {
	c := appengine.NewContext(r)
	emsucs := model.GetEmpSucursales(c, r.FormValue("idemp"))
	if emsucs != nil {
		ofsucs, _ := model.GetOfertaSucursales(c, r.FormValue("idoft"))
		wssucs := make([]WsSucursal, len(*emsucs), cap(*emsucs))
		for i, es := range *emsucs {
			for _, os := range *ofsucs {
				if os.IdSuc == es.IdSuc {
					wssucs[i].IdOft = os.IdOft
				}
			}
			wssucs[i].IdSuc = es.IdSuc
			wssucs[i].IdEmp = es.IdEmp
			wssucs[i].Sucursal = es.Nombre
			wssucs[i].FechaHora = es.FechaHora
		}
		sortutil.AscByField(wssucs, "Sucursal")

		w.Header().Set("Content-Type", "application/json")
		b, _ := json.Marshal(wssucs)
		w.Write(b)
	}
}