วันพฤหัสบดีที่ 23 มิถุนายน พ.ศ. 2565

Winscp Sync กับ Linux Server

 https://www.youtube.com/watch?v=H3wBJgmXZUg
https://www.youtube.com/watch?v=g5T1Ahy2RkM //Genarate Key

ปัญหาหลักของการทำงานผม คือ  ขีเกียจ มานั่ง Download File Backup จาก Server มาไว้ในเครื่อง

ก็เลยหาวิธีช่วย ดังนี้

  1. Download  WinSCP มาติดตั้งเครื่อง Windows   โดยผมติดตั้งไว้ Drive D:
  2. เขียน batch file  ขึ้นมา 2 ไฟล์  ดังนี้
    file.txt 
    option batch abort
    option confirm off
    open sftp://root:123456@192.168.0.11:22     # root คือ ชื่อ User  123456 คือ รหัสผ่าน 192.168.0.11 คือ  IP Server ที่จะเข้าไปเอาไฟล์    22  คือ port
    cd /backup/db    #Folder  ที่เก็บไฟล์ไว้
    option transfer binary

    synchronize local E:\ฺBackup\    /backup/db       #ทำการ Sync ข้อมูล จาก /backup/db  –> E:\ฺBackup\     * local  คือ ดึงลงมาอย่างเดียว  ถ้าต้องการ ให้ทั้ง 2 Folder มีข้อมูลเท่ากัน  ก็ใหใช้   both แทน
    close
    exit

    ftprun.cmd
    D:\WinSCP\WinSCP.exe  /script=E:\file.txt

  3. สร้าง Task Scheduler บน windows  เพื่อให้ ทำงาน อัตโนมัต
  4. รอ ตรวจสอบไฟล์     ที่มา https://www.csriu14.com/cs1/?p=700

วันจันทร์ที่ 20 มิถุนายน พ.ศ. 2565

Code สั่งรันปุ่ม submit อัตโนมัติ


Code  สั่งรันปุ่ม submit อัตโนมัติ
<script type="text/javascript">
setTimeout("form1.submit();",5000);
//5000 อยากได้เร็วก็กำหนดตัวเลขน้อยๆเอานะ
</script>

วันพฤหัสบดีที่ 16 มิถุนายน พ.ศ. 2565

xampp mysql shutdown unexpectedly

วิธีแก้ xampp mysql shutdown unexpectedly
https://www.youtube.com/watch?v=5xEN5Yn_Jow

schedule new version 2

 SELECT

    concat('P',c.visit_id) as immunization_plan_schedule_ref_code,

    ae.exp_date as schedule_date,

    c.dose_time as  treatment_number,

    c.dose_time as schedule_description,

    'Y' as complete,

     c.vac_date as visit_date

    FROM cid_vaccinate_v2 c

    LEFT  JOIN vaccinecovid ae on ae.vaccine_id = c.vaccine_id and ae.is_cancel = 0 and c.is_cancel= 0

    WHERE c.visit_id = '0002476517'

    GROUP BY c.vac_date

วันอังคารที่ 14 มิถุนายน พ.ศ. 2565

ํYii2 Upload File pdf แล้วให้คลิก Preview ได้เลย

 Models

public function listDownloadFiles($type){
        $docs_file = '';
        if(in_array($type, ['covenant'])){
                $data = $type==='docs'?$this->docs:$this->covenant;
                $files = Json::decode($data);
               if(is_array($files)){
                    $docs_file ='<ul>';
                    foreach ($files as $key => $value) {
                       $docs_file .= '<li>'.Html::a($value,['/pdpa65/download','id'=>$this->id,'file'=>$key,'file_name'=>$value]).'</li>';
                    }
                    $docs_file .='</ul>';
               }
        }
   
        return $docs_file;
       }

Gridview

 ['attribute'=>'covenant','value'=>function($model){return $model->listDownloadFiles('covenant');},'format'=>'html'],

ที่ Controllor

public function actionDownload($id,$file,$file_name){
        $model = $this->findModel($id);
         
        if (!empty($model->ref) && !empty($model->docs)) {
            if (substr($file_name, -3) == 'pdf') {
                return Yii::$app->response->sendFile($model->getUploadPath() . '/' . $model->ref . '/' . $file, $file_name, ['inline' => true]);
            } else {
                Yii::$app->response->sendFile($model->getUploadPath() . '/' . $model->ref . '/' . $file, $file_name);
            }
        }else{
            $this->redirect(['/pdpa65/view','id'=>$id]);
        }
    }

