Premiação Ebit 2009

Nós da Hystalo fomos chamado para comparecer a premiação do Ebit 2009, juntamente com a Jocar que ficou entre as 50 primeiras melhores lojas de E-commerce da internet. Confira o link da premiação.

Ler mais

Formatar data Javascript

Postado por Hystalo | Postado em Desenvolvimento | Postado 03-08-2010

0

var dateFormat = function () {
var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|”[^"]*”|’[^']*’/g,
timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
timezoneClip = /[^-+\dA-Z]/g,
pad = function (val, len) {
val = String(val);
len = len || 2;
while (val.length < len) val = “0″ + val;
return val;
};

// Regexes and supporting functions are cached through closure
return function (date, mask, utc) {
var dF = dateFormat;

// You can’t provide utc if you skip other args (use the “UTC:” mask prefix)
if (arguments.length == 1 && Object.prototype.toString.call(date) == “[object String]” && !/\d/.test(date)) {
mask = date;
date = undefined;
}

// Passing date through Date applies Date.parse, if necessary
date = date ? new Date(date) : new Date;
if (isNaN(date)) throw SyntaxError(”invalid date”);

mask = String(dF.masks[mask] || mask || dF.masks["default"]);

// Allow setting the utc argument via the mask
if (mask.slice(0, 4) == “UTC:”) {
mask = mask.slice(4);
utc = true;
}

var _ = utc ? “getUTC” : “get”,
d = date[_ + "Date"](),
D = date[_ + "Day"](),
m = date[_ + "Month"](),
y = date[_ + "FullYear"](),
H = date[_ + "Hours"](),
M = date[_ + "Minutes"](),
s = date[_ + "Seconds"](),
L = date[_ + "Milliseconds"](),
o = utc ? 0 : date.getTimezoneOffset(),
flags = {
d: d,
dd: pad(d),
ddd: dF.i18n.dayNames[D],
dddd: dF.i18n.dayNames[D + 7],
m: m + 1,
mm: pad(m + 1),
mmm: dF.i18n.monthNames[m],
mmmm: dF.i18n.monthNames[m + 12],
yy: String(y).slice(2),
yyyy: y,
h: H % 12 || 12,
hh: pad(H % 12 || 12),
H: H,
HH: pad(H),
M: M,
MM: pad(M),
s: s,
ss: pad(s),
l: pad(L, 3),
L: pad(L > 99 ? Math.round(L / 10) : L),
t: H < 12 ? “a” : “p”,
tt: H < 12 ? “am” : “pm”,
T: H < 12 ? “A” : “P”,
TT: H < 12 ? “AM” : “PM”,
Z: utc ? “UTC” : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, “”),
o: (o > 0 ? “-” : “+”) + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
S: ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
};

return mask.replace(token, function ($0) {
return $0 in flags ? flags[$0] : $0.slice(1, $0.length – 1);
});
};
} ();

// Some common format strings
dateFormat.masks = {
“default”: “ddd mmm dd yyyy HH:MM:ss”,
shortDate: “m/d/yy”,
mediumDate: “mmm d, yyyy”,
longDate: “mmmm d, yyyy”,
fullDate: “dddd, mmmm d, yyyy”,
shortTime: “h:MM TT”,
mediumTime: “h:MM:ss TT”,
longTime: “h:MM:ss TT Z”,
isoDate: “yyyy-mm-dd”,
isoTime: “HH:MM:ss”,
isoDateTime: “yyyy-mm-dd’T'HH:MM:ss”,
isoUtcDateTime: “UTC:yyyy-mm-dd’T'HH:MM:ss’Z'”
};

// Internationalization strings
dateFormat.i18n = {
dayNames: [
"dom", "seg", "ter", "qua", "qui", "sex", "sab",
"Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sabado"
],
monthNames: [
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
]
};

Date.prototype.format = function (mask, utc) {
return dateFormat(this, mask, utc);
};

