예제 #1
0
        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);
            }
        }
예제 #2
0
        //=======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);
        }