Yii2 multi Gridview หน้าเดียวกัน

 ใน Controllor


ModelSearch



ํYii2 ซ่อนข้อความแสดงหัวแถว

 Yii2   ซ่อนข้อความแสดงหัวแถว




 'layout' => '{items}{pager}',

วันพุธที่ 8 มิถุนายน พ.ศ. 2565

Mysql Trigger Log

 begin

       if old.icd10 <> new.icd10 then

INSERT INTO log_opddx(visit_id,new_icd10 ,column_name, old_value, new_value, provider, log_time) 

VALUES(new.visit_id, new.icd10, 'icd10', old.icd10, new.icd10, new.staff_id, NOW());

        end if;

       if old.dxt_id <> new.dxt_id then

            INSERT INTO log_opddx(visit_id, new_icd10,column_name, old_value, new_value, provider, log_time) 

VALUES(new.visit_id, new.icd10, 'dxt_id', old.dxt_id, new.dxt_id, new.staff_id, NOW());

       end if;

       if old.dxg_id <> new.dxg_id then

            INSERT INTO log_opddx(visit_id, new_icd10,column_name, old_value, new_value, provider, log_time) 

VALUES(new.visit_id,  new.icd10,'dxg_id', old.dxg_id, new.dxg_id, new.staff_id, NOW());

       end if;

      

end


begin

if old.visit_id <> new.visit_id then

INSERT INTO log_ipd_reg(visit_id, auto_id, column_name, old_value, new_value, provider, log_time) 

VALUES(new.visit_id, old.auto_id, 'visit_id', old.visit, new.visit_id, new.staff_id, NOW());

end if;

            if old.adm_id <> new.adm_id  then

INSERT INTO log_ipd_reg(visit_id, auto_id, column_name, old_value, new_value, provider, log_time) 

VALUES(new.visit, old.auto_id, 'adm_id', old.adm_id, new.adm_id, new.staff_id, NOW());

end if;

if old.is_cancel <> new.is_cancel  then

INSERT INTO log_ipd_reg(visit_id, auto_id, column_name, old_value, new_value, provider, log_time) 

VALUES(new.visit_id, old.auto_id, 'is_cancel', old.is_cancel, new.is_cancel, new.staff_id, NOW());

end if;

end


create trigger tri_up_log_work

AFTER update ON work

FOR EACH ROW

begin

insert into log_work values(old.work_id,old.work_name,new.work_name,old.work_content,new.work_content,'update',now(),'user');

end;

create trigger update_ipd_reg

AFTER update ON work

FOR EACH ROW

begin

insert into log_ipd_reg values(old.work_id,old.work_name,new.work_name,old.work_content,new.work_content,'update',now(),'user');

end;


วันพฤหัสบดีที่ 2 มิถุนายน พ.ศ. 2565

วันพุธที่ 1 มิถุนายน พ.ศ. 2565

การติดตั้ง FTP Server ด้วย vsftpd ใน Ubuntu server14.04

คำสั่งติดตั้ง

 # sudo apt-get update
# sudo apt-get install  vsftpd
***แก้ไขไฟล์ vsftpd.conf โดยทำการ Backup ไฟล์ใว้***
sudo mv /etc/vsftpd.conf /etc/vsftpd.conf.bak

แล้วสร้างไฟล์ใหม่   
#
sudo nano /etc/vsftpd.conf

ตั้งค่าประมาณนี้

listen=YES

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

nopriv_user=ekgftp

virtual_use_local_privs=YES

guest_enable=YES

user_sub_token=$USER

local_root=/var/www/$USER

chroot_local_user=YES

hide_ids=YES

guest_username=ekgftp

chroot_list_enable=YES

allow_writeable_chroot=YES

chroot_list_enable=YES

chroot_list_file=/etc/ekgftp/chroot_list

*******************************************
#sudo service vsftpd restart
*******************************************
sudo adduser  ekg
sudo passwd ekg
*******************************************
แก้ไขไฟล์ Config vsftpd.conf
sudo nano
/etc/vsftpd/chroot_list
เช่น user01
chmod -R 0755 /home/user01


FTP 192.168.xxx.14, 192.168.xxx.2 ekgftp::::@858480#####   
ln -s /home/ekgftp /var/www/html/ekgftp
เพื่อสร้างการเชื่อมโยงระหว่าง /home/ekgftp กับ /var/www/html ซึ่งระบบจะไปสร้าง shortcut ekgftp ที่ฝั่ง /var/www/html/ekgftp โดยที่เราไม่ต้องไปใช้คำสั่ง mkdir เลย