예제 #1
0
 public static UserProfileViewDTO GetUserProfile(string token)
 {
     using (THEntities db = new THEntities())
     {
         string             encryptToken = EncryptString(token);
         var                user         = db.sys_user.FirstOrDefault(x => x.user_Deleted == null && x.token == encryptToken);
         UserProfileViewDTO userProfile  = MapDBClassToDTO <sys_user, UserProfileViewDTO>(user);
         return(userProfile);
     }
 }
예제 #2
0
        public IHttpActionResult ReceiveItem(ReceiveItemNewDTO receiveItem)
        {
            string             token       = Request.Headers.GetValues("token").First();
            UserProfileViewDTO userProfile = Helper.Helper.GetUserProfile(token);

            HttpContext.Current.Session["userid"] = userProfile.id;
            HttpContext.Current.Session["user"]   = userProfile.userName;
            sapi.db db = new sapi.db();
            try
            {
                if (db.connect())
                {
                    Dictionary <string, string> vals = new Dictionary <string, string>();
                    vals.Add("rece_WarehouseID".ToLower(), receiveItem.warehouseID.ToString());
                    vals.Add("rece_Date".ToLower(), DateTime.Now.ToString("dd/MM/yyyy"));
                    vals.Add("rece_ReceivedBy".ToLower(), userProfile.id.ToString());
                    vals.Add("rece_Remark".ToLower(), receiveItem.remarks);


                    StringBuilder n = new StringBuilder();
                    for (int i = 0; i < receiveItem.items.Count; i++)
                    {
                        var item = receiveItem.items[i];

                        if (i == 0)
                        {
                            n.Append(i.ToString());
                        }
                        else
                        {
                            n.Append("," + i.ToString());
                        }

                        vals.Add("reit_ItemID".ToLower() + i.ToString(), item.id.ToString());
                        vals.Add("reit_Qty".ToLower() + i.ToString(), item.quantity.ToString());
                        vals.Add("reit_Price".ToLower() + i.ToString(), item.cost.ToString());
                    }
                    ReceiveItemFunc(db, vals, n.ToString());
                }
            }
            catch (Exception ex)
            {
                return(BadRequest(ex.Message));
            }
            finally
            {
                HttpContext.Current.Session.Abandon();
            }
            return(Ok());
        }
예제 #3
0
        //-> GetUserProfile
        public async Task <UserProfileViewDTO> GetUserProfile(int userID)
        {
            var user = await db.sys_user.FirstOrDefaultAsync(x => x.user_Deleted == null && x.id == userID);

            if (user == null)
            {
                throw new HttpException((int)HttpStatusCode.NotFound, "NotFound");
            }
            UserProfileViewDTO userProfile = Helper.Helper.MapDBClassToDTO <sys_user, UserProfileViewDTO>(user);


            //-setting
            SettingViewDTO settingView = null;
            var            setting     = await db.sys_setting.FirstOrDefaultAsync(x => x.sett_Deleted == null);

            if (setting != null)
            {
                settingView = Helper.Helper.MapDBClassToDTO <sys_setting, SettingViewDTO>(setting);

                CustomerViewDTO customerView = null;
                var             customer     = await db.tblCustomers.FirstOrDefaultAsync(x => x.cust_Deleted == null && x.id == setting.customerID);

                if (customer != null)
                {
                    customerView = Helper.Helper.MapDBClassToDTO <tblCustomer, CustomerViewDTO>(customer);
                }

                WarehouseViewDTO warehouseView = null;
                var warehouse = await db.tblWarehouses.FirstOrDefaultAsync(x => x.ware_Deleted == null && x.id == setting.warehouseID);

                if (warehouse != null)
                {
                    warehouseView = Helper.Helper.MapDBClassToDTO <tblWarehouse, WarehouseViewDTO>(warehouse);
                }

                settingView.customer  = customerView;
                settingView.warehouse = warehouseView;
            }
            userProfile.setting = settingView;
            // TODO when return token to client should encrypt token
            return(userProfile);
        }
