Exemple #1
0
        public AccountHierarchyResponse IsAccountAssignedToHierarchy(string accountId)
        {
            AccountHierarchyResponse response = new AccountHierarchyResponse();

            var query            = new BusinessPartnerHierarchyByIdentificationQueryMessage_sync();
            var ident            = new BusinessPartnerHierarchySelectionByIdentification();
            var queryMessage     = new BusinessPartnerHierarchySelectionByBusinessPartnerInternalID();
            var queryMessageName = new BusinessPartnerHierarchySelectionByBusinessPartnerInternalID[1];

            queryMessageName[0] = new BusinessPartnerHierarchySelectionByBusinessPartnerInternalID();
            queryMessageName[0].LowerBoundaryInternalID  = accountId;
            queryMessageName[0].IntervalBoundaryTypeCode = "1";
            queryMessageName[0].InclusionExclusionCode   = "I";
            ident.SelectionByBusinessPartnerInternalID   = queryMessageName;

            query.BusinessPartnerHierarchySelectionByIdentification = ident;

            var sapResponse = _queryClient.FindByIdentification(query);

            if (sapResponse.ProcessingConditions.ReturnedQueryHitsNumberValue > 0)
            {
                response.Errors = new List <string>();
                response.Errors.Add("Number of hierarchy hits = " + sapResponse.ProcessingConditions.ReturnedQueryHitsNumberValue);
                //return response;
                response.ParentId      = sapResponse.Hierarchy[0].ID.Value;
                response.ParentName    = sapResponse.Hierarchy[0].Name;
                response.ParentGroupId = sapResponse.Hierarchy[0].Group[0].ID;
                response.Children      = new List <AccountHierarchyChildResponse>();

                foreach (var group in sapResponse.Hierarchy[0].Group)
                {
                    if (group.BusinessPartner != null)
                    {
                        List <string> accountList = new List <string>();
                        if (group.BusinessPartner != null)
                        {
                            foreach (var account in group.BusinessPartner)
                            {
                                accountList.Add(account.InternalID);
                            }
                        }

                        bool accountIsAssigned = false;
                        if (accountList.Contains(accountId))
                        {
                            accountIsAssigned = true;
                        }

                        response.Children.Add(new AccountHierarchyChildResponse
                        {
                            ChildName         = group.Name,
                            ChildId           = group.ID,
                            AssignedToAccount = accountIsAssigned
                        });
                    }
                }
            }

            return(response);
        }
Exemple #2
0
        private BusinessPartnerResponse SetCustomerData(string externalId, BusinessPartnerRequest businessPartner)
        {
            var response = new BusinessPartnerResponse();

            response = _customerService.SetCustomerFromBusinessPartner(businessPartner, _billingCountry, externalId);

            if (response.Errors.Count > 0)
            {
                return(response);
            }

            AccountHierarchyResponse hierResponse = new AccountHierarchyResponse();

            if (string.IsNullOrEmpty(businessPartner.BpDetails.Hierarchy.ParentId))
            {
                hierResponse = _hierarchyService.SetAccountHierarchy(businessPartner.BpDetails.Hierarchy, externalId);
            }
            else
            {
                hierResponse = _hierarchyService.SetAccountToGroup(businessPartner.BpDetails.Hierarchy, externalId);
            }

            response.Errors    = hierResponse.Errors;
            response.Warnings  = hierResponse.Warnings;
            response.Note      = hierResponse.Note;
            response.Hierarchy = hierResponse;

            return(response);
        }
