ZennoLab.OwnCode.CommonCode.project = project;
string cn = project.Variables["cn"].Value;
string pv = project.Variables["pv"].Value;
string ad = project.Variables["ad"].Value;
string no = project.Variables["no"].Value;
string id = project.Variables["id"].Value;
//verifica se há uma cascata de pedidos pendentes
var tbl = project.Tables["ped"];
string rangePed = "";
for (int i = 0; i < tbl.RowCount; i++){
rangePed += tbl.GetCell("A",i)+",";
}
rangePed = rangePed.TrimEnd(',').Trim();
//Verifica se o problema ocorreu duas horas após o início
string dtini = project.Variables["horaInicio"].Value;
DateTime ini = CommonCode.ConverteData(dtini,"yyyy-MM-dd HH:mm:ss",true);
DateTime fim = DateTime.Now;
TimeSpan ts = fim.Subtract(ini);
double horas = ts.TotalHours;
//mensagens de erro
string tipoErro = "Robo_" + cn; //+ "_Erro_Execução";
string erroMsg = string.Format("Erro origem: cn: {0} - ad: {1} - ID: {2}",cn,no,id);
//se for superior a duas horas altera o tipo do erro
if (horas > 2){
tipoErro = "Robo_" + cn; //+ "_Erro_Timeout";
}
//adiciona mensagem ao projeto em execução e ao log
string msg = "Ops, algo de errado ocorreu, os pedidos foram agendados, a execução irá iniciar em duas horas";
CommonCode.MensagemProgressoId(id,msg);
project.SendInfoToLog(msg,true);
//Insere log geral
string query = string.Format("insert into log (LogId, LogDsc, LogDta) values ('{0}', '{1}', getdate())", tipoErro, erroMsg);
CommonCode.ExecutaQuery(query);
//monta lista de ids para dar update, se for um range
if (!rangePed.Equals(string.Empty)){
tipoErro = "Robo_" + cn; //+ "_Agendamentos_Por_Erro";
erroMsg = string.Format("Erro agendamentos: cn: {0} - ad: {1} - ID: {2}",cn,no,rangePed);
query = string.Format("insert into log (LogId, LogDsc, LogDta) values ('{0}', '{1}', getdate())", tipoErro, erroMsg);
CommonCode.ExecutaQuery(query);
id = id+","+rangePed;
}
//Agenda todos para execução na próxima uma hora
query = string.Format(@"
update
pedad
set
pedsit = 7,
pedage = DATEADD(MINUTE, 60, GETDATE())
where
pedId = {0}
and pedSit <> 7
", id);
CommonCode.ExecutaQuery(query);