Advertisement
Lemesh

check_order_action

Apr 1st, 2018
117
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /* Функция для определения action в xml*/
  2. function check_order_action()
  3. {
  4.     cdown.add("_max_line",0);
  5.  
  6.     /* Проверяем пришел заказ с отправкой или без */
  7.     if (cdown.field("shipment_id") != "")
  8.     {
  9.         var sqlShip = "select id from shipment where sdid= :host_id<char[255]>";
  10.         var dsShip = new jotl_stream(1, sqlShip, cdb);
  11.         var valueShip = new Array(1);
  12.         dsShip.bind(cdown.field("shipment_id"));
  13.         /* Проверяем есть ли отправка в системе*/
  14.         if (dsShip.eof())
  15.         {
  16.                  var sql = "select id, status from orders where sdid = :host_id<char[256]>";
  17.                  var ds = new jotl_stream( 1, sql, cdb );
  18.                  var value = new Array( 2 );
  19.                  ds.bind( cdown.field( "order_id" ) );
  20.                  /* Проверяем есть ли заказ в системе */
  21.                  if( ds.eof() ) {
  22.                      /* Выбираем action по типу заказа */
  23.                         if (cdown.field("type") == "100"){
  24.                                 create_user_internal_id("seq_shipment_id", "_internal_id_s");
  25.                                 create_internal_id( "seq_requirement_id" );
  26.                                 if( cdown.action == "insert"){
  27.                                 cdown.set_action( "insert_shipment_wave" );
  28.                                 }else if (cdown.action == "unset" || cdown.action == "delete"){
  29.                                 cdown.set_error( -1, "Нельзя удалить запись, данные в WMS не найдены.");
  30.                                 }else if (cdown.action == "update"){
  31.                                 cdown.set_error( -1, "Нельзя обновить запись, данные в WMS не найдены.");}
  32.                         } else {
  33.                                 create_user_internal_id("seq_shipment_id", "_internal_id_s");
  34.                                 create_internal_id( "seq_requirement_id" );
  35.                                 if( cdown.action == "insert"){
  36.                                 cdown.set_action( "insert_shipment" );
  37.                                 }else if (cdown.action == "unset" || cdown.action == "delete"){
  38.                                 cdown.set_error( -1, "Нельзя удалить запись, данные в WMS не найдены.");
  39.                                 }else if (cdown.action == "update"){
  40.                                 cdown.set_error( -1, "Нельзя обновить запись, данные в WMS не найдены.");}
  41.                                 }
  42.                         return;
  43.                  } else {
  44.                         ds.fetch( value );
  45.                         set_internal_id( value[0] );
  46.                         create_user_internal_id("seq_shipment_id", "_internal_id_s");
  47.  
  48.                         if(cdown.action == "insert" || cdown.action == "update")
  49.                                  {
  50.                                  if(value[1] == "R")
  51.                                  { if (cdown.field("type") == "100")  
  52.                                          {cdown.set_action( "insert_only_shipment_wave" );}
  53.                                    else
  54.                                          {cdown.set_action( "update_shipment" );}
  55.                                  }
  56.                                  else
  57.                                  { cdown.set_action( "update" ); }
  58.                                  }
  59.                        else if(cdown.action == "unset")
  60.                                  { cdown.set_action( "delete" ); }
  61.                          }
  62.         }  else {
  63.                  var sql = "select id, status from orders where sdid = :host_id<char[256]>";
  64.                  var ds = new jotl_stream( 1, sql, cdb );
  65.                  var value = new Array( 2 );
  66.                  ds.bind( cdown.field( "order_id" ) );
  67.    
  68.                  if( ds.eof() ) {
  69.                         if (cdown.field("type") == "100"){
  70.                                 create_internal_id( "seq_requirement_id" );
  71.                                 if( cdown.action == "insert"){
  72.                                 cdown.set_action( "insert_wave" );
  73.                                 }else if (cdown.action == "unset" || cdown.action == "delete"){
  74.                                 cdown.set_error( -1, "Нельзя удалить запись, данные в WMS не найдены.");
  75.                                 }else if (cdown.action == "update"){
  76.                                 cdown.set_error( -1, "Нельзя обновить запись, данные в WMS не найдены.");}
  77.                         } else {
  78.                                 create_internal_id( "seq_requirement_id" );
  79.                                 if( cdown.action == "insert"){
  80.                                 cdown.set_action( "insert" );
  81.                                 }else if (cdown.action == "unset" || cdown.action == "delete"){
  82.                                 cdown.set_error( -1, "Нельзя удалить запись, данные в WMS не найдены.");
  83.                                 }else if (cdown.action == "update"){
  84.                                 cdown.set_error( -1, "Нельзя обновить запись, данные в WMS не найдены.");}
  85.                                 }          
  86.                         return;
  87.                  } else {
  88.                         ds.fetch( value );
  89.                         set_internal_id( value[0] );
  90.        
  91.                         if(cdown.action == "insert" || cdown.action == "update")
  92.                                  {
  93.                                  if(value[1] != "R")
  94.                                  { if (cdown.field("type") == "100")  
  95.                                          { cdown.set_action( "update_wave" );}
  96.                                    else  
  97.                                          { cdown.set_action( "update_shipment" );}
  98.                                  }
  99.                                  else {  if (cdown.field("type") == "100")  
  100.                                          { cdown.set_action( "update_wave" );}
  101.                                          else  
  102.                                          { cdown.set_action( "update_shipment" );}
  103.                                  }
  104. }
  105.                                  else if(cdown.action == "unset")
  106.                                  { cdown.set_action( "delete" ); }  
  107.                                  }  
  108.                        }
  109.     }
  110.     else        
  111.     {
  112.      
  113.     var sql = "select id, status from orders where sdid = :host_id<char[256]>";
  114.     var ds = new jotl_stream( 1, sql, cdb );
  115.     var value = new Array( 2 );
  116.     ds.bind( cdown.field( "order_id" ) );
  117.  
  118.     if( ds.eof() ){
  119.         create_internal_id( "seq_requirement_id" );
  120.         if( cdown.action == "set"){
  121.             cdown.set_action( "insert" );
  122.         }else if (cdown.action == "unset" || cdown.action == "delete"){
  123.             cdown.set_error( -1, "Нельзя удалить запись, данные в WMS не найдены.");
  124.         }else if (cdown.action == "update"){
  125.             cdown.set_error( -1, "Нельзя обновить запись, данные в WMS не найдены.");
  126.         }
  127.         return;
  128.     }else{
  129.         ds.fetch( value );
  130.         set_internal_id( value[0] );
  131.        
  132.        
  133.         if(cdown.action == "insert" || cdown.action == "update")
  134.         {
  135.             if(value[1] != "R")
  136.             {
  137.                 cdown.set_action( "update_shipment" );
  138.             }
  139.             else
  140.             {
  141.                 cdown.set_action( "update" );
  142.             }
  143.         }
  144.         else if(cdown.action == "unset")
  145.         {
  146.             cdown.set_action( "delete" );
  147.         }
  148.     }
  149.     }
  150. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement