Skip to content

Instantly share code, notes, and snippets.

Created August 25, 2016 14:46
Show Gist options
  • Save anonymous/e187945cdb1cc91c59639d8e5039caf1 to your computer and use it in GitHub Desktop.
Save anonymous/e187945cdb1cc91c59639d8e5039caf1 to your computer and use it in GitHub Desktop.
public function get_inventory()
{
$warehouse_skus = $this
->find('all');
$warehouse_skus = $warehouse_skus
->select(
[
'id'=>'WarehouseSkus.id',
'available'=>'sum(Inventory.available)',
'damaged'=>'sum(Inventory.damaged)',
'pallets'=>'sum(Inventory.pallets)',
])
->group('WarehouseSkus.id')
->leftJoinWith('Inventory')
->autoFields(true);
return $warehouse_skus;
}
public function get_released()
{
$warehouse_skus = $this
->find('all');
$warehouse_skus = $warehouse_skus
->select(
[
'id'=>'WarehouseSkus.id',
'released'=>'sum(FulfillmentItems.qty)',
])
->group('WarehouseSkus.id')
->leftJoinWith('FulfillmentItems', function($q)
{
return $q->where(['FulfillmentItems.status'=>'released']);
}
)
->autoFields(true);
return $warehouse_skus;
}
*****
$whsku_released=
$this->WarehouseSkus->find('all')
->select([
'id'=>'WarehouseSkus.id',
'sku'=>'Products.sku',
'description',
'pack',
'inner_pack',
'lot',
'released'=>'t1.released',
'available'=>'t2.available',
'damaged'=>'t2.damaged',
'pallets'=>'t2.pallets',
])
->leftJoinWith('Products')
->leftJoin(['t1'=>$this->WarehouseSkus->get_released()], 't1.id = WarehouseSkus.id')
->leftJoin(['t2'=>$this->WarehouseSkus->get_inventory()], 't2.id = WarehouseSkus.id');
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment