Skip to content

Commit 029e7b7

Browse files
committed
Fix generation at creation
1 parent 5a753d2 commit 029e7b7

File tree

1 file changed

+19
-10
lines changed

1 file changed

+19
-10
lines changed

src/HasSequence.php

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -67,14 +67,22 @@ protected function canGenerateSequenceNumber($name)
6767
*/
6868
public function generateSequenceNumber($name = null, $save = true)
6969
{
70-
$saved = false;
71-
7270
if (empty($name)) {
73-
collect($this->sequences)->each(function ($name) {
74-
$this->generateSequenceNumber($name, false);
71+
$generated = [];
72+
73+
collect($this->sequences)->each(function ($name) use (&$generated) {
74+
if ($this->generateSequenceNumber($name, false)) {
75+
$generated[] = $name;
76+
}
7577
});
7678

77-
$saved = $this->save();
79+
if ($saved = $this->save()) {
80+
collect($generated)->each(function ($name) {
81+
$this->fireModelEvent(sprintf('sequence_%s_generated', studly_case($name)), false);
82+
});
83+
}
84+
85+
return $saved;
7886
} elseif ($this->canGenerateSequenceNumber($name)) {
7987
$sequence = DB::table($this->getTable())
8088
->select([
@@ -111,15 +119,16 @@ public function generateSequenceNumber($name = null, $save = true)
111119

112120
$this->{$name} = $next;
113121

114-
115122
if ($save) {
116-
$saved = $this->save();
123+
if ($this->save()) {
124+
$this->fireModelEvent(sprintf('sequence_%s_generated', studly_case($name)), false);
125+
}
117126
}
118-
}
119127

120-
if($saved) {
121-
$this->fireModelEvent(sprintf('sequence_%s_generated', studly_case($name)), false);
128+
return true;
122129
}
130+
131+
return false;
123132
}
124133

125134

0 commit comments

Comments
 (0)