Beispiel #1
0
        public WA.Standard.IF.Data.v2.Common.RepairOrder.RepairOrderChangeResponse RepairOrderChange(WA.Standard.IF.Data.v2.Common.RepairOrder.RepairOrderChangeRequest request)
        {
            WA.Standard.IF.Data.v2.Common.RepairOrder.RepairOrderChangeResponse response = new WA.Standard.IF.Data.v2.Common.RepairOrder.RepairOrderChangeResponse();

            #region 1C.v8241.v2 - RTR.Standard.IF.WebService

            #region RepairOrderChange Request Set

            //Create proxy credential
            NetworkCredential proxycredential = new NetworkCredential(request.TransactionHeader.Username, request.TransactionHeader.Password);

            //Create proxy web service from dms web service with credential
            _1C.v8241.RepairOrder.RepairOrder proxyws = new _1C.v8241.RepairOrder.RepairOrder();
            proxyws.Credentials = proxycredential;

            //Create proxy request with repairorderchange and transaction
            _1C.v8241.RepairOrder.RepairOrderChangeRequest proxyrequest = new _1C.v8241.RepairOrder.RepairOrderChangeRequest();

            //Create proxy transaction
            _1C.v8241.RepairOrder.TransactionHeader proxytransactionheader = new _1C.v8241.RepairOrder.TransactionHeader();
            if (request.TransactionHeader != null)
            {
                #region//TransactionHeader Set
                proxytransactionheader.CountryID = request.TransactionHeader.CountryID;
                proxytransactionheader.DealerID = request.TransactionHeader.DealerID;
                proxytransactionheader.DistributorID = request.TransactionHeader.DistributorID;
                proxytransactionheader.DMSCode = request.TransactionHeader.DMSCode;
                proxytransactionheader.DMSServerUrl = request.TransactionHeader.DMSServerUrl;
                proxytransactionheader.DMSVersion = request.TransactionHeader.DMSVersion;
                proxytransactionheader.DocumentVersion = request.TransactionHeader.DocumentVersion;
                proxytransactionheader.GroupID = request.TransactionHeader.GroupID;
                proxytransactionheader.IneterfaceID = request.TransactionHeader.IneterfaceID;
                proxytransactionheader.Password = request.TransactionHeader.Password;
                proxytransactionheader.PollingToken = request.TransactionHeader.PollingToken;
                proxytransactionheader.RequestPollingToken = request.TransactionHeader.RequestPollingToken;
                proxytransactionheader.RequestType = request.TransactionHeader.RequestType;
                proxytransactionheader.TransactionId = request.TransactionHeader.TransactionId;
                proxytransactionheader.TransactionDateTimeLocal = request.TransactionHeader.TransactionDateTimeLocal;
                proxytransactionheader.TransactionDateTimeLocalSpecified = request.TransactionHeader.TransactionDateTimeLocal != null;//수정필요
                proxytransactionheader.TransactionDateTimeUTC = request.TransactionHeader.TransactionDateTimeLocal;
                proxytransactionheader.TransactionDateTimeUTCSpecified = request.TransactionHeader.TransactionDateTimeLocal != null;//수정필요
                proxytransactionheader.TransactionType = request.TransactionHeader.TransactionType;
                proxytransactionheader.Username = request.TransactionHeader.Username;
                proxytransactionheader.VenderTrackingCode = request.TransactionHeader.VenderTrackingCode;
                proxyrequest.TransactionHeader = proxytransactionheader;
                proxyws.Url = string.Format("{0}/rtr-atest/ws/RepairOrder.1cws", proxytransactionheader.DMSServerUrl);
                #endregion
            }

            //Create proxy repairorderchange
            _1C.v8241.RepairOrder.RepairOrderChange proxyrepairorderchange = new _1C.v8241.RepairOrder.RepairOrderChange();
            if (request.RepairOrderChange != null)
            {
                #region//RepairOrder Header
                proxyrepairorderchange.CloseDateTimeLocal = request.RepairOrderChange.CloseDateTimeLocal != null ? Convert.ToDateTime(request.RepairOrderChange.CloseDateTimeLocal) : DateTime.MinValue;//수정필요
                proxyrepairorderchange.CloseDateTimeLocalSpecified = request.RepairOrderChange.CloseDateTimeLocal != null;//수정필요
                proxyrepairorderchange.DeliveryDateTimeLocal = request.RepairOrderChange.DeliveryDateTimeLocal != null ? Convert.ToDateTime(request.RepairOrderChange.DeliveryDateTimeLocal) : DateTime.MinValue;//수정필요
                proxyrepairorderchange.DeliveryDateTimeLocalSpecified = request.RepairOrderChange.DeliveryDateTimeLocal != null;//수정필요
                proxyrepairorderchange.DMSROID = request.RepairOrderChange.DMSROID;
                proxyrepairorderchange.DMSRONo = string.IsNullOrEmpty(request.RepairOrderChange.DMSRONo) ? string.Empty : request.RepairOrderChange.DMSRONo;
                proxyrepairorderchange.DMSROStatus = Map.SetDMSCodeFromWACode(CodeType.DMSROStatus, request.RepairOrderChange.DMSROStatus);
                proxyrepairorderchange.HangTagColor = request.RepairOrderChange.HangTagColor;
                proxyrepairorderchange.HangTagNo = request.RepairOrderChange.HangTagNo;
                proxyrepairorderchange.OpenDateTimeLocal = request.RepairOrderChange.OpenDateTimeLocal != null ? Convert.ToDateTime(request.RepairOrderChange.OpenDateTimeLocal) : DateTime.MinValue;//수정필요
                proxyrepairorderchange.OpenDateTimeLocalSpecified = request.RepairOrderChange.OpenDateTimeLocal != null;//수정필요
                proxyrepairorderchange.InMileage = request.RepairOrderChange.InMileage;
                proxyrepairorderchange.OutMileage = request.RepairOrderChange.OutMileage;
                proxyrepairorderchange.PaymentMethod = Map.SetDMSCodeFromWACode(CodeType.PaymentMethod, request.RepairOrderChange.PaymentMethod);
                proxyrepairorderchange.ROChannel = Map.SetDMSCodeFromWACode(CodeType.ROChannel, request.RepairOrderChange.ROChannel);
                proxyrepairorderchange.SAEmployeeID = request.RepairOrderChange.SAEmployeeID;
                proxyrepairorderchange.SAEmployeeName = request.RepairOrderChange.SAEmployeeName;
                proxyrepairorderchange.ServiceType = Map.SetDMSCodeFromWACode(CodeType.ServiceType, request.RepairOrderChange.ServiceType);
                proxyrepairorderchange.TCEmployeeID = request.RepairOrderChange.TCEmployeeID;
                proxyrepairorderchange.TCEmployeeName = request.RepairOrderChange.TCEmployeeName;
                proxyrepairorderchange.WorkType = Map.SetDMSCodeFromWACode(CodeType.WorkType, request.RepairOrderChange.WorkType);
                proxyrepairorderchange.Description = request.RepairOrderChange.Description;
                #endregion

                #region//RepairOrder AppointmentRef
                if (request.RepairOrderChange.AppointmentRef != null)
                {
                    _1C.v8241.RepairOrder.AppointmentRef proxyappointmentref = new _1C.v8241.RepairOrder.AppointmentRef();
                    proxyappointmentref.DMSAppointmentNo = request.RepairOrderChange.AppointmentRef.DMSAppointmentNo;
                    proxyappointmentref.DMSAppointmentStatus = Map.SetDMSCodeFromWACode(CodeType.DMSAppointmentStatus, request.RepairOrderChange.AppointmentRef.DMSAppointmentStatus);
                    proxyrepairorderchange.AppointmentRef = proxyappointmentref;
                }
                #endregion

                #region//RepairOrder CustomerParts
                if (request.RepairOrderChange.CustomerParts != null && request.RepairOrderChange.CustomerParts.Count > 0)
                {
                    int customerpartscnt = 0;
                    _1C.v8241.RepairOrder.CustomerPart[] proxycustomerparts = new _1C.v8241.RepairOrder.CustomerPart[request.RepairOrderChange.CustomerParts.Count];
                    foreach (WA.Standard.IF.Data.v2.Common.RepairOrder.CustomerPart customerpart in request.RepairOrderChange.CustomerParts)
                    {
                        _1C.v8241.RepairOrder.CustomerPart proxycustomerpart = new _1C.v8241.RepairOrder.CustomerPart();
                        proxycustomerpart.Comment = customerpart.Comment;
                        proxycustomerpart.PartDescription = customerpart.PartDescription;
                        proxycustomerpart.PartNumber = customerpart.PartNumber;
                        proxycustomerpart.Quantity = customerpart.Quantity;
                        proxycustomerpart.UnitOfMeasure = customerpart.UnitOfMeasure;
                        proxycustomerparts[customerpartscnt] = proxycustomerpart;
                        customerpartscnt++;
                    }
                }
                #endregion

                #region //RepairOrder AdditionalFields
                if (request.RepairOrderChange.AdditionalFields != null && request.RepairOrderChange.AdditionalFields.Count > 0)
                {
                    int additionalfieldscnt = 0;
                    _1C.v8241.RepairOrder.AdditionalField[] proxyadditionalfields = new _1C.v8241.RepairOrder.AdditionalField[request.RepairOrderChange.AdditionalFields.Count];
                    foreach (WA.Standard.IF.Data.v2.Common.Common.AdditionalField additionalfield in request.RepairOrderChange.AdditionalFields)
                    {
                        _1C.v8241.RepairOrder.AdditionalField proxyadditionalfield = new _1C.v8241.RepairOrder.AdditionalField();
                        proxyadditionalfield.AdditionalFieldName = additionalfield.AdditionalFieldName;
                        proxyadditionalfield.AdditionalFieldValue = additionalfield.AdditionalFieldValue;
                        proxyadditionalfields[additionalfieldscnt] = proxyadditionalfield;
                        additionalfieldscnt++;
                    }
                    proxyrepairorderchange.AdditionalFields = proxyadditionalfields;
                }
                #endregion

                #region//RepairOrder Options
                if (request.RepairOrderChange.Options != null && request.RepairOrderChange.Options.Count > 0)
                {
                    int optionscnt = 0;
                    _1C.v8241.RepairOrder.Option[] proxyoptions = new _1C.v8241.RepairOrder.Option[request.RepairOrderChange.Options.Count];
                    foreach (WA.Standard.IF.Data.v2.Common.Common.Option option in request.RepairOrderChange.Options)
                    {
                        _1C.v8241.RepairOrder.Option proxyoption = new _1C.v8241.RepairOrder.Option();
                        proxyoption.OptionName = option.OptionName;
                        proxyoption.OptionValue = option.OptionValue;
                        proxyoptions[optionscnt] = proxyoption;
                        optionscnt++;
                    }
                    proxyrepairorderchange.Options = proxyoptions;
                }
                #endregion

                #region//RepairOrder PriceType
                if (request.RepairOrderChange.PriceType != null)
                {
                    _1C.v8241.RepairOrder.PriceType proxypricetype = new _1C.v8241.RepairOrder.PriceType();
                    proxypricetype.DiscountPrice = request.RepairOrderChange.PriceType.DiscountPrice;
                    proxypricetype.DiscountRate = request.RepairOrderChange.PriceType.DiscountRate;
                    proxypricetype.TotalPrice = request.RepairOrderChange.PriceType.TotalPrice;
                    proxypricetype.TotalPriceIncludeTax = request.RepairOrderChange.PriceType.TotalPriceIncludeTax;
                    proxypricetype.UnitPrice = request.RepairOrderChange.PriceType.UnitPrice;
                    proxyrepairorderchange.PriceType = proxypricetype;
                }
                #endregion

                #region//RepairOrder Customers
                if (request.RepairOrderChange.Customers != null && request.RepairOrderChange.Customers.Count > 0)
                {
                    int customerscnt = 0;
                    _1C.v8241.RepairOrder.Customer[] proxycustomers = new _1C.v8241.RepairOrder.Customer[request.RepairOrderChange.Customers.Count];
                    foreach (WA.Standard.IF.Data.v2.Common.Customer.Customer customer in request.RepairOrderChange.Customers)
                    {
                        #region//RepairOrder Customer Header
                        _1C.v8241.RepairOrder.Customer proxycustomer = new _1C.v8241.RepairOrder.Customer();
                        //proxycustomer.CardNo = customer.CardNo;
                        proxycustomer.CustomerInfoType = Map.SetDMSCodeFromWACode(CodeType.CustomerInfoType, customer.CustomerInfoType);
                        proxycustomer.DMSCustomerNo = customer.DMSCustomerNo;
                        proxycustomer.Email = customer.Email;
                        //proxycustomer.FirstName = customer.FirstName;
                        //proxycustomer.FullName = customer.FullName;
                        //proxycustomer.Gender = Map.SetDMSCodeFromWACode(CodeType.Gender, customer.Gender);
                        //proxycustomer.LastName = customer.LastName;
                        //proxycustomer.MiddleName = customer.MiddleName;
                        //proxycustomer.Salutation = customer.Salutation;
                        #endregion

                        #region//RepairOrder Customer Addresses
                        if (customer.Addresses != null && customer.Addresses.Count > 0)
                        {
                            int addressescnt = 0;
                            _1C.v8241.RepairOrder.Address[] proxyaddresses = new _1C.v8241.RepairOrder.Address[customer.Addresses.Count];
                            foreach (WA.Standard.IF.Data.v2.Common.Customer.Address address in customer.Addresses)
                            {
                                _1C.v8241.RepairOrder.Address proxyaddress = new _1C.v8241.RepairOrder.Address();
                                proxyaddress.AddressType = Map.SetDMSCodeFromWACode(CodeType.AddressType, address.AddressType);
                                proxyaddress.City = address.City;
                                proxyaddress.District = address.District;
                                proxyaddress.Flat = address.Flat;
                                //proxyaddress.FullAddress = "Need to fix. FullAddress is not a mandatory.";//
                                proxyaddress.House = address.House;
                                proxyaddress.Housing = address.Housing;
                                proxyaddress.Locality = address.Locality;
                                proxyaddress.Region = address.Region;
                                proxyaddress.Street = address.Street;
                                proxyaddress.ZipCode = address.ZipCode;
                                proxyaddresses[addressescnt] = proxyaddress;
                                addressescnt++;
                            }
                            proxycustomer.Addresses = proxyaddresses;
                        }
                        #endregion

                        #region//RepairOrder Customer Contacts
                        if (customer.Contacts != null && customer.Contacts.Count > 0)
                        {
                            int contactscnt = 0;
                            _1C.v8241.RepairOrder.Contact[] proxycontacts = new _1C.v8241.RepairOrder.Contact[customer.Contacts.Count];
                            foreach (WA.Standard.IF.Data.v2.Common.Customer.Contact contact in customer.Contacts)
                            {
                                _1C.v8241.RepairOrder.Contact proxycontact = new _1C.v8241.RepairOrder.Contact();
                                proxycontact.ContactMethodYN = contact.ContactMethodYN;
                                proxycontact.ContactType = Map.SetDMSCodeFromWACode(CodeType.ContactType, contact.ContactType);
                                proxycontact.ContactValue = contact.ContactValue;
                                proxycontacts[contactscnt] = proxycontact;
                                contactscnt++;
                            }
                            proxycustomer.Contacts = proxycontacts;
                        }
                        #endregion

                        #region//RepairOrder Customer SpecialMessage
                        if (customer.SpecialMessage != null)
                        {
                            _1C.v8241.RepairOrder.SpecialMessage proxyspecialmessage = new _1C.v8241.RepairOrder.SpecialMessage();
                            proxyspecialmessage.Message = customer.SpecialMessage.Message;
                            proxycustomer.SpecialMessage = proxyspecialmessage;
                        }
                        #endregion

                        #region//RepairOrder Customer CorporateInfos
                        if (customer.CorporateInfos != null && customer.CorporateInfos.Count > 0)
                        {
                            int corporateinfoscnt = 0;
                            _1C.v8241.RepairOrder.CorporateInfo[] proxycorporateinfos = new _1C.v8241.RepairOrder.CorporateInfo[customer.CorporateInfos.Count];
                            foreach (WA.Standard.IF.Data.v2.Common.Customer.CorporateInfo corporateinfo in customer.CorporateInfos)
                            {
                                _1C.v8241.RepairOrder.CorporateInfo proxycorporateinfo = new _1C.v8241.RepairOrder.CorporateInfo();
                                proxycorporateinfo.CorporateInfoName = corporateinfo.CorporateInfoName;
                                proxycorporateinfo.CorporateInfoValue = corporateinfo.CorporateInfoValue;
                                proxycorporateinfos[corporateinfoscnt] = proxycorporateinfo;
                                corporateinfoscnt++;
                            }
                            proxycustomer.CorporateInfos = proxycorporateinfos;
                        }
                        #endregion

                        proxycustomers[customerscnt] = proxycustomer;
                    }
                    proxyrepairorderchange.Customers = proxycustomers;
                }
                #endregion

                #region//RepairOrder Vehicle
                if (request.RepairOrderChange.Vehicle != null)
                {
                    #region//RepairOrder Vehicle Header
                    _1C.v8241.RepairOrder.Vehicle proxyvehicle = new _1C.v8241.RepairOrder.Vehicle();
                    proxyvehicle.Color = request.RepairOrderChange.Vehicle.Color;
                    proxyvehicle.Cylinders = request.RepairOrderChange.Vehicle.Cylinders;
                    proxyvehicle.DateDelivered = request.RepairOrderChange.Vehicle.DateDelivered != null ? Convert.ToDateTime(request.RepairOrderChange.Vehicle.DateDelivered) : DateTime.MinValue;//수정필요
                    proxyvehicle.DateInService = request.RepairOrderChange.Vehicle.DateInService != null ? Convert.ToDateTime(request.RepairOrderChange.Vehicle.DateInService) : DateTime.MinValue;//수정필요
                    proxyvehicle.DeclinedJob = request.RepairOrderChange.Vehicle.DeclinedJob;
                    proxyvehicle.DisplayDescription = request.RepairOrderChange.Vehicle.DisplayDescription;
                    proxyvehicle.DMSVehicleNo = request.RepairOrderChange.Vehicle.DMSVehicleNo;
                    proxyvehicle.EngineCode = request.RepairOrderChange.Vehicle.EngineCode;
                    proxyvehicle.EngineType = request.RepairOrderChange.Vehicle.EngineType;
                    proxyvehicle.ExtendedWarranty = request.RepairOrderChange.Vehicle.ExtendedWarranty != null ? Convert.ToDateTime(request.RepairOrderChange.Vehicle.ExtendedWarranty) : DateTime.MinValue;//수정필요
                    proxyvehicle.FuelType = request.RepairOrderChange.Vehicle.FuelType;
                    proxyvehicle.FullModelName = request.RepairOrderChange.Vehicle.FullModelName;
                    proxyvehicle.InsuranceDate = request.RepairOrderChange.Vehicle.InsuranceDate != null ? Convert.ToDateTime(request.RepairOrderChange.Vehicle.InsuranceDate) : DateTime.MinValue;//수정필요
                    proxyvehicle.LastMileage = request.RepairOrderChange.Vehicle.LastMileage;
                    proxyvehicle.LastServiceDate = request.RepairOrderChange.Vehicle.LastServiceDate != null ? Convert.ToDateTime(request.RepairOrderChange.Vehicle.LastServiceDate) : DateTime.MinValue;//수정필요
                    //proxyvehicle.LastSixVIN = request.RepairOrderChange.Vehicle.LastSixVIN;
                    proxyvehicle.LicenseNumber = request.RepairOrderChange.Vehicle.LicenseNumber;
                    proxyvehicle.LicensePlateNo = request.RepairOrderChange.Vehicle.LicensePlateNo;
                    proxyvehicle.Make = request.RepairOrderChange.Vehicle.Make;
                    proxyvehicle.ModelCode = request.RepairOrderChange.Vehicle.ModelCode;
                    proxyvehicle.ModelName = request.RepairOrderChange.Vehicle.ModelName;
                    proxyvehicle.ModelYear = request.RepairOrderChange.Vehicle.ModelYear;
                    proxyvehicle.PendingJob = request.RepairOrderChange.Vehicle.PendingJob;
                    proxyvehicle.StockNumber = request.RepairOrderChange.Vehicle.StockNumber;
                    proxyvehicle.Trim = request.RepairOrderChange.Vehicle.Trim;
                    proxyvehicle.VehicleType = Map.SetDMSCodeFromWACode(CodeType.VehicleType, request.RepairOrderChange.Vehicle.VehicleType);
                    proxyvehicle.VIN = request.RepairOrderChange.Vehicle.VIN;
                    proxyvehicle.WarrantyMiles = request.RepairOrderChange.Vehicle.WarrantyMiles;
                    proxyvehicle.WarrantyMonths = request.RepairOrderChange.Vehicle.WarrantyMonths;
                    proxyvehicle.WarrantyStartDate = request.RepairOrderChange.Vehicle.WarrantyStartDate != null ? Convert.ToDateTime(request.RepairOrderChange.Vehicle.WarrantyStartDate) : DateTime.MinValue;//수정필요
                    proxyvehicle.EngineNo = request.RepairOrderChange.Vehicle.EngineNo;
                    proxyvehicle.ExtendedWarrantyExpireDate = request.RepairOrderChange.Vehicle.ExtendedWarrantyExpireDate != null ? Convert.ToDateTime(request.RepairOrderChange.Vehicle.ExtendedWarrantyExpireDate) : DateTime.MinValue;//수정필요
                    #endregion

                    #region//RepairOrder Vehicle Campaigns
                    if (request.RepairOrderChange.Vehicle.Campaigns != null && request.RepairOrderChange.Vehicle.Campaigns.Count > 0)
                    {
                        int campaignscnt = 0;
                        _1C.v8241.RepairOrder.Campaign[] proxycampaigns = new _1C.v8241.RepairOrder.Campaign[request.RepairOrderChange.Vehicle.Campaigns.Count];
                        foreach (WA.Standard.IF.Data.v2.Common.Vehicle.Campaign campaign in request.RepairOrderChange.Vehicle.Campaigns)
                        {
                            _1C.v8241.RepairOrder.Campaign proxycampaign = new _1C.v8241.RepairOrder.Campaign();
                            proxycampaign.CampaignDescription = campaign.CampaignDescription;
                            proxycampaign.CampaignID = campaign.CampaignID;
                            proxycampaign.CampaignPerformed = campaign.CampaignPerformed;
                            proxycampaigns[campaignscnt] = proxycampaign;
                            campaignscnt++;
                        }
                        proxyvehicle.Campaigns = proxycampaigns;
                    }
                    #endregion

                    proxyrepairorderchange.Vehicle = proxyvehicle;
                }
                #endregion

                #region//RepairOrder RequestItems
                if (request.RepairOrderChange.RequestItems != null && request.RepairOrderChange.RequestItems.Count > 0)
                {
                    int requestitemscnt = 0;
                    _1C.v8241.RepairOrder.RequestItem[] proxyrequestitems = new _1C.v8241.RepairOrder.RequestItem[request.RepairOrderChange.RequestItems.Count];
                    foreach (WA.Standard.IF.Data.v2.Common.Common.RequestItem requestitem in request.RepairOrderChange.RequestItems)
                    {
                        #region//RepairOrder RequestItem Header
                        _1C.v8241.RepairOrder.RequestItem proxyrequestitem = new _1C.v8241.RepairOrder.RequestItem();
                        proxyrequestitem.CPSIND = requestitem.CPSIND;
                        proxyrequestitem.RequestCode = requestitem.RequestCode;
                        proxyrequestitem.RequestDescription = requestitem.RequestDescription;
                        proxyrequestitem.ServiceLineNumber = requestitem.ServiceLineNumber;
                        proxyrequestitem.ServiceLineStatus = Map.SetDMSCodeFromWACode(CodeType.ServiceLineStatus, requestitem.ServiceLineStatus);
                        proxyrequestitem.ServiceType = Map.SetDMSCodeFromWACode(CodeType.ServiceType, requestitem.ServiceType);
                        proxyrequestitem.TCEmployeeID = requestitem.TCEmployeeID;
                        proxyrequestitem.TCEmployeeName = requestitem.TCEmployeeName;
                        proxyrequestitem.WorkType = Map.SetDMSCodeFromWACode(CodeType.WorkType, requestitem.WorkType);
                        #endregion

                        #region//RepairOrder RequestItem Comments
                        if (requestitem.Comments != null && requestitem.Comments.Count > 0)
                        {
                            int commentscnt = 0;
                            _1C.v8241.RepairOrder.Comment[] proxycomments = new _1C.v8241.RepairOrder.Comment[requestitem.Comments.Count];
                            foreach (WA.Standard.IF.Data.v2.Common.Common.Comment Comment in requestitem.Comments)
                            {
                                _1C.v8241.RepairOrder.Comment proxycomment = new _1C.v8241.RepairOrder.Comment();
                                proxycomment.DescriptionComment = Comment.DescriptionComment;
                                proxycomment.SequenceNumber = Comment.SequenceNumber;
                                proxycomments[commentscnt] = proxycomment;
                                commentscnt++;
                            }
                            proxyrequestitem.Comments = proxycomments;
                        }
                        #endregion

                        #region//RepairOrder RequestItem Descriptions
                        if (requestitem.Descriptions != null && requestitem.Descriptions.Count > 0)
                        {
                            int descriptionscnt = 0;
                            _1C.v8241.RepairOrder.Description[] proxydescriptions = new _1C.v8241.RepairOrder.Description[requestitem.Descriptions.Count];
                            foreach (WA.Standard.IF.Data.v2.Common.Common.Description description in requestitem.Descriptions)
                            {
                                _1C.v8241.RepairOrder.Description proxydescription = new _1C.v8241.RepairOrder.Description();
                                proxydescription.DescriptionComment = description.DescriptionComment;
                                proxydescription.SequenceNumber = description.SequenceNumber;
                                proxydescriptions[descriptionscnt] = proxydescription;
                                descriptionscnt++;
                            }
                            proxyrequestitem.Descriptions = proxydescriptions;
                        }
                        #endregion

                        #region//RepairOrder RequestItem OPCodes
                        if (requestitem.OPCodes != null && requestitem.OPCodes.Count > 0)
                        {
                            int opcodescnt = 0;
                            _1C.v8241.RepairOrder.OPCode[] proxyopcodes = new _1C.v8241.RepairOrder.OPCode[requestitem.OPCodes.Count];
                            foreach (WA.Standard.IF.Data.v2.Common.Common.OPCode opcode in requestitem.OPCodes)
                            {
                                #region//RepairOrder RequestItem OPCode Header
                                _1C.v8241.RepairOrder.OPCode proxyopcode = new _1C.v8241.RepairOrder.OPCode();
                                proxyopcode.ActualHours = opcode.ActualHours;
                                proxyopcode.Code = opcode.Code;
                                proxyopcode.Description = opcode.Description;
                                proxyopcode.EstimatedHours = opcode.EstimatedHours;
                                proxyopcode.SequenceNumber = opcode.SequenceNumber;
                                proxyopcode.ServiceType = Map.SetDMSCodeFromWACode(CodeType.ServiceType, opcode.ServiceType);
                                proxyopcode.SkillLevel = opcode.SkillLevel;
                                proxyopcode.Quantity = opcode.Quantity;
                                #endregion

                                #region//RepairOrder RequestItem OPCode Descriptions
                                if (opcode.Descriptions != null && opcode.Descriptions.Count > 0)
                                {
                                    int descriptionscnt = 0;
                                    _1C.v8241.RepairOrder.Description[] proxydescriptions = new _1C.v8241.RepairOrder.Description[opcode.Descriptions.Count];
                                    foreach (WA.Standard.IF.Data.v2.Common.Common.Description description in opcode.Descriptions)
                                    {
                                        _1C.v8241.RepairOrder.Description proxydescription = new _1C.v8241.RepairOrder.Description();
                                        proxydescription.DescriptionComment = description.DescriptionComment;
                                        proxydescription.SequenceNumber = description.SequenceNumber;
                                        proxydescriptions[descriptionscnt] = proxydescription;
                                        descriptionscnt++;
                                    }
                                    proxyopcode.Descriptions = proxydescriptions;
                                }
                                #endregion

                                #region//RepairOrder RequestItem OPCode Causes
                                if (opcode.Causes != null && opcode.Causes.Count > 0)
                                {
                                    int causescnt = 0;
                                    _1C.v8241.RepairOrder.Cause[] proxycauses = new _1C.v8241.RepairOrder.Cause[opcode.Causes.Count];
                                    foreach (WA.Standard.IF.Data.v2.Common.Common.Cause cause in opcode.Causes)
                                    {
                                        _1C.v8241.RepairOrder.Cause proxycause = new _1C.v8241.RepairOrder.Cause();
                                        proxycause.CauseLaborOpCode = cause.CauseLaborOpCode;
                                        proxycause.Comment = cause.Comment;
                                        proxycause.SequenceNumber = cause.SequenceNumber;
                                        proxycauses[causescnt] = proxycause;
                                        causescnt++;
                                    }
                                    proxyopcode.Causes = proxycauses;
                                }
                                #endregion

                                #region//RepairOrder RequestItem OPCode Corrections
                                if (opcode.Corrections != null && opcode.Corrections.Count > 0)
                                {
                                    int correctionscnt = 0;
                                    _1C.v8241.RepairOrder.Correction[] proxycorrections = new _1C.v8241.RepairOrder.Correction[opcode.Corrections.Count];
                                    foreach (WA.Standard.IF.Data.v2.Common.Common.Correction Correction in opcode.Corrections)
                                    {
                                        _1C.v8241.RepairOrder.Correction proxycorrection = new _1C.v8241.RepairOrder.Correction();
                                        proxycorrection.CorrectionLaborOpCode = Correction.CorrectionLaborOpCode;
                                        proxycorrection.Comment = Correction.Comment;
                                        proxycorrection.SequenceNumber = Correction.SequenceNumber;
                                        proxycorrections[correctionscnt] = proxycorrection;
                                        correctionscnt++;
                                    }
                                    proxyopcode.Corrections = proxycorrections;
                                }
                                #endregion

                                #region//RepairOrder RequestItem OPCode PriceType
                                if (opcode.PriceType != null)
                                {
                                    _1C.v8241.RepairOrder.PriceType proxypricetype = new _1C.v8241.RepairOrder.PriceType();
                                    proxypricetype.DiscountPrice = opcode.PriceType.DiscountPrice;
                                    proxypricetype.DiscountRate = opcode.PriceType.DiscountRate;
                                    proxypricetype.TotalPrice = opcode.PriceType.TotalPrice;
                                    proxypricetype.TotalPriceIncludeTax = opcode.PriceType.TotalPriceIncludeTax;
                                    proxypricetype.UnitPrice = opcode.PriceType.UnitPrice;
                                    proxyopcode.PriceType = proxypricetype;
                                }
                                #endregion

                                #region//RepairOrder RequestItem OPCode Parts
                                if (opcode.Parts != null && opcode.Parts.Count > 0)
                                {
                                    int partscnt = 0;
                                    _1C.v8241.RepairOrder.Part[] proxyparts = new _1C.v8241.RepairOrder.Part[opcode.Parts.Count];
                                    foreach (WA.Standard.IF.Data.v2.Common.Common.Part part in opcode.Parts)
                                    {
                                        #region//RepairOrder RequestItem OPCode Parts Header
                                        _1C.v8241.RepairOrder.Part proxypart = new _1C.v8241.RepairOrder.Part();
                                        proxypart.DisplayPartNumber = part.DisplayPartNumber;
                                        proxypart.PartDescription = part.PartDescription;
                                        proxypart.PartNumber = part.PartNumber;
                                        proxypart.PartType = Map.SetDMSCodeFromWACode(CodeType.PartType, part.PartType);
                                        proxypart.Quantity = part.Quantity;
                                        proxypart.SequenceNumber = part.SequenceNumber;
                                        proxypart.ServiceType = Map.SetDMSCodeFromWACode(CodeType.ServiceType, part.ServiceType);
                                        proxypart.StockQuantity = part.StockQuantity;
                                        proxypart.StockStatus = part.StockStatus;
                                        proxypart.UnitOfMeasure = part.UnitOfMeasure;
                                        #endregion

                                        #region//RepairOrder RequestItem OPCode Parts Descriptions
                                        if (part.Descriptions != null && part.Descriptions.Count > 0)
                                        {
                                            int descriptionscnt = 0;
                                            _1C.v8241.RepairOrder.Description[] proxydescriptions = new _1C.v8241.RepairOrder.Description[part.Descriptions.Count];
                                            foreach (WA.Standard.IF.Data.v2.Common.Common.Description description in part.Descriptions)
                                            {
                                                _1C.v8241.RepairOrder.Description proxydescription = new _1C.v8241.RepairOrder.Description();
                                                proxydescription.DescriptionComment = description.DescriptionComment;
                                                proxydescription.SequenceNumber = description.SequenceNumber;
                                                proxydescriptions[descriptionscnt] = proxydescription;
                                                descriptionscnt++;
                                            }
                                            proxypart.Descriptions = proxydescriptions;
                                        }
                                        #endregion

                                        #region//RepairOrder RequestItem OPCode Parts PriceType
                                        if (part.PriceType != null)
                                        {
                                            _1C.v8241.RepairOrder.PriceType proxypricetype = new _1C.v8241.RepairOrder.PriceType();
                                            proxypricetype.DiscountPrice = part.PriceType.DiscountPrice;
                                            proxypricetype.DiscountRate = part.PriceType.DiscountRate;
                                            proxypricetype.TotalPrice = part.PriceType.TotalPrice;
                                            proxypricetype.TotalPriceIncludeTax = part.PriceType.TotalPriceIncludeTax;
                                            proxypricetype.UnitPrice = part.PriceType.UnitPrice;
                                            proxypart.PriceType = proxypricetype;
                                        }
                                        #endregion

                                        proxyparts[partscnt] = proxypart;
                                        partscnt++;
                                    }
                                    proxyopcode.Parts = proxyparts;
                                }
                                #endregion

                                #region//RepairOrder RequestItem OPCode Sublets
                                if (opcode.Sublets != null && opcode.Sublets.Count > 0)
                                {
                                    int subletscnt = 0;
                                    _1C.v8241.RepairOrder.Sublet[] proxysublets = new _1C.v8241.RepairOrder.Sublet[opcode.Sublets.Count];
                                    foreach (WA.Standard.IF.Data.v2.Common.Common.Sublet sublet in opcode.Sublets)
                                    {
                                        #region//RepairOrder RequestItem OPCode Sublets Header
                                        _1C.v8241.RepairOrder.Sublet proxysublet = new _1C.v8241.RepairOrder.Sublet();
                                        proxysublet.SequenceNumber = sublet.SequenceNumber;
                                        proxysublet.ServiceType = Map.SetDMSCodeFromWACode(CodeType.ServiceType, sublet.ServiceType);
                                        #endregion

                                        #region//RepairOrder RequestItem OPCode Sublets Descriptions
                                        if (sublet.Descriptions != null && sublet.Descriptions.Count > 0)
                                        {
                                            int descriptionscnt = 0;
                                            _1C.v8241.RepairOrder.Description[] proxydescriptions = new _1C.v8241.RepairOrder.Description[sublet.Descriptions.Count];
                                            foreach (WA.Standard.IF.Data.v2.Common.Common.Description description in sublet.Descriptions)
                                            {
                                                _1C.v8241.RepairOrder.Description proxydescription = new _1C.v8241.RepairOrder.Description();
                                                proxydescription.DescriptionComment = description.DescriptionComment;
                                                proxydescription.SequenceNumber = description.SequenceNumber;
                                                proxydescriptions[descriptionscnt] = proxydescription;
                                                descriptionscnt++;
                                            }
                                            proxysublet.Descriptions = proxydescriptions;
                                        }
                                        #endregion

                                        #region//RepairOrder RequestItem OPCode Sublets PriceType
                                        if (sublet.PriceType != null)
                                        {
                                            _1C.v8241.RepairOrder.PriceType proxypricetype = new _1C.v8241.RepairOrder.PriceType();
                                            proxypricetype.DiscountPrice = sublet.PriceType.DiscountPrice;
                                            proxypricetype.DiscountRate = sublet.PriceType.DiscountRate;
                                            proxypricetype.TotalPrice = sublet.PriceType.TotalPrice;
                                            proxypricetype.TotalPriceIncludeTax = sublet.PriceType.TotalPriceIncludeTax;
                                            proxypricetype.UnitPrice = sublet.PriceType.UnitPrice;
                                            proxysublet.PriceType = proxypricetype;
                                        }
                                        #endregion

                                        proxysublets[subletscnt] = proxysublet;
                                        subletscnt++;
                                    }
                                    proxyopcode.Sublets = proxysublets;
                                }
                                #endregion

                                #region//RepairOrder RequestItem OPCode MISCs
                                if (opcode.MISCs != null && opcode.MISCs.Count > 0)
                                {
                                    int miscscnt = 0;
                                    _1C.v8241.RepairOrder.MISC[] proxymiscs = new _1C.v8241.RepairOrder.MISC[opcode.MISCs.Count];
                                    foreach (WA.Standard.IF.Data.v2.Common.Common.MISC misc in opcode.MISCs)
                                    {
                                        #region//RepairOrder RequestItem OPCode MISCs Header
                                        _1C.v8241.RepairOrder.MISC proxymisc = new _1C.v8241.RepairOrder.MISC();
                                        proxymisc.SequenceNumber = misc.SequenceNumber;
                                        proxymisc.ServiceType = Map.SetDMSCodeFromWACode(CodeType.ServiceType, misc.ServiceType);
                                        #endregion

                                        #region//RepairOrder RequestItem OPCode MISCs Descriptions
                                        if (misc.Descriptions != null && misc.Descriptions.Count > 0)
                                        {
                                            int descriptionscnt = 0;
                                            _1C.v8241.RepairOrder.Description[] proxydescriptions = new _1C.v8241.RepairOrder.Description[misc.Descriptions.Count];
                                            foreach (WA.Standard.IF.Data.v2.Common.Common.Description description in misc.Descriptions)
                                            {
                                                _1C.v8241.RepairOrder.Description proxydescription = new _1C.v8241.RepairOrder.Description();
                                                proxydescription.DescriptionComment = description.DescriptionComment;
                                                proxydescription.SequenceNumber = description.SequenceNumber;
                                                proxydescriptions[descriptionscnt] = proxydescription;
                                                descriptionscnt++;
                                            }
                                            proxymisc.Descriptions = proxydescriptions;
                                        }
                                        #endregion

                                        #region//RepairOrder RequestItem OPCode MISCs PriceType
                                        if (misc.PriceType != null)
                                        {
                                            _1C.v8241.RepairOrder.PriceType proxypricetype = new _1C.v8241.RepairOrder.PriceType();
                                            proxypricetype.DiscountPrice = misc.PriceType.DiscountPrice;
                                            proxypricetype.DiscountRate = misc.PriceType.DiscountRate;
                                            proxypricetype.TotalPrice = misc.PriceType.TotalPrice;
                                            proxypricetype.TotalPriceIncludeTax = misc.PriceType.TotalPriceIncludeTax;
                                            proxypricetype.UnitPrice = misc.PriceType.UnitPrice;
                                            proxymisc.PriceType = proxypricetype;
                                        }
                                        #endregion

                                        proxymiscs[miscscnt] = proxymisc;
                                        miscscnt++;
                                    }
                                    proxyopcode.MISCs = proxymiscs;
                                }
                                #endregion

                                proxyopcodes[opcodescnt] = proxyopcode;
                                opcodescnt++;
                            }
                            proxyrequestitem.OPCodes = proxyopcodes;
                        }
                        #endregion

                        proxyrequestitems[requestitemscnt] = proxyrequestitem;
                        requestitemscnt++;
                    }
                    proxyrepairorderchange.RequestItems = proxyrequestitems;
                }
                #endregion

                proxyrequest.RepairOrderChange = proxyrepairorderchange;
            }
            #endregion

            //Run proxy web method with proxy request
            WA.Standard.IF.Logger.Log.Log.SaveXMLLog(0, request.TransactionHeader.DealerID, "DMS RepairOrderChangeRequest XML", proxyrequest);

            _1C.v8241.RepairOrder.RepairOrderChangeResponse proxyresponse = proxyws.RepairOrderChange(proxyrequest);

            WA.Standard.IF.Logger.Log.Log.SaveXMLLog(0, request.TransactionHeader.DealerID, "DMS RepairOrderChangeResponse XML", proxyresponse);

            //Mapping with Standard Interface Specification Object
            if (proxyresponse != null)
            {
                if (proxyresponse.TransactionHeader != null)
                {
                    #region//TransactionHeader Set
                    WA.Standard.IF.Data.v2.Common.Common.TransactionHeader transactionheader = new WA.Standard.IF.Data.v2.Common.Common.TransactionHeader();
                    transactionheader.CountryID = proxyresponse.TransactionHeader.CountryID;
                    transactionheader.DealerID = proxyresponse.TransactionHeader.DealerID;
                    transactionheader.DistributorID = proxyresponse.TransactionHeader.DistributorID;
                    transactionheader.DMSCode = proxyresponse.TransactionHeader.DMSCode;
                    transactionheader.DMSServerUrl = proxyresponse.TransactionHeader.DMSServerUrl;
                    transactionheader.DMSVersion = proxyresponse.TransactionHeader.DMSVersion;
                    transactionheader.DocumentVersion = proxyresponse.TransactionHeader.DocumentVersion;
                    transactionheader.GroupID = proxyresponse.TransactionHeader.GroupID;
                    transactionheader.IneterfaceID = proxyresponse.TransactionHeader.IneterfaceID;
                    transactionheader.Password = proxyresponse.TransactionHeader.Password;
                    transactionheader.PollingToken = proxyresponse.TransactionHeader.PollingToken;
                    transactionheader.RequestPollingToken = proxyresponse.TransactionHeader.RequestPollingToken;
                    transactionheader.RequestType = proxyresponse.TransactionHeader.RequestType;
                    transactionheader.TransactionId = proxyresponse.TransactionHeader.TransactionId;
                    transactionheader.TransactionDateTimeLocal = proxyresponse.TransactionHeader.TransactionDateTimeLocal;
                    transactionheader.TransactionDateTimeUTC = proxyresponse.TransactionHeader.TransactionDateTimeUTC;
                    transactionheader.TransactionType = proxyresponse.TransactionHeader.TransactionType;
                    transactionheader.Username = proxyresponse.TransactionHeader.Username;
                    transactionheader.VenderTrackingCode = proxyresponse.TransactionHeader.VenderTrackingCode;
                    response.TransactionHeader = transactionheader;
                    #endregion
                }

                //ResultMessage Set
                if (proxyresponse.ResultMessage != null)
                {
                    response.ResultMessage = GetResultMessageData(proxyresponse.ResultMessage.Code, proxyresponse.ResultMessage.Message);
                }

                if (proxyresponse.Errors != null)
                {
                    //Error List Set
                    foreach (_1C.v8241.RepairOrder.Error proxyerror in proxyresponse.Errors)
                    {
                        if (response.Errors != null)
                            response.Errors.Add(GetErrorData(proxyerror.Code, proxyerror.Message));
                        else
                            response.Errors = GetErrorDataList(proxyerror.Code, proxyerror.Message);
                    }
                }
            }
            #endregion

            return response;
        }