Exemplo n.º 1
0
        public int Update(oBusinessPartner obj)
        {
            BusinessPartners _bp = (BusinessPartners)SboComObject.GetBusinessObject(BoObjectTypes.oBusinessPartners);

            try
            {
                SboComObject.StartTransaction();

                int retCode = 0;

                _bp.GetByKey(obj.CardCode);

                _bp.CardName      = obj.CardName;
                _bp.Address       = obj.Address;
                _bp.ContactPerson = obj.CntctPerson;
                _bp.Cellular      = obj.Cellular;
                _bp.Phone1        = obj.Phone1;
                _bp.Phone2        = obj.Phone2;
                _bp.EmailAddress  = obj.Email;

                retCode = _bp.Update();

                if (retCode != 0)
                {
                    int    errCode    = 0;
                    string errMessage = "";
                    SboComObject.GetLastError(out errCode, out errMessage);
                    GlobalInstance.Instance.SBOErrorCode    = errCode;
                    GlobalInstance.Instance.SBOErrorMessage = errMessage;

                    SboComObject.EndTransaction(BoWfTransOpt.wf_RollBack);
                }
                else
                {
                    SboComObject.EndTransaction(BoWfTransOpt.wf_Commit);
                }

                return(retCode);
            }
            catch (Exception ex)
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(_bp);
                throw new Exception(GlobalInstance.Instance.SBOErrorMessage == null ? ex.Message : GlobalInstance.Instance.SBOErrorMessage);
            }
            finally
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(_bp);
            }
        }
Exemplo n.º 2
0
        public void Save()
        {
            if (_newObject)
            {
                _businessObject.Add();
            }
            else
            {
                _businessObject.Update();
            }

            Controller.ConnectionController.Instance.VerifyBussinesObjectSuccess();

            if (_businessObject.CardCode == string.Empty)
            {
                _businessObject.CardCode = Controller.ConnectionController.Instance.LastObjectCode;
            }
        }
Exemplo n.º 3
0
        public void Save(Model.BusinessPartnerModel businessPartnerModel)
        {
            BusinessPartners businessPartner = (BusinessPartners)Controller.ConnectionController.Instance.Company.GetBusinessObject(BoObjectTypes.oBusinessPartners);

            try
            {
                if (businessPartner.GetByKey(businessPartnerModel.CardCode))
                {
                    if (businessPartnerModel.SlpCode == 0)
                    {
                        businessPartner.SalesPersonCode = -1;
                    }
                    else
                    {
                        businessPartner.SalesPersonCode = businessPartnerModel.SlpCode;
                    }

                    if (businessPartnerModel.OwnerCode == 0)
                    {
                        businessPartner.OwnerCode = -1;
                    }
                    else
                    {
                        businessPartner.OwnerCode = businessPartnerModel.OwnerCode;
                    }

                    foreach (KeyValuePair <string, dynamic> userField in businessPartnerModel.UserFields)
                    {
                        businessPartner.UserFields.Fields.Item(userField.Key).Value = userField.Value;
                    }

                    businessPartner.Update();

                    Controller.ConnectionController.Instance.VerifyBussinesObjectSuccess();
                }
            }
            finally
            {
                Marshal.ReleaseComObject(businessPartner);
                GC.Collect();
            }
        }
