return $this->render('index', compact('shiftTransfers', 'storeNameById', 'admins'));
}
- public function buildLoadDataShiftRemains($groups, $storeGuid, $normal = true)
+ public function buildLoadDataShiftRemains($groups, $storeGuid, $shiftDate, $normal = true)
{
$productsClass = ProductsClass::find()->select(['category_id'])->where(['tip' => $groups])->column();
$products =
$price = ArrayHelper::map(Prices::find()->select(['product_id', 'price'])->where(['product_id' => array_keys($products)])->all(), 'product_id', 'price');
$storeEIT = ExportImportTable::find()->select(['entity_id'])->where(['entity' => 'city_store', 'export_val' => $storeGuid, 'export_id' => 1])->one();
$selfCost = ArrayHelper::map(SelfCostProduct::find()->select(['product_guid', 'price'])->where(['product_guid' =>
- array_keys($products), 'store_id' => $storeEIT->entity_id])->all(), 'product_guid', 'price');
-
+ array_keys($products), 'store_id' => $storeEIT->entity_id /*, 'date' => date('Y-m-d', strtotime($shiftDate))*/])->orderBy(['date' => SORT_ASC])->all(), 'product_guid', 'price');
+// $a = [['a' => 1, 'b' => 2, 'c' => 3], ['a' => 1, 'b' => 5, 'c' => 4], ['a' => 1, 'b' => 7, 'c' => 5],];
+// var_dump(ArrayHelper::map($a, 'a', 'b')); die;
+// result: array(1) { [1]=> int(7) }
$loadDataShiftRemains = [];
foreach ($productGuids as $key => $name) {
$loadDataShiftRemains[] = [
}
}
- $data = self::buildLoadDataShiftRemains($shiftTransfer->groups2, $firstId);
+ $data = self::buildLoadDataShiftRemains($shiftTransfer->groups2, $firstId, $shiftTransfer->date);
$loadDataShiftRemains = $data['loadDataShiftRemains'];
$productGuids = $data['productGuids'];
$shiftTransfer->shiftRemainsCopy = $loadDataShiftRemains ?? $shiftTransfer->shiftRemains;
- $data = self::buildLoadDataShiftRemains($shiftTransfer->groups2, $firstId, false);
+ $data = self::buildLoadDataShiftRemains($shiftTransfer->groups2, $firstId, $shiftTransfer->date, false);
$productGuidsUnnormal = $data['productGuids'];
$existingKeys = ArrayHelper::getColumn($shiftTransfer->shiftRemainsCopy, 'product_guid');
$action = Yii::$app->request->post('action');
if ($action == 'applyGroups') {
$data = self::buildLoadDataShiftRemains(array_merge(empty($postShiftTransfer['groups1']) ? [] : $postShiftTransfer['groups1'],
- empty($postShiftTransfer['groups2']) ? [] : $postShiftTransfer['groups2']), $postShiftTransfer['store_guid']);
+ empty($postShiftTransfer['groups2']) ? [] : $postShiftTransfer['groups2']), $postShiftTransfer['store_guid'], $shiftTransfer->date);
$loadDataShiftRemains = $data['loadDataShiftRemains'];
$productGuids = $data['productGuids'];
$data2 = self::buildLoadDataShiftRemains(array_merge(empty($postShiftTransfer['groups1']) ? [] : $postShiftTransfer['groups1'],
- empty($postShiftTransfer['groups2']) ? [] : $postShiftTransfer['groups2']), $postShiftTransfer['store_guid'], false);
+ empty($postShiftTransfer['groups2']) ? [] : $postShiftTransfer['groups2']), $postShiftTransfer['store_guid'], $shiftTransfer->date, false);
$productGuidsUnnormal = $data2['productGuids'];
} else {
$loadDataShiftRemains = ArrayHelper::getValue($postShiftTransfer, 'shiftRemainsCopy');
}
}
} else {
- $data = self::buildLoadDataShiftRemains(explode(',', $shiftTransfer->product_groups), $shiftTransfer->store_guid);
+ $data = self::buildLoadDataShiftRemains(explode(',', $shiftTransfer->product_groups), $shiftTransfer->store_guid, $shiftTransfer->date);
$productGuids = $data['productGuids'];
$shiftTransfer->setGroups();
- $data2 = self::buildLoadDataShiftRemains(explode(',', $shiftTransfer->product_groups), $shiftTransfer->store_guid, false);
+ $data2 = self::buildLoadDataShiftRemains(explode(',', $shiftTransfer->product_groups), $shiftTransfer->store_guid, $shiftTransfer->date, false);
$productGuidsUnnormal = $data2['productGuids'];
}
$storeEIT = ExportImportTable::find()->select(['entity_id'])->where(['entity' => 'city_store', 'export_val' => $storeGuid, 'export_id' => 1])->one();
- $selfCost = SelfCostProduct::find()->select(['price'])->where(['product_guid' => $productGuid, 'store_id' => $storeEIT->entity_id])->one();
+ $selfCost = SelfCostProduct::find()->select(['price'])->where(['product_guid' => $productGuid, 'store_id' => $storeEIT->entity_id])->orderBy(['date' => SORT_DESC])->one();
$balance = Balances::find()->select(['quantity'])->where(['store_id' => $storeGuid, 'product_id' => $productGuid])->one();