Exemple #3
0
        public void ThenTheGetAccountHierarchyByUserUIDResponseShouldReturnTheUserAccountHierarchy()
        {
            bool dbResult = false;

            CustomerHierarchyResponseByUserUID = JsonConvert.DeserializeObject <AccountHierarchyResponse>(AccountHierarchyByUserUIDResponseString);
            string getDealersAssociatedWithUserQuery   = AccountHierarchyWebAPIDBQueries.GetHierarchyByUserUID_Dealer;
            string getCustomersAssociatedWithUserQuery = AccountHierarchyWebAPIDBQueries.GetHierarchyByUserUID_Customer;

            GetCustomersFromDBByUserUID(getDealersAssociatedWithUserQuery);
            GetCustomersFromDBByUserUID(getCustomersAssociatedWithUserQuery);


            foreach (var item in CustomersForUserAccountDBResult.Customers)
            {
                var CustomerInfo = CustomerHierarchyResponseByUserUID.Customers.FirstOrDefault(x => x.CustomerUID == new Guid(item.CustomerUID).ToString());
                if (CustomerInfo != null)
                {
                    if (CustomerInfo.CustomerType == item.CustomerType && CustomerInfo.DealerAccountCode == item.DealerAccountCode && CustomerInfo.DisplayName == item.DisplayName && CustomerInfo.NetworkDealerCode == item.NetworkDealerCode && CustomerInfo.Name == item.Name)
                    {
                        dbResult = true;
                    }
                    else
                    {
                        dbResult = false;
                        break;
                    }
                }
            }


            Assert.IsTrue(dbResult, "DB Comparison Failure");
        }
Exemple #4
0
        public AccountHierarchyResponse RemoveAccountFromGroup(string accountId)
        {
            AccountHierarchyResponse response = new AccountHierarchyResponse();

            var groupsAssigned = IsAccountAssignedToHierarchy(accountId);
            var childGroup     = new AccountHierarchyChildResponse();

            foreach (var child in groupsAssigned.Children)
            {
                if (child.AssignedToAccount)
                {
                    childGroup = child;
                }
            }

            var request = new BusinessPartnerHierarchyMaintainRequestMessage_sync();

            //groups
            var groups = new BusinessPartnerHierarchyMaintainRequestGroup[1];

            groups[0]      = new BusinessPartnerHierarchyMaintainRequestGroup();
            groups[0].ID   = childGroup.ChildId;
            groups[0].Name = childGroup.ChildName;
            //groups[0].ParentGroupID = groupsAssigned.ParentGroupId;
            var assignAccount = new BusinessPartnerHierarchyMaintainRequestGroupBusinessPartner();

            assignAccount.InternalID = accountId;
            var bp = new BusinessPartnerHierarchyMaintainRequestGroup();

            groups[0].BusinessPartner                        = new BusinessPartnerHierarchyMaintainRequestGroupBusinessPartner[1];
            groups[0].BusinessPartner[0]                     = new BusinessPartnerHierarchyMaintainRequestGroupBusinessPartner();
            groups[0].BusinessPartner[0]                     = assignAccount;
            groups[0].BusinessPartner[0].actionCode          = ActionCode.Item03;
            groups[0].BusinessPartner[0].actionCodeSpecified = true;

            //new hierarchy id
            BusinessPartnerHierarchyMaintainRequest hierarchy = new BusinessPartnerHierarchyMaintainRequest();

            AccountHierarchyManageService.BusinessPartnerHierarchyID parentId = new AccountHierarchyManageService.BusinessPartnerHierarchyID();
            parentId.Value = groupsAssigned.ParentId;

            //set hierarchy id, name, and groups;
            hierarchy.ID    = parentId;
            hierarchy.Name  = groupsAssigned.ParentName;
            hierarchy.Group = groups;
            request.BusinessPartnerHierarchy    = new BusinessPartnerHierarchyMaintainRequest[1];
            request.BusinessPartnerHierarchy[0] = new BusinessPartnerHierarchyMaintainRequest();
            request.BusinessPartnerHierarchy[0] = hierarchy;

            var xml = SapXmlExtractor.GetXmlString(request);

            BusinessPartnerHierarchyMaintainConfirmationMessage_sync sapResponse = _manageClient.MaintainBundle(request);

            response = SetAccountHierarchyManageResponse(sapResponse);
            //var newResponse = GetAccountHierarchyById(response.ParentId);

            return(response);
        }
Exemple #5
0
        public AccountHierarchyResponse SetAccountHierarchyQueryResponse(BusinessPartnerHierarchyResponseMessage_sync sapResponse, string accountId)
        {
            AccountHierarchyResponse response = new AccountHierarchyResponse();
            BaseResponse             tempRes  = SapLogParser.ParseSapResponseLog(sapResponse.Log);

            response.Errors   = tempRes.Errors;
            response.Warnings = tempRes.Warnings;

            if (sapResponse.Hierarchy != null)
            {
                response.ParentId   = sapResponse.Hierarchy[0].ID.Value;
                response.ParentName = sapResponse.Hierarchy[0].Name;
                response.ParentUUID = sapResponse.Hierarchy[0].UUID.Value;

                if (sapResponse.Hierarchy[0].Group != null)
                {
                    response.Children = new List <AccountHierarchyChildResponse>();

                    foreach (var group in sapResponse.Hierarchy[0].Group)
                    {
                        List <string> accountList = new List <string>();
                        if (group.BusinessPartner != null)
                        {
                            foreach (var account in group.BusinessPartner)
                            {
                                accountList.Add(account.InternalID);
                            }
                        }

                        bool accountIsAssigned = false;
                        if (accountList.Contains(accountId))
                        {
                            accountIsAssigned = true;
                        }

                        response.Children.Add(new AccountHierarchyChildResponse
                        {
                            ChildName         = group.Name,
                            ChildId           = group.ID,
                            AssignedToAccount = accountIsAssigned
                        });
                    }
                }
            }

            if (sapResponse.ProcessingConditions != null)
            {
                if (sapResponse.ProcessingConditions.ReturnedQueryHitsNumberValue == 0)
                {
                    response.Errors = new List <string>();
                    response.Errors.Add("SAP Server Error.  Number of hits = " + sapResponse.ProcessingConditions.ReturnedQueryHitsNumberValue);
                }
            }

            return(response);
        }
Exemple #6
0
        public AccountHierarchyResponse SetAccountHierarchyManageResponse(BusinessPartnerHierarchyMaintainConfirmationMessage_sync sapResponse)
        {
            AccountHierarchyResponse response = new AccountHierarchyResponse();
            BaseResponse             tempRes  = SapLogParser.ParseSapResponseLog(sapResponse.Log);

            response.Errors   = tempRes.Errors;
            response.Warnings = tempRes.Warnings;

            if (sapResponse.BusinessPartnerHierarchy != null)
            {
                response.ParentId   = sapResponse.BusinessPartnerHierarchy[0].ID.Value;
                response.ParentUUID = sapResponse.BusinessPartnerHierarchy[0].UUID.Value;
            }

            return(response);
        }
Exemple #7
0
        public AccountHierarchyResponse GetAccountHierarchyByName(string hierarchyName)
        {
            AccountHierarchyResponse response = new AccountHierarchyResponse();
            var query            = new BusinessPartnerHierarchyByIdentificationQueryMessage_sync();
            var queryMessage     = new BusinessPartnerHierarchySelectionByIdentification();
            var queryMessageName = new BusinessPartnerHierarchySelectionByName[1];

            queryMessageName[0] = new BusinessPartnerHierarchySelectionByName();
            queryMessageName[0].LowerBoundaryName        = hierarchyName;
            queryMessageName[0].IntervalBoundaryTypeCode = "1";
            queryMessageName[0].InclusionExclusionCode   = "I";
            queryMessage.SelectionByName = queryMessageName;

            query.BusinessPartnerHierarchySelectionByIdentification = queryMessage;

            var sapResponse = _queryClient.FindByIdentification(query);

            response.ParentUUID = sapResponse.Hierarchy[0].UUID.Value;

            return(response);
        }