Exemplo n.º 4
0
        public void InserirBusinessPartner(SAPbobsCOM.Company company, Order pedido, out string messageError)
        {
            int addBPNumber = 0;

            string  document    = string.Empty;
            Boolean isCorporate = false;

            if (pedido.buyer.billing_info.doc_type != null && pedido.buyer.billing_info.doc_type.Equals("CNPJ"))
            {
                if (pedido.buyer.billing_info.doc_number != null)
                {
                    document    = pedido.buyer.billing_info.doc_number;
                    isCorporate = true;
                }
            }
            else if (pedido.buyer.billing_info.doc_type != null && pedido.buyer.billing_info.doc_type.Equals("CPF"))
            {
                if (pedido.buyer.billing_info.doc_number != null)
                {
                    document = pedido.buyer.billing_info.doc_number;
                }
            }

            try
            {
                CountyDAL countyDAL = new CountyDAL();

                this.oCompany = company;

                int    _groupCode            = Convert.ToInt32(ConfigurationManager.AppSettings["GroupCode"]);
                int    _splCode              = Convert.ToInt32(ConfigurationManager.AppSettings["SlpCode"]);
                int    _QoP                  = Convert.ToInt32(ConfigurationManager.AppSettings["QoP"]);
                int    groupNum              = Convert.ToInt32(ConfigurationManager.AppSettings["GroupNum"]);
                string indicadorIE           = ConfigurationManager.AppSettings["IndicadorIE"];
                string indicadorOpConsumidor = ConfigurationManager.AppSettings["IndicadorOpConsumidor"];
                string gerente               = ConfigurationManager.AppSettings["Gerente"];
                int    priceList             = Convert.ToInt32(ConfigurationManager.AppSettings["PriceList"]);
                string cardCodePrefix        = ConfigurationManager.AppSettings["CardCodePrefix"];
                int    categoriaCliente      = Convert.ToInt32(ConfigurationManager.AppSettings["CategoriaCliente"]);

                this.log.WriteLogPedido("Inserindo Cliente " + cardCodePrefix + document);

                BusinessPartners oBusinessPartner = null;
                oBusinessPartner = (SAPbobsCOM.BusinessPartners)oCompany.GetBusinessObject(BoObjectTypes.oBusinessPartners);

                BusinessPartners oBusinessPartnerUpdateTest = null;
                oBusinessPartnerUpdateTest = (SAPbobsCOM.BusinessPartners)oCompany.GetBusinessObject(BoObjectTypes.oBusinessPartners);

                if (oBusinessPartnerUpdateTest.GetByKey(cardCodePrefix + document))
                {
                    oBusinessPartner = oBusinessPartnerUpdateTest;
                }

                //Setando campos padrões
                oBusinessPartner.CardCode = cardCodePrefix + document;

                oBusinessPartner.CardName     = pedido.buyer.first_name + " " + pedido.buyer.last_name;
                oBusinessPartner.EmailAddress = pedido.buyer.email;

                oBusinessPartner.CardType        = BoCardTypes.cCustomer;
                oBusinessPartner.GroupCode       = _groupCode;
                oBusinessPartner.SalesPersonCode = _splCode;
                oBusinessPartner.PayTermsGrpCode = groupNum;
                oBusinessPartner.PriceListNum    = priceList;
                //oBusinessPartner.CardForeignName = "Teste";

                //Setando campos de usuário
                oBusinessPartner.UserFields.Fields.Item("U_TX_IndIEDest").Value     = indicadorIE;
                oBusinessPartner.UserFields.Fields.Item("U_TX_IndFinal").Value      = indicadorOpConsumidor;
                oBusinessPartner.UserFields.Fields.Item("U_Gerente").Value          = gerente;
                oBusinessPartner.UserFields.Fields.Item("U_CategoriaCliente").Value = gerente;


                //removendo o +55
                if (pedido.buyer.phone != null)
                {
                    if (pedido.buyer.phone.number != null)
                    {
                        oBusinessPartner.Phone1 = pedido.buyer.phone.number;
                    }
                }
                string codMunicipio = string.Empty;

                Repositorio repositorio = new Repositorio();

                Shipments shipment = null;

                Task <HttpResponseMessage> responseShipment = repositorio.BuscarShipmentById(pedido.shipping.id);

                if (responseShipment.Result.IsSuccessStatusCode)
                {
                    var jsonShipment = responseShipment.Result.Content.ReadAsStringAsync().Result;

                    shipment = JsonConvert.DeserializeObject <Shipments>(jsonShipment);

                    if (shipment.receiver_address != null)
                    {
                        codMunicipio = countyDAL.RecuperarCodigoMunicipio(shipment.receiver_address.city.name, this.oCompany);
                    }
                }

                //Inserindo endereços
                //COBRANÇA
                oBusinessPartner.Addresses.SetCurrentLine(0);
                oBusinessPartner.Addresses.AddressType = BoAddressType.bo_BillTo;
                oBusinessPartner.Addresses.AddressName = "COBRANCA";

                if (shipment != null)
                {
                    oBusinessPartner.Addresses.City = shipment.receiver_address.city.name;

                    if (shipment.receiver_address.comment != null && shipment.receiver_address.comment.Length <= 100)
                    {
                        oBusinessPartner.Addresses.BuildingFloorRoom = shipment.receiver_address.comment;
                    }

                    //oBusinessPartner.Addresses.Country = "1058";
                    if (shipment.receiver_address.neighborhood.name != null)
                    {
                        oBusinessPartner.Addresses.Block = shipment.receiver_address.neighborhood.name;
                    }

                    oBusinessPartner.Addresses.StreetNo = shipment.receiver_address.street_number;
                    oBusinessPartner.Addresses.ZipCode  = shipment.receiver_address.zip_code;
                    oBusinessPartner.Addresses.State    = shipment.receiver_address.state.id.Substring(3);
                    oBusinessPartner.Addresses.Street   = shipment.receiver_address.street_name;
                    oBusinessPartner.Addresses.County   = codMunicipio;
                    //oBusinessPartner.Addresses.Country = "br";
                }

                //FATURAMENTO
                oBusinessPartner.Addresses.SetCurrentLine(1);
                oBusinessPartner.Addresses.AddressType = BoAddressType.bo_ShipTo;
                oBusinessPartner.Addresses.AddressName = "FATURAMENTO";

                if (shipment != null)
                {
                    oBusinessPartner.Addresses.City = shipment.receiver_address.city.name;

                    if (shipment.receiver_address.comment != null && shipment.receiver_address.comment.Length <= 100)
                    {
                        oBusinessPartner.Addresses.BuildingFloorRoom = shipment.receiver_address.comment;
                    }

                    //oBusinessPartner.Addresses.Country = "1058";
                    if (shipment.receiver_address.neighborhood.name != null)
                    {
                        oBusinessPartner.Addresses.Block = shipment.receiver_address.neighborhood.name;
                    }

                    oBusinessPartner.Addresses.StreetNo = shipment.receiver_address.street_number;
                    oBusinessPartner.Addresses.ZipCode  = shipment.receiver_address.zip_code;
                    oBusinessPartner.Addresses.State    = shipment.receiver_address.state.id.Substring(3);
                    oBusinessPartner.Addresses.Street   = shipment.receiver_address.street_name;
                    oBusinessPartner.Addresses.County   = codMunicipio;
                    //oBusinessPartner.Addresses.Country = "br";
                }

                #region ENDEREÇO FOR

                /*
                 * for (int i = 0; i < 2; i++)
                 * {
                 *  if (i > 0)
                 *  {
                 *      oBusinessPartner.Addresses.SetCurrentLine(i);
                 *      oBusinessPartner.Addresses.AddressType = BoAddressType.bo_ShipTo;
                 *      oBusinessPartner.Addresses.AddressName = "FATURAMENTO";
                 *  }
                 *  else
                 *  {
                 *      oBusinessPartner.Addresses.SetCurrentLine(i);
                 *      oBusinessPartner.Addresses.AddressType = BoAddressType.bo_BillTo;
                 *      oBusinessPartner.Addresses.AddressName = "COBRANCA";
                 *
                 *      if (!oBusinessPartnerUpdateTest.GetByKey(cardCodePrefix + document))
                 *      {
                 *          oBusinessPartner.Addresses.Add();
                 *      }
                 *  }
                 *
                 *  if (shipment != null)
                 *  {
                 *      oBusinessPartner.Addresses.City = shipment.receiver_address.city.name;
                 *
                 *      if (shipment.receiver_address.comment != null && shipment.receiver_address.comment.Length <= 100)
                 *      {
                 *          oBusinessPartner.Addresses.BuildingFloorRoom = shipment.receiver_address.comment;
                 *      }
                 *
                 *      //oBusinessPartner.Addresses.Country = "1058";
                 *      if (shipment.receiver_address.neighborhood.name != null)
                 *      {
                 *          oBusinessPartner.Addresses.Block = shipment.receiver_address.neighborhood.name;
                 *      }
                 *
                 *      oBusinessPartner.Addresses.StreetNo = shipment.receiver_address.street_number;
                 *      oBusinessPartner.Addresses.ZipCode = shipment.receiver_address.zip_code;
                 *      oBusinessPartner.Addresses.State = shipment.receiver_address.state.id.Substring(3);
                 *      oBusinessPartner.Addresses.Street = shipment.receiver_address.street_name;
                 *      oBusinessPartner.Addresses.County = codMunicipio;
                 *      //oBusinessPartner.Addresses.Country = "br";
                 *  }
                 *
                 * }*/
                #endregion

                #region código de endereço antigo

                /*oBusinessPartner.Addresses.SetCurrentLine(0);
                 * oBusinessPartner.Addresses.AddressName = "COBRANCA";
                 * oBusinessPartner.Addresses.AddressType = SAPbobsCOM.BoAddressType.bo_BillTo;
                 *
                 * oBusinessPartner.Addresses.Street = endereco.street;
                 * oBusinessPartner.Addresses.Block = endereco.neighborhood;
                 * oBusinessPartner.Addresses.ZipCode = endereco.postalCode;
                 * oBusinessPartner.Addresses.City = endereco.city;
                 * oBusinessPartner.Addresses.Country = "BR";
                 * oBusinessPartner.Addresses.State = endereco.state;
                 * oBusinessPartner.Addresses.BuildingFloorRoom = endereco.complement;
                 * oBusinessPartner.Addresses.StreetNo = endereco.number;
                 *
                 * oBusinessPartner.Addresses.Add();
                 *
                 * oBusinessPartner.Addresses.SetCurrentLine(1);
                 * oBusinessPartner.Addresses.AddressName = "FATURAMENTO";
                 * oBusinessPartner.Addresses.AddressType = SAPbobsCOM.BoAddressType.bo_ShipTo;
                 *
                 * oBusinessPartner.Addresses.Street = endereco.street;
                 * oBusinessPartner.Addresses.Block = endereco.neighborhood;
                 * oBusinessPartner.Addresses.ZipCode = endereco.postalCode;
                 * oBusinessPartner.Addresses.City = endereco.city;
                 * oBusinessPartner.Addresses.Country = "BR";
                 * oBusinessPartner.Addresses.State = endereco.state;
                 * oBusinessPartner.Addresses.BuildingFloorRoom = endereco.complement;
                 * oBusinessPartner.Addresses.StreetNo = endereco.number;*/
                //oBusinessPartner.Addresses.Add();
                #endregion

                oBusinessPartner.BilltoDefault = "COBRANCA";
                oBusinessPartner.ShipToDefault = "FATURAMENTO";

                BusinessPartners oBusinessPartnerUpdate = null;
                oBusinessPartnerUpdate = (SAPbobsCOM.BusinessPartners)oCompany.GetBusinessObject(BoObjectTypes.oBusinessPartners);

                if (oBusinessPartnerUpdate.GetByKey(cardCodePrefix + document))
                {
                    addBPNumber = oBusinessPartner.Update();

                    if (addBPNumber != 0)
                    {
                        messageError = oCompany.GetLastErrorDescription();
                        this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Cliente, document, cardCodePrefix + document, EnumStatusIntegracao.Erro, messageError);
                        //this.log.WriteLogCliente("InserirBusinessPartner error SAP: " + messageError);
                    }
                    else
                    {
                        messageError = "";
                        this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Cliente, document, cardCodePrefix + document, EnumStatusIntegracao.Sucesso, "Cliente atualizado com sucesso.");
                        //this.Log.WriteLogCliente("BusinessPartner " + cardCodePrefix + document + " atualizado com sucesso.");

                        System.Runtime.InteropServices.Marshal.ReleaseComObject(oBusinessPartner);
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(oBusinessPartnerUpdate);
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(oBusinessPartnerUpdateTest);
                    }
                }
                else
                {
                    //Setando informações Fiscais
                    //oBusinessPartner.FiscalTaxID.SetCurrentLine(0);
                    if (isCorporate)
                    {
                        oBusinessPartner.FiscalTaxID.TaxId0 = document;
                    }
                    else
                    {
                        oBusinessPartner.FiscalTaxID.TaxId4 = document;
                        oBusinessPartner.FiscalTaxID.TaxId1 = "Isento";
                    }
                    //oBusinessPartner.FiscalTaxID.Address = "FATURAMENTO";
                    //oBusinessPartner.FiscalTaxID.Add();

                    addBPNumber = oBusinessPartner.Add();

                    if (addBPNumber != 0)
                    {
                        messageError = oCompany.GetLastErrorDescription();
                        this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Cliente, document, "", EnumStatusIntegracao.Erro, messageError);
                        //Log.WriteLogCliente("InserirBusinessPartner error SAP: " + messageError);
                    }
                    else
                    {
                        string CardCode = oCompany.GetNewObjectKey();
                        this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Cliente, document, CardCode, EnumStatusIntegracao.Sucesso, "Cliente inserido com sucesso.");
                        //Log.WriteLogCliente("BusinessPartner " + cardCodePrefix +CardCode + " inserido com sucesso.");
                        messageError = "";
                    }
                }
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oBusinessPartner);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oBusinessPartnerUpdateTest);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oBusinessPartnerUpdate);
            }
            catch (Exception e)
            {
                this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Cliente, document, "", EnumStatusIntegracao.Erro, e.Message);
                this.log.WriteLogPedido("InserirBusinessPartner Exception: " + e.Message);
                throw;
            }
        }
        public void InserirBusinessPartner(SAPbobsCOM.Company company, OrderPluggto pedido, out string messageError)
        {
            int addBPNumber = 0;

            string  document    = string.Empty;
            Boolean isCorporate = false;

            //Boolean marketPlace = false;

            if (!String.IsNullOrEmpty(pedido.Order.payer_cpf))
            {
                document = pedido.Order.payer_cpf;
            }
            else if (!String.IsNullOrEmpty(pedido.Order.payer_cnpj))
            {
                document    = pedido.Order.payer_cnpj;
                isCorporate = true;
            }

            try
            {
                CountyDAL countyDAL = new CountyDAL();

                this.oCompany = company;

                int    _groupCode            = Convert.ToInt32(ConfigurationManager.AppSettings["GroupCode"]);
                int    _splCode              = Convert.ToInt32(ConfigurationManager.AppSettings["SlpCode"]);
                int    _QoP                  = Convert.ToInt32(ConfigurationManager.AppSettings["QoP"]);
                int    groupNum              = Convert.ToInt32(ConfigurationManager.AppSettings["GroupNum"]);
                string indicadorIE           = ConfigurationManager.AppSettings["IndicadorIE"];
                string indicadorOpConsumidor = ConfigurationManager.AppSettings["IndicadorOpConsumidor"];
                string gerente               = ConfigurationManager.AppSettings["Gerente"];
                int    priceList             = Convert.ToInt32(ConfigurationManager.AppSettings["PriceList"]);
                string cardCodePrefix        = ConfigurationManager.AppSettings["CardCodePrefix"];
                int    categoriaCliente      = Convert.ToInt32(ConfigurationManager.AppSettings["CategoriaCliente"]);

                this.log.WriteLogPedido("Inserindo Cliente " + cardCodePrefix + document);

                BusinessPartners oBusinessPartner = null;
                oBusinessPartner = (SAPbobsCOM.BusinessPartners)oCompany.GetBusinessObject(BoObjectTypes.oBusinessPartners);

                BusinessPartners oBusinessPartnerUpdateTest = null;
                oBusinessPartnerUpdateTest = (SAPbobsCOM.BusinessPartners)oCompany.GetBusinessObject(BoObjectTypes.oBusinessPartners);

                if (oBusinessPartnerUpdateTest.GetByKey(cardCodePrefix + document))
                {
                    oBusinessPartner = oBusinessPartnerUpdateTest;
                }

                //Setando campos padrões
                oBusinessPartner.CardCode = cardCodePrefix + document;

                if (isCorporate)
                {
                    oBusinessPartner.CardForeignName = pedido.Order.payer_razao_social;
                }

                oBusinessPartner.CardName = pedido.Order.receiver_name + " " + pedido.Order.receiver_lastname;

                oBusinessPartner.EmailAddress = pedido.Order.receiver_email;

                oBusinessPartner.CardType        = BoCardTypes.cCustomer;
                oBusinessPartner.GroupCode       = _groupCode;
                oBusinessPartner.SalesPersonCode = _splCode;
                oBusinessPartner.PayTermsGrpCode = groupNum;
                oBusinessPartner.PriceListNum    = priceList;
                //oBusinessPartner.CardForeignName = "Teste";

                //Setando campos de usuário
                oBusinessPartner.UserFields.Fields.Item("U_TX_IndIEDest").Value     = indicadorIE;
                oBusinessPartner.UserFields.Fields.Item("U_TX_IndFinal").Value      = indicadorOpConsumidor;
                oBusinessPartner.UserFields.Fields.Item("U_Gerente").Value          = gerente;
                oBusinessPartner.UserFields.Fields.Item("U_CategoriaCliente").Value = gerente;

                if (!string.IsNullOrEmpty(pedido.Order.receiver_phone_area))
                {
                    oBusinessPartner.Phone2 = pedido.Order.receiver_phone_area;
                }

                //removendo o ddd
                if (!String.IsNullOrEmpty(pedido.Order.receiver_phone))
                {
                    if (pedido.Order.receiver_phone.Length >= 9)
                    {
                        oBusinessPartner.Cellular = pedido.Order.receiver_phone.Substring(2);
                    }
                    else
                    {
                        oBusinessPartner.Cellular = pedido.Order.receiver_phone;
                    }
                }
                else if (!String.IsNullOrEmpty(pedido.Order.receiver_phone2))
                {
                    if (pedido.Order.receiver_phone2.Length >= 9)
                    {
                        //oBusinessPartner.Phone1 = cliente.homePhone.Substring(2);
                        oBusinessPartner.Phone1 = pedido.Order.receiver_phone2.Substring(2);
                    }
                    else
                    {
                        //oBusinessPartner.Phone1 = cliente.homePhone.Substring(2);
                        oBusinessPartner.Phone1 = pedido.Order.receiver_phone2;
                    }
                }

                string codMunicipio = string.Empty;

                codMunicipio = countyDAL.RecuperarCodigoMunicipio(pedido.Order.receiver_city, this.oCompany);

                //Adicionando endereços
                //COBRANÇA
                oBusinessPartner.Addresses.SetCurrentLine(0);
                oBusinessPartner.Addresses.AddressType = BoAddressType.bo_BillTo;
                oBusinessPartner.Addresses.AddressName = "COBRANCA";

                oBusinessPartner.Addresses.City = pedido.Order.receiver_city;

                if (!String.IsNullOrEmpty(pedido.Order.receiver_address_complement) && pedido.Order.receiver_address_complement.Length <= 100)
                {
                    oBusinessPartner.Addresses.BuildingFloorRoom = pedido.Order.receiver_address_complement;
                }

                //oBusinessPartner.Addresses.Country = "1058";
                oBusinessPartner.Addresses.Block    = pedido.Order.receiver_neighborhood;
                oBusinessPartner.Addresses.StreetNo = pedido.Order.receiver_address_number;
                oBusinessPartner.Addresses.ZipCode  = pedido.Order.receiver_zipcode;
                oBusinessPartner.Addresses.State    = pedido.Order.receiver_state;
                oBusinessPartner.Addresses.Street   = pedido.Order.receiver_address;
                oBusinessPartner.Addresses.County   = codMunicipio;
                //oBusinessPartner.Addresses.Country = "br";

                oBusinessPartner.Addresses.Add();


                //FATURAMENTO
                oBusinessPartner.Addresses.SetCurrentLine(1);
                oBusinessPartner.Addresses.AddressType = BoAddressType.bo_ShipTo;
                oBusinessPartner.Addresses.AddressName = "FATURAMENTO";

                oBusinessPartner.Addresses.City = pedido.Order.receiver_city;

                if (!String.IsNullOrEmpty(pedido.Order.receiver_address_complement) && pedido.Order.receiver_address_complement.Length <= 100)
                {
                    oBusinessPartner.Addresses.BuildingFloorRoom = pedido.Order.receiver_address_complement;
                }

                //oBusinessPartner.Addresses.Country = "1058";
                oBusinessPartner.Addresses.Block    = pedido.Order.receiver_neighborhood;
                oBusinessPartner.Addresses.StreetNo = pedido.Order.receiver_address_number;
                oBusinessPartner.Addresses.ZipCode  = pedido.Order.receiver_zipcode;
                oBusinessPartner.Addresses.State    = pedido.Order.receiver_state;
                oBusinessPartner.Addresses.Street   = pedido.Order.receiver_address;
                oBusinessPartner.Addresses.County   = codMunicipio;
                //oBusinessPartner.Addresses.Country = "br";

                oBusinessPartner.Addresses.Add();

                oBusinessPartner.FiscalTaxID.Address = "FATURAMENTO";

                if (isCorporate)
                {
                    oBusinessPartner.FiscalTaxID.TaxId0 = document;
                }
                else
                {
                    oBusinessPartner.FiscalTaxID.TaxId4 = document;
                    oBusinessPartner.FiscalTaxID.TaxId1 = "Isento";
                }

                oBusinessPartner.FiscalTaxID.Add();



                #region ENDEREÇO FOR

                /*for (int i = 0; i < 2; i++)
                 * {
                 *  if (i > 0)
                 *  {
                 *      oBusinessPartner.Addresses.SetCurrentLine(i);
                 *      oBusinessPartner.Addresses.AddressType = BoAddressType.bo_ShipTo;
                 *      oBusinessPartner.Addresses.AddressName = "FATURAMENTO";
                 *  }
                 *  else
                 *  {
                 *      oBusinessPartner.Addresses.SetCurrentLine(i);
                 *      oBusinessPartner.Addresses.AddressType = BoAddressType.bo_BillTo;
                 *      oBusinessPartner.Addresses.AddressName = "COBRANCA";
                 *
                 *      if (!oBusinessPartnerUpdateTest.GetByKey(cardCodePrefix + document))
                 *      {
                 *          oBusinessPartner.Addresses.Add();
                 *      }
                 *  }
                 *
                 *  oBusinessPartner.Addresses.City = pedido.Order.receiver_city;
                 *
                 *  if (!String.IsNullOrEmpty(pedido.Order.receiver_address_complement) && pedido.Order.receiver_address_complement.Length <= 100)
                 *  {
                 *      oBusinessPartner.Addresses.BuildingFloorRoom = pedido.Order.receiver_address_complement;
                 *  }
                 *
                 *  //oBusinessPartner.Addresses.Country = "1058";
                 *  oBusinessPartner.Addresses.Block = pedido.Order.receiver_neighborhood;
                 *  oBusinessPartner.Addresses.StreetNo = pedido.Order.receiver_address_number;
                 *  oBusinessPartner.Addresses.ZipCode = pedido.Order.receiver_zipcode;
                 *  oBusinessPartner.Addresses.State = pedido.Order.receiver_state;
                 *  oBusinessPartner.Addresses.Street = pedido.Order.receiver_address;
                 *  oBusinessPartner.Addresses.County = codMunicipio;
                 *  //oBusinessPartner.Addresses.Country = "br";
                 *
                 *  oBusinessPartner.Addresses.Add();
                 * }*/
                #endregion

                oBusinessPartner.BilltoDefault = "COBRANCA";
                oBusinessPartner.ShipToDefault = "FATURAMENTO";

                BusinessPartners oBusinessPartnerUpdate = null;
                oBusinessPartnerUpdate = (SAPbobsCOM.BusinessPartners)oCompany.GetBusinessObject(BoObjectTypes.oBusinessPartners);

                if (oBusinessPartnerUpdate.GetByKey(cardCodePrefix + document))
                {
                    addBPNumber = oBusinessPartner.Update();

                    if (addBPNumber != 0)
                    {
                        messageError = oCompany.GetLastErrorDescription();
                        this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Cliente, document, cardCodePrefix + document, EnumStatusIntegracao.Erro, messageError);
                    }
                    else
                    {
                        messageError = "";
                        this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Cliente, document, cardCodePrefix + document, EnumStatusIntegracao.Sucesso, "Cliente atualizado com sucesso.");

                        System.Runtime.InteropServices.Marshal.ReleaseComObject(oBusinessPartner);
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(oBusinessPartnerUpdate);
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(oBusinessPartnerUpdateTest);
                    }
                }
                else
                {
                    //Setando informações Fiscais
                    //oBusinessPartner.FiscalTaxID.SetCurrentLine(0);

                    /*if (isCorporate)
                     * {
                     *  oBusinessPartner.FiscalTaxID.TaxId0 = document;
                     * }
                     * else {
                     *
                     *  oBusinessPartner.FiscalTaxID.TaxId4 = document;
                     *  oBusinessPartner.FiscalTaxID.TaxId1 = "Isento";
                     * }*/
                    //oBusinessPartner.FiscalTaxID.Address = "FATURAMENTO";
                    //oBusinessPartner.FiscalTaxID.Add();

                    addBPNumber = oBusinessPartner.Add();

                    if (addBPNumber != 0)
                    {
                        messageError = oCompany.GetLastErrorDescription();
                        this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Cliente, document, "", EnumStatusIntegracao.Erro, messageError);
                        this.log.WriteLogPedido("Falha ao inserir cliente - " + messageError);
                    }
                    else
                    {
                        string CardCode = oCompany.GetNewObjectKey();
                        this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Cliente, document, CardCode, EnumStatusIntegracao.Sucesso, "Cliente inserido com sucesso.");
                        this.log.WriteLogPedido("Cliente " + CardCode + " inserido com sucesso.");
                        messageError = "";
                    }
                }
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oBusinessPartner);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oBusinessPartnerUpdateTest);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oBusinessPartnerUpdate);
            }
            catch (Exception e)
            {
                this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Cliente, document, "", EnumStatusIntegracao.Erro, e.Message);
                this.log.WriteLogPedido("InserirBusinessPartner Exception: " + e.Message);
                throw;
            }
        }
        public void InserirBusinessPartner(SAPbobsCOM.Company company, Cliente cliente, Endereco endereco, Pedido pedido, out string messageError)
        {
            int addBPNumber = 0;

            string  document    = string.Empty;
            Boolean isCorporate = false;
            Boolean marketPlace = false;

            if (pedido.origin.Equals("Fulfillment"))
            {
                marketPlace = true;
            }

            if (marketPlace)
            {
                document = pedido.clientProfileData.document;
            }

            if (cliente.isCorporate != null && cliente.isCorporate.Equals("true"))
            {
                document    = cliente.corporateDocument;
                isCorporate = true;
            }
            else if (cliente.isCorporate != null && cliente.isCorporate.Equals("false"))
            {
                document = cliente.document;
            }

            try
            {
                CountyDAL countyDAL = new CountyDAL();

                this.oCompany = company;

                int    _groupCode            = Convert.ToInt32(ConfigurationManager.AppSettings["GroupCode"]);
                int    _splCode              = Convert.ToInt32(ConfigurationManager.AppSettings["SlpCode"]);
                int    _QoP                  = Convert.ToInt32(ConfigurationManager.AppSettings["QoP"]);
                int    groupNum              = Convert.ToInt32(ConfigurationManager.AppSettings["GroupNum"]);
                string indicadorIE           = ConfigurationManager.AppSettings["IndicadorIE"];
                string indicadorOpConsumidor = ConfigurationManager.AppSettings["IndicadorOpConsumidor"];
                string gerente               = ConfigurationManager.AppSettings["Gerente"];
                int    priceList             = Convert.ToInt32(ConfigurationManager.AppSettings["PriceList"]);
                string cardCodePrefix        = ConfigurationManager.AppSettings["CardCodePrefix"];
                int    categoriaCliente      = Convert.ToInt32(ConfigurationManager.AppSettings["CategoriaCliente"]);

                Log.WriteLogCliente("Inserindo Cliente " + cardCodePrefix + document);

                BusinessPartners oBusinessPartner = null;
                oBusinessPartner = (SAPbobsCOM.BusinessPartners)oCompany.GetBusinessObject(BoObjectTypes.oBusinessPartners);

                BusinessPartners oBusinessPartnerUpdateTest = null;
                oBusinessPartnerUpdateTest = (SAPbobsCOM.BusinessPartners)oCompany.GetBusinessObject(BoObjectTypes.oBusinessPartners);

                if (oBusinessPartnerUpdateTest.GetByKey(cardCodePrefix + document))
                {
                    oBusinessPartner = oBusinessPartnerUpdateTest;
                }

                //Setando campos padrões
                oBusinessPartner.CardCode = cardCodePrefix + document;

                if (marketPlace)
                {
                    oBusinessPartner.CardName = pedido.clientProfileData.firstName + " " + pedido.clientProfileData.lastName;
                    //oBusinessPartner.EmailAddress = cliente.email;
                }
                else
                {
                    oBusinessPartner.CardName     = cliente.firstName + " " + cliente.lastName;
                    oBusinessPartner.EmailAddress = cliente.email;
                }

                oBusinessPartner.CardType        = BoCardTypes.cCustomer;
                oBusinessPartner.GroupCode       = _groupCode;
                oBusinessPartner.SalesPersonCode = _splCode;
                oBusinessPartner.PayTermsGrpCode = groupNum;
                oBusinessPartner.PriceListNum    = priceList;
                //oBusinessPartner.CardForeignName = "Teste";

                //Setando campos de usuário
                oBusinessPartner.UserFields.Fields.Item("U_TX_IndIEDest").Value     = indicadorIE;
                oBusinessPartner.UserFields.Fields.Item("U_TX_IndFinal").Value      = indicadorOpConsumidor;
                oBusinessPartner.UserFields.Fields.Item("U_Gerente").Value          = gerente;
                oBusinessPartner.UserFields.Fields.Item("U_CategoriaCliente").Value = gerente;


                //removendo o +55
                if (cliente.homePhone != null)
                {
                    oBusinessPartner.Phone1 = cliente.homePhone.Substring(2);
                }

                if (cliente.phone != null)
                {
                    oBusinessPartner.Cellular = cliente.phone.Substring(2);
                }

                if (marketPlace)
                {
                    oBusinessPartner.Phone1 = pedido.clientProfileData.phone;
                }

                string codMunicipio = string.Empty;

                if (!marketPlace)
                {
                    codMunicipio = countyDAL.RecuperarCodigoMunicipio(endereco.city, this.oCompany);
                }
                else
                {
                    if (pedido.shippingData.address.city != null)
                    {
                        codMunicipio = countyDAL.RecuperarCodigoMunicipio(pedido.shippingData.address.city, this.oCompany);
                    }
                }

                //Adicionando endereços
                //Cobrança
                oBusinessPartner.Addresses.SetCurrentLine(0);
                oBusinessPartner.Addresses.AddressType = BoAddressType.bo_BillTo;
                oBusinessPartner.Addresses.AddressName = "COBRANCA";

                if (marketPlace)
                {
                    oBusinessPartner.Addresses.City = pedido.shippingData.address.city;
                }
                else
                {
                    oBusinessPartner.Addresses.City = endereco.city;
                }

                if (marketPlace && pedido.shippingData.address.complement != null && pedido.shippingData.address.complement.Length <= 100)
                {
                    oBusinessPartner.Addresses.BuildingFloorRoom = pedido.shippingData.address.complement;
                }
                else
                {
                    if (endereco != null && endereco.complement != null && endereco.complement.Length <= 100)
                    {
                        oBusinessPartner.Addresses.BuildingFloorRoom = endereco.complement;
                    }
                }

                if (marketPlace)
                {
                    //oBusinessPartner.Addresses.Country = "1058";
                    oBusinessPartner.Addresses.Block    = pedido.shippingData.address.neighborhood;
                    oBusinessPartner.Addresses.StreetNo = pedido.shippingData.address.number;
                    oBusinessPartner.Addresses.ZipCode  = pedido.shippingData.address.postalCode;
                    oBusinessPartner.Addresses.State    = pedido.shippingData.address.state;
                    oBusinessPartner.Addresses.Street   = pedido.shippingData.address.street;
                    oBusinessPartner.Addresses.County   = codMunicipio;
                    //oBusinessPartner.Addresses.Country = "br";
                }
                else
                {
                    //oBusinessPartner.Addresses.Country = "1058";
                    oBusinessPartner.Addresses.Block    = endereco.neighborhood;
                    oBusinessPartner.Addresses.StreetNo = endereco.number;
                    oBusinessPartner.Addresses.ZipCode  = endereco.postalCode;
                    oBusinessPartner.Addresses.State    = endereco.state;
                    oBusinessPartner.Addresses.Street   = endereco.street;
                    oBusinessPartner.Addresses.County   = codMunicipio;
                    //oBusinessPartner.Addresses.Country = "br";
                }
                oBusinessPartner.Addresses.Add();

                //FATURAMENTO
                oBusinessPartner.Addresses.SetCurrentLine(1);
                oBusinessPartner.Addresses.AddressType = BoAddressType.bo_ShipTo;
                oBusinessPartner.Addresses.AddressName = "FATURAMENTO";

                if (marketPlace)
                {
                    oBusinessPartner.Addresses.City = pedido.shippingData.address.city;
                }
                else
                {
                    oBusinessPartner.Addresses.City = endereco.city;
                }

                if (marketPlace && pedido.shippingData.address.complement != null && pedido.shippingData.address.complement.Length <= 100)
                {
                    oBusinessPartner.Addresses.BuildingFloorRoom = pedido.shippingData.address.complement;
                }
                else
                {
                    if (endereco != null && endereco.complement != null && endereco.complement.Length <= 100)
                    {
                        oBusinessPartner.Addresses.BuildingFloorRoom = endereco.complement;
                    }
                }

                if (marketPlace)
                {
                    //oBusinessPartner.Addresses.Country = "1058";
                    oBusinessPartner.Addresses.Block    = pedido.shippingData.address.neighborhood;
                    oBusinessPartner.Addresses.StreetNo = pedido.shippingData.address.number;
                    oBusinessPartner.Addresses.ZipCode  = pedido.shippingData.address.postalCode;
                    oBusinessPartner.Addresses.State    = pedido.shippingData.address.state;
                    oBusinessPartner.Addresses.Street   = pedido.shippingData.address.street;
                    oBusinessPartner.Addresses.County   = codMunicipio;
                    //oBusinessPartner.Addresses.Country = "br";
                }
                else
                {
                    //oBusinessPartner.Addresses.Country = "1058";
                    oBusinessPartner.Addresses.Block    = endereco.neighborhood;
                    oBusinessPartner.Addresses.StreetNo = endereco.number;
                    oBusinessPartner.Addresses.ZipCode  = endereco.postalCode;
                    oBusinessPartner.Addresses.State    = endereco.state;
                    oBusinessPartner.Addresses.Street   = endereco.street;
                    oBusinessPartner.Addresses.County   = codMunicipio;
                    //oBusinessPartner.Addresses.Country = "br";
                }
                oBusinessPartner.Addresses.Add();

                #region ENDEREÇO FOR

                /*
                 * for (int i = 0; i < 2; i++)
                 * {
                 *  if (i > 0)
                 *  {
                 *      oBusinessPartner.Addresses.SetCurrentLine(i);
                 *      oBusinessPartner.Addresses.AddressType = BoAddressType.bo_ShipTo;
                 *      oBusinessPartner.Addresses.AddressName = "FATURAMENTO";
                 *  }
                 *  else
                 *  {
                 *      oBusinessPartner.Addresses.SetCurrentLine(i);
                 *      oBusinessPartner.Addresses.AddressType = BoAddressType.bo_BillTo;
                 *      oBusinessPartner.Addresses.AddressName = "COBRANCA";
                 *
                 *      if (!oBusinessPartnerUpdateTest.GetByKey(cardCodePrefix + document))
                 *      {
                 *          oBusinessPartner.Addresses.Add();
                 *      }
                 *  }
                 *
                 *  if (marketPlace)
                 *  {
                 *      oBusinessPartner.Addresses.City = pedido.shippingData.address.city;
                 *  }
                 *  else {
                 *      oBusinessPartner.Addresses.City = endereco.city;
                 *  }
                 *
                 *  if (marketPlace && pedido.shippingData.address.complement != null && pedido.shippingData.address.complement.Length <= 100)
                 *  {
                 *      oBusinessPartner.Addresses.BuildingFloorRoom = pedido.shippingData.address.complement;
                 *  }
                 *  else {
                 *      if (endereco!= null && endereco.complement != null && endereco.complement.Length <= 100)
                 *      {
                 *          oBusinessPartner.Addresses.BuildingFloorRoom = endereco.complement;
                 *      }
                 *  }
                 *
                 *  if (marketPlace)
                 *  {
                 *      //oBusinessPartner.Addresses.Country = "1058";
                 *      oBusinessPartner.Addresses.Block = pedido.shippingData.address.neighborhood;
                 *      oBusinessPartner.Addresses.StreetNo = pedido.shippingData.address.number;
                 *      oBusinessPartner.Addresses.ZipCode = pedido.shippingData.address.postalCode;
                 *      oBusinessPartner.Addresses.State = pedido.shippingData.address.state;
                 *      oBusinessPartner.Addresses.Street = pedido.shippingData.address.street;
                 *      oBusinessPartner.Addresses.County = codMunicipio;
                 *      //oBusinessPartner.Addresses.Country = "br";
                 *  }
                 *  else {
                 *      //oBusinessPartner.Addresses.Country = "1058";
                 *      oBusinessPartner.Addresses.Block = endereco.neighborhood;
                 *      oBusinessPartner.Addresses.StreetNo = endereco.number;
                 *      oBusinessPartner.Addresses.ZipCode = endereco.postalCode;
                 *      oBusinessPartner.Addresses.State = endereco.state;
                 *      oBusinessPartner.Addresses.Street = endereco.street;
                 *      oBusinessPartner.Addresses.County = codMunicipio;
                 *      //oBusinessPartner.Addresses.Country = "br";
                 *  }
                 *
                 * }*/
                #endregion

                #region código de endereço antigo

                /*oBusinessPartner.Addresses.SetCurrentLine(0);
                 * oBusinessPartner.Addresses.AddressName = "COBRANCA";
                 * oBusinessPartner.Addresses.AddressType = SAPbobsCOM.BoAddressType.bo_BillTo;
                 *
                 * oBusinessPartner.Addresses.Street = endereco.street;
                 * oBusinessPartner.Addresses.Block = endereco.neighborhood;
                 * oBusinessPartner.Addresses.ZipCode = endereco.postalCode;
                 * oBusinessPartner.Addresses.City = endereco.city;
                 * oBusinessPartner.Addresses.Country = "BR";
                 * oBusinessPartner.Addresses.State = endereco.state;
                 * oBusinessPartner.Addresses.BuildingFloorRoom = endereco.complement;
                 * oBusinessPartner.Addresses.StreetNo = endereco.number;
                 *
                 * oBusinessPartner.Addresses.Add();
                 *
                 * oBusinessPartner.Addresses.SetCurrentLine(1);
                 * oBusinessPartner.Addresses.AddressName = "FATURAMENTO";
                 * oBusinessPartner.Addresses.AddressType = SAPbobsCOM.BoAddressType.bo_ShipTo;
                 *
                 * oBusinessPartner.Addresses.Street = endereco.street;
                 * oBusinessPartner.Addresses.Block = endereco.neighborhood;
                 * oBusinessPartner.Addresses.ZipCode = endereco.postalCode;
                 * oBusinessPartner.Addresses.City = endereco.city;
                 * oBusinessPartner.Addresses.Country = "BR";
                 * oBusinessPartner.Addresses.State = endereco.state;
                 * oBusinessPartner.Addresses.BuildingFloorRoom = endereco.complement;
                 * oBusinessPartner.Addresses.StreetNo = endereco.number;*/
                //oBusinessPartner.Addresses.Add();
                #endregion

                oBusinessPartner.BilltoDefault = "COBRANCA";
                oBusinessPartner.ShipToDefault = "FATURAMENTO";

                BusinessPartners oBusinessPartnerUpdate = null;
                oBusinessPartnerUpdate = (SAPbobsCOM.BusinessPartners)oCompany.GetBusinessObject(BoObjectTypes.oBusinessPartners);

                if (oBusinessPartnerUpdate.GetByKey(cardCodePrefix + document))
                {
                    addBPNumber = oBusinessPartner.Update();

                    if (addBPNumber != 0)
                    {
                        messageError = oCompany.GetLastErrorDescription();
                        this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Cliente, document, cardCodePrefix + document, EnumStatusIntegracao.Erro, messageError);
                        //this.log.WriteLogCliente("InserirBusinessPartner error SAP: " + messageError);
                    }
                    else
                    {
                        messageError = "";
                        this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Cliente, document, cardCodePrefix + document, EnumStatusIntegracao.Sucesso, "Cliente atualizado com sucesso.");
                        //this.Log.WriteLogCliente("BusinessPartner " + cardCodePrefix + document + " atualizado com sucesso.");

                        System.Runtime.InteropServices.Marshal.ReleaseComObject(oBusinessPartner);
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(oBusinessPartnerUpdate);
                        System.Runtime.InteropServices.Marshal.ReleaseComObject(oBusinessPartnerUpdateTest);
                    }
                }
                else
                {
                    //Setando informações Fiscais
                    //oBusinessPartner.FiscalTaxID.SetCurrentLine(0);
                    if (isCorporate)
                    {
                        oBusinessPartner.FiscalTaxID.TaxId0 = document;
                    }
                    else
                    {
                        oBusinessPartner.FiscalTaxID.TaxId4 = document;
                        oBusinessPartner.FiscalTaxID.TaxId1 = "Isento";
                    }
                    //oBusinessPartner.FiscalTaxID.Address = "FATURAMENTO";
                    //oBusinessPartner.FiscalTaxID.Add();

                    addBPNumber = oBusinessPartner.Add();

                    if (addBPNumber != 0)
                    {
                        messageError = oCompany.GetLastErrorDescription();
                        this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Cliente, document, "", EnumStatusIntegracao.Erro, messageError);
                        //Log.WriteLogCliente("InserirBusinessPartner error SAP: " + messageError);
                    }
                    else
                    {
                        string CardCode = oCompany.GetNewObjectKey();
                        this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Cliente, document, CardCode, EnumStatusIntegracao.Sucesso, "Cliente inserido com sucesso.");
                        //Log.WriteLogCliente("BusinessPartner " + cardCodePrefix +CardCode + " inserido com sucesso.");
                        messageError = "";
                    }
                }
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oBusinessPartner);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oBusinessPartnerUpdateTest);
                System.Runtime.InteropServices.Marshal.ReleaseComObject(oBusinessPartnerUpdate);
            }
            catch (Exception e)
            {
                this.log.WriteLogTable(oCompany, EnumTipoIntegracao.Cliente, document, "", EnumStatusIntegracao.Erro, e.Message);
                Log.WriteLogCliente("InserirBusinessPartner Exception: " + e.Message);
                throw;
            }
        }
        public IHttpActionResult SaveCustomer([FromBody] CustomerVm oItem)
        {
            Connect();
            try
            {
                BusinessPartners documents = (BusinessPartners)oCompany.GetBusinessObject(BoObjectTypes.oBusinessPartners);
                string           CardCode  = GetCardCode();
                documents.CardCode     = CardCode;
                documents.CardName     = oItem.Company;
                documents.Address      = oItem.Address;
                documents.EmailAddress = oItem.Email;
                documents.Phone1       = oItem.Phone;
                //documents.ContactPerson = oItem.Firstname+", " + oItem.Lastname;
                documents.City     = oItem.City;
                documents.CardType = BoCardTypes.cCustomer;
                documents.Country  = "NG";
                int resp = documents.Add();

                if (resp != 0)
                {
                    //return Json(new Error() { ErrorCode = oCompany.GetLastErrorCode().ToString(), Description = oCompany.GetLastErrorDescription() });
                    return(StatusCode(System.Net.HttpStatusCode.NotFound));
                }

                documents = (BusinessPartners)oCompany.GetBusinessObject(BoObjectTypes.oBusinessPartners);
                if (documents.GetByKey(CardCode))
                {
                    if (documents.ContactEmployees.Count > 0)
                    {
                        documents.ContactEmployees.Add();
                    }
                    else
                    {
                        if (documents.ContactEmployees.Name != "")
                        {
                            documents.ContactEmployees.Add();
                        }
                    }
                    documents.ContactEmployees.Name      = oItem.Firstname + ", " + oItem.Lastname;
                    documents.ContactEmployees.LastName  = oItem.Lastname;
                    documents.ContactEmployees.FirstName = oItem.Firstname;
                    documents.ContactEmployees.Phone1    = oItem.Phone;
                    documents.ContactEmployees.E_Mail    = oItem.Email;
                    documents.ContactEmployees.Position  = "";
                    int chk = documents.Update(); //used BP.Add();
                    if (chk == 0)
                    {
                    }
                }
                return(StatusCode(System.Net.HttpStatusCode.OK));
            }
            catch (Exception ex)
            {
                oCompany.Disconnect();
                return(Json(new Error()
                {
                    ErrorCode = oCompany.GetLastErrorCode().ToString(), Description = oCompany.GetLastErrorDescription()
                }));
                //return StatusCode(System.Net.HttpStatusCode.NotFound);
            }
        }