var dateFormat = function () {
var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|”[^"]*”|’[^']*’/g,
timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
timezoneClip = /[^-+\dA-Z]/g,
pad = function (val, len) {
val = String(val);
len = len || 2;
while (val.length < len) val = “0″ + val;
return val;
};

// Regexes and supporting functions are cached through closure
return function (date, mask, utc) {
var dF = dateFormat;

// You can’t provide utc if you skip other args (use the “UTC:” mask prefix)
if (arguments.length == 1 && Object.prototype.toString.call(date) == “[object String]” && !/\d/.test(date)) {
mask = date;
date = undefined;
}

// Passing date through Date applies Date.parse, if necessary
date = date ? new Date(date) : new Date;
if (isNaN(date)) throw SyntaxError(”invalid date”);

mask = String(dF.masks[mask] || mask || dF.masks["default"]);

// Allow setting the utc argument via the mask
if (mask.slice(0, 4) == “UTC:”) {
mask = mask.slice(4);
utc = true;
}

var _ = utc ? “getUTC” : “get”,
d = date[_ + "Date"](),
D = date[_ + "Day"](),
m = date[_ + "Month"](),
y = date[_ + "FullYear"](),
H = date[_ + "Hours"](),
M = date[_ + "Minutes"](),
s = date[_ + "Seconds"](),
L = date[_ + "Milliseconds"](),
o = utc ? 0 : date.getTimezoneOffset(),
flags = {
d: d,
dd: pad(d),
ddd: dF.i18n.dayNames[D],
dddd: dF.i18n.dayNames[D + 7],
m: m + 1,
mm: pad(m + 1),
mmm: dF.i18n.monthNames[m],
mmmm: dF.i18n.monthNames[m + 12],
yy: String(y).slice(2),
yyyy: y,
h: H % 12 || 12,
hh: pad(H % 12 || 12),
H: H,
HH: pad(H),
M: M,
MM: pad(M),
s: s,
ss: pad(s),
l: pad(L, 3),
L: pad(L > 99 ? Math.round(L / 10) : L),
t: H < 12 ? “a” : “p”,
tt: H < 12 ? “am” : “pm”,
T: H < 12 ? “A” : “P”,
TT: H < 12 ? “AM” : “PM”,
Z: utc ? “UTC” : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, “”),
o: (o > 0 ? “-” : “+”) + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
S: ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
};

return mask.replace(token, function ($0) {
return $0 in flags ? flags[$0] : $0.slice(1, $0.length – 1);
});
};
} ();

// Some common format strings
dateFormat.masks = {
“default”: “ddd mmm dd yyyy HH:MM:ss”,
shortDate: “m/d/yy”,
mediumDate: “mmm d, yyyy”,
longDate: “mmmm d, yyyy”,
fullDate: “dddd, mmmm d, yyyy”,
shortTime: “h:MM TT”,
mediumTime: “h:MM:ss TT”,
longTime: “h:MM:ss TT Z”,
isoDate: “yyyy-mm-dd”,
isoTime: “HH:MM:ss”,
isoDateTime: “yyyy-mm-dd’T'HH:MM:ss”,
isoUtcDateTime: “UTC:yyyy-mm-dd’T'HH:MM:ss’Z'”
};

// Internationalization strings
dateFormat.i18n = {
dayNames: [
"dom", "seg", "ter", "qua", "qui", "sex", "sab",
"Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sabado"
],
monthNames: [
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
]
};

Date.prototype.format = function (mask, utc) {
return dateFormat(this, mask, utc);
};

Clone em Javascript

Postado por Hystalo | Postado em Desenvolvimento | Postado 03-08-2010

0

function Clone_Object(obj) {
if (typeof obj !== ‘object’ || obj == null) {
return obj;
}

var c = obj instanceof Array ? [] : {};

for (var i in obj) {
var prop = obj[i];

if (typeof prop == ‘object’) {
if (prop instanceof Array) {
c[i] = [];

for (var j = 0; j < prop.length; j++) {
if (typeof prop[j] != ‘object’) {
c[i].push(prop[j]);
} else {
c[i].push(Clone_Object(prop[j]));
}
}
} else if (prop instanceof Date) {
c[i] = new Date(prop.getTime());
} else {
c[i] = Clone_Object(prop);
}
} else {
c[i] = prop;
}
}

return c;
}

Como ignorar um certificado invalido no WebService C#

Postado por Hystalo | Postado em Desenvolvimento | Postado 30-07-2010

0

System.Net.ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(RemoteCertValidate);

static bool RemoteCertValidate(object sender, System.Security.Cryptography.X509Certificates.X509Certificate cert, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors error)
{
return true;
}

ReplaceAll – Javascript

Postado por Hystalo | Postado em Desenvolvimento | Postado 05-07-2010

0

