/beta/shopfloor/costs.asp

http://github.com/khaneh/Orders · ASP · 456 lines · 436 code · 19 blank · 1 comment · 100 complexity · a45a873208d4b566a28386562bc091fc MD5 · raw file

  1. <%@LANGUAGE="VBSCRIPT" CODEPAGE="1256"%><%
  2. 'shopfloor (3)
  3. PageTitle=" "
  4. SubmenuItem=7
  5. if not Auth(3 , 7) then NotAllowdToViewThisPage()
  6. %>
  7. <!--#include file="top.asp" -->
  8. <!--#include File="../include_farsiDateHandling.asp"-->
  9. <!--#include File="../include_UtilFunctions.asp"-->
  10. <STYLE>
  11. li{margin: 8px 10px 0 0;}
  12. .orderColor {background-color: black;color: yellow;}
  13. .quoteColor {background-color: #559;color: yellow;}
  14. .quoteColor td a:link{color: yellow;}
  15. .quoteColor td a:visited{color: #47FF00;}
  16. .quoteColor td a:hover{color: red;}
  17. .orderColor td a:link{color: yellow;}
  18. .orderColor td a:visited{color: #47FF00;}
  19. .orderColor td a:hover{color: red;}
  20. .grayColor{background-color: #ccc;}
  21. span.stName{padding: 0 5px;font-family: "b zar";font-weight: bold;font-size: 12px;color: #b04444}
  22. </STYLE>
  23. <script type="text/javascript">
  24. $(document).ready(function(){
  25. $.ajaxSetup({
  26. cache: false
  27. });
  28. function dateDiff( str1, str2 ) {
  29. var diff = Date( str2 ) - Date( str1 );
  30. return isNaN( diff ) ? NaN : {
  31. diff : diff,
  32. ms : Math.floor( diff % 1000 ),
  33. s : Math.floor( diff / 1000 % 60 ),
  34. m : Math.floor( diff / 60000 % 60 ),
  35. h : Math.floor( diff / 3600000 % 24 ),
  36. d : Math.floor( diff / 86400000 )
  37. };
  38. }
  39. function checkBut(obj){
  40. var ret = true;
  41. if ($("#is_count").val()=="True"){
  42. if ($("#is_countinuous").val()=="True"){
  43. ret = ret && ($.isNumeric($("#startCounter").val()) && $.isNumeric($("#endCounter").val()) && $.isNumeric($("#order").val()))
  44. } else {
  45. ret = ret && ($.isNumeric($("#qtty").val()) && $.isNumeric($("#order").val()));
  46. }
  47. }
  48. if ($("#is_time").val()=="True"){
  49. if ($("#is_countinuous").val()=="True") {
  50. var lastTime = new Date($("#lastTime").val());
  51. var startTime = new Date($("#start_time").val());
  52. if (lastTime > startTime) {
  53. ret = false;
  54. $("#result").html(" !");
  55. $("#startTime").val(lastTime.getHours()+':'+lastTime.getMinutes());
  56. $("#startDate").val($.format.date(lastTime,"yyyy/MM/dd"));
  57. $("#startDate").focus();
  58. }
  59. }
  60. if ($("#startDate").val()!="" && $("#startTime").val()!="" && $("#endDate").val()!="" && $("#endTime").val()!="") {
  61. var diff = dateDiff(Date($("#start_time").val()+":00"), Date($("#end_time").val()+":00"));
  62. if (diff.diff>0){
  63. var result = " : ";
  64. result += (diff.d>0)? diff.d + " ":"";
  65. result += (diff.h>0)? diff.h + " ":"";
  66. result += (diff.m>0)? diff.m + " ":"";
  67. if (obj.attr('id')!="order")
  68. $("#result").html(result);
  69. //console.log(obj.attr('id'));
  70. if ($("#order_found").val()=="0"){
  71. ret = false;
  72. } else {
  73. ret = ret && true;
  74. }
  75. } else {
  76. if (obj.attr('id')!="order")
  77. $("#result").html(" ѐ .");
  78. ret=false;
  79. }
  80. }
  81. }
  82. //console.log('checked!' + ret);
  83. if (ret)
  84. $("#save").prop("disabled", false);
  85. else
  86. $("#save").prop("disabled", true);
  87. }
  88. function acceptDate(obj){
  89. if (obj.val()=="") {
  90. $("#result").html(" ");
  91. obj.focus();
  92. }
  93. else if (obj.val()=="//") {
  94. var today = new Date();
  95. obj.val($.format.date(today,"yyyy/MM/dd"));
  96. } else {
  97. //var myRegExp = new RegExp("^(13)?[7-9][0-9]/[0-1]?[0-9]/[0-3]?[0-9]$");
  98. var rege=/^(13)?[7-9][0-9]\/[0-1]?[0-9]\/[0-3]?[0-9]$/;
  99. if( rege.test(obj.val()) ) {
  100. var SP = obj.val().split("/");
  101. if (SP[0].length == 2) SP[0] = "13" + SP[0] ;
  102. if (SP[1].length == 1) SP[1] = "0" + SP[1] ;
  103. if (SP[2].length == 1) SP[2] = "0" + SP[2] ;
  104. obj.val(SP.join("/"));
  105. if (obj.attr('id')=="startDate"){
  106. $("#start_time").val($.jalaliCalendar.jalaliToGregorianStr($("#startDate").val()) + " " + $("#startTime").val());
  107. checkBut(obj);
  108. } else if (obj.attr('id')=="endDate"){
  109. $("#end_time").val($.jalaliCalendar.jalaliToGregorianStr($("#endDate").val()) + " " + $("#endTime").val());
  110. checkBut(obj);
  111. }
  112. }
  113. if(!rege.test(obj.val())||( SP[0]<'1376' || SP[1]>'12' || SP[2]>'31' )) {
  114. $("#result").html(" YYYY/MM/DD .");
  115. //obj.select();
  116. obj.focus();
  117. };
  118. }
  119. }
  120. function acceptTime(obj) {
  121. if (obj.val()=="") {
  122. $("#result").html(" .");
  123. obj.focus();
  124. } else if (obj.val()==":"){
  125. var now = new Date();
  126. obj.val(now.getHours()+':'+now.getMinutes());
  127. //var myRegExp = new RegExp("^[0-2]?[0-9]:[0-5]?[0-9]$");
  128. var rege = /^[0-2]?[0-9]:[0-5]?[0-9]$/;
  129. if( rege.test(obj.val()) ) {
  130. var SP = obj.val().split(":");
  131. if (SP[0].length == 1) SP[0] = "0" + SP[0] ;
  132. if (SP[1].length == 1) SP[1] = "0" + SP[1] ;
  133. obj.val(SP.join(":"));
  134. if (obj.attr('id')=="startTime"){
  135. $("#start_time").val($.jalaliCalendar.jalaliToGregorianStr($("#startDate").val()) + " " + $("#startTime").val());
  136. checkBut(obj);
  137. } else if (obj.attr('id')=="endTime"){
  138. $("#end_time").val($.jalaliCalendar.jalaliToGregorianStr($("#endDate").val()) + " " + $("#endTime").val());
  139. checkBut(obj);
  140. }
  141. }
  142. } else {
  143. //var myRegExp = new RegExp("^[0-2]?[0-9]:[0-5]?[0-9]$");
  144. var rege = /^[0-2]?[0-9]:[0-5]?[0-9]$/;
  145. if( rege.test(obj.val()) ) {
  146. var SP = obj.val().split(":");
  147. if (SP[0].length == 1) SP[0] = "0" + SP[0] ;
  148. if (SP[1].length == 1) SP[1] = "0" + SP[1] ;
  149. obj.val(SP.join(":"));
  150. if (obj.attr('id')=="startTime"){
  151. $("#start_time").val($.jalaliCalendar.jalaliToGregorianStr($("#startDate").val()) + " " + $("#startTime").val());
  152. checkBut(obj);
  153. } else if (obj.attr('id')=="endTime"){
  154. $("#end_time").val($.jalaliCalendar.jalaliToGregorianStr($("#endDate").val()) + " " + $("#endTime").val());
  155. checkBut(obj);
  156. }
  157. }
  158. if(!rege.test(obj.val())||( SP[0]>23 || SP[1]>59)) {
  159. $("#result").html(" HH:MM .");
  160. obj.focus();
  161. };
  162. }
  163. }
  164. if ($("#is_countinuous").val()=="True" && $("#is_count").val()=="True"){
  165. $("#result").html(ajax_load);
  166. $("#startCounter").ready(function(){
  167. $.getJSON(loadUrl,
  168. {act:"counter",operation_type:$("input[name=operation_type]:checked").val(),driver_id:$("#driver_id").val()},
  169. function(json){
  170. if (json.lastCounter>0) {
  171. $("#result").html(" ");
  172. $("#startCounter").val(json.lastCounter+1);
  173. //$("#endCounter").focus();
  174. $("#startCounter").focus();
  175. } else{
  176. $("#result").html(" ");
  177. $("#startCounter").val(json.lastCounter);
  178. $("#startCounter").focus();
  179. }
  180. }
  181. );
  182. });
  183. }
  184. if ($("#is_countinuous").val()=="True" && $("#is_time").val()=="True"){
  185. $("#result").html(ajax_load);
  186. $("#start_time").ready(function(){
  187. $.getJSON(loadUrl,
  188. {act:"time",operation_type:$("input[name=operation_type]:checked").val(),driver_id:$("#driver_id").val()},
  189. function(json){
  190. if (json.foundLastTime=='0') {
  191. $("#result").html(" !");
  192. today =new Date();
  193. //$("#start_time").val($.jalaliCalendar.gregorianToJalaliStr('2012/4/17'));
  194. //$("#startDate").val($.jalaliCalendar.jalaliToGregorianStr('1391/1/29'));
  195. $("#startDate").val($.format.date(today,"yyyy/MM/dd"));
  196. $("#start_time").val($.jalaliCalendar.jalaliToGregorianStr($("#startDate").val()));
  197. $("#endDate").val($.format.date(today,"yyyy/MM/dd"));
  198. $("#end_time").val($.jalaliCalendar.jalaliToGregorianStr($("#endDate").val()));
  199. $("#startDate").focus();
  200. //console.log('today');
  201. } else{
  202. if (json.isNewDay=='1'){
  203. $("#result").html(" ϡ .");
  204. $("#startDate").focus();
  205. $("#lastTime").val(json.lastTime.replace(RegExp('-','g'),'/'));
  206. } else {
  207. $("#lastTime").val(json.lastTime.replace(RegExp('-','g'),'/'));
  208. var lastTime = new Date($("#lastTime").val());
  209. $("#startDate").val($.jalaliCalendar.gregorianToJalaliStr(json.lastTime));
  210. $("#startTime").val(lastTime.getHours()+':'+lastTime.getMinutes());
  211. $("#startTime").blur();
  212. $("#endDate").focus();
  213. $("#result").html(" <b>" +$("#startDate").val() + "</b> <b>" + $("#startTime").val() + "</b> ϡ ");
  214. }
  215. }
  216. }
  217. );
  218. //$("#endCounter").focus();
  219. $("#startCounter").focus();
  220. });
  221. }
  222. var loadUrl="/service/json_costCheck.asp";
  223. var ajax_load = "<img src=\'/css/images/ajax-loader.gif\' width='20px' alt='Loading '>";
  224. $("#startCounter").blur(function(){
  225. //$("#result").html(ajax_load).load(loadUrl,"act=counter");
  226. if ($.isNumeric($("#startCounter").val()) && parseFloat($("#startCounter").val())>0){
  227. //$("#endCounter").focus();
  228. //console.log("endCounter");
  229. ;
  230. } else {
  231. $("#startCounter").val("");
  232. $("#startCounter").focus();
  233. }
  234. });
  235. $("#startDate").blur(function(){
  236. acceptDate($(this));
  237. });
  238. $("#endDate").blur(function(){
  239. acceptDate($(this));
  240. });
  241. $("#startTime").blur(function(){
  242. acceptTime($(this));
  243. });
  244. $("#endTime").blur(function(){
  245. acceptTime($(this));
  246. });
  247. $("#endCounter").blur(function(){
  248. if ($(this).val()!=''){
  249. if ($.isNumeric($(this).val())) {
  250. var endCounter = parseFloat($("#endCounter").val());
  251. var startCounter = parseFloat($("#startCounter").val());
  252. if (startCounter >= endCounter){
  253. $(this).val("");
  254. $("#result").html(" ѐ !");
  255. $(this).focus();
  256. } else {
  257. var myCounter = parseFloat($("#endCounter").val()) - parseFloat($("#startCounter").val());
  258. $("#result").html(" : " + myCounter + " ");
  259. checkBut($(this));
  260. }
  261. } else {
  262. $(this).focus();
  263. $("#result").html(" !");
  264. $("#save").prop("disabled", true);
  265. }
  266. } else {
  267. $(this).focus();
  268. }
  269. });
  270. $("#order").blur(function(){
  271. $("#result").html(ajax_load);
  272. var orderID = Number($("#order").val());
  273. if (!isNaN(orderID) && orderID!='') {
  274. loadXMLDoc("/service/xml_getOrderProperty.asp?act=showHead&id=" + orderID, function(orderXML){
  275. var isOrder = $(orderXML).find("status isOrder").text();
  276. var isClosed = $(orderXML).find("status isClosed").text();
  277. var isApproved = $(orderXML).find("status isApproved").text();
  278. var step = $(orderXML).find("status step").text();
  279. /*
  280. if (step=='40'){
  281. $("#order_found").val("0");
  282. alert(" ");
  283. } else
  284. */ if (parseInt(step)>0)
  285. $("#order_found").val("1");
  286. else
  287. $("#order_found").val("0");
  288. TransformXml(orderXML, "/xsl.<%=version%>/orderShowHeader.xsl", function(result){
  289. $("#result").html(result);
  290. checkBut($("#order"));
  291. $('a#customerID').click(function(e){
  292. window.open('../CRM/AccountInfo.asp?act=show&selectedCustomer='+$('a#customerID').attr("myID"), 'showCustomer');
  293. e.preventDefault();
  294. });
  295. });
  296. });
  297. } else {
  298. $("#order_found").val("0");
  299. $("#result").html(" ϡ !");
  300. $("#order").val("");
  301. $("#order").focus();
  302. $("#save").prop("disabled", true);
  303. }
  304. });
  305. });
  306. </script>
  307. <br>
  308. <%
  309. if request("act")="" then
  310. mySQL="select cost_centers.name as centerName,cost_drivers.name as driverName,cost_drivers.ID from cost_drivers inner join cost_centers on cost_drivers.cost_center_id=cost_centers.id inner join cost_user_relations on cost_user_relations.driver_id=cost_drivers.id where cost_user_relations.user_id=" & session("id")
  311. set rs=Conn.Execute(mySQL)
  312. while not rs.eof
  313. %>
  314. <li><a href='costs.asp?act=add&ID=<%=rs("id")%>'><%="<b>" & rs("centerName") &"</b> - "& rs("driverName") %></a><br>
  315. <%
  316. rs.MoveNext
  317. wend
  318. rs.close
  319. elseif request("act")="add" then '-------------------------------- A D D
  320. today=shamsiToday()
  321. mySQL="select * from cost_drivers where id=" & request("id")
  322. set rs=Conn.Execute(mySQL)
  323. if rs.eof then
  324. msg=" !"
  325. response.redirect "?errmsg=" & Server.URLEncode(msg)
  326. end if
  327. mySQL = "select * from cost_operation_type where driver_id=" & request("id")
  328. set rsOP=Conn.Execute(mySQL)
  329. if rs.eof then
  330. msg=" "
  331. response.redirect "?errmsg=" & Server.URLEncode(msg)
  332. end if
  333. currTime=now()
  334. startTime=FormatDateTime(dateAdd("n",-30,currTime),4)
  335. endDate=FormatDateTime(currTime,4)
  336. %>
  337. <a href="costs.asp">Ґ</a><br>
  338. <form method="post" action="?act=insert">
  339. <b><%=rs("Name")%></b>
  340. <%
  341. i=0
  342. while not rsOP.eof
  343. i=i+1
  344. %>
  345. <input type="radio" name="operation_type" value="<%=rsOP("id")%>" <%if i=1 then response.write "checked='checked'"%>>
  346. <span><%=rsOP("name")%></span>
  347. <%
  348. rsOP.moveNext
  349. wend
  350. %>
  351. <br><br>
  352. <input type="hidden" name="driver_id" value="<%=rs("id")%>" id='driver_id'>
  353. <input type="hidden" name="is_count" id='is_count' value="<%=rs("is_count")%>">
  354. <input type="hidden" name="is_time" id='is_time' value="<%=rs("is_time")%>">
  355. <input type="hidden" name="is_direct" id='is_direct' value="<%=rs("is_direct")%>">
  356. <input type="hidden" name="is_countinuous" id='is_countinuous' value="<%=rs("is_countinuous")%>">
  357. <input type="hidden" name="lastTime" id='lastTime'>
  358. <% if rs("is_count")="True" then
  359. if rs("is_countinuous")="True" then
  360. %>
  361. <span> :</span>
  362. <input type="text" name="startCounter" size="7" id='startCounter'>
  363. <span> :</span>
  364. <input type="text" name="endCounter" size="7" id='endCounter'><br>
  365. <%
  366. else
  367. %>
  368. <span> :</span>
  369. <input type="text" name="qtty" size="3" id='qtty'><br>
  370. <%
  371. end if
  372. end if
  373. if rs("is_time")="True" then
  374. %>
  375. <input type="hidden" name="start_time" id='start_time'>
  376. <input type="hidden" name="end_time" id='end_time'>
  377. <span> :</span>
  378. <input type="text" name="startDate" id='startDate' size="10" maxlength="10" value="" >
  379. <span> :</span>
  380. <input type="text" name="startTime" id='startTime' size="5" value="">
  381. <span> :</span>
  382. <input type="text" name="endDate" id='endDate' size="10" maxlength="10" value="">
  383. <span> :</span>
  384. <input type="text" name="endTime" id='endTime' size="5" value=""><br>
  385. <%
  386. end if
  387. if rs("is_direct")="True" then
  388. %>
  389. <span> :</span>
  390. <input type="text" name="order" id='order' size="6">
  391. <input type="hidden" name="order_found" id='order_found' value="0">
  392. <%
  393. end if
  394. %>
  395. <br>
  396. <span>: </span>
  397. <input type="text" name="description">
  398. <input type="submit" value="" disabled="disabled" id='save'>
  399. </form>
  400. <div id='result'></div>
  401. <%
  402. rs.close
  403. rsOP.close
  404. elseif request("act")="edit" then '-------------------------------- E D I T
  405. elseif request("act")="insert" then '-------------------------------- I N S E R T
  406. startCounter = "null"
  407. endCounter = "null"
  408. startTime = "null"
  409. endTime = "null"
  410. order = "null"
  411. if request("startCounter")<>"" then startCounter=request("startCounter")
  412. if request("endCounter")<>"" then endCounter=request("endCounter")
  413. if request("start_time")<>"" then startTime= "'" & request("start_time") & "'"
  414. if request("end_time")<>"" then endTime= "'" & request("end_time") & "'"
  415. if request("order")<>"" then order=request("order")
  416. if request("qtty")<>"" then
  417. startCounter = 0
  418. endCounter = CDbl(request("qtty"))
  419. end if
  420. operationType = request("operation_type")
  421. mySQL = "select * from cost_drivers where id=" & request("driver_id")
  422. set rs=Conn.Execute(mySQL)
  423. if not rs.eof then
  424. rate = CDbl(rs("rate"))
  425. mySQL="INSERT INTO costs (operation_type, start_counter, end_counter, rate, start_time, end_time, [order], user_id, description) VALUES (" & operationType & ", " & startCounter & ", " & endCounter & ", " & rate & ", " & startTime & ", "& endTime &", " & order & ", " & session("id") & ", N'" & request("description") & "');"
  426. response.write(mySQL)
  427. Conn.Execute(mySQL)
  428. response.redirect "?msg="&Server.URLEncode(" ")
  429. else
  430. response.redirect "?errmsg="&Server.URLEncode(" !!!")
  431. end if
  432. rs.close
  433. set rs=nothing
  434. elseif request("act")="update" then '-------------------------------- U P D A T E
  435. end if
  436. %>
  437. <!--#include file="tah.asp" -->