Line 1: <%@ Import namespace="System" %>Line 2: <%@ Import namespace="System.Collections" %>Line 3: <%@ Import namespace="System.ComponentModel" %>Line 4: <%@ Import namespace="System.Data" %>Line 5: <%@ Import namespace="System.Data.OleDb" %>Line 6: <%@ Import namespace="System.Data.SqlClient" %>Line 7: <%@ Import namespace="System.Linq" %>Line 8: <%@ Import namespace="System.IO" %>Line 9: <%@ Import namespace="System.Net" %>Line 10: <%@ Import namespace="System.Security.Cryptography" %>Line 11: <%@ Import namespace="System.Text" %>Line 12: <%@ Import namespace="System.Web" %>Line 13: <%@ Import namespace="System.Web.Caching" %>Line 14: <%@ Import namespace="System.Web.Mail" %>Line 15: <%@ Import namespace="System.Xml" %>Line 16: <%@ Import namespace="AjaxPro" %>Line 17: <%@ Import namespace="Newtonsoft.Json" %>Line 18: <%@ Import namespace="Newtonsoft.Json.Linq" %>Line 19: <script language="C#" runAt="server">Line 20: Line 21: public int SID() {Line 22: string output = "0";Line 23: if (null != Request.QueryString["sid"] && !Request.QueryString["sid"].Equals("")) output = Request.QueryString["sid"];Line 24: return Convert.ToInt32(output);Line 25: }Line 26: Line 27: public string CID() {Line 28: string output = System.Guid.NewGuid().ToString("N");Line 29: if ( null != Request.QueryString["cid"] )Line 30: output = Request.QueryString["cid"];Line 31: if ( null != Request.Cookies["cid"] )Line 32: output = Request.Cookies["cid"].Value;Line 33: Response.Cookies["cid"].Value = output;Line 34: Response.Cookies["cid"].Expires = DateTime.Today.AddDays(60d);Line 35: Response.Cookies["cid"].Secure = true;Line 36: return output;Line 37: }Line 38: Line 39: public int WLID() {Line 40: int output = 0;Line 41: try {Line 42: if ( Request.Cookies["OCTOPUS_WLID"] != null && Request.Cookies["OCTOPUS_WLID"].Value != "" )Line 43: output = Convert.ToInt32( Request.Cookies["OCTOPUS_WLID"].Value );Line 44: if ( Request.QueryString["wlid"] != null && Request.QueryString["wlid"] != "")Line 45: output = Convert.ToInt32( Request.QueryString["wlid"] );Line 46: if( output > 0 )Line 47: Response.Cookies["OCTOPUS_WLID"].Value = Convert.ToString(output);Line 48: return output;Line 49: } catch (Exception E) {Line 50: return 0;Line 51: }Line 52: }Line 53: Line 54: public string LTYPE() {Line 55: return "none";Line 56: }Line 57: Line 58: public int UID() {Line 59: int output = 0;Line 60: if ( null != Request.Cookies["uid"] && Request.Cookies["uid"].Value != "" ) {Line 61: if ( Convert.ToInt32(Request.Cookies["uid"].Value) > 0 ) {Line 62: output = Convert.ToInt32(Request.Cookies["uid"].Value);Line 63: }Line 64: }Line 65: if ( null != Request.Cookies["OCTOPUS_UID"] && Request.Cookies["OCTOPUS_UID"].Value != "" ) {Line 66: if ( Convert.ToInt32(Request.Cookies["OCTOPUS_UID"].Value) > 0 ) {Line 67: output = Convert.ToInt32(Request.Cookies["OCTOPUS_UID"].Value);Line 68: }Line 69: }Line 70: Line 71: if ( output == 0 ) {Line 72: if ( null != Request.QueryString["uid"] && !Request.QueryString["uid"].Equals("") && Request.QueryString["uid"].Split(',').Length == 1 ) {Line 73: output = Convert.ToInt32(Request.QueryString["uid"]);Line 74: if ( output > 0 ) {Line 75: Response.Cookies["uid"].Value = Convert.ToString(output);Line 76: Response.Cookies["uid"].Expires = DateTime.Now.AddYears(99);Line 77: }Line 78: }Line 79: }Line 80: Line 81: return output;Line 82: }Line 83: Line 84: public bool LOGGED(int shopId, int userId) {Line 85: bool output = false;Line 86: Line 87: string key = "lgd" + shopId + userId;Line 88: try {Line 89: if ( null != Request.Cookies[key] && Request.Cookies[key].Value != "" ) {Line 90: if ( Convert.ToBoolean(Request.Cookies[key].Value) ) {Line 91: output = Convert.ToBoolean(Request.Cookies[key].Value);Line 92: }Line 93: }Line 94: } catch (Exception E) {Line 95: output = false;Line 96: }Line 97: Line 98: return output;Line 99: }Line 100: Line 101: public string HTTP2HTTPS(string thisConfig) {Line 102: StringBuilder Sb = new StringBuilder();Line 103: Line 104: // discount couponLine 105: if ( Request.Cookies["octopus-dc"] != null && Request.Cookies["octopus-dc"].Value != "" && thisConfig.IndexOf("&dc=") == -1 ) {Line 106: Sb.Append("&dc=" + Request.Cookies["octopus-dc"].Value);Line 107: }Line 108: Line 109: // recovery by quotationLine 110: if ( Request.Cookies["octopus-fqtn"] != null && Request.Cookies["octopus-fqtn"].Value == "true" && thisConfig.IndexOf("&fqtn=") == -1 ) {Line 111: Sb.Append("&fqtn=1");Line 112: }Line 113: Line 114: // custom price groupLine 115: try {Line 116: if ( Request.Cookies["octopus-upg"] != null && Request.Cookies["octopus-upg"].Value != "" && thisConfig.IndexOf("&upg=") == -1 ) {Line 117: Sb.Append("&upg=" + Request.Cookies["octopus-upg"].Value);Line 118: }Line 119: } catch (Exception ex) {Line 120: // nothing to doLine 121: }Line 122: Line 123: // UTMsLine 124: if ( Request.Cookies["p_source"] != null && Request.Cookies["p_source"].Value != "" && thisConfig.IndexOf("&utm_source=") == -1 ) {Line 125: Sb.Append("&utm_source=" + Request.Cookies["p_source"].Value);Line 126: }Line 127: if ( Request.Cookies["p_medium"] != null && Request.Cookies["p_medium"].Value != "" && thisConfig.IndexOf("&utm_medium=") == -1 ) {Line 128: Sb.Append("&utm_medium=" + Request.Cookies["p_medium"].Value);Line 129: }Line 130: if ( Request.Cookies["p_campaign"] != null && Request.Cookies["p_campaign"].Value != "" && thisConfig.IndexOf("&utm_campaign=") == -1 ) {Line 131: Sb.Append("&utm_campaign=" + Request.Cookies["p_campaign"].Value);Line 132: }Line 133: Line 134: return thisConfig + Sb.ToString();Line 135: }Line 136: Line 137: Line 138: Line 139: Line 140: Line 141: Line 142: Line 143: Line 144: Line 145: Line 146: public class ShopSetup {Line 147: private static int sid;Line 148: Line 149: private static string sOwner, sPath, sHttp, sHttps;Line 150: private static int sType, useFC;Line 151: private static bool useCC, useET, useEF, useBB, useBD, useIO;Line 152: private static bool useSC, useDDM, useQS, useFS, useBN, useNL, useSL, useRVI, useEP, usePS, useTF, useCS, useGR, useASQ, useEG, useDC, useAD, usePD, useDG, useCM, useCN, useEbit, useHackerSafe, useClearSale, useTracker;Line 153: Line 154: private static string title, description, keywords, titleProdDetail, titleCategory, wds, url, phone, email, currType, imgSizes, encryptPass;Line 155: private static int ndd, bbExp, irpp, trpp, ipp, capd, cadd;Line 156: private static decimal minOrder;Line 157: private static bool retail, thirdExp, useZoom, usePopMsg, locked, nologo;Line 158: Line 159: public StringDictionary dic = new StringDictionary();Line 160: Line 161: public ShopSetup(int shopId) {Line 162: sid = shopId;Line 163: nologo = false;Line 164: }Line 165: Line 166: public void FillVars() {Line 167: SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["coreConn"]);Line 168: conn.Open();Line 169: Line 170: string query = "sp_corevars";Line 171: SqlCommand cmd = new SqlCommand(query, conn);Line 172: cmd.CommandType = CommandType.StoredProcedure;Line 173: cmd.Parameters.Add(new SqlParameter("@idShop", SqlDbType.Int));Line 174: cmd.Parameters["@idShop"].Value = sid;Line 175: Line 176: SqlDataReader rdr = cmd.ExecuteReader();Line 177: if (rdr.Read()) {Line 178: sOwner = (string)rdr["owner"]; // shop ownerLine 179: sPath = (string)rdr["sPath"]; // shop pathLine 180: sHttp = (string)rdr["sHttp"]; // shop http urlLine 181: sHttps = (string)rdr["sHttps"]; // shop https urlLine 182: sType = (int)rdr["sType"]; // shop typeLine 183: Line 184: useCC = (bool)rdr["useCC"]; // credit cardLine 185: useET = (bool)rdr["useET"]; // eletronic transferLine 186: useEF = (bool)rdr["useEF"]; // eletronic financingLine 187: useBB = (bool)rdr["useBB"]; // bank billetLine 188: useBD = (bool)rdr["useBD"]; // bank depositLine 189: useIO = (bool)rdr["useIO"]; // invoiced orderLine 190: Line 191: useSC = (bool)rdr["useSC"]; // stock control?Line 192: Line 193: useDDM = (bool)rdr["useDDM"]; // drop down menu?Line 194: useFC = (int)rdr["useFC"]; // floating cart?Line 195: useQS = (bool)rdr["useQS"]; // quick search?Line 196: useFS = (bool)rdr["useFS"]; // filter search?Line 197: useBN = (bool)rdr["useBN"]; // banners?Line 198: useNL = (bool)rdr["useNL"]; // newsletter?Line 199: useSL = (bool)rdr["useSL"]; // spotlight?Line 200: useRVI = (bool)rdr["useRVI"]; // recent viewed items?Line 201: Line 202: useEP = (bool)rdr["useEP"]; // extra pictures?Line 203: usePS = (bool)rdr["usePS"]; // product selects?Line 204: useTF = (bool)rdr["useTF"]; // tell a friendLine 205: useCS = (bool)rdr["useCS"]; // cross selling?Line 206: useGR = (bool)rdr["useGR"]; // guest reviews?Line 207: useASQ = (bool)rdr["useASQ"]; // ask seller a question?Line 208: Line 209: useEG = (bool)rdr["useEG"]; // extra gifts?Line 210: Line 211: useDC = (bool)rdr["useDC"]; // discount coupon?Line 212: useAD = (bool)rdr["useAD"]; // additional data?Line 213: usePD = (bool)rdr["usePD"]; // personal delivery?Line 214: Line 215: useDG = (bool)rdr["useDG"]; // deliver as gift?Line 216: useCM = (bool)rdr["useCM"]; // card message?Line 217: useCN = (bool)rdr["useCN"]; // cellphone notification?Line 218: Line 219: useEbit = (bool)rdr["useEbit"]; // ebit rate system?Line 220: useHackerSafe = (bool)rdr["useHackerSafe"]; // ScanAlert HackerSafe?Line 221: useClearSale = (bool)rdr["useClearSale"]; // ClearSale?Line 222: useTracker = (bool)rdr["useTracker"]; // enable Tracker?Line 223: }Line 224: rdr.Close();Line 225: conn.Close();Line 226: Line 227: conn = new SqlConnection(sPath);Line 228: conn.Open();Line 229: Line 230: query = "SELECT sys_setup.* FROM sys_setup WITH (NOLOCK)";Line 231: cmd = new SqlCommand(query, conn);Line 232: rdr = cmd.ExecuteReader();Line 233: if (rdr.Read()) {Line 234: title = (string)rdr["title"];Line 235: description = (string)rdr["description"];Line 236: keywords = (string)rdr["keywords"];Line 237: titleProdDetail = (string)rdr["titleProdDetail"];Line 238: titleCategory = (string)rdr["titleCategory"];Line 239: wds = (string)rdr["wds"]; // window default statusLine 240: url = (string)rdr["url"]; // uniform resource locatorLine 241: phone = (string)rdr["phone"];Line 242: email = (string)rdr["email"];Line 243: currType = (string)rdr["currType"]; // currency typeLine 244: imgSizes = (string)rdr["imgSizes"]; // image sizes: eg. zWxzH;bWxbH;mWxmH;sWxsH;tWxtH;Line 245: ndd = (int)rdr["ndd"]; // number of decimal digitsLine 246: bbExp = (int)rdr["bbExp"]; // bank billet expiration stated periodLine 247: irpp = (int)rdr["irpp"]; // image records per pageLine 248: trpp = (int)rdr["trpp"]; // text records per pageLine 249: ipp = (int)rdr["ipp"]; // indexes per pageLine 250: capd = (int)rdr["capd"]; // chars @ product descriptionLine 251: cadd = (int)rdr["cadd"]; // chars @ details descriptionLine 252: minOrder = (decimal)rdr["minOrder"]; // minimun orderLine 253: retail = (bool)rdr["retail"]; // is retail?Line 254: thirdExp = (bool)rdr["3rdExp"]; // use 3rd expansion?Line 255: useZoom = (bool)rdr["useZoom"]; // zoom products?Line 256: usePopMsg = (bool)rdr["usePopMsg"]; // pop message for new orders? [adm]Line 257: locked = (bool)rdr["locked"]; // shop locked?Line 258: }Line 259: rdr.Close();Line 260: Line 261: query = "SELECT sys_dic.* FROM sys_dic WITH (NOLOCK)";Line 262: cmd = new SqlCommand(query, conn);Line 263: rdr = cmd.ExecuteReader();Line 264: while(rdr.Read()) {Line 265: if (!dic.ContainsKey((string)rdr["key"]))dic.Add((string)rdr["key"], (string)rdr["value"]);Line 266: }Line 267: rdr.Close();Line 268: Line 269: conn.Close();Line 270: Line 271: encryptPass = "l0jc0mm";Line 272: }Line 273: Line 274: public string Owner {get{return sOwner;}set{sOwner = value;}}Line 275: public string Path {get{return sPath;}set{sPath = value;}}Line 276: public string Http {get{return sHttp;}set{sHttp = value;}}Line 277: public string Https {get{return sHttps;}set{sHttps = value;}}Line 278: public int Type {get{return sType;}set{sType = value;}}Line 279: Line 280: public bool UseCC {get{return useCC;}set{useCC = value;}}Line 281: public bool UseET {get{return useET;}set{useET = value;}}Line 282: public bool UseEF {get{return useEF;}set{useEF = value;}}Line 283: public bool UseBB {get{return useBB;}set{useBB = value;}}Line 284: public bool UseBD {get{return useBD;}set{useBD = value;}}Line 285: public bool UseIO {get{return useIO;}set{useIO = value;}}Line 286: public bool UseSC {get{return useSC;}set{useSC = value;}}Line 287: public bool UseDDM{get{return useDDM;}set{useDDM = value;}}Line 288: public int UseFC {get{return useFC;}set{useFC = value;}}Line 289: public bool UseQS {get{return useQS;}set{useQS = value;}}Line 290: public bool UseFS {get{return useFS;}set{useFS = value;}}Line 291: public bool UseBN {get{return useBN;}set{useBN = value;}}Line 292: public bool UseNL {get{return useNL;}set{useNL = value;}}Line 293: public bool UseSL {get{return useSL;}set{useSL = value;}}Line 294: public bool UseRVI {get{return useRVI;}set{useRVI = value;}}Line 295: Line 296: public bool UseEP {get{return useEP;}set{useEP = value;}}Line 297: public bool UsePS {get{return usePS;}set{usePS = value;}}Line 298: public bool UseTF {get{return useTF;}set{useTF = value;}}Line 299: public bool UseCS {get{return useCS;}set{useCS = value;}}Line 300: public bool UseGR {get{return useGR;}set{useGR = value;}}Line 301: public bool UseASQ {get{return useASQ;}set{useASQ = value;}}Line 302: Line 303: public bool UseEG {get{return useEG;}set{useEG = value;}}Line 304: Line 305: public bool UseDC {get{return useDC;}set{useDC = value;}}Line 306: public bool UseAD {get{return useAD;}set{useAD = value;}}Line 307: public bool UsePD {get{return usePD;}set{usePD = value;}}Line 308: Line 309: public bool UseDG {get{return useDG;}set{useDG = value;}}Line 310: public bool UseCM {get{return useCM;}set{useCM = value;}}Line 311: public bool UseCN {get{return useCN;}set{useCN = value;}}Line 312: Line 313: public bool UseEbit {get{return useEbit;}set{useEbit = value;}}Line 314: public bool UseHackerSafe {get{return useHackerSafe;}set{useHackerSafe = value;}}Line 315: public bool UseClearSale {get{return useClearSale;}set{useClearSale = value;}}Line 316: public bool UseTracker {get{return useTracker;}set{useTracker = value;}}Line 317: Line 318: public string Title {get{return title;}set{title = value;}}Line 319: public string Description {get{return description;}set{description = value;}}Line 320: public string Keywords {get{return keywords;}set{keywords = value;}}Line 321: public string TitleProdDetail {get{return titleProdDetail;}set{titleProdDetail = value;}}Line 322: public string TitleCategory {get{return titleCategory;}set{titleCategory = value;}}Line 323: public string WDS {get{return wds;}set{wds = value;}}Line 324: public string URL {get{return url;}set{url = value;}}Line 325: public string Phone {get{return phone;}set{phone = value;}}Line 326: public string Email {get{return email;}set{email = value;}}Line 327: public string CurrType {get{return currType;}set{currType = value;}}Line 328: public string ImgSizes {get{return imgSizes;}set{imgSizes = value;}}Line 329: public int NDD {get{return ndd;}set{ndd = value;}}Line 330: public int BBExp {get{return bbExp;}set{bbExp = value;}}Line 331: public int IRPP {get{return irpp;}set{irpp = value;}}Line 332: public int TRPP {get{return trpp;}set{trpp = value;}}Line 333: public int IPP {get{return ipp;}set{ipp = value;}}Line 334: public int CAPD {get{return capd;}set{capd = value;}}Line 335: public int CADD {get{return cadd;}set{cadd = value;}}Line 336: public decimal MinOrder {get{return minOrder;}set{minOrder = value;}}Line 337: public bool isRetail {get{return retail;}set{retail = value;}}Line 338: public bool Use3rdExp {get{return thirdExp;}set{thirdExp = value;}}Line 339: public bool UseZoom {get{return useZoom;}set{useZoom = value;}}Line 340: public bool UsePopMsg {get{return usePopMsg;}set{usePopMsg = value;}}Line 341: public bool isLocked {get{return locked;}set{locked = value;}}Line 342: public string EncryptPass {get{return encryptPass;}set{encryptPass = value;}}Line 343: public bool NoLogo {get{return nologo;}set{nologo = value;}}Line 344: Line 345: public int CartKpbHistGo {Line 346: get {Line 347: int output = -1;Line 348: Line 349: if ( getConfig("CartKpb.history.go").Length > 0 )Line 350: output = Convert.ToInt32(getConfig("CartKpb.history.go"));Line 351: Line 352: return output;Line 353: }Line 354: }Line 355: Line 356: public bool useLazyLoad {Line 357: get {Line 358: bool output = false;Line 359: if ( getConfig("UseLazyLoad").ToLower() == "true" )Line 360: output = true;Line 361: Line 362: return output;Line 363: }Line 364: }Line 365: Line 366: public bool useST {Line 367: get {Line 368: bool output = false;Line 369: if ( getConfig("UseST") != "" ) {Line 370: output = true;Line 371: }Line 372: return output;Line 373: }Line 374: }Line 375: Line 376: Line 377: public bool useGridCache {Line 378: get {Line 379: string v = getConfig("UseGridCache");Line 380: return (v != "" ? Convert.ToBoolean(v) : true);Line 381: }Line 382: }Line 383: Line 384: public dynamic Next {Line 385: get {Line 386: dynamic output = JsonConvert.DeserializeObject<JObject>("{}");Line 387: string config = getConfig("Next");Line 388: if( config != "" )Line 389: output = JsonConvert.DeserializeObject<JObject>(config);Line 390: return output;Line 391: }Line 392: }Line 393: Line 394: public dynamic Search {Line 395: get {Line 396: dynamic output = JsonConvert.DeserializeObject<JObject>("{}");Line 397: string config = getConfig("Search");Line 398: if( config != "" )Line 399: output = JsonConvert.DeserializeObject<JObject>(config);Line 400: return output;Line 401: }Line 402: }Line 403: Line 404: public bool setConfig(string idModule, string config) {Line 405: bool output = false;Line 406: Line 407: SqlConnection Conn = new SqlConnection(sPath);Line 408: Conn.Open();Line 409: string query = "UPDATE sys_configs SET [config] = @config WHERE [idModule] = @idModule";Line 410: SqlCommand cmd = new SqlCommand(query, Conn);Line 411: cmd.Parameters.Add(new SqlParameter("@config", SqlDbType.NText));Line 412: cmd.Parameters.Add(new SqlParameter("@idModule", SqlDbType.NVarChar));Line 413: cmd.Parameters["@config"].Value = config;Line 414: cmd.Parameters["@idModule"].Value = idModule;Line 415: output = Convert.ToInt32(cmd.ExecuteNonQuery()) > 0;Line 416: Conn.Close();Line 417: Line 418: return output;Line 419: }Line 420: Line 421: public string getConfig(string idModule) {Line 422: string output = "";Line 423: Line 424: SqlConnection Conn = new SqlConnection(sPath);Line 425: Conn.Open();Line 426: Line 427: string query = @"Line 428: SELECT [config]Line 429: FROM sys_configs WITH (NOLOCK)Line 430: WHERE (idModule = @idModule) AND (NOT [config] IS NULL)Line 431: ";Line 432: SqlCommand cmd = new SqlCommand(query, Conn);Line 433: cmd.Parameters.Add(new SqlParameter("@idModule", SqlDbType.NVarChar));Line 434: cmd.Parameters["@idModule"].Value = idModule;Line 435: Line 436: output = Convert.ToString(cmd.ExecuteScalar());Line 437: Line 438: Conn.Close();Line 439: return output;Line 440: }Line 441: Line 442: public string getStatus(int id) {Line 443: string output = "";Line 444: SqlConnection conn = new SqlConnection(sPath);Line 445: conn.Open();Line 446: string query = "SELECT name FROM sys_ordersStatus WITH (NOLOCK) WHERE id = " + id;Line 447: SqlCommand cmd = new SqlCommand(query, conn);Line 448: SqlDataReader rdr = cmd.ExecuteReader();Line 449: Line 450: if (rdr.Read()) {Line 451: output = (string)rdr[0];Line 452: }Line 453: Line 454: rdr.Close();Line 455: conn.Close();Line 456: Line 457: return output;Line 458: }Line 459: Line 460: public string ShopTags(string input) {Line 461: if (input.Length<=0)return "";Line 462: string output = input;Line 463: Line 464: DateTime dateTime = new DateTime();Line 465: dateTime = DateTime.Now;Line 466: Line 467: output = output.Replace("[? title ?]",title);Line 468: Line 469: output = output.Replace( "[? domain ?]", sHttp.Replace( "/octopus/", "" ) );Line 470: Line 471: output = output.Replace("[? url ?]","<a href='" + url + "'>" + url + "</a>");Line 472: output = output.Replace("[? email ?]",email);Line 473: output = output.Replace("[? phone ?]",phone);Line 474: output = output.Replace("[? bbExp ?]",Convert.ToString(bbExp));Line 475: Line 476: output = output.Replace("[? day ?]",dateTime.ToString("dd"));Line 477: output = output.Replace("[? month ?]",dateTime.ToString("MM"));Line 478: output = output.Replace("[? year ?]",dateTime.ToString("yyyy"));Line 479: Line 480: output = output.Replace("[? shop_banks ?]",bankAccounts(false));Line 481: Line 482: output = output.Replace("[?b ","<b>");Line 483: output = output.Replace("[?i ","<i>");Line 484: output = output.Replace("[?u ","<u>");Line 485: output = output.Replace("[?help ","<a href='" + sHttp.Replace( "/octopus/", "" ) + "/duvidas'>");Line 486: Line 487: output = output.Replace(" b?]","</b>");Line 488: output = output.Replace(" i?]","</i>");Line 489: output = output.Replace(" u?]","</u>");Line 490: output = output.Replace(" help?]","</a>");Line 491: Line 492: return output;Line 493: }Line 494: Line 495: public string bankAccounts(bool nonStatic) {Line 496: string output = "";Line 497: output += "<table>\n";Line 498: Line 499: SqlConnection conn = new SqlConnection(sPath);Line 500: conn.Open();Line 501: Line 502: string query = "SELECT COUNT(*) FROM sys_bd_list WITH (NOLOCK)";Line 503: SqlCommand cmd = new SqlCommand(query, conn);Line 504: int i = Convert.ToInt32(cmd.ExecuteScalar());Line 505: Line 506: if (!nonStatic) {Line 507: output += " <tr>\n";Line 508: query = "SELECT sys_bd_list.* FROM sys_bd_list WITH (NOLOCK)";Line 509: cmd = new SqlCommand(query, conn);Line 510: SqlDataReader rdr = cmd.ExecuteReader();Line 511: while(rdr.Read()) {Line 512: output += " <td width='" + Convert.ToInt32(100/i) + "%'><b>" + rdr["bank"] + "</b><br />" + rdr["owner"] + "<br />AG.: " + rdr["ag"] + "<br />CC.: " + rdr["cc"] + "<br /></td>\n";Line 513: }Line 514: rdr.Close();Line 515: output += " </tr>\n";Line 516: }Line 517: Line 518: conn.Close();Line 519: Line 520: if (nonStatic) {Line 521: output += " <tr>\n";Line 522: output += " <td"; if (i > 1)output+=" colspan='" + i + "'";output+=">\n";Line 523: output += " <font class='title' color='red'><strong>NOTA I:</strong> </font>Não esqueça de anotar os dados do banco desejado para efetuar o depósito.<br />\n";Line 524: output += " <font class='title' color='red'><strong>NOTA II:</strong> </font>O pedido só será entregue quando o pagamento estiver disponível na conta.<br />\n";Line 525: output += " <font class='title' color='red'><strong>NOTA III:</strong> </font>Você dever enviar o comprovante de depósito, juntamente com a referência do pedido, via email.<br />\n";Line 526: output += " </td>\n";Line 527: output += " </tr>\n";Line 528: output += " <tr><td"; if (i > 1)output+=" colspan='" + i + "'";output+=" align='right'>";Line 529: output += " <input data-mode='BD' class='click_once' id='billing-submit-bd' type='image' src='/octopus/design/images/" + sid + "/form_prc_bd.png' />";Line 530: output += "</td></tr>\n";Line 531: }Line 532: Line 533: output += "</table>\n";Line 534: return output;Line 535: }Line 536: Line 537: public bool dynamicFlagExists(string flag, int codGroup) {Line 538: bool output = false;Line 539: Line 540: SqlConnection conn = new SqlConnection(sPath);Line 541: conn.Open();Line 542: Line 543: string query = @"Line 544: SELECT ccFlagLine 545: FROM sys_parcels WITH (NOLOCK)Line 546: WHERE (ccFlag = @ccFlag) AND (priceGroup = @priceGroup)Line 547: ";Line 548: SqlCommand cmd = new SqlCommand(query, conn);Line 549: cmd.Parameters.Add(new SqlParameter("@ccFlag", SqlDbType.NVarChar));Line 550: cmd.Parameters["@ccFlag"].Value = flag;Line 551: cmd.Parameters.Add(new SqlParameter("@priceGroup", SqlDbType.Int));Line 552: cmd.Parameters["@priceGroup"].Value = codGroup;Line 553: SqlDataReader rdr = cmd.ExecuteReader();Line 554: Line 555: if (rdr.Read()) output = true;Line 556: Line 557: rdr.Close();Line 558: conn.Close();Line 559: Line 560: return output;Line 561: }Line 562: Line 563: public int getAccess(string user, string resource) {Line 564: int output = 0;Line 565: Line 566: SqlConnection conn = new SqlConnection(sPath);Line 567: conn.Open();Line 568: Line 569: string query = @"Line 570: SELECT acl_roles.roleLine 571: FROM acl_users WITH (NOLOCK)Line 572: INNER JOIN acl_roles WITH (NOLOCK) ON acl_users.idRole = acl_roles.idLine 573: WHERE acl_users.[user] = @userLine 574: ";Line 575: SqlCommand cmd = new SqlCommand(query, conn);Line 576: cmd.Parameters.Add(new SqlParameter("@user", SqlDbType.NVarChar));Line 577: cmd.Parameters["@user"].Value = user;Line 578: Line 579: string role = Convert.ToString(cmd.ExecuteScalar());Line 580: Line 581: query = "SP_acl_getAccess";Line 582: cmd = new SqlCommand(query, conn);Line 583: cmd.CommandType = CommandType.StoredProcedure;Line 584: cmd.Parameters.Add(new SqlParameter("@role", SqlDbType.NVarChar));Line 585: cmd.Parameters.Add(new SqlParameter("@resource", SqlDbType.NVarChar));Line 586: cmd.Parameters["@role"].Value = role;Line 587: cmd.Parameters["@resource"].Value = resource;Line 588: Line 589: output = Convert.ToInt32(cmd.ExecuteScalar());Line 590: Line 591: conn.Close();Line 592: Line 593: return output;Line 594: }Line 595: Line 596: public string[] getImgSize(string size) {Line 597: string[] output = new string[2];Line 598: string[] sizes = ImgSizes.Split(';');Line 599: string[] s = null;Line 600: Line 601: if ( sizes.Length >= 5 ) {Line 602: switch(size) {Line 603: case "Z":Line 604: s = sizes[0].Split('x');Line 605: break;Line 606: Line 607: case "B":Line 608: s = sizes[1].Split('x');Line 609: break;Line 610: Line 611: case "M":Line 612: s = sizes[2].Split('x');Line 613: break;Line 614: Line 615: case "S":Line 616: s = sizes[3].Split('x');Line 617: break;Line 618: Line 619: case "T":Line 620: s = sizes[4].Split('x');Line 621: break;Line 622: Line 623: default:Line 624: s[0] = "";Line 625: s[1] = "";Line 626: break;Line 627: }Line 628: Line 629: output[0] = s[0];Line 630: output[1] = s[1];Line 631: }Line 632: Line 633: return output;Line 634: }Line 635: Line 636: // public bool useST(int userId) {Line 637: // bool output = false;Line 638: Line 639: // if ( getConfig("UseST").Length > -1 ) {Line 640: // string utp = "";Line 641: // string id2 = "";Line 642: Line 643: // SqlConnection conn = new SqlConnection(sPath);Line 644: // conn.Open();Line 645: Line 646: // string query = "SELECT userType, id2 FROM sys_users WITH (NOLOCK) WHERE (codUser = @codUser)";Line 647: // SqlCommand cmd = new SqlCommand(query, conn);Line 648: // cmd.Parameters.Add(new SqlParameter("@codUser", SqlDbType.Int));Line 649: // cmd.Parameters["@codUser"].Value = userId;Line 650: // SqlDataReader rdr = cmd.ExecuteReader();Line 651: Line 652: // if ( rdr.Read() ) {Line 653: Line 654: // //--( Regras para aplicao de substituio tributria )--------Line 655: Line 656: // utp = Convert.ToString(rdr[0]);Line 657: // if ( rdr[0] != DBNull.Value && Convert.ToString(rdr[1]) != "" ) {Line 658: // id2 = Convert.ToString(rdr[1]);Line 659: // }Line 660: Line 661: // }Line 662: Line 663: // rdr.Close();Line 664: // conn.Close();Line 665: Line 666: // switch( getConfig("UseST") ) {Line 667: // case "F": // Somente para pessoa fsicaLine 668: // if ( utp == "F" ) {Line 669: // output = true;Line 670: // }Line 671: // break;Line 672: Line 673: // case "J": // Somente para pessoa jurdicaLine 674: // if ( utp == "J" ) {Line 675: // output = true;Line 676: // }Line 677: // break;Line 678: Line 679: // case "JI": // Somente pessoa juridica com iseno de I.ELine 680: // if ( utp == "J" && id2 == "" ) {Line 681: // output = true;Line 682: // }Line 683: // break;Line 684: Line 685: // case "FJI": // Somente pessoa fsica ou juridica com iseno de I.ELine 686: // if ( id2 == "" ) {Line 687: // output = true;Line 688: // }Line 689: // break;Line 690: Line 691: // default: // Todos os casosLine 692: // output = true;Line 693: // break;Line 694: // }Line 695: Line 696: // }Line 697: Line 698: // return output;Line 699: // }Line 700: Line 701: public string mappingErrors(string code) {Line 702: return mappingErrors(code, 0);Line 703: }Line 704: Line 705: public string mappingErrors(string code, int index) {Line 706: switch(code) {Line 707: case "bll-00001":Line 708: return "Dados de entrega inválidos. Por favor confira os dados digitados e tente novamente.";Line 709: Line 710: case "bll-00002":Line 711: return "Confirme os Termos e Condições para o fechamento do pedido.";Line 712: Line 713: case "prc_op1-00001":Line 714: return "[CARTÃO DE CRÉDITO]: Selecione uma das bandeiras disponíveis.";Line 715: Line 716: case "prc_op1-00002":Line 717: return "[CARTÃO DE CRÉDITO]: Preencha o Nome impresso no cartão.";Line 718: Line 719: case "prc_op1-00003":Line 720: return "[CARTÃO DE CRÉDITO]: Número do cartão inválido. Verifique o número digitado e tente novamente.";Line 721: Line 722: case "prc_op1-00004":Line 723: return "[CARTÃO DE CRÉDITO]: Data de validade expirada. Verifique a data selecionada e tente novamente.";Line 724: Line 725: case "prc_op1-00005":Line 726: return "[CARTÃO DE CRÉDITO]: Código de segurança inválido. Verifique o código digitado e tente novamente.";Line 727: Line 728: case "prc_op1-00006":Line 729: return "[CARTÃO DE CRÉDITO]: Por favor selecione uma opção de parcelamento.";Line 730: Line 731: case "prc_op2-00001":Line 732: return "[TRANSFERÊNCIA ELETRÔNICA]: Por favor selecione um dos bancos disponíveis.";Line 733: Line 734: case "prc_op3-00001":Line 735: return "[FINANCIAMENTO ELETRÔNICO]: Por favor selecione um dos bancos disponíveis.";Line 736: Line 737: case "prc_op6-00001":Line 738: return "[FATURADO EMPRESA]: Por favor selecione uma das opes de pagamento disponíveis.";Line 739: Line 740: case "prc_op13-00001":Line 741: return "[CARTÃO DE DÉBITO]: Selecione uma das bandeiras disponíveis.";Line 742: Line 743: case "prc_op13-00002":Line 744: return "[CARTÃO DE DÉBITO]: Preencha o Nome impresso no cartão.";Line 745: Line 746: case "prc_op13-00003":Line 747: return "[CARTÃO DE DÉBITO]: Número do cartão inválido. Verifique o número digitado e tente novamente.";Line 748: Line 749: case "prc_op13-00004":Line 750: return "[CARTÃO DE DÉBITO]: Data de validade expirada. Verifique a data selecionada e tente novamente.";Line 751: Line 752: case "prc_op13-00005":Line 753: return "[CARTÃO DE DÉBITO]: Código de segurança inválido. Verifique o código digitado e tente novamente.";Line 754: Line 755: default:Line 756: return "";Line 757: }Line 758: }Line 759: Line 760: }Line 761: Line 762: Line 763: Line 764: Line 765: Line 766: Line 767: Line 768: Line 769: Line 770: Line 771: public class UserSetup {Line 772: public UserSetup() {}Line 773: Line 774: public static string UserEmail(string path, int userId) {Line 775: SqlConnection conn = new SqlConnection(path);Line 776: conn.Open();Line 777: string query = "SELECT email FROM sys_users WITH (NOLOCK) WHERE (codUser = @codUser) AND (active = 1);";Line 778: SqlCommand cmd = new SqlCommand(query, conn);Line 779: cmd.Parameters.Add(new SqlParameter("@codUser", SqlDbType.Int));Line 780: cmd.Parameters["@codUser"].Value = userId;Line 781: return Convert.ToString(cmd.ExecuteScalar());Line 782: conn.Close();Line 783: }Line 784: Line 785: public static int UserGroup(string path, int userId) {Line 786: if (userId == 0)return 1;Line 787: int output = 1;Line 788: Line 789: SqlConnection conn = new SqlConnection(path);Line 790: conn.Open();Line 791: Line 792: string query = "SELECT codGroup FROM sys_users WITH (NOLOCK) WHERE (codUser = @codUser);";Line 793: SqlCommand cmd = new SqlCommand(query, conn);Line 794: cmd.Parameters.Add(new SqlParameter("@codUser", SqlDbType.Int));Line 795: cmd.Parameters["@codUser"].Value = userId;Line 796: Line 797: SqlDataReader rdr = cmd.ExecuteReader();Line 798: if (rdr.Read()) {Line 799: output = (int)rdr[0];Line 800: }Line 801: Line 802: rdr.Close();Line 803: conn.Close();Line 804: Line 805: return output;Line 806: }Line 807: Line 808: public static decimal UserMinOrder(string path, int codGroup) {Line 809: decimal output = 0;Line 810: Line 811: SqlConnection conn = new SqlConnection(path);Line 812: conn.Open();Line 813: Line 814: string query = "SELECT minOrder FROM tbl_priceGroups WITH (NOLOCK) WHERE (codGroup = @codGroup);";Line 815: SqlCommand cmd = new SqlCommand(query, conn);Line 816: cmd.Parameters.Add(new SqlParameter("@codGroup", SqlDbType.Int));Line 817: cmd.Parameters["@codGroup"].Value = codGroup;Line 818: Line 819: SqlDataReader rdr = cmd.ExecuteReader();Line 820: if (rdr.Read()) {Line 821: output = (decimal)rdr[0];Line 822: }Line 823: Line 824: rdr.Close();Line 825: conn.Close();Line 826: Line 827: return output;Line 828: }Line 829: Line 830: public static string UserData(string path, int userId) {Line 831: string output = "";Line 832: Line 833: SqlConnection conn = new SqlConnection(path);Line 834: conn.Open();Line 835: Line 836: string query = @"Line 837: SELECTLine 838: name,Line 839: email,Line 840: id1,Line 841: id2,Line 842: address,Line 843: district,Line 844: city,Line 845: state,Line 846: zipcode,Line 847: phone1,Line 848: phone2Line 849: FROM sys_users WITH (NOLOCK)Line 850: WHERE (codUser = @codUser)Line 851: ";Line 852: Line 853: SqlCommand cmd = new SqlCommand(query, conn);Line 854: cmd.Parameters.Add(new SqlParameter("@codUser", SqlDbType.Int));Line 855: cmd.Parameters["@codUser"].Value = userId;Line 856: Line 857: SqlDataReader rdr = cmd.ExecuteReader();Line 858: if (rdr.Read()) {Line 859: output += rdr["name"] + " [" + rdr["email"] + "]\n";Line 860: output += "CPF/CNPJ: " + rdr["id1"] + "\n";Line 861: output += "RG/IE: " + rdr["id2"] + "\n";Line 862: output += "\n";Line 863: output += rdr["address"] + "\n";Line 864: output += rdr["district"] + "\n";Line 865: output += rdr["city"] + "-" + rdr["state"] + "\n";Line 866: output += rdr["zipcode"] + "\n";Line 867: output += "\n";Line 868: output += "T.Residencial: " + rdr["phone1"] + "\n";Line 869: output += "T.Comercial: " + rdr["phone2"] + "\n";Line 870: }Line 871: Line 872: rdr.Close();Line 873: conn.Close();Line 874: Line 875: return output;Line 876: }Line 877: Line 878: public static void setActive(string path, int userId, int active) {Line 879: SqlConnection conn = new SqlConnection(path);Line 880: conn.Open();Line 881: string query = "UPDATE sys_users SET active = @active WHERE (codUser = @codUser)";Line 882: SqlCommand cmd = new SqlCommand(query, conn);Line 883: cmd.Parameters.Add(new SqlParameter("@active", SqlDbType.TinyInt));Line 884: cmd.Parameters.Add(new SqlParameter("@codUser", SqlDbType.Int));Line 885: cmd.Parameters["@active"].Value = active;Line 886: cmd.Parameters["@codUser"].Value = userId;Line 887: cmd.ExecuteNonQuery();Line 888: conn.Close();Line 889: }Line 890: Line 891: public static void setLogin(string path, int userId, bool key) {Line 892: SqlConnection conn = new SqlConnection(path);Line 893: conn.Open();Line 894: string query = "UPDATE sys_users SET logged = @logged WHERE (codUser = @codUser)";Line 895: SqlCommand cmd = new SqlCommand(query, conn);Line 896: cmd.Parameters.Add(new SqlParameter("@logged", SqlDbType.Bit));Line 897: cmd.Parameters.Add(new SqlParameter("@codUser", SqlDbType.Int));Line 898: cmd.Parameters["@logged"].Value = key;Line 899: cmd.Parameters["@codUser"].Value = userId;Line 900: cmd.ExecuteNonQuery();Line 901: conn.Close();Line 902: }Line 903: Line 904: public static void appendToNotes(string path, int userId, string note) {Line 905: string notes = "";Line 906: SqlConnection conn = new SqlConnection(path);Line 907: conn.Open();Line 908: Line 909: string query = "SELECT notes FROM sys_users WITH (NOLOCK) WHERE (codUser = @codUser) AND (NOT notes IS NULL)";Line 910: SqlCommand cmd = new SqlCommand(query, conn);Line 911: cmd.Parameters.Add(new SqlParameter("@codUser", SqlDbType.Int));Line 912: cmd.Parameters["@codUser"].Value = userId;Line 913: notes = Convert.ToString(cmd.ExecuteScalar());Line 914: notes = (notes != "" ? notes + "\n" + note : note);Line 915: Line 916: query = "UPDATE sys_users SET notes = @notes WHERE (codUser = @codUser)";Line 917: cmd = new SqlCommand(query, conn);Line 918: cmd.Parameters.Add(new SqlParameter("@notes", SqlDbType.NText));Line 919: cmd.Parameters.Add(new SqlParameter("@codUser", SqlDbType.Int));Line 920: cmd.Parameters["@notes"].Value = notes;Line 921: cmd.Parameters["@codUser"].Value = userId;Line 922: cmd.ExecuteNonQuery();Line 923: Line 924: conn.Close();Line 925: }Line 926: Line 927: public static bool isLogged(string path, int userId) {Line 928: bool output = false;Line 929: Line 930: SqlConnection conn = new SqlConnection(path);Line 931: conn.Open();Line 932: Line 933: string query = "SELECT logged FROM sys_users WITH (NOLOCK) WHERE (codUser = @codUser)";Line 934: SqlCommand cmd = new SqlCommand(query, conn);Line 935: cmd.Parameters.Add(new SqlParameter("@codUser", SqlDbType.Int));Line 936: cmd.Parameters["@codUser"].Value = userId;Line 937: if ( cmd.ExecuteScalar() != DBNull.Value ) {Line 938: output = Convert.ToBoolean( cmd.ExecuteScalar() );Line 939: }Line 940: Line 941: conn.Close();Line 942: Line 943: return output;Line 944: }Line 945: Line 946: public static bool loginCheck(string path, string login) {Line 947: bool output = false;Line 948: Line 949: SqlConnection conn = new SqlConnection(path);Line 950: conn.Open();Line 951: Line 952: string query = "SELECT codUser FROM sys_users WITH (NOLOCK) WHERE (email = @login) OR (id1 = @login)";Line 953: SqlCommand cmd = new SqlCommand(query, conn);Line 954: cmd.Parameters.Add(new SqlParameter("@login", SqlDbType.NVarChar));Line 955: cmd.Parameters["@login"].Value = login;Line 956: if ( Convert.ToInt32( cmd.ExecuteScalar() ) > 0 ) {Line 957: output = true;Line 958: }Line 959: conn.Close();Line 960: Line 961: return output;Line 962: }Line 963: Line 964: public static decimal getOrdersTotalAcumulated(string path, int userId) {Line 965: return getOrdersTotalAcumulated(path, userId, "");Line 966: }Line 967: Line 968: public static decimal getOrdersTotalAcumulated(string path, int userId, string ordersColl) {Line 969: decimal output = 0;Line 970: // if ( userId > 0 ) {Line 971: // SqlConnection conn;Line 972: // SqlCommand cmd;Line 973: // conn = new SqlConnection(path);Line 974: // conn.Open();Line 975: // cmd = new SqlCommand(@"Line 976: // SELECT TOP 100 ISNULL( SUM( Oi.prc * Oi.qt ), 0 ) AS total_salesLine 977: // FROM sys_orders OLine 978: // JOIN sys_ordersBodies Oi ON Oi.[codOrder] = O.[codOrder]Line 979: // WHERE O.codUser = @codUser AND O.status > 2Line 980: // ", conn);Line 981: // cmd.Parameters.Add(new SqlParameter("@codUser", SqlDbType.Int));Line 982: // cmd.Parameters["@codUser"].Value = userId;Line 983: // output = Convert.ToDecimal( cmd.ExecuteScalar() );Line 984: // conn.Close();Line 985: // }Line 986: return output;Line 987: }Line 988: Line 989: public static int getOrderStatus(string path, int orderId) {Line 990: int output = -1;Line 991: Line 992: SqlConnection conn = new SqlConnection(path);Line 993: conn.Open();Line 994: SqlCommand cmd = new SqlCommand( "SELECT status FROM sys_orders WITH (NOLOCK) WHERE codOrder = " + orderId, conn);Line 995: output = Convert.ToInt32(cmd.ExecuteScalar());Line 996: conn.Close();Line 997: Line 998: return output;Line 999: }Line 1000: Line 1001: public static decimal getOrderItemsTotal(string path, int orderId) {Line 1002: decimal output = 0;Line 1003: Line 1004: SqlConnection conn = new SqlConnection(path);Line 1005: conn.Open();Line 1006: SqlCommand cmd = new SqlCommand( "SELECT SUM(qt * prc) FROM sys_ordersBodies WITH (NOLOCK) WHERE (codOrder) = " + orderId, conn );Line 1007: output = Convert.ToDecimal(cmd.ExecuteScalar());Line 1008: conn.Close();Line 1009: Line 1010: return output;Line 1011: }Line 1012: Line 1013: public static decimal getDiscountCouponValue(string path, int orderId) {Line 1014: decimal output = 0;Line 1015: Line 1016: SqlConnection conn = new SqlConnection(path);Line 1017: conn.Open();Line 1018: Line 1019: SqlCommand cmd = new SqlCommand( "SELECT [value] FROM rel_ordersWdc_n_gc WITH (NOLOCK) WHERE codOrder = " + orderId, conn );Line 1020: SqlDataReader rdr = cmd.ExecuteReader();Line 1021: while( rdr.Read() ) {Line 1022: output = output + Convert.ToDecimal(rdr[0]);Line 1023: }Line 1024: rdr.Close();Line 1025: conn.Close();Line 1026: Line 1027: return output;Line 1028: }Line 1029: Line 1030: }Line 1031: Line 1032: Line 1033: Line 1034: Line 1035: Line 1036: Line 1037: Line 1038: Line 1039: Line 1040: Line 1041: public class Generics {Line 1042: public Generics() {}Line 1043: Line 1044: public static string MainFooter(string path, string thisConfig) {Line 1045: string output = "";Line 1046: Line 1047: SqlConnection conn = new SqlConnection(path);Line 1048: conn.Open();Line 1049: Line 1050: string query = "SELECT [value] FROM sys_footers WITH (NOLOCK) WHERE pKey = 1;";Line 1051: SqlCommand cmd = new SqlCommand(query, conn);Line 1052: Line 1053: SqlDataReader rdr = cmd.ExecuteReader();Line 1054: if (rdr.Read()) {Line 1055: DateTime dateTime = new DateTime();Line 1056: dateTime = DateTime.Now;Line 1057: Line 1058: output = "<div id='main_footer'><div class='pad'>" + Convert.ToString(rdr["value"]).Replace("[? thisConfig ?]",thisConfig) + "</div></div>";Line 1059: output = output.Replace("[? day ?]",dateTime.ToString("dd"));Line 1060: output = output.Replace("[? month ?]",dateTime.ToString("MM"));Line 1061: output = output.Replace("[? year ?]",dateTime.ToString("yyyy"));Line 1062: }Line 1063: Line 1064: rdr.Close();Line 1065: conn.Close();Line 1066: Line 1067: return output;Line 1068: }Line 1069: Line 1070: public static string ContainerFooter(string path, string thisConfig) {Line 1071: string output = "";Line 1072: Line 1073: output += "<div id='container_footer'><div class='pad'><span>";Line 1074: Line 1075: SqlConnection conn = new SqlConnection(path);Line 1076: conn.Open();Line 1077: Line 1078: string query = "SELECT [value] FROM sys_footers WITH (NOLOCK) WHERE pKey = 2;";Line 1079: SqlCommand cmd = new SqlCommand(query, conn);Line 1080: Line 1081: SqlDataReader rdr = cmd.ExecuteReader();Line 1082: if (rdr.Read()) {Line 1083: DateTime dateTime = new DateTime();Line 1084: dateTime = DateTime.Now;Line 1085: Line 1086: output += Convert.ToString(rdr["value"]).Replace("[? thisConfig ?]",thisConfig);Line 1087: output = output.Replace("[? day ?]",dateTime.ToString("dd"));Line 1088: output = output.Replace("[? month ?]",dateTime.ToString("MM"));Line 1089: output = output.Replace("[? year ?]",dateTime.ToString("yyyy"));Line 1090: }Line 1091: Line 1092: rdr.Close();Line 1093: conn.Close();Line 1094: Line 1095: output += "</span></div></div>";Line 1096: Line 1097: Regex wr_pattern = new Regex(@"\[\? wr=(?<url>.+) \?\]");Line 1098: MatchCollection Ms = wr_pattern.Matches(output);Line 1099: Line 1100: foreach(Match M in Ms) {Line 1101: output = output.Replace(M.ToString(), ZenTools.SyncWebRequest(M.Groups["url"].ToString()).Replace("$","$ "));Line 1102: }Line 1103: Line 1104: return output;Line 1105: }Line 1106: Line 1107: public static string MobileFooter(string path, string thisConfig) {Line 1108: string output = "";Line 1109: Line 1110: SqlConnection conn = new SqlConnection(path);Line 1111: conn.Open();Line 1112: Line 1113: string query = "SELECT [value] FROM sys_footers WITH (NOLOCK) WHERE pKey = 3;";Line 1114: SqlCommand cmd = new SqlCommand(query, conn);Line 1115: Line 1116: SqlDataReader rdr = cmd.ExecuteReader();Line 1117: if (rdr.Read()) {Line 1118: DateTime dateTime = new DateTime();Line 1119: dateTime = DateTime.Now;Line 1120: Line 1121: output = "<div id='mobile_footer'><div class='pad'>" + Convert.ToString(rdr["value"]).Replace("[? thisConfig ?]",thisConfig) + "</div></div>";Line 1122: output = output.Replace("[? day ?]",dateTime.ToString("dd"));Line 1123: output = output.Replace("[? month ?]",dateTime.ToString("MM"));Line 1124: output = output.Replace("[? year ?]",dateTime.ToString("yyyy"));Line 1125: }Line 1126: Line 1127: rdr.Close();Line 1128: conn.Close();Line 1129: Line 1130: return output;Line 1131: }Line 1132: Line 1133: public static bool FilterBanner(string mainInclude, string querystring, string permission, string filter) {Line 1134: if ( permission.IndexOf(mainInclude) > -1 ) {Line 1135: if ( filter.Length == 0 ) {Line 1136: return true;Line 1137: } else {Line 1138: if ( querystring.IndexOf(filter) > -1 ) {Line 1139: return true;Line 1140: } else {Line 1141: return false;Line 1142: }Line 1143: }Line 1144: } else {Line 1145: return false;Line 1146: }Line 1147: }Line 1148: Line 1149: public static string OfflineTags(string input) {Line 1150: if (input.Length <= 0)return "";Line 1151: string output = input;Line 1152: Line 1153: output = output.Replace("[?b ","<b>");Line 1154: output = output.Replace("[?i ","<i>");Line 1155: output = output.Replace("[?u ","<u>");Line 1156: output = output.Replace(" b?]","</b>");Line 1157: output = output.Replace(" i?]","</i>");Line 1158: output = output.Replace(" u?]","</u>");Line 1159: output = output.Replace("\n","<br />");Line 1160: Line 1161: return output;Line 1162: }Line 1163: Line 1164: public static string GridDescription(string path, string codComp) {Line 1165: string output = "";Line 1166: string[] options = ZenTools.Split(codComp,';');Line 1167: Line 1168: string query = "";Line 1169: SqlCommand cmd = null;Line 1170: SqlDataReader rdr = null;Line 1171: Line 1172: SqlConnection conn = new SqlConnection(path);Line 1173: conn.Open();Line 1174: Line 1175: try {Line 1176: query = "SELECT [desc] AS DescOption FROM tbl_selectOptions WITH (NOLOCK) WHERE (codOption = @option)";Line 1177: cmd = new SqlCommand(query, conn);Line 1178: cmd.Parameters.Add(new SqlParameter("@option", SqlDbType.Int));Line 1179: Line 1180: foreach(string option in options) {Line 1181: cmd.Parameters["@option"].Value = option;Line 1182: rdr = cmd.ExecuteReader();Line 1183: Line 1184: if (rdr.Read())Line 1185: output += (string)rdr["DescOption"] + " ";Line 1186: Line 1187: rdr.Close();Line 1188: }Line 1189: } catch( Exception ex ) {Line 1190: /* handle error */Line 1191: } finally {Line 1192: conn.Close();Line 1193: }Line 1194: Line 1195: return "[ " + output + "]";Line 1196: }Line 1197: Line 1198: public static string ClosePointer(int shopId, int highlight) {Line 1199: string output = "";Line 1200: string imgSrc = "";Line 1201: int i = 0;Line 1202: Line 1203: output += "<div id='closePointer'>\n";Line 1204: output += "<table>\n";Line 1205: output += " <tr>\n";Line 1206: Line 1207: for(i = 1; i <= 4; i++ ) {Line 1208: imgSrc = "/octopus/design/images/" + Convert.ToString(shopId) + "/close_step" + i + "_" + ( highlight == i ? "1" : "0" );Line 1209: if ( File.Exists( HttpContext.Current.Server.MapPath( imgSrc + ".png" ) ) ) {Line 1210: imgSrc += ".png";Line 1211: } else {Line 1212: imgSrc += ".gif";Line 1213: }Line 1214: output += " <td><img src='" + imgSrc + "' alt='' /></td>\n";Line 1215: }Line 1216: Line 1217: output += " </tr>\n";Line 1218: output += "</table>\n";Line 1219: output += "</div>\n";Line 1220: Line 1221: return output;Line 1222: }Line 1223: Line 1224: public static string getPerfectGiftNode(string path, int idNode) {Line 1225: string output = "";Line 1226: string query = "";Line 1227: Line 1228: SqlConnection conn = new SqlConnection(path);Line 1229: conn.Open();Line 1230: Line 1231: query = "SELECT name FROM tbl_perfectGiftNodes WITH (NOLOCK) WHERE id = @idNode";Line 1232: Line 1233: SqlCommand cmd = new SqlCommand(query, conn);Line 1234: cmd.Parameters.Add(new SqlParameter("@idNode", SqlDbType.Int));Line 1235: cmd.Parameters["@idNode"].Value = idNode;Line 1236: Line 1237: SqlDataReader rdr = cmd.ExecuteReader();Line 1238: Line 1239: if (rdr.Read()) {Line 1240: output = Convert.ToString(rdr[0]);Line 1241: }Line 1242: Line 1243: rdr.Close();Line 1244: conn.Close();Line 1245: Line 1246: return output;Line 1247: }Line 1248: Line 1249: public static string menuAnchorHref(string urlBase, string mn1, string mn2, string mn3, int sid, int cod1st, int cod2nd, int cod3rd, string thisConfig) {Line 1250: string output = urlBase.Replace("/octopus/", "");Line 1251: thisConfig = Regex.Replace(thisConfig, @"\?sid=\d+", "");Line 1252: thisConfig = Regex.Replace(thisConfig, @"\&m=\w?\w", "");Line 1253: thisConfig = Regex.Replace(thisConfig, @"\&cm1=\d+", "");Line 1254: thisConfig = Regex.Replace(thisConfig, @"\&cm2=\d+", "");Line 1255: thisConfig = Regex.Replace(thisConfig, @"\&cm3=\d+", "");Line 1256: Line 1257: if (mn1.Length > 0) output += "/" + mn1;Line 1258: if (mn2.Length > 0) output += "/" + mn2;Line 1259: if (mn3.Length > 0) output += "/" + mn3;Line 1260: Line 1261: if (thisConfig.Length > 0) {Line 1262: output += ( thisConfig.Substring(0, 1) == "&" ? "?" + thisConfig.Substring(1) : thisConfig );Line 1263: }Line 1264: Line 1265: return output;Line 1266: }Line 1267: Line 1268: public static string getMenuName(string path, int level, int codMenu) {Line 1269: string output = "";Line 1270: string query = "";Line 1271: Line 1272: switch(level) {Line 1273: case 3:Line 1274: query = "SELECT [desc] FROM tbl_menu3rd WITH (NOLOCK) WHERE cod3rdMenu = @codMenu";Line 1275: break;Line 1276: case 2:Line 1277: query = "SELECT [desc] FROM tbl_menu2nd WITH (NOLOCK) WHERE cod2ndMenu = @codMenu";Line 1278: break;Line 1279: default:Line 1280: query = "SELECT [desc] FROM tbl_menu1st WITH (NOLOCK) WHERE cod1stMenu = @codMenu";Line 1281: break;Line 1282: }Line 1283: Line 1284: SqlConnection conn = new SqlConnection(path);Line 1285: conn.Open();Line 1286: SqlCommand cmd = new SqlCommand(query, conn);Line 1287: cmd.Parameters.Add(new SqlParameter("@codMenu", SqlDbType.Int));Line 1288: cmd.Parameters["@codMenu"].Value = codMenu;Line 1289: output = Convert.ToString(cmd.ExecuteScalar()).TrimStart().TrimEnd();Line 1290: conn.Close();Line 1291: return output;Line 1292: }Line 1293: Line 1294: public static string getProdImgs(string path, int codGrid) {Line 1295: string output = "";Line 1296: Line 1297: SqlConnection conn = new SqlConnection(path);Line 1298: conn.Open();Line 1299: Line 1300: string query = "SELECT imgSrc FROM tbl_pictures WITH (NOLOCK) WHERE (codGrid = @codGrid) ORDER BY link DESC";Line 1301: Line 1302: SqlCommand cmd = new SqlCommand(query, conn);Line 1303: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 1304: cmd.Parameters["@codGrid"].Value = codGrid;Line 1305: SqlDataReader rdr = cmd.ExecuteReader();Line 1306: Line 1307: StringBuilder Sb = new StringBuilder();Line 1308: Line 1309: while( rdr.Read() ) {Line 1310: Sb.Append( "|" + Convert.ToString(rdr[0]) + "" );Line 1311: }Line 1312: Line 1313: rdr.Close();Line 1314: conn.Close();Line 1315: Line 1316: output = "{ \"imgs\": \"" + Sb.ToString().Substring(1) + "\" }";Line 1317: Line 1318: return output;Line 1319: }Line 1320: Line 1321: public static int getCodGridByRef(string path, string itemRef) {Line 1322: int output = 0;Line 1323: Line 1324: SqlConnection conn = new SqlConnection(path);Line 1325: conn.Open();Line 1326: Line 1327: string query = "SELECT codGrid FROM tbl_grid WITH (NOLOCK) WHERE (ref = @itemRef)";Line 1328: SqlCommand cmd = new SqlCommand(query, conn);Line 1329: cmd.Parameters.Add(new SqlParameter("@itemRef", SqlDbType.NVarChar));Line 1330: cmd.Parameters["@itemRef"].Value = itemRef;Line 1331: output = Convert.ToInt32(cmd.ExecuteScalar());Line 1332: conn.Close();Line 1333: Line 1334: return output;Line 1335: }Line 1336: Line 1337: public static void loadMetaData(Line 1338: string sJsonLine 1339: , ref string pageTitleLine 1340: , ref string pageDescriptionLine 1341: , ref string keyWordsLine 1342: , ref string remarketingLine 1343: , ref string creative_titleLine 1344: , ref string creative_imageLine 1345: , ref string creative_aboutLine 1346: , ref string creative_about2Line 1347: ) {Line 1348: try {Line 1349: object oJson = JavaScriptDeserializer.DeserializeFromJson(sJson, typeof(NameValueCollection));Line 1350: Line 1351: // meta tagsLine 1352: if (Line 1353: ((NameValueCollection)oJson)["title"] != nullLine 1354: && ((NameValueCollection)oJson)["title"] != ""Line 1355: && ((NameValueCollection)oJson)["title"] != "undefined"Line 1356: ) {Line 1357: pageTitle = ((NameValueCollection)oJson)["title"];Line 1358: }Line 1359: Line 1360: if (Line 1361: ((NameValueCollection)oJson)["description"] != nullLine 1362: && ((NameValueCollection)oJson)["description"] != ""Line 1363: && ((NameValueCollection)oJson)["description"] != "undefined"Line 1364: ) {Line 1365: pageDescription = ((NameValueCollection)oJson)["description"];Line 1366: }Line 1367: Line 1368: if (Line 1369: ((NameValueCollection)oJson)["keyWords"] != nullLine 1370: && ((NameValueCollection)oJson)["keyWords"] != ""Line 1371: && ((NameValueCollection)oJson)["keyWords"] != "undefined"Line 1372: ) {Line 1373: keyWords = ((NameValueCollection)oJson)["keyWords"];Line 1374: }Line 1375: Line 1376: if (Line 1377: ((NameValueCollection)oJson)["remarketing"] != nullLine 1378: && ((NameValueCollection)oJson)["remarketing"] != ""Line 1379: && ((NameValueCollection)oJson)["remarketing"] != "undefined"Line 1380: ) {Line 1381: remarketing = ((NameValueCollection)oJson)["remarketing"];Line 1382: }Line 1383: Line 1384: // creativeLine 1385: if (Line 1386: ((NameValueCollection)oJson)["creative_title"] != null &&Line 1387: ((NameValueCollection)oJson)["creative_title"] != "" &&Line 1388: ((NameValueCollection)oJson)["creative_title"] != "undefined"Line 1389: ) {Line 1390: creative_title = ((NameValueCollection)oJson)["creative_title"];Line 1391: }Line 1392: Line 1393: if (Line 1394: ((NameValueCollection)oJson)["creative_img"] != null &&Line 1395: ((NameValueCollection)oJson)["creative_img"] != "" &&Line 1396: ((NameValueCollection)oJson)["creative_img"] != "undefined"Line 1397: ) {Line 1398: creative_image = ((NameValueCollection)oJson)["creative_img"];Line 1399: }Line 1400: Line 1401: if (Line 1402: ((NameValueCollection)oJson)["creative_about"] != null &&Line 1403: ((NameValueCollection)oJson)["creative_about"] != "" &&Line 1404: ((NameValueCollection)oJson)["creative_about"] != "undefined"Line 1405: ) {Line 1406: creative_about = ((NameValueCollection)oJson)["creative_about"];Line 1407: }Line 1408: Line 1409: if (Line 1410: ((NameValueCollection)oJson)["creative_about2"] != null &&Line 1411: ((NameValueCollection)oJson)["creative_about2"] != "" &&Line 1412: ((NameValueCollection)oJson)["creative_about2"] != "undefined"Line 1413: ) {Line 1414: creative_about2 = ((NameValueCollection)oJson)["creative_about2"];Line 1415: }Line 1416: } catch (Exception ex) {}Line 1417: }Line 1418: Line 1419: public static void setNote(string path, int orderId, string key, string note) {Line 1420: string notes = "";Line 1421: string entry = "";Line 1422: Line 1423: SqlConnection conn = new SqlConnection(path);Line 1424: conn.Open();Line 1425: Line 1426: // get order notesLine 1427: SqlCommand cmd = new SqlCommand( "SELECT [notes] FROM sys_orders WITH (NOLOCK) WHERE [codOrder] = @codOrder", conn );Line 1428: cmd.Parameters.Add(new SqlParameter("@codOrder", SqlDbType.Int));Line 1429: cmd.Parameters["@codOrder"].Value = orderId;Line 1430: notes = Convert.ToString( cmd.ExecuteScalar() );Line 1431: Line 1432: // handle new entryLine 1433: entry = string.Format( "[{0}:] {1}", key, note );Line 1434: if ( notes.IndexOf( string.Format( "[{0}:]", key ) ) > -1 ) {Line 1435: notes = Regex.Replace( notes, string.Format( @"\[{0}:\]\s.*", key ), entry );Line 1436: } else {Line 1437: if ( notes == "" ) {Line 1438: notes = entry;Line 1439: } else {Line 1440: notes += "\n" + entry;Line 1441: }Line 1442: }Line 1443: Line 1444: // update order notesLine 1445: cmd = new SqlCommand( "UPDATE sys_orders SET [notes] = @notes WHERE [codOrder] = @codOrder", conn );Line 1446: cmd.Parameters.Add(new SqlParameter("@notes", SqlDbType.NText));Line 1447: cmd.Parameters.Add(new SqlParameter("@codOrder", SqlDbType.Int));Line 1448: cmd.Parameters["@notes"].Value = notes;Line 1449: cmd.Parameters["@codOrder"].Value = orderId;Line 1450: cmd.ExecuteNonQuery();Line 1451: Line 1452: conn.Close();Line 1453: }Line 1454: Line 1455: /* ITEM BOX [BEGIN] */Line 1456: Line 1457: public static string print_item_promotion(dynamic store) {Line 1458: if ( store.item_promotion != null && store.item_promotion.id != null ) {Line 1459: string thumb = "";Line 1460: if ( store.item_promotion.thumbnail != "imgNotAvailable" )Line 1461: thumb = string.Format(Line 1462: "<img src='/octopus/design/images/{0}/{1}' class='product_promotion_thumbnail' />",Line 1463: store.shopId, store.item_promotion.thumbnailLine 1464: );Line 1465: return string.Format(Line 1466: @"Line 1467: <div class='product_promotion'>Line 1468: <span class='product_promotion_name'>{0}</span>Line 1469: <span class='product_promotion_description'>{1}</span>Line 1470: {2}Line 1471: </div>Line 1472: ",Line 1473: store.item_promotion.name,Line 1474: store.item_promotion.description,Line 1475: thumbLine 1476: );Line 1477: } else {Line 1478: return "";Line 1479: }Line 1480: }Line 1481: Line 1482: public static string print_item_colors(dynamic store) {Line 1483: if ( store.item_colors != null && store.item_colors.Count > 0 ) {Line 1484: StringBuilder Sb = new StringBuilder();Line 1485: for( int i = 0; i < store.item_colors.Count; i++ ) {Line 1486: Sb.Append(Line 1487: string.Format( "<li class='color-option-{0}'><span></span></li>", store.item_colors[i] )Line 1488: );Line 1489: Line 1490: }Line 1491: return string.Format(Line 1492: @"Line 1493: <div class='item_colors'>Line 1494: <ul>{0}</ul>Line 1495: </div>Line 1496: ",Line 1497: Sb.ToString()Line 1498: );Line 1499: } else {Line 1500: return "";Line 1501: }Line 1502: }Line 1503: Line 1504: public static string print_item_free_shipping(dynamic store) {Line 1505: try {Line 1506: StringBuilder Sb = new StringBuilder();Line 1507: Line 1508: if ( store.item_price_json.freeShipping != null && Convert.ToBoolean( store.item_price_json.freeShipping ) ) {Line 1509: if ( store.item_price_json.freeShippingType == "RESTRICTED" ) {Line 1510: Sb.Append(Line 1511: @"Line 1512: <span class='free_shipping_restricted'>Line 1513: <span class='free_shipping_restricted_inner_reference'></span>Line 1514: </span>Line 1515: "Line 1516: );Line 1517: Line 1518: string[] ranges = Convert.ToString(store.item_price_json.freeShippingRanges).Split(';');Line 1519: if ( ranges.Length > 0 && ranges[0] != "" ) {Line 1520: Sb.Append(Line 1521: @"Line 1522: <div class='item_free_shipping_restricted'>Line 1523: "Line 1524: );Line 1525: Line 1526: if ( store.item_price_json.freeShippingLabel != null && store.item_price_json.freeShippingLabel != "" ) {Line 1527: Sb.Append( string.Format(Line 1528: @"Line 1529: <span class='item_free_shipping_restricted_label'>{0}</span>Line 1530: ", store.item_price_json.freeShippingLabelLine 1531: ) );Line 1532: } else {Line 1533: Sb.Append(Line 1534: @"Line 1535: <span class='item_free_shipping_restricted_label'>Frete Grátis</span>Line 1536: <div>Line 1537: <ul>Line 1538: "Line 1539: );Line 1540: Line 1541: foreach(string sRange in ranges) {Line 1542: string[] r = sRange.Split(',');Line 1543: Sb.Append( string.Format(Line 1544: @"Line 1545: <li><font class='free_shipping_name'>{0}</font></li>Line 1546: ", r[2]Line 1547: ) );Line 1548: }Line 1549: Sb.Append(Line 1550: @" Line 1551: </ul>Line 1552: </div>Line 1553: "Line 1554: );Line 1555: }Line 1556: Line 1557: Sb.Append(Line 1558: @"Line 1559: </div>Line 1560: "Line 1561: );Line 1562: Line 1563: }Line 1564: } else {Line 1565: Sb.Append(Line 1566: @"Line 1567: <span class='free_shipping'>Line 1568: <span class='free_shipping_inner_reference'></span>Line 1569: </span>Line 1570: "Line 1571: );Line 1572: }Line 1573: Line 1574: return Sb.ToString();Line 1575: } else {Line 1576: return "";Line 1577: }Line 1578: } catch (Exception ex) {Line 1579: return "";Line 1580: }Line 1581: Line 1582: }Line 1583: Line 1584: public static string print_item_prices(ShopSetup shop, dynamic store) {Line 1585: StringBuilder Sb = new StringBuilder();Line 1586: Line 1587: if (Line 1588: !Convert.ToBoolean( store.onOutOfStockHidePrice ) ||Line 1589: ( store.item_codAvailability == 1 && store.item_price > 0 )Line 1590: ) {Line 1591: Sb.Append(Line 1592: @"Line 1593: <div class='item_prices'>Line 1594: "Line 1595: );Line 1596: Line 1597: if ( store.item_discRate > 0) {Line 1598: Sb.Append( string.Format(Line 1599: @"Line 1600: <span class='item_listPrice'>Line 1601: <label>{0}</label>Line 1602: <span>{1}</span>Line 1603: </span>Line 1604: ",Line 1605: store.priceLabels[0],Line 1606: shop.CurrType + string.Format( "{0:0." + store.ndd + "}", store.item_price )Line 1607: ) );Line 1608: }Line 1609: Line 1610: Sb.Append( string.Format(Line 1611: @"Line 1612: <span class='item_ourPrice'>Line 1613: <label>{1}</label>Line 1614: <span>{2}</span>Line 1615: </span>Line 1616: ",Line 1617: string.Format("{0:0." + store.ndd + "}", store.item_ourPrice).Replace(",", "."),Line 1618: ( store.item_codStatus == 4 ? store.priceLabels[4] : store.priceLabels[1] ),Line 1619: shop.CurrType + string.Format( "{0:0." + store.ndd + "}", store.item_ourPrice )Line 1620: ) );Line 1621: Line 1622: if ( store.item_discRate > 0 ) {Line 1623: Sb.Append( string.Format(Line 1624: @"Line 1625: <span class='item_save'>Line 1626: <label>{0}</label>Line 1627: <span>{1}</span>Line 1628: </span>Line 1629: ",Line 1630: store.priceLabels[2],Line 1631: shop.CurrType + string.Format(Line 1632: "{0:0.00}", Math.Round(Line 1633: Convert.ToDecimal(store.item_price) - (1 - Convert.ToDecimal(store.item_discRate) / 100 ) * Convert.ToDecimal(store.item_price), 2Line 1634: )Line 1635: )Line 1636: ) );Line 1637: }Line 1638: Line 1639: if ( store.item_parcelTimes > 1 ) {Line 1640: Sb.Append( string.Format(Line 1641: @"Line 1642: <span class='item_or'>Line 1643: <label>{0}</label>Line 1644: <span>{1}x {2}</span>Line 1645: </span>Line 1646: ",Line 1647: store.priceLabels[3],Line 1648: store.item_parcelTimes,Line 1649: shop.CurrType + string.Format( "{0:0.00}", Math.Round( Convert.ToDecimal(store.item_ourPrice) / Convert.ToInt32(store.item_parcelTimes), 2 ) )Line 1650: ) );Line 1651: }Line 1652: Line 1653: if ( store.paymentInfos.Count > 0 ) {Line 1654: Sb.Append( string.Format(Line 1655: @"Line 1656: <div class='item_prices_payment_conditions'>Line 1657: "Line 1658: ) );Line 1659: Line 1660: for( int i = 0; i < store.paymentInfos.Count; i++ ) {Line 1661: dynamic payment = store.paymentInfos[i];Line 1662: Line 1663: Sb.Append( string.Format(Line 1664: @"Line 1665: <span class='products-text-price-final-label'>ou</span>Line 1666: <span class='products-text-price-final'>{0} à vista</span>Line 1667: ",Line 1668: shop.CurrType + string.Format(Line 1669: "{0:0."+ store.ndd +"}",Line 1670: ( Convert.ToDecimal( store.item_ourPrice ) * Convert.ToDecimal(payment.factor) ) + Convert.ToDecimal(payment.vtransl)Line 1671: )Line 1672: ) );Line 1673: Line 1674: if ( payment.factor > 1 ) {Line 1675: Sb.Append( string.Format(Line 1676: @"Line 1677: <span class='products-text-price-factor-increase'>com {0}% de acréscimo</span>Line 1678: ",Line 1679: Convert.ToInt32( ( Convert.ToDecimal( payment.factor ) - 1 ) * 100 )Line 1680: ) );Line 1681: }Line 1682: Line 1683: if ( payment.factor < 1 ) {Line 1684: Sb.Append( string.Format(Line 1685: @"Line 1686: <span class='products-text-price-factor-discount'>com {0}% de desconto</span>Line 1687: ",Line 1688: Convert.ToInt32( (1 - Convert.ToDecimal( payment.factor ) ) * 100 )Line 1689: ) );Line 1690: }Line 1691: Line 1692: if ( payment.vtransl > 0 ) {Line 1693: Sb.Append( string.Format(Line 1694: @"Line 1695: <span class='products-text-price-vtransl-increase'>mais {0} de acréscimo</span>Line 1696: ",Line 1697: shop.CurrType + string.Format( "{0:0.00}", Convert.ToDecimal( payment.vtransl ) )Line 1698: ) );Line 1699: }Line 1700: Line 1701: if ( payment.vtransl < 0 ) {Line 1702: Sb.Append( string.Format(Line 1703: @"Line 1704: <span class='products-text-price-vtransl-discount'>menos {0} de desconto</span>Line 1705: ",Line 1706: shop.CurrType + string.Format( "{0:0.00}", Math.Abs( Convert.ToDecimal( payment.vtransl ) ) )Line 1707: ) );Line 1708: }Line 1709: Line 1710: Sb.Append( string.Format(Line 1711: @"Line 1712: <span class='products-text-price-payment'>para {0}</span>Line 1713: ",Line 1714: payment.nameLine 1715: ) );Line 1716: }Line 1717: Line 1718: Sb.Append(Line 1719: @"Line 1720: </div>Line 1721: "Line 1722: );Line 1723: }Line 1724: Line 1725: if ( store.item_discRate > 0 ) {Line 1726: Sb.Append( string.Format(Line 1727: @"Line 1728: <div class='item_discount'>Line 1729: <span class='item_discount_label'>{0}</span>Line 1730: <span class='item_discount_percentage'>{1}%</span>Line 1731: </div>Line 1732: ",Line 1733: ( store.productDiscountLabel != null ? store.productDiscountLabel : "Desconto de:" ),Line 1734: Math.Round( Convert.ToDecimal( store.item_discRate ) )Line 1735: ) );Line 1736: }Line 1737: Line 1738: Sb.Append(Line 1739: @"Line 1740: </div>Line 1741: "Line 1742: );Line 1743: Line 1744: return Sb.ToString();Line 1745: } else {Line 1746: return "";Line 1747: }Line 1748: }Line 1749: Line 1750: public static string print_item_qtInput(ShopSetup shop, dynamic store) {Line 1751: StringBuilder Sb = new StringBuilder();Line 1752: Line 1753: if ( !shop.UsePS && store.item_codStatus != 4 && store.item_codAvailability == 1 && store.item_ourPrice > 0 ) {Line 1754: string item_input_qt_name = System.Guid.NewGuid().ToString("N").Substring(0, 15) + Convert.ToString(store.item_codGrid);Line 1755: Line 1756: if ( shop.isRetail ) {Line 1757: Sb.Append( string.Format( "<input type='hidden' name='ir_{0}' value='1' />", item_input_qt_name ) );Line 1758: } else {Line 1759: string qtStep = "1";Line 1760: try{Line 1761: if ( store.item_price_json.qtIncrement != null )Line 1762: qtStep = Convert.ToString(store.item_price_json.qtIncrement);Line 1763: } catch ( Exception ex ) {}Line 1764: Line 1765: Sb.Append( string.Format(Line 1766: "<input type='number' step='{0}' min='0' class='n' size='3' name='ir_{1}' value='0' onclick='select()' />",Line 1767: qtStep, item_input_qt_nameLine 1768: ) );Line 1769: }Line 1770: Line 1771: if ( Convert.ToBoolean(store.useItemAddedModal) ) {Line 1772: Line 1773: Sb.Append( string.Format(Line 1774: @"Line 1775: <span class='item_btn_buy'>Line 1776: <a href=""{0}"" aria-label='comprar'></a>Line 1777: </span>Line 1778: ",Line 1779: string.Format(Line 1780: "javascript:req_add2cart('{0}',{1},'{2}',{3},'ir_{4}','{5}',{6},0,null);",Line 1781: shop.Http + store.thisConfig,Line 1782: store.shopId,Line 1783: store.cartId,Line 1784: store.item_codGrid,Line 1785: item_input_qt_name,Line 1786: Convert.ToString(shop.UseEG).ToLower(),Line 1787: shop.UseFCLine 1788: )Line 1789: ) );Line 1790: Line 1791: } else {Line 1792: Line 1793: Sb.Append( string.Format(Line 1794: @"Line 1795: <span class='item_btn_buy'>Line 1796: <a href=""{0}"" aria-label='comprar'></a>Line 1797: </span>Line 1798: ",Line 1799: string.Format(Line 1800: "javascript:req_addItem('{0}', {1}, '{2}', {3}, 'ir_{4}', '{5}', {6}, {7});",Line 1801: shop.Http + store.thisConfig,Line 1802: store.shopId,Line 1803: store.cartId,Line 1804: store.item_codGrid,Line 1805: item_input_qt_name,Line 1806: Convert.ToString(shop.UseEG).ToLower(),Line 1807: shop.UseFC,Line 1808: store.userIdLine 1809: )Line 1810: ) );Line 1811: }Line 1812: Line 1813: return Sb.ToString();Line 1814: Line 1815: } else {Line 1816: Line 1817: return "";Line 1818: Line 1819: }Line 1820: }Line 1821: Line 1822: public static string print_aggregateRating(ShopSetup shop, dynamic store) {Line 1823: if ( Convert.ToBoolean(store.useDetailsAggregateRating) ) {Line 1824: return Details.aggregateRating( Convert.ToInt32(store.shopId), Convert.ToInt32(store.item_codProd), shop.Path );Line 1825: } else {Line 1826: return "";Line 1827: }Line 1828: }Line 1829: Line 1830: public static string print_quickView(dynamic store) {Line 1831: if (Line 1832: !Convert.ToBoolean(store.isMobile) &&Line 1833: Convert.ToBoolean(store.useQuickView) &&Line 1834: store.item_codAvailability == 1Line 1835: ) {Line 1836: return string.Format(Line 1837: @"Line 1838: <button class='product_quickview' name='productQuickView' onclick='quickView({0}, event)'>Line 1839: compra rápidaLine 1840: </button>Line 1841: ",Line 1842: store.item_codGridLine 1843: );Line 1844: } else {Line 1845: return "";Line 1846: }Line 1847: }Line 1848: Line 1849: public static string print_item_btnInfo(dynamic store) {Line 1850: if ( store.item_codStatus == 4 || store.item_codAvailability != 2 ) {Line 1851: return string.Format(Line 1852: @"Line 1853: <span class='item_btn_info'>Line 1854: <a href='{0}' aria-label='mais detalhes'></a>Line 1855: </span>Line 1856: ",Line 1857: store.item_hrefLine 1858: );Line 1859: } else {Line 1860: return "";Line 1861: }Line 1862: }Line 1863: Line 1864: public static string print_item_similars(ShopSetup shop, dynamic store) {Line 1865: if ( store.mode != "H" )Line 1866: return "";Line 1867: Line 1868: string output = "";Line 1869: SqlConnection conn = new SqlConnection( shop.Path );Line 1870: conn.Open();Line 1871: SqlCommand cmd = new SqlCommand(Line 1872: @"Line 1873: SELECTLine 1874: M1.[cod1stMenu],Line 1875: M1.[desc] AS menu1stDesc,Line 1876: R.[cod2ndMenu],Line 1877: M2.[desc] AS menu2ndDescLine 1878: FROM rel_menusWprod R WITH (NOLOCK)Line 1879: INNER JOIN tbl_menu1st M1 WITH (NOLOCK) ON M1.[cod1stMenu] = R.[cod1stMenu]Line 1880: LEFT JOIN tbl_menu2nd M2 WITH (NOLOCK) ON M2.[cod2ndMenu] = R.[cod2ndMenu]Line 1881: WHERE [codProd] = @codProdLine 1882: ",Line 1883: conn );Line 1884: cmd.Parameters.Add(new SqlParameter("@codProd", SqlDbType.Int));Line 1885: cmd.Parameters["@codProd"].Value = Convert.ToInt32(store.item_codProd);Line 1886: SqlDataReader rdr = cmd.ExecuteReader();Line 1887: if ( rdr.Read() ) {Line 1888: string name = "";Line 1889: string href = "";Line 1890: Line 1891: if ( DBNull.Value != rdr["cod2ndMenu"] ) {Line 1892: name = (string)rdr["menu2ndDesc"];Line 1893: href = menuAnchorHref(Line 1894: shop.Http,Line 1895: ZenTools.urlize( (string)rdr["menu1stDesc"] ),Line 1896: ZenTools.urlize( (string)rdr["menu2ndDesc"] ),Line 1897: "",Line 1898: Convert.ToInt32(store.shopId),Line 1899: Convert.ToInt32( rdr["cod1stMenu"] ),Line 1900: Convert.ToInt32( rdr["cod2ndMenu"] ),Line 1901: 0,Line 1902: Convert.ToString(store.thisConfig)Line 1903: );Line 1904: } else {Line 1905: name = (string)rdr["menu1stDesc"];Line 1906: href = menuAnchorHref(Line 1907: shop.Http,Line 1908: ZenTools.urlize( (string)rdr["menu1stDesc"] ),Line 1909: "",Line 1910: "",Line 1911: Convert.ToInt32(store.shopId),Line 1912: Convert.ToInt32(rdr["cod1stMenu"]),Line 1913: 0,Line 1914: 0,Line 1915: Convert.ToString(store.thisConfig)Line 1916: );Line 1917: }Line 1918: Line 1919: output = string.Format(Line 1920: @"Line 1921: <div class='item_similars'>Line 1922: <a href='{0}' itemprop='name' >{1}</a>Line 1923: </div>Line 1924: ",Line 1925: href, nameLine 1926: );Line 1927: }Line 1928: rdr.Close();Line 1929: conn.Close();Line 1930: Line 1931: return output;Line 1932: }Line 1933: Line 1934: public static string print_item_brand(dynamic store) {Line 1935: if ( Convert.ToBoolean( store.useShowProductBrandLink ) ) {Line 1936: return string.Format(Line 1937: @"Line 1938: <div class='item_brand'>Line 1939: <a href='/{0}'>{1}</a>Line 1940: </div>Line 1941: ",Line 1942: ZenTools.urlize( Convert.ToString(store.item_brand) ), store.item_brandLine 1943: );Line 1944: } else {Line 1945: return "";Line 1946: }Line 1947: }Line 1948: Line 1949: public static dynamic getReviewRating(string path, int codProd) {Line 1950: dynamic reviewRating = JsonConvert.DeserializeObject<JObject>("{}");Line 1951: Line 1952: SqlConnection conn = new SqlConnection(path);Line 1953: conn.Open();Line 1954: Line 1955: SqlCommand cmd = new SqlCommand(Line 1956: @"Line 1957: SELECT TOP 1Line 1958: CAST( G.[rating] AS decimal(6,2) ),Line 1959: U.[name]Line 1960: FROM sys_GR G WITH (NOLOCK)Line 1961: INNER JOIN sys_users U ON G.[idUser] = U.[codUser]Line 1962: WHERE ([idProduct] = @codProd) AND ([publish] = 1)Line 1963: ORDER BY [rating] DESCLine 1964: "Line 1965: ,conn);Line 1966: cmd.Parameters.Add(new SqlParameter("@codProd", SqlDbType.Int));Line 1967: cmd.Parameters["@codProd"].Value = codProd;Line 1968: SqlDataReader rdr = cmd.ExecuteReader();Line 1969: if (rdr.Read()) {Line 1970: reviewRating.ratingValue = Convert.ToString( Details.getRating( Convert.ToDecimal( rdr[0]) ) );Line 1971: reviewRating.author = Convert.ToString(rdr[1]);Line 1972: }Line 1973: rdr.Close();Line 1974: conn.Close();Line 1975: Line 1976: return reviewRating;Line 1977: }Line 1978: Line 1979: public static dynamic getAggregateRating(string path, int codProd) {Line 1980: dynamic aggregateRating = JsonConvert.DeserializeObject<JObject>("{}");Line 1981: Line 1982: SqlConnection conn = new SqlConnection(path);Line 1983: conn.Open();Line 1984: Line 1985: SqlCommand cmd = new SqlCommand(Line 1986: @"Line 1987: SELECTLine 1988: CAST( SUM( CAST( rating AS decimal(6,2) ) ) / COUNT(idProduct) AS decimal(6,1) ) AS ratingValue,Line 1989: COUNT(idProduct) as reviewsLine 1990: FROM sys_GR WITH (NOLOCK)Line 1991: WHERE (idProduct = @codProd) AND (publish = 1) GROUP BY idProductLine 1992: "Line 1993: ,conn);Line 1994: cmd.Parameters.Add(new SqlParameter("@codProd", SqlDbType.Int));Line 1995: cmd.Parameters["@codProd"].Value = codProd;Line 1996: SqlDataReader rdr = cmd.ExecuteReader();Line 1997: if (rdr.Read()) {Line 1998: aggregateRating.ratingValue = Convert.ToString( Details.getRating(Convert.ToDecimal(rdr[0])) );Line 1999: aggregateRating.reviewCount = Convert.ToString(rdr[1]);Line 2000: }Line 2001: rdr.Close();Line 2002: conn.Close();Line 2003: Line 2004: return aggregateRating;Line 2005: }Line 2006: Line 2007: public static string print_item_json_ld(ShopSetup shop, dynamic store){Line 2008: dynamic product = JsonConvert.DeserializeObject<JObject>("{}");Line 2009: Line 2010: // See more @ https://developers.google.com/search/docs/data-types/productLine 2011: product["@context"] = "https://schema.org/";Line 2012: product["@type"] = "Product";Line 2013: Line 2014: product.name = store.item_name;Line 2015: Line 2016: product.image = JsonConvert.DeserializeObject<JArray>("[]");Line 2017: product.image.Add(Line 2018: ( Convert.ToString(store.item_imgSrc).Substring(0, 4) == "http" ? "" : shop.Http.Replace("/octopus/", "") ) + store.item_imgSrcLine 2019: );Line 2020: Line 2021: product.description = ZenTools.stripHtml( Convert.ToString( store.item_description ) );Line 2022: product.sku = store.item_sku;Line 2023: Line 2024: // product.mpn = "";Line 2025: Line 2026: product.brand = JsonConvert.DeserializeObject<JObject>("{}");Line 2027: product.brand["@type"] = "Thing";Line 2028: product.brand.name = store.item_brand;Line 2029: Line 2030: dynamic reviewRating = getReviewRating(shop.Path, Convert.ToInt32(store.item_codProd));Line 2031: if ( reviewRating.ratingValue != null ) {Line 2032: product.review = JsonConvert.DeserializeObject<JObject>("{}");Line 2033: product.review["@type"] = "Review";Line 2034: product.review.reviewRating = JsonConvert.DeserializeObject<JObject>("{}");Line 2035: product.review.reviewRating["@type"] = "Rating";Line 2036: product.review.reviewRating.ratingValue = reviewRating.ratingValue;Line 2037: Line 2038: product.review.author = JsonConvert.DeserializeObject<JObject>("{}");Line 2039: product.review.author["@type"] = "Person";Line 2040: product.review.author.name = reviewRating.author;Line 2041: }Line 2042: Line 2043: dynamic aggregateRating = getAggregateRating(shop.Path, Convert.ToInt32(store.item_codProd));Line 2044: if ( aggregateRating.ratingValue != null && aggregateRating.reviewCount != null ) {Line 2045: product.aggregateRating = JsonConvert.DeserializeObject<JObject>("{}");Line 2046: product.aggregateRating["@type"] = "AggregateRating";Line 2047: product.aggregateRating.ratingValue = aggregateRating.ratingValue;Line 2048: product.aggregateRating.reviewCount = aggregateRating.reviewCount;Line 2049: }Line 2050: Line 2051: product.offers = JsonConvert.DeserializeObject<JObject>("{}");Line 2052: product.offers["@type"] = "Offer";Line 2053: product.offers.url = store.item_href;Line 2054: product.offers.priceCurrency = "BRL";Line 2055: product.offers.price = string.Format("{0:0." + store.ndd + "}", store.item_ourPrice).Replace(",", ".");Line 2056: Line 2057: DateTime priceValidUntil = DateTime.Now;Line 2058: product.offers.priceValidUntil = priceValidUntil.AddDays(7).ToString("yyyy-MM-dd");Line 2059: Line 2060: product.offers.itemCondition = "https://schema.org/NewCondition";Line 2061: product.offers.availability = ( store.item_codAvailability != 1 ? "https://schema.org/OutOfStock" : "https://schema.org/InStock" );Line 2062: Line 2063: product.offers.seller = JsonConvert.DeserializeObject<JObject>("{}");Line 2064: product.offers.seller["@type"] = "Organization";Line 2065: product.offers.seller.name = shop.Title;Line 2066: Line 2067: return "<script type='application" +"/" + "ld+json'>\n"Line 2068: + product.ToString(Newtonsoft.Json.Formatting.None)Line 2069: + "\n</" + "script>";Line 2070: }Line 2071: Line 2072: public static string print_wishlist_item_actions(dynamic wishlist, dynamic store) {Line 2073: int qtd = Convert.ToInt32(store.wishlist_props.desired);Line 2074: int qtr = Convert.ToInt32(store.wishlist_props.received);Line 2075: int qta = qtd - qtr;Line 2076: bool fulfilled = ( qta <= 0 ? true : false );Line 2077: Line 2078: // check stockLine 2079: if( qta > Convert.ToInt32(store.item_stock_qt) )Line 2080: qta = Convert.ToInt32(store.item_stock_qt);Line 2081: Line 2082: if( Convert.ToBoolean(wishlist.owner_access) ) {Line 2083: Line 2084: return string.Format(Line 2085: @"Line 2086: <div class='wishlist_item_actions {5}'>Line 2087: <form id='frm-update-item-{1}' name='frmUpdateItem' method='POST' action='/wishlist/update-item/'>Line 2088: <input type='hidden' name='idWishlist' value='{0}' />Line 2089: <input type='hidden' name='idVariant' value='{1}' />Line 2090: <label>Desejados<input type='number' name='desired' value='{2}' onchange='wl_update_item({1})' /></label>Line 2091: <label>Recebidos<input type='number' name='received' value='{3}' readonly='true' /></label>Line 2092: <button name='btnWishlistUpdateItem'>OK</button>Line 2093: </form>Line 2094: {4}Line 2095: <p id='item-alert-{1}' class='alert'></p>Line 2096: </div>Line 2097: ", wishlist.id, store.item_codGridLine 2098: , qtdLine 2099: , qtrLine 2100: , ( fulfilled ? "" : string.Format(Line 2101: "<a class='button' href='/wishlist/remove-item/?idWishlist={0}&idVariant={1}'>x</a>",Line 2102: wishlist.id, store.item_codGridLine 2103: ) )Line 2104: , ( fulfilled ? "fulfilled" : "" )Line 2105: );Line 2106: Line 2107: } else {Line 2108: if( Convert.ToBoolean(wishlist.is_expired) )Line 2109: return "";Line 2110: Line 2111: string item_status = "available";Line 2112: if( store.item_availability == 2 )Line 2113: item_status = "out_of_stock";Line 2114: if( fulfilled )Line 2115: item_status = "fulfilled";Line 2116: Line 2117: if( item_status != "available" ) {Line 2118: return string.Format( "<div class='wishlist_item_{0}'></div>", item_status );Line 2119: } else {Line 2120: StringBuilder options = new StringBuilder();Line 2121: for(int i = 1; i <= qta; i++ ) {Line 2122: options.Append( string.Format( "<option value='{0}'>{0}</option>", i ) );Line 2123: }Line 2124: Line 2125: return string.Format(Line 2126: @"Line 2127: <div class='wishlist_item_buy'>Line 2128: <form id='frm-buy-item-{0}' name='frmBuyItem' method='POST' action='/cart/add-wishlist/'>Line 2129: <input type='hidden' name='idVariant' value='{0}' />Line 2130: <input type='hidden' name='idWishlist' value='{1}' />Line 2131: <label>Quantidade desejada<select name='qt'>{2}</select></label>Line 2132: <button name='btnWishlistBuyItem'>comprar</button>Line 2133: </form>Line 2134: </div>Line 2135: ", store.item_codGrid, wishlist.id, options.ToString()Line 2136: );Line 2137: Line 2138: }Line 2139: }Line 2140: }Line 2141: Line 2142: public static string print_item_variant(ShopSetup shop, dynamic store) {Line 2143: string[] options = ZenTools.Split( Convert.ToString(store.item_composition) ,';');Line 2144: Line 2145: StringBuilder Sb = new StringBuilder();Line 2146: SqlConnection conn = new SqlConnection(shop.Path);Line 2147: conn.Open();Line 2148: Line 2149: for( int i = 0; i < options.Length;i++ ) {Line 2150: SqlCommand cmd = new SqlCommand(@"Line 2151: SELECT [codOption], [desc] AS DescOptionLine 2152: FROM tbl_selectOptions WITH (NOLOCK)Line 2153: WHERE [codOption] = @codOptionLine 2154: ORDER BY [dspOrder], [desc]Line 2155: ", conn);Line 2156: cmd.Parameters.Add(new SqlParameter("@codOption", SqlDbType.Int));Line 2157: cmd.Parameters["@codOption"].Value = options[i];Line 2158: SqlDataReader rdr = cmd.ExecuteReader();Line 2159: if (rdr.Read())Line 2160: Sb.Append( (string)rdr["DescOption"] + " " );Line 2161: rdr.Close();Line 2162: }Line 2163: conn.Close();Line 2164: Line 2165: return Sb.ToString();Line 2166: }Line 2167: Line 2168: public static string print_item_box( ShopSetup shop, int index, dynamic store, dynamic wishlist ) {Line 2169: int qtd = Convert.ToInt32(store.wishlist_props.desired);Line 2170: int qtr = Convert.ToInt32(store.wishlist_props.received);Line 2171: Line 2172: bool fulfilled = ( (qtd - qtr) <= 0 ? true : false );Line 2173: store.item_class = store.item_class + ( fulfilled ? " fulfilled" : "" );Line 2174: Line 2175: string item_description = Convert.ToString(store.item_description);Line 2176: if ( item_description.Length > shop.CAPD)Line 2177: item_description = item_description.Substring(0, shop.CAPD) + "...";Line 2178: Line 2179: return string.Format(Line 2180: @"Line 2181: <li class='{0} mOut' onmouseover='{1}' onmouseout='{2}'>Line 2182: <div class='item_box'>Line 2183: <div class='item_img'>Line 2184: <a href='{3}'>Line 2185: <img src='{4}' alt='{5}' width='{6}' height='{7}' />Line 2186: </a>Line 2187: </div>Line 2188: {8}Line 2189: {9}Line 2190: <div class='item_txt'>Line 2191: <span class='item_status item_status_{10}'>Line 2192: <label>{11}</label>Line 2193: </span>Line 2194: <span class='item_ref'>{12}</span>Line 2195: <a class='item_name' href='{3}'>Line 2196: <strong>{13}</strong>Line 2197: <span class='item_variant'>{14}</span>Line 2198: </a>Line 2199: <span class='item_description'>{15}</span>Line 2200: {16}Line 2201: <span class='item_availability item_availability_{17}'>Line 2202: <label>Disponibilidade: </label>{18}Line 2203: </span>Line 2204: </div>Line 2205: {19}Line 2206: {20}Line 2207: </div>Line 2208: </li>Line 2209: ",Line 2210: store.item_class, // {0}Line 2211: string.Format( "this.className=\"{0} mOver\"", store.item_class ), // {1}Line 2212: string.Format( "this.className=\"{0} mOut\"", store.item_class ), // {2}Line 2213: store.item_href, // {3}Line 2214: store.item_imgSrc, // {4}Line 2215: store.item_imgAlt, // {5}Line 2216: store.item_imgWidth, // {6}Line 2217: store.item_imgHeight, // {7}Line 2218: print_item_colors( store ), // {8}Line 2219: print_item_promotion( store ), // {9}Line 2220: store.item_codStatus, // {10}Line 2221: store.item_status, // {11}Line 2222: store.item_sku, // {12}Line 2223: store.item_name, // {13}Line 2224: print_item_variant( shop, store ), // {14}Line 2225: item_description, // {15}Line 2226: print_item_prices( shop, store ), // {16}Line 2227: store.item_codAvailability, // {17}Line 2228: store.item_availability, // {18}Line 2229: print_item_brand( store ), // {19}Line 2230: print_wishlist_item_actions( wishlist, store ) // {20}Line 2231: );Line 2232: }Line 2233: Line 2234: public static string print_item_box( ShopSetup shop, int index, dynamic store ) {Line 2235: string item_description = Convert.ToString(store.item_description);Line 2236: if ( item_description.Length > shop.CAPD)Line 2237: item_description = item_description.Substring(0, shop.CAPD) + "...";Line 2238: Line 2239: return string.Format(Line 2240: @"Line 2241: <li class='{0} mOut' onmouseover='{1}' onmouseout='{2}'>Line 2242: <div class='item_box'>Line 2243: <div class='item_img'>Line 2244: <a href='{3}'>Line 2245: <img src='{4}' alt='{5}' width='{6}' height='{7}' />Line 2246: </a>Line 2247: </div>Line 2248: {8}Line 2249: {9}Line 2250: <div class='item_txt'>Line 2251: <span class='item_status item_status_{10}'>Line 2252: <label>{11}</label>Line 2253: </span>Line 2254: {12}Line 2255: <span class='item_ref'>{13}</span>Line 2256: <a class='item_name' href='{3}'>Line 2257: <strong>{14}</strong>Line 2258: </a>Line 2259: <span class='item_description'>{15}</span>Line 2260: {16}Line 2261: <span class='item_availability item_availability_{17}'>Line 2262: <label>Disponibilidade: </label>{18}Line 2263: </span>Line 2264: </div>Line 2265: {19}Line 2266: {20}Line 2267: <div class='item_buttons'>Line 2268: {21}Line 2269: {22}Line 2270: </div>Line 2271: {23}Line 2272: {24}Line 2273: </div>Line 2274: {25}Line 2275: </li>Line 2276: ",Line 2277: store.item_class, // {0}Line 2278: string.Format( "this.className=\"{0} mOver\"", store.item_class ), // {1}Line 2279: string.Format( "this.className=\"{0} mOut\"", store.item_class ), // {2}Line 2280: store.item_href, // {3}Line 2281: store.item_imgSrc, // {4}Line 2282: store.item_imgAlt, // {5}Line 2283: store.item_imgWidth, // {6}Line 2284: store.item_imgHeight, // {7}Line 2285: print_item_colors( store ), // {8}Line 2286: print_item_promotion( store ), // {9}Line 2287: store.item_codStatus, // {10}Line 2288: store.item_status, // {11}Line 2289: print_item_free_shipping( store ), // {12}Line 2290: store.item_sku, // {13}Line 2291: store.item_name, // {14}Line 2292: item_description, // {15}Line 2293: print_item_prices( shop, store ), // {16}Line 2294: store.item_codAvailability, // {17}Line 2295: store.item_availability, // {18}Line 2296: print_aggregateRating( shop, store ), // {19}Line 2297: print_quickView( store ), // {20}Line 2298: print_item_btnInfo( store ), // {21}Line 2299: print_item_qtInput( shop, store ), // {22}Line 2300: print_item_similars( shop, store ), // {23}Line 2301: print_item_brand( store ), // {24}Line 2302: Line 2303: ( store.hgsd != null && Convert.ToBoolean(store.hgsd) ? "" : print_item_json_ld( shop, store ) ) // {25} Hide Google Structured DataLine 2304: Line 2305: );Line 2306: Line 2307: }Line 2308: Line 2309: /* ITEM BOX [END] */Line 2310: Line 2311: }Line 2312: Line 2313: Line 2314: Line 2315: Line 2316: Line 2317: Line 2318: Line 2319: Line 2320: Line 2321: Line 2322: public class Details {Line 2323: public Details() {}Line 2324: Line 2325: public static decimal getRating(decimal dRating) {Line 2326: int iRating = (int)dRating;Line 2327: decimal rest = dRating - iRating;Line 2328: return ( (decimal).3 <= rest && rest <= (decimal).7 ? Convert.ToDecimal(iRating) + (decimal).5 : Convert.ToDecimal( Convert.ToInt32( dRating ) ) );Line 2329: }Line 2330: Line 2331: public static string[] getGRData(string path, int codGrid) {Line 2332: string[] arr = new string[2];Line 2333: arr[0] = "0"; // ratingValueLine 2334: arr[1] = "0"; // reviewCountLine 2335: Line 2336: SqlConnection conn = new SqlConnection(path);Line 2337: conn.Open();Line 2338: Line 2339: string query = @"Line 2340: SELECTLine 2341: CAST( SUM( CAST( rating AS decimal(6,2) ) ) / COUNT(idProduct) AS decimal(6,1) ) AS ratingValue,Line 2342: COUNT(idProduct) as reviewsLine 2343: FROM sys_GR WITH (NOLOCK)Line 2344: WHERE (idProduct = (Line 2345: SELECT codProdLine 2346: FROM tbl_grid WITH (NOLOCK)Line 2347: WHERE (codGrid = @codGrid)Line 2348: ) ) AND (publish = 1) GROUP BY idProductLine 2349: ";Line 2350: SqlCommand cmd = new SqlCommand(query, conn);Line 2351: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 2352: cmd.Parameters["@codGrid"].Value = codGrid;Line 2353: SqlDataReader rdr = cmd.ExecuteReader();Line 2354: if (rdr.Read()) {Line 2355: arr[0] = Convert.ToString( getRating(Convert.ToDecimal(rdr[0])) );Line 2356: arr[1] = Convert.ToString(rdr[1]);Line 2357: }Line 2358: rdr.Close();Line 2359: conn.Close();Line 2360: Line 2361: return arr;Line 2362: }Line 2363: Line 2364: public static string aggregateRating(int shopId, int idGrid, ShopSetup shop) {Line 2365: string[] arr = getGRData(shop.Path, idGrid);Line 2366: decimal rating = Convert.ToDecimal(arr[0]);Line 2367: int reviews = Convert.ToInt32(arr[1]);Line 2368: StringBuilder Sb = new StringBuilder();Line 2369: Line 2370: if ( reviews > 0 ) {Line 2371: Sb.Append( "<div id='details_texts_aggregateRating'>\n" );Line 2372: Sb.Append( " <div class='rating'>\n" );Line 2373: Line 2374: //Sb.Append( " <img src='/octopus/design/images/" + shopId + "/agr_" + Convert.ToString(rating).Replace(",", "_") + ".gif' title='" + rating + " star rating'>\n" );Line 2375: Line 2376: Sb.Append( ZenTools.get_rating_stars(rating) );Line 2377: Line 2378: Sb.Append(Line 2379: String.Format(Line 2380: "<span id='details-aggregate-rating'>Avaliação geral: <span>{0}</span></span>\n",Line 2381: String.Format("{0:0.0}", Convert.ToString(rating).Replace(",", "."))Line 2382: )Line 2383: );Line 2384: Line 2385: Sb.Append( " <span> | </span>" );Line 2386: Sb.Append( "<a href='#GR_header'><span>" + reviews + "</span> " + ( reviews > 1 ? "Avaliações" : "Avaliação" ) + "</a>\n" );Line 2387: Sb.Append( " <span> | </span>" );Line 2388: Sb.Append( " <a id='details-gr-link' href='/review/?id=" + idGrid + "' rel='nofollow'>Escreva sua opnião</a>\n" );Line 2389: Sb.Append( " </div>\n");Line 2390: Sb.Append( "</div>\n");Line 2391: }Line 2392: Line 2393: return Sb.ToString();Line 2394: }Line 2395: Line 2396: public static string aggregateRating(int shopId, int idProd, string path) {Line 2397: StringBuilder Sb = new StringBuilder();Line 2398: decimal rating = 0;Line 2399: int reviews = 0;Line 2400: Line 2401: SqlConnection conn = new SqlConnection(path);Line 2402: conn.Open();Line 2403: Line 2404: string query = @"Line 2405: SELECTLine 2406: CAST( SUM( CAST( rating AS decimal(6,2) ) ) / COUNT(idProduct) AS decimal(6,1) ) AS ratingValue,Line 2407: COUNT(idProduct) as reviewsLine 2408: FROM sys_GR WITH (NOLOCK)Line 2409: WHERE (idProduct = @idProd) AND (publish = 1)Line 2410: GROUP BY idProductLine 2411: ";Line 2412: SqlCommand cmd = new SqlCommand(query, conn);Line 2413: cmd.Parameters.Add(new SqlParameter("@idProd", SqlDbType.Int));Line 2414: cmd.Parameters["@idProd"].Value = idProd;Line 2415: SqlDataReader rdr = cmd.ExecuteReader();Line 2416: Line 2417: if ( rdr.Read() ) {Line 2418: rating = getRating( Convert.ToDecimal(rdr[0]) );Line 2419: Sb.Append( "<div class='item_aggregateRating'>\n" );Line 2420: Sb.Append( " <div class='rating'>\n" );Line 2421: Line 2422: //Sb.Append( " <img src='/octopus/design/images/" + shopId + "/agr_prd_" + Convert.ToString(rating).Replace(",", "_") + ".gif' title='" + rating + " star rating'>\n" );Line 2423: Line 2424: Sb.Append( ZenTools.get_rating_stars(rating) );Line 2425: Line 2426: Sb.Append( " </div>\n");Line 2427: Sb.Append( "</div>\n");Line 2428: }Line 2429: Line 2430: rdr.Close();Line 2431: conn.Close();Line 2432: Line 2433: return Sb.ToString();Line 2434: }Line 2435: Line 2436: public static string getProductImgSrc(int shopId, int codGrid, ShopSetup shop) {Line 2437: string alt = "";Line 2438: return getProductImgSrc(shopId, codGrid, shop, out alt);Line 2439: }Line 2440: public static string getProductImgSrc(int shopId, int codGrid, ShopSetup shop, out string alt) {Line 2441: string src_base = string.Format("/octopus/design/images/{0}/products/{{size}}/", shopId);Line 2442: string src = src_base + "imgNotAvailable.jpg";Line 2443: alt = "";Line 2444: Line 2445: SqlConnection conn = new SqlConnection(shop.Path);Line 2446: conn.Open();Line 2447: SqlCommand cmd = new SqlCommand(Line 2448: @"Line 2449: SELECT TOP 1 [imgSrc], ISNULL([alt], '') AS imgAltLine 2450: FROM tbl_pictures WITH (NOLOCK)Line 2451: WHERE (codGrid = @codGrid) AND (NOT [imgSrc] IS NULL) AND [imgSrc] <> ''Line 2452: ORDER BY link DESCLine 2453: ", connLine 2454: );Line 2455: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 2456: cmd.Parameters["@codGrid"].Value = codGrid;Line 2457: SqlDataReader rdr = cmd.ExecuteReader();Line 2458: if ( rdr.Read() ) {Line 2459: src = Convert.ToString(rdr["imgSrc"]);Line 2460: if ( src.Length < 4 || src.ToLower().Substring(0, 4) != "http" )Line 2461: src = string.Format("{0}{1}.jpg", src_base, src);Line 2462: alt = Convert.ToString(rdr["imgAlt"]);Line 2463: }Line 2464: rdr.Close();Line 2465: conn.Close();Line 2466: Line 2467: return src;Line 2468: }Line 2469: Line 2470: public static string Images(int shopId, int codGrid, int userGroup, ShopSetup shop) {Line 2471: string output = "";Line 2472: string codGridColl = "";Line 2473: string useZoomGrid = shop.getConfig("ZoomGrid");Line 2474: string img_src = "";Line 2475: string img_alt = "";Line 2476: string[] img_sizes = shop.getImgSize("B");Line 2477: Line 2478: SqlConnection conn = new SqlConnection(shop.Path);Line 2479: conn.Open();Line 2480: Line 2481: string query = @"Line 2482: SELECTLine 2483: tbl_prod.codProd,Line 2484: tbl_prod.[desc],Line 2485: tbl_prod.jsonLine 2486: FROM tbl_grid WITH (NOLOCK)Line 2487: INNER JOIN tbl_prod WITH (NOLOCK) ON tbl_grid.codProd = tbl_prod.codProdLine 2488: WHERE tbl_grid.codGrid = @codGrid"Line 2489: ;Line 2490: Line 2491: SqlCommand cmd = new SqlCommand(query, conn);Line 2492: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 2493: cmd.Parameters["@codGrid"].Value = codGrid;Line 2494: SqlDataReader rdr = cmd.ExecuteReader();Line 2495: Line 2496: StringBuilder Sb = new StringBuilder();Line 2497: Line 2498: if (rdr.Read()) {Line 2499: if ( shop.getConfig("UsePicturesByProd").ToLower() == "true" )Line 2500: codGridColl = getCodGridColl(shop.Path, Convert.ToInt32(rdr["codProd"]));Line 2501: Line 2502: img_src = Details.getProductImgSrc(shopId, codGrid, shop, out img_alt);Line 2503: if ( img_alt == "" )Line 2504: img_alt = Convert.ToString(rdr["desc"]);Line 2505: Line 2506: Sb.Append(Line 2507: string.Format(Line 2508: @"Line 2509: <div id='details_images_big'>Line 2510: <a href='{0}'>Line 2511: <img id='details_images_big_img' src='{1}' alt='{2}' width='{3}' height='{4}' />Line 2512: </a>Line 2513: </div>Line 2514: ",Line 2515: (Line 2516: shop.UseZoom ? string.Format(Line 2517: "javascript:popZoom({0}, {1}, {2});",Line 2518: shopId, codGrid, (useZoomGrid.Length > 0 ? useZoomGrid : "\"\"")Line 2519: ) : "javascript:void(0);"Line 2520: ),Line 2521: img_src.Replace("{size}", "b"),Line 2522: img_alt,Line 2523: img_sizes[0],Line 2524: img_sizes[1]Line 2525: )Line 2526: );Line 2527: Line 2528: if (shop.UseZoom) {Line 2529: Sb.Append(Line 2530: string.Format(Line 2531: @"Line 2532: <div id='details_images_zoom'>Line 2533: <a href='javascript:popZoom({0}, {1}, {2});'>Line 2534: <img src='/octopus/design/images/{0}/details_zoom.gif' alt='' />Line 2535: </a>Line 2536: </div>Line 2537: ",Line 2538: shopId, codGrid, ( useZoomGrid.Length > 0 ? useZoomGrid : "\"\"" )Line 2539: )Line 2540: );Line 2541: }Line 2542: Line 2543: if (shop.UseEP) {Line 2544: Sb.Append( Details.Thumbnails(shopId, shop.Path, codGridColl, codGrid, userGroup, shop) );Line 2545: }Line 2546: Line 2547: Sb.Append("<script type='text/javascript'>zoomSrc = '" + img_src + "';<"+'/'+"script>\n" );Line 2548: }Line 2549: Line 2550: rdr.Close();Line 2551: conn.Close();Line 2552: Line 2553: return Sb.ToString();Line 2554: }Line 2555: Line 2556: public static string Images(int shopId, int codProd, string codCompApproach, int userGroup, ShopSetup shop) {Line 2557: string output = Details.Images(shopId, CodProdCodCompApproach2CodGrid(shopId, codProd, codCompApproach, shop), userGroup, shop);Line 2558: return output;Line 2559: }Line 2560: Line 2561: public static string Texts(int shopId, int codGrid, int userGroup, ShopSetup shop, Promotion P) {Line 2562: int i=0;string ndd="";for(i=0; i<shop.NDD; i++)ndd+="0";Line 2563: Line 2564: // deprecated 2014-08-18 (details cache)Line 2565: // int userGroup = 1; if (userId>0)userGroup=UserSetup.UserGroup(shop.Path, userId);Line 2566: Line 2567: decimal thisPrice = 0;Line 2568: decimal thisDiscRate = 0;Line 2569: string query = "";Line 2570: string promotion_sJson = "{}";Line 2571: StringBuilder Sb = new StringBuilder();Line 2572: Line 2573: SqlConnection conn = new SqlConnection(shop.Path);Line 2574: conn.Open();Line 2575: Line 2576: query = @"Line 2577: SELECTLine 2578: sys_prodStatus.[desc] AS StatusDesc,Line 2579: tbl_details.[desc] AS DetDesc,Line 2580: tbl_grid.codProd,Line 2581: tbl_grid.codGrid,Line 2582: tbl_grid.codComp,Line 2583: tbl_grid.vX,Line 2584: tbl_grid.vY,Line 2585: tbl_grid.vZ,Line 2586: tbl_grid.weight,Line 2587: tbl_brands.codBrand,Line 2588: tbl_brands.name AS Brand,Line 2589: tbl_prices.prc,Line 2590: tbl_prices.object,Line 2591: tbl_prices.discRate,Line 2592: tbl_prices.codStatus,Line 2593: tbl_prod.imgDepth,Line 2594: tbl_prod.json AS clob,Line 2595: sys_prodStatus.codStatus,Line 2596: sys_prodAvailability.codAvailability,Line 2597: sys_prodAvailability.[desc] AS AvailDescLine 2598: FROM tbl_prod WITH (NOLOCK)Line 2599: INNER JOIN tbl_grid WITH (NOLOCK) ON tbl_prod.codProd = tbl_grid.codProdLine 2600: INNER JOIN tbl_prices WITH (NOLOCK) ON tbl_grid.codGrid = tbl_prices.codGridLine 2601: INNER JOIN sys_prodAvailability WITH (NOLOCK) ON tbl_prices.codAvailability = sys_prodAvailability.codAvailabilityLine 2602: INNER JOIN sys_prodStatus WITH (NOLOCK) ON tbl_prices.codStatus = sys_prodStatus.codStatusLine 2603: INNER JOIN tbl_details WITH (NOLOCK) ON tbl_prod.codProd = tbl_details.codProdLine 2604: INNER JOIN tbl_brands WITH (NOLOCK) ON tbl_prod.codBrand = tbl_brands.codBrandLine 2605: WHERE (tbl_grid.active = 1) AND (tbl_details.codTitle = 1) AND (tbl_grid.codGrid = @codGrid) AND (tbl_prices.codGroup = @userGroup)Line 2606: ";Line 2607: Line 2608: SqlCommand cmd = new SqlCommand(query, conn);Line 2609: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 2610: cmd.Parameters.Add(new SqlParameter("@userGroup", SqlDbType.Int));Line 2611: cmd.Parameters["@codGrid"].Value = codGrid;Line 2612: cmd.Parameters["@userGroup"].Value = userGroup;Line 2613: SqlDataReader rdr = cmd.ExecuteReader();Line 2614: if (rdr.Read()) {Line 2615: Sb.Append(" <div id='details_texts_status' class='" + ZenTools.unlatinize( (string)rdr["StatusDesc"] ) + "'><span>" + (string)rdr["StatusDesc"] + "</span></div>\n");Line 2616: Sb.Append(" <div id='details_texts_description'>");Line 2617: Line 2618: if (Convert.ToString(rdr["DetDesc"]).Length>shop.CADD) {Line 2619: Sb.Append(Generics.OfflineTags(Line 2620: ZenTools.Mid((string)rdr["DetDesc"],0,shop.CADD)) + " <a href='#details_fixed' title='veja mais'>...veja mais</a>"Line 2621: );Line 2622: } else {Line 2623: Sb.Append(Generics.OfflineTags((string)rdr["DetDesc"]));Line 2624: }Line 2625: Line 2626: Sb.Append(" </div>\n");Line 2627: Sb.Append(" <div id='details_texts_additional'>\n");Line 2628: Sb.Append(" <span class='size'><label>Dimensões (LxAxP): </label><span>" + (int)rdr["vX"] + "</span>x<span>" + (int)rdr["vY"] + "</span>x<span>" + (int)rdr["vZ"] + "</span> cm</span>\n");Line 2629: Sb.Append(" <span class='weight'><label>Peso: </label><span>" + (int)rdr["weight"] + "g</span></span>\n");Line 2630: Line 2631: Sb.Append(Line 2632: String.Format(Line 2633: "<span class='brand'><label>Fabricante: </label><span><a href='/{0}'>{1}</a></span></span>",Line 2634: ZenTools.urlize( Convert.ToString(rdr["brand"]) ),Line 2635: Convert.ToString(rdr["brand"])Line 2636: )Line 2637: );Line 2638: Line 2639: Sb.Append(" </div>\n");Line 2640: Line 2641: if ( shop.getConfig("DetailsAggregateRating").Length > 0 ) {Line 2642: Sb.Append( aggregateRating(shopId, codGrid, shop) );Line 2643: }Line 2644: Line 2645: if ((int)rdr["codAvailability"] < 2) {Line 2646: thisPrice = Convert.ToDecimal(rdr["prc"]);Line 2647: thisDiscRate = Convert.ToDecimal(rdr["discRate"]);Line 2648: Line 2649: Line 2650: Line 2651: // check promotionsLine 2652: try {Line 2653: promotion_sJson = P.getEffect(Line 2654: Convert.ToInt32(rdr["codBrand"]),Line 2655: Details.getProductMenus(shop.Path, Convert.ToInt32(rdr["codProd"])),Line 2656: codGrid,Line 2657: 0,Line 2658: ""Line 2659: );Line 2660: object oJson = JavaScriptDeserializer.DeserializeFromJson( promotion_sJson, typeof(NameValueCollection) );Line 2661: Line 2662: if ( Convert.ToInt32(((NameValueCollection)oJson)["id"]) > 0 ) {Line 2663: switch( Convert.ToString(((NameValueCollection)oJson)["discountType"]) ) {Line 2664: case "percent":Line 2665: thisDiscRate += Convert.ToDecimal(((NameValueCollection)oJson)["discountValue"]);Line 2666: break;Line 2667: case "fixed" : break;Line 2668: case "freeShipping": break;Line 2669: }Line 2670: Line 2671: // display active promotionLine 2672: Sb.Append( "\n<div class='details_promotion'>\n" );Line 2673: Sb.Append( " <span class='details_promotion_name'>" + Convert.ToString(((NameValueCollection)oJson)["name"]) + "</span>\n" );Line 2674: Sb.Append( " <span class='details_promotion_description'>" + Convert.ToString(((NameValueCollection)oJson)["description"]) + "</span>\n" );Line 2675: if ( ((NameValueCollection)oJson)["thumbnail"] != "imgNotAvailable" ) {Line 2676: Sb.Append( " <img src='/octopus/design/images/" + shopId + "/" + ((NameValueCollection)oJson)["thumbnail"] + "' class='details_promotion_thumbnail' />\n" );Line 2677: }Line 2678: Sb.Append( "</div>\n\n" );Line 2679: }Line 2680: } catch ( Exception e ) {Line 2681: thisPrice = Convert.ToDecimal(rdr["prc"]);Line 2682: promotion_sJson = "{}";Line 2683: }Line 2684: Line 2685: Line 2686: Line 2687: Sb.Append(" <div class='details_texts_prices_" + (int)rdr["codStatus"] + "' id='details_texts_prices'>\n");Line 2688: Sb.Append( Details.Prices(shopId, (int)rdr["codGrid"], thisPrice, thisDiscRate, (int)rdr["codStatus"], userGroup, shop) );Line 2689: Sb.Append(" </div>\n");Line 2690: Sb.Append( Details.Parcels(shopId, (int)rdr["codGrid"], thisPrice, thisDiscRate, shop) );Line 2691: }Line 2692: Line 2693: if (shop.UsePS && DBNull.Value!=rdr["codComp"] && !Convert.ToString(rdr["codComp"]).Equals("")) {Line 2694: Sb.Append(" <div id='details_texts_selects'>\n");Line 2695: Line 2696: string[,] selects = Details.Selects(shop.Path,Convert.ToString(rdr["codComp"]));Line 2697: string[] options = ZenTools.Split(Convert.ToString(rdr["codComp"]),';');Line 2698: string codCompApproach = "";Line 2699: string iSelects = "";Line 2700: Line 2701: for(i=0; i<selects.GetLength(0); i++) {Line 2702: iSelects += selects[i,0] + ";";Line 2703: }Line 2704: Line 2705: for(i=0; i<selects.GetLength(0); i++) {Line 2706: codCompApproach = "";Line 2707: for(int u = 0; u < i; u++) {Line 2708: codCompApproach += options[u] + ";";Line 2709: }Line 2710: Sb.Append(" <span class='selects'><h2>" + selects[i,1] + ":</h2><span id='s" + i + "P'>" + Details.Select(shopId, shop.Path, iSelects, Convert.ToInt32(options[i]), (int)rdr["codProd"], codCompApproach, (int)rdr["imgDepth"], selects.GetLength(0), i, userGroup, shop) + "</span></span>\n");Line 2711: }Line 2712: Line 2713: Sb.Append(" </div>\n");Line 2714: }Line 2715: Line 2716: if ( (int)rdr["codStatus"] != 4 ) {Line 2717: Sb.Append(" <div id='details_texts_availability'>\n");Line 2718: Line 2719: Line 2720: Line 2721: //--( Using AjaxPro.dll to deserialize a json from tbl_prices )Line 2722: string sJson = Convert.ToString(rdr["object"]);Line 2723: Line 2724: try {Line 2725: object oJson = JavaScriptDeserializer.DeserializeFromJson(sJson, typeof(NameValueCollection));Line 2726: if ( Convert.ToBoolean(((NameValueCollection)oJson)["freeShipping"]) ) {Line 2727: if ( Convert.ToString(((NameValueCollection)oJson)["freeShippingType"]) == "RESTRICTED" ) {Line 2728: Sb.Append( "<div id='details_texts_availability_shipping_restricted'><span></span></div>\n" );Line 2729: Line 2730: string[] ranges = (((NameValueCollection)oJson)["freeShippingRanges"]).Split(';');Line 2731: if ( ranges.Length > 0 && ranges[0] != "" ) {Line 2732: Sb.Append( "<div id='free-shipping-restricted'>\n" );Line 2733: Line 2734: if (Line 2735: ( (NameValueCollection)oJson )["freeShippingLabel"] != null &&Line 2736: Convert.ToString(((NameValueCollection)oJson)["freeShippingLabel"]).Length > 0Line 2737: ) {Line 2738: Sb.Append( " <font class='free-shipping-restricted-title'>" + Convert.ToString(((NameValueCollection)oJson)["freeShippingLabel"]) + "</font>\n" );Line 2739: } else {Line 2740: Sb.Append( " <font class='free-shipping-restricted-title'>Frete Grátis:</font>\n" );Line 2741: Sb.Append( " <ul>\n" );Line 2742: Line 2743: foreach(string sRange in ranges) {Line 2744: string[] r = sRange.Split(',');Line 2745: Sb.Append( " <li><font class='free_shipping_name'>" + r[2] + "</font></li>\n" );Line 2746: }Line 2747: Line 2748: Sb.Append( " </ul>\n" );Line 2749: }Line 2750: Line 2751: Sb.Append( "</div>\n" );Line 2752: }Line 2753: } else {Line 2754: Sb.Append( "<div id='details_texts_availability_shipping'><span></span></div>" );Line 2755: }Line 2756: }Line 2757: } catch (Exception e) {}Line 2758: Line 2759: Line 2760: Line 2761: dynamic clob = JsonConvert.DeserializeObject<JObject>("{}");Line 2762: try {Line 2763: clob = JsonConvert.DeserializeObject<JObject>( Convert.ToString( rdr["clob"] ) );Line 2764: } catch( Exception ex ) {}Line 2765: Line 2766: if( (int)rdr["codAvailability"] < 3 && clob != null && clob.plano_funeral != null ) {Line 2767: Sb.Append( string.Format(Line 2768: @"Line 2769: <a id='plano-funeral-anchor' href='/plano-funeral/titular?id={0}'>Line 2770: <span>Contratar</span>Line 2771: </a>Line 2772: ", Convert.ToInt32(rdr["codGrid"])Line 2773: ) );Line 2774: } else {Line 2775: Sb.Append( Details.Availability(shopId, (int)rdr["codGrid"], userGroup, shop, promotion_sJson) );Line 2776: }Line 2777: Line 2778: Line 2779: Line 2780: Sb.Append(" </div>\n");Line 2781: }Line 2782: Line 2783: // item shipping costLine 2784: if ( (int)rdr["codAvailability"] < 2 && shop.getConfig("UseItemShippingCostModal") != "" ) {Line 2785: Sb.Append(Line 2786: String.Format(Line 2787: "<div class='details_texts_shipping_cost'><h2><a href='#' onclick='item_shipping_cost_modal({0})'>{1}</a></h2></div>\n"Line 2788: , codGrid, shop.getConfig("UseItemShippingCostModal")Line 2789: )Line 2790: );Line 2791: }Line 2792: Line 2793: }Line 2794: rdr.Close();Line 2795: Line 2796: Sb.Append(" <div id='details_texts_others'>\n");Line 2797: Line 2798: if( shop.Next.favorites != null ) {Line 2799: Sb.Append( string.Format(Line 2800: @"Line 2801: <div class='favorites_add_item'>Line 2802: <a href='/wishlist/save-favorite-item/?id={0}' onclick='fav_add(event, {0})'><span>ADD_TO_FAVORITES</span></a>Line 2803: </div>Line 2804: ", codGridLine 2805: ) );Line 2806: }Line 2807: Line 2808: if (shop.UseTF) {Line 2809: query = "SELECT title, popWidth, popHeight FROM sys_tf_setup WITH (NOLOCK)";Line 2810: cmd = new SqlCommand(query, conn);Line 2811: rdr = cmd.ExecuteReader();Line 2812: if (rdr.Read())Sb.Append(" <span id='TF_lnkDTL'><a href=\"javascript:window.open('/octopus/ext_tellFriend.aspx?sid=" + shopId + "&cg=" + codGrid + "','tellFriend','top=0,left=0,width=" + (int)rdr["popWidth"] + ",height=" + (int)rdr["popHeight"] + ",location=no,menubar=no,directories=no,toolbar=no,scrollbars=yes,status=no');void(0);\"><img src='/octopus/design/images/" + shopId + "/tf_link.gif' alt='' rel='nofollow' /></a></span>\n");Line 2813: rdr.Close();Line 2814: }Line 2815: if (shop.UseGR) {Line 2816: Sb.Append( string.Format( @"Line 2817: <span id='GR_lnkDTL'>Line 2818: <a href='/review/?id={0}' rel='nofollow'>Line 2819: <img src='/octopus/design/images/{1}/GR_lnkDTL.gif' alt='' />Line 2820: </a>Line 2821: </span>Line 2822: ", codGrid, shopId ) );Line 2823: }Line 2824: Line 2825: if (shop.UseASQ) {Line 2826: Sb.Append( string.Format( @"Line 2827: <span id='ASQ_lnkDTL'>Line 2828: <a href='/questions-answers/?id={0}'>Line 2829: <img src='/octopus/design/images/{1}/ASQ_lnkDTL.gif' alt='' />Line 2830: </a>Line 2831: </span>Line 2832: ", codGrid, shopId ) );Line 2833: }Line 2834: Line 2835: if (shop.getConfig("FoundCheap").Length > 0) {Line 2836: string sJson = Convert.ToString( shop.getConfig("FoundCheap") );Line 2837: try {Line 2838: object oJson = JavaScriptDeserializer.DeserializeFromJson(sJson, typeof(NameValueCollection));Line 2839: Sb.Append(" <span id='FC_lnkDTL'><a href=\"javascript:window.open('/octopus/ext_foundCheap.aspx?sid=" + shopId + "&cg=" + codGrid + "&title=" + ((NameValueCollection)oJson)["popTitle"] + "','foundCheaper','top=0,left=0,width=" + ((NameValueCollection)oJson)["popWidth"] + ",height=" + ((NameValueCollection)oJson)["popHeight"] + ",location=no,menubar=no,directories=no,toolbar=no,status=no');void(0);\"><img src='/octopus/design/images/" + shopId + "/fc_link.gif' alt='Achou mais barato' /></a></span>\n");Line 2840: } catch (Exception e) {}Line 2841: }Line 2842: Line 2843: if ( shop.getConfig("WeddingRegistry").Length > 0 )Line 2844: Sb.Append(" <div id='weeding-registry-add-trigger'><a href='" + shop.Https + "{$thisConfig}&mi=WR&action=addItem&rmi=DTL&idG=" + codGrid + "<p=wedding' rel='nofollow'><img src='/octopus/design/images/" + shopId + "/WR_lnkDTL.gif' alt='wedding registry' title='wedding registry' /></a></div>");Line 2845: if ( shop.getConfig("WishListRegistry").Length > 0 )Line 2846: Sb.Append(" <div id='wishlist-registry-add-trigger'><a href='" + shop.Https + "{$thisConfig}&mi=WL&action=addItem&rmi=DTL&idG=" + codGrid + "<p=wishlist' rel='nofollow'><img src='/octopus/design/images/" + shopId + "/WL_lnkDTL.gif' alt='wishlist registry' title='wishlist registry' /></a></div>");Line 2847: if ( shop.getConfig("BabyListRegistry").Length > 0 )Line 2848: Line 2849: Line 2850: Sb.Append(" <div id='babylist-registry-add-trigger'><a href='" + shop.Https + "{$thisConfig}&mi=BL&action=addItem&rmi=DTL&idG=" + codGrid + "<p=babylist' rel='nofollow'><img src='/octopus/design/images/" + shopId + "/BL_lnkDTL.gif' alt='babylist registry' title='babylist registry' /></a></div>");Line 2851: Sb.Append(" </div>\n");Line 2852: Line 2853: conn.Close();Line 2854: Line 2855: return Sb.ToString();Line 2856: }Line 2857: public static string Texts(int shopId, int codProd, string codComp, int userGroup, ShopSetup shop, Promotion P) {Line 2858: string output = Details.Texts(shopId, CodProdCodCompApproach2CodGrid(shopId, codProd, codComp, shop), userGroup, shop, P);Line 2859: return output;Line 2860: }Line 2861: Line 2862: public static string Thumbnails(int shopId, string path, string codGridColl, int codGrid, int userGroup, ShopSetup shop) {Line 2863: StringBuilder Sb = new StringBuilder();Line 2864: string img_src = "";Line 2865: string img_thumb_fn = "";Line 2866: Line 2867: Sb.Append("<div id='details_images_thumbs'>\n");Line 2868: Sb.Append(" <ul>\n");Line 2869: Line 2870: SqlConnection conn = new SqlConnection(path);Line 2871: conn.Open();Line 2872: Line 2873: string query = string.Format(Line 2874: @" Line 2875: SELECT DISTINCTLine 2876: Pi.[imgSrc],Line 2877: Pi.[relatedGrid],Line 2878: P.[desc]Line 2879: FROM tbl_pictures Pi WITH (NOLOCK)Line 2880: INNER JOIN tbl_grid G WITH (NOLOCK) ON Pi.[codGrid] = G.[codGrid]Line 2881: INNER JOIN tbl_prod P WITH (NOLOCK) ON G.[codProd] = P.[codProd]Line 2882: WHERE {0} AND (NOT Pi.[imgSrc] IS NULL) AND (Pi.[imgSrc] <> '')Line 2883: ORDER BY Pi.[imgSrc]Line 2884: ",Line 2885: (codGridColl == "" ? "(Pi.[codGrid] = @codGrid)" : "(Pi.[codGrid] IN(" + codGridColl + ") )" )Line 2886: );Line 2887: Line 2888: SqlCommand cmd = new SqlCommand(query, conn);Line 2889: if ( codGridColl == "" ) {Line 2890: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 2891: cmd.Parameters["@codGrid"].Value = codGrid;Line 2892: }Line 2893: SqlDataReader rdr = cmd.ExecuteReader();Line 2894: Line 2895: while(rdr.Read()) {Line 2896: img_src = Convert.ToString(rdr["imgSrc"]);Line 2897: if ( img_src.Length < 4 || img_src.ToLower().Substring(0, 4) != "http" )Line 2898: img_src = string.Format("/octopus/design/images/{0}/products/{{size}}/{1}.jpg", shopId, img_src);Line 2899: img_thumb_fn = string.Format( "javascript:setBigImage({0},\"{1}\");", shopId, img_src );Line 2900: Line 2901: if ( rdr["relatedGrid"] != DBNull.Value && Convert.ToInt32(rdr["relatedGrid"]) > 0 ) {Line 2902: if ( isActive(path, Convert.ToInt32(rdr["relatedGrid"])) ) {Line 2903: img_thumb_fn = string.Format(Line 2904: "javascript:getGrid({0}, 0, {1},\"{{$thisConfig}}\")", shopId, Convert.ToString(rdr["relatedGrid"])Line 2905: );Line 2906: } else {Line 2907: img_src = "";Line 2908: }Line 2909: }Line 2910: Line 2911: if ( img_src != "" ) {Line 2912: Sb.Append( Environment.NewLine );Line 2913: Sb.Append(Line 2914: string.Format(Line 2915: @"Line 2916: <li>Line 2917: <a href='{0}'>Line 2918: <img src='{1}' alt='{2}' />Line 2919: </a>Line 2920: </li>Line 2921: ",Line 2922: img_thumb_fn, img_src.Replace("{size}", "t"), Convert.ToString(rdr["desc"])Line 2923: )Line 2924: );Line 2925: Sb.Append( Environment.NewLine );Line 2926: }Line 2927: }Line 2928: Line 2929: rdr.Close();Line 2930: conn.Close();Line 2931: Line 2932: Sb.Append(" </ul>\n");Line 2933: Sb.Append("</div>\n");Line 2934: Line 2935: return Sb.ToString();Line 2936: }Line 2937: Line 2938: public static string Prices(int shopId, int codGrid, decimal price, decimal discRate, int codStatus, ShopSetup shop) {Line 2939: return Prices(shopId, codGrid, price, discRate, codStatus, 1, shop);Line 2940: }Line 2941: Line 2942: public static string Prices(int shopId, int codGrid, decimal price, decimal discRate, int codStatus, int codGroup, ShopSetup shop) {Line 2943: int i=0;string ndd="";for(i=0; i<shop.NDD; i++)ndd+="0";Line 2944: Line 2945: StringBuilder Sb = new StringBuilder();Line 2946: Line 2947: int thisStockQt = 1;Line 2948: if (shop.UseSC)thisStockQt=Stock.Qt(shop.Path,codGrid);Line 2949: Line 2950: if (thisStockQt>0) {Line 2951: Line 2952: string iMembers;Line 2953: string iClass = "";Line 2954: string iValue = "";Line 2955: string payments = "";Line 2956: Line 2957: SqlConnection conn = new SqlConnection(shop.Path);Line 2958: SqlConnection hConn = new SqlConnection(shop.Path);Line 2959: SqlCommand hCmd = null;Line 2960: SqlDataReader hRdr = null;Line 2961: Line 2962: conn.Open();Line 2963: string query = @"Line 2964: SELECTLine 2965: tbl_acronyms.[desc] AS acroDesc,Line 2966: tbl_acronyms.acronymLine 2967: FROM tbl_grid WITH (NOLOCK)Line 2968: INNER JOIN tbl_prod WITH (NOLOCK) ON tbl_prod.codProd = tbl_grid.codProdLine 2969: INNER JOIN tbl_acronyms WITH (NOLOCK) ON tbl_prod.codUn = tbl_acronyms.codUnLine 2970: WHERE tbl_grid.codGrid = @codGridLine 2971: ";Line 2972: Line 2973: SqlCommand cmd = new SqlCommand(query, conn);Line 2974: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 2975: cmd.Parameters["@codGrid"].Value = codGrid;Line 2976: SqlDataReader rdr = cmd.ExecuteReader();Line 2977: Line 2978: string acroDesc = "";Line 2979: string acronym = "";Line 2980: Line 2981: if (rdr.Read()) {Line 2982: acroDesc = (string)rdr[0];Line 2983: acronym = (string)rdr[1];Line 2984: }Line 2985: Line 2986: rdr.Close();Line 2987: Line 2988: Sb.Append(" <div id='details-text'>\n");Line 2989: Sb.Append(" <div id='details-text-price'>\n");Line 2990: Sb.Append(" <div id='details-text-price-base'>\n");Line 2991: Line 2992: if (discRate != 0) {Line 2993: Sb.Append(" <span id='details-text-price-list'><span class='label'>de:</span><span class='price'>"+ shop.CurrType + string.Format("{0:0."+ ndd +"}",price) + "</span><acronym title="+ acroDesc +"> / "+ acronym +" </acronym></span>\n");Line 2994: }Line 2995: Line 2996: decimal ourPrc = ( 1 - discRate / 100 ) * price;Line 2997: Sb.Append(Line 2998: String.Format(Line 2999: @"Line 3000: <span id='details-text-price-our'>Line 3001: <span class='label'>{0}</span>Line 3002: <span>{1}</span>Line 3003: <span id='variant-anchor-prc' class='price'>{3}</span>Line 3004: <acronym title='{4}'> / {5} </acronym></span>Line 3005: ",Line 3006: ( codStatus == 4 ? "a partir de:" : "por:" ),Line 3007: shop.CurrType,Line 3008: string.Format("{0:0."+ ndd +"}", ourPrc).Replace(",", "."),Line 3009: string.Format("{0:0."+ ndd +"}", ourPrc),Line 3010: acroDesc,Line 3011: acroDescLine 3012: )Line 3013: ); //(A - B)Line 3014: Line 3015: if (discRate != 0) {Line 3016: Sb.Append( " <span id='details-text-price-save'>" );Line 3017: Sb.Append( " <span class='label'>economize:</span>" );Line 3018: Sb.Append( " <span class='price'> " + shop.CurrType + string.Format("{0:0.00}",price - ((1-discRate/100)*price)) +"</span>" ); //(A - B)Line 3019: Sb.Append( " </span>\n" );Line 3020: Sb.Append( " <div id='details-text-price-discount'>\n");Line 3021: Sb.Append( " <span class='discount_label'>"+ ( shop.getConfig("ProductDiscountLabel") != "" ? shop.getConfig("ProductDiscountLabel") : "Desconto de:" ) +"</span>\n");Line 3022: Sb.Append( " <span class='discount_percentage'>" + Convert.ToInt32(Math.Round(discRate, 2)) + "%</span>\n");Line 3023: Sb.Append( " </div>\n");Line 3024: }Line 3025: Line 3026: query = @"Line 3027: SELECT TOP 1Line 3028: times,Line 3029: interest,Line 3030: vtransl AS ccvtransl,Line 3031: ( SELECT name FROM sys_payInfos WITH (NOLOCK) WHERE codPayment = 1 ) AS name,Line 3032: ( SELECT factor FROM sys_payInfos WITH (NOLOCK) WHERE codPayment = 1 ) AS factor,Line 3033: ( SELECT vtransl FROM sys_payInfos WITH (NOLOCK) WHERE codPayment = 1 ) AS vtranslLine 3034: FROM sys_parcels WITH (NOLOCK)Line 3035: WHERE [value] <= @price AND times > 1 AND [priceGroup] = @priceGroupLine 3036: ORDER BY times DESCLine 3037: ";Line 3038: cmd = new SqlCommand(query, conn);Line 3039: cmd.Parameters.Add(new SqlParameter("@price", SqlDbType.Real));Line 3040: cmd.Parameters["@price"].Value = (1-discRate/100)*price;Line 3041: cmd.Parameters.Add(new SqlParameter("@priceGroup", SqlDbType.Int));Line 3042: cmd.Parameters["@priceGroup"].Value = codGroup;Line 3043: rdr = cmd.ExecuteReader();Line 3044: if (rdr.Read()) {Line 3045: if ((decimal)rdr["interest"] > 0) {Line 3046: iValue = (int)rdr["times"] +"x de "+ shop.CurrType + string.Format( "{0:0.00}",Line 3047: Juros_Composto(( (1 - discRate / 100) * price * (decimal)rdr["factor"] + (decimal)rdr["vtransl"] ), (decimal)rdr["interest"] / 100, (int)rdr["times"]) + (decimal)rdr["ccvtransl"]Line 3048: ) +" c/juros <span class='tax'>(taxa de "+ string.Format("{0:0.00}", (decimal)rdr["interest"]) +"% a.m.)</span>";Line 3049: } else {Line 3050: iValue = (int)rdr["times"] +"x de "+ shop.CurrType + string.Format( "{0:0.00}",Line 3051: ( ( (1 - discRate / 100) * price * (decimal)rdr["factor"] + (decimal)rdr["vtransl"] ) / (int)rdr["times"] ) + (decimal)rdr["ccvtransl"]Line 3052: );Line 3053: }Line 3054: Line 3055: Sb.Append(" <span id='details-text-price-or'><span class='label'>ou:</span><span class='price'>"+ iValue +"</span></span>\n");Line 3056: }Line 3057: rdr.Close();Line 3058: Sb.Append(" </div>\n");Line 3059: Sb.Append(" <div id='details-text-price-exception'>\n");Line 3060: Line 3061: query = "SELECT DISTINCT factor, vtransl FROM sys_payInfos WITH (NOLOCK) WHERE active = 1";Line 3062: cmd = new SqlCommand(query, conn);Line 3063: rdr = cmd.ExecuteReader();Line 3064: StringBuilder Builder = new StringBuilder();Line 3065: Line 3066: while( rdr.Read() ) {Line 3067: if ((decimal)rdr["factor"] != 1 || (decimal)rdr["vtransl"] != 0) {Line 3068: Sb.Append( " <p>\n");Line 3069: if ( (decimal)rdr["factor"] > 1 ) {Line 3070: Sb.Append (Line 3071: "<span class='details-text-price-factor-increase'>" + Convert.ToInt32(((decimal)rdr["factor"] - 1) * 100) + "% de acréscimo</span>\n"Line 3072: );Line 3073: }Line 3074: Line 3075: if ( (decimal)rdr["factor"] < 1 ) {Line 3076: Sb.Append (Line 3077: "<span class='details-text-price-factor-discount'>" + Convert.ToInt32((1-(decimal)rdr["factor"]) * 100) +"% de desconto</span>\n"Line 3078: );Line 3079: }Line 3080: Line 3081: if ( (decimal)rdr["vtransl"] > 0 ) {Line 3082: Sb.Append(Line 3083: "<span class='details-text-price-vtransl-increase'>mais "Line 3084: + shop.CurrType + string.Format( "{0:0.00}", (decimal)rdr["vtransl"] )Line 3085: + " de acréscimo</span>\n"Line 3086: );Line 3087: }Line 3088: Line 3089: if ( (decimal)rdr["vtransl"] < 0 ) {Line 3090: Sb.Append(Line 3091: "<span class='details-text-price-vtransl-discount'>menos "Line 3092: + shop.CurrType + string.Format( "{0:0.00}", Math.Abs( (decimal)rdr["vtransl"] ) )Line 3093: + " de desconto</span>\n"Line 3094: );Line 3095: }Line 3096: Line 3097: hConn.Open();Line 3098: query = "SELECT name FROM sys_payInfos WITH (NOLOCK) WHERE (factor = @factor) AND (vtransl = @vtransl) ORDER BY payment";Line 3099: hCmd = new SqlCommand(query, hConn);Line 3100: hCmd.Parameters.Add(new SqlParameter("@factor", SqlDbType.Decimal));Line 3101: hCmd.Parameters.Add(new SqlParameter("@vtransl", SqlDbType.Decimal));Line 3102: hCmd.Parameters["@factor"].Value = (decimal)rdr["factor"];Line 3103: hCmd.Parameters["@vtransl"].Value = (decimal)rdr["vtransl"];Line 3104: hRdr = hCmd.ExecuteReader();Line 3105: Line 3106: payments = "";Line 3107: Line 3108: while( hRdr.Read() ) {Line 3109: payments += ", " + (string)hRdr["name"];Line 3110: }Line 3111: Line 3112: hRdr.Close();Line 3113: hConn.Close();Line 3114: Line 3115: Sb.Append( " <span class='details-text-price-payment'>para " + payments.Substring(1, payments.Length - 1) + "</span> \n" );Line 3116: Sb.Append( " <span class='details-text-price-final'>" + shop.CurrType + string.Format("{0:0."+ ndd +"}",(((1-discRate/100) * price) * (decimal)rdr["factor"]) + (decimal)rdr["vtransl"]) + "</span>\n" );Line 3117: Sb.Append( " </p>\n" );Line 3118: }Line 3119: }Line 3120: Line 3121: rdr.Close();Line 3122: conn.Close();Line 3123: Line 3124: Sb.Append(" </div>\n");Line 3125: Line 3126: Line 3127: Sb.Append(" </div>\n");Line 3128: Line 3129: Sb.Append(" </div>\n");Line 3130: }Line 3131: Line 3132: return Sb.ToString();Line 3133: }Line 3134: Line 3135: public static string Availability(int shopId, int codGrid, int userGroup, ShopSetup shop, string promotion_sJson) {Line 3136: StringBuilder Sb = new StringBuilder();Line 3137: Line 3138: int i = 0;Line 3139: int maxQt = 100;Line 3140: int iStockQt = 10;Line 3141: int codAvailability = 0;Line 3142: int qtStep = 1;Line 3143: Line 3144: decimal iPrice = 0;Line 3145: string[] thisAvailability = new string[3];Line 3146: string sJson = "";Line 3147: Line 3148: SqlConnection conn = new SqlConnection(shop.Path);Line 3149: conn.Open();Line 3150: Line 3151: string query = "SELECT prc, codAvailability, object FROM tbl_prices WITH (NOLOCK) WHERE codGroup = @userGroup AND codGrid = @codGrid";Line 3152: SqlCommand cmd = new SqlCommand(query, conn);Line 3153: cmd.Parameters.Add(new SqlParameter("@userGroup", SqlDbType.Int));Line 3154: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 3155: cmd.Parameters["@userGroup"].Value = userGroup;Line 3156: cmd.Parameters["@codGrid"].Value = codGrid;Line 3157: SqlDataReader rdr = cmd.ExecuteReader();Line 3158: if (rdr.Read()) {Line 3159: iPrice = (decimal)rdr["prc"];Line 3160: codAvailability = (int)rdr["codAvailability"];Line 3161: sJson = Convert.ToString(rdr["object"]);Line 3162: }Line 3163: rdr.Close();Line 3164: Line 3165: query = "SELECT [desc] FROM sys_prodAvailability WITH (NOLOCK) ORDER BY codAvailability";Line 3166: cmd = new SqlCommand(query,conn);Line 3167: rdr = cmd.ExecuteReader();Line 3168: while(rdr.Read())thisAvailability[i++]=(string)rdr["desc"];Line 3169: rdr.Close();Line 3170: Line 3171: conn.Close();Line 3172: Line 3173: if (shop.UseSC)iStockQt=Stock.Qt(shop.Path, codGrid);Line 3174: Line 3175: if ( null != shop.getConfig("StockMaxQt") && !shop.getConfig("StockMaxQt").Equals("") )Line 3176: maxQt = Convert.ToInt32(shop.getConfig("StockMaxQt"));Line 3177: if ( iStockQt < maxQt )Line 3178: maxQt = iStockQt;Line 3179: Line 3180: if (codAvailability==1 && iPrice<=0)codAvailability=2;Line 3181: Sb.Append( " <div id='details_texts_availability_label'><label>Disponibilidade: </label>" + thisAvailability[codAvailability-1] + "</div>\n" );Line 3182: Line 3183: switch(codAvailability) {Line 3184: case 1:Line 3185: Sb.Append( " <div id='details_texts_availability_field'><span class='item_qt_buy'><label for='r_0'><font>Quantidade:</font></label>" );Line 3186: Line 3187: if (shop.isRetail) {Line 3188: Sb.Append( "<select id='r_0' name='r_0'>" );Line 3189: Line 3190: Line 3191: Line 3192: // set product quantity by promotionLine 3193: if ( promotion_sJson != "{}" ) {Line 3194: try {Line 3195: object oJson = JavaScriptDeserializer.DeserializeFromJson(promotion_sJson, typeof(NameValueCollection));Line 3196: if ( ((NameValueCollection)oJson)["products"] != "" ) {Line 3197: string[] products = Convert.ToString(((NameValueCollection)oJson)["products"]).Split(',');Line 3198: foreach( string product in products ) {Line 3199: string[] arr = product.Split('_');Line 3200: if ( codGrid == Convert.ToInt32(arr[0]) && Convert.ToInt32(arr[1]) > 0 ) {Line 3201: if ( maxQt > Convert.ToInt32(arr[1]) ) {Line 3202: maxQt = Convert.ToInt32(arr[1]);Line 3203: }Line 3204: }Line 3205: }Line 3206: }Line 3207: } catch ( Exception e ) {}Line 3208: }Line 3209: Line 3210: Line 3211: Line 3212: for( i = 1; ( i <= maxQt ); i++ ) {Line 3213: Sb.Append( "<option value='" + i + "'>" + i + "</option>" );Line 3214: }Line 3215: Sb.Append( "</select>" );Line 3216: Line 3217: Line 3218: Line 3219: } else {Line 3220: try{Line 3221: object oJson = JavaScriptDeserializer.DeserializeFromJson(sJson, typeof(NameValueCollection));Line 3222: if ( ((NameValueCollection)oJson)["qtIncrement"] != null && ((NameValueCollection)oJson)["qtIncrement"] != "" ) {Line 3223: qtStep = Convert.ToInt32(((NameValueCollection)oJson)["qtIncrement"]);Line 3224: }Line 3225: } catch ( Exception ex ) {}Line 3226: Line 3227: Sb.Append(Line 3228: String.Format(Line 3229: "<input type='number' step='{0}' min='0' class='n' size='3' id='r_0' name='r_0' value='0' onclick='select()'/>"Line 3230: , qtStepLine 3231: )Line 3232: );Line 3233: }Line 3234: Line 3235: Sb.Append( "</span>" );Line 3236: Line 3237: if ( shop.getConfig("UseItemAddedModal") == "true" ) {Line 3238: Sb.Append( "<span class='item_btn_buy'><a href=\"javascript:req_add2cart('" + shop.Http + "{$thisConfig}'," + shopId + ",'{$cartId}'," + codGrid + ",'r_0'," + Convert.ToString(shop.UseEG).ToLower() + "," + shop.UseFC + ",0, null);\"><img src='/octopus/design/images/" + shopId + "/cart_buy.gif' alt='' /></a></span>" );Line 3239: } else {Line 3240: Sb.Append( "<span class='item_btn_buy'><a href=\"javascript:req_addItem('" + shop.Http + "{$thisConfig}'," + shopId + ",'{$cartId}'," + codGrid + ",'r_0'," + Convert.ToString(shop.UseEG).ToLower() + "," + shop.UseFC + ",0);\"><img src='/octopus/design/images/" + shopId + "/cart_buy.gif' alt='' /></a></span>" );Line 3241: }Line 3242: Line 3243: Sb.Append( "</div>\n" );Line 3244: Line 3245: if( shop.Next.wishlist != null ) {Line 3246: Sb.Append( string.Format(Line 3247: @"Line 3248: <div class='wishlist_add_item'>Line 3249: <a href='/wishlist/add-item/?id={0}' onclick='wl_add(event, {0})'><span>ADD_TO_WISHLIST</span></a>Line 3250: </div>Line 3251: ", codGridLine 3252: ) );Line 3253: }Line 3254: break;Line 3255: Line 3256: Line 3257: Line 3258: case 2:Line 3259: Sb.Append(" <div id='inStockNotification'>\n");Line 3260: Sb.Append(" <table>\n");Line 3261: Sb.Append(" <tr><th colspan='2'><a id='selflink_inStockNotification'>Avise-me ao chegar</a></th></tr>\n");Line 3262: Sb.Append(" <tr><td colspan='2'>Preencha os campos abaixo para receber um email notificando que este produto está disponível.</td></tr>\n");Line 3263: Sb.Append(" <tr><td align='right'><b>Nome:</b></td><td><input name='nome' type='text' class='a' /></td></tr>\n");Line 3264: Sb.Append(" <tr><td align='right'><b>Email:</b></td><td><input name='email' type='text' class='a' /></td></tr>\n");Line 3265: Sb.Append(" <tr><td align='right'><b>Telefone:</b></td><td><input name='phone' type='text' class='a' /></td></tr>\n");Line 3266: Sb.Append(" <tr><td colspan='2' align='right'><a href='javascript:inStockNotification(" + shopId + "," + codGrid + ");'><img src='/octopus/design/images/" + shopId + "/form_send.gif' alt='' /></a></td></tr>\n");Line 3267: Sb.Append(" </table>\n");Line 3268: Sb.Append(" </div>\n");Line 3269: break;Line 3270: Line 3271: Line 3272: Line 3273: case 3:Line 3274: Sb.Append(" <p id='onRequestMessage'>Para maiores detalhes sobre a aquisição deste produto, entre em contato via <span class='phone'>telefone: " + shop.Phone + " ou</span> <a href='/octopus/{$thisConfig}&mi=CNT'>email</a>.</p>\n");Line 3275: Line 3276: Line 3277: break;Line 3278: }Line 3279: Line 3280: return Sb.ToString();Line 3281: }Line 3282: Line 3283: // VER TAMBEM __parcels.aspxLine 3284: public static decimal Juros_Composto(decimal Vp, decimal j, int n) {Line 3285: //return Vp / n * (decimal)Math.Pow( Convert.ToDouble( 1 + j ), Convert.ToDouble(n ) );Line 3286: //return Vp * ( ( j * (decimal)Math.Pow( Convert.ToDouble( 1 + j ), Convert.ToDouble(n) ) ) / ( (decimal)Math.Pow( Convert.ToDouble( 1 + j ), Convert.ToDouble(n) ) - 1 ) );Line 3287: return Vp * j / ( 1 - 1 / (decimal)Math.Pow(Convert.ToDouble(1 + j), Convert.ToDouble(n)) );Line 3288: }Line 3289: Line 3290: public static string Parcels(int shopId, int codGrid, decimal price, decimal discRate, ShopSetup shop) {Line 3291: int i=0;string ndd="";for(i=0;i<shop.NDD;i++)ndd+="0";Line 3292: Line 3293: StringBuilder Sb = new StringBuilder();Line 3294: Line 3295: int thisStockQt = 1;Line 3296: if (shop.UseSC)thisStockQt=Stock.Qt(shop.Path,codGrid);Line 3297: Line 3298: if (thisStockQt>0) {Line 3299: string iValue = "";Line 3300: string query = "";Line 3301: Line 3302: Sb.Append(" <div id='details-text-parcels'> \n");Line 3303: Sb.Append(" <h4 class='details-parcels-title'>Parcelamento no cartão de crédito.</h4>");Line 3304: Sb.Append(" <ul class='details-parcels-body'> \n");Line 3305: Line 3306: SqlConnection conn = new SqlConnection(shop.Path);Line 3307: conn.Open();Line 3308: Line 3309: query = @"Line 3310: SELECT DISTINCTLine 3311: times,Line 3312: interest,Line 3313: vtransl AS ccvtransl,Line 3314: ( SELECT name FROM sys_payInfos WITH (NOLOCK) WHERE codPayment = 1 ) AS name,Line 3315: ( SELECT factor FROM sys_payInfos WITH (NOLOCK) WHERE codPayment = 1 ) AS factor,Line 3316: ( SELECT vtransl FROM sys_payInfos WITH (NOLOCK) WHERE codPayment = 1 ) AS vtranslLine 3317: FROM sys_parcels WITH (NOLOCK)Line 3318: WHERE [value] <= @priceLine 3319: ORDER BY times ASCLine 3320: ";Line 3321: Line 3322: i = 0;Line 3323: Line 3324: SqlCommand cmd = new SqlCommand(query, conn);Line 3325: cmd.Parameters.Add(new SqlParameter("@price", SqlDbType.Real));Line 3326: cmd.Parameters["@price"].Value = (1-discRate/100)*price;Line 3327: SqlDataReader rdr = cmd.ExecuteReader();Line 3328: while(rdr.Read()) {Line 3329: Line 3330: if ((decimal)rdr["interest"] > 0) {Line 3331: iValue = (int)rdr["times"] +"x de "+ shop.CurrType + string.Format( "{0:0.00}"Line 3332: , Juros_Composto( ( (1 - discRate / 100) * price * (decimal)rdr["factor"] + (decimal)rdr["vtransl"] ), (decimal)rdr["interest"] / 100, (int)rdr["times"]) + (decimal)rdr["ccvtransl"] ) + " c/juros (taxa de "+ string.Format( "{0:0.00}", (decimal)rdr["interest"] ) +"% a.m.)";Line 3333: } else {Line 3334: iValue = (int)rdr["times"] +"x de "+ shop.CurrType + string.Format(Line 3335: "{0:0.00}"Line 3336: , ( (1 - discRate / 100) * price * (decimal)rdr["factor"] + (decimal)rdr["vtransl"] ) / (int)rdr["times"] + (decimal)rdr["ccvtransl"]Line 3337: );Line 3338: if ( (int)rdr["times"] > 1 ) {Line 3339: iValue += "<em class='no-interest'></em>";Line 3340: }Line 3341: }Line 3342: Sb.Append(" <li class='" + ( (i++%2 == 0)?"even":"odd" ) + "'>" + iValue + "</li> \n");Line 3343: }Line 3344: rdr.Close();Line 3345: conn.Close();Line 3346: Line 3347: Sb.Append(" </ul> \n");Line 3348: Sb.Append(" </div> \n");Line 3349: }Line 3350: return Sb.ToString();Line 3351: }Line 3352: Line 3353: public static string[,] Selects(string path, string codComp) {Line 3354: string[] options = ZenTools.Split(ZenTools.Left(codComp, codComp.Length),';');Line 3355: string[,] output = new string[options.Length,2];Line 3356: Line 3357: string query = "";Line 3358: SqlCommand cmd = null;Line 3359: SqlDataReader rdr = null;Line 3360: Line 3361: SqlConnection conn = new SqlConnection(path);Line 3362: conn.Open();Line 3363: Line 3364: query = @"Line 3365: SELECTLine 3366: tbl_selects.codSelect,Line 3367: tbl_selects.[desc] AS SelectDescLine 3368: FROM tbl_selects WITH (NOLOCK)Line 3369: INNER JOIN tbl_selectOptions ON tbl_selects.codSelect = tbl_selectOptions.codSelectLine 3370: WHERE (tbl_selectOptions.codOption = @codOption)Line 3371: ";Line 3372: cmd = new SqlCommand(query, conn);Line 3373: cmd.Parameters.Add(new SqlParameter("@codOption", SqlDbType.Int));Line 3374: Line 3375: for(int i=0; i<options.Length; i++) {Line 3376: cmd.Parameters["@codOption"].Value = options[i];Line 3377: rdr = cmd.ExecuteReader();Line 3378: if (rdr.Read()) {Line 3379: output[i,0] = Convert.ToString(rdr["codSelect"]);Line 3380: output[i,1] = Convert.ToString(rdr["SelectDesc"]);Line 3381: }Line 3382: rdr.Close();Line 3383: }Line 3384: Line 3385: conn.Close();Line 3386: Line 3387: return output;Line 3388: }Line 3389: Line 3390: Line 3391: public static string Select(Line 3392: int shopId,Line 3393: string path,Line 3394: string selectsList,Line 3395: int codOption,Line 3396: int codProd,Line 3397: string codCompApproach,Line 3398: int imageDepth,Line 3399: int levels,Line 3400: int level,Line 3401: int userGroup,Line 3402: ShopSetup shopLine 3403: ) {Line 3404: string[] selects = ZenTools.Split(selectsList,';');Line 3405: string[] availability;Line 3406: string iFunction = "";Line 3407: bool useSelsCtrl = false;Line 3408: StringBuilder Sb = new StringBuilder();Line 3409: Line 3410: if ( shop.getConfig("UseSelectsControl") != "" && shop.getConfig("UseSelectsControl").ToLower() == "true" ) {Line 3411: useSelsCtrl = true;Line 3412: }Line 3413: Line 3414: iFunction = "getNextSelect(" + shopId + ", '" + selectsList + "', " + codProd + ", " + imageDepth + ", " + levels + ", " + (level + 1) + ", 0, '{$thisConfig}', " + ( useSelsCtrl ? "true" : "false" ) + ");";Line 3415: Line 3416: if ( levels == (level + 1) ) iFunction = "getApproach(" +shopId+ ", " +codProd+ ", " +imageDepth+ ", " +levels+ ", 0, '{$thisConfig}');";Line 3417: Line 3418: // set zoom image srcLine 3419: iFunction += "(function(){var b=$('details_images_big_img');if (b && zoomSrc)zoomSrc=b.src.replace('/b/', '/z/');})();";Line 3420: Line 3421: if ( useSelsCtrl ) {Line 3422: Sb.Append( "<select class='a _selectsctrl_' name='s" + level + "' onchange=\"javascript:" + iFunction + "\"><option value='0'>Selecione</option>" );Line 3423: } else {Line 3424: Sb.Append( "<select class='a' name='s" + level + "' onchange=\"javascript:" + iFunction + "\">" );Line 3425: }Line 3426: Line 3427: SqlConnection conn = new SqlConnection(path);Line 3428: conn.Open();Line 3429: Line 3430: string query = @"Line 3431: SELECTLine 3432: codOption,Line 3433: [desc] AS DescOption,Line 3434: ( SELECT count(codGrid) FROM tbl_grid G WITH (NOLOCK) WHERE G.active = 1 AND G.codProd = @codProd AND codComp LIKE @codApproach + CAST(SO.codOption AS nvarchar(32)) + ';%' ) AS boolLine 3435: FROM tbl_selectOptions SO WITH (NOLOCK)Line 3436: WHERE (codSelect = @codSelect)Line 3437: ORDER BY dspOrder, [desc]Line 3438: ";Line 3439: Line 3440: string codOptionCollection = "";Line 3441: Line 3442: SqlCommand cmd = new SqlCommand(query, conn);Line 3443: Line 3444: cmd.Parameters.Add(new SqlParameter("@codProd", SqlDbType.Int));Line 3445: cmd.Parameters["@codProd"].Value = codProd;Line 3446: Line 3447: cmd.Parameters.Add(new SqlParameter("@codApproach", SqlDbType.NVarChar));Line 3448: cmd.Parameters["@codApproach"].Value = codCompApproach;Line 3449: Line 3450: cmd.Parameters.Add(new SqlParameter("@codSelect", SqlDbType.Int));Line 3451: cmd.Parameters["@codSelect"].Value = selects[level];Line 3452: Line 3453: SqlDataReader rdr = cmd.ExecuteReader();Line 3454: while(rdr.Read()) {Line 3455: // if ( Details.CodCompApproachExist(path, codProd, codCompApproach + (int)rdr["codOption"] + ";") ) {Line 3456: if ( (int)rdr["bool"] > 0 ) {Line 3457: Sb.Append( "<option data-cp='" + codProd + "' data-cca='" + codCompApproach + "' value='" + (int)rdr["codOption"] + "'" );Line 3458: Line 3459: if (codOption==(int)rdr["codOption"])Line 3460: Sb.Append( " selected='selected'" );Line 3461: Line 3462: Sb.Append( ">" + Convert.ToString(rdr["DescOption"]) );Line 3463: Line 3464: availability = availabilityStatus( path, CodProdCodCompApproach2CodGrid( shopId, codProd, codCompApproach + Convert.ToString(rdr["codOption"]), shop ), userGroup );Line 3465: if ( (levels == (level + 1)) && (Convert.ToInt32(availability[0]) > 1) ) Sb.Append( " ( " + availability[1] + " ) ");Line 3466: Line 3467: Sb.Append( "</option>" );Line 3468: }Line 3469: }Line 3470: Line 3471: rdr.Close();Line 3472: conn.Close();Line 3473: Line 3474: Sb.Append( "</select>" );Line 3475: Line 3476: return Sb.ToString();Line 3477: }Line 3478: Line 3479: public static bool CodCompApproachExist(string path, int codProd, string codCompApproach) {Line 3480: bool output = false;Line 3481: Line 3482: SqlConnection conn = new SqlConnection(path);Line 3483: conn.Open();Line 3484: Line 3485: string query = "SELECT count(*) FROM tbl_grid WITH (NOLOCK) WHERE (codProd = @codProd) AND (codComp LIKE @codCompApproach)";Line 3486: SqlCommand cmd = new SqlCommand(query, conn);Line 3487: cmd.Parameters.Add(new SqlParameter("@codProd", SqlDbType.Int));Line 3488: cmd.Parameters.Add(new SqlParameter("@codCompApproach", SqlDbType.NVarChar));Line 3489: cmd.Parameters["@codProd"].Value = codProd;Line 3490: cmd.Parameters["@codCompApproach"].Value = codCompApproach + "%";Line 3491: int t = Convert.ToInt32(cmd.ExecuteScalar());Line 3492: Line 3493: conn.Close();Line 3494: Line 3495: if ( t > 0 ) output = true;Line 3496: return output;Line 3497: }Line 3498: Line 3499: public static int CodProdCodCompApproach2CodGrid(int shopId, int codProd, string codCompApproach, ShopSetup shop) {Line 3500: SqlConnection conn = new SqlConnection(shop.Path);Line 3501: conn.Open();Line 3502: Line 3503: string query = "SELECT TOP 1 codGrid FROM tbl_grid WITH (NOLOCK) WHERE (active = 1) AND (codProd = @codProd) AND (codComp LIKE @codCompApproach) ORDER BY codComp;";Line 3504: SqlCommand cmd = new SqlCommand(query, conn);Line 3505: cmd.Parameters.Add(new SqlParameter("@codProd", SqlDbType.Int));Line 3506: cmd.Parameters.Add(new SqlParameter("@codCompApproach", SqlDbType.NVarChar));Line 3507: cmd.Parameters["@codProd"].Value = codProd;Line 3508: cmd.Parameters["@codCompApproach"].Value = codCompApproach + "%";Line 3509: int output = Convert.ToInt32(cmd.ExecuteScalar());Line 3510: Line 3511: conn.Close();Line 3512: Line 3513: return output;Line 3514: }Line 3515: Line 3516: public static string[] availabilityStatus(string path, int codGrid, int userGroup) {Line 3517: string[] output = new string[2];Line 3518: Line 3519: SqlConnection conn = new SqlConnection(path);Line 3520: conn.Open();Line 3521: Line 3522: string query = @"Line 3523: SELECTLine 3524: tbl_prices.codAvailability,Line 3525: sys_prodAvailability.[desc]Line 3526: FROM tbl_prices WITH (NOLOCK)Line 3527: INNER JOIN sys_prodAvailability WITH (NOLOCK) ON tbl_prices.codAvailability = sys_prodAvailability.codAvailabilityLine 3528: WHERE (codGrid = @codGrid) AND (codGroup = @codGroup)Line 3529: ";Line 3530: Line 3531: SqlCommand cmd = new SqlCommand(query, conn);Line 3532: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 3533: cmd.Parameters.Add(new SqlParameter("@codGroup", SqlDbType.Int));Line 3534: cmd.Parameters["@codGrid"].Value = codGrid;Line 3535: cmd.Parameters["@codGroup"].Value = userGroup;Line 3536: SqlDataReader rdr = cmd.ExecuteReader();Line 3537: Line 3538: if ( rdr.Read() ) {Line 3539: output[0] = Convert.ToString(rdr[0]);Line 3540: output[1] = Convert.ToString(rdr[1]);Line 3541: }Line 3542: Line 3543: rdr.Close();Line 3544: conn.Close();Line 3545: Line 3546: return output;Line 3547: }Line 3548: Line 3549: public static dynamic getBrand(string path, int codBrand) {Line 3550: dynamic output = JsonConvert.DeserializeObject<JObject>("{}");Line 3551: Line 3552: SqlConnection conn = new SqlConnection(path);Line 3553: conn.Open();Line 3554: SqlCommand cmd = new SqlCommand("SELECT * FROM tbl_brands WHERE codBrand = @codBrand", conn);Line 3555: cmd.Parameters.Add(new SqlParameter("@codBrand", SqlDbType.Int));Line 3556: cmd.Parameters["@codBrand"].Value = codBrand;Line 3557: SqlDataReader rdr = cmd.ExecuteReader();Line 3558: if( rdr.Read() ) {Line 3559: for( int i = 0; i < rdr.FieldCount; i++ ) {Line 3560: switch( rdr.GetName(i) ) {Line 3561: case "clob":Line 3562: output[rdr.GetName(i)] = JsonConvert.DeserializeObject<JObject>( Convert.ToString(rdr[i]) );Line 3563: break;Line 3564: default:Line 3565: output[rdr.GetName(i)] = Convert.ToString(rdr[i]);Line 3566: break;Line 3567: }Line 3568: }Line 3569: }Line 3570: rdr.Close();Line 3571: conn.Close();Line 3572: return output;Line 3573: }Line 3574: Line 3575: // DEPRECATEDLine 3576: public static string getBrandName(string path, int codBrand) {Line 3577: string output = "";Line 3578: Line 3579: SqlConnection conn = new SqlConnection(path);Line 3580: conn.Open();Line 3581: Line 3582: string query = "SELECT name FROM tbl_brands WITH (NOLOCK) WHERE codBrand = @codBrand";Line 3583: Line 3584: SqlCommand cmd = new SqlCommand(query, conn);Line 3585: cmd.Parameters.Add(new SqlParameter("@codBrand", SqlDbType.Int));Line 3586: cmd.Parameters["@codBrand"].Value = codBrand;Line 3587: Line 3588: output = Convert.ToString(cmd.ExecuteScalar());Line 3589: Line 3590: conn.Close();Line 3591: Line 3592: return output;Line 3593: }Line 3594: Line 3595: public static string getCodGridColl(string path, int codProd) {Line 3596: string output = "";Line 3597: StringBuilder Sb = new StringBuilder();Line 3598: Line 3599: SqlConnection conn = new SqlConnection(path);Line 3600: conn.Open();Line 3601: Line 3602: SqlCommand cmd = new SqlCommand(Line 3603: "SELECT codGrid FROM tbl_grid WITH (NOLOCK) WHERE (codProd = " + codProd + ") AND active = 1",Line 3604: connLine 3605: );Line 3606: SqlDataReader rdr = cmd.ExecuteReader();Line 3607: Line 3608: while( rdr.Read() ) {Line 3609: Sb.Append( "," + Convert.ToString(rdr["codGrid"]) );Line 3610: }Line 3611: Line 3612: output = Sb.ToString();Line 3613: Line 3614: rdr.Close();Line 3615: conn.Close();Line 3616: Line 3617: return ( output.Length > 0 ? output.Substring(1) : "" );Line 3618: }Line 3619: Line 3620: private static bool isActive(string path, int codGrid) {Line 3621: bool output = false;Line 3622: Line 3623: SqlConnection conn = new SqlConnection(path);Line 3624: conn.Open();Line 3625: Line 3626: string query = "SELECT active FROM tbl_grid WITH (NOLOCK) WHERE codGrid = @codGrid";Line 3627: Line 3628: SqlCommand cmd = new SqlCommand(query, conn);Line 3629: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 3630: cmd.Parameters["@codGrid"].Value = codGrid;Line 3631: Line 3632: output = Convert.ToBoolean(cmd.ExecuteScalar());Line 3633: Line 3634: conn.Close();Line 3635: Line 3636: return output;Line 3637: }Line 3638: Line 3639: public static string getBreadCrumb(int shopId, int idProd, string thisConfig, ShopSetup shop) {Line 3640: string menuHref = "";Line 3641: string menu1st = "";Line 3642: string menu2nd = "";Line 3643: string menu3rd = "";Line 3644: string jsonLd = "";Line 3645: Line 3646: int cod1stMenu = 0;Line 3647: int cod2ndMenu = 0;Line 3648: int cod3rdMenu = 0;Line 3649: Line 3650: StringBuilder Sb = new StringBuilder();Line 3651: Line 3652: SqlConnection conn = new SqlConnection(shop.Path);Line 3653: conn.Open();Line 3654: Line 3655: string query = @"Line 3656: SELECT TOP 1Line 3657: R.cod1stMenu,Line 3658: R.cod2ndMenu,Line 3659: R.cod3rdMenu,Line 3660: M1.[desc] AS menu1st,Line 3661: M2.[desc] AS menu2nd,Line 3662: M3.[desc] AS menu3rdLine 3663: FROM rel_menusWprod R WITH (NOLOCK)Line 3664: INNER JOIN tbl_menu1st M1 WITH (NOLOCK) ON R.cod1stMenu = M1.cod1stMenuLine 3665: LEFT OUTER JOIN tbl_menu2nd M2 WITH (NOLOCK) ON R.cod2ndMenu = M2.cod2ndMenu AND M2.dspOrder < 9999Line 3666: LEFT OUTER JOIN tbl_menu3rd M3 WITH (NOLOCK) ON R.cod3rdMenu = M3.cod3rdMenu AND M3.dspOrder < 9999Line 3667: WHERE (R.codProd = @codProd) AND (M1.dspOrder < 9999)Line 3668: ORDER BYLine 3669: CASE WHEN NOT R.cod3rdMenu IS NULL THEN 0 ELSE 1 END,Line 3670: CASE WHEN NOT R.cod2ndMenu IS NULL THEN 0 ELSE 1 ENDLine 3671: ";Line 3672: Line 3673: SqlCommand cmd = new SqlCommand(query, conn);Line 3674: cmd.Parameters.Add(new SqlParameter("@codProd", SqlDbType.Int));Line 3675: cmd.Parameters["@codProd"].Value = idProd;Line 3676: SqlDataReader rdr = cmd.ExecuteReader();Line 3677: Line 3678: if ( rdr.Read() ) {Line 3679: menu1st = Convert.ToString(rdr["menu1st"]);Line 3680: cod1stMenu = Convert.ToInt32(rdr["cod1stMenu"]);Line 3681: if ( rdr["cod2ndMenu"] != DBNull.Value && Convert.ToInt32(rdr["cod2ndMenu"]) > 0 ) {Line 3682: menu2nd = Convert.ToString(rdr["menu2nd"]);Line 3683: cod2ndMenu = Convert.ToInt32(rdr["cod2ndMenu"]);Line 3684: Line 3685: if ( rdr["cod3rdMenu"] != DBNull.Value && Convert.ToInt32(rdr["cod3rdMenu"]) > 0 ) {Line 3686: menu3rd = Convert.ToString(rdr["menu3rd"]);Line 3687: cod3rdMenu = Convert.ToInt32(rdr["cod3rdMenu"]);Line 3688: }Line 3689: }Line 3690: Line 3691: jsonLd = @"Line 3692: {Line 3693: '@context': 'http://schema.org',Line 3694: '@type': 'BreadcrumbList',Line 3695: 'itemListElement': [Line 3696: {$0}Line 3697: {$1}Line 3698: {$2}Line 3699: {$3}Line 3700: ]Line 3701: }Line 3702: ";Line 3703: Line 3704: string sName = shop.Http.Replace("http://", "").Replace("/octopus/", "");Line 3705: string sUrl = shop.Http.Replace("/octopus/", "");Line 3706: string listItem = @"Line 3707: {Line 3708: '@type': 'ListItem',Line 3709: 'position': '{$pos}',Line 3710: 'item': {Line 3711: '@id': '{$url}',Line 3712: 'name': '{$name}'Line 3713: }Line 3714: }Line 3715: ";Line 3716: jsonLd = jsonLd.Replace( "{$0}", listItem.Replace( "{$name}", sName ).Replace( "{$pos}", "1" ).Replace( "{$url}", sUrl ) );Line 3717: Line 3718: menuHref = Generics.menuAnchorHref( shop.Http, ZenTools.urlize(menu1st), "", "", shopId, cod1stMenu, 0, 0, thisConfig );Line 3719: Sb.Append( "<div class='breadcrumb'>" + Environment.NewLine );Line 3720: Sb.Append( "<a href='" + sUrl + "'><span>" + sName + "</span></a>" + Environment.NewLine );Line 3721: Sb.Append( "<a href='" + menuHref + "'><span>" + menu1st + "</span></a>" + Environment.NewLine );Line 3722: jsonLd = jsonLd.Replace( "{$1}", "," + listItem.Replace( "{$name}", menu1st ).Replace( "{$pos}", "2" ).Replace( "{$url}", menuHref ) );Line 3723: Line 3724: if ( cod2ndMenu > 0 ) {Line 3725: menuHref = Generics.menuAnchorHref( shop.Http, ZenTools.urlize(menu1st), ZenTools.urlize(menu2nd), "", shopId, cod1stMenu, cod2ndMenu, 0, thisConfig );Line 3726: Sb.Append( "<a href='" + menuHref + "'><span>" + menu2nd + "</span></a>" + Environment.NewLine );Line 3727: jsonLd = jsonLd.Replace( "{$2}", "," + listItem.Replace( "{$name}", menu2nd ).Replace( "{$pos}", "3" ).Replace( "{$url}", menuHref ) );Line 3728: Line 3729: if ( cod3rdMenu > 0 ) {Line 3730: menuHref = Generics.menuAnchorHref(Line 3731: shop.Http,Line 3732: ZenTools.urlize(menu1st),Line 3733: ZenTools.urlize(menu2nd),Line 3734: ZenTools.urlize(menu3rd),Line 3735: shopId,Line 3736: cod1stMenu,Line 3737: cod2ndMenu,Line 3738: cod3rdMenu,Line 3739: thisConfigLine 3740: );Line 3741: Sb.Append( "<a href='" + menuHref + "'><span>" + menu3rd + "</span></a>" + Environment.NewLine );Line 3742: jsonLd = jsonLd.Replace( "{$3}", "," + listItem.Replace( "{$name}", menu3rd ).Replace( "{$pos}", "4" ).Replace( "{$url}", menuHref ) );Line 3743: }Line 3744: }Line 3745: Sb.Append( "</div>" );Line 3746: Line 3747: jsonLd = jsonLd.Replace("{$2}", "").Replace("{$3}", "").Replace("{$4}", "");Line 3748: Line 3749: Sb.Append( Environment.NewLine );Line 3750: Sb.Append( "<script type='application/ld+json'>" );Line 3751: Sb.Append( jsonLd.Replace("\'", "\"") );Line 3752: Sb.Append( "</script" + ">" );Line 3753: Sb.Append( Environment.NewLine );Line 3754: }Line 3755: Line 3756: rdr.Close();Line 3757: conn.Close();Line 3758: Line 3759: return Sb.ToString();Line 3760: }Line 3761: Line 3762: public static string getProductMenu(string path, int idProd) {Line 3763: string output = "";Line 3764: Line 3765: SqlConnection conn = new SqlConnection(path);Line 3766: conn.Open();Line 3767: Line 3768: string query = @"Line 3769: SELECT TOP 1Line 3770: R.cod1stMenu,Line 3771: R.cod2ndMenu,Line 3772: R.cod3rdMenu,Line 3773: M1.[desc] AS menu1st,Line 3774: M2.[desc] AS menu2nd,Line 3775: M3.[desc] AS menu3rdLine 3776: FROM rel_menusWprod R WITH (NOLOCK)Line 3777: INNER JOIN tbl_menu1st M1 WITH (NOLOCK) ON R.cod1stMenu = M1.cod1stMenuLine 3778: LEFT OUTER JOIN tbl_menu2nd M2 WITH (NOLOCK) ON R.cod2ndMenu = M2.cod2ndMenuLine 3779: LEFT OUTER JOIN tbl_menu3rd M3 WITH (NOLOCK) ON R.cod3rdMenu = M3.cod3rdMenuLine 3780: WHERE (R.codProd = @codProd)Line 3781: ORDER BYLine 3782: CASE WHEN NOT R.cod3rdMenu IS NULL THEN 0 ELSE 1 END,Line 3783: CASE WHEN NOT R.cod2ndMenu IS NULL THEN 0 ELSE 1 ENDLine 3784: ";Line 3785: Line 3786: SqlCommand cmd = new SqlCommand(query, conn);Line 3787: cmd.Parameters.Add(new SqlParameter("@codProd", SqlDbType.Int));Line 3788: cmd.Parameters["@codProd"].Value = idProd;Line 3789: SqlDataReader rdr = cmd.ExecuteReader();Line 3790: Line 3791: if ( rdr.Read() ) {Line 3792: output = Convert.ToString(rdr["menu1st"]).Trim();Line 3793: if ( rdr["cod2ndMenu"] != DBNull.Value && Convert.ToInt32(rdr["cod2ndMenu"]) > 0 ) {Line 3794: output = Convert.ToString(rdr["menu2nd"]).Trim();Line 3795: if ( rdr["cod3rdMenu"] != DBNull.Value && Convert.ToInt32(rdr["cod3rdMenu"]) > 0 ) {Line 3796: output = Convert.ToString(rdr["menu3rd"]).Trim();Line 3797: }Line 3798: }Line 3799: }Line 3800: rdr.Close();Line 3801: conn.Close();Line 3802: Line 3803: return output;Line 3804: }Line 3805: Line 3806: public static string getProductMenus(string path, int idProd) {Line 3807: string output = "";Line 3808: Line 3809: StringBuilder Sb = new StringBuilder();Line 3810: SqlConnection conn = new SqlConnection(path);Line 3811: conn.Open();Line 3812: Line 3813: string query = @"Line 3814: SELECTLine 3815: rel_menusWprod.cod1stMenu,Line 3816: rel_menusWprod.cod2ndMenu,Line 3817: rel_menusWprod.cod3rdMenuLine 3818: FROM rel_menusWprod WITH (NOLOCK)Line 3819: WHERE (rel_menusWprod.codProd = @codProd)Line 3820: ";Line 3821: Line 3822: SqlCommand cmd = new SqlCommand(query, conn);Line 3823: cmd.Parameters.Add(new SqlParameter("@codProd", SqlDbType.Int));Line 3824: cmd.Parameters["@codProd"].Value = idProd;Line 3825: SqlDataReader rdr = cmd.ExecuteReader();Line 3826: Line 3827: while( rdr.Read() ) {Line 3828: if ( rdr["cod1stMenu"] != DBNull.Value ) {Line 3829: Sb.Append( "," + Convert.ToString(rdr["cod1stMenu"]) );Line 3830: Line 3831: if ( rdr["cod2ndMenu"] != DBNull.Value ) {Line 3832: Sb.Append( "_" + Convert.ToString(rdr["cod2ndMenu"]) );Line 3833: Line 3834: if ( rdr["cod3rdMenu"] != DBNull.Value ) {Line 3835: Sb.Append( "_" + Convert.ToString(rdr["cod3rdMenu"]) );Line 3836: }Line 3837: }Line 3838: }Line 3839: }Line 3840: Line 3841: rdr.Close();Line 3842: conn.Close();Line 3843: Line 3844: output = Sb.ToString();Line 3845: if ( output.Length > 0 ) {Line 3846: output = output.Substring(1);Line 3847: }Line 3848: return output;Line 3849: }Line 3850: Line 3851: }Line 3852: Line 3853: Line 3854: Line 3855: Line 3856: Line 3857: Line 3858: Line 3859: Line 3860: Line 3861: Line 3862: public class ExtDetails {Line 3863: public ExtDetails() {}Line 3864: Line 3865: public static string Images(int shopId, int codGrid, string imgSize, string prodDesc, ShopSetup shop) {Line 3866: string[] img_sizes = shop.getImgSize(imgSize.ToUpper());Line 3867: string img_src = "";Line 3868: string img_alt = "";Line 3869: string img_zoom_fn = "";Line 3870: StringBuilder Sb = new StringBuilder();Line 3871: Line 3872: img_src = Details.getProductImgSrc(shopId, codGrid, shop, out img_alt);Line 3873: if ( img_alt == "" )Line 3874: img_alt = prodDesc;Line 3875: Line 3876: img_zoom_fn = "javascript:void(0);";Line 3877: if ( shop.UseZoom )Line 3878: img_zoom_fn = string.Format("javascript:_popZoom({0}, {1}, \"{2}\")", shopId, codGrid, img_src.Replace("{size}", "z"));Line 3879: Line 3880: Sb.Append(Line 3881: string.Format(Line 3882: @"Line 3883: <a href='{0}'>Line 3884: <img id='extra_details_{1}_image' src='{2}' alt='{3}' width='{4}' height='{5}' />Line 3885: </a>Line 3886: ",Line 3887: img_zoom_fn,Line 3888: imgSize,Line 3889: img_src.Replace("{size}", imgSize),Line 3890: img_alt,Line 3891: img_sizes[0],Line 3892: img_sizes[1]Line 3893: )Line 3894: );Line 3895: Line 3896: if ( shop.UseZoom ) {Line 3897: Sb.Append(Line 3898: string.Format(Line 3899: @"Line 3900: <div id='{0}'>Line 3901: <a href='{1}'>Line 3902: <img src='/octopus/design/images/{2}/{3}.gif' alt='' />Line 3903: </a>Line 3904: </div>Line 3905: ",Line 3906: (imgSize.Equals("b") ? "details_images_zoom" : "extra-details-images-zoom"),Line 3907: img_zoom_fn,Line 3908: shopId,Line 3909: (imgSize.Equals("b") ? "details_zoom" : "extra_details_zoom")Line 3910: )Line 3911: );Line 3912: }Line 3913: Line 3914: if ( imgSize.Equals("b") )Line 3915: Sb.Append( "<script type='text/javascript'>zoomSrc = '" + img_src + "';</" + "script>\n");Line 3916: Line 3917: return Sb.ToString();Line 3918: }Line 3919: Line 3920: public static string Texts(int shopId, int codGrid, int userGroup, string codComp, ShopSetup shop, string userAgent, Promotion P) {Line 3921: int i=0;string ndd="";for(i=0; i<shop.NDD; i++)ndd+="0";Line 3922: Line 3923: // deprecated 2014-08-18 (extra details cache)Line 3924: //int userGroup = 1; if (userId>0)userGroup=UserSetup.UserGroup(shop.Path, userId);Line 3925: Line 3926: int iCodGrid = 0;Line 3927: int iStockQt = 0;Line 3928: int maxQt = 100;Line 3929: decimal thisPrice = 0;Line 3930: decimal thisDiscRate = 0;Line 3931: Line 3932: StringBuilder Sb = new StringBuilder();Line 3933: Line 3934: SqlConnection conn = new SqlConnection(shop.Path);Line 3935: conn.Open();Line 3936: Line 3937: string query = @"Line 3938: SELECTLine 3939: sys_prodStatus.[desc] AS StatusDesc,Line 3940: tbl_details.[desc] AS DetDesc,Line 3941: tbl_grid.codGrid,Line 3942: tbl_grid.codProd,Line 3943: tbl_prices.prc,Line 3944: tbl_prices.object,Line 3945: tbl_prices.discRate,Line 3946: tbl_grid.codProd,Line 3947: tbl_prod.imgDepth,Line 3948: tbl_prod.codBrand,Line 3949: sys_prodStatus.codStatus,Line 3950: sys_prodAvailability.codAvailability,Line 3951: sys_prodAvailability.[desc] AS AvailDesc,Line 3952: sys_stock.qtLine 3953: FROM tbl_prod WITH (NOLOCK)Line 3954: INNER JOIN tbl_grid WITH (NOLOCK) ON tbl_prod.codProd = tbl_grid.codProdLine 3955: INNER JOIN tbl_prices WITH (NOLOCK) ON tbl_grid.codGrid = tbl_prices.codGridLine 3956: INNER JOIN sys_prodAvailability WITH (NOLOCK) ON tbl_prices.codAvailability = sys_prodAvailability.codAvailabilityLine 3957: INNER JOIN sys_prodStatus WITH (NOLOCK) ON tbl_prices.codStatus = sys_prodStatus.codStatusLine 3958: INNER JOIN tbl_details WITH (NOLOCK) ON tbl_prod.codProd = tbl_details.codProdLine 3959: INNER JOIN sys_stock WITH (NOLOCK) ON tbl_grid.codGrid = sys_stock.codGridLine 3960: WHERE (tbl_grid.active = 1) AND (tbl_details.codTitle = 1) AND (tbl_grid.codGrid = @codGrid) AND (tbl_prices.codGroup = @userGroup)Line 3961: ";Line 3962: Line 3963: SqlCommand cmd = new SqlCommand(query, conn);Line 3964: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 3965: cmd.Parameters.Add(new SqlParameter("@userGroup", SqlDbType.Int));Line 3966: cmd.Parameters["@codGrid"].Value = codGrid;Line 3967: cmd.Parameters["@userGroup"].Value = userGroup;Line 3968: Line 3969: SqlDataReader rdr = cmd.ExecuteReader();Line 3970: Line 3971: if (rdr.Read()) {Line 3972: iCodGrid = (int)rdr["codGrid"];Line 3973: Line 3974: if ( (int)rdr["codStatus"] != 4 ) {Line 3975: Sb.Append( " <div class='extra_details_text_availability'>\n" );Line 3976: Line 3977: if ( (int)rdr["codAvailability"] < 2 && (decimal)rdr["prc"] > 0 ) {Line 3978: Sb.Append( " <span class='item_qt_buy'><label for='qt_" + iCodGrid + "'><font>Quantidade:</font></label></span>" );Line 3979: Sb.Append( " <select size='1' id='qt_" + iCodGrid + "' class='extra_details_qt' name='r_1' data-shopId='" + shopId + "' data-userGroup='" + userGroup + "' data-gridId='" + iCodGrid + "'>\n" );Line 3980: Sb.Append( " <option value='0'>0</option>\n" );Line 3981: Line 3982: iStockQt = Convert.ToInt32( rdr["qt"] );Line 3983: if ( null != shop.getConfig("StockMaxQt") && !shop.getConfig("StockMaxQt").Equals("") )Line 3984: maxQt = Convert.ToInt32(shop.getConfig("StockMaxQt"));Line 3985: if ( iStockQt < maxQt )Line 3986: maxQt = iStockQt;Line 3987: Line 3988: Line 3989: Line 3990: // check promotionsLine 3991: try {Line 3992: object oJson = JavaScriptDeserializer.DeserializeFromJson(Line 3993: P.getEffect(Line 3994: Convert.ToInt32(rdr["codBrand"]),Line 3995: Details.getProductMenus(shop.Path, Convert.ToInt32(rdr["codProd"])),Line 3996: codGrid,Line 3997: 0,Line 3998: ""Line 3999: ),Line 4000: typeof(NameValueCollection)Line 4001: );Line 4002: Line 4003: // set product quantity by promotionLine 4004: if ( Convert.ToInt32(((NameValueCollection)oJson)["id"]) > 0 && ((NameValueCollection)oJson)["products"] != "" ) {Line 4005: string[] products = Convert.ToString(((NameValueCollection)oJson)["products"]).Split(',');Line 4006: foreach( string product in products ) {Line 4007: string[] arr = product.Split('_');Line 4008: if ( iCodGrid == Convert.ToInt32(arr[0]) && Convert.ToInt32(arr[1]) > 0 ) {Line 4009: if ( maxQt > Convert.ToInt32(arr[1]) ) {Line 4010: maxQt = Convert.ToInt32(arr[1]);Line 4011: }Line 4012: }Line 4013: }Line 4014: }Line 4015: } catch ( Exception e ) {}Line 4016: Line 4017: Line 4018: Line 4019: for( i = 1;i <= maxQt; i++ ) {Line 4020: Sb.Append( " <option value='" + iCodGrid + ";" + i + "'>" + i + "</option>\n" );Line 4021: }Line 4022: Line 4023: Sb.Append( " </select>\n" );Line 4024: }Line 4025: Line 4026: Sb.Append( " <div class='extra_details_text_availability_label'>" + (string)rdr["AvailDesc"] + "</div>\n" );Line 4027: Sb.Append( " </div>\n" );Line 4028: }Line 4029: Line 4030: if ( null != codComp && !codComp.Equals("") ) {Line 4031: Sb.Append( " <div class='extra_details_text_product'>\n" );Line 4032: Sb.Append( " <h3>" + Select(shopId, shop.Path, codComp, (int)rdr["codProd"]) + "</h3>\n" );Line 4033: Sb.Append( " </div>\n" );Line 4034: }Line 4035: Line 4036: if ((int)rdr["codAvailability"] < 2 && (decimal)rdr["prc"] > 0) {Line 4037: thisPrice = Convert.ToDecimal(rdr["prc"]);Line 4038: thisDiscRate = Convert.ToDecimal(rdr["discRate"]);Line 4039: Line 4040: Line 4041: Line 4042: // check promotionsLine 4043: try {Line 4044: object oJson = JavaScriptDeserializer.DeserializeFromJson(Line 4045: P.getEffect(Line 4046: Convert.ToInt32(rdr["codBrand"]),Line 4047: Details.getProductMenus(shop.Path, Convert.ToInt32(rdr["codProd"])),Line 4048: codGrid,Line 4049: 0,Line 4050: ""Line 4051: ),Line 4052: typeof(NameValueCollection)Line 4053: );Line 4054: Line 4055: if ( Convert.ToInt32(((NameValueCollection)oJson)["id"]) > 0 ) {Line 4056: switch( Convert.ToString(((NameValueCollection)oJson)["discountType"]) ) {Line 4057: case "percent":Line 4058: thisDiscRate += Convert.ToDecimal(((NameValueCollection)oJson)["discountValue"]);Line 4059: break;Line 4060: case "fixed" : break;Line 4061: case "freeShipping": break;Line 4062: }Line 4063: Line 4064: // display active promotionLine 4065: Sb.Append( "\n<div class='extra_details_promotion'>\n" );Line 4066: Sb.Append( " <span class='extra_details_promotion_name'>" + Convert.ToString(((NameValueCollection)oJson)["name"]) + "</span>\n" );Line 4067: Sb.Append( " <span class='extra_details_promotion_description'>" + Convert.ToString(((NameValueCollection)oJson)["description"]) + "</span>\n" );Line 4068: Sb.Append( "</div>\n\n" );Line 4069: }Line 4070: Line 4071: } catch ( Exception e ) {Line 4072: thisPrice = Convert.ToDecimal(rdr["prc"]);Line 4073: }Line 4074: Line 4075: Line 4076: Line 4077: Sb.Append( Prices(shopId, (int)rdr["codGrid"], thisPrice, thisDiscRate, shop) );Line 4078: }Line 4079: Line 4080: if ( (int)rdr["codAvailability"] == 2 || (decimal)rdr["prc"] == 0 ) {Line 4081: Sb.Append( " <div class='extra_details_in_stock_notification'>\n" );Line 4082: Line 4083: if (shop.getConfig("InStockNotification").Length > 0) {Line 4084: string sJson = Convert.ToString( shop.getConfig("InStockNotification") );Line 4085: try {Line 4086: object oJson = JavaScriptDeserializer.DeserializeFromJson(sJson, typeof(NameValueCollection));Line 4087: Sb.Append( " <a href='#' onclick=\"javascript:popInStockNotification(" + shopId + "," + codGrid + "," + ((NameValueCollection)oJson)["popWidth"] + "," + ((NameValueCollection)oJson)["popHeight"] + "); return false;\" class='in_stock_notification'><font >Avise-me ao chegar</font></a>\n" );Line 4088: } catch (Exception e) {}Line 4089: }Line 4090: Line 4091: Sb.Append( " </div>\n" );Line 4092: }Line 4093: }Line 4094: Line 4095: rdr.Close();Line 4096: conn.Close();Line 4097: Line 4098: return Sb.ToString();Line 4099: }Line 4100: Line 4101: public static string Prices(int shopId, int codGrid, decimal price, decimal discRate, ShopSetup shop) {Line 4102: int i=0;string ndd="";for(i=0; i<shop.NDD; i++)ndd+="0";Line 4103: Line 4104: StringBuilder Sb = new StringBuilder();Line 4105: Line 4106: int thisStockQt = 1;Line 4107: if (shop.UseSC)thisStockQt=Stock.Qt(shop.Path,codGrid);Line 4108: Line 4109: if (thisStockQt>0) {Line 4110: Line 4111: SqlConnection conn = new SqlConnection(shop.Path);Line 4112: conn.Open();Line 4113: Line 4114: string query = @"Line 4115: SELECTLine 4116: tbl_acronyms.[desc] AS acroDesc,Line 4117: tbl_acronyms.acronymLine 4118: FROM tbl_grid WITH (NOLOCK)Line 4119: INNER JOIN tbl_prod WITH (NOLOCK) ON tbl_prod.codProd = tbl_grid.codProdLine 4120: INNER JOIN tbl_acronyms WITH (NOLOCK) ON tbl_prod.codUn = tbl_acronyms.codUnLine 4121: WHERE tbl_grid.codGrid = @codGridLine 4122: ";Line 4123: SqlCommand cmd = new SqlCommand(query, conn);Line 4124: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 4125: cmd.Parameters["@codGrid"].Value = codGrid;Line 4126: SqlDataReader rdr = cmd.ExecuteReader();Line 4127: Line 4128: string acroDesc = "";Line 4129: string acronym = "";Line 4130: Line 4131: if (rdr.Read()) {Line 4132: acroDesc = (string)rdr[0];Line 4133: acronym = (string)rdr[1];Line 4134: }Line 4135: Line 4136: rdr.Close();Line 4137: Line 4138: Sb.Append( " <div class='extra_details_text_price'>\n" );Line 4139: Sb.Append( "<span class='label'>por:</span><span id='variant-" + codGrid + "-prc' class='price'>"+ shop.CurrType + string.Format("{0:0."+ ndd +"}",((1-discRate/100)*price)) + "</span><acronym title="+ acroDesc +"> / "+ acronym +" </acronym>\n" ); //(A - B)Line 4140: Sb.Append( " </div>\n" );Line 4141: Line 4142: conn.Close();Line 4143: Line 4144: if( shop.Next.wishlist != null ) {Line 4145: Sb.Append( string.Format(Line 4146: @"Line 4147: <div class='wishlist_add_item'>Line 4148: <a href='/wishlist/add-item/?id={0}' onclick='wl_add(event, {0})'><span>ADD_TO_WISHLIST</span></a>Line 4149: </div>Line 4150: ", codGridLine 4151: ) );Line 4152: }Line 4153: Line 4154: if( shop.Next.favorites != null ) {Line 4155: Sb.Append( string.Format(Line 4156: @"Line 4157: <div class='favorites_add_item'>Line 4158: <a href='/wishlist/save-favorite-item/?id={0}' onclick='fav_add(event, {0})'><span>ADD_TO_FAVORITES</span></a>Line 4159: </div>Line 4160: ", codGridLine 4161: ) );Line 4162: }Line 4163: Line 4164: }Line 4165: Line 4166: return Sb.ToString();Line 4167: }Line 4168: Line 4169: public static string Select(int shopId, string path, string codComp, int codProd) {Line 4170: string[] options = ZenTools.Split(codComp,';');Line 4171: Line 4172: StringBuilder Sb = new StringBuilder();Line 4173: Line 4174: SqlConnection conn = new SqlConnection(path);Line 4175: conn.Open();Line 4176: Line 4177: for( int i = 0; i < options.Length;i++ ) {Line 4178: string query = "SELECT codOption, [desc] AS DescOption FROM tbl_selectOptions WITH (NOLOCK) WHERE (codOption = @codOption) ORDER BY dspOrder, [desc]";Line 4179: SqlCommand cmd = new SqlCommand(query, conn);Line 4180: cmd.Parameters.Add(new SqlParameter("@codOption", SqlDbType.Int));Line 4181: cmd.Parameters["@codOption"].Value = options[i];Line 4182: SqlDataReader rdr = cmd.ExecuteReader();Line 4183: Line 4184: if (rdr.Read()) {Line 4185: Sb.Append( (string)rdr["DescOption"] + " " );Line 4186: }Line 4187: Line 4188: rdr.Close();Line 4189: }Line 4190: Line 4191: conn.Close();Line 4192: Line 4193: return Sb.ToString();Line 4194: }Line 4195: Line 4196: public static void GVariants(ref SqlConnection conn, ref dynamic GProduct) {Line 4197: string composition = Convert.ToString(GProduct.composition);Line 4198: if( composition == "" )Line 4199: return;Line 4200: Line 4201: composition = composition.Replace(";", ",").Substring( 0, composition.Length - 1 );Line 4202: Line 4203: SqlCommand cmd = new SqlCommand( string.Format(Line 4204: @"Line 4205: SELECTLine 4206: S.[desc] AS variant,Line 4207: SO.[desc] AS valueLine 4208: FROM tbl_selectOptions SO WITH (NOLOCK)Line 4209: JOIN tbl_selects S ON SO.[codSelect] = S.[codSelect]Line 4210: WHERE SO.[codOption] IN ({0})Line 4211: ", composition ), conn );Line 4212: SqlDataReader rdr = cmd.ExecuteReader();Line 4213: while( rdr.Read() ) {Line 4214: switch( Convert.ToString(rdr["variant"]).ToLower().Split(' ')[0] ) {Line 4215: case "cor":Line 4216: case "cores":Line 4217: GProduct.color = Convert.ToString(rdr["value"]);Line 4218: break;Line 4219: Line 4220: // case "tamanho":Line 4221: // case "tamanhos":Line 4222: // GProduct.size = Convert.ToString(rdr["value"]);Line 4223: // break;Line 4224: Line 4225: default:Line 4226: /* Nothing to do. */Line 4227: break;Line 4228: }Line 4229: }Line 4230: rdr.Close();Line 4231: }Line 4232: Line 4233: }Line 4234: Line 4235: Line 4236: Line 4237: Line 4238: Line 4239: Line 4240: Line 4241: Line 4242: Line 4243: Line 4244: public class QuickView {Line 4245: public QuickView(){}Line 4246: Line 4247: public static string Select(Line 4248: int shopId,Line 4249: string path,Line 4250: string selectsList,Line 4251: int codOption,Line 4252: int codProd,Line 4253: string codCompApproach,Line 4254: int imageDepth,Line 4255: int levels,Line 4256: int level,Line 4257: int userGroup,Line 4258: ShopSetup shopLine 4259: ) {Line 4260: string[] selects = ZenTools.Split(selectsList,';');Line 4261: string[] availability;Line 4262: Line 4263: string fn = "";Line 4264: int iCodGrid = 0;Line 4265: bool useSelsCtrl = false;Line 4266: Line 4267: StringBuilder Sb = new StringBuilder();Line 4268: Line 4269: if ( levels > 1 ) {Line 4270: fn = String.Format(Line 4271: "getNextSelect({0}, {1}, {2})"Line 4272: , codProd, levels, (level + 1)Line 4273: );Line 4274: } else {Line 4275: fn = "getApproach(this.value)";Line 4276: }Line 4277: Line 4278: if ( shop.getConfig("UseSelectsControl") != "" && shop.getConfig("UseSelectsControl").ToLower() == "true" ) {Line 4279: useSelsCtrl = true;Line 4280: }Line 4281: Line 4282: if ( useSelsCtrl ) {Line 4283: Sb.Append("<select class='a _selectsctrl_ quickview_select' name='s" + level + "' onchange='" + fn + "'><option value='0'>Selecione</option>" );Line 4284: } else {Line 4285: Sb.Append( "<select class='a quickview_select' name='s" + level + "' onchange='" + fn + "'>" );Line 4286: }Line 4287: Line 4288: SqlConnection conn = new SqlConnection(path);Line 4289: conn.Open();Line 4290: Line 4291: string query = @"Line 4292: SELECTLine 4293: codOption,Line 4294: [desc] AS DescOption,Line 4295: ( SELECT count(codGrid) FROM tbl_grid G WITH (NOLOCK) WHERE G.active = 1 AND G.codProd = @codProd AND codComp LIKE @codApproach + CAST(SO.codOption AS nvarchar(32)) + ';%' ) AS boolLine 4296: FROM tbl_selectOptions SO WITH (NOLOCK)Line 4297: WHERE (codSelect = @codSelect)Line 4298: ORDER BY dspOrder, [desc]Line 4299: ";Line 4300: Line 4301: string codOptionCollection = "";Line 4302: Line 4303: SqlCommand cmd = new SqlCommand(query, conn);Line 4304: Line 4305: cmd.Parameters.Add(new SqlParameter("@codProd", SqlDbType.Int));Line 4306: cmd.Parameters["@codProd"].Value = codProd;Line 4307: Line 4308: cmd.Parameters.Add(new SqlParameter("@codApproach", SqlDbType.NVarChar));Line 4309: cmd.Parameters["@codApproach"].Value = codCompApproach;Line 4310: Line 4311: cmd.Parameters.Add(new SqlParameter("@codSelect", SqlDbType.Int));Line 4312: cmd.Parameters["@codSelect"].Value = selects[level];Line 4313: Line 4314: SqlDataReader rdr = cmd.ExecuteReader();Line 4315: Line 4316: while(rdr.Read()) {Line 4317: if ( (int)rdr["bool"] > 0 ) {Line 4318: iCodGrid = Details.CodProdCodCompApproach2CodGrid( shopId, codProd, codCompApproach + Convert.ToString(rdr["codOption"]), shop );Line 4319: availability = Details.availabilityStatus( path, iCodGrid, userGroup );Line 4320: Line 4321: Sb.Append(Line 4322: String.Format(Line 4323: "<option value='{0}' {1}>{2} {3}</option>{4}"Line 4324: , ( levels > 1 ? (int)rdr["codOption"] : iCodGrid )Line 4325: , ( codOption == (int)rdr["codOption"] ? "selected='selected'" : "" )Line 4326: , Convert.ToString(rdr["DescOption"])Line 4327: , ( (levels == (level + 1)) && (Convert.ToInt32(availability[0]) > 1) ? "( " + availability[1] + " )" : "" )Line 4328: , Environment.NewLineLine 4329: )Line 4330: );Line 4331: Line 4332: }Line 4333: }Line 4334: Line 4335: rdr.Close();Line 4336: conn.Close();Line 4337: Line 4338: Sb.Append( "</select>" );Line 4339: Line 4340: return Sb.ToString();Line 4341: }Line 4342: Line 4343: public static string Availability(int shopId, int codGrid, int userGroup, ShopSetup shop, string promotion_sJson) {Line 4344: StringBuilder Sb = new StringBuilder();Line 4345: Line 4346: int i = 0;Line 4347: int maxQt = 100;Line 4348: int iStockQt = 10;Line 4349: int codAvailability = 0;Line 4350: int qtStep = 1;Line 4351: Line 4352: decimal iPrice = 0;Line 4353: string[] thisAvailability = new string[3];Line 4354: string sJson = "";Line 4355: Line 4356: SqlConnection conn = new SqlConnection(shop.Path);Line 4357: conn.Open();Line 4358: Line 4359: string query = "SELECT prc, codAvailability, object FROM tbl_prices WITH (NOLOCK) WHERE codGroup = @userGroup AND codGrid = @codGrid";Line 4360: SqlCommand cmd = new SqlCommand(query, conn);Line 4361: cmd.Parameters.Add(new SqlParameter("@userGroup", SqlDbType.Int));Line 4362: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 4363: cmd.Parameters["@userGroup"].Value = userGroup;Line 4364: cmd.Parameters["@codGrid"].Value = codGrid;Line 4365: SqlDataReader rdr = cmd.ExecuteReader();Line 4366: if (rdr.Read()) {Line 4367: iPrice = (decimal)rdr["prc"];Line 4368: codAvailability = (int)rdr["codAvailability"];Line 4369: sJson = Convert.ToString(rdr["object"]);Line 4370: }Line 4371: rdr.Close();Line 4372: Line 4373: query = "SELECT [desc] FROM sys_prodAvailability WITH (NOLOCK) ORDER BY codAvailability";Line 4374: cmd = new SqlCommand(query,conn);Line 4375: rdr = cmd.ExecuteReader();Line 4376: while(rdr.Read())thisAvailability[i++]=(string)rdr["desc"];Line 4377: rdr.Close();Line 4378: Line 4379: conn.Close();Line 4380: Line 4381: if (shop.UseSC)iStockQt=Stock.Qt(shop.Path, codGrid);Line 4382: Line 4383: if ( null != shop.getConfig("StockMaxQt") && !shop.getConfig("StockMaxQt").Equals("") )Line 4384: maxQt = Convert.ToInt32(shop.getConfig("StockMaxQt"));Line 4385: if ( iStockQt < maxQt )Line 4386: maxQt = iStockQt;Line 4387: Line 4388: if (codAvailability==1 && iPrice<=0)codAvailability=2;Line 4389: Line 4390: Sb.Append( "<div id='quickview-texts-availability-label-" + codAvailability + "'><label>Disponibilidade: </label>" + thisAvailability[codAvailability-1] + "</div>\n" );Line 4391: Line 4392: if ( codAvailability == 1 ) {Line 4393: Sb.Append( "<div id='quickview-texts-availability-field'><span class='item_qt_buy'><label for='r_0'><font>Quantidade:</font></label>" );Line 4394: Line 4395: if (shop.isRetail) {Line 4396: Sb.Append( "<select id='r_0' name='r_0'>" );Line 4397: Line 4398: Line 4399: Line 4400: // set product quantity by promotionLine 4401: if ( promotion_sJson != "{}" ) {Line 4402: try {Line 4403: object oJson = JavaScriptDeserializer.DeserializeFromJson(promotion_sJson, typeof(NameValueCollection));Line 4404: if ( ((NameValueCollection)oJson)["products"] != "" ) {Line 4405: string[] products = Convert.ToString(((NameValueCollection)oJson)["products"]).Split(',');Line 4406: foreach( string product in products ) {Line 4407: string[] arr = product.Split('_');Line 4408: if ( codGrid == Convert.ToInt32(arr[0]) && Convert.ToInt32(arr[1]) > 0 ) {Line 4409: if ( maxQt > Convert.ToInt32(arr[1]) ) {Line 4410: maxQt = Convert.ToInt32(arr[1]);Line 4411: }Line 4412: }Line 4413: }Line 4414: }Line 4415: } catch ( Exception e ) {}Line 4416: }Line 4417: Line 4418: Line 4419: Line 4420: for( i = 1; ( i <= maxQt ); i++ ) {Line 4421: Sb.Append( "<option value='" + i + "'>" + i + "</option>" );Line 4422: }Line 4423: Sb.Append( "</select>" );Line 4424: } else {Line 4425: try {Line 4426: object oJson = JavaScriptDeserializer.DeserializeFromJson(sJson, typeof(NameValueCollection));Line 4427: if ( ((NameValueCollection)oJson)["qtIncrement"] != null && ((NameValueCollection)oJson)["qtIncrement"] != "" ) {Line 4428: qtStep = Convert.ToInt32(((NameValueCollection)oJson)["qtIncrement"]);Line 4429: }Line 4430: } catch ( Exception ex ) {}Line 4431: Line 4432: Sb.Append(Line 4433: String.Format(Line 4434: "<input type='number' step='{0}' min='0' class='n' size='3' id='r_0' name='r_0' value='' onclick='select()' />"Line 4435: , qtStepLine 4436: )Line 4437: );Line 4438: }Line 4439: Line 4440: Sb.Append( "</span>" );Line 4441: Sb.Append( "<button id='quickview-add2cart' class='item_btn_buy' onclick='req_addItem(" + codGrid + ")'>comprar</button>" );Line 4442: Sb.Append( "</div>\n" );Line 4443: }Line 4444: Line 4445: return Sb.ToString();Line 4446: }Line 4447: }Line 4448: Line 4449: Line 4450: Line 4451: Line 4452: Line 4453: Line 4454: Line 4455: Line 4456: Line 4457: Line 4458: public class Cart {Line 4459: public Cart() {}Line 4460: Line 4461: public static int Qt(string path, string cartId, int codGrid) {Line 4462: int output = 0;Line 4463: Line 4464: SqlConnection conn = new SqlConnection(path);Line 4465: conn.Open();Line 4466: Line 4467: string query = "SELECT qt FROM sys_cart WITH (NOLOCK) WHERE (cid = @cid) AND (codGrid = @codGrid)";Line 4468: SqlCommand cmd = new SqlCommand(query, conn);Line 4469: cmd.Parameters.Add(new SqlParameter("@cid", SqlDbType.NVarChar));Line 4470: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 4471: cmd.Parameters["@cid"].Value = cartId;Line 4472: cmd.Parameters["@codGrid"].Value = codGrid;Line 4473: Line 4474: output = Convert.ToInt32(cmd.ExecuteScalar());Line 4475: Line 4476: conn.Close();Line 4477: Line 4478: return output;Line 4479: }Line 4480: Line 4481: public static int ItemsQt(string path, string cartId) {Line 4482: int output = 0;Line 4483: Line 4484: SqlConnection conn = new SqlConnection(path);Line 4485: conn.Open();Line 4486: Line 4487: string query = "SELECT count(cid) FROM sys_cart WITH (NOLOCK) WHERE cid = @cid";Line 4488: SqlCommand cmd = new SqlCommand(query, conn);Line 4489: cmd.Parameters.Add(new SqlParameter("@cid", SqlDbType.NVarChar));Line 4490: cmd.Parameters["@cid"].Value = cartId;Line 4491: Line 4492: output = Convert.ToInt32(cmd.ExecuteScalar());Line 4493: Line 4494: conn.Close();Line 4495: Line 4496: return output;Line 4497: }Line 4498: Line 4499: public static string Add(int shopId, string cartId, int codGrid, int qt, ShopSetup shop) {Line 4500: return Add(shopId, cartId, codGrid, qt, 0, shop, null);Line 4501: }Line 4502: Line 4503: public static string Add(int shopId, string cartId, int codGrid, int qt, int idBt, ShopSetup shop, Promotion P) {Line 4504: int r = 0;Line 4505: string output = "";Line 4506: Line 4507: SqlConnection conn = new SqlConnection(shop.Path);Line 4508: conn.Open();Line 4509: Line 4510: try {Line 4511: if ( shop.UseSC ) {Line 4512: r = Stock.Qt(shop.Path, codGrid);Line 4513: if (r<qt)return "Estoque insuficiente. Apenas " + r + " disponveis.";Line 4514: }Line 4515: Line 4516: r = Cart.Qt(shop.Path, cartId, codGrid);Line 4517: if (r > 0) {Line 4518: if( shop.Next.webluto != null && Convert.ToBoolean(shop.Next.webluto.active) ) {Line 4519: output = "True";Line 4520: } else {Line 4521: output = Cart.Update(shopId,cartId,codGrid,qt+r,true, shop, P);Line 4522: }Line 4523: Line 4524: } else {Line 4525: string query = "INSERT INTO sys_cart (cid, codGrid, qt, dspOrder, idBt) VALUES (@cartId, @codGrid, @qt, GETDATE(), @idBt)";Line 4526: SqlCommand cmd = new SqlCommand(query, conn);Line 4527: cmd.Parameters.Add(new SqlParameter("@cartId", SqlDbType.NVarChar));Line 4528: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 4529: cmd.Parameters.Add(new SqlParameter("@qt", SqlDbType.Int));Line 4530: cmd.Parameters.Add(new SqlParameter("@idBt", SqlDbType.Int));Line 4531: cmd.Parameters["@cartId"].Value = cartId;Line 4532: cmd.Parameters["@codGrid"].Value = codGrid;Line 4533: cmd.Parameters["@qt"].Value = qt;Line 4534: cmd.Parameters["@idBt"].Value = idBt;Line 4535: r = cmd.ExecuteNonQuery();Line 4536: if ( r > 0 ) {Line 4537: output = "True";Line 4538: } else {Line 4539: output = "Erro na inclusão do produto. Favor tentar novamente.";Line 4540: }Line 4541: }Line 4542: } catch (Exception e) {Line 4543: output = "Item já adicionado. Por favor verifique o seu carrinho." + e;Line 4544: }Line 4545: Line 4546: conn.Close();Line 4547: Line 4548: return output;Line 4549: }Line 4550: Line 4551: public static bool Remove(int shopId, string cartId, int codGrid, ShopSetup shop) {Line 4552: SqlConnection conn = new SqlConnection(shop.Path);Line 4553: conn.Open();Line 4554: Line 4555: string query = "DELETE FROM sys_cart WHERE (cid = @cartId) AND (codGrid = @codGrid)";Line 4556: SqlCommand cmd = new SqlCommand(query, conn);Line 4557: cmd.Parameters.Add(new SqlParameter("@cartId", SqlDbType.NVarChar));Line 4558: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 4559: cmd.Parameters["@cartId"].Value = cartId;Line 4560: cmd.Parameters["@codGrid"].Value = codGrid;Line 4561: int r = cmd.ExecuteNonQuery();Line 4562: Line 4563: conn.Close();Line 4564: Line 4565: if (r>0)return true;Line 4566: else return false;Line 4567: }Line 4568: Line 4569: public static string Update(int shopId, string cartId, int codGrid, int qt, bool changeDspOrder, ShopSetup shop, Promotion P) {Line 4570: string output = "";Line 4571: string iRef = "";Line 4572: string iProdDesc = "";Line 4573: int r = 0;Line 4574: Line 4575: if (shop.UseSC) {Line 4576: r = Stock.Qt(shop.Path, codGrid);Line 4577: if (r<qt)return "ATENÇÃO - TEMOS SOMENTE: " + r + " UN(s) EM ESTOQUE. POR FAVOR CONFIRA SEU CARRINHO E TENTE NOVAMENTE.";Line 4578: }Line 4579: Line 4580: SqlConnection conn = new SqlConnection(shop.Path);Line 4581: conn.Open();Line 4582: Line 4583: Line 4584: Line 4585: // promotion product max quantityLine 4586: string query = @"Line 4587: SELECTLine 4588: tbl_grid.codGrid,Line 4589: tbl_grid.ref,Line 4590: tbl_prod.codProd,Line 4591: tbl_prod.[desc] AS prodDesc,Line 4592: tbl_prod.codBrandLine 4593: FROM tbl_grid WITH (NOLOCK)Line 4594: INNER JOIN tbl_prod WITH (NOLOCK) ON tbl_grid.codProd = tbl_prod.codProdLine 4595: WHERE (tbl_grid.codGrid = @codGrid)Line 4596: ";Line 4597: Line 4598: SqlCommand cmd = new SqlCommand(query, conn);Line 4599: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.NVarChar));Line 4600: cmd.Parameters["@codGrid"].Value = codGrid;Line 4601: SqlDataReader rdr = cmd.ExecuteReader();Line 4602: Line 4603: if ( rdr.Read() ) {Line 4604: iRef = ( rdr["ref"] != DBNull.Value && Convert.ToString(rdr["ref"]) != "" ? Convert.ToString(rdr["ref"]) : "-" );Line 4605: iProdDesc = Convert.ToString(rdr["prodDesc"]);Line 4606: Line 4607: // check promotionsLine 4608: try {Line 4609: object oJson = JavaScriptDeserializer.DeserializeFromJson(Line 4610: P.getEffect(Line 4611: Convert.ToInt32(rdr["codBrand"]),Line 4612: Details.getProductMenus(shop.Path, Convert.ToInt32(rdr["codProd"])),Line 4613: codGrid,Line 4614: qt,Line 4615: ""Line 4616: ),Line 4617: typeof(NameValueCollection)Line 4618: );Line 4619: Line 4620: if ( Convert.ToInt32(((NameValueCollection)oJson)["id"]) > 0 ) {Line 4621: if ( ((NameValueCollection)oJson)["products"] != null ) {Line 4622: string[] products = Convert.ToString(((NameValueCollection)oJson)["products"]).Split(',');Line 4623: foreach( string product in products ) {Line 4624: string[] arr = product.Split('_');Line 4625: if ( codGrid == Convert.ToInt32(arr[0]) && Convert.ToInt32(arr[1]) > 0 && qt > Convert.ToInt32(arr[1]) ) {Line 4626: rdr.Close();Line 4627: conn.Close();Line 4628: return "ATENÇÃO: A QUANTIDADE DO ITEM [ " + iProdDesc + " REF.: " + iRef + " ] ESTÁ LIMITADA A [ " + Convert.ToInt32(arr[1]) + " ] POR PEDIDO.";Line 4629: }Line 4630: }Line 4631: }Line 4632: }Line 4633: } catch ( Exception e ) { /* DEBUG */ }Line 4634: Line 4635: }Line 4636: rdr.Close();Line 4637: Line 4638: Line 4639: Line 4640: query = "";Line 4641: if (changeDspOrder)query = "UPDATE sys_cart SET qt = @qt, dspOrder = GETDATE() WHERE (cid = @cartId) AND (codGrid = @codGrid)";Line 4642: else query = "UPDATE sys_cart SET qt = @qt WHERE (cid = @cartId) AND (codGrid = @codGrid)";Line 4643: Line 4644: cmd = new SqlCommand(query, conn);Line 4645: cmd.Parameters.Add(new SqlParameter("@qt", SqlDbType.Int));Line 4646: cmd.Parameters.Add(new SqlParameter("@cartId", SqlDbType.NVarChar));Line 4647: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 4648: cmd.Parameters["@qt"].Value = qt;Line 4649: cmd.Parameters["@cartId"].Value = cartId;Line 4650: cmd.Parameters["@codGrid"].Value = codGrid;Line 4651: r = cmd.ExecuteNonQuery();Line 4652: if (r>0) {Line 4653: output = "True";Line 4654: } else {Line 4655: output = "Erro na atualizao do produto. Favor tentar novamente.";Line 4656: Line 4657: }Line 4658: conn.Close();Line 4659: Line 4660: return output;Line 4661: }Line 4662: Line 4663: public static bool Delete(int shopId, string cartId, ShopSetup shop) {Line 4664: SqlConnection conn = new SqlConnection(shop.Path);Line 4665: string query = "DELETE FROM sys_cart WHERE (cid = @cartId)";Line 4666: SqlCommand cmd = new SqlCommand(query, conn);Line 4667: Line 4668: cmd.Parameters.Add(new SqlParameter("@cartId", SqlDbType.NVarChar));Line 4669: cmd.Parameters["@cartId"].Value = cartId;Line 4670: cmd.Connection.Open();Line 4671: int r = cmd.ExecuteNonQuery();Line 4672: conn.Close();Line 4673: Line 4674: if (shop.UseEG) {Line 4675: if (Gifts.Delete(shopId,cartId,shop)) {Line 4676: if (r>0) {Line 4677: return true;Line 4678: } else {Line 4679: return false;Line 4680: }Line 4681: } else {Line 4682: return false;Line 4683: }Line 4684: } else {Line 4685: if (r>0) {Line 4686: return true;Line 4687: } else {Line 4688: return false;Line 4689: }Line 4690: }Line 4691: }Line 4692: Line 4693: public static string Body(Line 4694: int shopId,Line 4695: string cartId,Line 4696: int userId,Line 4697: ShopSetup shop,Line 4698: Promotion P,Line 4699: string ufLine 4700: ) {Line 4701: decimal a = 0;Line 4702: int b = 0;Line 4703: int c = 0;Line 4704: XmlDocument D = new XmlDocument();Line 4705: return Cart.Body( shopId, cartId, userId, false, out a, out b, out c, shop, P, uf, out D );Line 4706: }Line 4707: Line 4708: public static string Body(Line 4709: int shopId,Line 4710: string cartId,Line 4711: int userId,Line 4712: bool isStatic,Line 4713: out decimal sub_total,Line 4714: ShopSetup shop,Line 4715: Promotion P,Line 4716: string ufLine 4717: ) {Line 4718: int b = 0;Line 4719: int c = 0;Line 4720: XmlDocument D = new XmlDocument();Line 4721: return Cart.Body( shopId, cartId, userId, isStatic, out sub_total, out b, out c, shop, P, uf, out D );Line 4722: }Line 4723: Line 4724: public static string Body(Line 4725: int shopId,Line 4726: string cartId,Line 4727: int userId,Line 4728: out decimal sub_total,Line 4729: out int weight,Line 4730: out int volume,Line 4731: ShopSetup shop,Line 4732: Promotion P,Line 4733: string ufLine 4734: ) {Line 4735: XmlDocument D = new XmlDocument();Line 4736: return Cart.Body( shopId, cartId, userId, false, out sub_total, out weight, out volume, shop, P, uf, out D );Line 4737: }Line 4738: Line 4739: public static string Body(Line 4740: int shopId,Line 4741: string cartId,Line 4742: int userId,Line 4743: bool isStatic,Line 4744: out decimal sub_total,Line 4745: out int weight,Line 4746: out int volume,Line 4747: ShopSetup shop,Line 4748: Promotion P,Line 4749: string uf,Line 4750: out XmlDocument PreOrderLine 4751: ) {Line 4752: return Cart.Body(shopId, cartId, userId, isStatic, out sub_total, out weight, out volume, shop, P, uf, out PreOrder, false);Line 4753: }Line 4754: Line 4755: public static string Body(Line 4756: int shopId,Line 4757: string cartId,Line 4758: int userId,Line 4759: bool isStatic,Line 4760: out decimal sub_total,Line 4761: out int weight,Line 4762: out int volume,Line 4763: ShopSetup shop,Line 4764: Promotion P,Line 4765: string uf,Line 4766: out XmlDocument PreOrder,Line 4767: bool freeShippingRefusedLine 4768: ) {Line 4769: string output = "";Line 4770: string ndd = "";Line 4771: string i_item_href = "";Line 4772: string i_img = "";Line 4773: string i_img_src = "";Line 4774: string i_img_alt = "";Line 4775: string i_ref = "";Line 4776: string i_name = "";Line 4777: string i_variant = "";Line 4778: string i_desc = "";Line 4779: string i_row = "";Line 4780: string i_row_frag = "";Line 4781: string taxes_header = "";Line 4782: string gift_info = "";Line 4783: string promotion = "";Line 4784: string promotion_info = "";Line 4785: Line 4786: int i = 0;Line 4787: string[] imgSizes = null;Line 4788: Line 4789: int e_weight = 0;Line 4790: int e_volume = 0;Line 4791: int qtStep = 1;Line 4792: Line 4793: decimal i_item_prc = 0;Line 4794: decimal i_item_disc_rate = 0;Line 4795: decimal i_item_prc_full = 0;Line 4796: decimal i_item_qty = 0;Line 4797: decimal i_item_total = 0;Line 4798: decimal prom_fixed_disc = 0;Line 4799: decimal sub_total_ac = 0;Line 4800: Line 4801: bool freeShipping = false;Line 4802: Line 4803: object taxes_total = JavaScriptDeserializer.DeserializeFromJson( "{}", typeof(NameValueCollection) );Line 4804: Line 4805: /* GOOGLE_TAG_MANAGER */Line 4806: JArray gtm_cart_products = new JArray();Line 4807: /* GOOGLE_TAG_MANAGER */Line 4808: Line 4809: StringBuilder Sb_rows = new StringBuilder();Line 4810: StringBuilder Sb_taxes = new StringBuilder();Line 4811: StringDictionary Sd_taxes_total = new StringDictionary();Line 4812: StringDictionary Sd_proms = new StringDictionary();Line 4813: XmlDocument Taxes = new XmlDocument();Line 4814: Line 4815: // pre_order load xmlLine 4816: XmlDocument Root = new XmlDocument();Line 4817: XmlElement XE_pre_order = (XmlElement)Root.AppendChild( Root.CreateElement("pre_order") );Line 4818: XmlElement XE_items = (XmlElement)XE_pre_order.AppendChild( Root.CreateElement("items") );Line 4819: XmlElement XE_taxes = (XmlElement)XE_pre_order.AppendChild( Root.CreateElement("taxes") );Line 4820: Line 4821: Line 4822: Line 4823: for( i = 0; i < shop.NDD; i++ ) {Line 4824: ndd += "0";Line 4825: }Line 4826: Line 4827: if ( shop.getConfig("Taxes") != "" ) {Line 4828: try {Line 4829: StringBuilder Sb = new StringBuilder();Line 4830: Line 4831: Taxes.LoadXml( shop.getConfig("Taxes") );Line 4832: foreach( XmlNode Node in Taxes.SelectNodes("/taxes/*") ) {Line 4833: Sb.Append( String.Format( "<th class='cart_body_col_tax'>{0}</th>", Node.SelectSingleNode("@presentation").InnerText ) );Line 4834: }Line 4835: Line 4836: taxes_header = Sb.ToString();Line 4837: } catch ( Exception ex ) {Line 4838: taxes_header = "<!-- Oops! load taxes config failed -->";Line 4839: }Line 4840: }Line 4841: Line 4842: SqlConnection conn = new SqlConnection(shop.Path);Line 4843: conn.Open();Line 4844: Line 4845: string query = String.Format(Line 4846: @"Line 4847: SELECTLine 4848: tbl_prod.codBrandLine 4849: , tbl_prod.[desc] AS DescProdLine 4850: , tbl_brands.name AS brandNameLine 4851: , tbl_grid.codGridLine 4852: , tbl_grid.refLine 4853: , tbl_grid.codProdLine 4854: , tbl_grid.codCompLine 4855: , sys_cart.qtLine 4856: , sys_cart.codGridLine 4857: , tbl_prices.discRateLine 4858: , tbl_prices.prcLine 4859: , tbl_grid.weightLine 4860: , tbl_grid.vXLine 4861: , tbl_grid.vYLine 4862: , tbl_grid.vZLine 4863: , tbl_acronyms.[desc] AS acroDescLine 4864: , tbl_acronyms.acronymLine 4865: , tbl_prices.objectLine 4866: FROM tbl_prices WITH (NOLOCK)Line 4867: INNER JOIN tbl_grid WITH (NOLOCK) ON tbl_prices.codGrid = tbl_grid.codGridLine 4868: INNER JOIN tbl_prod WITH (NOLOCK) ON tbl_grid.codProd = tbl_prod.codProdLine 4869: INNER JOIN tbl_brands WITH (NOLOCK) ON tbl_prod.codBrand = tbl_brands.codBrandLine 4870: INNER JOIN sys_cart WITH (NOLOCK) ON tbl_grid.codGrid = sys_cart.codGridLine 4871: INNER JOIN tbl_acronyms WITH (NOLOCK) ON tbl_prod.codUn = tbl_acronyms.codUnLine 4872: WHERE (tbl_grid.active = 1) AND (tbl_prices.codGroup = @userGroup) AND (sys_cart.cid = @cartId)Line 4873: ORDER BY sys_cart.dspOrder ASC, tbl_prod.[desc]Line 4874: "Line 4875: , shop.OwnerLine 4876: );Line 4877: Line 4878: SqlCommand cmd = new SqlCommand(query, conn);Line 4879: cmd.Parameters.Add(new SqlParameter("@userGroup", SqlDbType.Int));Line 4880: cmd.Parameters.Add(new SqlParameter("@cartId", SqlDbType.NVarChar));Line 4881: cmd.Parameters["@userGroup"].Value = UserSetup.UserGroup(shop.Path, userId);Line 4882: cmd.Parameters["@cartId"].Value = cartId;Line 4883: SqlDataReader rdr = cmd.ExecuteReader();Line 4884: Line 4885: if (!rdr.Read()) {Line 4886: // assign outputLine 4887: output = String.Format(Line 4888: @"Line 4889: <h2>Seu carrinho está vazio!</h2>Line 4890: <p>Para inserir produtos em seu carrinho, navegue pelas categorias do site ou faça uma pesquisa para encontrar o produto desejado.</p>Line 4891: <a href='/'><span>Continuar navegando</span></a>Line 4892: "Line 4893: );Line 4894: Line 4895: // dispose unmanaged resourcesLine 4896: rdr.Close();Line 4897: conn.Close();Line 4898: Line 4899: // assign output paramsLine 4900: sub_total = 0;Line 4901: weight = 0;Line 4902: volume = 0;Line 4903: PreOrder = Root;Line 4904: Line 4905: return output;Line 4906: } else {Line 4907: do {Line 4908: i_ref = "";Line 4909: if (null!=rdr["ref"]&&!Convert.ToString(rdr["ref"]).Equals(""))Line 4910: i_ref=Convert.ToString(rdr["ref"]);Line 4911: Line 4912: i_desc = (string)rdr["DescProd"];Line 4913: i_name = i_desc;Line 4914: i_item_href = String.Format(Line 4915: "{0}/{1}.{2}.html",Line 4916: shop.Http.Replace("/octopus/", ""), ZenTools.urlize(i_desc), Convert.ToInt32(rdr["codGrid"])Line 4917: );Line 4918: Line 4919: if ( null != rdr["codComp"] && !Convert.ToString(rdr["codComp"]).Equals("") ) {Line 4920: i_variant = Generics.GridDescription( shop.Path, Convert.ToString(rdr["codComp"]) );Line 4921: i_desc += " " + i_variant;Line 4922: i_variant = Regex.Replace( i_variant, @"^\[|\]$", "" ).Trim();Line 4923: }Line 4924: Line 4925: i_item_prc = (decimal)rdr["prc"];Line 4926: i_item_disc_rate = (decimal)rdr["discRate"];Line 4927: Line 4928: //--( Using AjaxPro.dll to deserialize a json from tbl_prices )Line 4929: string sJson = "{}";Line 4930: if ( rdr["object"] != DBNull.Value && Convert.ToString(rdr["object"]) != "" ) {Line 4931: sJson = Convert.ToString(rdr["object"]);Line 4932: }Line 4933: Line 4934: // item imageLine 4935: imgSizes = shop.getImgSize("T");Line 4936: i_img_src = Details.getProductImgSrc(shopId, Convert.ToInt32(rdr["codGrid"]), shop, out i_img_alt);Line 4937: if ( i_img_alt == "" )Line 4938: i_img_alt = i_desc;Line 4939: i_img = string.Format(Line 4940: "<img src='{0}' alt='{1}' width='{2}' height='{3}' />",Line 4941: i_img_src.Replace("{size}", "t"), i_img_alt, imgSizes[0], imgSizes[1]Line 4942: );Line 4943: Line 4944: try {Line 4945: object oJson = JavaScriptDeserializer.DeserializeFromJson(sJson, typeof(NameValueCollection));Line 4946: if (Line 4947: Convert.ToBoolean(((NameValueCollection)oJson)["freeShipping"])Line 4948: && Convert.ToString(((NameValueCollection)oJson)["freeShippingType"]) != "RESTRICTED"Line 4949: ) {Line 4950: freeShipping = true;Line 4951: }Line 4952: Line 4953: if ( ((NameValueCollection)oJson)["qtIncrement"] != null && ((NameValueCollection)oJson)["qtIncrement"] != "" ) {Line 4954: qtStep = Convert.ToInt32(((NameValueCollection)oJson)["qtIncrement"]);Line 4955: }Line 4956: } catch (Exception e) {}Line 4957: Line 4958: Line 4959: Line 4960: // check promotionsLine 4961: promotion = "";Line 4962: try {Line 4963: object oJson = JavaScriptDeserializer.DeserializeFromJson(Line 4964: P.getEffect(Line 4965: Convert.ToInt32(rdr["codBrand"]),Line 4966: Details.getProductMenus(shop.Path, Convert.ToInt32(rdr["codProd"])),Line 4967: Convert.ToInt32(rdr["codGrid"]),Line 4968: Convert.ToInt32(rdr["qt"]),Line 4969: cartIdLine 4970: ),Line 4971: typeof(NameValueCollection)Line 4972: );Line 4973: Line 4974: //Sb.Append( ((NameValueCollection)oJson)["debug"] );Line 4975: Line 4976: if ( Convert.ToInt32(((NameValueCollection)oJson)["id"]) > 0 ) {Line 4977: switch( Convert.ToString(((NameValueCollection)oJson)["discountType"]) ) {Line 4978: case "percent":Line 4979: i_item_disc_rate += Convert.ToDecimal(((NameValueCollection)oJson)["discountValue"]);Line 4980: break;Line 4981: case "fixed":Line 4982: if ( Sd_proms[((NameValueCollection)oJson)["id"]] != "active" ) {Line 4983: prom_fixed_disc += Convert.ToDecimal(((NameValueCollection)oJson)["discountValue"]);Line 4984: Sd_proms.Add( ((NameValueCollection)oJson)["id"], "active" );Line 4985: }Line 4986: break;Line 4987: case "freeShipping":Line 4988: freeShipping = true;Line 4989: if ( freeShippingRefused ) {Line 4990: promotion = "";Line 4991: }Line 4992: break;Line 4993: }Line 4994: Line 4995: // display active promotionLine 4996: promotion += " [ " + Convert.ToString(((NameValueCollection)oJson)["name"]) + " ]";Line 4997: }Line 4998: Line 4999: } catch ( Exception e ) {Line 5000: //Sb.Append( e.Message + " : " + e.Source );Line 5001: i_item_prc = Convert.ToDecimal(rdr["prc"]);Line 5002: }Line 5003: Line 5004: Line 5005: Line 5006: //if (!freeShipping) {Line 5007: e_weight += ((int)rdr["weight"]*(int)rdr["qt"]);Line 5008: e_volume += ((int)rdr["vX"]*(int)rdr["vY"]*(int)rdr["vZ"]*(int)rdr["qt"]);Line 5009: //}Line 5010: Line 5011: i_item_prc_full = Math.Round( ( 1 - i_item_disc_rate / 100 ) * i_item_prc, shop.NDD );Line 5012: i_item_total = i_item_prc_full;Line 5013: i_item_qty = (int)rdr["qt"];Line 5014: Line 5015: if ( !isStatic ) {Line 5016: i_row_frag = String.Format(Line 5017: @"Line 5018: <td class='cart_body_col_qty'>Line 5019: <input {0} class='n cart_items' name='cg_{1}' size='3' maxlength='7' onchange={2} value='{3}' />Line 5020: </td>Line 5021: <td class='cart_body_col_remove'>Line 5022: <a href='#' onclick={4} >Line 5023: <img src='/octopus/design/images/{5}/cart_refresh.gif' alt='Recalcular pedido' title='Recalcular pedido' />Line 5024: <font>Recalcular</font>Line 5025: </a>Line 5026: <br />Line 5027: <a href='#' onclick={6}>Line 5028: <img src='/octopus/design/images/{5}/cart_remove.gif' alt='Remover item' title='Remover item' />Line 5029: <font>Remover</font>Line 5030: </a>Line 5031: </td>Line 5032: "Line 5033: , ( shop.isRetail ? "type='text'" : "type='number' step='" + qtStep + "' min='0'" )Line 5034: , (int)rdr["codGrid"]Line 5035: , String.Format(Line 5036: "\"setMustUpd(true);req_updCart({0}, '{1}', {2});filterNum(this);req_checkStock(this.name, '{3}', this.value);\""Line 5037: , shopId, cartId, userId, Convert.ToString(rdr["codGrid"])Line 5038: )Line 5039: , Convert.ToString(rdr["qt"])Line 5040: , String.Format( "\"req_updCart({0}, '{1}', {2});\"", shopId, cartId, userId )Line 5041: , shopIdLine 5042: , String.Format( "\"req_removeItem({0},'{1}', {2}, {3});\"", shopId, cartId, Convert.ToString(rdr["codGrid"]), userId )Line 5043: );Line 5044: } else {Line 5045: i_row_frag = String.Format( "<td class='cart_body_col_qty'>{0}</td>", i_item_qty );Line 5046: }Line 5047: Line 5048: i_row = String.Format(Line 5049: @"Line 5050: <tr class='{0}'>Line 5051: {1}Line 5052: <td class='cart_body_col_ref'>{3}</td>Line 5053: <td class='cart_body_col_desc'>{4}</td>Line 5054: {5}Line 5055: <td class='cart_body_col_unitPrc'>Line 5056: {6}Line 5057: <acronym title='{7}'> / {8}</acronym>Line 5058: </td>Line 5059: @TAXESLine 5060: <td class='cart_body_col_rowTot'>@SUB_TOTAL</td>Line 5061: </tr>Line 5062: "Line 5063: , ( 0 == i % 2 ? "tbl_row_0" : "tbl_row_1" )Line 5064: , ( !isStatic ? String.Format( "<td class='cart_body_col_img'>{2}</td>", i_item_href, i_desc, i_img ) : "" )Line 5065: , i_item_hrefLine 5066: , i_refLine 5067: , i_desc + ( !freeShippingRefused ? ( freeShipping ? " [ Frete Grátis ]" : "" ) + promotion : "" )Line 5068: , i_row_fragLine 5069: , shop.CurrType + string.Format( "{0:0."+ ndd +"}", i_item_prc_full )Line 5070: , (string)rdr["acroDesc"]Line 5071: , ( (string)rdr["acronym"] == "" ? (string)rdr["acroDesc"] : (string)rdr["acronym"] )Line 5072: );Line 5073: Line 5074: if ( Taxes.HasChildNodes ) {Line 5075: string xpath = "";Line 5076: decimal item_tax = 0;Line 5077: decimal item_taxes_total = 0;Line 5078: bool apply_in_prc = false;Line 5079: StringBuilder Sb = new StringBuilder();Line 5080: Line 5081: // get json taxes from tbl_prices.objectLine 5082: object o = JavaScriptDeserializer.DeserializeFromJson( sJson, typeof(NameValueCollection) );Line 5083: string s = "";Line 5084: sJson = ((NameValueCollection)o)["taxes"];Line 5085: Line 5086: XmlElement XE_item = (XmlElement)XE_items.AppendChild( Root.CreateElement("item") );Line 5087: XE_item.SetAttribute( "id", Convert.ToString(rdr["codGrid"]) );Line 5088: XmlElement XE_item_taxes = (XmlElement)XE_item.AppendChild( Root.CreateElement("taxes") );Line 5089: Line 5090: foreach( XmlNode Node in Taxes.SelectNodes("/taxes/*") ) {Line 5091: s = "";Line 5092: item_tax = 0;Line 5093: apply_in_prc = false;Line 5094: Line 5095: try {Line 5096: Line 5097: if ( uf != "" ) {Line 5098: o = JavaScriptDeserializer.DeserializeFromJson( sJson, typeof(NameValueCollection) );Line 5099: s = ((NameValueCollection)o)[Node.Name];Line 5100: Line 5101: o = JavaScriptDeserializer.DeserializeFromJson( s, typeof(NameValueCollection) );Line 5102: s = ((NameValueCollection)o)[uf];Line 5103: apply_in_prc = Convert.ToBoolean(((NameValueCollection)o)["apply_in_prc"]);Line 5104: Line 5105: o = JavaScriptDeserializer.DeserializeFromJson( s, typeof(NameValueCollection) );Line 5106: if ( Convert.ToDecimal(((NameValueCollection)o)["a"]) > 0 ) {Line 5107: item_tax = Math.Round( i_item_prc_full * Convert.ToDecimal( (((NameValueCollection)o)["a"]).Replace(".", ",") ), shop.NDD );Line 5108: }Line 5109: if ( Convert.ToDecimal(((NameValueCollection)o)["b"]) > 0 ) {Line 5110: item_tax = i_item_prc_full + Convert.ToDecimal( (((NameValueCollection)o)["b"]).Replace(".", ",") );Line 5111: }Line 5112: if ( item_tax > 0 && apply_in_prc ) {Line 5113: i_item_prc_full = Math.Round( item_tax, shop.NDD );Line 5114: i_item_total = i_item_prc_full;Line 5115: } else {Line 5116: i_item_total = i_item_total + item_tax;Line 5117: }Line 5118: }Line 5119: Line 5120: } catch (Exception e) {Line 5121: /* load taxes failed */Line 5122: }Line 5123: Line 5124: // pre_order load itemsLine 5125: XmlElement XE_item_tax = (XmlElement)XE_item_taxes.AppendChild( Root.CreateElement( Node.Name ) );Line 5126: XE_item_tax.SetAttribute( "presentation", Node.SelectSingleNode("@presentation").InnerText );Line 5127: XE_item_tax.SetAttribute( "value", string.Format( "{0:0." + ndd + "}", item_tax ) );Line 5128: XE_item_tax.SetAttribute( "apply_in_prc", Convert.ToString(apply_in_prc) );Line 5129: Line 5130: // pre_order load taxesLine 5131: if ( Convert.ToBoolean( Node.SelectSingleNode("@totalize").InnerText ) ) {Line 5132: if ( XE_taxes.SelectSingleNode( Node.Name ) != null ) {Line 5133: decimal v = Convert.ToDecimal( XE_taxes.SelectSingleNode( Node.Name ).Attributes[1].Value );Line 5134: XE_taxes.SelectSingleNode( Node.Name ).Attributes[1].Value = string.Format( "{0:0." + ndd + "}", v + (item_tax * i_item_qty) );Line 5135: } else {Line 5136: XmlElement XE_tax = (XmlElement)XE_taxes.AppendChild( Root.CreateElement( Node.Name ) );Line 5137: XE_tax.SetAttribute( "presentation", Node.SelectSingleNode("@presentation").InnerText );Line 5138: XE_tax.SetAttribute( "value", string.Format( "{0:0." + ndd + "}", (item_tax * i_item_qty) ) );Line 5139: }Line 5140: }Line 5141: Line 5142: Sb.Append(Line 5143: String.Format(Line 5144: "<td class='cart_body_col_tax tax_{0}'>{1}</td>"Line 5145: , Node.Name.ToLower()Line 5146: , shop.CurrType + string.Format( "{0:0." + ndd + "}", item_tax )Line 5147: )Line 5148: );Line 5149: }Line 5150: item_taxes_total = item_taxes_total * i_item_qty;Line 5151: i_row = i_row.Replace( "@TAXES", Sb.ToString() );Line 5152: } else {Line 5153: i_row = i_row.Replace( "@TAXES", "" );Line 5154: }Line 5155: Line 5156: i_item_total = i_item_total * i_item_qty;Line 5157: Line 5158: i_row = i_row.Replace( "@SUB_TOTAL", shop.CurrType + string.Format( "{0:0.00}", i_item_total ) );Line 5159: Sb_rows.Append( i_row );Line 5160: Line 5161: sub_total_ac = sub_total_ac + (i_item_prc_full * i_item_qty);Line 5162: Line 5163: /* GOOGLE_TAG_MANAGER */Line 5164: dynamic product = JsonConvert.DeserializeObject<JObject>("{}");Line 5165: product.idVariant = Convert.ToInt32(rdr["codGrid"]);Line 5166: product.name = i_name;Line 5167: product.id = i_ref;Line 5168: product.price = string.Format( "{0:0.00}", i_item_prc_full ).Replace(",", ".");Line 5169: product.brand = Convert.ToString(rdr["brandName"]);Line 5170: if ( i_variant != "" )Line 5171: product.variant = i_variant;Line 5172: product.quantity = Convert.ToInt32(i_item_qty);Line 5173: gtm_cart_products.Add( product );Line 5174: /* GOOGLE_TAG_MANAGER */Line 5175: Line 5176: i++;Line 5177: freeShipping = false;Line 5178: } while(rdr.Read());Line 5179: }Line 5180: rdr.Close();Line 5181: conn.Close();Line 5182: Line 5183: Line 5184: Line 5185: // apply promotion fixed discountLine 5186: if ( prom_fixed_disc > 0 && sub_total_ac > prom_fixed_disc ) {Line 5187: sub_total_ac = sub_total_ac - prom_fixed_disc;Line 5188: } else {Line 5189: prom_fixed_disc = 0;Line 5190: }Line 5191: Line 5192: Line 5193: Line 5194: if (shop.UseEG) {Line 5195: decimal g_total = 0;Line 5196: int g_weight = 0;Line 5197: int g_volume = 0;Line 5198: Line 5199: gift_info = Gifts.Body(shopId, cartId, userId, isStatic, out g_total, out g_weight, out g_volume, shop);Line 5200: Line 5201: sub_total_ac += g_total;Line 5202: e_weight += g_weight;Line 5203: e_volume += g_volume;Line 5204: }Line 5205: Line 5206: Line 5207: Line 5208: // show fixed discountsLine 5209: if ( prom_fixed_disc > 0 ) {Line 5210: promotion_info = String.Format(Line 5211: @"Line 5212: <div class='promotion-fixed-discount'>Line 5213: <table>Line 5214: <tr>Line 5215: <td width='50%' class='lft_half'><span></span></td>Line 5216: <td width='50%' class='rgt_half'>Line 5217: <table>Line 5218: <tr>Line 5219: <th>Desconto de promoções:</th>Line 5220: <td>{0}</td>Line 5221: </tr>Line 5222: </table>Line 5223: </td>Line 5224: </tr>Line 5225: </table>Line 5226: </div>Line 5227: "Line 5228: , shop.CurrType + string.Format("{0:0.00}", prom_fixed_disc )Line 5229: );Line 5230: }Line 5231: Line 5232: // load output paramsLine 5233: sub_total = Math.Round( sub_total_ac, 2 );Line 5234: weight = e_weight;Line 5235: volume = e_volume;Line 5236: PreOrder = Root;Line 5237: Line 5238: foreach( XmlNode Tax in Root.SelectNodes("/pre_order/taxes/*") ) {Line 5239: Sb_taxes.Append(Line 5240: String.Format(Line 5241: ", \"{0}\": {1}"Line 5242: , Tax.Name.ToLower(), Convert.ToString( Tax.SelectSingleNode("@value").InnerText ).Replace(",", ".")Line 5243: )Line 5244: );Line 5245: }Line 5246: Line 5247: output = String.Format(Line 5248: @"Line 5249: <table>Line 5250: <tr>Line 5251: {0}Line 5252: <th class='cart_body_col_ref'>Ref.</th>Line 5253: <th class='cart_body_col_desc'>Descrição</th>Line 5254: <th class='cart_body_col_qty' colspan='2'>Quantidade</th>Line 5255: {1}Line 5256: @TAXES_HEADERLine 5257: <th class='cart_body_col_rowTot'>Total</th>Line 5258: </tr>Line 5259: @ROWSLine 5260: </table>Line 5261: @GIFT_INFOLine 5262: @PROMOTION_INFOLine 5263: <div id='items_total' style='display:none;'>{2}</div>Line 5264: <div id='taxes_total' style='display:none;'>{3}</div>Line 5265: ",Line 5266: ( !isStatic ? "<th class='cart_body_col_img'><span></span></th>" : "" ),Line 5267: ( !isStatic ? "<th class='cart_body_col_unitPrc'>Preço</th>" : ""),Line 5268: string.Format("{0:0.00}", sub_total_ac ),Line 5269: "{\"taxes\": {" + ( Sb_taxes.ToString() != "" ? Sb_taxes.ToString().Substring(1) : "" ) + "}}"Line 5270: );Line 5271: Line 5272: output = output.Replace( "@TAXES_HEADER", taxes_header );Line 5273: output = output.Replace( "@ROWS", Sb_rows.ToString() );Line 5274: output = output.Replace( "@GIFT_INFO", gift_info);Line 5275: output = output.Replace( "@PROMOTION_INFO", promotion_info);Line 5276: Line 5277: /* GOOGLE_TAG_MANAGER */Line 5278: output += "<script id='gtm-cart-products' type='text/x-gtm-products'>";Line 5279: output += Environment.NewLine;Line 5280: output += gtm_cart_products.ToString();Line 5281: output += Environment.NewLine;Line 5282: output += "</" + "script>";Line 5283: /* GOOGLE_TAG_MANAGER */Line 5284: Line 5285: return output;Line 5286: }Line 5287: Line 5288: public static string ShippingCharge(int shopId, string cartId, int userId, string code, int transporterId, string shopHttp) {Line 5289: return ShippingCharge(shopId, cartId, userId, code, transporterId, shopHttp, "");Line 5290: }Line 5291: Line 5292: public static string ShippingCharge(Line 5293: int shopId,Line 5294: string cartId,Line 5295: int userId,Line 5296: string code,Line 5297: int transporterId,Line 5298: string shopHttp,Line 5299: string mainIncludeLine 5300: ) {Line 5301: string output = "";Line 5302: string url = String.Format(Line 5303: "{0}/sub/__{1}.aspx?sid={1}&cid={2}&uid={3}&c={4}&tid={5}&s=1{6}",Line 5304: ( shopHttp.IndexOf("octopus") > -1 ? shopHttp : shopHttp + "octopus" ),Line 5305: shopId,Line 5306: cartId,Line 5307: userId,Line 5308: code,Line 5309: transporterId,Line 5310: ( mainInclude != "" ? "&mi=" + mainInclude : "" )Line 5311: );Line 5312: Line 5313: try {Line 5314: HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);Line 5315: req.MaximumAutomaticRedirections = 4;Line 5316: req.MaximumResponseHeadersLength = 4;Line 5317: req.Credentials = CredentialCache.DefaultCredentials;Line 5318: HttpWebResponse res = (HttpWebResponse)req.GetResponse();Line 5319: Line 5320: Stream reStream = res.GetResponseStream();Line 5321: StreamReader readStream = new StreamReader(reStream, Encoding.UTF8);Line 5322: output = readStream.ReadToEnd();Line 5323: readStream.Close();Line 5324: res.Close();Line 5325: } catch (Exception e) {Line 5326: output = "url: " + url;Line 5327: }Line 5328: return output;Line 5329: }Line 5330: Line 5331: public static string FloatingCartBody(int shopId, string cartId, int userId, ShopSetup shop, Promotion P) {Line 5332: int i=0;Line 5333: string ndd = "";Line 5334: for( i = 0; i < shop.NDD; i++) ndd+="0";Line 5335: Line 5336: string thisConfig = "?sid=" + shopId;Line 5337: Line 5338: i = 0;Line 5339: string iRef = "";Line 5340: string iDesc = "";Line 5341: string i_img_src = "";Line 5342: string i_img_alt = "";Line 5343: string promotion = "";Line 5344: Line 5345: decimal iPrice = 0;Line 5346: decimal iDiscRate = 0;Line 5347: decimal promotionFixedDiscount = 0;Line 5348: decimal t_price = 0;Line 5349: int t_items = 0;Line 5350: Line 5351: StringBuilder Sb = new StringBuilder();Line 5352: StringDictionary SdActivePromotions = new StringDictionary();Line 5353: Line 5354: Sb.Append("\n");Line 5355: Sb.Append(" <h5><span>Últimos itens</span></h5>\n");Line 5356: Sb.Append(" <ul>\n");Line 5357: Line 5358: SqlConnection conn = new SqlConnection(shop.Path);Line 5359: conn.Open();Line 5360: Line 5361: string query = String.Format(Line 5362: @"Line 5363: SELECTLine 5364: tbl_grid.codGridLine 5365: , tbl_grid.refLine 5366: , tbl_grid.codProdLine 5367: , tbl_prod.codBrandLine 5368: , tbl_prod.[desc] AS ProdDescLine 5369: , tbl_grid.codCompLine 5370: , sys_cart.qtLine 5371: , sys_cart.codGridLine 5372: , tbl_prices.discRateLine 5373: , tbl_prices.prcLine 5374: , tbl_grid.weightLine 5375: , tbl_grid.vXLine 5376: , tbl_grid.vYLine 5377: , tbl_grid.vZLine 5378: , tbl_acronyms.[desc] AS acroDescLine 5379: , tbl_acronyms.acronymLine 5380: , tbl_prices.objectLine 5381: FROM tbl_prices WITH (NOLOCK)Line 5382: INNER JOIN tbl_grid WITH (NOLOCK) ON tbl_prices.codGrid = tbl_grid.codGridLine 5383: INNER JOIN tbl_prod WITH (NOLOCK) ON tbl_grid.codProd = tbl_prod.codProdLine 5384: INNER JOIN sys_cart WITH (NOLOCK) ON tbl_grid.codGrid = sys_cart.codGridLine 5385: INNER JOIN tbl_acronyms WITH (NOLOCK) ON tbl_prod.codUn = tbl_acronyms.codUnLine 5386: WHERE (tbl_grid.active = 1) AND (tbl_prices.codGroup = @codGroup) AND (sys_cart.cid = @cartId)Line 5387: ORDER BY sys_cart.dspOrder DESC, tbl_prod.[desc]Line 5388: "Line 5389: , shop.OwnerLine 5390: );Line 5391: Line 5392: SqlCommand cmd = new SqlCommand(query, conn);Line 5393: cmd.Parameters.Add(new SqlParameter("@codGroup", SqlDbType.Int));Line 5394: cmd.Parameters.Add(new SqlParameter("@cartId", SqlDbType.NVarChar));Line 5395: cmd.Parameters["@codGroup"].Value = UserSetup.UserGroup(shop.Path, userId);Line 5396: cmd.Parameters["@cartId"].Value = cartId;Line 5397: SqlDataReader rdr = cmd.ExecuteReader();Line 5398: if (rdr.Read()) {Line 5399: Line 5400: do {Line 5401: iRef = "";Line 5402: if ( null != rdr["ref"] && !Convert.ToString(rdr["ref"]).Equals("") ) {Line 5403: iRef = Convert.ToString(rdr["ref"]);Line 5404: }Line 5405: Line 5406: iDesc = ZenTools.HtmlEncode((string)rdr["ProdDesc"]);Line 5407: if ( null != rdr["codComp"] && !Convert.ToString(rdr["codComp"]).Equals("") ) {Line 5408: iDesc += " " + Generics.GridDescription(shop.Path, Convert.ToString(rdr["codComp"]));Line 5409: }Line 5410: Line 5411: iPrice = (decimal)rdr["prc"];Line 5412: iDiscRate = (decimal)rdr["discRate"];Line 5413: Line 5414: Line 5415: Line 5416: // check promotionsLine 5417: promotion = "";Line 5418: try {Line 5419: object oJson = JavaScriptDeserializer.DeserializeFromJson(Line 5420: P.getEffect(Line 5421: Convert.ToInt32(rdr["codBrand"]),Line 5422: Details.getProductMenus(shop.Path, Convert.ToInt32(rdr["codProd"])),Line 5423: Convert.ToInt32(rdr["codGrid"]),Line 5424: Convert.ToInt32(rdr["qt"]),Line 5425: cartIdLine 5426: ),Line 5427: typeof(NameValueCollection)Line 5428: );Line 5429: Line 5430: //Sb.Append( ((NameValueCollection)oJson)["debug"] );Line 5431: Line 5432: if ( Convert.ToInt32(((NameValueCollection)oJson)["id"]) > 0 ) {Line 5433: switch( Convert.ToString(((NameValueCollection)oJson)["discountType"]) ) {Line 5434: case "percent":Line 5435: iDiscRate += Convert.ToDecimal(((NameValueCollection)oJson)["discountValue"]);Line 5436: break;Line 5437: case "fixed":Line 5438: if ( SdActivePromotions[((NameValueCollection)oJson)["id"]] != "active" ) {Line 5439: promotionFixedDiscount += Convert.ToDecimal(((NameValueCollection)oJson)["discountValue"]);Line 5440: SdActivePromotions.Add( ((NameValueCollection)oJson)["id"], "active" );Line 5441: }Line 5442: break;Line 5443: case "freeShipping": break;Line 5444: }Line 5445: Line 5446: // display active promotionLine 5447: promotion += " [ " + Convert.ToString(((NameValueCollection)oJson)["name"]) + " ]";Line 5448: }Line 5449: Line 5450: } catch ( Exception e ) {Line 5451: Sb.Append( e.Message + " : " + e.Source );Line 5452: iPrice = Convert.ToDecimal(rdr["prc"]);Line 5453: }Line 5454: Line 5455: Line 5456: Line 5457: if ( i < 3 ) {Line 5458: Sb.Append(" <li>\n");Line 5459: Line 5460: // item imageLine 5461: i_img_alt = "";Line 5462: i_img_src = Details.getProductImgSrc(shopId, Convert.ToInt32(rdr["codGrid"]), shop, out i_img_alt);Line 5463: if ( i_img_alt == "" )Line 5464: i_img_alt = iDesc;Line 5465: i_img_alt = HttpContext.Current.Server.HtmlEncode(i_img_alt);Line 5466: Sb.Append( string.Format("<img src='{0}' alt='{1}' />", i_img_src.Replace("{size}", "t"), i_img_alt) );Line 5467: Line 5468: Sb.Append(" <span class='ref'>" + iRef + "</span>\n");Line 5469: if ( promotion != "" )Line 5470: iDesc += " " + promotion;Line 5471: Sb.Append(" <span class='desc'>" + iDesc + "</span>\n");Line 5472: Line 5473: Sb.Append(" <span class='price'>" + shop.CurrType + string.Format("{0:0." + ndd + "}",( 1 - iDiscRate / 100 ) * iPrice ) + "</span><span class='items'> - <acronym title='" + (string)rdr["AcroDesc"] + "'>" + Convert.ToString(rdr["qt"]) + " " + (string)rdr["acronym"] + "</acronym></span>\n");Line 5474: Sb.Append(" <a class='remover' href='javascript:handle_remover_onClick(" + (int)rdr["codGrid"] + ");'><span>x</span></a>");Line 5475: Sb.Append(" </li>\n");Line 5476: }Line 5477: Line 5478: t_price += ( 1 - iDiscRate / 100 ) * iPrice * (int)rdr["qt"];Line 5479: t_items += (int)rdr["qt"];Line 5480: i++;Line 5481: } while(rdr.Read());Line 5482: Line 5483: Line 5484: Line 5485: // apply promotion fixed discountLine 5486: t_price = t_price - promotionFixedDiscount;Line 5487: Line 5488: Line 5489: Line 5490: } else {Line 5491: Sb.Append(" <li>\n");Line 5492: Sb.Append(" <span class='desc'>O carrinho está vazio</span>\n");Line 5493: Sb.Append(" </li>\n");Line 5494: }Line 5495: Line 5496: rdr.Close();Line 5497: conn.Close();Line 5498: Line 5499: Sb.Append(" </ul>\n");Line 5500: Sb.Append(" <div id='floating_cart_body_total_price'><span><label>Valor total:</label>"+ shop.CurrType + string.Format("{0:0.00}", t_price) +" </span></div>\n");Line 5501: Sb.Append(" <div id='floating_cart_body_total_items'><span><label>Qt.Itens:</label>"+ Convert.ToString(t_items) +"</span></div>\n");Line 5502: Line 5503: Sb.Append("<script>function handle_remover_onClick(cg){ new XHR({ method: 'get', onSuccess: function(txt,xml){ refreshFloatingCart(" + shopId + ",'" + cartId + "', Cookie.get('uid') || 0); } }).send('/octopus/__cart_remove.aspx', 'sid=" + shopId + "&cid=" + cartId + "&cg=' + cg); }<"+"/script>");Line 5504: Line 5505: return Sb.ToString();Line 5506: }Line 5507: Line 5508: Line 5509: private static bool stRules(string config_uf, string uf, string rule, string utp, string id2) {Line 5510: bool output = false;Line 5511: Line 5512: if ( config_uf == uf ) {Line 5513: switch( rule ) {Line 5514: case "F": // Somente para pessoa fsicaLine 5515: if ( utp == "F" ) {Line 5516: output = true;Line 5517: }Line 5518: break;Line 5519: Line 5520: case "J": // Somente para pessoa jurdicaLine 5521: if ( utp == "J" ) {Line 5522: output = true;Line 5523: }Line 5524: break;Line 5525: Line 5526: case "JI": // Somente pessoa juridica com isenção de I.ELine 5527: if ( utp == "J" && id2 == "" ) {Line 5528: output = true;Line 5529: }Line 5530: break;Line 5531: Line 5532: case "JIE": // Somente pessoa jurídica com I.ELine 5533: if ( utp == "J" && id2 != "" && id2.ToLower() != "isento" ) {Line 5534: output = true;Line 5535: }Line 5536: break;Line 5537: Line 5538: case "FJI": // Somente pessoa fsica ou juridica com isenção de I.ELine 5539: if ( utp == "F" || ( utp == "J" && ( id2 == "" || id2 == "isento" ) ) ) {Line 5540: output = true;Line 5541: }Line 5542: break;Line 5543: Line 5544: default: // Todos os casosLine 5545: output = true;Line 5546: break;Line 5547: }Line 5548: }Line 5549: Line 5550: return output;Line 5551: }Line 5552: Line 5553: public static decimal stCharge(int userId, string code, decimal subTotal, ShopSetup shop) {Line 5554: decimal output = 0;Line 5555: string uf = "";Line 5556: string utp = "";Line 5557: string id2 = "";Line 5558: string config = shop.getConfig("UseST");Line 5559: bool continueRunning = false;Line 5560: Line 5561: string[] arr1;Line 5562: string[] arr2;Line 5563: Line 5564: SqlConnection conn;Line 5565: SqlCommand cmd;Line 5566: SqlDataReader rdr;Line 5567: string query = "";Line 5568: Line 5569: conn = new SqlConnection( ConfigurationSettings.AppSettings["correioConn"] );Line 5570: conn.Open();Line 5571: try {Line 5572: query = "SELECT uf FROM tbl_uf WITH (NOLOCK) WHERE (a <= @code) AND (@code <= b) ";Line 5573: cmd = new SqlCommand(query, conn);Line 5574: cmd.Parameters.Add(new SqlParameter("@code", SqlDbType.NVarChar));Line 5575: cmd.Parameters["@code"].Value = code;Line 5576: uf = Convert.ToString( cmd.ExecuteScalar() ).ToUpper();Line 5577: } catch (Exception e) {}Line 5578: conn.Close();Line 5579: Line 5580: if ( uf.Length > 0 ) {Line 5581: conn = new SqlConnection(shop.Path);Line 5582: conn.Open();Line 5583: Line 5584: if ( userId > 0 ) {Line 5585: query = "SELECT userType, id2 FROM sys_users WITH (NOLOCK) WHERE codUser = @codUser";Line 5586: cmd = new SqlCommand(query, conn);Line 5587: cmd.Parameters.Add(new SqlParameter("@codUser", SqlDbType.Int));Line 5588: cmd.Parameters["@codUser"].Value = userId;Line 5589: rdr = cmd.ExecuteReader();Line 5590: if ( rdr.Read() ) {Line 5591: utp = Convert.ToString( rdr["userType"] );Line 5592: id2 = Convert.ToString( rdr["id2"] );Line 5593: }Line 5594: rdr.Close();Line 5595: }Line 5596: Line 5597: arr1 = config.Split('|');Line 5598: for(int i = 0; i < arr1.Length; i++) {Line 5599: arr2 = arr1[i].Split(';');Line 5600: if ( arr2.Length == 2 ) {Line 5601: if ( stRules( arr2[0], uf, arr2[1], utp, id2 ) ) {Line 5602: continueRunning = true;Line 5603: break;Line 5604: }Line 5605: } else {Line 5606: if ( stRules( uf, uf, arr1[0], utp, id2 ) ) {Line 5607: continueRunning = true;Line 5608: break;Line 5609: }Line 5610: }Line 5611: }Line 5612: Line 5613: if ( continueRunning ) {Line 5614: int i = 0;Line 5615: string ndd = "";Line 5616: decimal st = 0;Line 5617: decimal stFixed = 0;Line 5618: Line 5619: for(i=0; i<shop.NDD; i++)ndd+="0";Line 5620: Line 5621: query = "SELECT percentage, fixed FROM sys_subsTributaria WITH (NOLOCK) WHERE uf = @uf";Line 5622: Line 5623: cmd = new SqlCommand(query, conn);Line 5624: cmd.Parameters.Add(new SqlParameter("@uf", SqlDbType.NVarChar));Line 5625: cmd.Parameters["@uf"].Value = uf;Line 5626: rdr = cmd.ExecuteReader();Line 5627: Line 5628: while(rdr.Read()) {Line 5629: st = Convert.ToDecimal(rdr[0]) / (decimal)100;Line 5630: stFixed = Convert.ToDecimal(rdr[1]);Line 5631: }Line 5632: rdr.Close();Line 5633: Line 5634: if ( st > 0 ) {Line 5635: output += subTotal * st;Line 5636: }Line 5637: Line 5638: if ( stFixed > 0 ) {Line 5639: output += stFixed;Line 5640: }Line 5641: }Line 5642: Line 5643: conn.Close();Line 5644: }Line 5645: Line 5646: return Math.Round(output, 2);Line 5647: }Line 5648: Line 5649: /* GOOGLE_DEPRECATED */Line 5650: public static string remarketingGoogle(ShopSetup shop, string cartId, int codGroup) {Line 5651: string codGrids = "";Line 5652: string prodValue = "";Line 5653: string prodTotal = "";Line 5654: string query = "";Line 5655: string ndd = "";Line 5656: for( int i = 0; i < shop.NDD; i++ ) ndd += "0";Line 5657: decimal s_total = 0;Line 5658: StringBuilder Sb = new StringBuilder();Line 5659: Line 5660: SqlConnection conn = new SqlConnection(shop.Path);Line 5661: conn.Open();Line 5662: Line 5663: query = @"Line 5664: SELECTLine 5665: sys_cart.codGrid,Line 5666: sys_cart.qt,Line 5667: ( tbl_prices.prc * ( 1 - tbl_prices.discRate / 100 ) ) AS discPrcLine 5668: FROM sys_cart WITH (NOLOCK)Line 5669: LEFT OUTER JOIN tbl_prices WITH (NOLOCK) ON sys_cart.codGrid = tbl_prices.codGridLine 5670: WHERE (sys_cart.cid = @cartId) AND (tbl_prices.codGroup = @codGroup)Line 5671: ";Line 5672: Line 5673: SqlCommand cmd = new SqlCommand(query, conn);Line 5674: cmd.Parameters.Add(new SqlParameter("@cartId", SqlDbType.NVarChar));Line 5675: cmd.Parameters.Add(new SqlParameter("@codGroup", SqlDbType.NVarChar));Line 5676: cmd.Parameters["@cartId"].Value = cartId;Line 5677: cmd.Parameters["@codGroup"].Value = codGroup;Line 5678: SqlDataReader rdr = cmd.ExecuteReader();Line 5679: Line 5680: while( rdr.Read() ) {Line 5681: codGrids += ",'" + Convert.ToString(rdr["codGrid"]) + "'";Line 5682: prodValue += ",'" + string.Format("{0:0." + ndd + "}", Convert.ToDecimal(rdr["discPrc"])).Replace(",", ".") + "'";Line 5683: s_total += Convert.ToDecimal(rdr["discPrc"]) * Convert.ToInt32(rdr["qt"]);Line 5684: }Line 5685: Line 5686: rdr.Close();Line 5687: conn.Close();Line 5688: Line 5689: Sb.Append( "{" );Line 5690: Sb.Append(Line 5691: String.Format(Line 5692: "'ecomm_prodid': [{0}], 'ecomm_pagetype': 'cart', 'ecomm_totalvalue': {1}"Line 5693: , ( codGrids != "" ? codGrids.Substring(1) : "" ), string.Format( "{0:0.00}", s_total ).Replace(",", ".")Line 5694: )Line 5695: );Line 5696: Sb.Append( "}" );Line 5697: Line 5698: return Sb.ToString();Line 5699: }Line 5700: /* GOOGLE_DEPRECATED */Line 5701: Line 5702: public static string isMultiple(string path, int codGrid, int qt, int codGroup) {Line 5703: string output = "True";Line 5704: SqlConnection conn = new SqlConnection(path);Line 5705: conn.Open();Line 5706: try {Line 5707: string query = "SELECT object FROM tbl_prices WITH (NOLOCK) WHERE (codGrid = @codGrid) AND (codGroup = @codGroup)";Line 5708: SqlCommand cmd = new SqlCommand(query, conn);Line 5709: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 5710: cmd.Parameters.Add(new SqlParameter("@codGroup", SqlDbType.Int));Line 5711: cmd.Parameters["@codGrid"].Value = codGrid;Line 5712: cmd.Parameters["@codGroup"].Value = codGroup;Line 5713: object o = JavaScriptDeserializer.DeserializeFromJson(Convert.ToString(cmd.ExecuteScalar()), typeof(NameValueCollection));Line 5714: int qts = Convert.ToInt32(((NameValueCollection)o)["qtIncrement"]);Line 5715: if ( qts > 0 && (qt % qts) != 0 ) {Line 5716: output = String.Format("Valor do campo [quantidade] deve ser múltiplo de {0}.", qts);Line 5717: }Line 5718: } catch (Exception ex) {}Line 5719: conn.Close();Line 5720: return output;Line 5721: }Line 5722: Line 5723: public static bool existsCrossDeviceCart(string path, string id) {Line 5724: int c = 0;Line 5725: SqlConnection conn = new SqlConnection(path);Line 5726: conn.Open();Line 5727: SqlCommand cmd = new SqlCommand("SELECT COUNT(cid) FROM sys_cart WITH (NOLOCK) WHERE (cid = @cid)", conn);Line 5728: cmd.Parameters.Add(new SqlParameter("@cid", SqlDbType.NVarChar));Line 5729: cmd.Parameters["@cid"].Value = id;Line 5730: c = Convert.ToInt32( cmd.ExecuteScalar() );Line 5731: conn.Close();Line 5732: Line 5733: return (c > 0);Line 5734: Line 5735: }Line 5736: Line 5737: public static string createCrossDeviceCart(string path, string id, string cartId) {Line 5738: int ra = 0;Line 5739: SqlConnection conn = new SqlConnection(path);Line 5740: conn.Open();Line 5741: SqlCommand cmd = new SqlCommand("UPDATE sys_cart SET cid = (@id) WHERE (cid = @cid)", conn);Line 5742: cmd.Parameters.Add(new SqlParameter("@id", SqlDbType.NVarChar));Line 5743: cmd.Parameters.Add(new SqlParameter("@cid", SqlDbType.NVarChar));Line 5744: cmd.Parameters["@id"].Value = id;Line 5745: cmd.Parameters["@cid"].Value = cartId;Line 5746: ra = Convert.ToInt32( cmd.ExecuteNonQuery() );Line 5747: conn.Close();Line 5748: Line 5749: return (ra > 0 ? "SUCCESS" : "FAILURE");Line 5750: Line 5751: }Line 5752: Line 5753: }Line 5754: Line 5755: Line 5756: Line 5757: Line 5758: Line 5759: Line 5760: Line 5761: Line 5762: Line 5763: Line 5764: Line 5765: public class Gifts {Line 5766: public Gifts() {}Line 5767: Line 5768: public static int Qt(string path, string cartId, int codGift) {Line 5769: int output = 0;Line 5770: Line 5771: SqlConnection conn = new SqlConnection(path);Line 5772: conn.Open();Line 5773: string query = "SELECT qt FROM rel_cartWeg WITH (NOLOCK) WHERE (cid = @cid) AND (codGift = @codGift);";Line 5774: SqlCommand cmd = new SqlCommand(query, conn);Line 5775: cmd.Parameters.Add(new SqlParameter("@cid", SqlDbType.NVarChar));Line 5776: cmd.Parameters.Add(new SqlParameter("@codGift", SqlDbType.Int));Line 5777: cmd.Parameters["@cid"].Value = cartId;Line 5778: cmd.Parameters["@codGift"].Value = codGift;Line 5779: output = Convert.ToInt32(cmd.ExecuteScalar());Line 5780: conn.Close();Line 5781: Line 5782: return output;Line 5783: }Line 5784: Line 5785: public static bool Add(int shopId, string cartId, int codGift, ShopSetup shop) {Line 5786: int r = Gifts.Qt(shop.Path, cartId, codGift);Line 5787: if (r>0) {Line 5788: bool f = Gifts.Update(shopId,cartId,codGift,1+r,true,shop);Line 5789: if (f)r=1;Line 5790: else r=0;Line 5791: } else {Line 5792: SqlConnection conn = new SqlConnection(shop.Path);Line 5793: conn.Open();Line 5794: Line 5795: string query = "INSERT INTO rel_cartWeg (cid, codGift, qt, dspOrder) VALUES (@cartId, @codGift, 1, GETDATE())";Line 5796: SqlCommand cmd = new SqlCommand(query, conn);Line 5797: cmd.Parameters.Add(new SqlParameter("@cartId", SqlDbType.NVarChar));Line 5798: Line 5799: cmd.Parameters.Add(new SqlParameter("@codGift", SqlDbType.Int));Line 5800: cmd.Parameters["@cartId"].Value = cartId;Line 5801: cmd.Parameters["@codGift"].Value = codGift;Line 5802: r = cmd.ExecuteNonQuery();Line 5803: Line 5804: conn.Close();Line 5805: }Line 5806: Line 5807: if (r>0) {Line 5808: return true;Line 5809: } else {Line 5810: return false;Line 5811: }Line 5812: }Line 5813: Line 5814: public static bool Remove(int shopId, string cartId, int codGift, ShopSetup shop) {Line 5815: SqlConnection conn = new SqlConnection(shop.Path);Line 5816: conn.Open();Line 5817: Line 5818: string query = "DELETE FROM rel_cartWeg WHERE (cid = @cartId) AND (codGift = @codGift)";Line 5819: SqlCommand cmd = new SqlCommand(query, conn);Line 5820: cmd.Parameters.Add(new SqlParameter("@cartId", SqlDbType.NVarChar));Line 5821: cmd.Parameters.Add(new SqlParameter("@codGift", SqlDbType.Int));Line 5822: cmd.Parameters["@cartId"].Value = cartId;Line 5823: cmd.Parameters["@codGift"].Value = codGift;Line 5824: int r = cmd.ExecuteNonQuery();Line 5825: Line 5826: conn.Close();Line 5827: Line 5828: if (r>0) {Line 5829: return true;Line 5830: } else {Line 5831: return false;Line 5832: }Line 5833: }Line 5834: Line 5835: public static bool Update(int shopId, string cartId, int codGift, int qt, bool changeDspOrder, ShopSetup shop) {Line 5836: SqlConnection conn = new SqlConnection(shop.Path);Line 5837: conn.Open();Line 5838: Line 5839: string query = "";Line 5840: if (changeDspOrder)query = "UPDATE rel_cartWeg SET qt = @qt, dspOrder = GETDATE() WHERE (cid = @cartId) AND (codGift = @codGift)";Line 5841: else query = "UPDATE rel_cartWeg SET qt = @qt WHERE (cid = @cartId) AND (codGift = @codGift)";Line 5842: Line 5843: SqlCommand cmd = new SqlCommand(query, conn);Line 5844: cmd.Parameters.Add(new SqlParameter("@qt", SqlDbType.Int));Line 5845: cmd.Parameters.Add(new SqlParameter("@cartId", SqlDbType.NVarChar));Line 5846: cmd.Parameters.Add(new SqlParameter("@codGift", SqlDbType.Int));Line 5847: cmd.Parameters["@qt"].Value = qt;Line 5848: cmd.Parameters["@cartId"].Value = cartId;Line 5849: cmd.Parameters["@codGift"].Value = codGift;Line 5850: int r = cmd.ExecuteNonQuery();Line 5851: Line 5852: conn.Close();Line 5853: Line 5854: if (r>0) {Line 5855: return true;Line 5856: } else {Line 5857: return false;Line 5858: }Line 5859: }Line 5860: Line 5861: public static bool Delete(int shopId, string cartId, ShopSetup shop) {Line 5862: SqlConnection conn = new SqlConnection(shop.Path);Line 5863: string query = "DELETE FROM rel_cartWeg WHERE (cid = @cartId)";Line 5864: SqlCommand cmd = new SqlCommand(query, conn);Line 5865: cmd.Parameters.Add(new SqlParameter("@cartId", SqlDbType.NVarChar));Line 5866: cmd.Parameters["@cartId"].Value = cartId;Line 5867: cmd.Connection.Open();Line 5868: int r = cmd.ExecuteNonQuery();Line 5869: conn.Close();Line 5870: Line 5871: if (r>0) {Line 5872: return true;Line 5873: } else {Line 5874: return false;Line 5875: }Line 5876: }Line 5877: Line 5878: public static string Body(int shopId, string cartId, int userId, bool isStatic, out decimal sub_total, out int estimated_weight, out int estimated_volume, ShopSetup shop) {Line 5879: int i=0;string ndd="";for(i=0; i<shop.NDD; i++)ndd+="0";Line 5880: Line 5881: string thisConfig = "?sid=" + shopId;Line 5882: if (userId>0)thisConfig += "&uid=" + userId;Line 5883: Line 5884: string iClass = "";Line 5885: string iImg = "";Line 5886: Line 5887: string iRef = "";Line 5888: string iDesc = "";Line 5889: decimal iPrice = 0;Line 5890: Line 5891: decimal s_total = 0;Line 5892: int e_weight = 0;Line 5893: int e_volume = 0;Line 5894: Line 5895: i = 0;Line 5896: StringBuilder Sb = new StringBuilder();Line 5897: Line 5898: SqlConnection conn = new SqlConnection(shop.Path);Line 5899: conn.Open();Line 5900: Line 5901: string query = @"Line 5902: SELECTLine 5903: tbl_eg_prod.imgSrc,Line 5904: tbl_eg_prod.ref,Line 5905: tbl_eg_prod.name,Line 5906: rel_cartWeg.qt,Line 5907: rel_cartWeg.codGift,Line 5908: tbl_eg_prod.prc,Line 5909: tbl_eg_prod.weight,Line 5910: tbl_eg_prod.vX,Line 5911: tbl_eg_prod.vY,Line 5912: tbl_eg_prod.vZLine 5913: FROM rel_cartWeg WITH (NOLOCK)Line 5914: INNER JOIN tbl_eg_prod WITH (NOLOCK) ON rel_cartWeg.codGift = tbl_eg_prod.codGiftLine 5915: WHERE (rel_cartWeg.cid = @cartId) AND (tbl_eg_prod.active = 1)Line 5916: ORDER BY rel_cartWeg.dspOrder, tbl_eg_prod.nameLine 5917: ";Line 5918: SqlCommand cmd = new SqlCommand(query, conn);Line 5919: cmd.Parameters.Add(new SqlParameter("@cartId",SqlDbType.NVarChar));Line 5920: cmd.Parameters["@cartId"].Value = cartId;Line 5921: SqlDataReader rdr = cmd.ExecuteReader();Line 5922: if (rdr.Read()) {Line 5923: Sb.Append(" </table>\n");Line 5924: Sb.Append(" <div class='hr'><hr /></div>\n");Line 5925: Sb.Append(" <table> \n");Line 5926: Line 5927: do {Line 5928: if (0==i%2) {Line 5929: iClass = "tbl_row_0";Line 5930: } else {Line 5931: iClass = "tbl_row_1";Line 5932: }Line 5933: Line 5934: iImg = "<span></span>";Line 5935: if ( null != rdr["imgSrc"] && !Convert.ToString(rdr["imgSrc"]).Equals("")) {Line 5936: if ( shop.useLazyLoad )Line 5937: iImg="<img class='lazyload' src='/octopus/design/images/blank.gif' data-src='/octopus/design/images/" + shopId + "/gifts/t/" + Convert.ToString(rdr["imgSrc"]) + ".jpg' alt='' />";Line 5938: elseLine 5939: iImg="<img src='/octopus/design/images/" + shopId + "/gifts/t/" + Convert.ToString(rdr["imgSrc"]) + ".jpg' alt='' />";Line 5940: }Line 5941: Line 5942: iRef = "";Line 5943: Line 5944: if (null!=rdr["ref"]&&!Convert.ToString(rdr["ref"]).Equals(""))iRef=Convert.ToString(rdr["ref"]);Line 5945: Line 5946: iDesc = (string)rdr["name"];Line 5947: iPrice = (decimal)rdr["prc"];Line 5948: s_total+=iPrice*(int)rdr["qt"];Line 5949: e_weight+=(int)rdr["weight"];Line 5950: e_volume+=((int)rdr["vX"]*(int)rdr["vY"]*(int)rdr["vZ"]*Convert.ToInt32(rdr["qt"]));Line 5951: Line 5952: Sb.Append(" <tr class='" +iClass+ "'>\n");Line 5953: if (!isStatic)Line 5954: Sb.Append(" <td class='cart_body_col_img'>" + iImg + "</td>\n");Line 5955: Sb.Append(" <td class='cart_body_col_ref'>" + iRef + "</td>\n");Line 5956: Sb.Append(" <td class='cart_body_col_desc'>" + iDesc + "</td>\n");Line 5957: if (!isStatic) {Line 5958: Sb.Append(" <td class='cart_body_col_qty'><input type='text' class='n' name='gf" + i + "' size='3' onChange='javascript:setMustUpd(true);' value='" + Convert.ToString(rdr["qt"]) + "' /></td>\n");Line 5959: Sb.Append(" <td class='cart_body_col_remove'><a href=\"javascript:removeGift(" + shopId + ",'" + cartId + "'," + Convert.ToString(rdr["codGift"]) + "," + userId + ")\"><img src='/octopus/design/images/" +shopId+ "/cart_remove.gif' alt='' /></a></td>\n");Line 5960: } else {Line 5961: Sb.Append(" <td class='cart_body_col_qty'>" + Convert.ToString(rdr["qt"]) + "</td>\n");Line 5962: }Line 5963: Sb.Append(" <td class='cart_body_col_unitPrc'>" + shop.CurrType + string.Format("{0:0." + ndd + "}",iPrice) + "</td>\n");Line 5964: Sb.Append(" <td class='cart_body_col_rowTot'>" + shop.CurrType + string.Format("{0:0.00}", iPrice*(int)rdr["qt"]) + "</td>\n");Line 5965: Sb.Append(" </tr>\n");Line 5966: i++;Line 5967: } while(rdr.Read());Line 5968: }Line 5969: Line 5970: rdr.Close();Line 5971: conn.Close();Line 5972: Line 5973: sub_total = s_total;Line 5974: estimated_weight = e_weight;Line 5975: estimated_volume = e_volume;Line 5976: Line 5977: return Sb.ToString();Line 5978: }Line 5979: }Line 5980: Line 5981: Line 5982: Line 5983: Line 5984: Line 5985: Line 5986: Line 5987: Line 5988: Line 5989: Line 5990: public class Coupon {Line 5991: public Coupon() {}Line 5992: Line 5993: public static string Add() {Line 5994: // TODOLine 5995: return "";Line 5996: }Line 5997: Line 5998: public static string Get(int shopId, string couponId, decimal total, ShopSetup shop) {Line 5999: int i=0;string ndd="";for(i=0; i<shop.NDD; i++)ndd+="0";Line 6000: Line 6001: string output = "";Line 6002: //try {couponId=Convert.ToString(XmlConvert.ToGuid(couponId));}Line 6003: try {Line 6004: couponId = Convert.ToString(couponId);Line 6005: } catch (Exception e) {Line 6006: couponId = "";Line 6007: }Line 6008: Line 6009: if (couponId.Equals("")) {Line 6010: output = "(1;0)";Line 6011: } else {Line 6012: bool isEOF = true;Line 6013: string coupon_name = "";Line 6014: decimal coupon_startAt = 0;Line 6015: DateTime coupon_dateA = DateTime.MinValue;Line 6016: DateTime coupon_dateB = DateTime.MaxValue;Line 6017: int coupon_type = 0;Line 6018: decimal coupon_value = 0;Line 6019: Line 6020: SqlConnection conn = new SqlConnection(shop.Path);Line 6021: conn.Open();Line 6022: Line 6023: string query = "SELECT * FROM sys_dc_n_gc_list WITH (NOLOCK) WHERE (type < 2) AND (codCoupon = @codCoupon)";Line 6024: SqlCommand cmd = new SqlCommand(query, conn);Line 6025: cmd.Parameters.Add(new SqlParameter("@codCoupon", SqlDbType.NVarChar));Line 6026: cmd.Parameters["@codCoupon"].Value = couponId;Line 6027: SqlDataReader rdr = cmd.ExecuteReader();Line 6028: if (rdr.Read()) {Line 6029: isEOF = false;Line 6030: if (DBNull.Value!=rdr["name"])coupon_name=(string)rdr["name"];Line 6031: if (DBNull.Value!=rdr["startAt"])coupon_startAt=(decimal)rdr["startAt"];Line 6032: Line 6033: if (DBNull.Value!=rdr["dateA"])Line 6034: coupon_dateA = Convert.ToDateTime(rdr["dateA"]);Line 6035: if (DBNull.Value!=rdr["dateB"])Line 6036: coupon_dateB = Convert.ToDateTime(Convert.ToString(rdr["dateB"]).Split(' ')[0] + " 23:59:59");Line 6037: Line 6038: if (DBNull.Value!=rdr["type"])coupon_type=Convert.ToInt32(rdr["type"]);Line 6039: if (DBNull.Value!=rdr["value"])coupon_value=(decimal)rdr["value"];Line 6040: }Line 6041: rdr.Close();Line 6042: Line 6043: if (isEOF) {Line 6044: output = "(1;0)";Line 6045: } else {Line 6046: switch(coupon_type) {Line 6047: case -1:Line 6048: if ( coupon_dateA <= DateTime.Now && DateTime.Now <= coupon_dateB ) {Line 6049: if (coupon_startAt <= total ) {Line 6050: output = string.Format("{0:0.00}", coupon_value);Line 6051: } else {Line 6052: output = "(1;1)";Line 6053: }Line 6054: } else {Line 6055: if ( DateTime.Now < coupon_dateA ) {Line 6056: output = "(1;2A)";Line 6057: } else {Line 6058: output = "(1;2B)";Line 6059: }Line 6060: }Line 6061: break;Line 6062: Line 6063: case 0:Line 6064: if ( coupon_dateA <= DateTime.Now && DateTime.Now <= coupon_dateB ) {Line 6065: if (coupon_startAt <= total && total > coupon_value ) {Line 6066: Line 6067: if ( coupon_name == "__AUTO_GENERATED_BY_PROMOTION__" ) {Line 6068: if ( UserSetup.getOrderStatus( shop.Path, Convert.ToInt32( couponId.Substring(15) ) ) > 2 ) {Line 6069: output = string.Format("{0:0.00}", coupon_value);Line 6070: } else {Line 6071: output = "(1;0)";Line 6072: }Line 6073: } else {Line 6074: output = string.Format("{0:0.00}", coupon_value );Line 6075: }Line 6076: Line 6077: } else {Line 6078: output = "(1;1)";Line 6079: }Line 6080: } else {Line 6081: if ( DateTime.Now < coupon_dateA ) {Line 6082: output = "(1;2A)";Line 6083: } else {Line 6084: output = "(1;2B)";Line 6085: }Line 6086: }Line 6087: break;Line 6088: Line 6089: case 1:Line 6090: if ( coupon_dateA <= DateTime.Now && DateTime.Now <= coupon_dateB) {Line 6091: if ( coupon_startAt <= total ) {Line 6092: output = string.Format("{0:0.00}", total * (coupon_value / 100) );Line 6093: } else {Line 6094: output = "(1;1)";Line 6095: }Line 6096: } else {Line 6097: if ( DateTime.Now < coupon_dateA ) {Line 6098: output = "(1;2A)";Line 6099: } else {Line 6100: output = "(1;2B)";Line 6101: }Line 6102: }Line 6103: break;Line 6104: Line 6105: case 2:Line 6106: output = "(1;3)";Line 6107: break;Line 6108: }Line 6109: }Line 6110: Line 6111: conn.Close();Line 6112: }Line 6113: return output;Line 6114: }Line 6115: Line 6116: public static decimal Get(string path, string couponId, decimal subTotal) {Line 6117: decimal output = 0;Line 6118: Line 6119: SqlConnection conn = new SqlConnection(path);Line 6120: conn.Open();Line 6121: Line 6122: string query = "SELECT codCoupon, name, type, value FROM sys_dc_n_gc_list WITH (NOLOCK) WHERE (codCoupon = @codCoupon)";Line 6123: SqlCommand cmd = new SqlCommand(query, conn);Line 6124: cmd.Parameters.Add(new SqlParameter("@codCoupon", SqlDbType.NVarChar));Line 6125: cmd.Parameters["@codCoupon"].Value = couponId;Line 6126: SqlDataReader rdr = cmd.ExecuteReader();Line 6127: Line 6128: try {Line 6129: if ( rdr.Read() ) {Line 6130: int type = Convert.ToInt32(rdr["type"]);Line 6131: if ( type >= 0 ) {Line 6132: if ( type == 1 ) {Line 6133: output = subTotal * ( Convert.ToDecimal(rdr["value"]) / 100 );Line 6134: } else {Line 6135: Line 6136: // promotionLine 6137: if ( Convert.ToString(rdr["name"]) == "__AUTO_GENERATED_BY_PROMOTION__" ) {Line 6138: if ( UserSetup.getOrderStatus( path, Convert.ToInt32( Convert.ToString(rdr["codCoupon"]).Substring(15) ) ) > 2 ) {Line 6139: output = Convert.ToDecimal(rdr[1]);Line 6140: }Line 6141: } else {Line 6142: output = Convert.ToDecimal(rdr[1]);Line 6143: }Line 6144: Line 6145: }Line 6146: }Line 6147: }Line 6148: } catch (Exception e) {};Line 6149: Line 6150: rdr.Close();Line 6151: conn.Close();Line 6152: Line 6153: return output;Line 6154: }Line 6155: Line 6156: public static string Body(int shopId, string couponId, string currType, decimal total, string ndd, bool isStatic, ShopSetup shop) {Line 6157: decimal trash;Line 6158: return Coupon.Body(shopId,couponId,currType,total,ndd,isStatic, out trash, shop);Line 6159: }Line 6160: Line 6161: public static string Body(int shopId, string couponId, string currType, decimal total, string ndd, bool isStatic, out decimal couponValue, ShopSetup shop) {Line 6162: string dc_label = "";Line 6163: string dc_value = string.Format("{0:0.00}",0);Line 6164: string disabled = "";Line 6165: if (!couponId.Equals("")) {Line 6166: // disabled = " disabled='disabled'";Line 6167: disabled = "";Line 6168: dc_value = Coupon.Get(shopId, couponId, total, shop);Line 6169: if (!ZenTools.Left(dc_value,1).Equals("(")) {Line 6170: dc_value = string.Format("{0:0.00}", dc_value);Line 6171: } else {Line 6172: dc_value = string.Format("{0:0.00}",0);Line 6173: }Line 6174: }Line 6175: Line 6176: couponValue = Convert.ToDecimal(dc_value);Line 6177: Line 6178: SqlConnection conn = new SqlConnection(shop.Path);Line 6179: conn.Open();Line 6180: Line 6181: string query = "SELECT * FROM sys_dc_n_gc_setup WITH (NOLOCK)";Line 6182: SqlCommand cmd = new SqlCommand(query,conn);Line 6183: SqlDataReader rdr = cmd.ExecuteReader();Line 6184: if (rdr.Read())dc_label = (string)rdr["dc_label"];Line 6185: Line 6186: rdr.Close();Line 6187: conn.Close();Line 6188: Line 6189: StringBuilder Sb = new StringBuilder();Line 6190: Sb.Append(" <div id='cart_dc'>\n");Line 6191: Sb.Append(" <table>\n");Line 6192: Line 6193: Sb.Append(" <tr>\n");Line 6194: Sb.Append(" <td width='50%' class='lft_half'>\n");Line 6195: Sb.Append(" <ul>\n");Line 6196: Sb.Append(" <li class='label'><span>" + dc_label + "</span></li>\n");Line 6197: if (!isStatic)Line 6198: Sb.Append(" <li class='field'><input id='coupon-id' type='text' class='a' name='couponId' maxlength='50' value='" + couponId + "' onchange='javascript:setMustRecharge(true);'" + disabled + " autocomplete='off' /></li>\n");Line 6199: elseLine 6200: Sb.Append(" <li class='field'><span>" + couponId + "</span></li>\n");Line 6201: if (!isStatic)Line 6202: Sb.Append(" <li class='submit'><a href='javascript:req_setCouponValue();'><img src='/octopus/design/images/" + shopId + "/cart_ok.gif' alt='' /></a></li>\n");Line 6203: Sb.Append(" </ul>\n");Line 6204: Sb.Append(" </td>\n");Line 6205: Sb.Append(" <td width='50%' class='rgt_half'>\n");Line 6206: Sb.Append(" <table><tr><th>" + dc_label + "</th><td><span id='coupon_value_parent'>" + currType + "<span id='coupon_value'>" + dc_value + "</span></span></td></tr></table>\n");Line 6207: Sb.Append(" </td>\n");Line 6208: Sb.Append(" </tr>\n");Line 6209: Sb.Append(" </table>\n");Line 6210: Sb.Append(" </div>\n");Line 6211: Line 6212: return Sb.ToString();Line 6213: }Line 6214: Line 6215: public static int getTimes(string path, string couponId) {Line 6216: int output = 0;Line 6217: Line 6218: SqlConnection conn = new SqlConnection(path);Line 6219: conn.Open();Line 6220: Line 6221: try {Line 6222: string query = "SELECT times FROM sys_dc_n_gc_list WITH (NOLOCK) WHERE (codCoupon = @codCoupon)";Line 6223: SqlCommand cmd = new SqlCommand(query, conn);Line 6224: cmd.Parameters.Add(new SqlParameter("@codCoupon", SqlDbType.NVarChar));Line 6225: cmd.Parameters["@codCoupon"].Value = couponId;Line 6226: output = Convert.ToInt32(cmd.ExecuteScalar());Line 6227: } catch (Exception e) {};Line 6228: Line 6229: conn.Close();Line 6230: Line 6231: return output;Line 6232: }Line 6233: Line 6234: public static bool used(string path, string couponId, string name, int userId) {Line 6235: bool output = false;Line 6236: Line 6237: SqlConnection conn = new SqlConnection(path);Line 6238: conn.Open();Line 6239: Line 6240: string query = @"Line 6241: SELECT COUNT(O.codOrder)Line 6242: FROM sys_orders O WITH (NOLOCK)Line 6243: INNER JOIN rel_ordersWdc_n_gc R WITH (NOLOCK) ON R.codOrder = O.codOrderLine 6244: INNER JOIN sys_dc_n_gc_list D WITH (NOLOCK) ON R.code = D.codCouponLine 6245: WHERE (O.codUser = @userId)Line 6246: AND (D.codCoupon = @couponId)Line 6247: AND ( (D.dateA <= O.date) AND (O.date <= D.dateB) OR (D.dateA <= O.date) AND (D.dateB IS NULL) )Line 6248: AND (D.name LIKE @name)Line 6249: ";Line 6250: Line 6251: SqlCommand cmd = new SqlCommand(query, conn);Line 6252: cmd.Parameters.Add(new SqlParameter("@userId", SqlDbType.Int));Line 6253: cmd.Parameters.Add(new SqlParameter("@couponId", SqlDbType.NVarChar));Line 6254: cmd.Parameters.Add(new SqlParameter("@name", SqlDbType.NVarChar));Line 6255: cmd.Parameters["@userId"].Value = userId;Line 6256: cmd.Parameters["@couponId"].Value = couponId;Line 6257: cmd.Parameters["@name"].Value = name + "%";Line 6258: Line 6259: if ( Convert.ToInt32(cmd.ExecuteScalar()) > 0 ) {Line 6260: output = true;Line 6261: }Line 6262: Line 6263: conn.Close();Line 6264: Line 6265: return output;Line 6266: }Line 6267: Line 6268: }Line 6269: Line 6270: Line 6271: Line 6272: Line 6273: Line 6274: Line 6275: Line 6276: Line 6277: Line 6278: Line 6279: public class Stock {Line 6280: public Stock() {}Line 6281: Line 6282: public static int Qt(string path, int codGrid) {Line 6283: int output = 0;Line 6284: Line 6285: SqlConnection conn = new SqlConnection(path);Line 6286: conn.Open();Line 6287: Line 6288: string query = "SELECT qt FROM sys_stock WITH (NOLOCK) WHERE (codGrid = @codGrid);";Line 6289: SqlCommand cmd = new SqlCommand(query, conn);Line 6290: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 6291: cmd.Parameters["@codGrid"].Value = codGrid;Line 6292: output = Convert.ToInt32(cmd.ExecuteScalar());Line 6293: Line 6294: conn.Close();Line 6295: Line 6296: return output;Line 6297: }Line 6298: Line 6299: public static int gridQt(string path, int codProd) {Line 6300: int output = 0;Line 6301: Line 6302: SqlConnection conn = new SqlConnection(path);Line 6303: conn.Open();Line 6304: Line 6305: string query = @"Line 6306: SELECT SUM(qt)Line 6307: FROM sys_stock WITH (NOLOCK)Line 6308: WHERE ( codGrid IN ( SELECT tbl_grid.codGrid FROM tbl_grid WITH (NOLOCK) WHERE (codProd = @codProd) AND (active = 1) ) )Line 6309: ";Line 6310: SqlCommand cmd = new SqlCommand(query, conn);Line 6311: cmd.Parameters.Add(new SqlParameter("@codProd", SqlDbType.Int));Line 6312: cmd.Parameters["@codProd"].Value = codProd;Line 6313: output = Convert.ToInt32(cmd.ExecuteScalar());Line 6314: Line 6315: conn.Close();Line 6316: Line 6317: return output;Line 6318: }Line 6319: Line 6320: public static string InsertInStockNotification(int shopId, int codGrid, string name, string email, string phone, ShopSetup shop) {Line 6321: string output = "";Line 6322: Line 6323: SqlConnection conn = new SqlConnection(shop.Path);Line 6324: conn.Open();Line 6325: Line 6326: string query = "INSERT INTO sys_isn_list(codGrid,name,email,jsonExt) VALUES(@codGrid, @name, @email, @json)";Line 6327: SqlCommand cmd = new SqlCommand(query, conn);Line 6328: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 6329: cmd.Parameters.Add(new SqlParameter("@name", SqlDbType.NVarChar));Line 6330: cmd.Parameters.Add(new SqlParameter("@email", SqlDbType.NVarChar));Line 6331: cmd.Parameters.Add(new SqlParameter("@json", SqlDbType.NText));Line 6332: cmd.Parameters["@codGrid"].Value = codGrid;Line 6333: cmd.Parameters["@name"].Value = name;Line 6334: cmd.Parameters["@email"].Value = email;Line 6335: cmd.Parameters["@json"].Value = ( phone != "" ? "{ \"phone\": \"" + phone + "\" }" : "{}" );Line 6336: int r = cmd.ExecuteNonQuery();Line 6337: Line 6338: if (r>0) {Line 6339: output += "<table><tr><th>Avise-me ao chegar</th></tr><tr><td>Seu cadastro foi realizado e logo que este produto estiver disponível, você será notificado.</td></tr></table>";Line 6340: Line 6341: /* --( Automatic email )----------------------------------------------------- */Line 6342: string isn_subj = "";Line 6343: string isn_body = "";Line 6344: string isn_prod = "";Line 6345: Line 6346: query = "SELECT subject, body FROM sys_emails WITH (NOLOCK) WHERE codEmail = 2";Line 6347: cmd = new SqlCommand(query, conn);Line 6348: SqlDataReader rdr = cmd.ExecuteReader();Line 6349: if (rdr.Read()) {Line 6350: isn_subj = (string)rdr["subject"];Line 6351: isn_body = (string)rdr["body"];Line 6352: isn_body = isn_body.Replace("[? user_name ?]",name);Line 6353: }Line 6354: rdr.Close();Line 6355: Line 6356: query = @"Line 6357: SELECTLine 6358: tbl_grid.ref,Line 6359: tbl_prod.[desc] AS ProdDesc,Line 6360: tbl_grid.codCompLine 6361: FROM tbl_prod WITH (NOLOCK)Line 6362: INNER JOIN tbl_grid WITH (NOLOCK) ON tbl_prod.codProd = tbl_grid.codProdLine 6363: WHERE (tbl_grid.codGrid = @cg)Line 6364: ";Line 6365: cmd = new SqlCommand(query,conn);Line 6366: cmd.Parameters.Add(new SqlParameter("@cg", SqlDbType.Int));Line 6367: cmd.Parameters["@cg"].Value = codGrid;Line 6368: rdr = cmd.ExecuteReader();Line 6369: if (rdr.Read()) {Line 6370: if (null!=rdr["ref"]) {Line 6371: isn_prod += Convert.ToString(rdr["ref"]);Line 6372: isn_prod += " - ";Line 6373: }Line 6374: isn_prod += (string)rdr["ProdDesc"];Line 6375: if (null!=rdr["codComp"]&&!Convert.ToString(rdr["codComp"]).Equals(""))isn_prod += " " + Generics.GridDescription(shop.Path, Convert.ToString(rdr["codComp"]));Line 6376: Line 6377: isn_subj = isn_subj.Replace("[? prod_name ?]",isn_prod);Line 6378: isn_body = isn_body.Replace("[? prod_name ?]",isn_prod);Line 6379: }Line 6380: rdr.Close();Line 6381: Line 6382: isn_body = shop.ShopTags(isn_body);Line 6383: Line 6384: //bool isn_mailer = ZenTools.Mail(shop.Email, email, isn_subj, isn_body);Line 6385: Line 6386: string res = ZenTools.SyncWebRequest(Line 6387: string.Format( "{0}shared/mail_auth.asp", shop.Http ),Line 6388: string.Format( "sid={0}&to={1}&subject={2}&body={3}", shopId, email, HttpUtility.UrlEncode( isn_subj ), HttpUtility.UrlEncode( isn_body ) )Line 6389: );Line 6390: Line 6391: } else {Line 6392: output += "<table><tr><th>Avise-me ao chegar</th></tr><tr><td>Não foi possível realizar o cadastro.</td></tr></table>";Line 6393: }Line 6394: Line 6395: conn.Close();Line 6396: Line 6397: return output;Line 6398: }Line 6399: Line 6400: // DEPRECATED 2014-06-18Line 6401: public static int AvailabilityUpdate(SqlConnection conn, SqlTransaction trans, int codGrid, int status) {Line 6402: int output = 0;Line 6403: Line 6404: string query = "UPDATE tbl_prices SET codAvailability = @availability WHERE (codGrid = @codGrid) AND (codAvailability < 3)";Line 6405: Line 6406: SqlCommand cmd = new SqlCommand(query, conn);Line 6407: cmd.Transaction = trans;Line 6408: cmd.Parameters.Add(new SqlParameter("@availability", SqlDbType.Int));Line 6409: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 6410: cmd.Parameters["@availability"].Value = status;Line 6411: cmd.Parameters["@codGrid"].Value = codGrid;Line 6412: output = Convert.ToInt32(cmd.ExecuteNonQuery());Line 6413: return output;Line 6414: }Line 6415: Line 6416: public static void IllustrativeCheck(SqlConnection conn, SqlTransaction trans, int codGrid) {Line 6417: bool gridSoldOut = false;Line 6418: string query = "";Line 6419: Line 6420: // check if grid is sold outLine 6421: query = @"Line 6422: SELECT COUNT(tbl_grid.codGrid)Line 6423: FROM tbl_grid WITH (NOLOCK)Line 6424: INNER JOIN tbl_prices WITH (NOLOCK) ON tbl_grid.codGrid = tbl_prices.codGridLine 6425: WHERE ( tbl_grid.codProd = ( SELECT TOP 1 codProd FROM tbl_grid WHERE tbl_grid.codGrid = @codGrid ) )Line 6426: AND (tbl_prices.codStatus <> 4 ) AND (tbl_prices.codAvailability = 1)Line 6427: ";Line 6428: Line 6429: SqlCommand cmd = new SqlCommand(query, conn);Line 6430: cmd.Transaction = trans;Line 6431: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 6432: cmd.Parameters["@codGrid"].Value = codGrid;Line 6433: if ( Convert.ToInt32(cmd.ExecuteScalar()) == 0 ) {Line 6434: gridSoldOut = true;Line 6435: }Line 6436: Line 6437: if ( gridSoldOut ) {Line 6438: // get illustrative codGridLine 6439: query = @"Line 6440: SELECT TOP 1 tbl_grid.codGridLine 6441: FROM tbl_grid WITH (NOLOCK)Line 6442: INNER JOIN tbl_prices WITH (NOLOCK) ON tbl_grid.codGrid = tbl_prices.codGridLine 6443: WHERE ( tbl_grid.codProd = ( SELECT TOP 1 codProd FROM tbl_grid WITH (NOLOCK) WHERE tbl_grid.codGrid = @codGrid ) )Line 6444: AND (tbl_prices.codStatus = 4 )Line 6445: ";Line 6446: Line 6447: cmd = new SqlCommand(query, conn);Line 6448: cmd.Transaction = trans;Line 6449: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 6450: cmd.Parameters["@codGrid"].Value = codGrid;Line 6451: int codGridIll = Convert.ToInt32(cmd.ExecuteScalar());Line 6452: Line 6453: if ( codGridIll > 0 ) {Line 6454: // update availability from illustrative productLine 6455: query = "UPDATE tbl_prices SET codAvailability = 2 WHERE (codGrid = @codGrid)";Line 6456: cmd = new SqlCommand(query, conn);Line 6457: cmd.Transaction = trans;Line 6458: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 6459: cmd.Parameters["@codGrid"].Value = codGridIll;Line 6460: cmd.ExecuteNonQuery();Line 6461: }Line 6462: }Line 6463: }Line 6464: Line 6465: }Line 6466: Line 6467: Line 6468: Line 6469: Line 6470: Line 6471: Line 6472: Line 6473: Line 6474: Line 6475: Line 6476: public class Transporters {Line 6477: public Transporters() {}Line 6478: Line 6479: public static int Add(int shopId, string transpName, string transpPhone, ShopSetup shop) {Line 6480: int output = 0;Line 6481: Line 6482: SqlConnection conn = new SqlConnection(shop.Path);Line 6483: conn.Open();Line 6484: Line 6485: SqlTransaction tran = conn.BeginTransaction();Line 6486: SqlCommand cmd = conn.CreateCommand();Line 6487: cmd.Connection = conn;Line 6488: cmd.Transaction = tran;Line 6489: try {Line 6490: cmd.CommandText = "INSERT INTO sys_transp (name, phone, active) VALUES (@ins_name, @ins_phone, 1)";Line 6491: cmd.Parameters.Add(new SqlParameter("@ins_name", SqlDbType.NVarChar));Line 6492: cmd.Parameters.Add(new SqlParameter("@ins_phone", SqlDbType.NVarChar));Line 6493: cmd.Parameters["@ins_name"].Value = transpName;Line 6494: cmd.Parameters["@ins_phone"].Value = transpPhone;Line 6495: output = cmd.ExecuteNonQuery();Line 6496: Line 6497: cmd.CommandText = "SELECT codTransp FROM sys_transp WITH (NOLOCK) WHERE name = @view_name";Line 6498: cmd.Parameters.Add(new SqlParameter("@view_name", SqlDbType.NVarChar));Line 6499: cmd.Parameters["@view_name"].Value = transpName;Line 6500: output = Convert.ToInt32(cmd.ExecuteScalar());Line 6501: Line 6502: tran.Commit();Line 6503: } catch (Exception e) {Line 6504: try {Line 6505: tran.Rollback();Line 6506: output = -1;Line 6507: } catch (SqlException sqlE) {Line 6508: output = -2;Line 6509: }Line 6510: }Line 6511: Line 6512: conn.Close();Line 6513: Line 6514: return output;Line 6515: }Line 6516: Line 6517: public static string List(int shopId, int transpId, ShopSetup shop) {Line 6518: string output = "";Line 6519: output += "<select class='a required' name='transp' style='width:140px'>";Line 6520: Line 6521: SqlConnection conn = new SqlConnection(shop.Path);Line 6522: conn.Open();Line 6523: Line 6524: string query = "SELECT codTransp, name FROM sys_transp WITH (NOLOCK) WHERE (active = 1) ORDER BY name";Line 6525: SqlCommand cmd = new SqlCommand(query, conn);Line 6526: SqlDataReader rdr = cmd.ExecuteReader();Line 6527: while(rdr.Read()) {Line 6528: output += "<option value='" + (int)rdr["codTransp"] + "'";Line 6529: if (transpId==(int)rdr["codTransp"])output+=" selected='selected'";Line 6530: output += ">" + (string)rdr["name"] + "</option>";Line 6531: }Line 6532: Line 6533: rdr.Close();Line 6534: conn.Close();Line 6535: Line 6536: output += "</select>";Line 6537: return output;Line 6538: }Line 6539: Line 6540: public static string Select(int shopId, int transpId, ShopSetup shop) {Line 6541: string output = "";Line 6542: Line 6543: SqlConnection conn = new SqlConnection(shop.Path);Line 6544: conn.Open();Line 6545: Line 6546: string query = "SELECT name, phone FROM sys_transp WITH (NOLOCK) WHERE (active = 1) AND (codTransp = @codTransp)";Line 6547: SqlCommand cmd = new SqlCommand(query, conn);Line 6548: cmd.Parameters.Add(new SqlParameter("@codTransp", SqlDbType.Int));Line 6549: cmd.Parameters["@codTransp"].Value = transpId;Line 6550: SqlDataReader rdr = cmd.ExecuteReader();Line 6551: Line 6552: if (rdr.Read()) {Line 6553: output += (string)rdr["name"] + " - Tel.: " + (string)rdr["phone"];Line 6554: }Line 6555: Line 6556: rdr.Close();Line 6557: conn.Close();Line 6558: Line 6559: return output;Line 6560: }Line 6561: Line 6562: }Line 6563: Line 6564: Line 6565: Line 6566: Line 6567: Line 6568: Line 6569: Line 6570: Line 6571: Line 6572: Line 6573: Line 6574: Line 6575: Line 6576: Line 6577: Line 6578: Line 6579: Line 6580: Line 6581: Line 6582: Line 6583: public class Quotation {Line 6584: public Quotation() {}Line 6585: Line 6586: public static void Add(string path, string email, string code, string cartId) {Line 6587: Add(path, email, code, cartId, "");Line 6588: }Line 6589: Line 6590: public static void Add(string path, string email, string code, string cartId, string idQtn ) {Line 6591: bool isRunning = true;Line 6592: string item_json = "";Line 6593: Line 6594: Delete(path, cartId);Line 6595: if ( idQtn != "" ) {Line 6596: Delete(path, idQtn);Line 6597: }Line 6598: Line 6599: StringDictionary Sd = new StringDictionary();Line 6600: Line 6601: SqlConnection conn = new SqlConnection(path);Line 6602: conn.Open();Line 6603: Line 6604: //--( Check if cart is empty )------------------------------------------Line 6605: string query = "SELECT count(codGrid) FROM sys_cart WITH (NOLOCK) WHERE (cid = @cartId)";Line 6606: SqlCommand cmd = new SqlCommand(query, conn);Line 6607: cmd.Parameters.Add(new SqlParameter("@cartId", SqlDbType.NVarChar));Line 6608: cmd.Parameters["@cartId"].Value = cartId;Line 6609: if ( Convert.ToInt32( cmd.ExecuteScalar() ) <= 0 ) {Line 6610: conn.Close();Line 6611: return;Line 6612: }Line 6613: Line 6614: query = "INSERT INTO sys_quotations (id, email, code) VALUES (@id, @email, @code)";Line 6615: cmd = new SqlCommand(query, conn);Line 6616: cmd.Parameters.Add(new SqlParameter("@id", SqlDbType.NVarChar));Line 6617: cmd.Parameters.Add(new SqlParameter("@email", SqlDbType.NVarChar));Line 6618: cmd.Parameters.Add(new SqlParameter("@code", SqlDbType.NVarChar));Line 6619: cmd.Parameters["@id"].Value = (idQtn != "" ? idQtn : cartId);Line 6620: cmd.Parameters["@email"].Value = email;Line 6621: cmd.Parameters["@code"].Value = code;Line 6622: Line 6623: if ( Convert.ToInt32( cmd.ExecuteNonQuery() ) == 0 )Line 6624: isRunning = false;Line 6625: Line 6626: if ( isRunning ) {Line 6627: query = "SELECT codGrid, qt FROM sys_cart WITH (NOLOCK) WHERE cid = @cartId";Line 6628: Line 6629: cmd = new SqlCommand(query, conn);Line 6630: cmd.Parameters.Add(new SqlParameter("@cartId", SqlDbType.NVarChar));Line 6631: cmd.Parameters["@cartId"].Value = cartId;Line 6632: SqlDataReader rdr = cmd.ExecuteReader();Line 6633: Line 6634: while( rdr.Read() ) {Line 6635: if ( Sd.ContainsKey( Convert.ToString(rdr[0]) ) ) {Line 6636: Sd[Convert.ToString(rdr[0])] = Convert.ToString( Convert.ToInt32(Sd[Convert.ToString(rdr[0])]) + Convert.ToInt32(rdr[1]) );Line 6637: } else {Line 6638: Sd.Add( Convert.ToString(rdr[0]), Convert.ToString(rdr[1]) );Line 6639: }Line 6640: }Line 6641: Line 6642: rdr.Close();Line 6643: Line 6644: Line 6645: Line 6646: foreach( DictionaryEntry Item in Sd ) {Line 6647: item_json = "{}";Line 6648: cmd = new SqlCommand(Line 6649: @"Line 6650: SELECT codGroup, ( (1 - discRate / 100) * prc ) AS prc_fullLine 6651: FROM tbl_prices WITH (NOLOCK)Line 6652: WHERE (codGrid = @codGrid)"Line 6653: , connLine 6654: );Line 6655: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 6656: cmd.Parameters["@codGrid"].Value = Convert.ToInt32(Item.Key);Line 6657: rdr = cmd.ExecuteReader();Line 6658: Line 6659: try {Line 6660: // get item priceLine 6661: object o = JavaScriptDeserializer.DeserializeFromJson("{}", typeof(NameValueCollection));Line 6662: while( rdr.Read() ) {Line 6663: ((NameValueCollection)o)["unit_prc_" + Convert.ToString(rdr["codGroup"])] = Convert.ToString(rdr["prc_full"]);Line 6664: }Line 6665: item_json = JavaScriptSerializer.Serialize(o);Line 6666: } catch (Exception ex) {}Line 6667: Line 6668: rdr.Close();Line 6669: Line 6670: query = "INSERT INTO sys_quotationsBodies (idQuotation, codGrid, qt, json) VALUES (@idQuotation, @codGrid, @qt, @json)";Line 6671: cmd = new SqlCommand(query, conn);Line 6672: cmd.Parameters.Add(new SqlParameter("@idQuotation", SqlDbType.NVarChar));Line 6673: cmd.Parameters.Add(new SqlParameter("@codGrid", SqlDbType.Int));Line 6674: cmd.Parameters.Add(new SqlParameter("@qt", SqlDbType.Int));Line 6675: cmd.Parameters.Add(new SqlParameter("@json", SqlDbType.NText));Line 6676: cmd.Parameters["@idQuotation"].Value = (idQtn != "" ? idQtn : cartId);Line 6677: cmd.Parameters["@codGrid"].Value = Convert.ToInt32(Item.Key);Line 6678: cmd.Parameters["@qt"].Value = Convert.ToInt32(Item.Value);Line 6679: cmd.Parameters["@json"].Value = item_json;Line 6680: cmd.ExecuteNonQuery();Line 6681: }Line 6682: }Line 6683: Line 6684: conn.Close();Line 6685: }Line 6686: Line 6687: Line 6688: public static void Delete(string path, string cartId) {Line 6689: SqlConnection conn = new SqlConnection(path);Line 6690: conn.Open();Line 6691: Line 6692: string query = "DELETE FROM sys_quotations WHERE id = @id";Line 6693: Line 6694: SqlCommand cmd = new SqlCommand(query, conn);Line 6695: cmd.Parameters.Add(new SqlParameter("@id", SqlDbType.NVarChar));Line 6696: cmd.Parameters["@id"].Value = cartId;Line 6697: cmd.ExecuteNonQuery();Line 6698: Line 6699: Line 6700: conn.Close();Line 6701: }Line 6702: Line 6703: public static void Add2cart(int shopId, string idQtn, int codGroup, ShopSetup shop) {Line 6704: Add2cart(shopId, idQtn, "", codGroup, shop);Line 6705: }Line 6706: Line 6707: public static void Add2cart(int shopId, string idQtn, string cartId, int codGroup, ShopSetup shop) {Line 6708: StringDictionary Qtn = new StringDictionary();Line 6709: Line 6710: SqlConnection conn = new SqlConnection(shop.Path);Line 6711: conn.Open();Line 6712: Line 6713: string query = @"Line 6714: SELECT sys_quotationsBodies.codGrid, sys_quotationsBodies.qtLine 6715: FROM sys_quotationsBodies WITH (NOLOCK)Line 6716: INNER JOIN tbl_grid WITH (NOLOCK) ON sys_quotationsBodies.codGrid = tbl_grid.codGridLine 6717: INNER JOIN tbl_prices WITH (NOLOCK) ON tbl_grid.codGrid = tbl_prices.codGridLine 6718: WHERE (idQuotation = @idQuotation)Line 6719: AND (tbl_grid.active = 1)Line 6720: AND (tbl_prices.codAvailability = 1)Line 6721: AND (tbl_prices.codGroup = @codGroup)Line 6722: ";Line 6723: Line 6724: SqlCommand cmd = new SqlCommand(query, conn);Line 6725: cmd.Parameters.Add(new SqlParameter("@idQuotation", SqlDbType.NVarChar));Line 6726: cmd.Parameters.Add(new SqlParameter("@codGroup", SqlDbType.Int));Line 6727: cmd.Parameters["@idQuotation"].Value = idQtn;Line 6728: cmd.Parameters["@codGroup"].Value = codGroup;Line 6729: SqlDataReader rdr = cmd.ExecuteReader();Line 6730: while( rdr.Read() ) {Line 6731: Qtn.Add( Convert.ToString(rdr[0]), Convert.ToString(rdr[1]) );Line 6732: }Line 6733: rdr.Close();Line 6734: Line 6735: //--( Remove from cart )------------------------------------------------Line 6736: Cart.Delete(shopId, idQtn, shop);Line 6737: if ( cartId != "" ) {Line 6738: Cart.Delete(shopId, cartId, shop);Line 6739: }Line 6740: Line 6741: //--( Add to cart )-----------------------------------------------------Line 6742: foreach( DictionaryEntry Item in Qtn ) {Line 6743: Cart.Add( shopId, (cartId != "" ? cartId : idQtn), Convert.ToInt32(Item.Key), Convert.ToInt32(Item.Value), shop);Line 6744: }Line 6745: Line 6746: conn.Close();Line 6747: }Line 6748: Line 6749: }Line 6750: Line 6751: Line 6752: Line 6753: Line 6754: Line 6755: Line 6756: Line 6757: Line 6758: Line 6759: Line 6760: public class BuyTogether {Line 6761: Line 6762: private int shopId;Line 6763: Line 6764: private int userId;Line 6765: Line 6766: private string cartId;Line 6767: Line 6768: private string config;Line 6769: Line 6770: private ShopSetup shop;Line 6771: Line 6772: public BuyTogether(int sid, string thisConfig, int uid, string cid, ShopSetup Shop) {Line 6773: shopId = sid;Line 6774: config = thisConfig;Line 6775: userId = uid;Line 6776: cartId = cid;Line 6777: shop = Shop;Line 6778: }Line 6779: Line 6780: public string display(int codProd) {Line 6781: string query = "";Line 6782: string prodCollection = "";Line 6783: Line 6784: string[] priceLabels = new string[4];Line 6785: priceLabels[0] = "de: ";Line 6786: priceLabels[1] = "por: ";Line 6787: priceLabels[2] = "economize: ";Line 6788: priceLabels[3] = "comprando junto: ";Line 6789: Line 6790: string[] imgSizes = shop.getImgSize("T");Line 6791: Line 6792: decimal[] Prices = null;Line 6793: Line 6794: int i = 0;Line 6795: int plusIndex = 0;Line 6796: Line 6797: string ndd=""; for( i = 0; i < shop.NDD; i++) ndd += "0";Line 6798: Line 6799: decimal comboTotal = 0;Line 6800: decimal comboSave = 0;Line 6801: Line 6802: StringDictionary Descriptions = new StringDictionary();Line 6803: Line 6804: SqlConnection conn = new SqlConnection(shop.Path);Line 6805: conn.Open();Line 6806: Line 6807: //--( get combo id )--------------------------------------------Line 6808: query = @"Line 6809: SELECT [id]Line 6810: FROM tbl_buyTogether WITH (NOLOCK)Line 6811: WHERE ([id] = @codProd)Line 6812: GROUP BY id HAVING COUNT(id) > 1Line 6813: ";Line 6814: SqlCommand cmd = new SqlCommand(query, conn);Line 6815: cmd.Parameters.Add(new SqlParameter("@codProd", SqlDbType.Int));Line 6816: cmd.Parameters["@codProd"].Value = codProd;Line 6817: int comboId = Convert.ToInt32( cmd.ExecuteScalar() );Line 6818: Line 6819: StringBuilder Sb = new StringBuilder();Line 6820: StringBuilder Ct = new StringBuilder(); // Combo TotalsLine 6821: Line 6822: if ( comboId > 0 ) {Line 6823: Sb.Append(" <div id='buy-together'>"); Sb.Append(System.Environment.NewLine);Line 6824: Sb.Append(" <a name='buy-together'><font class='subtitle'>Compre junto</font></a>"); Sb.Append(System.Environment.NewLine);Line 6825: Sb.Append(" <div id='buy-together-combo'>"); Sb.Append(System.Environment.NewLine);Line 6826: Sb.Append(" <div id='combo_imgs'>"); Sb.Append(System.Environment.NewLine);Line 6827: Sb.Append(" <ul>"); Sb.Append(System.Environment.NewLine);Line 6828: Sb.Append(" <li id='item" + codProd + "'>"); Sb.Append(System.Environment.NewLine);Line 6829: Sb.Append(" <div class='item_box'>"); Sb.Append(System.Environment.NewLine);Line 6830: Sb.Append(" <div class='item_img'>"); Sb.Append(System.Environment.NewLine);Line 6831: Line 6832: if ( shop.useLazyLoad )Line 6833: Sb.Append("<img class='lazyload' src='/octopus/design/images/blank.gif' data-src='" + getImgSrc(codProd) + "' />");Line 6834: elseLine 6835: Sb.Append("<img loading='lazy' src='" + getImgSrc(codProd) + "' alt='" + getProdDesc( codProd ) + "' title='" + getProdDesc( codProd ) + "' width='" + imgSizes[0] + "' height='" + imgSizes[1] + "' />");Line 6836: Line 6837: Sb.Append(System.Environment.NewLine);Line 6838: Sb.Append(" </div>"); Sb.Append(System.Environment.NewLine);Line 6839: Sb.Append(" </div>"); Sb.Append(System.Environment.NewLine);Line 6840: Sb.Append(" </li>"); Sb.Append(System.Environment.NewLine);Line 6841: Line 6842: prodCollection = ";" + codProd;Line 6843: Line 6844: query = @"Line 6845: SELECTLine 6846: B.[codProd],Line 6847: P.[desc]Line 6848: FROM tbl_buyTogether B WITH (NOLOCK)Line 6849: INNER JOIN tbl_prod P WITH (NOLOCK) ON B.[codProd] = P.[codProd]Line 6850: INNER JOIN tbl_grid G WITH (NOLOCK) ON P.[codProd] = G.[codProd]Line 6851: WHERE (B.[id] = @id) AND (B.[codProd] <> @codProd) AND (G.[active] = 1)Line 6852: ";Line 6853: cmd = new SqlCommand(query, conn);Line 6854: cmd.Parameters.Add(new SqlParameter("@id", SqlDbType.Int));Line 6855: cmd.Parameters.Add(new SqlParameter("@codProd", SqlDbType.Int));Line 6856: cmd.Parameters["@id"].Value = comboId;Line 6857: cmd.Parameters["@codProd"].Value = codProd;Line 6858: Line 6859: SqlDataReader rdr = cmd.ExecuteReader();Line 6860: Line 6861: int iCodProd = 0;Line 6862: i = 1;Line 6863: Line 6864: if ( !rdr.HasRows ) {Line 6865: // EOF: realease unmanaged resources and exit functionLine 6866: string jnk = Sb.ToString();Line 6867: rdr.Close();Line 6868: conn.Close();Line 6869: return "";Line 6870: }Line 6871: Line 6872: while( rdr.Read() ) {Line 6873: iCodProd = Convert.ToInt32(rdr[0]);Line 6874: Prices = getPrices(iCodProd, comboId);Line 6875: Line 6876: if ( i > 1 )Line 6877: plusIndex++;Line 6878: Line 6879: Line 6880: if (Prices[3] != 2) {Line 6881: Sb.Append(" <li id='plus" + plusIndex + "' class='plus'><font style='font-size:20px;'>+</font></li>"); Sb.Append(System.Environment.NewLine);Line 6882: Line 6883: Sb.Append(" <li id='item" + iCodProd + "'>"); Sb.Append(System.Environment.NewLine);Line 6884: Sb.Append(" <div class='item_box'>"); Sb.Append(System.Environment.NewLine);Line 6885: Sb.Append(" <div class='item_img'>"); Sb.Append(System.Environment.NewLine);Line 6886: Sb.Append(" <a href='" + getAnchorHref(iCodProd) + "'>");Line 6887: Line 6888: if ( shop.useLazyLoad )Line 6889: Sb.Append(" <img class='lazyload' src='/octopus/design/images/blank.gif' data-src='" + getImgSrc(Convert.ToInt32(iCodProd)) + "' alt='' title='' />");Line 6890: elseLine 6891: Sb.Append(" <img loading='lazy' src='" + getImgSrc(Convert.ToInt32(iCodProd)) + "' alt='" + getProdDesc( iCodProd ) + "' title='" + getProdDesc( iCodProd ) + "' width='" + imgSizes[0] + "' height='" + imgSizes[1] + "' />");Line 6892: Line 6893: Sb.Append(" </a>"); Sb.Append(System.Environment.NewLine);Line 6894: Sb.Append(" </div>"); Sb.Append(System.Environment.NewLine);Line 6895: Sb.Append(" </div>"); Sb.Append(System.Environment.NewLine);Line 6896: Sb.Append(" </li>"); Sb.Append(System.Environment.NewLine);Line 6897: }Line 6898: Line 6899: prodCollection += ";" + iCodProd;Line 6900: i++;Line 6901: }Line 6902: Line 6903: rdr.Close();Line 6904: Line 6905: //--( Product codes collection )------------------------------------Line 6906: prodCollection = prodCollection.Substring(1);Line 6907: Line 6908: Sb.Append(" </ul>"); Sb.Append(System.Environment.NewLine);Line 6909: Sb.Append(" </div>"); Sb.Append(System.Environment.NewLine);Line 6910: Sb.Append(" {COMBO_TOTALS}"); Sb.Append(System.Environment.NewLine);Line 6911: Sb.Append(" <div id='combo_txts' class='combo_on'>"); Sb.Append(System.Environment.NewLine);Line 6912: Sb.Append(" <ul>"); Sb.Append(System.Environment.NewLine);Line 6913: Line 6914: i = 0;Line 6915: plusIndex = 0;Line 6916: Line 6917: int tp = prodCollection.Split(';').Length;Line 6918: Line 6919: foreach( string prod in prodCollection.Split(';') ) {Line 6920: iCodProd = Convert.ToInt32(prod);Line 6921: Line 6922: Prices = getPrices(iCodProd, comboId);Line 6923: Line 6924: if ( i > 1 )Line 6925: plusIndex++;Line 6926: Line 6927: Sb.Append(" <li id='item" + iCodProd + "_txt' class='" + ( ( Prices[3] == 2 ) ? "item_off" : "item_on" ) + "'>"); Sb.Append(System.Environment.NewLine);Line 6928: Sb.Append(" <input type='checkbox' id='c_" + iCodProd + "' name='itemCheck' class='item_chk' value='" + getCodGrid(iCodProd) + "' " + ( ( Prices[3] == 2 ) ? "" : "checked='checked'" ) + " onclick='toggleIt(this.id, " + iCodProd + ", " + Convert.ToString(Prices[1]).Replace(',', '.') + ", " + Convert.ToString(Prices[2]).Replace(',', '.') + ", " + plusIndex + ")' " + ( ( i==0 || Prices[3] == 2 ) ? " disabled='disabled' " : "" ) + "/>"); Sb.Append(System.Environment.NewLine);Line 6929: Sb.Append(" <a href='" + getAnchorHref( iCodProd ) + "'><font class='item_desc'>" + getProdDesc( iCodProd ) + ( ( Prices[3] == 2 ) ? " (ESGOTADO)" : "" ) + "</font></a>"); Sb.Append(System.Environment.NewLine);Line 6930: Sb.Append(" <div class='item_prices'>"); Sb.Append(System.Environment.NewLine);Line 6931: Line 6932: //--( Prices )--------------------------------------------------Line 6933: if (Prices[1] < Prices[0]) {Line 6934: Sb.Append(" <font class='item_listPrice'><label>" + priceLabels[0] + "</label> " + shop.CurrType + string.Format("{0:0." + ndd + "}",Prices[0]) + "</font>"); Sb.Append(System.Environment.NewLine);Line 6935: Sb.Append(" <font class='item_ourPrice'><label>" + priceLabels[1] + "</label> " + shop.CurrType + string.Format("{0:0." + ndd + "}", Prices[1]) + "</font>"); Sb.Append(System.Environment.NewLine);Line 6936: Sb.Append(" <font class='item_save'><label>" + priceLabels[2] + "</label> " + shop.CurrType + string.Format("{0:0.00}",Prices[2]) + "</font>"); Sb.Append(System.Environment.NewLine);Line 6937: comboTotal += Prices[1];Line 6938: comboSave += Prices[2];Line 6939: } else {Line 6940: Sb.Append(" <font class='item_ourPrice'><label>" + priceLabels[1] + "</label> " + shop.CurrType + string.Format("{0:0." + ndd + "}",Prices[0]) + "</font>"); Sb.Append(System.Environment.NewLine);Line 6941: comboTotal += Prices[0];Line 6942: }Line 6943: Line 6944: Sb.Append(" </div>"); Sb.Append(System.Environment.NewLine);Line 6945: Sb.Append(" </li>"); Sb.Append(System.Environment.NewLine);Line 6946: Line 6947: i++;Line 6948: }Line 6949: Line 6950: Sb.Append(" </ul>"); Sb.Append(System.Environment.NewLine);Line 6951: Sb.Append(" </div>"); Sb.Append(System.Environment.NewLine);Line 6952: Sb.Append(" </div>"); Sb.Append(System.Environment.NewLine);Line 6953: Sb.Append(" </div>"); Sb.Append(System.Environment.NewLine);Line 6954: Line 6955: /* Para melhor vizualio do "Compre Junto" o fragmento abaixo serLine 6956: inserido entre as imagens e os textos. */Line 6957: Line 6958: Ct.Append(" <div id='details-buy-together-combo-total' class='combo_total'>"); Ct.Append(System.Environment.NewLine);Line 6959: Ct.Append(" <font class='combo_ourPrice'><label>" + priceLabels[3] + "</label> " + shop.CurrType + "<label id='bt-our-price'>" + string.Format("{0:0.00}", comboTotal ) + "</label></font>"); Ct.Append(System.Environment.NewLine);Line 6960: Line 6961: if ( comboSave > 0 )Line 6962: Line 6963: Ct.Append(" <font class='combo_save'><label>" + priceLabels[2] + "</label>" + shop.CurrType + "<label id='bt-save-price'>" + string.Format( "{0:0.00}", comboSave ) + "</label></font>"); Ct.Append(System.Environment.NewLine);Line 6964: Line 6965: Ct.Append(" </div>"); Sb.Append(System.Environment.NewLine);Line 6966: Ct.Append(" <div id='details-buy-together-buy'>"); Ct.Append(System.Environment.NewLine);Line 6967: Ct.Append(" <font class='item_btn_buy_bottom'>"); Ct.Append(System.Environment.NewLine);Line 6968: Ct.Append(" <a href=\"javascript:req_btAddItems('" + shop.Http + config + "'," + shopId + ",'" + cartId + "'," + Convert.ToString(shop.UseEG).ToLower() + "," + shop.UseFC + "," + userId + ",0);\">"); Sb.Append(System.Environment.NewLine);Line 6969: Ct.Append(" <img src='/octopus/design/images/" + shopId + "/cart_buy_together.gif' alt='' />"); Ct.Append(System.Environment.NewLine);Line 6970: Ct.Append(" </a>"); Ct.Append(System.Environment.NewLine);Line 6971: Ct.Append(" </font>"); Ct.Append(System.Environment.NewLine);Line 6972: Ct.Append(" </div>"); Ct.Append(System.Environment.NewLine);Line 6973: }Line 6974: Line 6975: conn.Close();Line 6976: Line 6977: return Sb.ToString().Replace("{COMBO_TOTALS}", Ct.ToString());Line 6978: }Line 6979: Line 6980: public string getDiscountByCart(string cartId, out decimal discountBt, ShopSetup shop) {Line 6981: string output = "";Line 6982: decimal[] Prices = null;Line 6983: int i = 0;Line 6984: string ndd="";Line 6985: for(i=0;i<shop.NDD;i++)ndd+="0";Line 6986: Line 6987: discountBt = 0;Line 6988: Line 6989: StringDictionary Combos = new StringDictionary();Line 6990: Line 6991: SqlConnection conn = new SqlConnection(shop.Path);Line 6992: conn.Open();Line 6993: Line 6994: string query = @"Line 6995: SELECTLine 6996: COUNT(codGrid) AS items,Line 6997: idBt,Line 6998: (Line 6999: SELECT TOP 1 qtLine 7000: FROM sys_cart WITH (NOLOCK)Line 7001: WHERE (cid = @cartId) AND (idBt = C.idBt) ORDER BY qt ASCLine 7002: ) AS qtyLine 7003: FROM sys_cart C WITH (NOLOCK)Line 7004: WHERE (C.cid = @cartId) AND (C.idBt > 0)Line 7005: GROUP BY idBTLine 7006: ";Line 7007: SqlCommand cmd = new SqlCommand(query, conn);Line 7008: cmd.Parameters.Add(new SqlParameter("@cartId", SqlDbType.NVarChar));Line 7009: cmd.Parameters["@cartId"].Value = cartId;Line 7010: SqlDataReader rdr = cmd.ExecuteReader();Line 7011: while(rdr.Read()) {Line 7012: if ( Convert.ToInt32(rdr["items"]) > 1 ) {Line 7013: Combos.Add(Convert.ToString(rdr["idBt"]), Convert.ToString(rdr["qty"]));Line 7014: }Line 7015: }Line 7016: rdr.Close();Line 7017: Line 7018: foreach(DictionaryEntry Combo in Combos) {Line 7019: query = @"Line 7020: SELECT B.codProdLine 7021: FROM tbl_buyTogether B WITH (NOLOCK)Line 7022: INNER JOIN tbl_grid G WITH (NOLOCK) ON B.codProd = G.codProdLine 7023: INNER JOIN sys_cart C WITH (NOLOCK) ON G.codGrid = C.codGridLine 7024: WHERE (B.id = @id) AND (C.cid = @cartId)Line 7025: ";Line 7026: cmd = new SqlCommand(query, conn);Line 7027: cmd.Parameters.Add(new SqlParameter("@id", SqlDbType.Int));Line 7028: cmd.Parameters.Add(new SqlParameter("@cartId", SqlDbType.NVarChar));Line 7029: cmd.Parameters["@id"].Value = Convert.ToInt32(Combo.Key);Line 7030: cmd.Parameters["@cartId"].Value = cartId;Line 7031: rdr = cmd.ExecuteReader();Line 7032: while(rdr.Read()) {Line 7033: Prices = getPrices(Convert.ToInt32(rdr[0]), Convert.ToInt32(Combo.Key));Line 7034: discountBt += Convert.ToInt32(Combo.Value) * Prices[2];Line 7035: }Line 7036: rdr.Close();Line 7037: }Line 7038: conn.Close();Line 7039: Line 7040: output = "<table width='100%'>\n"Line 7041: + " <thead></thead>\n"Line 7042: + " <tfoot></tfoot>\n"Line 7043: + " <tbody>\n"Line 7044: + " <tr>\n"Line 7045: + " <td width='50%' class='lft_half'>\n"Line 7046: + " </td>\n"Line 7047: + " <td width='50%' class='rgt_half'>\n"Line 7048: + " <table width='100%'>\n"Line 7049: + " <thead></thead>\n"Line 7050: + " <tfoot></tfoot>\n"Line 7051: + " <tbody>\n"Line 7052: + " <th>Desconto comprando junto:</th>\n"Line 7053: + " <td>" + shop.CurrType + "<font id='buy_together_discount'>" + string.Format("{0:0.00}", discountBt) + "</font></td>\n"Line 7054: + " </tbody>\n"Line 7055: + " </table>\n"Line 7056: + " </td>\n"Line 7057: + " </tr>\n"Line 7058: + " </tbody>\n"Line 7059: + "</table>\n";Line 7060: Line 7061: return output;Line 7062: }Line 7063: Line 7064: private string getProdDesc(int codProd) {Line 7065: string output = "";Line 7066: Line 7067: SqlConnection conn = new SqlConnection(shop.Path);Line 7068: conn.Open();Line 7069: Line 7070: string query = "SELECT [desc] FROM tbl_prod WITH (NOLOCK) WHERE codProd = @codProd";Line 7071: Line 7072: SqlCommand cmd = new SqlCommand(query, conn);Line 7073: cmd.Parameters.Add(new SqlParameter("@codProd", SqlDbType.Int));Line 7074: cmd.Parameters["@codProd"].Value = codProd;Line 7075: Line 7076: output = Convert.ToString(cmd.ExecuteScalar());Line 7077: Line 7078: conn.Close();Line 7079: Line 7080: return output;Line 7081: }Line 7082: Line 7083: private string getImgSrc(int codProd) {Line 7084: string output = "";Line 7085: int codGrid = 0;Line 7086: Line 7087: SqlConnection conn = new SqlConnection(shop.Path);Line 7088: conn.Open();Line 7089: Line 7090: string query = @"Line 7091: SELECT TOP 1 G.[codGrid]Line 7092: FROM tbl_prod P WITH (NOLOCK)Line 7093: INNER JOIN tbl_grid G WITH (NOLOCK) ON P.[codProd] = G.[codProd]Line 7094: WHERE (P.[codProd] = @codProd) AND (G.[link] = 1)Line 7095: ";Line 7096: SqlCommand cmd = new SqlCommand(query, conn);Line 7097: cmd.Parameters.Add(new SqlParameter("@codProd", SqlDbType.Int));Line 7098: cmd.Parameters["@codProd"].Value = codProd;Line 7099: codGrid = Convert.ToInt32(cmd.ExecuteScalar());Line 7100: if ( codGrid > 0 )Line 7101: output = Details.getProductImgSrc(shopId, codGrid, shop).Replace("{size}", "t");Line 7102: conn.Close();Line 7103: Line 7104: return output;Line 7105: }Line 7106: Line 7107: Line 7108: private string getAnchorHref(int codProd) {Line 7109: string output = "";Line 7110: Line 7111: SqlConnection conn = new SqlConnection(shop.Path);Line 7112: conn.Open();Line 7113: Line 7114: string query = @"Line 7115: SELECTLine 7116: tbl_prod.[desc] AS ProdDesc,Line 7117: tbl_grid.ref,Line 7118: tbl_grid.codGridLine 7119: FROM tbl_prod WITH (NOLOCK)Line 7120: INNER JOIN tbl_grid WITH (NOLOCK) ON tbl_prod.codProd = tbl_grid.codProdLine 7121: WHERE tbl_prod.codProd = @codProdLine 7122: ";Line 7123: SqlCommand cmd = new SqlCommand(query, conn);Line 7124: cmd.Parameters.Add(new SqlParameter("@codProd", SqlDbType.Int));Line 7125: cmd.Parameters["@codProd"].Value = codProd;Line 7126: SqlDataReader rdr = cmd.ExecuteReader();Line 7127: Line 7128: if ( rdr.Read() ) {Line 7129: output = String.Format(Line 7130: "{0}/{1}.{2}.html",Line 7131: shop.Http.Replace("/octopus/", ""), ZenTools.urlize((string)rdr["ProdDesc"]), Convert.ToInt32(rdr["codGrid"])Line 7132: );Line 7133: }Line 7134: Line 7135: rdr.Close();Line 7136: conn.Close();Line 7137: Line 7138: return output;Line 7139: }Line 7140: Line 7141: private decimal[] getPrices(int codProd, int comboId) {Line 7142: decimal[] output = new decimal[4];Line 7143: Line 7144: SqlConnection conn = new SqlConnection(shop.Path);Line 7145: conn.Open();Line 7146: Line 7147: string query = String.Format(@"Line 7148: SELECTLine 7149: tbl_prices.prc,Line 7150: tbl_prices.discRate,Line 7151: tbl_prices.codAvailability AS prodAvail,Line 7152: ISNULL( ( SELECT TOP 1 discRate FROM tbl_buyTogether WITH (NOLOCK) WHERE ( id = {0} ) AND ( codProd = {1} ) ), 0) AS discRateBtLine 7153: FROM tbl_prices WITH (NOLOCK)Line 7154: INNER JOIN tbl_grid WITH (NOLOCK) ON tbl_prices.codGrid = tbl_grid.codGridLine 7155: WHERE ( tbl_grid.codProd = @codProd ) AND ( tbl_prices.codGroup = @codGroup )Line 7156: ", comboId, codProd);Line 7157: Line 7158: SqlCommand cmd = new SqlCommand(query, conn);Line 7159: cmd.Parameters.Add(new SqlParameter("@codProd", SqlDbType.Int));Line 7160: cmd.Parameters.Add(new SqlParameter("@codGroup", SqlDbType.Int));Line 7161: cmd.Parameters["@codProd"].Value = codProd;Line 7162: cmd.Parameters["@codGroup"].Value = UserSetup.UserGroup(shop.Path, userId);Line 7163: Line 7164: SqlDataReader rdr = cmd.ExecuteReader();Line 7165: Line 7166: if (rdr.Read()) {Line 7167: decimal thisPrice = 0;Line 7168: decimal thisPriceBt = 0;Line 7169: Line 7170: if ( Convert.ToInt32(rdr["prodAvail"]) != 2 ) {Line 7171: thisPrice = ( 1 - Convert.ToDecimal(rdr["discRate"]) / 100 ) * Convert.ToDecimal(rdr["prc"]);Line 7172: thisPriceBt = (1 - Convert.ToDecimal(rdr["discRateBt"]) / 100) * thisPrice;Line 7173: }Line 7174: Line 7175: output[0] = Math.Round(thisPrice, 2);Line 7176: output[1] = Math.Round(thisPriceBt, 2);Line 7177: output[2] = Math.Round(thisPrice - thisPriceBt, 2);Line 7178: output[3] = Convert.ToInt32(rdr["prodAvail"]);Line 7179: }Line 7180: Line 7181: rdr.Close();Line 7182: conn.Close();Line 7183: Line 7184: Line 7185: return output;Line 7186: }Line 7187: Line 7188: private int getCodGrid(int codProd) {Line 7189: Line 7190: int output = 0;Line 7191: Line 7192: SqlConnection conn = new SqlConnection(shop.Path);Line 7193: conn.Open();Line 7194: Line 7195: string query = "SELECT codGrid FROM tbl_grid WITH (NOLOCK) WHERE codProd = @codProd";Line 7196: Line 7197: SqlCommand cmd = new SqlCommand(query, conn);Line 7198: cmd.Parameters.Add(new SqlParameter("@codProd", SqlDbType.Int));Line 7199: cmd.Parameters["@codProd"].Value = codProd;Line 7200: output = Convert.ToInt32(cmd.ExecuteScalar());Line 7201: Line 7202: Line 7203: conn.Close();Line 7204: Line 7205: return output;Line 7206: }Line 7207: }Line 7208: Line 7209: Line 7210: Line 7211: Line 7212: Line 7213: Line 7214: Line 7215: Line 7216: Line 7217: Line 7218: public class Billing {Line 7219: public Billing(){}Line 7220: Line 7221: public string getCreditCardOptions(string currType, string sNdd, string path, int shopId, int codCC, decimal orderTotal, int priceGroup, int parcelTimeSelected) {Line 7222: string query = "";Line 7223: string flag = "";Line 7224: Line 7225: StringBuilder Sb = new StringBuilder();Line 7226: Sb.Append( "<ul id='credit-card-options'>\n" );Line 7227: Line 7228: SqlConnection conn = new SqlConnection(ConfigurationSettings.AppSettings["coreConn"]);Line 7229: conn.Open();Line 7230: Line 7231: query = @"Line 7232: SELECTLine 7233: tbl_cc.src,Line 7234: tbl_cc.codCC,Line 7235: tbl_cc.nameLine 7236: FROM tbl_cc WITH (NOLOCK)Line 7237: INNER JOIN rel_coreCC WITH (NOLOCK) ON tbl_cc.codCC = rel_coreCC.codCCLine 7238: WHERE (rel_coreCC.sid = @shopId) ORDER BY tbl_cc.codCCLine 7239: ";Line 7240: Line 7241: SqlCommand cmd = new SqlCommand(query, conn);Line 7242: cmd.Parameters.Add(new SqlParameter("@shopId", SqlDbType.Int));Line 7243: cmd.Parameters["@shopId"].Value = shopId;Line 7244: SqlDataReader rdr = cmd.ExecuteReader();Line 7245: Line 7246: while(rdr.Read()) {Line 7247: flag = Convert.ToString(rdr["name"]);Line 7248: Line 7249: Sb.Append( " <li>\n" );Line 7250: Sb.Append( " <label for='billing-select-flag-" + flag + "'>\n" );Line 7251: Sb.Append( " <img src='/octopus/design/images/" + (string)rdr["src"] + "' />\n" );Line 7252: Sb.Append( " <font class='credit_card_flag'>" + flag + "</font>\n" );Line 7253: Sb.Append( " </label>\n" );Line 7254: Sb.Append( " <input id='billing-select-flag-" + flag + "' type='radio' name='cc' value='"+ rdr["codCC"] + "' class='creditCardRadioFlag' data-flag='" + flag + "' " + ( codCC == (int)rdr["codCC"] ? "checked='checked'" : "" ) + " />\n" );Line 7255: Sb.Append( " <label id='billing-select-flag-" + flag + "-parcels'>Parcelamento:</label>\n" );Line 7256: Line 7257: Sb.Append( getCreditCardParcels(currType, sNdd, path, flag, orderTotal, priceGroup, parcelTimeSelected) );Line 7258: Line 7259: Sb.Append( " </li>\n" );Line 7260: }Line 7261: Line 7262: rdr.Close();Line 7263: conn.Close();Line 7264: Line 7265: Sb.Append( "</ul>\n" );Line 7266: Line 7267: return Sb.ToString();Line 7268: }Line 7269: Line 7270: public string getDebitCardOptions(string currType, string sNdd, string path, int shopId) {Line 7271: string query = "";Line 7272: string flag = "";Line 7273: Line 7274: StringBuilder Sb = new StringBuilder();Line 7275: Sb.Append( "<ul id='debit-card-options'>\n" );Line 7276: Line 7277: SqlConnection conn = new SqlConnection(path);Line 7278: conn.Open();Line 7279: Line 7280: query = "SELECT * FROM sys_debitCard WITH (NOLOCK) ORDER BY codDC";Line 7281: Line 7282: SqlCommand cmd = new SqlCommand(query, conn);Line 7283: cmd.Parameters.Add(new SqlParameter("@shopId", SqlDbType.Int));Line 7284: cmd.Parameters["@shopId"].Value = shopId;Line 7285: SqlDataReader rdr = cmd.ExecuteReader();Line 7286: Line 7287: while(rdr.Read()) {Line 7288: flag = Convert.ToString(rdr["name"]);Line 7289: Sb.Append( "<li>\n" );Line 7290: Sb.Append( "<label for='billing-select-debit-flag-" + flag + "'>\n" );Line 7291: Sb.Append( "<img src='/octopus/design/images/" + (string)rdr["imgSrc"] + "' />\n" );Line 7292: Sb.Append( "<font class='debit_card_flag'>" + flag + "</font>\n" );Line 7293: Sb.Append( "</label>\n" );Line 7294: Sb.Append( "<input id='billing-select-debit-flag-" + flag + "' type='radio' name='dc' value='"+ rdr["codDC"] + "' class='debitCardRadioFlag' data-flag='" + flag + "'/>\n" );Line 7295: Sb.Append( "</li>\n" );Line 7296: }Line 7297: Line 7298: rdr.Close();Line 7299: conn.Close();Line 7300: Line 7301: Sb.Append( "</ul>\n" );Line 7302: Line 7303: return Sb.ToString();Line 7304: }Line 7305: Line 7306: public string getCreditCardParcels(string currType, string sNdd, string path, string flag, decimal orderTotal, int priceGroup, int parcelTimeSelected) {Line 7307: string output = "";Line 7308: string iValue = "";Line 7309: string dynamicFlag = "Default";Line 7310: int i = 0;Line 7311: Line 7312: StringBuilder Sb = new StringBuilder();Line 7313: Line 7314: SqlConnection conn = new SqlConnection(path);Line 7315: conn.Open();Line 7316: Line 7317: string query = "SELECT COUNT(*) FROM sys_parcels WITH (NOLOCK) WHERE ( ccFlag = @ccFlag ) AND ( sys_parcels.priceGroup = @priceGroup )";Line 7318: Line 7319: SqlCommand cmd = new SqlCommand(query, conn);Line 7320: cmd.Parameters.Add(new SqlParameter("@total", SqlDbType.Money));Line 7321: cmd.Parameters.Add(new SqlParameter("@priceGroup", SqlDbType.Int));Line 7322: cmd.Parameters.Add(new SqlParameter("@ccFlag", SqlDbType.NVarChar));Line 7323: cmd.Parameters["@total"].Value = orderTotal;Line 7324: cmd.Parameters["@priceGroup"].Value = priceGroup;Line 7325: cmd.Parameters["@ccFlag"].Value = flag;Line 7326: if ( Convert.ToInt32( cmd.ExecuteScalar() ) > 0 ) {Line 7327: dynamicFlag = flag;Line 7328: }Line 7329: Line 7330: query = @"Line 7331: SELECTLine 7332: value,Line 7333: times,Line 7334: interest,Line 7335: vtranslLine 7336: FROM sys_parcels WITH (NOLOCK)Line 7337: WHERE ( ( (sys_parcels.value) <= @total ) ) AND ( sys_parcels.priceGroup = @priceGroup ) AND ( ccFlag = @ccFlag )Line 7338: ORDER BY sys_parcels.value, sys_parcels.timesLine 7339: ";Line 7340: Line 7341: cmd = new SqlCommand(query, conn);Line 7342: cmd.Parameters.Add(new SqlParameter("@total", SqlDbType.Money));Line 7343: cmd.Parameters.Add(new SqlParameter("@priceGroup", SqlDbType.Int));Line 7344: cmd.Parameters.Add(new SqlParameter("@ccFlag", SqlDbType.NVarChar));Line 7345: Line 7346: cmd.Parameters["@total"].Value = orderTotal;Line 7347: cmd.Parameters["@priceGroup"].Value = priceGroup;Line 7348: cmd.Parameters["@ccFlag"].Value = dynamicFlag;Line 7349: Line 7350: SqlDataReader rdr = cmd.ExecuteReader();Line 7351: Line 7352: if ( rdr.Read() ) {Line 7353: iValue = currType + string.Format( "{0:0.00} vista", orderTotal + Convert.ToDecimal(rdr["vtransl"]) );Line 7354: Line 7355: Sb.Append( "<select name='ccPt_" + flag.ToLower().Replace(" ", "") + "' class='credit_card_parcels'>\n" );Line 7356: Line 7357: Sb.Append( " <option value='0'>SELECIONE...</option>\n" );Line 7358: Sb.Append( " <option value='" + Convert.ToString(rdr["times"]) + "'>" + iValue + "</option>\n" );Line 7359: Line 7360: if (rdr.Read()) {Line 7361: do {Line 7362: if ((decimal)rdr["interest"] > 0) {Line 7363: iValue = (int)rdr["times"] +"x de "+ currType + string.Format(Line 7364: "{0:0.00}"Line 7365: , Details.Juros_Composto( orderTotal, (decimal)rdr["interest"] / 100, (int)rdr["times"] ) + (decimal)rdr["vtransl"]Line 7366: ) + " (taxa de "+ string.Format( "{0:0.00}", (decimal)rdr["interest"] ) +"% a.m.)";Line 7367: } else {Line 7368: iValue = (int)rdr["times"] +"x de "+ currType + string.Format(Line 7369: "{0:0.00}"Line 7370: , (orderTotal / (int)rdr["times"]) + (decimal)rdr["vtransl"]Line 7371: );Line 7372: }Line 7373: Line 7374: Sb.Append( " <option value='" + Convert.ToString(rdr["times"]) + "'>" + iValue + "</option>\n" );Line 7375: } while(rdr.Read());Line 7376: }Line 7377: Line 7378: rdr.Close();Line 7379: Line 7380: Sb.Append( "</select>\n" );Line 7381: Line 7382: output = Sb.ToString();Line 7383: }Line 7384: Line 7385: conn.Close();Line 7386: Line 7387: return output;Line 7388: }Line 7389: Line 7390: public decimal[] getParcelData(string path, int parcelTimes, string flag, int priceGroup) {Line 7391: decimal[] output = new decimal[2];Line 7392: Line 7393: string dynamicFlag = "Default";Line 7394: Line 7395: SqlConnection conn = new SqlConnection(path);Line 7396: conn.Open();Line 7397: Line 7398: string query = "SELECT COUNT(*) FROM sys_parcels WITH (NOLOCK) WHERE (times = @times) AND (ccFlag = @flag) AND (priceGroup = @priceGroup)";Line 7399: SqlCommand cmd = new SqlCommand(query, conn);Line 7400: cmd.Parameters.Add(new SqlParameter("@times", SqlDbType.Int));Line 7401: cmd.Parameters.Add(new SqlParameter("@flag", SqlDbType.NVarChar));Line 7402: cmd.Parameters.Add(new SqlParameter("@priceGroup", SqlDbType.Int));Line 7403: cmd.Parameters["@times"].Value = parcelTimes;Line 7404: cmd.Parameters["@flag"].Value = flag;Line 7405: cmd.Parameters["@priceGroup"].Value = priceGroup;Line 7406: if ( Convert.ToInt32(cmd.ExecuteScalar()) > 0 ) {Line 7407: dynamicFlag = flag;Line 7408: }Line 7409: Line 7410: query = "SELECT interest, vtransl FROM sys_parcels WITH (NOLOCK) WHERE (times = @times) AND (ccFlag = @flag) AND (priceGroup = @priceGroup)";Line 7411: cmd = new SqlCommand(query, conn);Line 7412: cmd.Parameters.Add(new SqlParameter("@times", SqlDbType.Int));Line 7413: cmd.Parameters.Add(new SqlParameter("@flag", SqlDbType.NVarChar));Line 7414: cmd.Parameters.Add(new SqlParameter("@priceGroup", SqlDbType.Int));Line 7415: cmd.Parameters["@times"].Value = parcelTimes;Line 7416: cmd.Parameters["@flag"].Value = dynamicFlag;Line 7417: cmd.Parameters["@priceGroup"].Value = priceGroup;Line 7418: SqlDataReader rdr = cmd.ExecuteReader();Line 7419: Line 7420: if ( rdr.Read() ) {Line 7421: output[0] = Convert.ToDecimal(rdr[0]);Line 7422: output[1] = Convert.ToDecimal(rdr[1]);Line 7423: }Line 7424: Line 7425: rdr.Close();Line 7426: conn.Close();Line 7427: Line 7428: return output;Line 7429: }Line 7430: Line 7431: public string getCreditCardFormTable(string ccName, string ccNum, string ccMonth, string ccYear, string ccCode, string index) {Line 7432: StringBuilder Sb = new StringBuilder();Line 7433: Line 7434: int i = 0;Line 7435: Line 7436: Sb.Append( " <table id='credit-card-table-" + index + "'>\n" );Line 7437: Sb.Append( " <tr>\n" );Line 7438: Sb.Append( " <th><label for='credit-card-name'>Nome impresso no cartão:</label></th>\n" );Line 7439: Sb.Append( " <td><input id='credit-card-name' name='ccName' type='text' value='" + ccName + "' class='a' maxlength='26' size='24' autocomplete='off' /></td>\n" );Line 7440: Sb.Append( " </tr>\n" );Line 7441: Sb.Append( " <tr>\n" );Line 7442: Sb.Append( " <th><label for='credit-card-number'>Número do cartão:</label></th>\n" );Line 7443: Sb.Append( " <td><input id='credit-card-number' name='ccNumber' type='text' value='" + ccNum + "' class='a only_numbers' maxlength='24' size='24' autocomplete='off'/><br /><em>(apenas os números)</em></td>\n" );Line 7444: Sb.Append( " </tr>\n" );Line 7445: Sb.Append( " <tr>\n" );Line 7446: Sb.Append( " <th><label for='credit-card-date'>Data de validade:</label></th>\n" );Line 7447: Sb.Append( " <td>\n" );Line 7448: Line 7449: Sb.Append( " <select id='credit-card-date-month' name='ccMonth' class='a'>\n" );Line 7450: Line 7451: Line 7452: for(i = 1; i <= 12; i++) {Line 7453: Sb.Append( " <option value=" + ZenTools.Right("00" + i, 2) + ">" + ZenTools.Right("00" + i, 2) + "</option>\n" );Line 7454: }Line 7455: Line 7456: Sb.Append( " </select> /20\n" );Line 7457: Line 7458: Sb.Append( " <select id='credit-card-date-year' name='ccYear' class='a' >\n" );Line 7459: Line 7460: int year = Convert.ToInt32(Convert.ToString(DateTime.Now.Year).Substring(2));Line 7461: for( i = year; i < year + 15; i++ ) {Line 7462: Sb.Append( " <option value=" + ZenTools.Right("00" + i, 2) + ">" + ZenTools.Right("00" + i, 2) + "</option>\n" );Line 7463: }Line 7464: Line 7465: Sb.Append( " </select> Ex. (mm/aa)\n" );Line 7466: Line 7467: Sb.Append( " </td>\n" );Line 7468: Sb.Append( " </tr>\n" );Line 7469: Sb.Append( " <tr>\n" );Line 7470: Sb.Append( " <th><label for='credit-card-security-code'>Código de segurança:</label></th>\n" );Line 7471: Sb.Append( " <td><input id='credit-card-security-code' name='csc' type='text' value='" + ccCode + "' class='a only_numbers' maxlength='4' size='4' autocomplete='off' /></td>\n" );Line 7472: Line 7473: Sb.Append( " </tr>\n" );Line 7474: Sb.Append( " </table>\n" );Line 7475: Line 7476: return Sb.ToString();Line 7477: }Line 7478: Line 7479: public string paymentAcronymTranslate(string acronym) {Line 7480: switch( acronym ) { // PT -> ENLine 7481: case "TE": return "ET"; break;Line 7482: case "FE": return "EF"; break;Line 7483: case "DB": return "BD"; break;Line 7484: case "FT": return "IO"; break;Line 7485: case "CD": return "DC"; break;Line 7486: default: return acronym; break;Line 7487: }Line 7488: }Line 7489: Line 7490: }Line 7491: Line 7492: Line 7493: Line 7494: Line 7495: Line 7496: Line 7497: Line 7498: Line 7499: Line 7500: Line 7501: public class CaesarRef {Line 7502: public CaesarRef() {}Line 7503: Line 7504: Line 7505: public static string encode(string v) {Line 7506: return v;Line 7507: Line 7508: /*Line 7509: char[] ca = v.ToCharArray();Line 7510: for( int i = 0; i < v.Length; i++ ) {Line 7511: ca[i] = _map(v[i]);Line 7512: }Line 7513: return new string(ca);Line 7514: */Line 7515: }Line 7516: Line 7517: public static string decode(string v) {Line 7518: return v;Line 7519: Line 7520: /*Line 7521: char[] ca = v.ToCharArray();Line 7522: for( int i = 0; i < v.Length; i++ ) {Line 7523: ca[i] = _unmap(v[i]);Line 7524: }Line 7525: return new string(ca);Line 7526: */Line 7527: }Line 7528: Line 7529: private static char _map(char c) {Line 7530: Hashtable h = new Hashtable();Line 7531: h.Add('1', '4');Line 7532: h.Add('2', '6');Line 7533: h.Add('3', '7');Line 7534: h.Add('4', '9');Line 7535: h.Add('5', '8');Line 7536: h.Add('6', '2');Line 7537: h.Add('7', '5');Line 7538: h.Add('8', '1');Line 7539: h.Add('9', '0');Line 7540: h.Add('0', '3');Line 7541: Line 7542: return (char)h[c];Line 7543: }Line 7544: Line 7545: private static char _unmap(char c) {Line 7546: Hashtable h = new Hashtable();Line 7547: h.Add('4', '1');Line 7548: h.Add('6', '2');Line 7549: h.Add('7', '3');Line 7550: h.Add('9', '4');Line 7551: h.Add('8', '5');Line 7552: h.Add('2', '6');Line 7553: h.Add('5', '7');Line 7554: h.Add('1', '8');Line 7555: h.Add('0', '9');Line 7556: h.Add('3', '0');Line 7557: Line 7558: return (char)h[c];Line 7559: }Line 7560: Line 7561: }Line 7562: Line 7563: Line 7564: Line 7565: Line 7566: Line 7567: Line 7568: Line 7569: Line 7570: Line 7571: Line 7572: public class Solr {Line 7573: public Solr(){}Line 7574: Line 7575: public static bool hasRecords(XmlNode Nodes) {Line 7576: foreach( XmlNode Node in Nodes ) {Line 7577: if ( Convert.ToInt32(Node.InnerText) > 0 ) {Line 7578: return true;Line 7579: break;Line 7580: }Line 7581: }Line 7582: return false;Line 7583: }Line 7584: }Line 7585: Line 7586: Line 7587: Line 7588: Line 7589: Line 7590: Line 7591: Line 7592: Line 7593: Line 7594: Line 7595: public class Promotion {Line 7596: private ShopSetup shop;Line 7597: private int shopId;Line 7598: private int userId;Line 7599: private int zipCode;Line 7600: private decimal ordersTotalAcumulated;Line 7601: private string source;Line 7602: private string medium;Line 7603: private string campaign;Line 7604: Line 7605: public Promotion(ShopSetup s, int sid, int uid, int c, decimal ota, string _source, string _medium, string _campaign) {Line 7606: shop = s;Line 7607: shopId = sid;Line 7608: userId = uid;Line 7609: zipCode = c;Line 7610: ordersTotalAcumulated = ota;Line 7611: source = _source;Line 7612: medium = _medium;Line 7613: campaign = _campaign;Line 7614: }Line 7615: Line 7616: public string getEffect(int idBrand, string categories, int idGrid, int quantity, string cartId) {Line 7617: object Output = JavaScriptDeserializer.DeserializeFromJson("{}", typeof(NameValueCollection));Line 7618: string query = "";Line 7619: string sJson = "";Line 7620: int idPromotion = 0;Line 7621: decimal cartTotal = 0;Line 7622: bool isRunning = false;Line 7623: Line 7624: if ( cartId != "" ) {Line 7625: cartTotal = getCartTotal(cartId);Line 7626: }Line 7627: Line 7628: SqlConnection conn;Line 7629: SqlCommand cmd;Line 7630: SqlDataReader rdr;Line 7631: Line 7632: conn = new SqlConnection(shop.Path);Line 7633: conn.Open();Line 7634: Line 7635: query = @"Line 7636: SELECT id, name, description, dta, dtb, times, blobLine 7637: FROM sys_promotions WITH (NOLOCK)Line 7638: WHERE (active = 1) AND ( (dta IS NULL) OR (dtb IS NULL) OR ( dta <= GETDATE() AND GETDATE() <= dtb ) )Line 7639: ORDER BY priority ASC, dtIns ASCLine 7640: ";Line 7641: Line 7642: cmd = new SqlCommand(query, conn);Line 7643: rdr = cmd.ExecuteReader();Line 7644: Line 7645: while( rdr.Read() && !isRunning ) {Line 7646: isRunning = true;Line 7647: Output = JavaScriptDeserializer.DeserializeFromJson("{}", typeof(NameValueCollection));Line 7648: Line 7649: idPromotion = Convert.ToInt32(rdr["id"]);Line 7650: sJson = Convert.ToString(rdr["blob"]);Line 7651: Line 7652: //((NameValueCollection)Output)["debug"] = Convert.ToString(rdr["id"]) + " : " + isRunning;Line 7653: Line 7654: if ( sJson != "" ) {Line 7655: try {Line 7656: object oJson = JavaScriptDeserializer.DeserializeFromJson(sJson, typeof(NameValueCollection));Line 7657: Line 7658: // check price groupLine 7659: string priceGroupId = "";Line 7660: if ( ((NameValueCollection)oJson)["priceGroupId"] != null )Line 7661: priceGroupId = ((NameValueCollection)oJson)["priceGroupId"];Line 7662: if ( priceGroupId != "" && Convert.ToInt32(priceGroupId) != UserSetup.UserGroup(shop.Path, userId) )Line 7663: isRunning = false;Line 7664: Line 7665: // check timesLine 7666: if ( Convert.ToInt32(rdr["times"]) == -1 )Line 7667: isRunning = false;Line 7668: Line 7669: if ( isRunning ) {Line 7670: // check times by userLine 7671: if ( Convert.ToInt32(((NameValueCollection)oJson)["timesByUser"]) > 0 ) {Line 7672: if ( userId > 0 ) {Line 7673: isRunning = !( getUserWpromotion( idPromotion ) >= Convert.ToInt32(((NameValueCollection)oJson)["timesByUser"]) );Line 7674: } else {Line 7675: isRunning = false;Line 7676: }Line 7677: }Line 7678: Line 7679: if ( isRunning ) {Line 7680: // datetimeLine 7681: if ( rdr["dta"] != DBNull.Value && rdr["dtb"] != DBNull.Value ) {Line 7682: DateTime dtA = Convert.ToDateTime(rdr["dta"]);Line 7683: DateTime dtB = Convert.ToDateTime(rdr["dtb"]);Line 7684: DateTime dtN = DateTime.Now;Line 7685: Line 7686: if ( !( dtA <= dtN && dtN <= dtB ) ) {Line 7687: isRunning = false;Line 7688: }Line 7689: }Line 7690: Line 7691: if ( isRunning ) {Line 7692: // zicode rangesLine 7693: if ( ((NameValueCollection)oJson)["zipCodeRanges"] != "" ) {Line 7694: string[] ranges = Convert.ToString( ((NameValueCollection)oJson)["zipCodeRanges"] ).Split(',');Line 7695: string[] arr = null;Line 7696: isRunning = false;Line 7697: Line 7698: foreach( string range in ranges ) {Line 7699: arr = range.Split('|');Line 7700: if ( ( Convert.ToInt32(arr[1]) <= zipCode && zipCode <= Convert.ToInt32(arr[2]) ) ) {Line 7701: isRunning = true;Line 7702: }Line 7703: }Line 7704: }Line 7705: Line 7706: if ( isRunning ) {Line 7707: // greater than valueLine 7708: if ( ((NameValueCollection)oJson)["greaterThanValue"] != "" ) {Line 7709: if ( cartTotal < Convert.ToDecimal( (((NameValueCollection)oJson)["greaterThanValue"]).Replace(",", "").Replace(".", ",") ) ) {Line 7710: isRunning = false;Line 7711: }Line 7712: }Line 7713: Line 7714: if ( isRunning ) {Line 7715: // acumulated order valueLine 7716: if ( ((NameValueCollection)oJson)["acumulatedValue"] != "" ) {Line 7717: if ( ordersTotalAcumulated < Convert.ToDecimal( (((NameValueCollection)oJson)["acumulatedValue"]).Replace(",", "").Replace(".", ",") ) ) {Line 7718: isRunning = false;Line 7719: }Line 7720: }Line 7721: Line 7722: if ( isRunning ) {Line 7723: // brandsLine 7724: if ( ((NameValueCollection)oJson)["brands"] != "" ) {Line 7725: isRunning = checkBrand( idBrand, ((NameValueCollection)oJson)["brands"] );Line 7726: }Line 7727: Line 7728: if ( isRunning ) {Line 7729: // categoriesLine 7730: if ( ((NameValueCollection)oJson)["categories"] != "" ) {Line 7731: //((NameValueCollection)Output)["debug"] = idCategory + " = " + ((NameValueCollection)oJson)["categories"];Line 7732: isRunning = checkCategories( categories, ((NameValueCollection)oJson)["categories"] );Line 7733: }Line 7734: Line 7735: Line 7736: if ( isRunning ) {Line 7737: // productsLine 7738: if ( ((NameValueCollection)oJson)["products"] != "" ) {Line 7739: isRunning = checkProducts(idGrid, quantity, ((NameValueCollection)oJson)["products"]);Line 7740: }Line 7741: Line 7742: if ( isRunning ) {Line 7743: // utm_sourceLine 7744: if ( ((NameValueCollection)oJson)["utm_source"] != "" ) {Line 7745: if ( source != ((NameValueCollection)oJson)["utm_source"] ) {Line 7746: isRunning = false;Line 7747: }Line 7748: }Line 7749: Line 7750: if ( isRunning ) {Line 7751: // utm_mediumLine 7752: if ( ((NameValueCollection)oJson)["utm_medium"] != "" ) {Line 7753: if ( medium != ((NameValueCollection)oJson)["utm_medium"] ) {Line 7754: isRunning = false;Line 7755: }Line 7756: }Line 7757: Line 7758: if ( isRunning ) {Line 7759: // utm_campaignLine 7760: if ( ((NameValueCollection)oJson)["utm_campaign"] != "" ) {Line 7761: if ( campaign != ((NameValueCollection)oJson)["utm_campaign"] ) {Line 7762: isRunning = false;Line 7763: }Line 7764: }Line 7765: Line 7766: if ( isRunning ) {Line 7767: // get effectLine 7768: if ( isRunning ) {Line 7769: ((NameValueCollection)Output)["id"] = Convert.ToString(rdr["id"]);Line 7770: ((NameValueCollection)Output)["name"] = Convert.ToString(rdr["name"]);Line 7771: ((NameValueCollection)Output)["description"] = ( Convert.ToString(rdr["description"]) != "" ? Convert.ToString(rdr["description"]) : "-" );Line 7772: ((NameValueCollection)Output)["thumbnail"] = ((NameValueCollection)oJson)["thumbnail"];Line 7773: Line 7774: if ( ((NameValueCollection)oJson)["products"] != "" ) {Line 7775: ((NameValueCollection)Output)["products"] = ((NameValueCollection)oJson)["products"];Line 7776: }Line 7777: Line 7778: ((NameValueCollection)Output)["discountType"] = ((NameValueCollection)oJson)["discountType"];Line 7779: Line 7780: if (Line 7781: ((NameValueCollection)oJson)["discountType"] == "ticket" &&Line 7782: ((NameValueCollection)oJson)["ticketDatetime_a"] != "" &&Line 7783: ((NameValueCollection)oJson)["ticketDatetime_a"] != ""Line 7784: ) {Line 7785: ((NameValueCollection)Output)["ticketDatetime_a"] = ((NameValueCollection)oJson)["ticketDatetime_a"];Line 7786: ((NameValueCollection)Output)["ticketDatetime_b"] = ((NameValueCollection)oJson)["ticketDatetime_b"];Line 7787: }Line 7788: Line 7789: ((NameValueCollection)Output)["discountValue"] = (((NameValueCollection)oJson)["discountValue"]).Replace(",", "").Replace(".", ",");Line 7790: }Line 7791: }Line 7792: }Line 7793: }Line 7794: }Line 7795: Line 7796: }Line 7797: }Line 7798: }Line 7799: }Line 7800: }Line 7801: }Line 7802: }Line 7803: }Line 7804: } catch ( Exception e ) {}Line 7805: }Line 7806: }Line 7807: rdr.Close();Line 7808: conn.Close();Line 7809: Line 7810: return JavaScriptSerializer.Serialize(Output);Line 7811: }Line 7812: Line 7813: private decimal getCartTotal(string cartId) {Line 7814: Line 7815: decimal output = 0;Line 7816: SqlConnection conn = new SqlConnection(shop.Path);Line 7817: conn.Open();Line 7818: Line 7819: string query = String.Format( @"Line 7820: SELECT SUM( sys_cart.qt * ( tbl_prices.prc * ( 1 - ( tbl_prices.discRate / 100 ) ) ) ) AS cartTotalLine 7821: FROM sys_cart WITH (NOLOCK)Line 7822: INNER JOIN tbl_prices WITH (NOLOCK) ON sys_cart.codGrid = tbl_prices.codGridLine 7823: WHERE ( sys_cart.cid = '{0}' ) AND (tbl_prices.codGroup = {1})", cartId, UserSetup.UserGroup(shop.Path, userId) );Line 7824: SqlCommand cmd = new SqlCommand(query, conn);Line 7825: output = Convert.ToDecimal( cmd.ExecuteScalar() );Line 7826: conn.Close();Line 7827: Line 7828: return output;Line 7829: }Line 7830: Line 7831: private bool checkBrand(int idBrand, string brands) {Line 7832: bool output = false;Line 7833: foreach( string brand in brands.Split(',') ) {Line 7834: if ( idBrand == Convert.ToInt32(brand) ) {Line 7835: output = true;Line 7836: break;Line 7837: }Line 7838: }Line 7839: return output;Line 7840: }Line 7841: Line 7842: private bool checkCategories(string categories, string p_categories) {Line 7843: bool output = false;Line 7844: foreach( string p_category in p_categories.Split(',') ) {Line 7845: foreach( string category in categories.Split(',') ) {Line 7846: if ( category == p_category ) {Line 7847: output = true;Line 7848: break;Line 7849: }Line 7850: }Line 7851: }Line 7852: return output;Line 7853: }Line 7854: Line 7855: private bool checkProducts(int idGrid, int qt, string products) {Line 7856: bool output = false;Line 7857: foreach( string product in products.Split(',') ) {Line 7858: string[] arr = product.Split('_');Line 7859: if ( idGrid == Convert.ToInt32(arr[0]) ) {Line 7860: output = true;Line 7861: break;Line 7862: }Line 7863: }Line 7864: return output;Line 7865: }Line 7866: Line 7867: private int getUserWpromotion(int idPromotion) {Line 7868: int output = 0;Line 7869: Line 7870: SqlConnection conn = new SqlConnection(shop.Path);Line 7871: conn.Open();Line 7872: Line 7873: string query = "SELECT COUNT(id) FROM rel_usersWpromotions WITH (NOLOCK) WHERE (codUser = " + userId + ") AND (idPromotion = " + idPromotion + ")";Line 7874: SqlCommand cmd = new SqlCommand(query, conn);Line 7875: output = Convert.ToInt32( cmd.ExecuteScalar() );Line 7876: Line 7877: conn.Close();Line 7878: return output;Line 7879: }Line 7880: Line 7881: }Line 7882: Line 7883: </script>
|