public int Update(TOWN_OBJ obj)
        {
            //if (ses.func("SUPADMIN") <= 0)
            //{
            //    return Json(new { sussess = -3 }, JsonRequestBehavior.AllowGet);

            //}
            TOWN_BUS bus = new TOWN_BUS();
            int      ret;
            int      add = 0;

            TOWN_OBJ objTemp;

            //kiểm tra tồn tại cho trường hợp sửa
            if (!string.IsNullOrEmpty(obj.CODE))//edit
            {
                objTemp = bus.GetByID(new TOWN_OBJ.BusinessObjectID(obj.CODE));
                if (objTemp == null)
                {
                    ret = -4;

                    bus.CloseConnection();
                    return(ret);
                }
            }
            else
            {
                objTemp = new TOWN_OBJ();
            }
            //hết kiểm tra tồn tại bản ghi
            objTemp.EDITTIME = DateTime.Now;   //Thời điểm sủa bản ghi
            objTemp.EDITUSER = _ses.loginCode; //Người sửa bản ghi

            objTemp.CODEVIEW   = obj.CODEVIEW;
            objTemp.NAME       = obj.NAME;
            objTemp.NOTE       = obj.NOTE;
            objTemp.PARENTCODE = obj.PARENTCODE;
            objTemp.LOCK       = obj.LOCK;
            objTemp.BEGINDATE  = obj.BEGINDATE;
            objTemp.ENDDATE    = obj.ENDDATE;
            objTemp.THETYPE    = "TOWN";
            if (objTemp.PARENTCODE == null)
            {
                objTemp.PARENTCODE = "";
            }
            //Kiểm tra tình trạng sửa hay là thêm mới
            if (string.IsNullOrEmpty(obj.CODE))
            {
                //Thêm mới
                add = 1;
                //Sinh mã
                objTemp.CODE     = bus.genNextCode(obj);
                objTemp.LOCK     = 0;
                objTemp.LOCKDATE = DateTime.Now;
                //obj_temp.MODULECODE = "CORE";//for this
            }

            if (add == 1)
            {
                ret = bus.insert(objTemp);
            }
            else
            {
                //gán _ID để xác định bản ghi sẽ được cập nhật
                objTemp._ID.CODE = obj.CODE;
                ret = bus.update(objTemp);
            }

            if (ret >= 0)
            {
                bus.CommitTransaction();
            }
            else
            {
                bus.RollbackTransaction();
            }
            bus.CloseConnection();
            //some thing like that
            return(ret);
        }