public bool InsertOrUpdateTax_V2(Models.Settings.TaxModels model, ref string msg) { try { TaxApiModels paraBody = new TaxApiModels(); paraBody.AppKey = Commons.AppKey; paraBody.AppSecret = Commons.AppSecret; paraBody.CreatedUser = Commons.CreateUser; paraBody.RegisterToken = new RegisterTokenModels(); paraBody.Type = model.Type; //paraBody.Tax = model; ////paraBody.ID = model.ID; //paraBody.StoreID = model.StoreID; ////paraBody.Name = model.Name; ////paraBody.Percent = model.Percent; ////paraBody.TaxType = model.TaxType; ////paraBody.IsActive = model.IsActive; ////paraBody.ListProductID = model.ListProductID; // Updated 07092018, change Api Tax_V2 for Web paraBody.ID = model.ID; paraBody.StoreID = model.StoreID; paraBody.Name = model.Name; paraBody.Code = model.Code; paraBody.Percent = model.Percent; paraBody.TaxType = model.TaxType; paraBody.IsActive = model.IsActive; paraBody.ListProductID = model.ListProductID; paraBody.Rate = model.Rate; //==================== NSLog.Logger.Info("InsertOrUpdateTax_V2 request", paraBody); var result = (ResponseApiModels)ApiResponse.Post <ResponseApiModels>(Commons.Tax_InsertOrUpdate_Web_V2, null, paraBody); NSLog.Logger.Info("InsertOrUpdateTax_V2 result", result); if (result != null) { if (result.Success) { return(true); } else { msg = result.Message; return(false); } } else { _logger.Error(result); return(false); } } catch (Exception e) { _logger.Error("Tax_InsertOrUpdate: " + e); return(false); } }
//=======End V3-version 2 // IMPORT public StatusResponse Import(HttpPostedFileBase excelFile, List <string> lstStore, ref ImportModel importModel, ref string msg) { StatusResponse Response = new StatusResponse(); DataTable dt = new DataTable(); FileInfo[] lstFileImg = new FileInfo[] { }; Response = ProcessDataImport(ref dt, excelFile, "SBSettingTax.xlsx", out lstFileImg); if (!Response.Status) { msg = Response.MsgError; return(Response); } ImportItem itemErr = null; bool flagInsert = true; string msgError = ""; List <Models.Settings.TaxModels> listData = new List <Models.Settings.TaxModels>(); foreach (var item in lstStore) { foreach (DataRow row in dt.Rows) { try { flagInsert = true; msgError = ""; string rowText = ""; for (int i = 0; i < dt.Columns.Count; i++) { rowText += row[i].ToString().Trim(); } if (string.IsNullOrEmpty(rowText)) { continue; } double doubleVal = 0; Models.Settings.TaxModels model = new Models.Settings.TaxModels(); model.Index = row[0].ToString(); // 1 - Name model.Name = row[1].ToString().Trim().Replace(" ", " "); // 2 Code model.Code = row[2].ToString().Trim().Replace(" ", " "); // 3 - IsActive model.IsActive = GetBoolValue(dt.Columns[3].ColumnName.Replace("#", "."), row[0].ToString(), row[3].ToString()); // 4 - Percent (%) double.TryParse(row[4].ToString(), out doubleVal); model.Percent = (int)doubleVal; // 5 - Zone model.TaxType = _AttributeForLanguage.CurrentUser.GetLanguageTextFromKey(row[5].ToString().ToLower()).Contains(_AttributeForLanguage.CurrentUser.GetLanguageTextFromKey("include")) ? (byte)Commons.ETax.Inclusive : _AttributeForLanguage.CurrentUser.GetLanguageTextFromKey(row[5].ToString().ToLower()).Contains(_AttributeForLanguage.CurrentUser.GetLanguageTextFromKey("add")) ? (byte)Commons.ETax.AddOn : 0; // 6 - Store model.StoreID = item; model.StoreName = row[6].ToString().Trim().Replace(" ", " "); //============== if (row[4].ToString().Replace(" ", "").Equals("")) { flagInsert = false; msgError += "<br/>" + _AttributeForLanguage.CurrentUser.GetLanguageTextFromKey("Percent is required"); } if (model.Percent < 0 || model.Percent > 100) { flagInsert = false; msgError += "<br/>" + _AttributeForLanguage.CurrentUser.GetLanguageTextFromKey("Percent must between 0 and 100"); } if (listData.Count > 0) { var IsExists = listData.Exists(x => x.IsActive && x.StoreID.Equals(model.StoreID)); if (IsExists) { if (model.IsActive) { flagInsert = false; msgError += "<br/>" + _AttributeForLanguage.CurrentUser.GetLanguageTextFromKey("Duplicate active tax in store"); } } } if (flagInsert) { listData.Add(model); } else { itemErr = new ImportItem(); itemErr.Name = model.Name; itemErr.ListFailStoreName.Add(""); itemErr.ListErrorMsg.Add(_AttributeForLanguage.CurrentUser.GetLanguageTextFromKey("Row") + ":" + model.Index + msgError); importModel.ListImport.Add(itemErr); } } catch (Exception e) { importModel.ListImport.Add(new ImportItem { Name = _AttributeForLanguage.CurrentUser.GetLanguageTextFromKey("Tax"), ListFailStoreName = lstStore, ListErrorMsg = new List <string> { e.Message } }); } } } Response.Status = true; //===================== //try //{ TaxApiModels paraBody = new TaxApiModels(); paraBody.AppKey = Commons.AppKey; paraBody.AppSecret = Commons.AppSecret; paraBody.CreatedUser = Commons.CreateUser; paraBody.RegisterToken = new RegisterTokenModels(); paraBody.ListTax = listData; //==================== var result = (ResponseApiModels)ApiResponse.Post <ResponseApiModels>(Commons.ImportTax, null, paraBody); if (result != null) { dynamic data = result.Data; var lstC = data["ListProperty"]; var lstContent = JsonConvert.SerializeObject(lstC); var listError = JsonConvert.DeserializeObject <List <ImportResult> >(lstContent); foreach (ImportResult itemError in listError) { ImportItem item = new ImportItem(); item.Name = itemError.Property; item.ListFailStoreName.Add(itemError.StoreName); item.ListErrorMsg.Add(_AttributeForLanguage.CurrentUser.GetLanguageTextFromKey("Row") + ": " + itemError.Index + "<br/>" + _AttributeForLanguage.CurrentUser.GetLanguageTextFromKey(itemError.Error)); importModel.ListImport.Add(item); } if (importModel.ListImport.Count == 0) { ImportItem item = new ImportItem(); item.Name = _AttributeForLanguage.CurrentUser.GetLanguageTextFromKey("Tax List"); item.ListSuccessStoreName.Add(_AttributeForLanguage.CurrentUser.GetLanguageTextFromKey("Import Tax Successful")); importModel.ListImport.Add(item); } } return(Response); }