2024-12-25 03:04:59 +00:00
< ? php
namespace frontend\modules\surgical\controllers ;
2025-06-10 08:41:29 +00:00
use common\models\CaseNonGyn ;
2024-12-25 03:04:59 +00:00
use Yii ;
use yii\db\Expression ;
use common\models\IdCaseForm ;
use common\models\CaseSurgical ;
use common\models\SurgicalSlide ;
use common\models\SurgicalCassettePrint ;
use common\models\SurgicalCassettePrintDetail ;
use frontend\modules\surgical\models\PrintSlideForm ;
use frontend\modules\surgical\models\PrintBlockSearch ;
use frontend\modules\surgical\models\PrintBlockDaySearch ;
use frontend\modules\surgical\models\SurgicalSlideSearch ;
use frontend\modules\surgical\models\SurgicalSlideDaySearch ;
use frontend\modules\surgical\models\PrintBlockDayBetweenSearch ;
class PrintController extends \yii\web\Controller
{
2025-06-10 08:41:29 +00:00
2024-12-25 03:04:59 +00:00
public function actionCassette ()
{
$searchCase = new IdCaseForm ();
$session = Yii :: $app -> session ;
if ( ! $session [ 'gross' ]) {
$session [ 'gross' ] = null ;
}
if ( $searchCase -> load ( Yii :: $app -> request -> get ())) {
$session [ 'gross' ] = $searchCase -> id_case ;
}
$model = CaseSurgical :: findOne ([ 'id_case' => Yii :: $app -> session [ 'gross' ]]);
if ( $model ) {
if ( Yii :: $app -> request -> post ( 'selection' )) { // เมื่อมีการ Post ค่ามา
$selection = ( array ) Yii :: $app -> request -> post ( 'selection' ); // รับค่ามาเป็น array
$surgical_slide_print = ( array ) Yii :: $app -> request -> post ( 'SurgicalCassettePrint' ); // รับค่ามาเป็น array
//var_dump($selection);
//var_dump($surgical_slide_print);
//die();
//$content = [];
foreach ( $selection as $key => $value ) {
//var_dump($surgical_slide_print['items'][$value]['hopper']);
//die();
$surgical_slide = SurgicalSlide :: findOne ( $value );
$surgical_slide -> status = 1 ;
if ( $surgical_slide -> save ()) {
$surgical_cassette_print = new SurgicalCassettePrint ();
$surgical_cassette_print -> id_case = $model -> id_case ;
$surgical_cassette_print -> surgical_slide_id = $surgical_slide -> id ;
$surgical_cassette_print -> print_at = date ( 'Y-m-d H:i:s' );
$surgical_cassette_print -> print_by = Yii :: $app -> user -> getId ();
$filePath = '' ;
if ( $surgical_slide_print [ 'items' ][ $value ][ 'printer' ] == 1 ) {
// Actions to perform for 'print_slide1'
$filePath = Yii :: getAlias ( '@webroot' ) . '/surgical_block_print1/' . $model -> id_case . '_' . $surgical_slide -> no_slide . '_' . $surgical_slide -> id . '.txt' ;
// Other related actions...
}
if ( $surgical_slide_print [ 'items' ][ $value ][ 'printer' ] == 2 ) {
// Actions to perform for 'print_slide1'
$filePath = Yii :: getAlias ( '@webroot' ) . '/surgical_block_print2/' . $model -> id_case . '_' . $surgical_slide -> no_slide . '_' . $surgical_slide -> id . '.txt' ;
// Other related actions...
}
//$filePath = Yii::getAlias('@webroot') . '/surgical_block_print/' . $model->id_case . '_' . $surgical_slide->no_slide . '_' . $surgical_slide->id . '.txt'; // Specify the file path where you want to save the text
$parts = explode ( " - " , $model -> id_case );
// Split the string into an array of characters
$chars = str_split ( $parts [ 0 ]);
// Convert the array back to a string
$result = $chars [ 0 ] . ',' . $chars [ 1 ] . $chars [ 2 ] . ',-,' . $parts [ 1 ];
// Split no_slide the string into an array of characters
$parts1 = substr ( $surgical_slide -> no_slide , 0 , 1 );
$parts2 = substr ( $surgical_slide -> no_slide , 1 , 2 );
$chars1 = str_split ( $parts1 );
$chars2 = str_split ( $parts2 );
// Converting arrays to strings
$stringChars1 = implode ( " " , $chars1 );
$stringChars2 = implode ( " " , $chars2 );
//var_dump($chars1);
//die();
// Create the content you want to save in the file
//for ($i = 1; $i <= $surgical_slide->quantity; $i++) {
2024-12-27 09:24:36 +00:00
$print_arr = [ 1 => 'SURAT LIS' , 2 => 'SURAT2 LIS' ];
2024-12-25 03:04:59 +00:00
$content = $model -> id_case . '$' . $stringChars2 . '$' . $stringChars1 . '$' . '0' ;
// }
//$content = implode("\n", $content);
//$surgical_cassette_print->remark = $content;
$surgical_cassette_print -> remark = $surgical_slide_print [ 'items' ][ $value ][ 'printer' ];
$surgical_cassette_print -> remark = $content ;
if ( $surgical_cassette_print -> save ()) {
Yii :: $app -> session -> addFlash ( 'success' , 'สั่งพิมพ์ Cassette: ' . $surgical_slide -> no_slide . ' แล้ว' );
// Save the content to the file
file_put_contents ( $filePath , $content , FILE_APPEND );
} else {
var_dump ( $surgical_cassette_print -> getFirstErrors ());
2025-03-28 09:13:26 +00:00
die ();
}
}
} // end foreach
return $this -> redirect ([ 'cassette' , 'IdCaseForm[id_case]' => $model -> id_case ]);
}
}
return $this -> render ( 'cassette' , [
'model' => $model ,
'searchCase' => $searchCase ,
]);
2025-06-10 08:41:29 +00:00
}
2025-03-28 09:13:26 +00:00
2025-06-10 08:41:29 +00:00
public function actionCassetteCellblock ()
2025-03-28 09:13:26 +00:00
{
$searchCase = new IdCaseForm ();
$session = Yii :: $app -> session ;
if ( ! $session [ 'gross' ]) {
$session [ 'gross' ] = null ;
}
if ( $searchCase -> load ( Yii :: $app -> request -> get ())) {
$session [ 'gross' ] = $searchCase -> id_case ;
}
2025-06-10 08:41:29 +00:00
$model = CaseNonGyn :: findOne ([ 'id_case' => Yii :: $app -> session [ 'gross' ]]);
2025-03-28 09:13:26 +00:00
if ( $model ) {
if ( Yii :: $app -> request -> post ( 'selection' )) { // เมื่อมีการ Post ค่ามา
$selection = ( array ) Yii :: $app -> request -> post ( 'selection' ); // รับค่ามาเป็น array
$surgical_slide_print = ( array ) Yii :: $app -> request -> post ( 'SurgicalCassettePrint' ); // รับค่ามาเป็น array
//var_dump($selection);
//var_dump($surgical_slide_print);
//die();
//$content = [];
foreach ( $selection as $key => $value ) {
//var_dump($surgical_slide_print['items'][$value]['hopper']);
//die();
$surgical_slide = SurgicalSlide :: findOne ( $value );
$surgical_slide -> status = 1 ;
if ( $surgical_slide -> save ()) {
$surgical_cassette_print = new SurgicalCassettePrint ();
$surgical_cassette_print -> id_case = $model -> id_case ;
$surgical_cassette_print -> surgical_slide_id = $surgical_slide -> id ;
$surgical_cassette_print -> print_at = date ( 'Y-m-d H:i:s' );
$surgical_cassette_print -> print_by = Yii :: $app -> user -> getId ();
2025-06-10 08:41:29 +00:00
$filePath = '' ;
2025-03-28 09:13:26 +00:00
2025-06-10 08:41:29 +00:00
if ( $surgical_slide_print [ 'items' ][ $value ][ 'printer' ] == 1 ) {
// Actions to perform for 'print_slide1'
$filePath = Yii :: getAlias ( '@webroot' ) . '/surgical_block_print1/' . $model -> id_case . '_' . $surgical_slide -> no_slide . '_' . $surgical_slide -> id . '.txt' ;
// Other related actions...
}
if ( $surgical_slide_print [ 'items' ][ $value ][ 'printer' ] == 2 ) {
// Actions to perform for 'print_slide1'
$filePath = Yii :: getAlias ( '@webroot' ) . '/surgical_block_print2/' . $model -> id_case . '_' . $surgical_slide -> no_slide . '_' . $surgical_slide -> id . '.txt' ;
// Other related actions...
}
//$filePath = Yii::getAlias('@webroot') . '/surgical_block_print/' . $model->id_case . '_' . $surgical_slide->no_slide . '_' . $surgical_slide->id . '.txt'; // Specify the file path where you want to save the text
2025-03-28 09:13:26 +00:00
$parts = explode ( " - " , $model -> id_case );
// Split the string into an array of characters
$chars = str_split ( $parts [ 0 ]);
// Convert the array back to a string
2025-06-10 08:41:29 +00:00
$result = $chars [ 0 ] . ',' . $chars [ 1 ] . $chars [ 2 ] . ',-,' . $parts [ 1 ];
// Split no_slide the string into an array of characters
$parts1 = substr ( $surgical_slide -> no_slide , 0 , 1 );
$parts2 = substr ( $surgical_slide -> no_slide , 1 , 2 );
2025-03-28 09:13:26 +00:00
2025-06-10 08:41:29 +00:00
$chars1 = str_split ( $parts1 );
$chars2 = str_split ( $parts2 );
// Converting arrays to strings
$stringChars1 = implode ( " " , $chars1 );
$stringChars2 = implode ( " " , $chars2 );
//var_dump($chars1);
//die();
2025-03-28 09:13:26 +00:00
// Create the content you want to save in the file
//for ($i = 1; $i <= $surgical_slide->quantity; $i++) {
2025-06-10 08:41:29 +00:00
$print_arr = [ 1 => 'SURAT LIS' , 2 => 'SURAT2 LIS' ];
$content = $model -> id_case . '$' . $stringChars2 . '$' . $stringChars1 . '$' . '0' ;
2025-03-28 09:13:26 +00:00
// }
//$content = implode("\n", $content);
2025-06-10 08:41:29 +00:00
//$surgical_cassette_print->remark = $content;
$surgical_cassette_print -> remark = $surgical_slide_print [ 'items' ][ $value ][ 'printer' ];
2025-03-28 09:13:26 +00:00
$surgical_cassette_print -> remark = $content ;
if ( $surgical_cassette_print -> save ()) {
Yii :: $app -> session -> addFlash ( 'success' , 'สั่งพิมพ์ Cassette: ' . $surgical_slide -> no_slide . ' แล้ว' );
// Save the content to the file
file_put_contents ( $filePath , $content , FILE_APPEND );
} else {
var_dump ( $surgical_cassette_print -> getFirstErrors ());
2024-12-25 03:04:59 +00:00
die ();
}
}
} // end foreach
return $this -> redirect ([ 'cassette' , 'IdCaseForm[id_case]' => $model -> id_case ]);
}
}
2025-06-10 08:41:29 +00:00
return $this -> render ( 'cassette-cellblock' , [
2024-12-25 03:04:59 +00:00
'model' => $model ,
'searchCase' => $searchCase ,
]);
}
public function actionIndex ()
{
return $this -> render ( 'index' );
}
public function actionBlockPrint ()
{
$searchCase = new PrintSlideForm ();
$session = Yii :: $app -> session ;
if ( ! $session [ 'block' ]) {
$session [ 'block' ] = null ;
}
if ( $searchCase -> load ( Yii :: $app -> request -> get ())) {
$session [ 'block' ] = $searchCase -> id_case ;
}
$model = CaseSurgical :: findOne ([ 'id_case' => Yii :: $app -> session [ 'block' ]]);
if ( $model ) {
if ( Yii :: $app -> request -> post ( 'selection' )) {
$selection = ( array ) Yii :: $app -> request -> post ( 'selection' ); // รับค่ามาเป็น array
$surgical_slide_print = ( array ) Yii :: $app -> request -> post ( 'SurgicalCassettePrint' ); // รับค่ามาเป็น array
//var_dump($selection);
//var_dump($surgical_slide_print);
//die();
foreach ( $selection as $key => $value ) {
$surgical_cassette_print = new SurgicalCassettePrint ();
$surgical_cassette_print -> id_case = $model -> id_case ;
$surgical_cassette_print -> print_at = date ( 'Y-m-d H:i:s' );
$surgical_cassette_print -> print_by = Yii :: $app -> user -> getId ();
$filePath = '' ;
if ( $surgical_slide_print [ 'items' ][ $value ][ 'printer' ] == 1 ) {
// Actions to perform for 'print_slide1'
//$filePath = Yii::getAlias('@webroot') . '/surgical_block_print1/' . $model->id_case . '_' . $surgical_slide->no_slide . '_' . $surgical_slide->id . '.txt';
$filePath = Yii :: getAlias ( '@webroot' ) . '/surgical_block_print1/' . $model -> id_case . '_' ;
$filePath .= $value . '.txt' ;
// Other related actions...
}
if ( $surgical_slide_print [ 'items' ][ $value ][ 'printer' ] == 2 ) {
// Actions to perform for 'print_slide1'
//$filePath = Yii::getAlias('@webroot') . '/surgical_block_print2/' . $model->id_case . '_' . $surgical_slide->no_slide . '_' . $surgical_slide->id . '.txt';
$filePath = Yii :: getAlias ( '@webroot' ) . '/surgical_block_print2/' . $model -> id_case . '_' ;
$filePath .= $value . '.txt' ;
// Other related actions...
}
/** check content */
$parts1 = substr ( $value , 0 , 1 );
$parts2 = substr ( $value , 1 , 2 );
$chars1 = str_split ( $parts1 );
$chars2 = str_split ( $parts2 );
// Converting arrays to strings
$stringChars1 = implode ( " " , $chars1 );
$stringChars2 = implode ( " " , $chars2 );
$content = $model -> id_case . '$' . $stringChars2 . '$' . $stringChars1 . '$' . $surgical_slide_print [ 'items' ][ $value ][ 'slide_pathology' ];
/** */
$surgical_cassette_print -> remark = $surgical_slide_print [ 'items' ][ $value ][ 'printer' ];
$surgical_cassette_print -> remark = $content ;
$surgical_cassette_print_check = SurgicalCassettePrint :: find () -> where ([ 'id_case' => $surgical_cassette_print -> id_case ]) -> andWhere ([ 'remark' => $surgical_cassette_print -> remark ]) -> one ();
if ( ! $surgical_cassette_print_check ) {
if ( $surgical_cassette_print -> save ()) {
$surgical_cassette_print_detail = new SurgicalCassettePrintDetail ();
$surgical_cassette_print_detail -> surgical_cassette_print_id = $surgical_cassette_print -> id ;
$surgical_cassette_print_detail -> id_case = $model -> id_case ;
$surgical_cassette_print_detail -> block_no = $value ;
$surgical_cassette_print_detail -> print_block_at = date ( 'Y-m-d H:i:s' );
$surgical_cassette_print_detail -> save ();
Yii :: $app -> session -> addFlash ( 'success' , 'สั่งพิมพ์ Cassette: ' . $model -> id_case . ' ' . $value . ' แล้ว' );
// Save the content to the file
file_put_contents ( $filePath , $content , FILE_APPEND );
} else {
var_dump ( $surgical_cassette_print -> getFirstErrors ());
die ();
}
} else {
Yii :: $app -> session -> addFlash ( 'danger' , 'เคยมีการสั่งพิมพ์ Cassette: ' . $model -> id_case . ' ' . $value . ' แล้ว' );
}
}
}
}
return $this -> render ( 'block-print' , [
'searchCase' => $searchCase ,
'model' => $model ,
]);
}
public function actionPrintDay ()
{
//ปกติก ค้นหาจาก SurgicalSlide
$searchModel = new SurgicalSlideSearch ();
$dataProvider = $searchModel -> search ( Yii :: $app -> request -> queryParams );
//$dataProvider->query->andFilterWhere(['like', 'id_case', 'S%', false]);
$dataProvider -> query -> andFilterWhere ([ 'DATE(block_at)' => date ( 'Y-m-d' )]);
$dataProvider -> sort = [
'defaultOrder' => [
'block_at' => SORT_DESC
]
];
// Disable pagination
$dataProvider -> pagination = false ;
return $this -> render ( 'print-day' , [
'searchModel' => $searchModel ,
'dataProvider' => $dataProvider ,
]);
}
public function actionDelete ( $id )
{
$model = SurgicalCassettePrintDetail :: findOne ([ 'id' => $id ]);
$surgical_cassette_print = SurgicalCassettePrint :: findOne ([ 'id' => $model -> surgical_cassette_print_id ]);
if ( ! $model ) {
Yii :: $app -> session -> setFlash ( 'error' , 'ไม่มี Case นี้ในระบบ' );
return $this -> redirect ([ 'print-day' ]);
}
if ( $model -> delete () && $surgical_cassette_print -> delete ()) {
//@unlink(Yii::getAlias('@webroot') . '/uploads/surgical/img/' . $model->file_path);
Yii :: $app -> session -> setFlash ( 'success' , 'ลบข้อมูลเรียบร้อยแล้ว' );
return $this -> redirect ([ 'print-day' ]);
}
return $this -> render ( 'print-day' );
}
public function actionBlockSearch ()
{
$searchModel = new PrintBlockSearch ();
$dataProvider = $searchModel -> search ( Yii :: $app -> request -> queryParams );
$dataProvider -> query -> andFilterWhere ([ 'is' , 'status' , new Expression ( 'NULL' )]);
return $this -> render ( 'block-search' , [
'searchModel' => $searchModel ,
'dataProvider' => $dataProvider
]);
}
public function actionBlockDaySearch ()
{
$searchModel = new SurgicalSlideDaySearch ();
$dataProvider = $searchModel -> search ( Yii :: $app -> request -> queryParams );
$dataProvider -> query -> andFilterWhere ([ 'is not' , 'block_at' , new Expression ( 'NULL' )]);
$dataProvider -> sort = [
'defaultOrder' => [
'block_at' => SORT_DESC
]
];
return $this -> render ( 'block-day-search' , [
'searchModel' => $searchModel ,
'dataProvider' => $dataProvider
]);
}
public function actionPrintBack ()
{
$searchModel = new PrintBlockDaySearch ();
$dataProvider = $searchModel -> search ( Yii :: $app -> request -> queryParams );
$dataProvider -> query -> andFilterWhere ([ 'is not' , 'print_block_at' , new Expression ( 'NULL' )]);
//ส่ง และ ลบ ย้อนหลัง
if ( Yii :: $app -> request -> post ()) {
$action = Yii :: $app -> request -> post ( 'block' );
//var_dump($action);
//die();
if ( $action == 'save' ) {
if ( Yii :: $app -> request -> post ( 'selection' )) { //แบบ selection
$selection = ( array ) Yii :: $app -> request -> post ( 'selection' ); //typecasting
foreach ( $selection as $id ) {
$surgical_cassette_print_detail = SurgicalCassettePrintDetail :: find ()
-> where ([ 'id' => $id ])
-> one ();
$surgical_cassette_print_detail -> sent_slide_at = date ( 'Y-m-d H:i:s' );
$surgical_cassette_print_detail -> status = 1 ;
$surgical_cassette_print_detail -> save ();
}
Yii :: $app -> session -> setFlash ( 'success' , 'บันทึกเรียบร้อยแล้ว' );
return $this -> redirect ([ 'print-back' ]);
}
}
if ( $action == 'delete' ) {
if ( Yii :: $app -> request -> post ( 'selection' )) { //แบบ selection
$selection = ( array ) Yii :: $app -> request -> post ( 'selection' ); //typecasting
foreach ( $selection as $id ) {
$surgical_cassette_print_detail = SurgicalCassettePrintDetail :: find ()
-> where ([ 'id' => $id ])
-> one ();
$surgical_cassette_print = SurgicalCassettePrint :: find ()
-> where ([ 'id' => $surgical_cassette_print_detail -> surgical_cassette_print_id ])
-> one ();
$surgical_cassette_print_detail -> delete ();
$surgical_cassette_print -> delete ();
}
Yii :: $app -> session -> setFlash ( 'success' , 'ลบเรียบร้อยแล้ว' );
return $this -> redirect ([ 'print-back' ]);
}
}
}
//จบงาน
//เพิ่ม block ภายนอก
$dataProvider2 = " " ;
$searchCase = new PrintSlideForm ();
$session = Yii :: $app -> session ;
// กำหนดค่าว่าง
$search_id = null ;
$case = null ;
if ( ! $session [ 'add-block' ]) {
$session [ 'add-block' ] = null ;
}
if ( $searchCase -> load ( Yii :: $app -> request -> get ())) {
$session [ 'add-block' ] = substr ( $searchCase -> id_case , 0 , 10 );
//slide_id
$search_id = substr ( $searchCase -> id_case , 0 , 10 );
//slide_no
$session [ 'slide_no' ] = '' ;
$split_no = substr ( $searchCase -> id_case , 10 , 11 );
$get_slide = str_split ( $split_no );
foreach ( $get_slide as $character ) {
$session [ 'slide_no' ] .= $character ;
}
$case = Yii :: $app -> pathology -> getCase ( $search_id );
if ( $case ) {
//var_dump($case->id_case);
//die();
$surgical_cassette_print = new SurgicalCassettePrint ();
$surgical_cassette_print -> id_case = $case -> id_case ;
$surgical_cassette_print -> print_at = date ( 'Y-m-d H:i:s' );
$surgical_cassette_print -> print_by = Yii :: $app -> user -> getId ();
if ( $surgical_cassette_print -> save ()) {
$surgical_cassette_print_detail = new SurgicalCassettePrintDetail ();
$surgical_cassette_print_detail -> surgical_cassette_print_id = $surgical_cassette_print -> id ;
$surgical_cassette_print_detail -> id_case = $case -> id_case ;
$surgical_cassette_print_detail -> block_no = $session [ 'slide_no' ];
$surgical_cassette_print_detail -> print_block_at = date ( 'Y-m-d H:i:s' );
$surgical_cassette_print_detail -> sent_slide_at = date ( 'Y-m-d H:i:s' );
$surgical_cassette_print_detail -> status = 1 ;
$surgical_cassette_print_detail -> save ();
Yii :: $app -> session -> addFlash ( 'success' , 'สั่งพิมพ์ Cassette: ' . $case -> id_case . ' ' . $session [ 'slide_no' ] . ' แล้ว' );
} else {
//var_dump($surgical_cassette_print->getFirstErrors());
//die();
}
}
}
//จบฟังชั่น เพิ่ม block ภายนอก
return $this -> render ( 'print-back' , [
'searchModel' => $searchModel ,
'dataProvider' => $dataProvider ,
'dataProvider2' => $dataProvider2 ,
'searchCase' => $searchCase ,
'case' => $case ,
]);
}
public function actionBlockPrintOut ()
{
$searchCase = new PrintSlideForm ();
$session = Yii :: $app -> session ;
if ( ! $session [ 'block' ]) {
$session [ 'block' ] = null ;
}
if ( $searchCase -> load ( Yii :: $app -> request -> get ())) {
$session [ 'block' ] = $searchCase -> id_case ;
}
//$model = CaseSurgical::findOne(['id_case' => Yii::$app->session['block']]);
$model = Yii :: $app -> pathology -> getCase ( Yii :: $app -> session [ 'block' ]);
if ( $model ) {
if ( Yii :: $app -> request -> post ( 'selection' )) {
$selection = ( array ) Yii :: $app -> request -> post ( 'selection' ); // รับค่ามาเป็น array
$surgical_slide_print = ( array ) Yii :: $app -> request -> post ( 'SurgicalCassettePrint' ); // รับค่ามาเป็น array
//var_dump($selection);
//var_dump($surgical_slide_print);
//die();
foreach ( $selection as $key => $value ) {
$surgical_cassette_print = new SurgicalCassettePrint ();
$surgical_cassette_print -> id_case = $model -> id_case ;
$surgical_cassette_print -> print_at = date ( 'Y-m-d H:i:s' );
$surgical_cassette_print -> print_by = Yii :: $app -> user -> getId ();
/** check content */
$parts1 = substr ( $value , 0 , 1 );
$parts2 = substr ( $value , 1 , 2 );
$chars1 = str_split ( $parts1 );
$chars2 = str_split ( $parts2 );
// Converting arrays to strings
$stringChars1 = implode ( " " , $chars1 );
$stringChars2 = implode ( " " , $chars2 );
$content = $model -> id_case . '$' . $stringChars2 . '$' . $stringChars1 . '$' . '$' ;
/** */
$surgical_cassette_print -> remark = $content ;
$surgical_cassette_print_check = SurgicalCassettePrint :: find () -> where ([ 'id_case' => $surgical_cassette_print -> id_case ]) -> andWhere ([ 'remark' => $surgical_cassette_print -> remark ]) -> one ();
if ( ! $surgical_cassette_print_check ) {
if ( $surgical_cassette_print -> save ()) {
$surgical_cassette_print_detail = new SurgicalCassettePrintDetail ();
$surgical_cassette_print_detail -> surgical_cassette_print_id = $surgical_cassette_print -> id ;
$surgical_cassette_print_detail -> id_case = $model -> id_case ;
$surgical_cassette_print_detail -> block_no = $value ;
$surgical_cassette_print_detail -> print_block_at = date ( 'Y-m-d H:i:s' );
$surgical_cassette_print_detail -> sent_slide_at = date ( 'Y-m-d H:i:s' );
$surgical_cassette_print_detail -> status = 1 ;
$surgical_cassette_print_detail -> save ();
Yii :: $app -> session -> addFlash ( 'success' , 'สั่งพิมพ์ Cassette: ' . $model -> id_case . ' ' . $value . ' แล้ว' );
// Save the content to the file
} else {
//var_dump($surgical_cassette_print->getFirstErrors());
//die();
}
} else {
Yii :: $app -> session -> addFlash ( 'danger' , 'เคยมีการสั่งพิมพ์ Cassette: ' . $model -> id_case . ' ' . $value . ' แล้ว' );
}
}
}
}
return $this -> render ( 'block-print-out' , [
'searchCase' => $searchCase ,
'model' => $model ,
]);
}
public function actionBlockDayBetweenSearch ()
{
$searchModel = new PrintBlockDayBetweenSearch ();
$dataProvider = $searchModel -> search ( Yii :: $app -> request -> queryParams );
$dataProvider -> query -> andFilterWhere ([ 'is not' , 'print_block_at' , new Expression ( 'NULL' )]);
return $this -> render ( 'block-day-between-search' , [
'searchModel' => $searchModel ,
'dataProvider' => $dataProvider
]);
}
2024-12-27 09:24:36 +00:00
public function actionBlockPrintSr ()
{
$searchCase = new PrintSlideForm ();
$session = Yii :: $app -> session ;
if ( ! $session [ 'block' ]) {
$session [ 'block' ] = null ;
}
if ( $searchCase -> load ( Yii :: $app -> request -> get ())) {
$session [ 'block' ] = $searchCase -> id_case ;
}
$model = CaseSurgical :: findOne ([ 'id_case' => Yii :: $app -> session [ 'block' ]]);
if ( $model ) {
if ( Yii :: $app -> request -> post ( 'selection' )) {
$selection = ( array ) Yii :: $app -> request -> post ( 'selection' ); // รับค่ามาเป็น array
$surgical_slide_print = ( array ) Yii :: $app -> request -> post ( 'SurgicalCassettePrint' ); // รับค่ามาเป็น array
//var_dump($selection);
//var_dump($surgical_slide_print);
//die();
foreach ( $selection as $key => $value ) {
$surgical_cassette_print = new SurgicalCassettePrint ();
$surgical_cassette_print -> id_case = $model -> id_case ;
$surgical_cassette_print -> print_at = date ( 'Y-m-d H:i:s' );
$surgical_cassette_print -> print_by = Yii :: $app -> user -> getId ();
$filePath = '' ;
if ( $surgical_slide_print [ 'items' ][ $value ][ 'printer' ] == 1 ) {
// Actions to perform for 'print_slide1'
//$filePath = Yii::getAlias('@webroot') . '/surgical_block_print1/' . $model->id_case . '_' . $surgical_slide->no_slide . '_' . $surgical_slide->id . '.txt';
$filePath = Yii :: getAlias ( '@webroot' ) . '/surgical_block_print1/' . $model -> id_case . '_' ;
$filePath .= $value . '.txt' ;
// Other related actions...
}
if ( $surgical_slide_print [ 'items' ][ $value ][ 'printer' ] == 2 ) {
// Actions to perform for 'print_slide1'
//$filePath = Yii::getAlias('@webroot') . '/surgical_block_print2/' . $model->id_case . '_' . $surgical_slide->no_slide . '_' . $surgical_slide->id . '.txt';
$filePath = Yii :: getAlias ( '@webroot' ) . '/surgical_block_print2/' . $model -> id_case . '_' ;
$filePath .= $value . '.txt' ;
// Other related actions...
}
/** check content */
$parts1 = substr ( $value , 0 , 1 );
$parts2 = substr ( $value , 1 , 2 );
$chars1 = str_split ( $parts1 );
$chars2 = str_split ( $parts2 );
// Converting arrays to strings
$stringChars1 = implode ( " " , $chars1 );
$stringChars2 = implode ( " " , $chars2 );
$content = $model -> id_case . '$' . $stringChars2 . '$' . $stringChars1 . '$' . $surgical_slide_print [ 'items' ][ $value ][ 'slide_pathology' ];
/** */
$surgical_cassette_print -> remark = $surgical_slide_print [ 'items' ][ $value ][ 'printer' ];
$surgical_cassette_print -> remark = $content ;
$surgical_cassette_print_check = SurgicalCassettePrint :: find () -> where ([ 'id_case' => $surgical_cassette_print -> id_case ]) -> andWhere ([ 'remark' => $surgical_cassette_print -> remark ]) -> one ();
if ( ! $surgical_cassette_print_check ) {
if ( $surgical_cassette_print -> save ()) {
$surgical_cassette_print_detail = new SurgicalCassettePrintDetail ();
$surgical_cassette_print_detail -> surgical_cassette_print_id = $surgical_cassette_print -> id ;
$surgical_cassette_print_detail -> id_case = $model -> id_case ;
$surgical_cassette_print_detail -> block_no = $value ;
$surgical_cassette_print_detail -> print_block_at = date ( 'Y-m-d H:i:s' );
$surgical_cassette_print_detail -> save ();
Yii :: $app -> session -> addFlash ( 'success' , 'สั่งพิมพ์ Cassette: ' . $model -> id_case . ' ' . $value . ' แล้ว' );
// Save the content to the file
file_put_contents ( $filePath , $content , FILE_APPEND );
} else {
var_dump ( $surgical_cassette_print -> getFirstErrors ());
die ();
}
} else {
Yii :: $app -> session -> addFlash ( 'danger' , 'เคยมีการสั่งพิมพ์ Cassette: ' . $model -> id_case . ' ' . $value . ' แล้ว' );
}
}
}
}
return $this -> render ( 'block-print-sr' , [
'searchCase' => $searchCase ,
'model' => $model ,
]);
}
2025-06-10 08:41:29 +00:00
}