public void IniciarIntegracaoEstoque(SAPbobsCOM.Company oCompany) { string numItemTeste = string.Empty; try { Repositorio repositorio = new Repositorio(); this.log.WriteLogEstoque("Inicio do Processo de Integração de Estoque"); WarehouseDAL whsDAL = new WarehouseDAL(); SAPbobsCOM.Recordset recordset = (SAPbobsCOM.Recordset)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset); recordset = whsDAL.RecuperarSaldoEstoqueSAP(oCompany); if (recordset != null && recordset.RecordCount > 0) { for (int i = 0; i < recordset.RecordCount; i++) { try { string _itemCode = recordset.Fields.Item("ItemCode").Value.ToString(); Int16 _onHand = System.Convert.ToInt16(recordset.Fields.Item("OnHand").Value.ToString()); string warehouseId = ConfigurationManager.AppSettings["warehouseId"]; numItemTeste = _itemCode; Task <HttpResponseMessage> response = repositorio.BuscarItemPorSKU(_itemCode, oCompany); if (response.Result.IsSuccessStatusCode) { Item item = new Item(); var jsonResponse = response.Result.Content.ReadAsStringAsync(); item = JsonConvert.DeserializeObject <Item>(jsonResponse.Result); //Log.WriteLog("Item " + item.ManufacturerCode + " localizado."); if (item.Status) { Task <HttpResponseMessage> responseAtualizacaoEstoque = repositorio.AtualizarQuantidadeEstoque(_itemCode, _onHand); if (responseAtualizacaoEstoque.Result.IsSuccessStatusCode) { this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Estoque, _itemCode, _itemCode, EnumStatusIntegracao.Sucesso, "Estoque atualizado com sucesso."); this.log.WriteLogEstoque("Quantidade de estoque do Produto " + _itemCode + " para o depósito " + warehouseId + " atualizada com sucesso."); } else { this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Estoque, _itemCode, _itemCode, EnumStatusIntegracao.Erro, response.Result.ReasonPhrase); this.log.WriteLogEstoque("Não foi possível atualizar a quantidade de estoque para o produto " + _itemCode + ". Retorno API IntegraCommerce: " + response.Result.ReasonPhrase); } } } } catch (Exception e) { throw e; } recordset.MoveNext(); } } if (recordset != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(recordset); } } catch (Exception e) { this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Estoque, "", "", EnumStatusIntegracao.Erro, e.Message + numItemTeste); this.log.WriteLogEstoque("Exception IniciarProcessoEstoque " + e.Message); throw; } }
public void IniciarIntegracaoEstoque(SAPbobsCOM.Company oCompany) { try { Repositorio repositorio = new Repositorio(); this.log.WriteLogEstoque("Inicio do Processo de Integração de Estoque"); WarehouseDAL whsDAL = new WarehouseDAL(); SAPbobsCOM.Recordset recordset = (SAPbobsCOM.Recordset)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset); recordset = whsDAL.RecuperarSaldoEstoqueSAP(oCompany); if (recordset != null && recordset.RecordCount > 0) { for (int i = 0; i < recordset.RecordCount; i++) { try { string _itemCode = recordset.Fields.Item("ItemCode").Value.ToString(); Int16 _onHand = System.Convert.ToInt16(recordset.Fields.Item("OnHand").Value.ToString()); Task <HttpResponseMessage> itemResp = repositorio.RecuperarItemPorSKUSAP(_itemCode); if (itemResp.Result.IsSuccessStatusCode) { //desseralializar item var jsonItemML = itemResp.Result.Content.ReadAsStringAsync().Result; var itemML = JsonConvert.DeserializeObject <ItemML>(jsonItemML); foreach (String itemIdML in itemML.results) { Task <HttpResponseMessage> responseAttEstoque = repositorio.AtualizarQuantidadeEstoque(itemIdML, _onHand); if (responseAttEstoque.Result.IsSuccessStatusCode) { this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Estoque, _itemCode, _itemCode, EnumStatusIntegracao.Sucesso, "Estoque atualizado com sucesso."); this.log.WriteLogEstoque("Quantidade de estoque do Produto " + _itemCode + " atualizada com sucesso."); } } } } catch (Exception e) { this.log.WriteLogEstoque("Exception IniciarProcessoEstoque " + e.Message); throw; } recordset.MoveNext(); } } if (recordset != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(recordset); } //Log.WriteLog("Atualização controle executação."); // Environment.SetEnvironmentVariable("controleExecucao", DateTime.Now.ToUniversalTime().ToString("s") + "Z"); } catch (Exception e) { this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Estoque, "", "", EnumStatusIntegracao.Erro, e.Message); this.log.WriteLogEstoque("Exception IniciarProcessoEstoque " + e.Message); throw; } }
public void IniciarIntegracaoEstoque(SAPbobsCOM.Company oCompany) { try { Repositorio repositorio = new Repositorio(); this.log.WriteLogEstoque("Inicio do Processo de Integração de Estoque"); WarehouseDAL whsDAL = new WarehouseDAL(); SAPbobsCOM.Recordset recordset = (SAPbobsCOM.Recordset)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset); recordset = whsDAL.RecuperarSaldoEstoqueSAP(oCompany); if (recordset != null && recordset.RecordCount > 0) { for (int i = 0; i < recordset.RecordCount; i++) { try { string _itemCode = recordset.Fields.Item("ItemCode").Value.ToString(); Int16 _onHand = System.Convert.ToInt16(recordset.Fields.Item("OnHand").Value.ToString()); string warehouseId = ConfigurationManager.AppSettings["warehouseId"]; if (_itemCode.Equals("003179-055")) { string teste = string.Empty; } Task <HttpResponseMessage> response = repositorio.BuscarItemPorSKU(_itemCode, _onHand, oCompany); if (response.Result.IsSuccessStatusCode) { this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Estoque, _itemCode, _itemCode, EnumStatusIntegracao.Sucesso, "Estoque atualizado com sucesso."); this.log.WriteLogEstoque("Quantidade de estoque do Produto " + _itemCode + " para o depósito " + warehouseId + " atualizada com sucesso."); } if (Convert.ToInt16(response.Result.StatusCode) == 400) { this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Estoque, _itemCode, _itemCode, EnumStatusIntegracao.Erro, response.Result.ReasonPhrase); this.log.WriteLogEstoque("Não foi possível atualizar a quantidade de estoque para o produto " + _itemCode + ". Retorno API Vtex: " + response.Result.ReasonPhrase); } } catch (Exception) { throw; } recordset.MoveNext(); } } if (recordset != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(recordset); } //Log.WriteLog("Atualização controle executação."); // Environment.SetEnvironmentVariable("controleExecucao", DateTime.Now.ToUniversalTime().ToString("s") + "Z"); } catch (Exception e) { this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Estoque, "", "", EnumStatusIntegracao.Erro, e.Message); this.log.WriteLogEstoque("Exception IniciarProcessoEstoque " + e.Message); throw; } }
public void IniciarIntegracaoEstoque(SAPbobsCOM.Company oCompany) { try { Repositorio repositorio = new Repositorio(); WarehouseDAL whsDAL = new WarehouseDAL(); SAPbobsCOM.Recordset recordset = (SAPbobsCOM.Recordset)oCompany.GetBusinessObject(SAPbobsCOM.BoObjectTypes.BoRecordset); recordset = whsDAL.RecuperarSaldoEstoqueSAP(oCompany); if (recordset != null && recordset.RecordCount > 0) { for (int i = 0; i < recordset.RecordCount; i++) { try { string _itemCode = recordset.Fields.Item("ItemCode").Value.ToString(); Int16 _onHand = System.Convert.ToInt16(recordset.Fields.Item("OnHand").Value.ToString()); Task <HttpResponseMessage> itemResp = repositorio.RecuperarItemPorSKU(_itemCode); if (itemResp.Result.IsSuccessStatusCode) { Task <HttpResponseMessage> responseAttEstoque = repositorio.AtualizarQuantidadeEstoque(_itemCode, _onHand); if (responseAttEstoque.Result.IsSuccessStatusCode) { this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Estoque, _itemCode, _itemCode, EnumStatusIntegracao.Sucesso, "Estoque atualizado com sucesso."); this.log.WriteLogEstoque("Quantidade de estoque do Produto " + _itemCode + " atualizada com sucesso."); } else if (responseAttEstoque.Result.StatusCode == System.Net.HttpStatusCode.Unauthorized) { this.GetNewAccessToken(); } } else if (itemResp.Result.StatusCode == System.Net.HttpStatusCode.Unauthorized) { this.GetNewAccessToken(); } } catch (Exception) { throw; } recordset.MoveNext(); } } if (recordset != null) { System.Runtime.InteropServices.Marshal.ReleaseComObject(recordset); } } catch (Exception e) { this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Estoque, "", "", EnumStatusIntegracao.Erro, e.Message); this.log.WriteLogEstoque("Exception IntegracaoService.IniciarIntegracaoEstoque " + e.Message); } }