Exemple #8
0
        public AccountHierarchyResponse GetAccountHierarchyById(string hierarchyId, string accountId)
        {
            var query          = new BusinessPartnerHierarchyByIdentificationQueryMessage_sync();
            var queryMessage   = new BusinessPartnerHierarchySelectionByIdentification();
            var queryMessageId = new BusinessPartnerHierarchySelectionByID[1];

            queryMessageId[0] = new BusinessPartnerHierarchySelectionByID();
            var queryHierarchyId = new AccountHierarchyQueryService.BusinessPartnerHierarchyID();

            queryHierarchyId.Value = hierarchyId;
            queryMessageId[0].LowerBoundaryHierarchyID = queryHierarchyId;
            queryMessageId[0].IntervalBoundaryTypeCode = "1";
            queryMessageId[0].InclusionExclusionCode   = "I";
            queryMessage.SelectionByID = queryMessageId;

            query.BusinessPartnerHierarchySelectionByIdentification = queryMessage;

            var sapResponse = _queryClient.FindByIdentification(query);
            AccountHierarchyResponse response = SetAccountHierarchyQueryResponse(sapResponse, accountId);

            return(response);
        }
Exemple #9
0
        public AccountHierarchyResponse SetAccountToGroup(AccountHierarchyRequest accountHierarchy, string accountId)
        {
            AccountHierarchyResponse response = new AccountHierarchyResponse();

            var groupsAssigned = IsAccountAssignedToHierarchy(accountId);

            if (!string.IsNullOrEmpty(groupsAssigned.ParentId))
            {
                var removeResponse = RemoveAccountFromGroup(accountId);
                if (removeResponse.Errors.Count > 0)
                {
                    return(removeResponse);
                }
            }

            var request = new BusinessPartnerHierarchyMaintainRequestMessage_sync();

            //groups
            var groups = new BusinessPartnerHierarchyMaintainRequestGroup[1];

            groups[0]               = new BusinessPartnerHierarchyMaintainRequestGroup();
            groups[0].ID            = accountHierarchy.childGroupId;
            groups[0].ParentGroupID = accountHierarchy.ParentGroupId;
            var assignAccount = new BusinessPartnerHierarchyMaintainRequestGroupBusinessPartner();

            assignAccount.InternalID = accountId;
            var bp = new BusinessPartnerHierarchyMaintainRequestGroup();

            groups[0].BusinessPartner                        = new BusinessPartnerHierarchyMaintainRequestGroupBusinessPartner[1];
            groups[0].BusinessPartner[0]                     = new BusinessPartnerHierarchyMaintainRequestGroupBusinessPartner();
            groups[0].BusinessPartner[0]                     = assignAccount;
            groups[0].BusinessPartner[0].actionCode          = ActionCode.Item01;
            groups[0].BusinessPartner[0].actionCodeSpecified = true;


            //new hierarchy id
            BusinessPartnerHierarchyMaintainRequest hierarchy = new BusinessPartnerHierarchyMaintainRequest();

            AccountHierarchyManageService.BusinessPartnerHierarchyID parentId = new AccountHierarchyManageService.BusinessPartnerHierarchyID();
            parentId.Value = accountHierarchy.ParentId;

            //set hierarchy id, name, and groups;
            hierarchy.ID    = parentId;
            hierarchy.Name  = accountHierarchy.ParentName;
            hierarchy.Group = groups;
            request.BusinessPartnerHierarchy    = new BusinessPartnerHierarchyMaintainRequest[1];
            request.BusinessPartnerHierarchy[0] = new BusinessPartnerHierarchyMaintainRequest();
            request.BusinessPartnerHierarchy[0] = hierarchy;

            string requestXml = SapXmlExtractor.GetXmlString(request);
            BusinessPartnerHierarchyMaintainConfirmationMessage_sync sapResponseCheck = new BusinessPartnerHierarchyMaintainConfirmationMessage_sync();

            try
            {
                sapResponseCheck = _manageClient.CheckMaintainBundle(request);
            }
            catch (Exception ex)
            {
            }

            if (sapResponseCheck.Log != null)
            {
                if (sapResponseCheck.Log.MaximumLogItemSeverityCode.Equals("3"))
                {
                    return(SetAccountHierarchyManageResponse(sapResponseCheck));
                }
            }

            BusinessPartnerHierarchyMaintainConfirmationMessage_sync sapResponse = _manageClient.MaintainBundle(request);

            response = SetAccountHierarchyManageResponse(sapResponse);
            var newResponse = GetAccountHierarchyById(response.ParentId, accountId);

            return(newResponse);
        }
