mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-10-31 13:41:09 -04:00 
			
		
		
		
	build version 400
This commit is contained in:
		| @ -1,34 +1,52 @@ | ||||
| <?php | ||||
|  | ||||
| /** @var \Illuminate\Database\Eloquent\Factory $factory */ | ||||
| namespace Database\Factories; | ||||
|  | ||||
| use Crater\EstimateItem; | ||||
| use Crater\Item; | ||||
| use Faker\Generator as Faker; | ||||
| use Crater\User; | ||||
| use Crater\Models\EstimateItem; | ||||
| use Crater\Models\Item; | ||||
| use Crater\Models\User; | ||||
| use Illuminate\Database\Eloquent\Factories\Factory; | ||||
|  | ||||
| $factory->define(EstimateItem::class, function (Faker $faker) { | ||||
|     return [ | ||||
|         'item_id' => function () { | ||||
|             return factory(Item::class)->create()->id; | ||||
|         }, | ||||
|         'name' => function (array $item) { | ||||
|             return Item::find($item['item_id'])->name; | ||||
|         }, | ||||
|         'description' => function (array $item) { | ||||
|             return Item::find($item['item_id'])->description; | ||||
|         }, | ||||
|         'price' => function (array $item) { | ||||
|             return Item::find($item['item_id'])->price; | ||||
|         }, | ||||
|         'quantity' => $faker->randomDigitNotNull, | ||||
|         'company_id' => User::find(1)->company_id, | ||||
|         'discount_type' => 'fixed', | ||||
|         'tax' => $faker->randomDigitNotNull, | ||||
|         'discount_val' => 0, | ||||
|         'total' => function (array $item) { | ||||
|             return ($item['price'] * $item['quantity']); | ||||
|         }, | ||||
|         'discount' => 0 | ||||
|     ]; | ||||
| }); | ||||
| class EstimateItemFactory extends Factory | ||||
| { | ||||
|     /** | ||||
|      * The name of the factory's corresponding model. | ||||
|      * | ||||
|      * @var string | ||||
|      */ | ||||
|     protected $model = EstimateItem::class; | ||||
|  | ||||
|     /** | ||||
|      * Define the model's default state. | ||||
|      * | ||||
|      * @return array | ||||
|      */ | ||||
|     public function definition() | ||||
|     { | ||||
|         return [ | ||||
|             'item_id' => Item::factory(), | ||||
|             'name' => function (array $item) { | ||||
|                 return Item::find($item['item_id'])->name; | ||||
|             }, | ||||
|             'description' => function (array $item) { | ||||
|                 return Item::find($item['item_id'])->description; | ||||
|             }, | ||||
|             'price' => function (array $item) { | ||||
|                 return Item::find($item['item_id'])->price; | ||||
|             }, | ||||
|             'quantity' => $this->faker->randomDigitNotNull, | ||||
|             'company_id' => User::where('role', 'super admin')->first()->company_id, | ||||
|             'tax' => $this->faker->randomDigitNotNull, | ||||
|             'total' => function (array $item) { | ||||
|                 return ($item['price'] * $item['quantity']); | ||||
|             }, | ||||
|             'discount_type' => $this->faker->randomElement(['percentage', 'fixed']), | ||||
|             'discount_val' => function (array $estimate) { | ||||
|                 return $estimate['discount_type'] == 'percentage' ? $this->faker->numberBetween($min = 0, $max = 100) : $this->faker->randomDigitNotNull; | ||||
|             }, | ||||
|             'discount' => function (array $estimate) { | ||||
|                 return $estimate['discount_type'] == 'percentage' ? (($estimate['discount_val'] * $estimate['total']) / 100) : $estimate['discount_val']; | ||||
|             } | ||||
|         ]; | ||||
|     } | ||||
| } | ||||
|  | ||||
		Reference in New Issue
	
	Block a user