private DadosTerminal WorkerDevolveTaxas(object state) { DadosTerminal resultado; var tmpTaxas = (List <Taxasiva>)Cache.Get("Taxas"); if (tmpTaxas != null) { return(_utility.SerializeTaxas(tmpTaxas)); } try { using (var tmp = new PhcDbContext(_utility.DevolveConnectionStringPhc().ProviderConnectionString)) { try { tmp.Configuration.AutoDetectChangesEnabled = false; var tmptaxas = (from t in tmp.DadosTaxasIva select new { _Taxasivastamp = t.Taxasivastamp, _codigo = t.Codigo, _taxa = t.Taxa }).AsEnumerable().Select(tmpdatataxa => new Taxasiva { Taxasivastamp = tmpdatataxa._Taxasivastamp, Codigo = tmpdatataxa._codigo, Taxa = tmpdatataxa._taxa }).ToList(); resultado = tmptaxas.Any() ? _utility.SerializeTaxas(tmptaxas) : new DadosTerminal(); if (tmptaxas.Any()) { Cache.Add("TaxasIva", tmptaxas, new TimeSpan(0, 8, 0, 0)); } } finally { tmp.Configuration.AutoDetectChangesEnabled = true; } } } catch (Exception e) { if (e.InnerException == null) { _logManager.WriteError(1200, "WorkerDevolveTaxas: Ocorreu o seguinte erro ao devolver os dados para o terminal:" + e.Source + " \n" + e.Message); } else { _logManager.WriteError(1200, "WorkerDevolveTaxas: Ocorreu o seguinte erro ao devolver os dados para o terminal:" + e.Source + " \n" + e.InnerException); } throw new FaultException <ConnectorServiceFault>(new ConnectorServiceFault { DataMessage = "Ocorreu um erro ao obter os dados para devolver para o terminal", DataDetails = "Nao foi possivel completar o pedido a base de dados. Tente mais tarde" }); } return(resultado); }
private DadosTerminal WorkerDevolveContas(object state) { DadosTerminal resultado; try { if (string.IsNullOrEmpty(_valueVendContas)) { throw new FaultException <ConnectorServiceFault>(new ConnectorServiceFault { DataDetails = "Nao foram fornecidos dados para obter os parametros PHC Contas", DataMessage = "Erro ao obter os parametros PHC Contas" }); } var tmpCachedContas = (List <Cc>)Cache.Get("Contas" + _valueVendContas); if (tmpCachedContas != null) { return(_utility.SerializeClientes(new List <Cl>(), tmpCachedContas)); } using (var tmp = new PhcDbContext(_utility.DevolveConnectionStringPhc().ProviderConnectionString)) { try { tmp.Configuration.AutoDetectChangesEnabled = false; var tcc = tmp.Database.SqlQuery <CcFiltradas>( "select cc.ccstamp,cc.cmdesc,cc.nrdoc,cc.nome,cc.no, " + "cc.estab,cc.edeb,cc.edebf,cc.ecred,cc.ecredf,cc.datalc," + "cc.dataven,cc.evalre,cc.evtmp,cc.evirs,cc.eivav1,cc.eivav2," + "cc.eivav3,cc.eivav4,cc.eivav5,cc.eivav6," + "cc.eivav7,cc.eivav8,cc.eivav9,cc.moeda," + "cc.recibado,cc.origem,cc.cm" + " from cc(nolock) inner join cl(nolock) on cl.no=cc.no and" + " cl.estab=cc.estab " + "where abs(-cc.ecred+cc.edeb+cc.ecredf-cc.edebf)>0.1 and cl.vendedor=@paramVend " + "and cl.inactivo <> 1", new SqlParameter("@paramVend", _valueVendContas) ).ToList(); var tmpCc = tcc.Select(item => new Cc { Ccstamp = item.ccstamp, Cmdesc = item.cmdesc, Nrdoc = item.nrdoc, Nome = item.nome, No = item.no, Estab = item.estab, Edeb = item.edeb, Edebf = item.edebf, Ecred = item.ecred, Ecredf = item.ecredf, Datalc = item.datalc, Dataven = item.dataven, Evalre = item.evalre, Evtmp = item.evtmp, Evirs = item.evirs, Eivav1 = item.eivav1, Eivav2 = item.eivav2, Eivav3 = item.eivav3, Eivav4 = item.eivav4, Eivav5 = item.eivav5, Eivav6 = item.eivav6, Eivav7 = item.eivav7, Eivav8 = item.eivav8, Eivav9 = item.eivav9, Moeda = item.moeda, Recibado = item.recibado, Origem = item.origem, Cm = item.cm }).ToList(); resultado = _utility.SerializeClientes(new List <Cl>(), tmpCc); Cache.Add("Contas" + _valueVendContas, tmpCc, new TimeSpan(0, 6, 0, 0)); } finally { tmp.Configuration.AutoDetectChangesEnabled = true; } } } catch (Exception e) { if (e.InnerException == null) { _logManager.WriteError(1200, "Erro ao obter as contas correntes do terminal,ocorreu o seguinte erro:" + e.Source + " \n" + e.Message); } else { _logManager.WriteError(1200, "Erro ao obter as contas correntes do terminal,ocorreu o seguinte erro:" + e.Source + " \n" + e.InnerException); } throw new FaultException <ConnectorServiceFault>(new ConnectorServiceFault { DataDetails = "Nao foi possivel obter a chave de acesso do terminal por favor volte a tentar mais tarde", DataMessage = "Ocorreu um erro ao obter a chave para o terminal" }); } return(resultado); }
private DadosTerminal WorkerDevolveStocks(object arg) { DadosTerminal resultado; try { var tmpcacheStocks = (List <St>)Cache.Get("Stocks" + _filterStocks); if (tmpcacheStocks != null) { return(_utility.SerializeStocks(tmpcacheStocks)); } using (var tmp = new PhcDbContext(_utility.DevolveConnectionStringPhc().ProviderConnectionString)) { try { tmp.Configuration.AutoDetectChangesEnabled = false; var tmpSt = new List <St>(); var tmpfilterst = (from t in tmp.DadosFiltrosStocks where t.Fltststamp == _filterStocks select t.Xbase).SingleOrDefault(); if (string.IsNullOrEmpty(tmpfilterst)) { throw new FaultException <ConnectorServiceFault>(new ConnectorServiceFault { DataDetails = "Nao foram fornecidos dados para obter os parametros PHC", DataMessage = "Erro ao obter os parametros PHC" }); } var tmpArrSt = new string[0]; if (!string.IsNullOrEmpty(tmpfilterst)) { tmpArrSt = tmpfilterst.Split(','); } if (tmpArrSt.Any()) { var tmpQuerySt = tmpArrSt[0]; var stParams = _utility.ConvertDataQuery(tmpArrSt); var filtereredstock = tmp.DadosStocks. Where(tmpQuerySt, stParams).Select("New(ststamp as Stamp,StReferencia " + "as StReferencia,tabiva as Tabiva,bloqueado as Bloqueado, " + "codigo as Codigo,forref as Forref, design as Design,familia as " + "Familia,epv1 as Epv1,epv2 as Epv2,epv3 as Epv3, epv4 as Epv4, epv5 as Epv5)"); if (filtereredstock.Any()) { Array.Clear(tmpArrSt, 0, tmpArrSt.Length); var tmpEnum = filtereredstock.GetEnumerator(); while (tmpEnum.MoveNext()) { var tmpCurrentEnum = tmpEnum.Current; var sStamp = tmpCurrentEnum.GetType().GetProperty("Stamp"); var tmpStReferencia = tmpCurrentEnum.GetType().GetProperty("StReferencia"); var tmpTabiva = tmpCurrentEnum.GetType().GetProperty("Tabiva"); var tmpBloqueado = tmpCurrentEnum.GetType().GetProperty("Bloqueado"); var tmpCodigo = tmpCurrentEnum.GetType().GetProperty("Codigo"); var tmpForref = tmpCurrentEnum.GetType().GetProperty("Forref"); var tmpDesign = tmpCurrentEnum.GetType().GetProperty("Design"); var tmpFamilia = tmpCurrentEnum.GetType().GetProperty("Familia"); var tmpEpv1 = tmpCurrentEnum.GetType().GetProperty("Epv1"); var tmpEpv2 = tmpCurrentEnum.GetType().GetProperty("Epv2"); var tmpepv3 = tmpCurrentEnum.GetType().GetProperty("Epv3"); var tmpepv4 = tmpCurrentEnum.GetType().GetProperty("Epv4"); var tmpepv5 = tmpCurrentEnum.GetType().GetProperty("Epv5"); tmpSt.Add(new St { Ststamp = sStamp.GetValue(tmpCurrentEnum, null).ToString(), StReferencia = tmpStReferencia.GetValue(tmpCurrentEnum, null).ToString(), Tabiva = decimal.Parse( tmpTabiva.GetValue(tmpCurrentEnum, null).ToString()), Bloqueado = bool.Parse( tmpBloqueado.GetValue(tmpCurrentEnum, null).ToString()), Codigo = tmpCodigo.GetValue(tmpCurrentEnum, null).ToString(), Forref = tmpForref.GetValue(tmpCurrentEnum, null).ToString(), Design = tmpDesign.GetValue(tmpCurrentEnum, null).ToString(), Familia = tmpFamilia.GetValue(tmpCurrentEnum, null).ToString(), Epv1 = decimal.Parse( tmpEpv1.GetValue(tmpCurrentEnum, null).ToString()), Epv2 = decimal.Parse( tmpEpv2.GetValue(tmpCurrentEnum, null).ToString()), Epv3 = decimal.Parse( tmpepv3.GetValue(tmpCurrentEnum, null).ToString()), Epv4 = decimal.Parse( tmpepv4.GetValue(tmpCurrentEnum, null).ToString()), Epv5 = decimal.Parse( tmpepv5.GetValue(tmpCurrentEnum, null).ToString()) }); } } } Cache.Add("Stocks" + _filterStocks, tmpSt, new TimeSpan(0, 4, 0, 0)); resultado = _utility.SerializeStocks(tmpSt); } finally { tmp.Configuration.AutoDetectChangesEnabled = true; } } } catch (Exception e) { if (e.InnerException == null) { _logManager.WriteError(1200, "WorkerDevolveStocks: Ocorreu o seguinte erro ao devolver os dados para o terminal:" + e.Source + " \n" + e.Message); } else { _logManager.WriteError(1200, "WorkerDevolveStocks: Ocorreu o seguinte erro ao devolver os dados para o terminal:" + e.Source + " \n" + e.InnerException); } throw new FaultException <ConnectorServiceFault>(new ConnectorServiceFault { DataMessage = "Ocorreu um erro ao obter os dados para devolver para o terminal", DataDetails = "Nao foi possivel completar o pedido a base de dados. Tente mais tarde" }); } return(resultado); }
private DadosEncomendas WorkerRegistaEncomendas(object state) { var resultado = new DadosEncomendas(); try { var listBiResult = new List <VoBi>(); var listBoResult = new List <Vobo>(); if (string.IsNullOrEmpty(_valueEncomendas)) { _logManager.WriteError(1200, "Erro ao registar encomendas nao existem parametros a registar"); throw new FaultException <ConnectorServiceFault>(new ConnectorServiceFault { DataDetails = "Nao foram introduzidos valores para a as encomendas", DataMessage = "Sem valores para encomendas" }); } using (var tmp = new PhcDbContext(_utility.DevolveConnectionStringPhc().ProviderConnectionString)) { //old code var tmpBi = _utility.DeserializeBi(_valueEncomendas); var tmpBo = _utility.DeserializeBo(_valueEncomendas); // // var tmpBi = _utility.DeserializeRemoteBi(_valueEncomendas); // var tmpBo = _utility.DeserializeRemotebBo(_valueEncomendas); _valueEncomendas = ""; foreach (var item in tmpBo) { var tmpitembo = _utility.ConvertVoBoTbBo(item); //var tmpItembo = _utility.ConvertRemoteBoToTb(item); tmp.DadosCabecalhosEncomendas.Add(tmpitembo); //tmp.DadosCabecalhosEncomendas.Add(tmpItembo); //tmp.DadosCabecalhosEncomendasExt.Add(_utility.GenerateBo2(item.BOstamp)); tmp.DadosCabecalhosEncomendasExt.Add(_utility.GenerateBo2(tmpitembo.Bostamp)); listBoResult.Add(item); } //tmp.SaveChanges(); foreach (var item in tmpBi) { var tmpitem = _utility.ConvertVoTb(item); //var tmpitem = _utility.ConvertRemoveBiTb(item); tmp.DadosLinhasEncomendas.Add(tmpitem); //tmp.LinhasEncomendas.Add(_utility.ConvertVoTb(item)); //tmp.DadosLinhasEncomendas.Add(_utility.ConvertVoTb(item)); tmp.DadosLinhasEncomendasExt.Add(_utility.GenerateBi2(tmpitem.Bistamp)); listBiResult.Add(item); } tmp.SaveChanges(); resultado.DadosCabeca = listBoResult; resultado.DadosLinhas = listBiResult; } } catch (DbEntityValidationException ex) { foreach (var validationError in ex.EntityValidationErrors.SelectMany(validationE => validationE.ValidationErrors)) { //Trace.TraceInformation("Property: {0} Error: {1}", validationError.PropertyName, validationError.ErrorMessage); _logManager.WriteError(1200, "Erro ao registar as encomendas na base de dados ocorreu o seguinte erro:" + validationError.PropertyName + " \n" + validationError.ErrorMessage); throw new FaultException <ConnectorServiceFault>(new ConnectorServiceFault { DataDetails = "Nao foi possivel introduzir as encomendas, por favor contacte o administrador da plataforma", DataMessage = "Erro ao introduzir as encomendas os campos nao foram preenchidos correctamente" }); } } catch (Exception e) { if (e.InnerException == null) { _logManager.WriteError(1200, "Erro ao registar encomendas ocorreu o seguinte erro:" + e.Source + " \n" + e.Message); } else { _logManager.WriteError(1200, "Erro ao registar encomendas ocorreu o seguinte erro:" + e.Source + " \n" + e.InnerException); } throw new FaultException <ConnectorServiceFault>(new ConnectorServiceFault { DataDetails = "Nao foi possivel introduzir as encomendas, por favor contacte o administrador da plataforma", DataMessage = "Erro ao introduzir as encomendas" }); } return(resultado); }
private DadosTerminal WorkerSyncClientes(object state) { DadosTerminal resultado; try { var tmpClientesCached = (List <Cl>)Cache.Get("Clientes" + _filterClientes); if (tmpClientesCached != null) { return(_utility.SerializeClientes(tmpClientesCached, new List <Cc>())); } using (var tmp = new PhcDbContext(_utility.DevolveConnectionStringPhc().ProviderConnectionString)) { try { tmp.Configuration.AutoDetectChangesEnabled = false; var tmpCl = new List <Cl>(); var tfiltercl = (from t in tmp.DadosFiltrosClientes where t.Fltclstamp == _filterClientes select t.Xbase).Single(); if ((string.IsNullOrEmpty(tfiltercl))) { throw new FaultException <ConnectorServiceFault>(new ConnectorServiceFault { DataDetails = "Nao foram fornecidos dados para obter os parametros PHC CL", DataMessage = "Erro ao obter os parametros PHC CL" }); } var tmpArrCl = new string[0]; if (!string.IsNullOrEmpty(tfiltercl)) { tmpArrCl = tfiltercl.Split(','); } if (tmpArrCl.Any()) { var tmpQueryCl = tmpArrCl[0]; var clParams = _utility.ConvertDataQuery(tmpArrCl); var filteredCl = tmp.DadosClientes .Where(tmpQueryCl, clParams) .Select("New(clstamp as ClStamp,preco as Preco," + "tabiva as TabIva,desconto as Desconto, " + "nocredit as Nocredit,no as No, estab as Estab,nome as Nome,nome2 as Nome2," + " morada as Morada,local as Local, codpost as CodPost, obs as Obs,tlmvl as Tlmvl, " + "telefone as Telefone, email as Email," + " esaldo as Esaldo,statuspda as Statuspda, vendedor as Vendedor,vendnm as Vendnm, " + "ncont as Ncont, tipo as Tipo, contacto as Contacto, inactivo as Inactivo)"); if (filteredCl.Any()) { Array.Clear(tmpArrCl, 0, tmpArrCl.Length); var tmpEnum = filteredCl.GetEnumerator(); while (tmpEnum.MoveNext()) { var tmpCurrentEnum = tmpEnum.Current; var tmpStamp = tmpCurrentEnum.GetType().GetProperty("ClStamp"); var tmpPreco = tmpCurrentEnum.GetType().GetProperty("Preco"); var tmpTabiva = tmpCurrentEnum.GetType().GetProperty("TabIva"); var tmpDesconto = tmpCurrentEnum.GetType().GetProperty("Desconto"); var tmpNocredit = tmpCurrentEnum.GetType().GetProperty("Nocredit"); var tmpNo = tmpCurrentEnum.GetType().GetProperty("No"); var tmpEstab = tmpCurrentEnum.GetType().GetProperty("Estab"); var tmpNome = tmpCurrentEnum.GetType().GetProperty("Nome"); var tmpNome2 = tmpCurrentEnum.GetType().GetProperty("Nome2"); var tmpMorada = tmpCurrentEnum.GetType().GetProperty("Morada"); var tmpLocal = tmpCurrentEnum.GetType().GetProperty("Local"); var tmpCodPost = tmpCurrentEnum.GetType().GetProperty("CodPost"); var tmpObs = tmpCurrentEnum.GetType().GetProperty("Obs"); var tmpTlmvl = tmpCurrentEnum.GetType().GetProperty("Tlmvl"); var tmpTelefone = tmpCurrentEnum.GetType().GetProperty("Telefone"); var tmpEmail = tmpCurrentEnum.GetType().GetProperty("Email"); var tmpEsaldo = tmpCurrentEnum.GetType().GetProperty("Esaldo"); var tmpStatuspda = tmpCurrentEnum.GetType().GetProperty("Statuspda"); var tmpVendedor = tmpCurrentEnum.GetType().GetProperty("Vendedor"); var tmpVendnm = tmpCurrentEnum.GetType().GetProperty("Vendnm"); var tmpNcont = tmpCurrentEnum.GetType().GetProperty("Ncont"); var tmpTipo = tmpCurrentEnum.GetType().GetProperty("Tipo"); var tmpContacto = tmpCurrentEnum.GetType().GetProperty("Contacto"); var tmpInactivo = tmpCurrentEnum.GetType().GetProperty("Inactivo"); tmpCl.Add(new Cl { Clstamp = tmpStamp.GetValue(tmpCurrentEnum, null).ToString(), Preco = decimal.Parse(tmpPreco.GetValue(tmpCurrentEnum, null).ToString()), Tabiva = decimal.Parse(tmpTabiva.GetValue(tmpCurrentEnum, null).ToString()), Desconto = decimal.Parse(tmpDesconto.GetValue(tmpCurrentEnum, null).ToString()), Nocredit = bool.Parse(tmpNocredit.GetValue(tmpCurrentEnum, null).ToString()), No = decimal.Parse(tmpNo.GetValue(tmpCurrentEnum, null).ToString()), Estab = decimal.Parse(tmpEstab.GetValue(tmpCurrentEnum, null).ToString()), Nome = tmpNome.GetValue(tmpCurrentEnum, null).ToString(), Nome2 = tmpNome2.GetValue(tmpCurrentEnum, null).ToString(), Morada = tmpMorada.GetValue(tmpCurrentEnum, null).ToString(), Local = tmpLocal.GetValue(tmpCurrentEnum, null).ToString(), Codpost = tmpCodPost.GetValue(tmpCurrentEnum, null).ToString(), Obs = tmpObs.GetValue(tmpCurrentEnum, null).ToString(), Tlmvl = tmpTlmvl.GetValue(tmpCurrentEnum, null).ToString(), Telefone = tmpTelefone.GetValue(tmpCurrentEnum, null).ToString(), Email = tmpEmail.GetValue(tmpCurrentEnum, null).ToString(), Esaldo = decimal.Parse(tmpEsaldo.GetValue(tmpCurrentEnum, null).ToString()), Statuspda = tmpStatuspda.GetValue(tmpCurrentEnum, null).ToString(), Vendedor = decimal.Parse(tmpVendedor.GetValue(tmpCurrentEnum, null).ToString()), Vendnm = tmpVendnm.GetValue(tmpCurrentEnum, null).ToString(), Ncont = tmpNcont.GetValue(tmpCurrentEnum, null).ToString(), Tipo = tmpTipo.GetValue(tmpCurrentEnum, null).ToString(), Contacto = tmpContacto.GetValue(tmpCurrentEnum, null).ToString(), Inactivo = bool.Parse(tmpInactivo.GetValue(tmpCurrentEnum, null).ToString()) }); } } } Cache.Add("Clientes" + _filterClientes, tmpCl, new TimeSpan(0, 8, 0, 0)); resultado = _utility.SerializeClientes(tmpCl, new List <Cc>()); } finally { tmp.Configuration.AutoDetectChangesEnabled = true; } } } catch (Exception e) { if (e.InnerException == null) { _logManager.WriteError(1200, "WorkerSyncClientes: Ocorreu o seguinte erro ao devolver os dados para o terminal:" + e.Source + " \n" + e.Message); } else { _logManager.WriteError(1200, "WorkerSyncClientes: Ocorreu o seguinte erro ao devolver os dados para o terminal:" + e.Source + " \n" + e.InnerException); } throw new FaultException <ConnectorServiceFault>(new ConnectorServiceFault { DataMessage = "Ocorreu um erro ao obter os dados para devolver para o terminal", DataDetails = "Nao foi possivel completar o pedido a base de dados. Tente mais tarde" }); } return(resultado); }