Exemplo n.º 1
0
 public static function unitFor($mainUnit, $conversion, $shouldCreate = false)
 {
     $unit = Unit::where('main_unit', '=', $mainUnit)->where('conversion', '=', $conversion)->first();
     if ($unit == null && $shouldCreate) {
         $unit = Unit::create(['main_unit' => $mainUnit, 'conversion' => $conversion, 'name' => $conversion . ' ' . Unit::getMainUnitName($mainUnit)]);
     }
     return $unit;
 }
Exemplo n.º 2
0
 public function assemblyPrice()
 {
     $price = 0;
     foreach ($this->assemblies as $assembly) {
         $finalQty = Unit::convert($assembly->pivot->quantity, $assembly->pivot->unit_id, $assembly->unit_id);
         $price += $assembly->costPrice * $finalQty;
     }
     return $price;
 }
 /**
  * Run the migrations.
  *
  * @return void
  */
 public function up()
 {
     Schema::create('units', function (Blueprint $table) {
         $table->increments('id');
         $table->string('name');
         $table->integer('main_unit')->unsigned();
         $table->decimal('conversion', 8, 3)->default(1);
         $table->timestamps();
         $table->softDeletes();
     });
     DB::table('units')->delete();
     Unit::insert([['name' => Unit::getMainUnitName(Unit::STANDARD), 'main_unit' => Unit::STANDARD, 'conversion' => 1], ['name' => Unit::getMainUnitName(Unit::KG), 'main_unit' => Unit::KG, 'conversion' => 1], ['name' => Unit::getMainUnitName(Unit::L), 'main_unit' => Unit::L, 'conversion' => 1], ['name' => Unit::getMainUnitName(Unit::LBS), 'main_unit' => Unit::LBS, 'conversion' => 1], ['name' => Unit::getMainUnitName(Unit::GAL), 'main_unit' => Unit::GAL, 'conversion' => 1], ['name' => 'g', 'main_unit' => Unit::KG, 'conversion' => 0.001], ['name' => 'cl', 'main_unit' => Unit::L, 'conversion' => 0.01], ['name' => 'Can 33 cl', 'main_unit' => Unit::L, 'conversion' => 0.33]]);
 }
Exemplo n.º 4
0
 public function automaticPurchaseOrder()
 {
     $toReturn = [];
     foreach ($this->items as $item) {
         $totalQty = 0;
         $totalDefault = 0;
         foreach ($item->warehouses as $warehouse) {
             $totalQty += $warehouse->pivot->quantity;
             $totalDefault += $warehouse->pivot->defaultQuantity;
         }
         $toRefill = $totalDefault - $totalQty;
         if ($toRefill > 0) {
             $toRefill = $item->pivot->pack * ceil($toRefill / $item->pivot->pack);
             //Minium pack size
             $toReturn[$item->id] = ["name" => $item->name, "costPrice" => $item->pivot->costPrice, "pivot_id" => $item->pivot->id, "quantity" => $toRefill, "unit" => Unit::find($item->pivot->unit_id)->name];
         }
     }
     return $toReturn;
 }
Exemplo n.º 5
0
 public function move($itemId, $toWarehouseId, $qty)
 {
     $stockClass = config('mojito.stockClass', 'Stock');
     $pivotFrom = $stockClass::where('warehouse_id', '=', $this->id)->where('item_id', '=', $itemId)->first();
     if ($pivotFrom == null) {
         return false;
     }
     $pivotTo = $stockClass::where('warehouse_id', '=', $toWarehouseId)->where('item_id', '=', $itemId)->first();
     if ($pivotTo != null) {
         $destQty = Unit::convert($qty, $pivotFrom->unit_id, $pivotTo->unit_id);
     } else {
         $destQty = $qty;
     }
     if ($pivotTo == null) {
         $stockClass::create(['warehouse_id' => $toWarehouseId, 'item_id' => $itemId, 'quantity' => $qty, 'unit_id' => $pivotFrom->unit_id, 'alert' => 0]);
     } else {
         $pivotTo->update(["quantity" => $pivotTo->quantity + $destQty]);
     }
     $pivotFrom->update(["quantity" => $pivotFrom->quantity - $qty]);
     StockMovement::create(['item_id' => $itemId, 'from_warehouse_id' => $this->id, 'to_warehouse_id' => $toWarehouseId, 'quantity' => $qty, 'action' => Warehouse::ACTION_MOVE]);
     return true;
 }
Exemplo n.º 6
0
<?php

return [[['field' => 'name'], ['field' => 'main_unit', 'select' => \BadChoice\Mojito\Models\Unit::getMainUnits()], ['field' => 'conversion']]];