Exemple #1
0
 public salesOrderEntity RetrieveOrderInformation(string _orderID)
 {
     try
     {
         salesOrderEntity order = _mageService.salesOrderDetail(_sessionKey, _orderID);
         return(order);
     }
     catch (Exception ex)
     {
         MessageBox.Show("Error retieving items for order #" + _orderID + ":\r\n\r\n" + ex.Message);
         return(null);
     }
 }
Exemple #2
0
        private string GetWeight(string strOrderNo)
        {
            try
            {
                if (!string.IsNullOrEmpty(mage_session))
                {
                    salesOrderEntity soEntity = mservice.salesOrderInfo(mage_session, strOrderNo);
                    return(soEntity.weight);
                }
            }
            catch { }

            return("1.00");
        }
Exemple #3
0
        static void Main(string[] args)
        {
            Mage_Api_Model_Server_Wsi_HandlerPortTypeClient client = new Mage_Api_Model_Server_Wsi_HandlerPortTypeClient();

            //log in Magento API to get the session_id
            loginResponse session   = client.loginAsync("userAPI", "keyAPI").Result;
            string        sessionId = session.result;

            Console.WriteLine("Session ID: " + sessionId);

            //Let's get the info from Order "100000010"
            var response           = client.salesOrderInfoAsync(sessionId, "100000010").Result;
            salesOrderEntity order = response.result;

            Console.WriteLine("Status in Order: " + order.status);
        }
Exemple #4
0
    public static void Main(string [] args)
    {
        mIgnoreInvalidCertificates = new System.Net.Security.RemoteCertificateValidationCallback(delegate { return(true); });
        MagentoService mageService = new MagentoService();
        string         mageSession = null;

        if (args.Length < 3)
        {
            Console.WriteLine("Usage; ListOrders apiUser apiKey status [processing|complete|pending]");
            return;
        }

        try {
            _apiUser        = args[0];
            _apiKey         = args[1];
            _orderToInvoice = args[2];
            Console.WriteLine("Connecting to " + mageService.Url);
            if (_beSecure)                  //require secure communications
            {
                System.Net.ServicePointManager.ServerCertificateValidationCallback -= mIgnoreInvalidCertificates;
                Console.WriteLine("Requiring Valid Certificates from Remote Sites");
            }
            else                 /// Allow connections to SSL sites that have unsafe certificates.
            {
                System.Net.ServicePointManager.ServerCertificateValidationCallback += mIgnoreInvalidCertificates;
                Console.WriteLine("Ignoring Invalid Certificates from Remote Sites");
            }
            mageSession = mageService.login(_apiUser, _apiKey);
        }
        catch (Exception ex) {
            Console.WriteLine("Login failed: \"" + ex.Message + "\"\n");
            return;
        }

        try {
            salesOrderEntity      orderDetail = mageService.salesOrderInfo(mageSession, _orderToInvoice);
            List <orderItemIdQty> invoiceInfo = new List <orderItemIdQty>();
            foreach (salesOrderItemEntity li in orderDetail.items)
            {
                Console.WriteLine("Item:" + li.item_id + " Qty:" + li.qty_ordered + " (" + li.name + ")");
                orderItemIdQty invoiceLineItem = new orderItemIdQty();
                invoiceLineItem.order_item_id = Convert.ToInt32(li.item_id);
                invoiceLineItem.qty           = Convert.ToDouble(li.qty_ordered);
                invoiceInfo.Add(invoiceLineItem);
                if (_wantXml)
                {
                    System.Xml.Serialization.XmlSerializer xmlLineItemDetail =
                        new System.Xml.Serialization.XmlSerializer(li.GetType());
                    xmlLineItemDetail.Serialize(Console.Out, li);
                    Console.WriteLine();
                }
            }
            orderItemIdQty[] invoiceQtys = invoiceInfo.ToArray();

            /* Create an invoice, and then capture it. Although we are reporting errors,
             *      we don't do anything about them, Nor do we stop processing.
             */
            try {
                string invoiceIncrementId = mageService.salesOrderInvoiceCreate(mageSession, _orderToInvoice,
                                                                                invoiceQtys, "Invoiced via API", "1", "1");
                try {
                    mageService.salesOrderInvoiceCapture(mageSession, invoiceIncrementId);
                }
                catch (Exception ex) {
                    Console.WriteLine("Invoice Capture Error: \"" + ex.Message + "\"");
                }
            }
            catch (Exception ex) {
                Console.WriteLine("Invoice Create Error: \"" + ex.Message + "\"");
            }

            // Create the shipment, and add tracking for it. Similar to invoicing, we don't stop for errors.
            try {
                string shipmentIncrementId = mageService.salesOrderShipmentCreate(mageSession, _orderToInvoice, invoiceQtys,
                                                                                  "Shipment via API", 1, 1);

                associativeEntity[] validCarriers = mageService.salesOrderShipmentGetCarriers(mageSession, _orderToInvoice);
                if (_wantXml)
                {
                    System.Xml.Serialization.XmlSerializer xmlValidCarriers =
                        new System.Xml.Serialization.XmlSerializer(validCarriers.GetType());
                    xmlValidCarriers.Serialize(Console.Out, validCarriers);
                    Console.WriteLine();
                }
                try {
                    mageService.salesOrderShipmentAddTrack(mageSession, shipmentIncrementId, "ups", "Schiff UPS Shipping", "1Z9999999999999999");
                }
                catch (Exception ex) {
                    Console.WriteLine("Add Shipment Tracking Error: \"" + ex.Message + "\"");
                }
            }
            catch (Exception ex) {
                Console.WriteLine("Shipment Create Error: \"" + ex.Message + "\"");
            }

            /* Assuming everything went well (which we do ASSume), this order has been Imported into ERP, Invoiced,
             *      Captured, and Shipped Complete.
             */
            mageService.salesOrderAddComment(mageSession, _orderToInvoice, "complete", "Order Completed via API", "0");
            mageService.endSession(mageSession);
        }
        catch (Exception ex) {
            Console.WriteLine("Error: \"" + ex.Message + "\"\n");
        }
    }
