}
if ($exportImportTable) {
- $writeOffs = self::getWriteOffs($exportImportTable->export_val, $weekStart, $weekEnd);
+ $writeOffs = self::getWriteOffs($weekStart, $weekEnd, $exportImportTable->export_val);
- $selfCostProduct = SelfCostProduct::find()->select(['price', 'product_guid', 'date'])
- ->where(['between', 'date', $weekStart, $weekEnd])
- ->andWhere(['store_id' => $store_id])
- ->asArray()->all();
-
- $selfCostProductMap = [];
- foreach ($selfCostProduct as $scp) {
- $selfCostProductMap[$scp['date']][$scp['product_guid']] = floatval($scp['price']);
- }
+ $selfCostProductMap = self::getSelfCostProductMap($store_id, $weekStart, $weekEnd);
foreach (MotivationCostsItem::getWriteOffsItems() as $key) {
if ($key == WriteOffsErp::WRITE_OFFS_TYPE_DELIVERY_BRAK) {
if ($store_id == 4 /* Аэродромная */ ) {
- $writeOffsResult = self::getWriteOffsAllStores($weekStart, $weekEnd);
+ $writeOffsResult = self::getWriteOffs($weekStart, $weekEnd);
} else {
$writeOffsResult = [];
}
return $selfCostProductMap;
}
- private static function getWriteOffs($storeGuid, $periodStart, $periodEnd) {
- $writeOffs = WriteOffs::find()->alias('wo')->select(['wo.type', 'wo.date', 'wop.product_id', 'wop.quantity', 'wop.price'])
+ private static function getWriteOffs($periodStart, $periodEnd, $storeGuid = null) {
+ $writeOffsQuery = WriteOffs::find()->alias('wo')->select(['wo.type', 'wo.date', 'wop.product_id', 'wop.quantity', 'wop.price'])
->rightJoin('write_offs_products wop', 'wop.write_offs_id = wo.id')
- ->where(['between', 'wo.date', $periodStart, $periodEnd])
- ->andWhere(['wo.store_id' => $storeGuid])
- ->asArray()->all();
-
- return $writeOffs;
- }
-
- private static function getWriteOffsAllStores($periodStart, $periodEnd) {
- $writeOffs = WriteOffs::find()->alias('wo')->select(['wo.type', 'wo.date', 'wop.product_id', 'wop.quantity', 'wop.price'])
- ->rightJoin('write_offs_products wop', 'wop.write_offs_id = wo.id')
- ->where(['between', 'wo.date', $periodStart, $periodEnd])
- ->asArray()->all();
+ ->where(['between', 'wo.date', $periodStart, $periodEnd]);
+ if ($storeGuid) {
+ $writeOffsQuery->andWhere(['wo.store_id' => $storeGuid]);
+ }
+ $writeOffs = $writeOffsQuery->asArray()->all();
return $writeOffs;
}
foreach ($exportImportTables as $store_id => $store_guid) {
if (isset($motivations[$store_id])) {
- $writeOffs = self::getWriteOffs($store_guid, $monthStart, $monthEnd);
+ $writeOffs = self::getWriteOffs($monthStart, $monthEnd, $store_guid);
$selfCostProductMap = self::getSelfCostProductMap($store_id, $monthStart, $monthEnd);
foreach (MotivationCostsItem::writeOffsToMotivationItemArray() as $key => $motivationItemType) {
if ($key == WriteOffsErp::WRITE_OFFS_TYPE_DELIVERY_BRAK) {
if ($store_id == 4 /* Аэродромная */) {
- $writeOffsResult = self::getWriteOffsAllStores($monthStart, $monthEnd);
+ $writeOffsResult = self::getWriteOffs($monthStart, $monthEnd);
} else {
$writeOffsResult = [];
}