diff --git a/app/models/ticket/number/date.rb b/app/models/ticket/number/date.rb index ce92976f9..9db958c4b 100644 --- a/app/models/ticket/number/date.rb +++ b/app/models/ticket/number/date.rb @@ -82,12 +82,12 @@ module Ticket::Number::Date ticket = nil # probe format - string.scan(/#{Regexp.quote(ticket_hook)}#{Regexp.quote(ticket_hook_divider)}(#{system_id}\d{2,48})/i) { + string.scan(/#{Regexp.quote(ticket_hook)}#{Regexp.quote(ticket_hook_divider)}(\d{4,10}#{system_id}\d{2,40})/i) { ticket = Ticket.find_by(number: $1) break if ticket } if !ticket - string.scan(/#{Regexp.quote(ticket_hook)}\s{0,2}(#{system_id}\d{2,48})/i) { + string.scan(/#{Regexp.quote(ticket_hook)}\s{0,2}(\d{4,10}#{system_id}\d{2,40})/i) { ticket = Ticket.find_by(number: $1) break if ticket } diff --git a/test/unit/ticket_test.rb b/test/unit/ticket_test.rb index 9a6709e72..ec07825d3 100644 --- a/test/unit/ticket_test.rb +++ b/test/unit/ticket_test.rb @@ -307,6 +307,41 @@ class TicketTest < ActiveSupport::TestCase end + test 'ticket followup number check' do + + origin_backend = Setting.get('ticket_number') + Setting.set('ticket_number', 'Ticket::Number::Increment') + + ticket1 = Ticket.create( + title: 'subject test 1234-1', + group: Group.lookup(name: 'Users'), + customer_id: 2, + state: Ticket::State.lookup(name: 'new'), + priority: Ticket::Priority.lookup(name: '2 normal'), + updated_by_id: 1, + created_by_id: 1, + ) + assert_equal('subject test 1234-1', ticket1.title) + assert_equal("ABC subject test 1 [Ticket##{ticket1.number}]", ticket1.subject_build('ABC subject test 1')) + assert_equal(ticket1.id, Ticket::Number.check("Re: Help [Ticket##{ticket1.number}]").id) + + Setting.set('ticket_number', 'Ticket::Number::Date') + ticket1 = Ticket.create( + title: 'subject test 1234-2', + group: Group.lookup(name: 'Users'), + customer_id: 2, + state: Ticket::State.lookup(name: 'new'), + priority: Ticket::Priority.lookup(name: '2 normal'), + updated_by_id: 1, + created_by_id: 1, + ) + assert_equal('subject test 1234-2', ticket1.title) + assert_equal("ABC subject test 1 [Ticket##{ticket1.number}]", ticket1.subject_build('ABC subject test 1')) + assert_equal(ticket1.id, Ticket::Number.check("Re: Help [Ticket##{ticket1.number}]").id) + + Setting.set('ticket_number', origin_backend) + end + test 'article attachment helper 1' do ticket1 = Ticket.create(