Exemple #10
0
        public AccountHierarchyResponse SetAccountHierarchy(AccountHierarchyRequest accountHierarchy, string accountId)
        {
            AccountHierarchyResponse response = new AccountHierarchyResponse();
            var request = new BusinessPartnerHierarchyMaintainRequestMessage_sync();

            //groups
            var groups = new BusinessPartnerHierarchyMaintainRequestGroup[4];

            for (int i = 0; i < 4; i++)
            {
                groups[i] = new BusinessPartnerHierarchyMaintainRequestGroup();
            }

            //set parent
            groups[0].ID                  = GenerateHierarchyIds(accountId, 0);
            groups[0].Name                = accountHierarchy.ParentName;
            groups[0].actionCode          = ActionCode.Item01;
            groups[0].actionCodeSpecified = true;
            groups[0].businessPartnerListCompleteTransmissionIndicator          = true;
            groups[0].businessPartnerListCompleteTransmissionIndicatorSpecified = true;

            //set children
            for (int i = 1; i < groups.Length; i++)
            {
                groups[i].ID                  = GenerateHierarchyIds(accountId, i);
                groups[i].Name                = GenerateHierarchyNames(i);
                groups[i].ParentGroupID       = groups[0].ID;
                groups[i].actionCode          = ActionCode.Item01;
                groups[i].actionCodeSpecified = true;
                groups[i].businessPartnerListCompleteTransmissionIndicator          = true;
                groups[i].businessPartnerListCompleteTransmissionIndicatorSpecified = true;

                if (accountHierarchy.AssignTo == i)
                {
                    var assignAccount = new BusinessPartnerHierarchyMaintainRequestGroupBusinessPartner();
                    assignAccount.InternalID = accountId;
                    var bp = new BusinessPartnerHierarchyMaintainRequestGroup();
                    groups[i].BusinessPartner                        = new BusinessPartnerHierarchyMaintainRequestGroupBusinessPartner[1];
                    groups[i].BusinessPartner[0]                     = new BusinessPartnerHierarchyMaintainRequestGroupBusinessPartner();
                    groups[i].BusinessPartner[0]                     = assignAccount;
                    groups[i].BusinessPartner[0].actionCode          = ActionCode.Item01;
                    groups[i].BusinessPartner[0].actionCodeSpecified = true;
                }
            }

            //create new hierarchy
            BusinessPartnerHierarchyMaintainRequest hierarchy = new BusinessPartnerHierarchyMaintainRequest();

            AccountHierarchyManageService.BusinessPartnerHierarchyID parentId = new AccountHierarchyManageService.BusinessPartnerHierarchyID();
            parentId.Value = "";

            //set hierarchy id, name, and groups;
            hierarchy.ID                  = parentId;
            hierarchy.Name                = accountHierarchy.ParentName;
            hierarchy.actionCode          = ActionCode.Item01;
            hierarchy.actionCodeSpecified = true;
            hierarchy.Group               = groups;
            hierarchy.groupListCompleteTransmissionIndicator          = true;
            hierarchy.groupListCompleteTransmissionIndicatorSpecified = true;

            request.BusinessPartnerHierarchy    = new BusinessPartnerHierarchyMaintainRequest[1];
            request.BusinessPartnerHierarchy[0] = new BusinessPartnerHierarchyMaintainRequest();
            request.BusinessPartnerHierarchy[0] = hierarchy;

            BusinessPartnerHierarchyMaintainConfirmationMessage_sync sapResponse = _manageClient.MaintainBundle(request);

            response = SetAccountHierarchyManageResponse(sapResponse);

            if (response.Errors.Count > 0)
            {
                return(response);
            }

            var newResponse = GetAccountHierarchyById(response.ParentId, accountId);

            return(newResponse);
        }