Exemple #5
0
        public Order(salesOrderEntity order)
        {
            this.Addresses = new List <Tuple <AddressTypeEnum, Address> >
            {
                Tuple.Create(AddressTypeEnum.Billing,
                             new Address
                {
                    AddressType = order.billing_address.address_type,
                    City        = order.billing_address.city,
                    Company     = order.billing_address.company,
                    CountryId   = order.billing_address.country_id,
                    Firstname   = order.billing_address.firstname,
                    Lastname    = order.billing_address.lastname,
                    Postcode    = order.billing_address.postcode,
                    Region      = order.billing_address.region,
                    Street      = order.billing_address.street,
                    Telephone   = order.billing_address.telephone,
                }),
                Tuple.Create(AddressTypeEnum.Shipping,
                             new Address
                {
                    AddressType = order.shipping_address.address_type,
                    City        = order.shipping_address.city,
                    Company     = order.shipping_address.company,
                    CountryId   = order.shipping_address.country_id,
                    Firstname   = order.shipping_address.firstname,
                    Lastname    = order.shipping_address.lastname,
                    Postcode    = order.shipping_address.postcode,
                    Region      = order.shipping_address.region,
                    Street      = order.shipping_address.street,
                    Telephone   = order.shipping_address.telephone,
                }),
            };

            this.BaseCurrencyCode   = order.base_currency_code;
            this.BaseDiscount       = order.base_discount_amount.ToDoubleOrDefault();
            this.BaseGrandTotal     = order.base_grand_total.ToDecimalOrDefault();
            this.BaseShippingAmount = order.base_shipping_amount.ToDecimalOrDefault();
            this.BaseSubtotal       = order.base_subtotal.ToDecimalOrDefault();
            this.BaseTaxAmount      = order.base_tax_amount.ToDecimalOrDefault();
            this.BaseTotalPaid      = order.base_total_paid.ToDecimalOrDefault();
            this.BaseTotalRefunded  = order.base_total_refunded.ToDecimalOrDefault();
            this.CreatedAt          = order.created_at.ToDateTimeOrDefault();
            this.Customer           = order.customer_id;
            this.DiscountAmount     = order.discount_amount.ToDoubleOrDefault();
            this.GrandTotal         = order.grand_total.ToDecimalOrDefault();
            this.OrderIncrementalId = order.increment_id;
            this.OrderId            = order.order_id;
            this.Items = order.items.Select(x => new Item
            {
                BaseDiscountAmount = x.base_discount_amount.ToDecimalOrDefault(),
                BaseOriginalPrice  = x.base_original_price.ToDecimalOrDefault(),
                Sku           = x.sku,
                Name          = x.name,
                BaseTaxAmount = x.base_tax_amount.ToDecimalOrDefault(),
                ItemId        = x.item_id,
                BasePrice     = x.base_price.ToDecimalOrDefault(),
                BaseRowTotal  = x.base_row_total.ToDecimalOrDefault(),
                DscountAmount = x.discount_amount.ToDecimalOrDefault(),
                OriginalPrice = x.original_price.ToDecimalOrDefault(),
                Price         = x.price.ToDecimalOrDefault(),
                ProductType   = x.product_type,
                QtyCanceled   = x.qty_canceled.ToDecimalOrDefault(),
                QtyInvoiced   = x.qty_invoiced.ToDecimalOrDefault(),
                QtyOrdered    = x.qty_ordered.ToDecimalOrDefault(),
                QtyShipped    = x.qty_shipped.ToDecimalOrDefault(),
                QtyRefunded   = x.qty_refunded.ToDecimalOrDefault(),
                RowTotal      = x.row_total.ToDecimalOrDefault(),
                TaxAmount     = x.tax_amount.ToDecimalOrDefault(),
                TaxPercent    = x.tax_percent.ToDecimalOrDefault(),
            }
                                            ).ToList();
            this.PaymentMethod  = order.payment.method;
            this.ShippingAmount = order.shipping_amount.ToDecimalOrDefault();
            this.StoreName      = order.store_name;
            this.Subtotal       = order.subtotal.ToDecimalOrDefault();
            this.TaxAmount      = order.tax_amount.ToDecimalOrDefault();
            this.TotalPaid      = order.total_paid.ToDecimalOrDefault();
            this.TotalRefunded  = order.total_refunded.ToDecimalOrDefault();

            this.ShippingAddressId = order.shipping_address_id;
            this.ShippingAmount    = order.shipping_amount.ToDecimalOrDefault();

            this.ShippingDescription = order.shipping_description;
            this.ShippingFirstname   = order.shipping_firstname;
            this.ShippingLastname    = order.shipping_lastname;
            this.ShippingMethod      = order.shipping_method;
            this.ShippingName        = order.shipping_name;

            OrderStatusesEnum tempstatus;
            OrderStateEnum    tempstate;

            this.Status = Enum.TryParse(order.status, true, out tempstatus) ? tempstatus : OrderStatusesEnum.unknown;
            this.State  = Enum.TryParse(order.state, true, out tempstate) ? tempstate : OrderStateEnum.unknown;
        }
    public static void Main(string [] args)
    {
        mIgnoreInvalidCertificates = new System.Net.Security.RemoteCertificateValidationCallback(delegate { return(true); });
        MagentoService mageService = new MagentoService();
        string         mageSession = null;

        if (args.Length < 3)
        {
            Console.WriteLine("Usage; ListOrders apiUser apiKey status [processing|complete|pending]");
            return;
        }

        try {
            _apiUser = args[0];
            _apiKey  = args[1];
            _status  = args[2];
            Console.WriteLine("Connecting to " + mageService.Url);
            if (_beSecure)                  //require secure communications
            {
                System.Net.ServicePointManager.ServerCertificateValidationCallback -= mIgnoreInvalidCertificates;
                Console.WriteLine("Requiring Valid Certificates from Remote Sites");
            }
            else                 /// Allow connections to SSL sites that have unsafe certificates.
            {
                System.Net.ServicePointManager.ServerCertificateValidationCallback += mIgnoreInvalidCertificates;
                Console.WriteLine("Ignoring Invalid Certificates from Remote Sites");
            }
            mageSession = mageService.login(_apiUser, _apiKey);
        }
        catch (Exception ex) {
            Console.WriteLine("Login failed: \"" + ex.Message + "\"\n");
            return;
        }

        try {
            _stateCodes = mageService.directoryRegionList(mageSession, "US");

            salesOrderListEntity[] salesOrders = mageService.salesOrderList(mageSession, tanMageFilter("status", "eq", _status, "10"));

            if (_wantXml)
            {
                System.Xml.Serialization.XmlSerializer xml = new System.Xml.Serialization.XmlSerializer(salesOrders.GetType());
                xml.Serialize(Console.Out, salesOrders);
                Console.WriteLine();
            }

            foreach (salesOrderListEntity orderHeader in salesOrders)
            {
                salesOrderEntity orderDetail = mageService.salesOrderInfo(mageSession, orderHeader.increment_id);

                mageService.salesOrderAddComment(mageSession, orderHeader.increment_id, orderHeader.status, "Examined by remote API II", "0");

                if (_wantXml)
                {
                    System.Xml.Serialization.XmlSerializer xmlDetail = new System.Xml.Serialization.XmlSerializer(orderDetail.GetType());
                    xmlDetail.Serialize(Console.Out, orderDetail);
                    Console.WriteLine();
                }
                if (_wantHumanReadable)
                {
                    Console.WriteLine(
                        "OrderID  " + orderHeader.increment_id + "\n"
                        + "OrderDate " + orderHeader.created_at + "\n"
                        + "Status    " + orderHeader.status + "\n"
                        + "SoldTo    " + orderHeader.billing_firstname + " " + orderHeader.billing_lastname + "\n"
                        + "Total     " + orderHeader.grand_total
                        );

                    salesOrderAddressEntity billToAddress = orderDetail.billing_address;
                    Console.WriteLine(
                        "BillTo\n"
                        + "\t" + orderHeader.billing_firstname + " " + orderHeader.billing_lastname + "\n"
                        + "\t" + billToAddress.street + "\n"
                        + "\t" + billToAddress.city + ", " + getStateAbbreviation(billToAddress.region_id) + " " + billToAddress.postcode
                        );

                    salesOrderAddressEntity shipToAddress = orderDetail.shipping_address;
                    Console.WriteLine(
                        "ShipTo\n"
                        + "\t" + orderHeader.shipping_firstname + " " + orderHeader.shipping_lastname + "\n"
                        + "\t" + shipToAddress.street + "\n"
                        + "\t" + shipToAddress.city + ", " + getStateAbbreviation(shipToAddress.region_id) + " " + shipToAddress.postcode
                        );

                    foreach (salesOrderItemEntity li in orderDetail.items)
                    {
                        Console.WriteLine(li.sku + " " + li.name);
                        phpDeserializer(li.product_options);
                    }
                    Console.WriteLine(sep);
                }
            }
            mageService.endSession(mageSession);
        }
        catch (Exception ex) {
            Console.WriteLine("I was hoping for better than this. Error: \"" + ex.Message + "\"\n");
        }
    }
    public static void MainOrders(string[] args)
    {
        MNC_Product_Sync.Navision_SalesOrder_Service.SalesOrder_PortClient client = new MNC_Product_Sync.Navision_SalesOrder_Service.SalesOrder_PortClient();



        client.ClientCredentials.Windows.ClientCredential.UserName = "******";

        client.ClientCredentials.Windows.ClientCredential.Password = "******";

        client.ClientCredentials.Windows.ClientCredential.Domain = "122.166.222.116";

        DBConnect db = new DBConnect();

        MNC_Product_Sync.MagentoConnectService.PortTypeClient mage_client = new MNC_Product_Sync.MagentoConnectService.PortTypeClient();

        string token_id = null;


        try
        {
            ServicePointManager.ServerCertificateValidationCallback = ((sender, certificate, chain, sslPolicyErrors) => true);

            token_id    = mage_client.login("webserviceuser", "apikey");
            _stateCodes = mage_client.directoryRegionList(token_id, "US");

            filters filtres = new filters();

            filtres.complex_filter = new complexFilter[]
            {
                new complexFilter()
                {
                    //key = "created_at",
                    //value = new associativeEntity
                    //{
                    //    key = "gt",
                    //    value = "2015-07-28 08:00:00"
                    //}

                    key   = "status",
                    value = new associativeEntity
                    {
                        key   = "eq",
                        value = "pending"
                    }
                }
            };

            salesOrderListEntity[] salesOrders = mage_client.salesOrderList(token_id, filtres);

            Hashtable hsc = db.fetch_Customer1Mapping();


            foreach (salesOrderListEntity orderHeader in salesOrders)
            {
                if (!db.fetch_Order(orderHeader.increment_id.ToString(), "1"))
                {
                    MNC_Product_Sync.Navision_SalesOrder_Service.SalesOrder so = new MNC_Product_Sync.Navision_SalesOrder_Service.SalesOrder();

                    MNC_Product_Sync.Navision_SalesOrder_Service.Sales_Order_Line[] sls = new MNC_Product_Sync.Navision_SalesOrder_Service.Sales_Order_Line[50];
                    salesOrderEntity        orderDetail   = mage_client.salesOrderInfo(token_id, orderHeader.increment_id);
                    salesOrderAddressEntity billToAddress = orderDetail.billing_address;
                    salesOrderAddressEntity shipToAddress = orderDetail.shipping_address;
                    so.Bill_to_Address       = billToAddress.street + " " + billToAddress.region + " " + billToAddress.postcode;
                    so.Ship_to_Address       = billToAddress.street + " " + billToAddress.region + " " + billToAddress.postcode;
                    so.Bill_to_Name          = billToAddress.firstname + " " + billToAddress.lastname + " ";
                    so.Ship_to_Name          = shipToAddress.firstname + " " + shipToAddress.lastname;
                    so.Bill_to_Contact       = billToAddress.telephone;
                    so.Sell_to_Customer_No   = hsc[orderDetail.customer_id].ToString();
                    so.Ship_to_Contact       = billToAddress.telephone;
                    so.External_Document_No  = orderHeader.increment_id;
                    so.Bill_to_Customer_No   = hsc[orderDetail.customer_id].ToString();
                    so.Sell_to_Customer_Name = orderHeader.customer_firstname + " " + orderHeader.customer_lastname;
                    so.Order_Date            = DateTime.Parse(orderHeader.created_at);
                    so.VAT_Bus_Posting_Group = "FOREIGN";



                    int i = 0;

                    foreach (salesOrderItemEntity li in orderDetail.items)
                    {
                        if (!db.fetch_Order(orderHeader.increment_id.ToString(), (i + 1).ToString()))
                        {
                            MNC_Product_Sync.Navision_SalesOrder_Service.Sales_Order_Line sl = new MNC_Product_Sync.Navision_SalesOrder_Service.Sales_Order_Line();
                            sl.Quantity = decimal.Parse(li.qty_ordered);
                            sl.VAT_Prod_Posting_Group = "DOMESTIC";
                            sl.No                = li.sku;
                            sl.Description       = li.name;
                            sl.Unit_Price        = decimal.Parse(li.base_price);
                            sl.Line_Amount       = decimal.Parse(li.base_row_total);
                            sl.TypeSpecified     = true;
                            sl.Sales_Header_Repl = decimal.Parse(li.base_price).ToString();
                            sl.QuantitySpecified = true;
                            sl.Type              = MNC_Product_Sync.Navision_SalesOrder_Service.Type.Item;
                            sl.Line_No           = i + 1;
                            sls[i]               = sl;


                            i = i + 1;
                            db.InsertOrderMapping(so.No, sl.Line_No.ToString(), orderHeader.increment_id, sl.Line_No.ToString(), orderHeader.customer_id);
                        }
                    }
                    if (!db.fetch_Order(orderHeader.increment_id.ToString(), (i + 1).ToString()))
                    {
                        try {
                            so.SalesLines = sls;
                            client.Create(ref so);
                            if (so.No != null)
                            {
                                db.UpdateOrder(orderHeader.increment_id, so.No);
                                db.InsertLog("Order", so.No, "Navision Order Number", "SUCCESS");
                            }
                        }
                        catch (Exception ex)
                        {
                            db.deleteOrder(orderHeader.increment_id);
                            db.InsertLog("Order", orderHeader.increment_id, ex.Message, "FAILED");
                        }
                    }
                }
            }
        }
        catch (Exception ex)
        {
            db.InsertLog("Order", "", ex.Message.ToString(), "FAILED");
            MNC_Product_Sync.ErrorLog errLog = new MNC_Product_Sync.ErrorLog();

            errLog.LogError("C:\\MNC_Logs", "Order : " + ex.Message);
        }
        finally
        {
            mage_client.endSession(token_id);
        }
    }
