UNPKG

@springtree/eva-core

Version:
510 lines (433 loc) 11.6 kB
declare module EVA.CRM.Core { export namespace Errors { export namespace UserFieldRequirements { export const RequirementsNotMet = 'UserFieldRequirements:RequirementsNotMet'; } } export interface CreateCustomerReturn { OrderID: number; TargetOrderID: number; SessionID?: string; Lines?: CustomerReturnLine[]; ReturnWithoutProducts: boolean; } export interface CustomerReturnLine { OrderLineID: number; Quantity: number; Reason: string; } /** * Creates a return order for a set of products for which there is no original order in EVA. */ export interface CreateCustomerReturnWithoutOrder { TargetOrderID: number; SessionID?: string; Lines: ProductReturnLine[]; CustomerID: number; SoldFromOrganizationUnitID: number; ShipToOrganizationUnitID: number; } export interface ProductReturnLine { ProductID: number; /** * A positive number that indicates the quantity of products returned. */ Quantity: number; Reason: string; } export interface GetRefundOptionsForOrder { OrderID: number; } export interface GetRefundOptionsForOrderResponse { IsRefundAvailable: boolean; AmountAvailableToRefund?: number; Reason: string; Error: EVA.Core.ServiceError; } export interface GetReturnOrdersForOrder { OrderID: number; } export interface GetReturnOrdersForOrderResponse { Orders: ReturnOrder[]; Error: EVA.Core.ServiceError; } export interface ReturnOrder { ID: number; IsReturnWithoutProducts: boolean; CreationTime?: string; TotalAmountInTax?: number; /** * Obsolete */ ForeignTotalAmountInTax?: number; CurrencyID: string; IsPaid: boolean; IsCompleted: boolean; IsShipped: boolean; PaidAmount?: number; ForeignPaidAmount?: number; } export interface ReceiveReturnOrder { OrderID: number; Lines: ReturnedLine[]; } export interface ReturnedLine { OrderLineID: number; Remark: string; Quantity: number; } export interface ReceiveReturnOrderResponse { Messages: EVA.Core.ConfirmShipmentResultMessage[]; Error: EVA.Core.ServiceError; } export interface RefundOrder { OrderID: number; Reason?: string; AmountToRefund?: number; } export interface ReturnOrderLines { OrderID: number; Lines: ReturnLineDto[]; TargetOrderID: number; SessionID?: string; ForceCreate: boolean; ReturnToSameStockOrganizationUnit: boolean; } export interface ReturnLineDto { OrderLineID: number; ProductID: number; Quantity: number; ResourceID: number; Remark: string; ReturnStockLabel: number; } export interface SetReturnOrderRefundCorrection { OrderID: number; NewOpenAmount?: number; Reason?: string; } export interface GetUserInteractionByID { ID: number; } export interface GetUserInteractionByIDResponse { ID: number; UserID: number; User: { FirstName: string; LastName: string; EmailAddress: string; }; Text: string; OrderID: number; UserTaskID: number; CreationTime?: string; Error: EVA.Core.ServiceError; } export interface CreateUserInteraction { UserID: number; Text?: string; OrderID: number; UserTaskID: number; } export interface CreateUserInteractionResponse { ID: number; Error: EVA.Core.ServiceError; } export interface UpdateUserInteraction { ID: number; UserID: number; Text?: string; OrderID: number; UserTaskID: number; } export interface DeleteUserInteraction { ID: number; } export interface ListUserInteractions { PageConfig?: EVA.Core.PageConfig; } export interface ListUserInteractionsResponse { Result: EVA.Core.PagedResult<UserInteractionDto>; Error: EVA.Core.ServiceError; } export interface UserInteractionDto { ID: number; UserID: number; User: { FirstName: string; LastName: string; EmailAddress: string; }; CreatedByID: number; CreatedBy: { FirstName: string; LastName: string; EmailAddress: string; }; Text: string; OrderID: number; UserTaskID: number; CreationTime?: string; } export interface CompleteOrderInterventionTask { WorkSet?: OrderInterventionWorkSet; } export interface OrderInterventionWorkSet { UserTaskID: number; OrderInterventionTaskID: number; OrderID: number; Reason: string; Comment: string; } export interface ListOrderInterventionTasks { PageConfig?: EVA.Core.PageConfig; } export interface ListOrderInterventionTasksResponse { Result: EVA.Core.PagedResult<OrderInterventionTaskDto>; Error: EVA.Core.ServiceError; } export interface OrderInterventionTaskDto { ID: number; UserTaskID: number; Reason: string; Comment: string; OrderID: number; CreationTime?: string; AssignedToUser: string; } export interface StartOrderInterventionTask { UserTaskID: number; } export interface StartOrderInterventionTaskResponse { WorkSet: OrderInterventionWorkSet; Error: EVA.Core.ServiceError; } export interface CompleteCustomerInteractionTask { WorkSet?: CustomerInteractionWorkSet; } export interface CustomerInteractionWorkSet { UserTaskID: number; UserTask: EVA.Core.UserTaskDto; TypeID: number; TypeName: string; CustomerID: number; Customer: CustomerDto; Priority: CustomerInteractionTaskPriorities; } export interface CustomerDto { FirstName: string; LastName: string; EmailAddress: string; PhoneNumber: string; } export const enum CustomerInteractionTaskPriorities { None = 0, Low = 1, Normal = 2, High = 3, Immediate = 4 } export interface GetCustomerInteractionTaskByID { ID: number; } export interface GetCustomerInteractionTaskByIDResponse { ID: number; Priority: CustomerInteractionTaskPriorities; Type: CustomerInteractionTaskTypeDto; Customer: CustomerInteractionUserDto; CustomerID: number; UserTask: CustomerInteractionUserTaskDto; UserTaskID: number; Error: EVA.Core.ServiceError; } export interface CustomerInteractionTaskTypeDto { ID: number; Name: string; Description: string; FollowUpTypeID: number; FollowUpTypeName: string; } export interface CustomerInteractionUserDto { FullName: string; PhoneNumber: string; EmailAddress: string; } export interface CustomerInteractionUserTaskDto { StartTime?: string; DeadLine?: string; Description: string; UserID: number; User: CustomerInteractionUserDto; OrganizationUnitID: number; OrganizationUnitName: string; IsActive: boolean; IsCompleted: boolean; } export interface CreateCustomerInteractionTask { Priority: CustomerInteractionTaskPriorities; TypeID: number; CustomerID: number; UserTask?: CustomerInteractionUserTaskDto; } export interface CreateCustomerInteractionTaskResponse { ID: number; Error: EVA.Core.ServiceError; } export interface DeleteCustomerInteractionTask { ID: number; } export interface ListCustomerInteractionTasks { PageConfig?: EVA.Core.PageConfig; } export interface ListCustomerInteractionTasksResponse { Result: EVA.Core.PagedResult<CustomerInteractionTaskDto>; Error: EVA.Core.ServiceError; } export interface CustomerInteractionTaskDto { ID: number; Priority: CustomerInteractionTaskPriorities; Type: CustomerInteractionTaskTypeDto; Customer: CustomerInteractionUserDto; CustomerID: number; UserTask: CustomerInteractionUserTaskDto; UserTaskID: number; } export interface GetCustomerInteractionTaskTypeByID { ID: number; } export interface GetCustomerInteractionTaskTypeByIDResponse { ID: number; Name: string; Description: string; FollowUpTypeID: number; FollowUpTypeName: string; Error: EVA.Core.ServiceError; } export interface CreateCustomerInteractionTaskType { Name?: string; Description?: string; FollowUpTypeID: number; } export interface CreateCustomerInteractionTaskTypeResponse { ID: number; Error: EVA.Core.ServiceError; } export interface UpdateCustomerInteractionTaskType { ID: number; Description?: string; FollowUpTypeID: number; } export interface DeleteCustomerInteractionTaskType { ID: number; } export interface GetCustomerInteractionTaskTypes { } export interface GetCustomerInteractionTaskTypesResponse { CustomerInteractionTaskTypes: CustomerInteractionTaskTypeDto[]; Error: EVA.Core.ServiceError; } export interface DetachFromCustomerInteractionTask { UserTaskID: number; } export interface StartCustomerInteractionTask { UserTaskID: number; } export interface StartCustomerInteractionTaskResponse { WorkSet: CustomerInteractionWorkSet; Error: EVA.Core.ServiceError; } /** * Retrieves all applicable UserFields, along with the requirements, possible options *and* meta data. */ export interface GetUserFields { } export interface GetUserFieldsResponse { Result: UserFieldDto[]; Error: EVA.Core.ServiceError; } export interface UserFieldDto { ID: number; Name: string; Value: any; Options: UserFieldOptionDto[]; Requirements: UserFieldRequirements; } export interface UserFieldOptionDto { ID: number; Name: string; } export interface UserFieldRequirements { AllowBlank: boolean; IsNumeric: boolean; Minimum: number; Maximum: number; } /** * Retrieves all applicable UserFields, along with the requirements, possible options *and* set values as set by the specified user (in case of employee) or the current user (in case of customer). */ export interface GetUserFieldsForUser { UserID: number; } export interface GetUserFieldsForUserResponse { Result: UserFieldDto[]; Error: EVA.Core.ServiceError; } /** * Saves a value for a UserField and specified user (in case of employee) or the current user (in case of customer). For UserFields that have Options set, `Value` is an array of selected option IDs - else, it's any value type object. */ export interface SetUserField { UserFieldID: number; UserID: number; Value?: any; } /** * Creates a new UserField as text field by default, but you can add `Requirements` to change behavior or add options the user should select using the `CreateUserFieldOption` service. */ export interface CreateUserField { Name: string; BackendID?: string; DefaultValue?: string; Requirements?: UserFieldRequirements; } /** * Updates a UserField. */ export interface UpdateUserField { ID: number; Name: string; BackendID?: string; DefaultValue?: string; Requirements?: UserFieldRequirements; } /** * Deletes a UserField. */ export interface DeleteUserField { ID: number; } /** * Creates a new UserFieldOption for a UserField. */ export interface CreateUserFieldOption { UserFieldID: number; Name: string; BackendID?: string; Value?: string; } /** * Updates a UserFieldOption. */ export interface UpdateUserFieldOption { ID: number; UserFieldID: number; Name: string; BackendID?: string; Value?: string; } /** * Deletes a UserFieldOption. */ export interface DeleteUserFieldOption { ID: number; } }