예제 #4
0
        string uploadSO(sapi.db db, Dictionary <string, string> vals, string mySt)
        {
            string             token       = Request.Headers.GetValues("token").First();
            UserProfileViewDTO userProfile = Helper.Helper.GetUserProfile(token);

            HttpContext.Current.Session["userid"] = userProfile.id;
            HttpContext.Current.Session["user"]   = userProfile.userName;
            string re  = "";
            string re2 = "";
            string hid = "";

            sapi.sapi cls                    = new sapi.sapi();
            string    screenItem             = "tblSaleOrderItemNew";
            string    screen                 = "tblSaleOrderNew";
            Dictionary <string, string> aVal = new Dictionary <string, string>();
            DataTable tblResult              = new DataTable();

            tblResult.Rows.Add();
            tblResult.Columns.Add("status");
            tblResult.Columns.Add("msg");

            db.beginTran();

            if (!vals.ContainsKey("sord_Date".ToLower()))
            {
                vals.Add("sord_Date".ToLower(), db.getDate(DateTime.UtcNow.AddHours(7).ToString("yyyy-MM-dd HH:mm"), 1));
            }
            else
            {
                vals.Remove("sord_Date".ToLower());
                vals.Add("sord_Date".ToLower(), db.getDate(DateTime.UtcNow.AddHours(7).ToString("yyyy-MM-dd HH:mm"), 1));
            }
            if (vals.ContainsKey("invo_daystoexp"))
            {
                double invo_daystoexp = db.cNum(vals["invo_daystoexp"]);
                if (!vals.ContainsKey("sord_Date".ToLower()))
                {
                    vals.Add("sord_EndDate".ToLower(), db.getDate(DateTime.UtcNow.AddDays(invo_daystoexp).AddHours(7).ToString("yyyy-MM-dd HH:mm"), 1));
                }
                else
                {
                    vals.Remove("sord_EndDate".ToLower());
                    vals.Add("sord_EndDate".ToLower(), db.getDate(DateTime.UtcNow.AddDays(invo_daystoexp).AddHours(7).ToString("yyyy-MM-dd HH:mm"), 1));
                }
            }

            if (vals.ContainsKey("sord_saleorderid"))
            {
                if (string.IsNullOrEmpty(vals["sord_saleorderid"]) || vals["sord_saleorderid"] == "0")
                {
                    vals.Remove("sord_saleorderid");
                }
            }

            if (vals.ContainsKey("tbls_tableid"))
            {
                if (!string.IsNullOrEmpty(vals["tbls_tableid"]))
                {
                    db.execData("Update tblTable Set tbls_Status = 'O' Where tbls_TableID = " + vals["tbls_tableid"]);
                    aVal.Add("sord_TableID", vals["tbls_tableid"]);
                }
            }

            string sord_assignedto = "";

            if (vals.ContainsKey("sord_assignedto".ToLower()))
            {
                if (!string.IsNullOrEmpty(vals["sord_assignedto".ToLower()]))
                {
                    sord_assignedto = vals["sord_assignedto".ToLower()];
                }
            }
            if (string.IsNullOrEmpty(sord_assignedto))
            {
                DataTable tmpTbl = db.readData("exec notificationSetup 'SO'");
                if (tmpTbl.Rows.Count > 0)
                {
                    sord_assignedto = tmpTbl.Rows[0][0].ToString();
                }
            }

            if (!vals.ContainsKey("sord_assignedto".ToLower()))
            {
                vals["sord_assignedto"] = sord_assignedto;
            }
            else
            {
                vals.Add("sord_assignedto", sord_assignedto);
            }

            re = cls.saveRecord(screen, vals, db, aVals: aVal, ignoreROF: true);

            var str = JsonConvert.DeserializeObject <dynamic>(re);

            if (str.tbl != null)
            {
                if (str.tbl[0].status == "ok")
                {
                    hid = (string)str.tbl[0].msg;
                    //foreach (var st in Request.Form["N"].ToString().Split(','))
                    foreach (var st in mySt.ToString().Split(','))
                    {
                        aVal.Clear();
                        aVal.Add("soit_SaleOrderID", hid);
                        if (string.IsNullOrEmpty(st))
                        {
                            continue;
                        }
                        Dictionary <string, string> v = cls.getItemVals(screenItem, vals, db, st);
                        v["soit_total"] = (db.cNum(v["soit_Qty".ToLower()].ToString()) * db.cNum(v["soit_Price".ToLower()].ToString())).ToString();
                        aVal.Add("soit_ShipQty", "0");
                        aVal.Add("soit_RemainQty", v["soit_Qty".ToLower()]);

                        if (vals.ContainsKey("soit_saleorderitemid"))
                        {
                            if (string.IsNullOrEmpty(vals["soit_saleorderitemid"]) || vals["soit_saleorderitemid"] == "0")
                            {
                                vals.Remove("soit_saleorderitemid");
                            }
                        }

                        re2 = cls.saveRecord(screenItem, v, db, aVal, st, ignoreROF: true);
                        str = JsonConvert.DeserializeObject <dynamic>(re2);
                        if (str.tbl != null)
                        {
                            if (str.tbl[0].status != "ok")
                            {
                                db.rollback();
                                return(re2);
                            }
                        }
                    }
                    new clsGlobal().SOTotal(hid, db);


                    if (!string.IsNullOrEmpty(sord_assignedto))
                    {
                        db.execData("insert into [dbo].[sys_notification]" +
                                    "([notf_Name],[notf_objectID],[notf_objectValue],[notf_Module],[notf_UserID],[notf_FromUserID])" +
                                    "values(NULL," +
                                    "1035," + hid + ",'SO'," + sord_assignedto + "," + userProfile.id + ")");
                        new clsGlobal().notification(userProfile.id.ToString(), "SO", sord_assignedto, db);
                    }
                }
                else
                {
                    db.rollback();
                    return(re);
                }
            }
            db.commit();
            return(re);
        }