String.prototype.replaceAll = function (OldValue, NewValue) {
var returnValue=”";
returnValue = this;
while (returnValue.indexOf(OldValue) >= 0) {
returnValue = returnValue.replace(OldValue, NewValue);
}
return returnValue;
};

Formatacao de Data – Javascript

Postado por Hystalo | Postado em Desenvolvimento | Postado 05-07-2010

0

var dateFormat = function () {
var token = /d{1,4}|m{1,4}|yy(?:yy)?|([HhMsTt])\1?|[LloSZ]|”[^"]*”|’[^']*’/g,
timezone = /\b(?:[PMCEA][SDP]T|(?:Pacific|Mountain|Central|Eastern|Atlantic) (?:Standard|Daylight|Prevailing) Time|(?:GMT|UTC)(?:[-+]\d{4})?)\b/g,
timezoneClip = /[^-+\dA-Z]/g,
pad = function (val, len) {
val = String(val);
len = len || 2;
while (val.length < len) val = “0″ + val;
return val;
};

// Regexes and supporting functions are cached through closure
return function (date, mask, utc) {
var dF = dateFormat;

// You can’t provide utc if you skip other args (use the “UTC:” mask prefix)
if (arguments.length == 1 && Object.prototype.toString.call(date) == “[object String]” && !/\d/.test(date)) {
mask = date;
date = undefined;
}

// Passing date through Date applies Date.parse, if necessary
date = date ? new Date(date) : new Date;
if (isNaN(date)) throw SyntaxError(”invalid date”);

mask = String(dF.masks[mask] || mask || dF.masks["default"]);

// Allow setting the utc argument via the mask
if (mask.slice(0, 4) == “UTC:”) {
mask = mask.slice(4);
utc = true;
}

var _ = utc ? “getUTC” : “get”,
d = date[_ + "Date"](),
D = date[_ + "Day"](),
m = date[_ + "Month"](),
y = date[_ + "FullYear"](),
H = date[_ + "Hours"](),
M = date[_ + "Minutes"](),
s = date[_ + "Seconds"](),
L = date[_ + "Milliseconds"](),
o = utc ? 0 : date.getTimezoneOffset(),
flags = {
d: d,
dd: pad(d),
ddd: dF.i18n.dayNames[D],
dddd: dF.i18n.dayNames[D + 7],
m: m + 1,
mm: pad(m + 1),
mmm: dF.i18n.monthNames[m],
mmmm: dF.i18n.monthNames[m + 12],
yy: String(y).slice(2),
yyyy: y,
h: H % 12 || 12,
hh: pad(H % 12 || 12),
H: H,
HH: pad(H),
M: M,
MM: pad(M),
s: s,
ss: pad(s),
l: pad(L, 3),
L: pad(L > 99 ? Math.round(L / 10) : L),
t: H < 12 ? “a” : “p”,
tt: H < 12 ? “am” : “pm”,
T: H < 12 ? “A” : “P”,
TT: H < 12 ? “AM” : “PM”,
Z: utc ? “UTC” : (String(date).match(timezone) || [""]).pop().replace(timezoneClip, “”),
o: (o > 0 ? “-” : “+”) + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4),
S: ["th", "st", "nd", "rd"][d % 10 > 3 ? 0 : (d % 100 - d % 10 != 10) * d % 10]
};

return mask.replace(token, function ($0) {
return $0 in flags ? flags[$0] : $0.slice(1, $0.length – 1);
});
};
} ();

// Some common format strings
dateFormat.masks = {
“default”: “ddd mmm dd yyyy HH:MM:ss”,
shortDate: “m/d/yy”,
mediumDate: “mmm d, yyyy”,
longDate: “mmmm d, yyyy”,
fullDate: “dddd, mmmm d, yyyy”,
shortTime: “h:MM TT”,
mediumTime: “h:MM:ss TT”,
longTime: “h:MM:ss TT Z”,
isoDate: “yyyy-mm-dd”,
isoTime: “HH:MM:ss”,
isoDateTime: “yyyy-mm-dd’T'HH:MM:ss”,
isoUtcDateTime: “UTC:yyyy-mm-dd’T'HH:MM:ss’Z'”
};

// Internationalization strings
dateFormat.i18n = {
dayNames: [
"dom", "seg", "ter", "qua", "qui", "sex", "sab",
"Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sabado"
],
monthNames: [
"Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec",
"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"
]
};

Date.prototype.format = function (mask, utc) {
return dateFormat(this, mask, utc);
};

