diff --git a/src/ItemCode.php b/src/ItemCode.php index 323597a..1ddd179 100644 --- a/src/ItemCode.php +++ b/src/ItemCode.php @@ -185,4 +185,14 @@ public static function extract($generatedItemCode) 'grade' => $grade ]; } + + public static function removeBinding($itemCode) + { + // Extract item code + $extractedItemCode = self::extract($itemCode); + // Regenerate item code without binding and return + $generator = new self($extractedItemCode['itemCode']); + $generator->setGrade($extractedItemCode['grade']); + return $generator->generate(); + } } \ No newline at end of file diff --git a/tests/ItemCodeTest.php b/tests/ItemCodeTest.php index ecab16f..a3d378b 100644 --- a/tests/ItemCodeTest.php +++ b/tests/ItemCodeTest.php @@ -181,4 +181,25 @@ public function testExtract() $this->assertTrue(array_key_exists('grade', $result)); $this->assertEquals(0, $result['grade']); } + + public function testRemoveBinding() + { + $result = ItemCode::extract(ItemCode::removeBinding( + (new ItemCode(2897)) + ->setGrade(15) + ->setCharacterBindingOnUsage() + ->generate() + )); + $this->assertEquals(2897, $result['itemCode']); + $this->assertEquals(0, $result['binding']); + $this->assertEquals(15, $result['grade']); + $result = ItemCode::extract(ItemCode::removeBinding( + (new ItemCode(4095)) + ->setAccountBinding() + ->generate() + )); + $this->assertEquals(4095, $result['itemCode']); + $this->assertEquals(0, $result['binding']); + $this->assertEquals(0, $result['grade']); + } } \ No newline at end of file