001// --------------------------------------------------------------------------------
002// Copyright 2002-2024 Echo Three, LLC
003//
004// Licensed under the Apache License, Version 2.0 (the "License");
005// you may not use this file except in compliance with the License.
006// You may obtain a copy of the License at
007//
008//     http://www.apache.org/licenses/LICENSE-2.0
009//
010// Unless required by applicable law or agreed to in writing, software
011// distributed under the License is distributed on an "AS IS" BASIS,
012// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013// See the License for the specific language governing permissions and
014// limitations under the License.
015// --------------------------------------------------------------------------------
016
017package com.echothree.model.control.customer.common.transfer;
018
019import com.echothree.model.control.accounting.common.transfer.CurrencyTransfer;
020import com.echothree.model.control.accounting.common.transfer.GlAccountTransfer;
021import com.echothree.model.control.cancellationpolicy.common.transfer.CancellationPolicyTransfer;
022import com.echothree.model.control.offer.common.transfer.OfferUseTransfer;
023import com.echothree.model.control.party.common.transfer.DateTimeFormatTransfer;
024import com.echothree.model.control.party.common.transfer.LanguageTransfer;
025import com.echothree.model.control.party.common.transfer.PartyGroupTransfer;
026import com.echothree.model.control.party.common.transfer.PartyTransfer;
027import com.echothree.model.control.party.common.transfer.PartyTypeTransfer;
028import com.echothree.model.control.party.common.transfer.PersonTransfer;
029import com.echothree.model.control.party.common.transfer.ProfileTransfer;
030import com.echothree.model.control.party.common.transfer.TimeZoneTransfer;
031import com.echothree.model.control.returnpolicy.common.transfer.ReturnPolicyTransfer;
032import com.echothree.model.control.workflow.common.transfer.WorkflowEntityStatusTransfer;
033
034public class CustomerTransfer
035        extends PartyTransfer {
036    
037    private String customerName;
038    private CustomerTypeTransfer customerType;
039    private OfferUseTransfer initialOfferUse;
040    private GlAccountTransfer arGlAccount;
041    private Boolean holdUntilComplete;
042    private Boolean allowBackorders;
043    private Boolean allowSubstitutions;
044    private Boolean allowCombiningShipments;
045    private Boolean requireReference;
046    private Boolean allowReferenceDuplicates;
047    private String referenceValidationPattern;
048    private WorkflowEntityStatusTransfer customerStatus;
049    private WorkflowEntityStatusTransfer customerCreditStatus;
050    
051    /** Creates a new instance of CustomerTransfer */
052    public CustomerTransfer(String partyName, PartyTypeTransfer partyType, LanguageTransfer preferredLanguage, CurrencyTransfer preferredCurrency,
053            TimeZoneTransfer preferredTimeZone, DateTimeFormatTransfer preferredDateTimeFormat, PersonTransfer person, PartyGroupTransfer partyGroup,
054            ProfileTransfer profileTransfer, String customerName, CustomerTypeTransfer customerType, OfferUseTransfer initialOfferUse,
055            CancellationPolicyTransfer cancellationPolicy, ReturnPolicyTransfer returnPolicy, GlAccountTransfer arGlAccount, Boolean holdUntilComplete,
056            Boolean allowBackorders, Boolean allowSubstitutions, Boolean allowCombiningShipments, Boolean requireReference, Boolean allowReferenceDuplicates,
057            String referenceValidationPattern, WorkflowEntityStatusTransfer customerStatus, WorkflowEntityStatusTransfer customerCreditStatus) {
058        super(partyName, partyType, preferredLanguage, preferredCurrency, preferredTimeZone, preferredDateTimeFormat, person, partyGroup, profileTransfer);
059        
060        this.customerName = customerName;
061        this.customerType = customerType;
062        this.initialOfferUse = initialOfferUse;
063        setCancellationPolicy(cancellationPolicy);
064        setReturnPolicy(returnPolicy);
065        this.arGlAccount = arGlAccount;
066        this.holdUntilComplete = holdUntilComplete;
067        this.allowBackorders = allowBackorders;
068        this.allowSubstitutions = allowSubstitutions;
069        this.allowCombiningShipments = allowCombiningShipments;
070        this.requireReference = requireReference;
071        this.allowReferenceDuplicates = allowReferenceDuplicates;
072        this.referenceValidationPattern = referenceValidationPattern;
073        this.customerStatus = customerStatus;
074        this.customerCreditStatus = customerCreditStatus;
075    }
076
077    /**
078     * Returns the customerName.
079     * @return the customerName
080     */
081    public String getCustomerName() {
082        return customerName;
083    }
084
085    /**
086     * Sets the customerName.
087     * @param customerName the customerName to set
088     */
089    public void setCustomerName(String customerName) {
090        this.customerName = customerName;
091    }
092
093    /**
094     * Returns the customerType.
095     * @return the customerType
096     */
097    public CustomerTypeTransfer getCustomerType() {
098        return customerType;
099    }
100
101    /**
102     * Sets the customerType.
103     * @param customerType the customerType to set
104     */
105    public void setCustomerType(CustomerTypeTransfer customerType) {
106        this.customerType = customerType;
107    }
108
109    /**
110     * Returns the initialOfferUse.
111     * @return the initialOfferUse
112     */
113    public OfferUseTransfer getInitialOfferUse() {
114        return initialOfferUse;
115    }
116
117    /**
118     * Sets the initialOfferUse.
119     * @param initialOfferUse the initialOfferUse to set
120     */
121    public void setInitialOfferUse(OfferUseTransfer initialOfferUse) {
122        this.initialOfferUse = initialOfferUse;
123    }
124
125    /**
126     * Returns the arGlAccount.
127     * @return the arGlAccount
128     */
129    public GlAccountTransfer getArGlAccount() {
130        return arGlAccount;
131    }
132
133    /**
134     * Sets the arGlAccount.
135     * @param arGlAccount the arGlAccount to set
136     */
137    public void setArGlAccount(GlAccountTransfer arGlAccount) {
138        this.arGlAccount = arGlAccount;
139    }
140
141    /**
142     * Returns the holdUntilComplete.
143     * @return the holdUntilComplete
144     */
145    public Boolean getHoldUntilComplete() {
146        return holdUntilComplete;
147    }
148
149    /**
150     * Sets the holdUntilComplete.
151     * @param holdUntilComplete the holdUntilComplete to set
152     */
153    public void setHoldUntilComplete(Boolean holdUntilComplete) {
154        this.holdUntilComplete = holdUntilComplete;
155    }
156
157    /**
158     * Returns the allowBackorders.
159     * @return the allowBackorders
160     */
161    public Boolean getAllowBackorders() {
162        return allowBackorders;
163    }
164
165    /**
166     * Sets the allowBackorders.
167     * @param allowBackorders the allowBackorders to set
168     */
169    public void setAllowBackorders(Boolean allowBackorders) {
170        this.allowBackorders = allowBackorders;
171    }
172
173    /**
174     * Returns the allowSubstitutions.
175     * @return the allowSubstitutions
176     */
177    public Boolean getAllowSubstitutions() {
178        return allowSubstitutions;
179    }
180
181    /**
182     * Sets the allowSubstitutions.
183     * @param allowSubstitutions the allowSubstitutions to set
184     */
185    public void setAllowSubstitutions(Boolean allowSubstitutions) {
186        this.allowSubstitutions = allowSubstitutions;
187    }
188
189    /**
190     * Returns the allowCombiningShipments.
191     * @return the allowCombiningShipments
192     */
193    public Boolean getAllowCombiningShipments() {
194        return allowCombiningShipments;
195    }
196
197    /**
198     * Sets the allowCombiningShipments.
199     * @param allowCombiningShipments the allowCombiningShipments to set
200     */
201    public void setAllowCombiningShipments(Boolean allowCombiningShipments) {
202        this.allowCombiningShipments = allowCombiningShipments;
203    }
204
205    /**
206     * Returns the requireReference.
207     * @return the requireReference
208     */
209    public Boolean getRequireReference() {
210        return requireReference;
211    }
212
213    /**
214     * Sets the requireReference.
215     * @param requireReference the requireReference to set
216     */
217    public void setRequireReference(Boolean requireReference) {
218        this.requireReference = requireReference;
219    }
220
221    /**
222     * Returns the allowReferenceDuplicates.
223     * @return the allowReferenceDuplicates
224     */
225    public Boolean getAllowReferenceDuplicates() {
226        return allowReferenceDuplicates;
227    }
228
229    /**
230     * Sets the allowReferenceDuplicates.
231     * @param allowReferenceDuplicates the allowReferenceDuplicates to set
232     */
233    public void setAllowReferenceDuplicates(Boolean allowReferenceDuplicates) {
234        this.allowReferenceDuplicates = allowReferenceDuplicates;
235    }
236
237    /**
238     * Returns the referenceValidationPattern.
239     * @return the referenceValidationPattern
240     */
241    public String getReferenceValidationPattern() {
242        return referenceValidationPattern;
243    }
244
245    /**
246     * Sets the referenceValidationPattern.
247     * @param referenceValidationPattern the referenceValidationPattern to set
248     */
249    public void setReferenceValidationPattern(String referenceValidationPattern) {
250        this.referenceValidationPattern = referenceValidationPattern;
251    }
252
253    /**
254     * Returns the customerStatus.
255     * @return the customerStatus
256     */
257    public WorkflowEntityStatusTransfer getCustomerStatus() {
258        return customerStatus;
259    }
260
261    /**
262     * Sets the customerStatus.
263     * @param customerStatus the customerStatus to set
264     */
265    public void setCustomerStatus(WorkflowEntityStatusTransfer customerStatus) {
266        this.customerStatus = customerStatus;
267    }
268
269    /**
270     * Returns the customerCreditStatus.
271     * @return the customerCreditStatus
272     */
273    public WorkflowEntityStatusTransfer getCustomerCreditStatus() {
274        return customerCreditStatus;
275    }
276
277    /**
278     * Sets the customerCreditStatus.
279     * @param customerCreditStatus the customerCreditStatus to set
280     */
281    public void setCustomerCreditStatus(WorkflowEntityStatusTransfer customerCreditStatus) {
282        this.customerCreditStatus = customerCreditStatus;
283    }
284
285}