Validacao telefone MOVEL \ FIXO Javascript

Postado por Hystalo | Postado em Desenvolvimento | Postado 05-07-2010

0

function isValidPhoneType(Phone, Type) {
if( Phone.length < 8) {
return false;
}
else if( isNaN(Phone)) {
return false;
}
else if (Type == “FIXO”) {
var prefix = Phone.substring(0, 1);
prefix = parseInt(prefix);
if (prefix > 5)
return false
}
else if (Type == “MOVEL”) {
var prefix = Phone.substring(0,1);
prefix = parseInt(prefix);
if( prefix < 6)
return false

}

return true;
}

Error Code: 1005 Can’t create table MYSQL

Postado por Hystalo | Postado em Banco de dados | Postado 08-02-2010

0

Isso signigica um erro que esta impedindo a criação de sua nova Foreign Key, segue abaixo os erros mais comuns:

  • Os dois campos relacionados da Foreign Key não tem o mesmo tipo ou tamanho. Por exemplo, se um campo é INT(10) o campo da chave precisa ser INT(10) também, se for colocado INT(11) ou TINYINY já não serve. Você deve verificar esses dados usando a query “SHOW CREATE TABLE tblname;”. Também confirme se ambos os campos são ’signed’ ou ‘unsigned’. Conclusão, os campos devem ser EXATAMENTE o mesmo!
  • O campo do qual você deseja se referenciar em outra tabela não tem um índice (index) ou não é uma chave primária (primary key). Se um dos campos que você deseja criar a relação não for uma “primary key”, você deve criar um índice para ela.
  • O nome da Foreign Key já existe em alguma chave. Confira se o nome de sua Foreign Key é única no seu banco de dados. Simplesmente adicione alguns caracteres aleatórios no fim do nome de sua key para testar essa condição.
  • Uma ou ambas as tabelas são MyISAM. Para utilizar Foreign Key ambas as tabelas devem usar InnoDB. Normalmente quando ambas as tabelas são MyISAM o MySQL não apresenta nenhuma mensagem de erro, simplesmente não cria a chave.
  • Você pode ter especificado “CASCADE ON DELETE SET NULL”, enquanto o campo é “NOT NULL”, esse é o erro mais comum.
  • Se o seu script está funcionando perfeitamente em um server, mas não em outro, verifique o collate ou charset, eles podem dar problemas caso sejam diferentes.
  • Você pode ter um valor default (ex. default=0) na sua coluna Foreign Key.
  • O nome de sua Foreign Key excede o limite de no máximo 64 caracteres
  • A sua coluna da tabela referenciada é serial e sua coluna local não esta como bigint(20) UNSIGNED sendo importante o UNSIGNED (desabilitar o sinal do campo, negativo)

Caso não seja nenhum dos erros acima, tente verificar digitando isso no console: SHOW ENGINE INNODB STATUS;
Que ele deve mostrar o que esta acontecendo.

Espero ter ajudado, quem tambem passou por esse erro.

Impressora Fiscal Argox na WEB com .NET

Postado por Hystalo | Postado em Desenvolvimento, Novidades | Postado 03-02-2010

0

A Hystalo desenvolveu soluções para impressoras fiscais e argox totalmente pela internet, e estão disponiveis para nossos clientes. Entre em contato para maiores informações.

contato@hystalo.com.br

Consuloria em Clipper

Postado por Hystalo | Postado em Desenvolvimento | Postado 22-01-2010

0

Apesar de ja ser vovo, como temos um grande know how voltaremos a dar consultoria em clipper. E talvez mais para frente até disponibilizar integrações prontas de clipper(dbf) com outros bancos como produto.

Hoje ja dispomos de cases de ERP completo varejista, Clipper com postgree, Clipper para NF paulista dentre outros.

Consulte-nos.

Caller C# – Que metodo chamou esse metodo

Postado por Hystalo | Postado em Desenvolvimento | Postado 03-11-2009

Tags:

0

System.Diagnostics.StackTrace oStTrace = new System.Diagnostics.StackTrace(1);
strCaller = oStTrace.GetFrame(0).GetMethod().DeclaringType.FullName + “.” + oStTrace.GetFrame(0).GetMethod().Name;
strCaller = “Chamado por: ” + strCaller;

Muito util para metodos de log, utilizamos em nosso framework para identificar qual metodo que chamou o gerenciador de LOG, quando não identificado por uma string.