11/17/2021

Axapta : Job เช็ค Item Id 12 หลักและแปลงหลักสุดท้ายให้ถูก

 Axapta : Job เช็ค Item Id 12 หลักและแปลงหลักสุดท้ายให้ถูก

  1.  
  2. static void CheckItemId12(Args _args)
  3. {
  4.     AsciiIO             myFile;
  5.     AsciiIO             ItemFileConvert;
  6.     AsciiIO             ErrorFile;
  7.  
  8.     container           RecData;
  9.     container           contTmp;
  10.  
  11.     ItemId              myItemId;
  12.     ItemId              myItemIdConverted;
  13.     int                 r = 1;
  14.  
  15.     int                 a,b,c,d,e,f,g,h,i,j,k,l;
  16.     int                 a3,b3,c3,d3,e3,f3,g3,h3,i3,j3,k3,l3;
  17.     int                 a4,b4,c4,d4,e4,f4,g4,h4,i4,j4,k4,l4;
  18.     ;
  19.  
  20.     myFile=new AsciiIO("C:\\Item\\ItemCheckConvert.csv","r");
  21.     myfile.inFieldDelimiter("|");
  22.     while(myFile.status() == IO_Status::Ok)
  23.         RecData += myFile.read();
  24.     myFile = null;
  25.  
  26.  
  27.     ItemFileConvert=new AsciiIO("C:\\Item\\ItemFileConvert.txt","a");
  28.     ErrorFile=new AsciiIO("C:\\Item\\ErrorFile.txt","a");
  29.     for(r=1; r <= conlen(RecData); r++){
  30.  
  31.         myItemId =  conpeek(RecData, r);
  32.  
  33.         if(strlen(myItemId) == 12){
  34.             a = str2int(substr(myItemId,1,1));
  35.             b = str2int(substr(myItemId,2,1));
  36.             c = str2int(substr(myItemId,3,1));
  37.             d = str2int(substr(myItemId,4,1));
  38.             e = str2int(substr(myItemId,5,1));
  39.             f = str2int(substr(myItemId,6,1));
  40.             g = str2int(substr(myItemId,7,1));
  41.             h = str2int(substr(myItemId,8,1));
  42.             i = str2int(substr(myItemId,9,1));
  43.             j = str2int(substr(myItemId,10,1));
  44.             k = str2int(substr(myItemId,11,1));
  45.             l = str2int(substr(myItemId,12,1));
  46.  
  47.             a3 = (a * 2);
  48.             b3 = b;
  49.             c3 = (c * 2);
  50.             d3 = d;
  51.             e3 = (e * 2);
  52.             f3 = f;
  53.             g3 = (g * 2);
  54.             h3 = h;
  55.             i3 = (i * 2);
  56.             j3 = j;
  57.             k3 = (k * 2);
  58.  
  59.             a4 = (a3>9) ? str2int(substr(int2str(a3),1,1)) + str2int(substr(int2str(a3),2,1)) : a3;
  60.             b4 = (b3>9) ? str2int(substr(int2str(b3),1,1)) + str2int(substr(int2str(b3),2,1)) : b3;
  61.             c4 = (c3>9) ? str2int(substr(int2str(c3),1,1)) + str2int(substr(int2str(c3),2,1)) : c3;
  62.             d4 = (d3>9) ? str2int(substr(int2str(d3),1,1)) + str2int(substr(int2str(d3),2,1)) : d3;
  63.             e4 = (e3>9) ? str2int(substr(int2str(e3),1,1)) + str2int(substr(int2str(e3),2,1)) : e3;
  64.             f4 = (f3>9) ? str2int(substr(int2str(f3),1,1)) + str2int(substr(int2str(f3),2,1)) : f3;
  65.             g4 = (g3>9) ? str2int(substr(int2str(g3),1,1)) + str2int(substr(int2str(g3),2,1)) : g3;
  66.             h4 = (h3>9) ? str2int(substr(int2str(h3),1,1)) + str2int(substr(int2str(h3),2,1)) : h3;
  67.             i4 = (i3>9) ? str2int(substr(int2str(i3),1,1)) + str2int(substr(int2str(i3),2,1)) : i3;
  68.             j4 = (j3>9) ? str2int(substr(int2str(j3),1,1)) + str2int(substr(int2str(j3),2,1)) : j3;
  69.             k4 = (k3>9) ? str2int(substr(int2str(k3),1,1)) + str2int(substr(int2str(k3),2,1)) : k3;
  70.             l4 = 10 -((a4 + b4 + c4 + d4 + e4 + f4 + g4 + h4 + i4 + j4 + k4) mod 10);
  71.             l4 =( l4 == 10 ) ? 0 : l4;
  72.             if(l4 != l){
  73.                 //Converted
  74.                 myItemIdConverted = strfmt("%1%2%3%4%5%6%7%8%9%10%11%12",a,b,c,d,e,f,g,h,i,j,k,l4);
  75.                 Print(strfmt("%1 : %2 \t Coverted", r, myItemid));
  76.                 ItemFileConvert.write(strfmt("%1|%2", myItemId, myItemIdConverted));
  77.             } else {
  78.                 //Not Convert
  79.                 Print(strfmt("%1 : %2 \t Not Convert", r, myItemid));
  80.                 ItemFileConvert.write(strfmt("%1|%2", myItemId, myItemId));
  81.             }//Close Else.
  82.         } else {
  83.             Print(strfmt("%1 : %2 \t Error", r, myItemid));
  84.             ErrorFile.write(strfmt("%1",myItemId));
  85.         }//Close Else.
  86.     }//Close for.
  87.     ItemFileConvert = null;
  88.     ItemFileConvert = null;
  89.     box::info("Complete","Converted");
  90. }