Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Sarun Mungthanya
SpnPatch-Laravel
Commits
3df476aa
Commit
3df476aa
authored
Dec 03, 2024
by
Sarun Mungthanya
Browse files
issue tis
parent
553ca807
Changes
1
Show whitespace changes
Inline
Side-by-side
app/Http/Controllers/MasterFileController.php
View file @
3df476aa
...
...
@@ -46,7 +46,7 @@ class MasterFileController extends Controller
if
(
$request
->
createPatch
)
{
$sqlPackAll
=
$this
->
readTxt
(
$filePath
,
$formatData
,
$fileFormat
,
$request
->
limit
,
$request
->
noLimit
);
$this
->
processPatches
(
$sqlPackAll
,
$fileFormat
,
$request
->
genWithSmartUpdate
);
$this
->
processPatches
(
$sqlPackAll
,
$fileFormat
,
$request
->
genWithSmartUpdate
,
$request
->
noLimit
);
$message
.
=
'Patch master file created successfully. '
;
}
...
...
@@ -95,50 +95,106 @@ class MasterFileController extends Controller
]);
}
private
function
processPatches
(
$sqlPackAll
,
$fileFormat
,
$gen
With
SmartUpdate
)
function
processPatches
(
$sqlPackAll
,
$fileFormat
,
$gen
Spn
SmartUpdate
Decode
,
$noLimit
)
{
$uid
=
auth
()
->
id
();
$uid
=
auth
()
->
user
()
->
id
;
$pLevel
=
"Critical"
;
$nameFormat
=
$fileFormat
->
name
??
'Unknown Format'
;
$level
=
"Critical"
;
$date
=
Carbon
::
now
();
foreach
(
$sqlPackAll
as
$index
=>
$sqlPack
)
{
$patchCode
=
$this
->
generatePatchCode
(
$sqlPack
,
$genWithSmartUpdate
);
$this
->
savePatch
(
$patchCode
,
$nameFormat
,
$level
,
$uid
,
$date
);
}
$pDesc
=
$nameFormat
;
$day
=
Date
(
'j'
);
$month
=
Date
(
'n'
);
$year
=
Date
(
'Y'
);
$pApproveDate
=
date
(
"Y-m-d h:i:s"
);
$partPatch
=
''
;
$countSql
=
count
(
$sqlPackAll
);
$part
=
1
;
foreach
(
$sqlPackAll
as
$i__
=>
$sqlPack
)
{
if
(
$countSql
!=
1
&&
!
$noLimit
)
{
$partPatch
=
'Part '
.
$part
++
;
}
$tis620_encoded
=
iconv
(
'UTF-8'
,
'TIS-620'
,
var_export
(
$sqlPack
,
true
));
$ALL64
=
base64_encode
(
gzcompress
(
$tis620_encoded
));
private
function
generatePatchCode
(
$sqlPack
,
$genWithSmartUpdate
)
{
$all64
=
base64_encode
(
gzcompress
(
iconv
(
'UTF-8'
,
'TIS-620'
,
var_export
(
$sqlPack
,
true
))));
$patchCode
=
"
\$
ALL64=
\"
{
$all64
}
\"
;
\n
"
;
if
(
$genWithSmartUpdate
)
{
$patchCode
.
=
"
\$
ALLVAR=gzuncompress(spnsmartupdatedecode(
\$
ALL64));
\n
"
;
$patchCode
=
'$ALL64="'
.
$ALL64
.
'";'
.
"
\n
"
;
if
(
$genSpnSmartUpdateDecode
)
{
$updatedecode
=
'$ALLVAR=gzuncompress(spnsmartupdatedecode($ALL64));'
.
"
\n
"
;
}
else
{
$patchC
ode
.
=
"
\
$
ALLVAR=gzuncompress(base64_decode(
\
$
ALL64));
\n
"
;
$updatedec
ode
=
'
$ALLVAR=gzuncompress(base64_decode($ALL64));
'
.
"
\n
"
;
}
$patchCode
.
=
$updatedecode
;
$patchCode
.
=
"eval('
\$
SQL='."
.
'$ALLVAR.";");'
.
"
\n
"
;
$patchCode
.
=
$this
->
generatePatchCode
(
$countSql
,
$i__
);
if
(
$noLimit
&&
(
$i__
==
$countSql
-
1
))
{
$this
->
savePatch
(
$patchCode
,
$nameFormat
,
$day
,
$month
,
$year
,
$partPatch
,
$pLevel
,
$pDesc
,
$uid
,
$pApproveDate
);
}
elseif
(
!
$noLimit
)
{
$this
->
savePatch
(
$patchCode
,
$nameFormat
,
$day
,
$month
,
$year
,
$partPatch
,
$pLevel
,
$pDesc
,
$uid
,
$pApproveDate
);
}
}
}
private
function
generatePatchCode
(
$countSql
,
$i__
)
{
$patchCode
=
''
;
$patchCode
.
=
'$insert=$SQL["insert"];'
.
"
\n
"
;
$patchCode
.
=
'$update=$SQL["update"];'
.
"
\n
"
;
$patchCode
.
=
'$select=$SQL["select"];'
.
"
\n
"
;
$patchCode
.
=
'$select2=$SQL["select2"];'
.
"
\n
"
;
$patchCode
.
=
'$DATABASE=$SQL["DATABASE"];'
.
"
\n
"
;
$patchCode
.
=
'$CountSQL_=count($insert);'
.
"
\n
"
;
$patchCode
.
=
'$succ="0";'
.
"
\n
"
;
$patchCode
.
=
'$succ2="0";'
.
"
\n
"
;
$patchCode
.
=
'for($i_=0;$i_<$CountSQL_;$i_++){'
.
"
\n
"
;
$patchCode
.
=
' $INSERT_ID="";'
.
"
\n
"
;
$patchCode
.
=
' if($DBTYPE=="MYSQL"){'
.
"
\n
"
;
$patchCode
.
=
' $sql=$insert[$i_]." ON DUPLICATE KEY UPDATE ".$update[$i_];'
.
"
\n
"
;
$patchCode
.
=
' }'
.
"
\n
"
;
$patchCode
.
=
' if($DBTYPE=="MSSQL"){'
.
"
\n
"
;
$patchCode
.
=
' $sql="IF EXISTS (".$select[$i_].") BEGIN UPDATE $DATABASE SET ".$update[$i_].$select2[$i_]." END ELSE ".$insert[$i_];'
.
"
\n
"
;
$patchCode
.
=
' }'
.
"
\n
"
;
$patchCode
.
=
' exec_query($sql);'
.
"
\n
"
;
$patchCode
.
=
' $succ++;'
.
"
\n
"
;
$patchCode
.
=
' if($INSERT_ID!=""){$succ2++;}'
.
"
\n
"
;
$patchCode
.
=
'}'
.
"
\n
"
;
$patchCode
.
=
'unset($ALL64);'
.
"
\n
"
;
$patchCode
.
=
'unset($ALLVAR);'
.
"
\n
"
;
$patchCode
.
=
'unset($SQL);'
.
"
\n
"
;
$patchCode
.
=
'unset($insert);'
.
"
\n
"
;
$patchCode
.
=
'unset($update);'
.
"
\n
"
;
$patchCode
.
=
'unset($select);'
.
"
\n
"
;
$patchCode
.
=
'unset($select2);'
.
"
\n
"
;
$patchCode
.
=
'$PRINT_ .= date("h:i:s")." Process '
.
(
$i__
+
1
)
.
' / '
.
$countSql
.
' Successful Update $succ data(s) (Added = $succ2) from $CountSQL_.</br>";'
.
"
\n
"
;
return
$patchCode
;
}
private
function
savePatch
(
$patchCode
,
$name
F
ormat
,
$
level
,
$uid
,
$date
)
private
function
savePatch
(
$patchCode
,
$name
f
ormat
,
$
day
,
$month
,
$year
,
$partPatch
,
$PLEVEL
,
$PDESC
,
$UID
,
$PAPPROVEDATE
)
{
DB
::
table
(
'conf_smartupdate'
)
->
insert
([
'PATCHNAME'
=>
"Update Master File
{
$nameFormat
}
"
.
$date
->
toFormattedDateString
(),
'PDATE'
=>
$date
,
'PLEVEL'
=>
$level
,
$patchCode
.
=
'$PRINTOUT=$PRINT_;'
.
"
\n
"
;
$patchCode
.
=
'$PATCH_STATUS="OK";'
.
"
\n
"
;
// $patchCode = str_replace("'", "''", $patchCode);
$data
=
[
'PATCHNAME'
=>
"Update Master File
$nameformat
วันที่
$day
เดือน
$month
ปี
$year
$partPatch
"
,
'PDATE'
=>
Carbon
::
now
(),
'PLEVEL'
=>
$PLEVEL
,
'PCODE'
=>
'SHIPPINGNET'
,
'PDESC'
=>
$nameFormat
,
'POWNER'
=>
$uid
,
'MAJOR_VERSION'
=>
'ALL'
,
'PDESC'
=>
$PDESC
,
'POWNER'
=>
$UID
,
'PTYPE'
=>
'UPDATE MASTER'
,
'PA
TCHCODE'
=>
iconv
(
"UTF-8"
,
"TIS-620"
,
$patchCode
)
,
'PA
PPROVEDATE'
=>
now
(
),
'
MAJOR_VERTSION'
=>
'ALL
'
,
'PA
PPROVEDATE'
=>
$PAPPROVEDATE
,
'PA
TCHCODE'
=>
iconv
(
"utf-8"
,
"tis-620"
,
$patchCode
),
'
UNINSTALL'
=>
'$DONE=1;
'
,
'PATCHCODE_SERVER'
=>
'$DONE=1;'
,
'UNINSTALL'
=>
'$DONE=1;'
];
]
);
DB
::
table
(
'conf_smartupdate'
)
->
insert
(
$data
);
}
private
function
readTxt
(
$filePath
,
$formatData
,
$ac
,
$limit
=
10000
,
$noLimit
=
false
)
...
...
@@ -152,13 +208,13 @@ class MasterFileController extends Controller
while
(
!
feof
(
$fileHandle
))
{
$sqlPack
=
[];
$text
=
fgets
(
$fileHandle
);
try
{
$text
=
iconv
(
'TIS-620'
,
'UTF-8'
,
$text
);
}
catch
(
\
Throwable
$th
)
{
$encoding
=
mb_detect_encoding
(
$text
,
[
'UTF-8'
,
'ISO-8859-1'
,
'ASCII'
],
true
);
//
try {
//
$text = iconv('TIS-620', 'UTF-8', $text);
//
} catch (\Throwable $th) {
$encoding
=
mb_detect_encoding
(
$text
,
[
'UTF-8'
,
'ISO-8859-1'
,
'ASCII'
,
'TIS-620'
],
true
);
$text
=
iconv
(
$encoding
,
'UTF-8'
,
$text
);
}
//
}
$X
=
$Y
=
$Z
=
0
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment