<% Response.expires = 0 Response.expiresabsolute = Now() - 1 Response.addHeader "pragma", "no-cache" Response.addHeader "cache-control", "private" Response.CacheControl = "no-cache" response.Buffer=true %> <% Group_qry=500 split_dat=3000 ' act times each action server.scripttimeout = 100000 If Session("design-desk-shop-DAT_status") <> "login" Then ' Response.Redirect "login.asp" end if xPart_No=0 xDescription=1 xExtra_desc=2 xPreferred_Supplier=3 xCategory=4 xMakers_RRP=5 xRetail_Price=6 xRetail_Inc=7 xCost_Price=8 xBulk_Qty=9 xActual_Cost=10 xAverage_Cost=11 xVAT_Code=12 xQty_Held=13 xQty_on_Order=14 xUnits=15 xLast_Bought_Date=16 xLast_Sold_Date=17 xBin_No_1=18 xBin_No_2=19 xWeight=20 xBarcode=21 xKudos_Barcode=22 xLast_Stock_Take_Date=23 xStock_type=24 'global DIM g_xpercentage,g_weight_price,g_vat 'Set objFSO = Server.CreateObject("Scripting.FileSystemObject") on error resume next conn_txt.close Set conn_txt= nothing on error goto 0 'Set conn_txt = Server.CreateObject("ADODB.Connection") 'strPathtoTextFile=server.MapPath(".") & "\dat_file\" 'conn_txt.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strPathtoTextFile & ";Extended Properties=""text;HDR=YES;FMT=csvDelimited""" ' conn_txt.Open "DRIVER={Microsoft Text Driver (*.txt; *.csv)};" & _ ' "DBQ=" & strPathtoTextFile & ";", "", "" Set conn = Server.CreateObject("ADODB.Connection") conn.CommandTimeout = 0 conn.open xDb_Conn_Str 'conn.Open xDb_Conn_Str Function Check_dups session("found_dups")=false qry="SELECT Part_No, Count(Part_No) AS How_Many" qry=qry & " FROM accessories_import_tmp " qry=qry & " GROUP BY [part_no] " qry=qry & " HAVING Count(accessories_import_tmp.Part_No) > 1 " xc=DoList( qry,"nothing","nothing.asp?","xid","nothing","100%") if xc<>"" then session("found_dups")=true response.write Xc response.write "
Prceed without Duplicate Records" end if end function function delete_dups qry="DELETE accessories_import_tmp where Part_No in (SELECT Part_No " qry=qry & " FROM accessories_import_tmp " qry=qry & " GROUP BY [part_no] " qry=qry & " HAVING Count(accessories_import_tmp.Part_No) > 1 )" Set rs = conn.Execute(qry) end function Function Delete_tmp_table Set rs_txt = Server.CreateObject("ADODB.Recordset") ' rs_txt.Open "SELECT * FROM [" & file_name &"]", conn_txt, 3, 3 'Now get the default values before deleting Set rs_accessories_tmp = conn.Execute("SELECT TOP 1 * from accessories_import_tmp ") IF not rs_accessories_tmp.eof then g_xpercentage=rs_accessories_tmp("Percentage") g_weight_price=rs_accessories_tmp("WeightPrice") g_vat=rs_accessories_tmp("VAT") else g_xpercentage=200 g_weight_price=0.5 g_vat=0.175 end if Set rs = conn.Execute("DELETE accessories_import_tmp") end function Function Do_insert_FS_read session("insert")="" session("data_dump")="" session("count_err")=0 grouped_sql="" call Delete_tmp_table set f=objFSO.OpenTextFile(strPathtoTextFile&file_name, 1) do while f.AtEndOfStream = false ' do while f.AtEndOfLine=false ' if zCount > 0 then ' ignore 1st line rs_txt = Split( f.ReadLine, ",") IF ubound(rs_txt) > 22 then IF (rs_txt(xPart_No))<>"" THEN 'response.write rs(7) & "-" zWeight="0.00" 'if not isnull(rs_txt(xWeight)) then 'on error resume next yWeight=replace(rs_txt(xWeight),"£","") if isnumeric(yWeight) then zWeight=yWeight end if nzWeight=zWeight ' session("data_dump")= session("data_dump")& "
" & rs_txt(xWeight) & "-"& zWeight ' response.Redirect("msg.asp") '------ zCost_Price="0.00" yCost_Price=replace(rs_txt(xCost_Price),"£","") If isnumeric(yCost_Price) then zCost_Price=formatnumber(yCost_Price,2) end if '---- zExtra_Desc="NA" yExtra_Desc=replace(rs_txt(xExtra_Desc),"'","") If not isnull(yExtra_Desc) then zExtra_Desc=yExtra_Desc end if IF LEN(zExtra_Desc) < 1 then zExtra_Desc="NA" '--- zCategory=" " If not isnull(rs_txt(xCategory)) then zCategory=rs_txt(xCategory) end if '-- zPreferred_Supplier=" " If not isnull(rs_txt(xPreferred_Supplier)) then zPreferred_Supplier=rs_txt(xPreferred_Supplier) end if zPart_No=rs_txt(xPart_No) 'CALS retail_price=c_retail_price(zCost_Price,g_xpercentage,zWeight,g_weight_price) xxretail_inc=cretail_inc(retail_price,g_VAT) 'END cals sSql=" INSERT INTO accessories_import_tmp (Weight,Category,[Product Name],[Preferred Supplier]" sSql=sSql & ",[Retail Price],[Retail inc],[Cost Price],[Part_No]) VALUES (" sSql=sSql & " '"& zWeight &"'," sSql=sSql & " '"& zCategory &"'," sSql=sSql & " '"&zExtra_Desc &"'," sSql=sSql & " '"& zPreferred_Supplier&"'," sSql=sSql & " '"& retail_price&"'," sSql=sSql & " '"& xxretail_inc&"'," sSql=sSql & zCost_Price sSql=sSql & ",'"&zPart_No& "')" 'on error resume next IF zCount > 0 then ' Set rs = conn.Execute(sSql) ' ignore 1st count , the header ' session("data_dump")= session("data_dump")& "
" & sSql & "-"& nzWeight ' response.Redirect("msg.asp") 'GROUPING grouped_sql=grouped_sql& sSql &";" IF zCount mod Group_qry= 0 then conn.Execute(grouped_sql) grouped_sql="" end if ' end if zCount=zCount+1 ' if err.number <>0 then ' session("data_dump")= session("data_dump") & " " & sSql ' err.number =0 ' session("count_err")=session("count_err")+1 'response.redirect "msg.asp" ' end if 'IF instr(zPart_No,"4066") > 0 then session("data_dump")=session("data_dump") & " --" & sSql 'response.write sSql & "
" end if ' p no end if ' ubound 'end if ' zcount 0 line session("txt_line_count")=session("txt_line_count")+1 'if (session("txt_line_count") mod 500)=0 then response.redirect loop ' jus qry if any left if grouped_sql<> "" then conn.Execute(grouped_sql) ' ignore 1st count , the header ' response.redirect "msg.asp" ' response.redirect "msg.asp" zCount=zCount-1 session("insert_count")=zCount call Check_dups if session("found_dups")=false then ' go ahead to other function session("status")= session("status") & " Total Rec in DAT File ( "& session("insert_count") & ")" session("insert")="Complete" response.redirect "import.asp?t=del&msg=Insert+Complete" end if end function function Do_delete if session("insert")="Complete" then ' count to be delete sSql=" SELECT count([Part_No]) as c from Accessories where [Part_No] not in (SELECT [Part_No] from accessories_import_tmp)" Set rs = conn.Execute(sSql) session("deleted")=rs("c") ' do delete sSql=" DELETE Accessories where [Part_No] not in (SELECT [Part_No] from accessories_import_tmp)" Set rs = conn.Execute(sSql) session("status")= session("status") & ">> Deleted ("& session("deleted") & ")" response.redirect "import.asp?t=upd&msg=DELETED" else response.redirect "import.asp?msg=Delete+Failed" end if end function '********UPD Function Do_Update_new grouped_sql="" ' Set rs_accessories_tmp = conn.Execute("SELECT * from accessories_import_tmp where [Part_No] in (select [Part_No] from accessories)") xSQL="SELECT accessories.[Part_No],accessories.Weight, accessories.WeightPrice, accessories.VAT, accessories.Percentage," xSQL=xSQL & " accessories_import_tmp.[Cost Price] FROM accessories_import_tmp INNER JOIN" xSQL=xSQL & " accessories ON accessories_import_tmp.Part_No = accessories.Part_No" Set rs_accessories_tmp = conn.Execute(xSQL) ' nw split work If session("split_count")<>0 then rs_accessories_tmp.move session("split_count") end if do while not rs_accessories_tmp.eof sSql="UPDATE Accessories set " sSql=sSql & " Weight='"& rs_accessories_tmp("Weight") &"'," 'sSql=sSql & " Category ='"& rs_accessories_tmp("Category") &"'," 'sSql=sSql & " [Product Name] ='"&rs_accessories_tmp("Product Name") &"'," 'sSql=sSql & " [Preferred Supplier] ='"& rs_accessories_tmp("Preferred Supplier")&"'," sSql=sSql & " [Cost Price] ="& rs_accessories_tmp("Cost Price") &"," 'CALS Cost_Price=rs_accessories_tmp("Cost Price") xpercentage=rs_accessories_tmp("Percentage") xxweight=rs_accessories_tmp("Weight") weight_price=rs_accessories_tmp("WeightPrice") retail_price=c_retail_price(Cost_Price,xpercentage,xxweight,weight_price) xxretail_inc=cretail_inc(retail_price,rs_accessories_tmp("VAT")) sSql=sSql & " [Retail Price] ='"&retail_price &"'," sSql=sSql & " [Retail inc] ='"& xxretail_inc&"'" 'END cals sSql=sSql & " WHERE [Part_No]= '"&rs_accessories_tmp("Part_No") & "'" on error resume next ' Set rs_update = conn.Execute(sSql) grouped_sql=grouped_sql& sSql &";" IF zCount mod Group_qry= 0 then conn.Execute(grouped_sql) grouped_sql="" end if if err.number <>0 then session("data_dump")=session("data_dump") & " " & grouped_sql & "--"& sSql '&"--"& Err.Description &"-"& Err.Source&"-"& Err.Line session("aborted_sql")=session("aborted_sql") & sSql &";" ' response.redirect "msg.asp" ' err.number =0 ' session("count_err")=session("count_err")+1 end if 'response.write sSql & "
" zCount=zCount+1 'New dat split session("split_count")=session("split_count")+1 if zCount >= split_dat then if session("split_count") < split_dat +100 then part="B" else part="C" end if ' response.redirect "import.asp?spl=t&msg=Part+Complete" if grouped_sql<>"" then conn.Execute(grouped_sql) response.redirect "nextpart.asp?c="&session("split_count")&"&p="&part end if rs_accessories_tmp.movenext Loop if grouped_sql<> "" then conn.Execute(grouped_sql) ' ignore 1st count , the header ' session("Updated")=zCount session("Updated")=session("split_count") session("status")= session("status") & " >> Updated (" & session("Updated")& ")" session("split_count")=0 Set rs_txt = Nothing ' response.redirect "import.asp?t=ins&msg=UPDATED" End Function '************************ function do_insert_new sql =sql & "select count([Part_No]) as c from accessories_import_tmp where [Part_No] not in (SELECT [Part_No] from accessories)" Set rs = conn.Execute(sql) session("insert_new")=rs("c") session("status")= session("status") & " >> New Added (" & session("insert_new")& ")" sql ="INSERT into Accessories SELECT * from accessories_import_tmp where " sql =sql & "[Part_No] not in (SELECT [Part_No] from accessories)" Set rs = conn.Execute(sql) ' session("data_dump")=sql ' response.redirect "msg.asp" session("progress_stat")=session("progress_stat") & "Done]" '** objFSO.DeleteFile strPathtoTextFile&file_name, true response.redirect "import.asp?msg=All+Steps+Complete" end function '****************************************************************************** session("start_time")=now 'STEP 1 (Import to tmp) if request.QueryString("import")="t" then session("status")="" session("progress_stat")= "[Importing To Temp Table........." if check_file = false then response.redirect "import.asp?msg=Text+File+Not+Found" 'Do_insert_all_tmp(file_name) Do_insert_FS_read ' session("insert")="Complete" ' response.redirect "import.asp?t=del&msg=Insert+Complete" ' end if '***************** response.write "
--------------------------------------------
" response.write session("progress_stat") response.write "
--------------------------------------------
" response.Write session("status")& "
" response.write "--------------------------------------------
" response.Write "

" & request.QueryString("msg") & "
" 'STEP 2 (Dete unwanted) if request.QueryString("t")="del" then session("progress_stat")=session("progress_stat") & "Done]
[Deleteing....." call Do_Delete end if 'STEP 3 (Update existing) if request.QueryString("t")="upd" then session("progress_stat")=session("progress_stat") & "Done]
[Updating....." call Do_Update_new response.redirect "import.asp?t=ins&msg=UPDATED" end if 'STEP 4 (Add New) if request.QueryString("t")="ins" then session("progress_stat")=session("progress_stat") & "Done]
[Adding New records....." call Do_insert_new end if 'NEW step dups if request.querystring("dups")<>"" then 'allow dups do STEP 2 call delete_dups session("status")= session("status") & " Total Rec in DAT File ( "& session("insert_count") & ")" session("insert")="Complete" response.redirect "import.asp?t=del&msg=Insert+Complete" session("progress_stat")=session("progress_stat") & "Done]
[Deleteing....." call Do_Delete end if '*************NEW 'STEP 3 (Update existing) if request.QueryString("spl")="t" then session("progress_stat")=session("progress_stat") & "Done]
[Updating.....As Phases......" call Do_Update_new response.redirect "import.asp?t=ins&msg=UPDATED" end if response.write "
Logout

" response.write "Back To Menu" 'response.write "
" & session("data_dump") & "---"& session("count_err") if session("aborted_sql")<>"" THEN conn.Execute(session("aborted_sql")) session("aborted_sql")="" 'response.redirect "msg.asp?finala+fixed" end if session("aborted_sql")="" on error resume next conn.close Set conn= nothing on error goto 0 %>