private int InserirPedidoVenda(SAPbobsCOM.Company oCompany, Order pedidoMl)
        {
            try
            {
                if (oCompany.Connected)
                {
                    OrdersDAL orderDAL     = new OrdersDAL(oCompany);
                    string    messageError = "";
                    int       oOrderNum    = 0;
                    Boolean   inserir      = true;

                    foreach (Order_Items item in pedidoMl.order_items)
                    {
                        if (item.item.seller_custom_field == null && inserir)
                        {
                            this.log.WriteLogTable(oCompany, EnumTipoIntegracao.PedidoVenda, pedidoMl.id.ToString(), "", EnumStatusIntegracao.Erro, "Um ou mais item(s) do pedido está com o código de referência inválido.");
                            //throw new ArgumentException("Não foi possível criar o Pedido de Venda para o pedido "+pedidoVtex.orderId+" pois um ou mais item(s) do pedido está com o código de referência inválido.");
                            inserir = false;
                        }
                    }

                    if (inserir)
                    {
                        oOrderNum = orderDAL.InsertOrder(pedidoMl, out messageError);
                    }
                }

                return(0);
            }
            catch (Exception e)
            {
                this.log.WriteLogPedido("Exception InserirPedidoVenda " + e.Message);
                throw;
            }
        }
        private int InserirPedidoVenda(SAPbobsCOM.Company oCompany, OrderPluggto pedidoPluggto)
        {
            try
            {
                if (oCompany.Connected)
                {
                    OrdersDAL orderDAL     = new OrdersDAL(oCompany);
                    string    messageError = "";
                    int       oOrderNum    = 0;
                    Boolean   inserir      = true;

                    foreach (Item item in pedidoPluggto.Order.items)
                    {
                        if (string.IsNullOrEmpty(item.sku) && inserir)
                        {
                            this.log.WriteLogTable(oCompany, EnumTipoIntegracao.PedidoVenda, pedidoPluggto.Order.id, "", EnumStatusIntegracao.Erro, "Um ou mais item(s) do pedido está com o código de referência inválido.");
                            this.log.WriteLogPedido("Um ou mais item(s) do pedido está com o código de referência inválido.");
                            inserir = false;
                        }
                    }

                    if (inserir)
                    {
                        oOrderNum = orderDAL.InsertOrder(pedidoPluggto.Order, out messageError);
                    }
                }

                return(0);
            }
            catch (Exception e)
            {
                this.log.WriteLogPedido("Exception InserirPedidoVenda " + e.Message);
                throw;
            }
        }
        private int InserirPedidoVenda(SAPbobsCOM.Company oCompany, OrderIntegraCommerce pedido, int idOrderQueue)
        {
            try
            {
                if (oCompany.Connected)
                {
                    OrdersDAL order        = new OrdersDAL(oCompany);
                    string    messageError = "";
                    int       oOrderNum    = 0;
                    Boolean   inserir      = true;

                    /*foreach (ItemVtex item in pedido.items)
                     * {
                     *  if (item.refId == null && inserir)
                     *  {
                     *      this.log.WriteLogTable(oCompany, EnumTipoIntegracao.PedidoVenda, pedido.orderId, "", EnumStatusIntegracao.Erro, "Um ou mais item(s) do pedido está com o código de referência inválido.");
                     *      //throw new ArgumentException("Não foi possível criar o Pedido de Venda para o pedido "+pedidoVtex.orderId+" pois um ou mais item(s) do pedido está com o código de referência inválido.");
                     *      inserir = false;
                     *  }
                     * }*/

                    if (inserir)
                    {
                        oOrderNum = order.InsertOrder(pedido, out messageError);

                        if (oOrderNum == 0)
                        {
                            Repositorio repositorio = new Repositorio();

                            //Pedido inserido no SAP, removendo pedido da fila de enventos(Feed), para não ser mais processado.

                            Task <HttpResponseMessage> response = repositorio.AtualizaFilaEnvetoPedido(idOrderQueue);

                            if (response.Result.IsSuccessStatusCode)
                            {
                                this.log.WriteLogPedido("Pedido " + pedido.IdOrder + " removido de OrderQueue");
                            }
                            else
                            {
                                this.log.WriteLogPedido("Não foi possível remover o pedido " + pedido.IdOrder + " de OrderQueue" + response.Result.ReasonPhrase);
                            }

                            //Alterar status para Processing
                            if (!pedido.OrderStatus.Equals("INVOICED"))
                            {
                                Task <HttpResponseMessage> responseIniciarManuseio = repositorio.AlterarStatusPedido(pedido.IdOrder);

                                if (responseIniciarManuseio.Result.IsSuccessStatusCode)
                                {
                                    this.log.WriteLogPedido("Alterado status do pedido " + pedido.IdOrder + " para Iniciar PROCESSING.");
                                }
                                else
                                {
                                    this.log.WriteLogPedido("Não foi possível alterar o status do pedido " + pedido.IdOrder + " para PROCESSING." + response.Result.ReasonPhrase);
                                }
                            }
                        }
                    }
                }

                return(0);
            }
            catch (Exception e)
            {
                this.log.WriteLogPedido("Exception InserirPedidoVenda " + e.Message);
                throw;
            }
        }