Exemple #8
0
        public static void MainInv(string[] args)
        {
            MNC_Product_Sync.Navision_Invoice.PostedSalesInvoice_PortClient client1 = new MNC_Product_Sync.Navision_Invoice.PostedSalesInvoice_PortClient();

            client1.ClientCredentials.Windows.ClientCredential.UserName = "******";

            client1.ClientCredentials.Windows.ClientCredential.Password = "******";

            client1.ClientCredentials.Windows.ClientCredential.Domain = "122.166.222.116";

            Navision_Invoice.PostedSalesInvoice_Filter f1 = new Navision_Invoice.PostedSalesInvoice_Filter();

            Navision_Invoice.PostedSalesInvoice[] nv_PostedInvoices;

            nv_PostedInvoices = client1.ReadMultiple(new Navision_Invoice.PostedSalesInvoice_Filter[] { f1 }, null, 10000);


            DBConnect db = new DBConnect();

            MNC_Product_Sync.MagentoConnectService.PortTypeClient mage_client = new MNC_Product_Sync.MagentoConnectService.PortTypeClient();

            string token_id = null;


            try
            {
                Hashtable hso = db.fetch_PendingInvoices();

                token_id = mage_client.login("webserviceuser", "apikey");
                orderItemIdQty[] invoiceQtys = null;
                for (int i = 0; i < nv_PostedInvoices.Length; i++)
                {
                    if (db.fetch_OnlineOrder(nv_PostedInvoices[i].Order_No))
                    {
                        string                magorder    = (string)hso[nv_PostedInvoices[i].Order_No + "/" + 1];
                        string[]              mageorders  = magorder.Split('/');
                        salesOrderEntity      orderDetail = mage_client.salesOrderInfo(token_id, mageorders[0]);
                        List <orderItemIdQty> invoiceInfo = new List <orderItemIdQty>();
                        foreach (salesOrderItemEntity li in orderDetail.items)
                        {
                            orderItemIdQty invoiceLineItem = new orderItemIdQty();
                            invoiceLineItem.order_item_id = Convert.ToInt32(li.item_id);
                            invoiceLineItem.qty           = Convert.ToDouble(li.qty_ordered);
                            invoiceInfo.Add(invoiceLineItem);
                        }
                        invoiceQtys = invoiceInfo.ToArray();

                        /* Create an invoice, and then capture it. Although we are reporting errors,
                         *  we don't do anything about them, Nor do we stop processing.
                         */


                        try
                        {
                            string invoiceIncrementId = mage_client.salesOrderInvoiceCreate(token_id, mageorders[0],
                                                                                            invoiceQtys, "Invoiced via API", "1", "1");
                            try
                            {
                                // mage_client.salesOrderInvoiceCapture(token_id, invoiceIncrementId);
                                mage_client.salesOrderAddComment(token_id, mageorders[0], "invoiced", "Order Invoiced via API", "0");
                                db.UpdateInvoice(magorder, invoiceIncrementId + "/" + nv_PostedInvoices[i].No);
                            }
                            catch (Exception ex)
                            {
                            }
                        }
                        catch (Exception ex)
                        {
                        }
                    }
                }


                /* Assuming everything went well (which we do ASSume), this order has been Imported into ERP, Invoiced,
                 *  Captured, and Shipped Complete.
                 */

                mage_client.endSession(token_id);
            }
            catch (Exception ex)
            {
            }
        }
