procedure create_batch_line (p_validate in boolean default false ,p_session_date in date ,p_batch_id in number ,p_batch_line_status in varchar2 default ‘U‘ ,p_assignment_id in number default null ,p_assignment_number in varchar2 default null ,p_attribute_category in varchar2 default null ,p_attribute1 in varchar2 default null ,p_attribute2 in varchar2 default null ,p_attribute3 in varchar2 default null ,p_attribute4 in varchar2 default null ,p_attribute5 in varchar2 default null ,p_attribute6 in varchar2 default null ,p_attribute7 in varchar2 default null ,p_attribute8 in varchar2 default null ,p_attribute9 in varchar2 default null ,p_attribute10 in varchar2 default null ,p_attribute11 in varchar2 default null ,p_attribute12 in varchar2 default null ,p_attribute13 in varchar2 default null ,p_attribute14 in varchar2 default null ,p_attribute15 in varchar2 default null ,p_attribute16 in varchar2 default null ,p_attribute17 in varchar2 default null ,p_attribute18 in varchar2 default null ,p_attribute19 in varchar2 default null ,p_attribute20 in varchar2 default null ,p_entry_information_category in varchar2 default null ,p_entry_information1 in varchar2 default null ,p_entry_information2 in varchar2 default null ,p_entry_information3 in varchar2 default null ,p_entry_information4 in varchar2 default null ,p_entry_information5 in varchar2 default null ,p_entry_information6 in varchar2 default null ,p_entry_information7 in varchar2 default null ,p_entry_information8 in varchar2 default null ,p_entry_information9 in varchar2 default null ,p_entry_information10 in varchar2 default null ,p_entry_information11 in varchar2 default null ,p_entry_information12 in varchar2 default null ,p_entry_information13 in varchar2 default null ,p_entry_information14 in varchar2 default null ,p_entry_information15 in varchar2 default null ,p_entry_information16 in varchar2 default null ,p_entry_information17 in varchar2 default null ,p_entry_information18 in varchar2 default null ,p_entry_information19 in varchar2 default null ,p_entry_information20 in varchar2 default null ,p_entry_information21 in varchar2 default null ,p_entry_information22 in varchar2 default null ,p_entry_information23 in varchar2 default null ,p_entry_information24 in varchar2 default null ,p_entry_information25 in varchar2 default null ,p_entry_information26 in varchar2 default null ,p_entry_information27 in varchar2 default null ,p_entry_information28 in varchar2 default null ,p_entry_information29 in varchar2 default null ,p_entry_information30 in varchar2 default null ,p_date_earned in date default null ,p_personal_payment_method_id in number default null ,p_subpriority in number default null ,p_batch_sequence in number default null ,p_concatenated_segments in varchar2 default null ,p_cost_allocation_keyflex_id in number default null ,p_effective_date in date default null ,p_effective_start_date in date default null ,p_effective_end_date in date default null ,p_element_name in varchar2 default null ,p_element_type_id in number default null ,p_entry_type in varchar2 default null ,p_reason in varchar2 default null ,p_segment1 in varchar2 default null ,p_segment2 in varchar2 default null ,p_segment3 in varchar2 default null ,p_segment4 in varchar2 default null ,p_segment5 in varchar2 default null ,p_segment6 in varchar2 default null ,p_segment7 in varchar2 default null ,p_segment8 in varchar2 default null ,p_segment9 in varchar2 default null ,p_segment10 in varchar2 default null ,p_segment11 in varchar2 default null ,p_segment12 in varchar2 default null ,p_segment13 in varchar2 default null ,p_segment14 in varchar2 default null ,p_segment15 in varchar2 default null ,p_segment16 in varchar2 default null ,p_segment17 in varchar2 default null ,p_segment18 in varchar2 default null ,p_segment19 in varchar2 default null ,p_segment20 in varchar2 default null ,p_segment21 in varchar2 default null ,p_segment22 in varchar2 default null ,p_segment23 in varchar2 default null ,p_segment24 in varchar2 default null ,p_segment25 in varchar2 default null ,p_segment26 in varchar2 default null ,p_segment27 in varchar2 default null ,p_segment28 in varchar2 default null ,p_segment29 in varchar2 default null ,p_segment30 in varchar2 default null ,p_value_1 in varchar2 default null ,p_value_2 in varchar2 default null ,p_value_3 in varchar2 default null ,p_value_4 in varchar2 default null ,p_value_5 in varchar2 default null ,p_value_6 in varchar2 default null ,p_value_7 in varchar2 default null ,p_value_8 in varchar2 default null ,p_value_9 in varchar2 default null ,p_value_10 in varchar2 default null ,p_value_11 in varchar2 default null ,p_value_12 in varchar2 default null ,p_value_13 in varchar2 default null ,p_value_14 in varchar2 default null ,p_value_15 in varchar2 default null ,p_canonical_date_format in varchar2 default ‘Y‘ ,p_iv_all_internal_format in varchar2 default ‘N‘ ,p_batch_line_id out nocopy number ,p_object_version_number out nocopy number ) is -- -- Declare cursors and local variables -- l_proc varchar2(72) := g_package||‘create_batch_line‘; l_batch_line_id pay_batch_lines.batch_line_id%TYPE; l_object_version_number pay_batch_lines.object_version_number%TYPE; l_session_date date; l_effective_date date; l_effective_start_date date; l_effective_end_date date; l_date_earned date; -- l_value_1 pay_batch_lines.value_1%TYPE := p_value_1; l_value_2 pay_batch_lines.value_2%TYPE := p_value_2; l_value_3 pay_batch_lines.value_3%TYPE := p_value_3; l_value_4 pay_batch_lines.value_4%TYPE := p_value_4; l_value_5 pay_batch_lines.value_5%TYPE := p_value_5; l_value_6 pay_batch_lines.value_6%TYPE := p_value_6; l_value_7 pay_batch_lines.value_7%TYPE := p_value_7; l_value_8 pay_batch_lines.value_8%TYPE := p_value_8; l_value_9 pay_batch_lines.value_9%TYPE := p_value_9; l_value_10 pay_batch_lines.value_10%TYPE := p_value_10; l_value_11 pay_batch_lines.value_11%TYPE := p_value_11; l_value_12 pay_batch_lines.value_12%TYPE := p_value_12; l_value_13 pay_batch_lines.value_13%TYPE := p_value_13; l_value_14 pay_batch_lines.value_14%TYPE := p_value_14; l_value_15 pay_batch_lines.value_15%TYPE := p_value_15; -- l_bee_iv_upgrade varchar2(1); -- begin hr_utility.set_location(‘Entering:‘|| l_proc, 10); -- -- Issue a savepoint -- savepoint create_batch_line; -- -- Truncate the time portion from all IN date parameters -- l_session_date := trunc(p_session_date); --l_effective_date := trunc(p_effective_date); /*If effective date is not passed, then we are setting the session date passed as effective date.*/ if (p_effective_date is null) then l_effective_date := trunc(p_session_date); else l_effective_date := trunc(p_effective_date); end if; l_effective_start_date := trunc(p_effective_start_date); l_effective_end_date := trunc(p_effective_end_date); l_date_earned := trunc(p_date_earned); -- l_bee_iv_upgrade := get_upgrade_status(p_batch_id,null,‘BEE_IV_UPG‘); -- -- Check whether the upgrade process is in progress. -- if l_bee_iv_upgrade = ‘E‘ then hr_utility.set_message(800, ‘HR_449106_BEE_UPGRADING‘); hr_utility.raise_error; end if; -- if p_iv_all_internal_format = ‘Y‘ and l_bee_iv_upgrade = ‘N‘ then fnd_message.set_name(‘PAY‘, ‘HR_7462_PLK_INVLD_VALUE‘); fnd_message.set_token(‘COLUMN_NAME‘,‘P_IV_ALL_INTERNAL_FORMAT‘); fnd_message.raise_error; end if; -- if p_iv_all_internal_format = ‘Y‘ and p_canonical_date_format = ‘N‘ then fnd_message.set_name(‘PAY‘, ‘HR_7462_PLK_INVLD_VALUE‘); fnd_message.set_token(‘COLUMN_NAME‘,‘P_CANONICAL_DATE_FORMAT‘); fnd_message.raise_error; end if; -- -- if p_iv_all_internal_format <> ‘Y‘ then convert_date_to_canonical (p_iv1 => l_value_1 ,p_iv2 => l_value_2 ,p_iv3 => l_value_3 ,p_iv4 => l_value_4 ,p_iv5 => l_value_5 ,p_iv6 => l_value_6 ,p_iv7 => l_value_7 ,p_iv8 => l_value_8 ,p_iv9 => l_value_9 ,p_iv10 => l_value_10 ,p_iv11 => l_value_11 ,p_iv12 => l_value_12 ,p_iv13 => l_value_13 ,p_iv14 => l_value_14 ,p_iv15 => l_value_15 ,p_element_type_id => p_element_type_id ,p_element_name => p_element_name ,p_batch_id => p_batch_id ,p_effective_date => l_effective_date ,p_date_cfmt => p_canonical_date_format ,p_int_fmt => l_bee_iv_upgrade ); end if; -- -- Call Before Process User Hook -- begin pay_batch_element_entry_bk2.create_batch_line_b (p_session_date => l_session_date ,p_batch_id => p_batch_id ,p_batch_line_status => p_batch_line_status ,p_assignment_id => p_assignment_id ,p_assignment_number => p_assignment_number ,p_attribute_category => p_attribute_category ,p_attribute1 => p_attribute1 ,p_attribute2 => p_attribute2 ,p_attribute3 => p_attribute3 ,p_attribute4 => p_attribute4 ,p_attribute5 => p_attribute5 ,p_attribute6 => p_attribute6 ,p_attribute7 => p_attribute7 ,p_attribute8 => p_attribute8 ,p_attribute9 => p_attribute9 ,p_attribute10 => p_attribute10 ,p_attribute11 => p_attribute11 ,p_attribute12 => p_attribute12 ,p_attribute13 => p_attribute13 ,p_attribute14 => p_attribute14 ,p_attribute15 => p_attribute15 ,p_attribute16 => p_attribute16 ,p_attribute17 => p_attribute17 ,p_attribute18 => p_attribute18 ,p_attribute19 => p_attribute19 ,p_attribute20 => p_attribute20 ,p_entry_information_category => p_entry_information_category ,p_entry_information1 => p_entry_information1 ,p_entry_information2 => p_entry_information2 ,p_entry_information3 => p_entry_information3 ,p_entry_information4 => p_entry_information4 ,p_entry_information5 => p_entry_information5 ,p_entry_information6 => p_entry_information6 ,p_entry_information7 => p_entry_information7 ,p_entry_information8 => p_entry_information8 ,p_entry_information9 => p_entry_information9 ,p_entry_information10 => p_entry_information10 ,p_entry_information11 => p_entry_information11 ,p_entry_information12 => p_entry_information12 ,p_entry_information13 => p_entry_information13 ,p_entry_information14 => p_entry_information14 ,p_entry_information15 => p_entry_information15 ,p_entry_information16 => p_entry_information16 ,p_entry_information17 => p_entry_information17 ,p_entry_information18 => p_entry_information18 ,p_entry_information19 => p_entry_information19 ,p_entry_information20 => p_entry_information20 ,p_entry_information21 => p_entry_information21 ,p_entry_information22 => p_entry_information22 ,p_entry_information23 => p_entry_information23 ,p_entry_information24 => p_entry_information24 ,p_entry_information25 => p_entry_information25 ,p_entry_information26 => p_entry_information26 ,p_entry_information27 => p_entry_information27 ,p_entry_information28 => p_entry_information28 ,p_entry_information29 => p_entry_information29 ,p_entry_information30 => p_entry_information30 ,p_date_earned => l_date_earned ,p_personal_payment_method_id => p_personal_payment_method_id ,p_subpriority => p_subpriority ,p_batch_sequence => p_batch_sequence ,p_concatenated_segments => p_concatenated_segments ,p_cost_allocation_keyflex_id => p_cost_allocation_keyflex_id ,p_effective_date => l_effective_date ,p_effective_start_date => l_effective_start_date ,p_effective_end_date => l_effective_end_date ,p_element_name => p_element_name ,p_element_type_id => p_element_type_id ,p_entry_type => p_entry_type ,p_reason => p_reason ,p_segment1 => p_segment1 ,p_segment2 => p_segment2 ,p_segment3 => p_segment3 ,p_segment4 => p_segment4 ,p_segment5 => p_segment5 ,p_segment6 => p_segment6 ,p_segment7 => p_segment7 ,p_segment8 => p_segment8 ,p_segment9 => p_segment9 ,p_segment10 => p_segment10 ,p_segment11 => p_segment11 ,p_segment12 => p_segment12 ,p_segment13 => p_segment13 ,p_segment14 => p_segment14 ,p_segment15 => p_segment15 ,p_segment16 => p_segment16 ,p_segment17 => p_segment17 ,p_segment18 => p_segment18 ,p_segment19 => p_segment19 ,p_segment20 => p_segment20 ,p_segment21 => p_segment21 ,p_segment22 => p_segment22 ,p_segment23 => p_segment23 ,p_segment24 => p_segment24 ,p_segment25 => p_segment25 ,p_segment26 => p_segment26 ,p_segment27 => p_segment27 ,p_segment28 => p_segment28 ,p_segment29 => p_segment29 ,p_segment30 => p_segment30 ,p_value_1 => l_value_1 ,p_value_2 => l_value_2 ,p_value_3 => l_value_3 ,p_value_4 => l_value_4 ,p_value_5 => l_value_5 ,p_value_6 => l_value_6 ,p_value_7 => l_value_7 ,p_value_8 => l_value_8 ,p_value_9 => l_value_9 ,p_value_10 => l_value_10 ,p_value_11 => l_value_11 ,p_value_12 => l_value_12 ,p_value_13 => l_value_13 ,p_value_14 => l_value_14 ,p_value_15 => l_value_15 ); exception when hr_api.cannot_find_prog_unit then hr_api.cannot_find_prog_unit_error (p_module_name => ‘create_batch_line_b‘ ,p_hook_type => ‘BP‘ ); end; -- -- Validation in addition to Row Handlers -- -- -- Process Logic -- pay_btl_ins.ins (p_session_date => l_session_date ,p_batch_id => p_batch_id ,p_batch_line_status => p_batch_line_status ,p_cost_allocation_keyflex_id => p_cost_allocation_keyflex_id ,p_element_type_id => p_element_type_id ,p_assignment_id => p_assignment_id ,p_assignment_number => p_assignment_number ,p_batch_sequence => p_batch_sequence ,p_concatenated_segments => p_concatenated_segments ,p_effective_date => l_effective_date ,p_element_name => p_element_name ,p_entry_type => p_entry_type ,p_reason => p_reason ,p_segment1 => p_segment1 ,p_segment2 => p_segment2 ,p_segment3 => p_segment3 ,p_segment4 => p_segment4 ,p_segment5 => p_segment5 ,p_segment6 => p_segment6 ,p_segment7 => p_segment7 ,p_segment8 => p_segment8 ,p_segment9 => p_segment9 ,p_segment10 => p_segment10 ,p_segment11 => p_segment11 ,p_segment12 => p_segment12 ,p_segment13 => p_segment13 ,p_segment14 => p_segment14 ,p_segment15 => p_segment15 ,p_segment16 => p_segment16 ,p_segment17 => p_segment17 ,p_segment18 => p_segment18 ,p_segment19 => p_segment19 ,p_segment20 => p_segment20 ,p_segment21 => p_segment21 ,p_segment22 => p_segment22 ,p_segment23 => p_segment23 ,p_segment24 => p_segment24 ,p_segment25 => p_segment25 ,p_segment26 => p_segment26 ,p_segment27 => p_segment27 ,p_segment28 => p_segment28 ,p_segment29 => p_segment29 ,p_segment30 => p_segment30 ,p_value_1 => l_value_1 ,p_value_2 => l_value_2 ,p_value_3 => l_value_3 ,p_value_4 => l_value_4 ,p_value_5 => l_value_5 ,p_value_6 => l_value_6 ,p_value_7 => l_value_7 ,p_value_8 => l_value_8 ,p_value_9 => l_value_9 ,p_value_10 => l_value_10 ,p_value_11 => l_value_11 ,p_value_12 => l_value_12 ,p_value_13 => l_value_13 ,p_value_14 => l_value_14 ,p_value_15 => l_value_15 ,p_attribute_category => p_attribute_category ,p_attribute1 => p_attribute1 ,p_attribute2 => p_attribute2 ,p_attribute3 => p_attribute3 ,p_attribute4 => p_attribute4 ,p_attribute5 => p_attribute5 ,p_attribute6 => p_attribute6 ,p_attribute7 => p_attribute7 ,p_attribute8 => p_attribute8 ,p_attribute9 => p_attribute9 ,p_attribute10 => p_attribute10 ,p_attribute11 => p_attribute11 ,p_attribute12 => p_attribute12 ,p_attribute13 => p_attribute13 ,p_attribute14 => p_attribute14 ,p_attribute15 => p_attribute15 ,p_attribute16 => p_attribute16 ,p_attribute17 => p_attribute17 ,p_attribute18 => p_attribute18 ,p_attribute19 => p_attribute19 ,p_attribute20 => p_attribute20 ,p_entry_information_category => p_entry_information_category ,p_entry_information1 => p_entry_information1 ,p_entry_information2 => p_entry_information2 ,p_entry_information3 => p_entry_information3 ,p_entry_information4 => p_entry_information4 ,p_entry_information5 => p_entry_information5 ,p_entry_information6 => p_entry_information6 ,p_entry_information7 => p_entry_information7 ,p_entry_information8 => p_entry_information8 ,p_entry_information9 => p_entry_information9 ,p_entry_information10 => p_entry_information10 ,p_entry_information11 => p_entry_information11 ,p_entry_information12 => p_entry_information12 ,p_entry_information13 => p_entry_information13 ,p_entry_information14 => p_entry_information14 ,p_entry_information15 => p_entry_information15 ,p_entry_information16 => p_entry_information16 ,p_entry_information17 => p_entry_information17 ,p_entry_information18 => p_entry_information18 ,p_entry_information19 => p_entry_information19 ,p_entry_information20 => p_entry_information20 ,p_entry_information21 => p_entry_information21 ,p_entry_information22 => p_entry_information22 ,p_entry_information23 => p_entry_information23 ,p_entry_information24 => p_entry_information24 ,p_entry_information25 => p_entry_information25 ,p_entry_information26 => p_entry_information26 ,p_entry_information27 => p_entry_information27 ,p_entry_information28 => p_entry_information28 ,p_entry_information29 => p_entry_information29 ,p_entry_information30 => p_entry_information30 ,p_date_earned => l_date_earned ,p_personal_payment_method_id => p_personal_payment_method_id ,p_subpriority => p_subpriority ,p_effective_start_date => l_effective_start_date ,p_effective_end_date => l_effective_end_date ,p_batch_line_id => l_batch_line_id ,p_object_version_number => l_object_version_number); -- -- Call After Process User Hook -- begin pay_batch_element_entry_bk2.create_batch_line_a (p_session_date => l_session_date ,p_batch_id => p_batch_id ,p_batch_line_status => p_batch_line_status ,p_assignment_id => p_assignment_id ,p_assignment_number => p_assignment_number ,p_attribute_category => p_attribute_category ,p_attribute1 => p_attribute1 ,p_attribute2 => p_attribute2 ,p_attribute3 => p_attribute3 ,p_attribute4 => p_attribute4 ,p_attribute5 => p_attribute5 ,p_attribute6 => p_attribute6 ,p_attribute7 => p_attribute7 ,p_attribute8 => p_attribute8 ,p_attribute9 => p_attribute9 ,p_attribute10 => p_attribute10 ,p_attribute11 => p_attribute11 ,p_attribute12 => p_attribute12 ,p_attribute13 => p_attribute13 ,p_attribute14 => p_attribute14 ,p_attribute15 => p_attribute15 ,p_attribute16 => p_attribute16 ,p_attribute17 => p_attribute17 ,p_attribute18 => p_attribute18 ,p_attribute19 => p_attribute19 ,p_attribute20 => p_attribute20 ,p_entry_information_category => p_entry_information_category ,p_entry_information1 => p_entry_information1 ,p_entry_information2 => p_entry_information2 ,p_entry_information3 => p_entry_information3 ,p_entry_information4 => p_entry_information4 ,p_entry_information5 => p_entry_information5 ,p_entry_information6 => p_entry_information6 ,p_entry_information7 => p_entry_information7 ,p_entry_information8 => p_entry_information8 ,p_entry_information9 => p_entry_information9 ,p_entry_information10 => p_entry_information10 ,p_entry_information11 => p_entry_information11 ,p_entry_information12 => p_entry_information12 ,p_entry_information13 => p_entry_information13 ,p_entry_information14 => p_entry_information14 ,p_entry_information15 => p_entry_information15 ,p_entry_information16 => p_entry_information16 ,p_entry_information17 => p_entry_information17 ,p_entry_information18 => p_entry_information18 ,p_entry_information19 => p_entry_information19 ,p_entry_information20 => p_entry_information20 ,p_entry_information21 => p_entry_information21 ,p_entry_information22 => p_entry_information22 ,p_entry_information23 => p_entry_information23 ,p_entry_information24 => p_entry_information24 ,p_entry_information25 => p_entry_information25 ,p_entry_information26 => p_entry_information26 ,p_entry_information27 => p_entry_information27 ,p_entry_information28 => p_entry_information28 ,p_entry_information29 => p_entry_information29 ,p_entry_information30 => p_entry_information30 ,p_date_earned => l_date_earned ,p_personal_payment_method_id => p_personal_payment_method_id ,p_subpriority => p_subpriority ,p_batch_sequence => p_batch_sequence ,p_concatenated_segments => p_concatenated_segments ,p_cost_allocation_keyflex_id => p_cost_allocation_keyflex_id ,p_effective_date => l_effective_date ,p_effective_start_date => l_effective_start_date ,p_effective_end_date => l_effective_end_date ,p_element_name => p_element_name ,p_element_type_id => p_element_type_id ,p_entry_type => p_entry_type ,p_reason => p_reason ,p_segment1 => p_segment1 ,p_segment2 => p_segment2 ,p_segment3 => p_segment3 ,p_segment4 => p_segment4 ,p_segment5 => p_segment5 ,p_segment6 => p_segment6 ,p_segment7 => p_segment7 ,p_segment8 => p_segment8 ,p_segment9 => p_segment9 ,p_segment10 => p_segment10 ,p_segment11 => p_segment11 ,p_segment12 => p_segment12 ,p_segment13 => p_segment13 ,p_segment14 => p_segment14 ,p_segment15 => p_segment15 ,p_segment16 => p_segment16 ,p_segment17 => p_segment17 ,p_segment18 => p_segment18 ,p_segment19 => p_segment19 ,p_segment20 => p_segment20 ,p_segment21 => p_segment21 ,p_segment22 => p_segment22 ,p_segment23 => p_segment23 ,p_segment24 => p_segment24 ,p_segment25 => p_segment25 ,p_segment26 => p_segment26 ,p_segment27 => p_segment27 ,p_segment28 => p_segment28 ,p_segment29 => p_segment29 ,p_segment30 => p_segment30 ,p_value_1 => l_value_1 ,p_value_2 => l_value_2 ,p_value_3 => l_value_3 ,p_value_4 => l_value_4 ,p_value_5 => l_value_5 ,p_value_6 => l_value_6 ,p_value_7 => l_value_7 ,p_value_8 => l_value_8 ,p_value_9 => l_value_9 ,p_value_10 => l_value_10 ,p_value_11 => l_value_11 ,p_value_12 => l_value_12 ,p_value_13 => l_value_13 ,p_value_14 => l_value_14 ,p_value_15 => l_value_15 ,p_batch_line_id => l_batch_line_id ,p_object_version_number => l_object_version_number ); exception when hr_api.cannot_find_prog_unit then hr_api.cannot_find_prog_unit_error (p_module_name => ‘create_batch_line_a‘ ,p_hook_type => ‘AP‘ ); end; -- -- When in validation only mode raise the Validate_Enabled exception -- if p_validate then raise hr_api.validate_enabled; end if; -- -- Set all output arguments -- p_batch_line_id := l_batch_line_id; p_object_version_number := l_object_version_number; -- hr_utility.set_location(‘ Leaving:‘||l_proc, 70); exception when hr_api.validate_enabled then -- -- As the Validate_Enabled exception has been raised -- we must rollback to the savepoint -- rollback to create_batch_line; -- -- Only set output warning arguments -- (Any key or derived arguments must be set to null -- when validation only mode is being used.) -- p_batch_line_id := null; p_object_version_number := null; hr_utility.set_location(‘ Leaving:‘||l_proc, 80); when others then -- -- A validation or unexpected error has occured -- rollback to create_batch_line; p_batch_line_id := null; p_object_version_number := null; hr_utility.set_location(‘ Leaving:‘||l_proc, 90); raise; end create_batch_line; --
时间: 2024-10-09 14:14:16