public function getUoms($properties = null, $facility_id, $dcTable = null, $locked = false) { $uoms = []; $model = null; $withs = []; $i = 0; $selectData = false; $rs = []; foreach ($properties as $property) { $columnName = is_array($property) && array_key_exists('data', $property) ? $property['data'] : $property->data; switch ($columnName) { case 'PRESS_UOM': $withs[] = 'CodePressUom'; $uoms[] = ['id' => 'CodePressUom', 'targets' => $i, 'COLUMN_NAME' => 'PRESS_UOM']; break; case 'TEMP_UOM': $withs[] = 'CodeTempUom'; $uoms[] = ['id' => 'CodeTempUom', 'targets' => $i, 'COLUMN_NAME' => 'TEMP_UOM']; break; case 'FL_POWR_UOM': case 'EU_POWR_UOM': $withs[] = 'CodePowerUom'; $uoms[] = ['id' => 'CodePowerUom', 'targets' => $i, 'COLUMN_NAME' => 'FL_POWR_UOM']; break; case 'FL_ENGY_UOM': case 'EU_ENGY_UOM': $withs[] = 'CodeEnergyUom'; $uoms[] = ['id' => 'CodeEnergyUom', 'targets' => $i, 'COLUMN_NAME' => 'FL_ENGY_UOM']; break; case 'FL_MASS_UOM': case 'EU_MASS_UOM': $withs[] = 'CodeMassUom'; $uoms[] = ['id' => 'CodeMassUom', 'targets' => $i, 'COLUMN_NAME' => 'FL_MASS_UOM']; break; case 'VOL_UOM': case 'FL_VOL_UOM': case 'EU_VOL_UOM': $withs[] = 'CodeVolUom'; $uoms[] = ['id' => 'CodeVolUom', 'targets' => $i, 'COLUMN_NAME' => 'FL_VOL_UOM']; break; case 'EU_STATUS': $selectData = ['id' => 'EuStatus', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = collect([(object) ['ID' => -1, 'NAME' => '(Auto)'], (object) ['ID' => 1, 'NAME' => 'Online'], (object) ['ID' => 0, 'NAME' => 'Offline']]); $rs[] = $selectData; break; case 'ALLOC_TYPE': $selectData = ['id' => 'CodeAllocType', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeAllocType::all(); $rs[] = $selectData; break; case 'TEST_METHOD': $selectData = ['id' => 'CodeTestingMethod', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeTestingMethod::all(); $rs[] = $selectData; break; case 'TEST_USAGE': $selectData = ['id' => 'CodeTestingUsage', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeTestingUsage::all(); $rs[] = $selectData; break; case 'EVENT_TYPE': $selectData = ['id' => 'CodeEventType', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeEventType::all(); $rs[] = $selectData; break; case 'SRC_TYPE': $selectData = ['id' => 'CodeQltySrcType', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeQltySrcType::all(); $rs[] = $selectData; break; case 'PRODUCT_TYPE': $selectData = ['id' => 'CodeProductType', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeProductType::all(); $rs[] = $selectData; break; case 'DEFER_REASON': $selectData = ['id' => 'CodeDeferReason', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeDeferReason::all(); $rs[] = $selectData; break; case 'DEFER_STATUS': $selectData = ['id' => 'CodeDeferStatus', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeDeferStatus::all(); $rs[] = $selectData; break; case 'CODE1': $selectData = ['id' => 'CodeDeferCode1', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeDeferCode1::all(); $rs[] = $selectData; break; case 'DEFER_CATEGORY': $selectData = ['id' => 'CodeDeferCategory', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeDeferCategory::all(); $rs[] = $selectData; break; case 'DEFER_GROUP_TYPE': $selectData = ['id' => 'CodeDeferGroupType', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeDeferGroupType::all(); $rs[] = $selectData; break; case 'TICKET_TYPE': $selectData = ['id' => 'CodeTicketType', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeTicketType::all(); $rs[] = $selectData; break; case 'TARGET_TANK': $selectData = ['id' => 'Tank', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = Tank::where('FACILITY_ID', $facility_id)->get(); $rs[] = $selectData; break; case 'CARRIER_ID': case 'PD_TRANSIT_CARRIER_ID': case 'CONNECTING_CARRIER': if ($dcTable == \App\Models\PdCargoNomination::getTableName() && !$locked) { break; } $selectData = ['id' => 'PdTransitCarrier', 'targets' => $i, 'COLUMN_NAME' => $columnName]; if ($dcTable == \App\Models\RunTicketFdcValue::getTableName() || $dcTable == \App\Models\RunTicketValue::getTableName()) { $selectData['data'] = PdTransitCarrier::where('TRANSIT_TYPE', 1)->get(); } else { $selectData['data'] = PdTransitCarrier::all(); } $rs[] = $selectData; break; case 'BA_ID': if ($dcTable != Personnel::getTableName()) { $selectData = ['id' => 'BaAddress', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = BaAddress::all(); $rs[] = $selectData; } break; case 'SEVERITY_ID': $selectData = ['id' => 'CodeSafetySeverity', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeSafetySeverity::where('ACTIVE', 1)->orderBy('ORDER')->orderBy('ID')->get(); $rs[] = $selectData; break; case 'STATUS': $selectData = ['id' => 'CodeCommentStatus', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeCommentStatus::where('ACTIVE', 1)->orderBy('ORDER')->orderBy('ID')->get(); $rs[] = $selectData; break; case 'OFFLINE_REASON_CODE': $selectData = ['id' => 'CodeEqpOfflineReason', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeEqpOfflineReason::where('ACTIVE', 1)->orderBy('ORDER')->orderBy('ID')->get(); $rs[] = $selectData; break; case 'EQP_FUEL_CONS_TYPE': $selectData = ['id' => 'CodeEqpFuelConsType', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeEqpFuelConsType::where('ACTIVE', 1)->orderBy('ORDER')->orderBy('ID')->get(); $rs[] = $selectData; break; case 'EQP_GHG_REL_TYPE': $selectData = ['id' => 'CodeEqpGhgRelType', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeEqpGhgRelType::where('ACTIVE', 1)->orderBy('ORDER')->orderBy('ID')->get(); $rs[] = $selectData; break; case 'EQP_GHG_UOM': case 'EQP_CONS_UOM': $selectData = ['id' => 'CodeVolUom', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeVolUom::all(); $rs[] = $selectData; break; case 'TYPE': $selectData = ['id' => 'CodePersonnelType', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodePersonnelType::all(); $rs[] = $selectData; break; case 'TITLE': $selectData = ['id' => 'CodePersonnelTitle', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodePersonnelTitle::all(); $rs[] = $selectData; break; case 'SYSTEM_ID': $selectData = ['id' => 'IntSystem', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = IntSystem::all(); $rs[] = $selectData; break; case 'FREQUENCY': $selectData = ['id' => 'CodeReadingFrequency', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeReadingFrequency::all(); $rs[] = $selectData; break; case 'ALLOW_OVERRIDE': $selectData = ['id' => 'CodeBoolean', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeBoolean::all(); $rs[] = $selectData; break; case 'FLOW_PHASE': $selectData = ['id' => 'CodeFlowPhase', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = CodeFlowPhase::all(); $rs[] = $selectData; break; case 'REQUEST_UOM': case 'NOMINATION_UOM': case 'REQUEST_QTY_UOM': case 'SCHEDULE_UOM': case 'ATTRIBUTE_UOM': case 'LOAD_UOM': case 'QTY_UOM': case 'ITEM_UOM': $selectData = ['id' => 'PdCodeMeasUom', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdCodeMeasUom::all(); $rs[] = $selectData; break; case 'PRIORITY': $selectData = ['id' => 'PdCodeCargoPriority', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdCodeCargoPriority::all(); $rs[] = $selectData; break; case 'QUANTITY_TYPE': $selectData = ['id' => 'PdCodeCargoQtyType', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdCodeCargoQtyType::all(); $rs[] = $selectData; break; case 'LIFTING_ACCT': case 'LIFTING_ACCOUNT': $selectData = ['id' => 'PdLiftingAccount', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdLiftingAccount::all(); $rs[] = $selectData; break; case 'CONTRACT_ID': $selectData = ['id' => 'PdContract', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdContract::all(); $rs[] = $selectData; break; case 'STORAGE_ID': $selectData = ['id' => 'Storage', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\Storage::where('FACILITY_ID', $facility_id)->get(); $rs[] = $selectData; break; case 'REQUEST_TOLERANCE': $selectData = ['id' => 'PdCodeQtyAdj', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdCodeQtyAdj::all(); $rs[] = $selectData; break; case 'ADJUSTABLE_TIME': case 'NOMINATION_ADJ_TIME': $selectData = ['id' => 'PdCodeTimeAdj', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdCodeTimeAdj::all(); $rs[] = $selectData; break; case 'INCOTERM': $selectData = ['id' => 'PdCodeIncoterm', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdCodeIncoterm::all(); $rs[] = $selectData; break; case 'TRANSIT_TYPE': $selectData = ['id' => 'PdCodeTransitType', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdCodeTransitType::all(); $rs[] = $selectData; break; /* case 'ACTIVITY_NAME' : $selectData = ['id'=>'ID','targets'=>$i,'COLUMN_NAME'=>'NAME']; $sql = ""; $sql .= " SELECT ID, NAME FROM pd_code_load_activity a where exists (select 1 from PD_CARGO_LOAD b join TERMINAL_TIMESHEET_DATA c ON ( b.ID = c.PARENT_ID AND c.IS_LOAD = 1 ) where c.ACTIVITY_ID = a.ID)"; $sql .= " union all"; $sql .= " SELECT ID, NAME FROM pd_code_load_activity a where exists (select 1 from PD_CARGO_UNLOAD b join TERMINAL_TIMESHEET_DATA c ON ( b.ID = c.PARENT_ID AND c.IS_LOAD = 1 ) where c.ACTIVITY_ID = a.ID)"; $tmp = \DB::select($sql); $selectData['data'] = $tmp; $rs[] = $selectData; break; */ /* case 'ACTIVITY_NAME' : $selectData = ['id'=>'ID','targets'=>$i,'COLUMN_NAME'=>'NAME']; $sql = ""; $sql .= " SELECT ID, NAME FROM pd_code_load_activity a where exists (select 1 from PD_CARGO_LOAD b join TERMINAL_TIMESHEET_DATA c ON ( b.ID = c.PARENT_ID AND c.IS_LOAD = 1 ) where c.ACTIVITY_ID = a.ID)"; $sql .= " union all"; $sql .= " SELECT ID, NAME FROM pd_code_load_activity a where exists (select 1 from PD_CARGO_UNLOAD b join TERMINAL_TIMESHEET_DATA c ON ( b.ID = c.PARENT_ID AND c.IS_LOAD = 1 ) where c.ACTIVITY_ID = a.ID)"; $tmp = \DB::select($sql); $selectData['data'] = $tmp; $rs[] = $selectData; break; */ case 'CARGO_ID': $selectData = ['id' => 'PdCargo', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdCargo::all(); $rs[] = $selectData; break; case 'BERTH_ID': $selectData = ['id' => 'PdBerth', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdBerth::all(); $rs[] = $selectData; break; case 'CARGO_STATUS': $selectData = ['id' => 'PdCodeCargoStatus', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdCodeCargoStatus::all(); $rs[] = $selectData; break; case 'CONTRACT_TYPE': case 'CONTACT_TYPE': $selectData = ['id' => 'PdCodeContractType', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdCodeContractType::all(); $rs[] = $selectData; break; case 'CONTRACT_PERIOD': $selectData = ['id' => 'PdCodeContractPeriod', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdCodeContractPeriod::all(); $rs[] = $selectData; break; case 'CONTRACT_EXPENDITURE': $selectData = ['id' => 'PdContractExpenditure', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdContractExpenditure::all(); $rs[] = $selectData; break; case 'CONTRACT_TEMPLATE': $selectData = ['id' => 'PdContractTemplate', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdContractTemplate::all(); $rs[] = $selectData; break; case 'DEMURRAGE_EBO': $selectData = ['id' => 'PdCodeDemurrageEbo', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdCodeDemurrageEbo::all(); $rs[] = $selectData; break; case 'SURVEYOR_BA_ID': $selectData = ['id' => 'BaAddress', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\BaAddress::where('SOURCE', 15)->get(); $rs[] = $selectData; break; case 'WITNESS_BA_ID1': case 'WITNESS_BA_ID2': $selectData = ['id' => 'BaAddress', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\BaAddress::where('SOURCE', 4)->get(); $rs[] = $selectData; break; case 'ACTIVITY_ID': case 'ACTIVITY_NAME': $selectData = ['id' => 'PdCodeLoadActivity', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdCodeLoadActivity::all(); $rs[] = $selectData; break; case 'VOYAGE_ID': $selectData = ['id' => 'PdVoyage', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdVoyage::all(); $rs[] = $selectData; break; case 'DEPART_PORT': case 'NEXT_DESTINATION_PORT': case 'PORT_ID': case 'ULLAGE_PORT': case 'ORIGIN_PORT': case 'DESTINATION_PORT': $selectData = ['id' => 'PdPort', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdPort::all(); $rs[] = $selectData; break; case 'FLOW_ID': $selectData = ['id' => 'Flow', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\Flow::where("FACILITY_ID", '=', $facility_id)->get(); $rs[] = $selectData; break; case 'MEASURED_ITEM': $selectData = ['id' => 'PdCodeMeasItem', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdCodeMeasItem::all(); $rs[] = $selectData; break; case 'FORMULA_ID': $selectData = ['id' => 'Formula', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\Formula::where("GROUP_ID", '=', 7)->get(); $rs[] = $selectData; break; case 'PROGRAM_TYPE': $selectData = ['id' => 'PdCodeProgramType', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdCodeProgramType::all(); $rs[] = $selectData; break; case 'RUN_FREQUENCY': $selectData = ['id' => 'PdCodeRunFrequency', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdCodeRunFrequency::all(); $rs[] = $selectData; break; case 'ADJUST_CODE': $selectData = ['id' => 'PdCodeLiftAcctAdj', 'targets' => $i, 'COLUMN_NAME' => $columnName]; $selectData['data'] = \App\Models\PdCodeLiftAcctAdj::all(); $rs[] = $selectData; break; } $i++; } if (count($withs) > 0) { $model = StandardUom::with($withs)->where('ID', $facility_id)->first(); if ($model == null) { $model = Facility::with($withs)->where('ID', $facility_id)->first(); } } // \DB::enableQueryLog(); if ($model != null) { foreach ($uoms as $key => $uom) { $uom['data'] = $model->{$uom}['id']; $uoms[$key] = $uom; $rs[] = $uom; } } return $rs; // \Log::info(\DB::getQueryLog()); }
public function confirm(Request $request) { $postData = $request->all(); $id = $postData['nominationId']; $pdCargo = PdCargo::getTableName(); $pdCargoNomination = PdCargoNomination::getTableName(); $nomi_row = PdCargoNomination::find($id); if (!$nomi_row) { throw new DataInputException("cargo nomination id {$id} not existed"); } $result = \DB::transaction(function () use($nomi_row, $id) { $code = "BEGIN"; $message = "begin confirming"; $checkDate = \Helper::isNullOrEmpty($nomi_row->NOMINATION_DATE); $checkQty = \Helper::isNullOrEmpty($nomi_row->NOMINATION_QTY); $warning_msg = $checkDate || $checkQty ? "Request data is being copied to Nomination data" : ""; $nomi_row->NOMINATION_DATE = $checkDate ? $nomi_row->REQUEST_DATE : $nomi_row->NOMINATION_DATE; $nomi_row->NOMINATION_QTY = $checkQty ? $nomi_row->REQUEST_QTY : $nomi_row->NOMINATION_QTY; $nomi_row->NOMINATION_UOM = $checkQty ? $nomi_row->REQUEST_QTY_UOM : $nomi_row->NOMINATION_UOM; $nomi_row->save(); //--------- generate CARGO_SCHEDULE --------------- $attributes = ['NOMINATION_ID' => $id]; $values = ['CARGO_ID' => $nomi_row->CARGO_ID, 'SCHEDULE_DATE' => $nomi_row->NOMINATION_DATE, 'SCHEDULE_QTY' => $nomi_row->NOMINATION_QTY, 'SCHEDULE_UOM' => $nomi_row->NOMINATION_UOM, 'PD_TRANSIT_CARRIER_ID' => $nomi_row->PD_TRANSIT_CARRIER_ID, 'CARGO_STATUS' => 3]; $pdCargoSchedule = PdCargoSchedule::updateOrCreate($attributes, $values); if ($pdCargoSchedule->wasRecentlyCreated) { $pdCargoSchedule->fill(['TRANSIT_TYPE' => $nomi_row->TRANSIT_TYPE])->save(); } $code = "GENERATING"; $message = "generate CARGO_SCHEDULE done"; //--------- generate VOYAGE -------------- $voyage = PdVoyage::firstOrNew(["NOMINATION_ID" => $id]); if (!$voyage->exists) { $carrier_row = PdTransitCarrier::find($nomi_row->PD_TRANSIT_CARRIER_ID); if (!$carrier_row) { throw new DataInputException("please check carrier of cargo nomination id {$id}"); } $cargo = PdCargo::find($nomi_row->CARGO_ID); $voyage_code = $carrier_row->CODE . "_#{$id}"; $voyage_name = $carrier_row->NAME . "_#{$id}"; $voyage->CODE = $voyage_code; $voyage->NAME = $voyage_name; $voyage->CARRIER_ID = $nomi_row->PD_TRANSIT_CARRIER_ID; $voyage->CARGO_ID = $nomi_row->CARGO_ID; $voyage->LIFTING_ACCOUNT = $cargo->LIFTING_ACCT; $voyage->STORAGE_ID = $cargo->STORAGE_ID; $voyage->VOYAGE_NO = $voyage_code; $voyage->INCOTERM = $nomi_row->INCOTERM; $voyage->SCHEDULE_DATE = $nomi_row->NOMINATION_DATE; $voyage->ADJUSTABLE_TIME = $nomi_row->NOMINATION_ADJ_TIME; $voyage->SCHEDULE_QTY = $nomi_row->NOMINATION_QTY; $voyage->QUANTITY_TYPE = $cargo->QUANTITY_TYPE; $voyage->SCHEDULE_UOM = $nomi_row->NOMINATION_UOM; $voyage->BERTH_ID = null; $voyage->save(); $message = "generate PD_VOYAGE done"; } $gen_cargo_load = false; $gen_cargo_unload = false; if ($nomi_row->IS_IMPORT == 1) { $gen_cargo_unload = true; } else { $gen_cargo_load = true; if ($nomi_row->INCOTERM == 5) { $gen_cargo_unload = true; //INCOTERM CODE 5 = DES } } if ($gen_cargo_load) { $cargoLoad = PdCargoLoad::firstOrNew(["NOMINATION_ID" => $id]); if (!$cargoLoad->exists) { $cargoLoad->CARGO_ID = $nomi_row->CARGO_ID; $cargoLoad->DATE_LOAD = $nomi_row->NOMINATION_DATE; $cargoLoad->LOAD_QTY = $nomi_row->NOMINATION_QTY; $cargoLoad->LOAD_UOM = $nomi_row->NOMINATION_UOM; $cargoLoad->TRANSIT_TYPE = $nomi_row->TRANSIT_TYPE; $cargoLoad->PD_TRANSIT_CARRIER_ID = $nomi_row->PD_TRANSIT_CARRIER_ID; $cargoLoad->BERTH_ID = null; $cargoLoad->CARGO_STATUS = $nomi_row->CARGO_STATUS; $cargoLoad->save(); $message = "generate PD_CARGO_LOAD done"; } } if ($gen_cargo_unload) { $cargoUnload = PdCargoUnload::firstOrNew(["NOMINATION_ID" => $id]); if (!$cargoUnload->exists) { $cargoUnload->CARGO_ID = $nomi_row->CARGO_ID; $cargoUnload->DATE_UNLOAD = $nomi_row->NOMINATION_DATE; $cargoUnload->LOAD_QTY = $nomi_row->NOMINATION_QTY; $cargoUnload->LOAD_UOM = $nomi_row->NOMINATION_UOM; $cargoUnload->TRANSIT_TYPE = $nomi_row->TRANSIT_TYPE; $cargoUnload->PD_TRANSIT_CARRIER_ID = $nomi_row->PD_TRANSIT_CARRIER_ID; $cargoUnload->BERTH_ID = null; $cargoUnload->CARGO_STATUS = $nomi_row->CARGO_STATUS; $cargoUnload->save(); $message = "generate PD_CARGO_UNLOAD done"; } } $nomi_row->CARGO_STATUS = 3; $nomi_row->save(); $message = "ok: {$warning_msg}"; $result = ['code' => $code, 'message' => $message]; return $result; }); return response()->json($result); }
public function gentransport(Request $request) { $postData = $request->all(); $voyage_id = $postData['VOYAGE_ID']; $pdVoyageDetail = PdVoyageDetail::getTableName(); $pdVoyage = PdVoyage::getTableName(); $pdTransitCarrier = PdTransitCarrier::getTableName(); $dataSet = PdVoyageDetail::join($pdVoyage, "{$pdVoyageDetail}.VOYAGE_ID", '=', "{$pdVoyage}.ID")->join($pdTransitCarrier, "{$pdVoyage}.CARRIER_ID", '=', "{$pdTransitCarrier}.ID")->where("{$pdVoyage}.ID", '=', $voyage_id)->orderBy("{$pdVoyageDetail}.ID")->select("{$pdVoyage}.CODE as VOYAGE_CODE", "{$pdVoyage}.NAME as VOYAGE_NAME", "{$pdVoyage}.QUANTITY_TYPE as VOYAGE_QTY_TYPE", "{$pdTransitCarrier}.TRANSIT_TYPE", "{$pdVoyageDetail}.*")->get(); try { $resultTransaction = \DB::transaction(function () use($dataSet, $voyage_id) { $attributes = ['VOYAGE_ID' => $voyage_id]; foreach ($dataSet as $ro) { $attributes['PARCEL_NO'] = $ro->PARCEL_NO; switch ($ro->TRANSIT_TYPE) { case 3: $pdTransportShipDetail = PdTransportShipDetail::where($attributes)->first(); if (!$pdTransportShipDetail) { $values = ['VOYAGE_ID' => $voyage_id]; $values['CODE'] = "SH_{$ro->VOYAGE_CODE}" . "_{$ro->PARCEL_NO}"; $values['NAME'] = "SH_{$ro->VOYAGE_NAME}" . "_{$ro->PARCEL_NO}"; $values['CARGO_ID'] = $ro->CARGO_ID; $values['PARCEL_NO'] = $ro->PARCEL_NO; $values['RECEIPT_QTY'] = $ro->LOAD_QTY; $values['QTY_TYPE'] = $ro->VOYAGE_QTY_TYPE; $values['QTY_UOM'] = $ro->LOAD_UOM; $pdTransportShipDetail = PdTransportShipDetail::insert($values); $pdShipPortInformation = PdShipPortInformation::insert($attributes); } break; case 4: $pdTransportPipelineDetail = PdTransportPipelineDetail::where($attributes)->first(); if (!$pdTransportPipelineDetail) { $values = ['VOYAGE_ID' => $voyage_id]; $values['CODE'] = "PP_{$ro->VOYAGE_CODE}" . "_{$ro->PARCEL_NO}"; $values['NAME'] = "PP_{$ro->VOYAGE_NAME}" . "_{$ro->PARCEL_NO}"; $values['CARGO_ID'] = $ro->CARGO_ID; $values['PARCEL_NO'] = $ro->PARCEL_NO; $values['QUANTITY'] = $ro->LOAD_QTY; $values['QUANTITY_UOM'] = $ro->LOAD_UOM; $pdTransportPipelineDetail = PdTransportPipelineDetail::insert($values); } break; default: $pdTransportGroundDetail = PdTransportGroundDetail::where($attributes)->first(); if (!$pdTransportGroundDetail) { $values = ['VOYAGE_ID' => $voyage_id]; $values['CODE'] = "GR_{$ro->VOYAGE_CODE}" . "_{$ro->PARCEL_NO}"; $values['NAME'] = "GR_{$ro->VOYAGE_NAME}" . "_{$ro->PARCEL_NO}"; $values['CARGO_ID'] = $ro->CARGO_ID; $values['PARCEL_NO'] = $ro->PARCEL_NO; $values['QUANTITY'] = $ro->LOAD_QTY; $values['QUANTITY_UOM'] = $ro->LOAD_UOM; $pdTransportGroundDetail = PdTransportGroundDetail::insert($values); } break; } } }); } catch (\Exception $e) { return response()->json('error when insert data'); } return response()->json('success'); }