Exemple #9
0
        private void bbImportar_Click(object sender, EventArgs e)
        {
            //071.548.686-19
            if (bsPedLoja.Current != null)
            {
                if ((bsPedLoja.Current as TRegistro_Pedido).Nr_pedido.ToString().Trim() != "0")
                {
                    MessageBox.Show("Não é permitido IMPORTAR pedido novamente.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                if ((bsPedLoja.Current as TRegistro_Pedido).StatusMagento.Trim().ToUpper().Equals("CANCELADO"))
                {
                    MessageBox.Show("Não é permitido IMPORTAR pedido CANCELADO.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                if (rCfg == null)
                {
                    MessageBox.Show("Não existe configuração E-commerce para loja selecionada.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    return;
                }
                MagentoService api    = new MagentoService();
                string         sessao = string.Empty;
                try
                {
                    sessao = api.login((cbLoja.SelectedItem as TRegistro_LojaVirtual).UserName, (cbLoja.SelectedItem as TRegistro_LojaVirtual).ApiKey);
                    salesOrderEntity ePed = api.salesOrderInfo(sessao, (bsPedLoja.Current as TRegistro_Pedido).Nr_PedidoOrigem);
                    if (ePed != null)
                    {
                        TRegistro_Pedido rPedido = new TRegistro_Pedido();
                        //Buscar Cliente
                        customerCustomerEntity eCliente = api.customerCustomerInfo(sessao, int.Parse(ePed.customer_id), null);
                        //Verificar se cliente existe no Aliance
                        TList_CadClifor lCliente = new TCD_CadClifor().Select(
                            new TpBusca[]
                        {
                            new TpBusca()
                            {
                                vNM_Campo = string.Empty,
                                vOperador = string.Empty,
                                vVL_Busca = "dbo.FVALIDA_NUMEROS(a.nr_cgc) = '" + eCliente.taxvat.Trim() + "' " +
                                            "or dbo.FVALIDA_NUMEROS(a.nr_cpf) = '" + eCliente.taxvat.Trim() + "'"
                            }
                        }, 1, string.Empty);
                        if (lCliente.Count > 0)
                        {
                            rPedido.CD_Clifor = lCliente[0].Cd_clifor;
                            rPedido.NM_Clifor = lCliente[0].Nm_clifor;
                            //Buscar endereco cliente
                            TList_CadEndereco lEnd =
                                new TCD_CadEndereco().Select(
                                    new TpBusca[]
                            {
                                new TpBusca()
                                {
                                    vNM_Campo = "a.cd_clifor",
                                    vOperador = "=",
                                    vVL_Busca = "'" + lCliente[0].Cd_clifor.Trim() + "'"
                                }
                            }, 1, string.Empty);
                            if (lEnd.Count > 0)
                            {
                                rPedido.CD_Endereco = lEnd[0].Cd_endereco;
                                rPedido.DS_Endereco = lEnd[0].Ds_endereco;
                                numero.Text         = lEnd[0].Numero;
                                bairro.Text         = lEnd[0].Bairro;
                                ds_cidade.Text      = lEnd[0].DS_Cidade;
                                uf.Text             = lEnd[0].UF;
                            }
                        }
                        else
                        {
                            TRegistro_CadClifor rClifor = new TRegistro_CadClifor();
                            rClifor.Nm_clifor            = eCliente.firstname.Trim().ToUpper() + " " + eCliente.lastname.Trim().ToUpper();
                            rClifor.Email                = eCliente.email.Trim();
                            rClifor.Tp_pessoa            = eCliente.taxvat.Trim().Length.Equals(14) ? "J" : "F";
                            rClifor.Nr_cgc               = eCliente.taxvat.Trim().Length.Equals(14) ? eCliente.taxvat.Trim() : string.Empty;
                            rClifor.Nr_cpf               = !eCliente.taxvat.Trim().Length.Equals(14) ? eCliente.taxvat.Trim() : string.Empty;
                            rClifor.Id_categoriaclifor   = rCfg.Id_categoriaclifor;
                            rClifor.Cd_condfiscal_clifor = rCfg.Cd_condfiscal_clifor;
                            TRegistro_CadEndereco rEndereco = new TRegistro_CadEndereco();
                            rEndereco.Cep = ePed.billing_address.postcode;
                            //Buscar Endereco Rest
                            TEndereco_CEPRest eRest = ServiceRest.DataService.BuscarEndCEPRest(rEndereco.Cep);
                            if (eRest != null)
                            {
                                rEndereco.Ds_endereco    = eRest.logradouro;
                                rEndereco.Ds_complemento = eRest.complemento;
                                rEndereco.Bairro         = eRest.bairro;
                                rEndereco.Cd_cidade      = eRest.ibge;
                                string[] str = ePed.billing_address.street.Split(new char[] { '\n' });
                                if (str.Length >= 2)
                                {
                                    rEndereco.Numero = str[1];
                                }
                            }
                            else
                            {
                                string[] str = ePed.billing_address.street.Split(new char[] { '\n' });
                                if (str.Length >= 4)
                                {
                                    rEndereco.Ds_endereco = str[0];
                                    rEndereco.Bairro      = str[3];
                                    rEndereco.Numero      = str[1];
                                }
                            }
                            rClifor.lEndereco.Add(rEndereco);
                            using (Financeiro.Cadastros.TFCadCliforResumido fClifor = new Financeiro.Cadastros.TFCadCliforResumido())
                            {
                                fClifor.rClifor = rClifor;
                                if (fClifor.ShowDialog() == DialogResult.OK)
                                {
                                    try
                                    {
                                        TCN_CadClifor.Gravar(fClifor.rClifor, null);
                                        MessageBox.Show("Cliente cadastrado com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                        rPedido.CD_Clifor   = fClifor.rClifor.Cd_clifor;
                                        rPedido.NM_Clifor   = fClifor.rClifor.Nm_clifor;
                                        rPedido.CD_Endereco = fClifor.rClifor.lEndereco[0].Cd_endereco;
                                        rPedido.DS_Endereco = fClifor.rClifor.lEndereco[0].Ds_endereco;
                                        numero.Text         = fClifor.rClifor.lEndereco[0].Numero;
                                        bairro.Text         = fClifor.rClifor.lEndereco[0].Bairro;
                                        ds_cidade.Text      = fClifor.rClifor.lEndereco[0].DS_Cidade;
                                        uf.Text             = fClifor.rClifor.lEndereco[0].UF;
                                    }
                                    catch (Exception ex)
                                    {
                                        MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);
                                        return;
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("Obrigatório cadastrar cliente para importar pedido.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    return;
                                }
                            }
                        }
                        rPedido.cd_empresa      = (cbLoja.SelectedItem as TRegistro_LojaVirtual).Cd_empresa;
                        rPedido.Nm_Empresa      = (cbLoja.SelectedItem as TRegistro_LojaVirtual).Nm_empresa;
                        rPedido.Nr_PedidoOrigem = (bsPedLoja.Current as TRegistro_Pedido).Nr_PedidoOrigem;
                        rPedido.CFG_Pedido      = rCfg.Cfg_pedido;
                        rPedido.TP_Movimento    = "S";//Venda
                        rPedido.DT_Pedido       = CamadaDados.UtilData.Data_Servidor();
                        rPedido.ST_Pedido       = "F";
                        rPedido.St_registro     = "F";
                        rPedido.Cd_moeda        = rCfg.Cd_moeda;
                        rPedido.Tp_frete        = decimal.Divide(decimal.Parse(ePed.shipping_amount.SoNumero()), 10000) > 0 ? "1" : "9";
                        rPedido.QUANTIDADENF    = decimal.Divide(decimal.Parse(ePed.total_qty_ordered.SoNumero()), 10000);
                        //Endereco Entrega
                        TEndereco_CEPRest endRest = ServiceRest.DataService.BuscarEndCEPRest(ePed.shipping_address.postcode.Trim());
                        if (endRest != null)
                        {
                            rPedido.Logradouroent  = endRest.logradouro;
                            rPedido.Complementoent = endRest.complemento;
                            rPedido.Bairroent      = endRest.bairro;
                            rPedido.Cd_cidadeent   = endRest.ibge;
                        }
                        string[] eEnt = ePed.shipping_address.street.Split(new char[] { '\n' });
                        if (eEnt.Length >= 4)
                        {
                            rPedido.Logradouroent  = eEnt[0];
                            rPedido.Numeroent      = eEnt[1];
                            rPedido.Complementoent = eEnt[2];
                            rPedido.Bairroent      = eEnt[3];
                        }
                        //Itens do pedido
                        foreach (salesOrderItemEntity item in ePed.items)
                        {
                            foreach (salesOrderItemEntity nitem in ePed.items)
                            {
                                if (item.sku.ToString().Equals(nitem.sku.ToString()) &&
                                    decimal.Divide(decimal.Parse(nitem.price.SoNumero()), 10000) == decimal.Zero)
                                {
                                    item.name       = nitem.name;
                                    item.product_id = nitem.product_id;
                                    break;
                                }
                            }

                            if (decimal.Divide(decimal.Parse(item.price.SoNumero()), 10000) > decimal.Zero)
                            {
                                TRegistro_LanPedido_Item rItem = new TRegistro_LanPedido_Item();
                                rItem.Cd_referencia = item.product_id;
                                //Buscar Produto
                                CamadaDados.Estoque.Cadastros.TList_CadProduto lProd =
                                    new CamadaDados.Estoque.Cadastros.TCD_CadProduto().Select(
                                        new TpBusca[]
                                {
                                    new TpBusca()
                                    {
                                        vNM_Campo = "a.codigo_alternativo",
                                        vOperador = "=",
                                        vVL_Busca = "'" + item.product_id.Trim() + "'"
                                    },
                                    new TpBusca()
                                    {
                                        vNM_Campo = "isnull(a.st_registro, 'A')",
                                        vOperador = "<>",
                                        vVL_Busca = "'C'"
                                    }
                                }, 1, string.Empty, string.Empty, string.Empty);
                                if (lProd.Count > 0)
                                {
                                    rItem.Cd_produto       = lProd[0].CD_Produto;
                                    rItem.Ds_produto       = lProd[0].DS_Produto;
                                    rItem.Cd_unidade_est   = lProd[0].CD_Unidade;
                                    rItem.Ds_unidade_est   = lProd[0].DS_Unidade;
                                    rItem.Sg_unidade_est   = lProd[0].Sigla_unidade;
                                    rItem.Cd_unidade_valor = lProd[0].CD_Unidade;
                                    rItem.Ds_unidade_valor = lProd[0].DS_Unidade;
                                    rItem.Sg_unidade_valor = lProd[0].Sigla_unidade;
                                }
                                else
                                {
                                    rItem.Ds_produto = item.name.Trim().ToUpper();
                                }
                                rItem.Quantidade  = decimal.Divide(decimal.Parse(item.qty_ordered.SoNumero()), 10000);
                                rItem.Vl_unitario = decimal.Divide(decimal.Parse(item.price.SoNumero()), 10000);
                                rItem.Vl_subtotal = decimal.Divide(decimal.Parse(item.row_total.SoNumero()), 10000);
                                rItem.Vl_desc     = decimal.Divide(decimal.Parse(item.discount_amount.SoNumero()), 10000);
                                rItem.Cd_local    = rCfg.Cd_local;
                                rPedido.Pedido_Itens.Add(rItem);
                            }
                            //Ratear Frete
                            rPedido.Vl_frete = decimal.Divide(decimal.Parse(ePed.shipping_amount.SoNumero()), 10000);
                            if (rPedido.Vl_frete > decimal.Zero)
                            {
                                CamadaNegocio.Faturamento.Pedido.TCN_Pedido.Rateia_Frete(rPedido);
                            }
                            bsPedido.DataSource = new TList_Pedido {
                                rPedido
                            };
                        }
                    }
                    gPedido.Enabled    = false;
                    bbImportar.Enabled = false;
                    tlpPedido.ColumnStyles[1].Width = 623;
                }
                catch (Exception ex)
                { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); }
                finally
                { api.endSession(sessao); }
            }
        }