alsmanager_lib 3.0.139 → 3.0.142

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/lib/modules.js +579 -33
  2. package/package.json +1 -1
package/lib/modules.js CHANGED
@@ -2918,7 +2918,7 @@ function getDevicesSelectSQLite(search_type, inv_code, dev_type, marca, dev_mode
2918
2918
  }
2919
2919
  }
2920
2920
  if (dev_status) {
2921
- where_clause += " du.status = " + dev_status + " and date('now') >= du.date_status";
2921
+ where_clause += " du.status = " + dev_status + " and (date('now') >= du.date_start and date('now') <= du.date_end)";
2922
2922
  if (dev_gestione || no_inv || in_consegna) {
2923
2923
  where_clause += " and ";
2924
2924
  }
@@ -3010,7 +3010,7 @@ function getDevicesSelectMySQL(search_type, inv_code, dev_type, marca, dev_model
3010
3010
  }
3011
3011
  }
3012
3012
  if (dev_status) {
3013
- where_clause += " du.status = :dev_status and CURDATE() >= du.date_status";
3013
+ where_clause += " du.status = :dev_status and (CURDATE() >= du.date_start and CURDATE() <= du.date_end) ";
3014
3014
  if (dev_gestione || no_inv) {
3015
3015
  where_clause += " and ";
3016
3016
  }
@@ -3103,7 +3103,7 @@ function getDevicesSelectMySQL2(search_type, inv_code, dev_type, marca, dev_mode
3103
3103
  }
3104
3104
  }
3105
3105
  if (dev_status) {
3106
- where_clause += " du.status = " + dev_status + " and CURDATE() >= du.date_status";
3106
+ where_clause += " du.status = :dev_status and (CURDATE() >= du.date_start and CURDATE() <= du.date_end) ";
3107
3107
  if (dev_gestione || no_inv || in_consegna) {
3108
3108
  where_clause += " and ";
3109
3109
  }
@@ -3159,6 +3159,435 @@ function buildDevicesQuery(queryList) {
3159
3159
  }
3160
3160
 
3161
3161
  // End Device select
3162
+ // Select devices by details
3163
+ function getDevicesByDetailsSelectSQLite(search_criteria, details) {
3164
+ var query = "SELECT DISTINCT d.id, d.type as Tipo, d.manifacturer as Marca, d.model as Modello, ";
3165
+ query += "case ";
3166
+ query += "when d.no_inventario is not null and d.no_inventario > 0 then concat(d.id,'(ID)') ";
3167
+ query += "when d.inv_ict3_number != '' and d.inv_ict3_number is not null then d.inv_ict3_number ";
3168
+ query += "when d.inv_pnrr_number != '' and d.inv_pnrr_number is not null then d.inv_pnrr_number ";
3169
+ query += "when d.inv_tn_number != '' and d.inv_tn_number is not null then concat(d.inv_tn_number,'(TN)') ";
3170
+ query += "when d.inv_tndigit_number != '' and d.inv_tndigit_number is not null then concat(d.inv_tndigit_number,'(TNDigit)') ";
3171
+ query += "when d.serial_no != '' and d.serial_no is not null then concat(d.serial_no,'(S/N)') ";
3172
+ query += "end as Codice ";
3173
+ query += "from devices d ";
3174
+ if (search_criteria.dev_status)
3175
+ query += "left join device_usage du on d.id = du.id_device ";
3176
+ if (search_criteria.dev_gestione)
3177
+ query += "left join device_gestioni dg on d.id = dg.id_device ";
3178
+ if (search_criteria.in_consegna)
3179
+ query += "left join consegna_beni cb on d.id = cb.id_bene ";
3180
+
3181
+ var where_clause = " where (d.is_removed is null or d.is_removed = 0) ";
3182
+ if (search_criteria.inv_code || search_criteria.dev_type || search_criteria.marca || search_criteria.dev_model || (search_criteria.is_PNRR && search_criteria.is_PNRR > 0) || search_criteria.dev_status || search_criteria.dev_gestione || search_criteria.no_inv || search_criteria.in_consegna) {
3183
+ if (search_criteria.inv_code) {
3184
+ if (search_criteria.search_type == "ESATTA") {
3185
+ where_clause += " and (d.inv_ict3_number = '" + search_criteria.inv_code + "' or ";
3186
+ where_clause += "d.inv_tn_number = '" + search_criteria.inv_code + "' or ";
3187
+ where_clause += "d.serial_no = '" + search_criteria.inv_code + "' or ";
3188
+ where_clause += "d.inv_tndigit_number = '" + search_criteria.inv_code + "' or ";
3189
+ where_clause += "d.inv_pnrr_number = '" + search_criteria.inv_code + "')";
3190
+ }
3191
+ else {
3192
+ where_clause += " and (d.inv_ict3_number like '" + search_criteria.inv_code + "%' or ";
3193
+ where_clause += "d.inv_tn_number like '" + search_criteria.inv_code + "%' or ";
3194
+ where_clause += "d.serial_no like '%" + search_criteria.inv_code + "%' or ";
3195
+ where_clause += "d.inv_tndigit_number like '" + search_criteria.inv_code + "%' or ";
3196
+ where_clause += "d.inv_pnrr_number = '" + search_criteria.inv_code + "')";
3197
+ }
3198
+ }
3199
+ else {
3200
+ where_clause += " and ";
3201
+ if (search_criteria.dev_type) {
3202
+ where_clause += "d.type = '" + search_criteria.dev_type + "'";
3203
+ if (search_criteria.marca || (search_criteria.is_PNRR && search_criteria.is_PNRR > 0) || search_criteria.dev_status || search_criteria.dev_model || search_criteria.dev_gestione || search_criteria.no_inv || search_criteria.in_consegna) {
3204
+ where_clause += " and ";
3205
+ }
3206
+ }
3207
+ if (search_criteria.marca) {
3208
+ where_clause += " d.manifacturer = '" + search_criteria.marca + "'";
3209
+ if ((search_criteria.is_PNRR && search_criteria.is_PNRR > 0) || search_criteria.dev_status || search_criteria.dev_model || search_criteria.dev_gestione || search_criteria.no_inv || search_criteria.in_consegna) {
3210
+ where_clause += " and ";
3211
+ }
3212
+ }
3213
+ if (search_criteria.is_PNRR && search_criteria.is_PNRR > 0) {
3214
+ where_clause += " (d.inv_pnrr_number <> '' and inv_pnrr_number is not null) ";
3215
+ if (search_criteria.dev_status || search_criteria.dev_gestione || search_criteria.dev_model || search_criteria.no_inv || search_criteria.in_consegna) {
3216
+ where_clause += " and ";
3217
+ }
3218
+ }
3219
+ if (search_criteria.dev_model) {
3220
+ where_clause += " d.model = '" + search_criteria.dev_model + "'";
3221
+ if (search_criteria.dev_status || search_criteria.dev_gestione || search_criteria.no_inv || search_criteria.in_consegna) {
3222
+ where_clause += " and ";
3223
+ }
3224
+ }
3225
+ if (search_criteria.dev_status) {
3226
+ where_clause += " du.status = " + search_criteria.dev_status + " and (date('now') >= du.date_start and date('now') <= du.date_end)";
3227
+ if (search_criteria.dev_gestione || search_criteria.no_inv || search_criteria.in_consegna) {
3228
+ where_clause += " and ";
3229
+ }
3230
+ }
3231
+ if (search_criteria.dev_gestione) {
3232
+ where_clause += " dg.id_gestione = " + search_criteria.dev_gestione + " and date('now') >= dg.date_start and date('now') <= dg.date_end";
3233
+ if (search_criteria.no_inv || search_criteria.in_consegna) {
3234
+ where_clause += " and ";
3235
+ }
3236
+ }
3237
+ if (search_criteria.no_inv) {
3238
+ where_clause += " d.no_inventario = 1";
3239
+ if (search_criteria.in_consegna) {
3240
+ where_clause += " and ";
3241
+ }
3242
+ }
3243
+ if (search_criteria.in_consegna) {
3244
+ where_clause += " (cb.id_consegna is not null and cb.tipo_bene = 'DEVICE' and cb.stato_restituzione = 0)"
3245
+ }
3246
+ }
3247
+ }
3248
+ if (search_criteria.id_dev_exclude > 0) {
3249
+ where_clause += " and d.id <> " + search_criteria.id_dev_exclude;
3250
+ }
3251
+ query += where_clause;
3252
+ return query;
3253
+ }
3254
+
3255
+ function getDevicesByDetailsSelectMySQL(search_criteria, details) {
3256
+ var query = "SELECT DISTINCT d.id, d.type as Tipo, d.manifacturer as Marca, d.model as Modello, ";
3257
+ query += "case ";
3258
+ query += "when d.inv_ict3_number != '' and d.inv_ict3_number is not null then d.inv_ict3_number ";
3259
+ query += "when d.inv_pnrr_number != '' and d.inv_pnrr_number is not null then d.inv_pnrr_number ";
3260
+ query += "when d.inv_tn_number != '' and d.inv_tn_number is not null then concat(d.inv_tn_number,'(TN)') ";
3261
+ query += "when d.inv_tndigit_number != '' and d.inv_tndigit_number is not null then concat(d.inv_tndigit_number,'(TNDigit)') ";
3262
+ query += "when d.serial_no != '' and d.serial_no is not null then concat(d.serial_no,'(S/N)') ";
3263
+ query += "end as Codice ";
3264
+ query += "from devices d ";
3265
+ if (search_criteria.dev_status)
3266
+ query += "left join device_usage du on d.id = du.id_device ";
3267
+ if (search_criteria.dev_gestione)
3268
+ query += "left join device_gestioni dg on d.id = dg.id_device ";
3269
+ if (search_criteria.in_consegna)
3270
+ query += "left join consegna_beni cb on d.id = cb.id_bene ";
3271
+
3272
+ if (details) {
3273
+ if (search_criteria.search_type == "DESKTOP" || search_criteria.search_type == "NOTEBOOK") {
3274
+ query += "left join device_pc dd on d.id = dd.id_device ";
3275
+ }
3276
+ else if (search_criteria.search_type == "A") {
3277
+
3278
+ }
3279
+ else if (search_criteria.search_type == "B") {
3280
+
3281
+ }
3282
+ else if (search_criteria.search_type == "C") {
3283
+
3284
+ }
3285
+ }
3286
+
3287
+ var where_clause = " where (d.is_removed is null or d.is_removed = 0) ";
3288
+ if (search_criteria.inv_code || search_criteria.dev_type || search_criteria.marca || search_criteria.dev_model || (search_criteria.is_PNRR && search_criteria.is_PNRR > 0) || search_criteria.dev_status || search_criteria.dev_gestione || search_criteria.no_inv || search_criteria.in_consegna) {
3289
+ if (search_criteria.inv_code) {
3290
+ if (search_criteria.search_type == "ESATTA") {
3291
+ where_clause += " and (d.inv_ict3_number = :inv_code or ";
3292
+ where_clause += "d.inv_tn_number = :inv_code or ";
3293
+ where_clause += "d.inv_tndigit_number = :inv_code or ";
3294
+ where_clause += "d.serial_no = :inv_code or ";
3295
+ where_clause += "d.inv_pnrr_number = :inv_code)";
3296
+ }
3297
+ else {
3298
+ where_clause += " and (d.inv_ict3_number like :inv_code or ";
3299
+ where_clause += "d.inv_tn_number like :inv_code or ";
3300
+ where_clause += "d.inv_tndigit_number like :inv_code or ";
3301
+ where_clause += "d.serial_no like :inv_code or ";
3302
+ where_clause += "d.inv_pnrr_number = :inv_code)";
3303
+ }
3304
+ }
3305
+ else {
3306
+ where_clause += " and ";
3307
+ if (search_criteria.dev_type) {
3308
+ where_clause += " d.type = :dev_type";
3309
+ if (search_criteria.marca || search_criteria.dev_model || (search_criteria.is_PNRR && search_criteria.is_PNRR > 0 || search_criteria.dev_status || search_criteria.dev_gestione || search_criteria.no_inv || search_criteria.in_consegna)) {
3310
+ where_clause += " and ";
3311
+ }
3312
+ }
3313
+ if (search_criteria.marca) {
3314
+ where_clause += " d.manifacturer = :marca";
3315
+ if (search_criteria.dev_model || search_criteria.is_PNRR && search_criteria.is_PNRR > 0 || search_criteria.dev_status || search_criteria.dev_gestione|| search_criteria.no_inv || search_criteria.in_consegna) {
3316
+ where_clause += " and ";
3317
+ }
3318
+ }
3319
+ if (search_criteria.is_PNRR && search_criteria.is_PNRR > 0) {
3320
+ where_clause += " (d.inv_pnrr_number <> '' and inv_pnrr_number is not null) ";
3321
+ if (search_criteria.dev_model || search_criteria.dev_status || search_criteria.dev_gestione || search_criteria.no_inv || search_criteria.in_consegna) {
3322
+ where_clause += " and ";
3323
+ }
3324
+ }
3325
+ if (search_criteria.dev_model) {
3326
+ where_clause += " d.model = :dev_model ";
3327
+ if (search_criteria.dev_status || search_criteria.dev_gestione || search_criteria.no_inv || search_criteria.in_consegna) {
3328
+ where_clause += " and ";
3329
+ }
3330
+ }
3331
+ if (search_criteria.dev_status) {
3332
+ where_clause += " du.status = :dev_status and (CURDATE() >= du.date_start and CURDATE() <= du.date_end) ";
3333
+ if (search_criteria.dev_gestione || search_criteria.no_inv) {
3334
+ where_clause += " and ";
3335
+ }
3336
+ }
3337
+ if (search_criteria.dev_gestione) {
3338
+ where_clause += " dg.id_gestione = :dev_gestione and CURDATE() >= dg.date_start and CURDATE() <= dg.date_end";
3339
+ if (search_criteria.no_inv || search_criteria.in_consegna) {
3340
+ where_clause += " and ";
3341
+ }
3342
+ }
3343
+ if (search_criteria.no_inv) {
3344
+ where_clause += " d.no_inventario = 1";
3345
+ if (search_criteria.in_consegna) {
3346
+ where_clause += " and ";
3347
+ }
3348
+ }
3349
+ if (search_criteria.in_consegna) {
3350
+ where_clause += " (cb.id_consegna is not null and cb.tipo_bene = 'DEVICE' and cb.stato_restituzione = 0)"
3351
+ }
3352
+ }
3353
+ }
3354
+ if (search_criteria.id_dev_exclude > 0) {
3355
+ where_clause += " and d.id <> :id_dev_exclude";
3356
+ }
3357
+ if (details) {
3358
+ if (search_criteria.search_type == "DESKTOP" || search_criteria.search_type == "NOTEBOOK") {
3359
+ query += "left join device_pc dd on d.id = dd.id_device ";
3360
+ }
3361
+ else if (search_criteria.search_type == "A") {
3362
+
3363
+ }
3364
+ else if (search_criteria.search_type == "B") {
3365
+
3366
+ }
3367
+ else if (search_criteria.search_type == "C") {
3368
+
3369
+ }
3370
+ if (details.network || details.mac_address) {
3371
+ query += "left join device_networks dn on d.id = dn.id_device ";
3372
+ }
3373
+ if (details.storage) {
3374
+ query += "left join device_storages dr on d.id = dr.id_device ";
3375
+ }
3376
+ if (details.addon) {
3377
+ query += "left join device_addons don on d.id = don.id_device ";
3378
+ }
3379
+ }
3380
+ /*
3381
+ objDetails.version = version;
3382
+ objDetails.storage = storage;
3383
+ objDetails.addon = addon;
3384
+ objDetails.network = network;
3385
+ objDetails.mac_address = mac_address;
3386
+ objDetails.name = name;
3387
+ */
3388
+ query += where_clause;
3389
+ // Filtro su dettagli...
3390
+ if (details) {
3391
+ if (search_criteria.search_type == "DESKTOP" || search_criteria.search_type == "NOTEBOOK") {
3392
+ where_clause += " and ";
3393
+ if (details.os) {
3394
+ where_clause += "(dd.os == '" + details.os + "') ";
3395
+ if (details.version || details.storage || details.addon || details.network || details.storage || details.mac_address || details.name) {
3396
+ where_clause += " and ";
3397
+ }
3398
+ }
3399
+ if (details.os) {
3400
+ where_clause += "(dd.version == '" + details.version + "') ";
3401
+ if (details.storage || details.addon || details.network || details.mac_address || details.name) {
3402
+ where_clause += " and ";
3403
+ }
3404
+ }
3405
+ if (details.name) {
3406
+ where_clause += "(dd.pc_name == '" + details.name + "') ";
3407
+ if (details.storage || details.addon || details.network || details.mac_address) {
3408
+ where_clause += " and ";
3409
+ }
3410
+ }
3411
+
3412
+ }
3413
+ else if (search_criteria.search_type == "A") {
3414
+
3415
+ }
3416
+ else if (search_criteria.search_type == "B") {
3417
+
3418
+ }
3419
+ else if (search_criteria.search_type == "C") {
3420
+
3421
+ }
3422
+
3423
+
3424
+
3425
+ if (details.network) {
3426
+ where_clause += "(dn.net_type == '" + details.network + "') ";
3427
+ if (details.storage || details.addon || details.network || details.mac_address) {
3428
+ where_clause += " and ";
3429
+ }
3430
+ }
3431
+ if (details.mac_address) {
3432
+ where_clause += "(dn.mac_address == '" + details.mac_address + "') ";
3433
+ if (details.storage || details.addon) {
3434
+ where_clause += " and ";
3435
+ }
3436
+ }
3437
+ if (details.storage) {
3438
+ where_clause += "(dr.storage_type == '" + details.storage + "') ";
3439
+ if (details.addon) {
3440
+ where_clause += " and ";
3441
+ }
3442
+ }
3443
+ if (details.addon) {
3444
+ where_clause += "(don.addon_type == '" + details.addon + "') ";
3445
+ }
3446
+ }
3447
+ query += "order by id";
3448
+ return query;
3449
+ }
3450
+
3451
+ function getDevicesByDetailsSelectMySQL2(search_criteria, details) {
3452
+ var query = "SELECT DISTINCT d.id, d.type as Tipo, d.manifacturer as Marca, d.model as Modello, ";
3453
+ query += "case ";
3454
+ query += "when d.inv_ict3_number != '' and d.inv_ict3_number is not null then d.inv_ict3_number ";
3455
+ query += "when d.inv_pnrr_number != '' and d.inv_pnrr_number is not null then d.inv_pnrr_number ";
3456
+ query += "when d.inv_tn_number != '' and d.inv_tn_number is not null then concat(d.inv_tn_number,'(TN)') ";
3457
+ query += "when d.inv_tndigit_number != '' and d.inv_tndigit_number is not null then concat(d.inv_tndigit_number,'(TNDigit)') ";
3458
+ query += "when d.serial_no != '' and d.serial_no is not null then concat(d.serial_no,'(S/N)') ";
3459
+ query += "end as Codice ";
3460
+ query += "from devices d ";
3461
+ if (search_criteria.dev_status)
3462
+ query += "left join device_usage du on d.id = du.id_device ";
3463
+ if (search_criteria.dev_gestione)
3464
+ query += "left join device_gestioni dg on d.id = dg.id_device ";
3465
+ if (search_criteria.in_consegna)
3466
+ query += "left join consegna_beni cb on d.id = cb.id_bene ";
3467
+
3468
+ var where_clause = " where (d.is_removed is null or d.is_removed = 0) ";
3469
+ if (search_criteria.inv_code || search_criteria.dev_type || search_criteria.marca || search_criteria.dev_model || (search_criteria.is_PNRR && search_criteria.is_PNRR > 0) || search_criteria.dev_status || search_criteria.dev_gestione || search_criteria.no_inv || search_criteria.in_consegna) {
3470
+ if (search_criteria.inv_code) {
3471
+ if (search_criteria.search_type == "ESATTA") {
3472
+ where_clause += " and (d.inv_ict3_number = '" + search_criteria.inv_code + "' or ";
3473
+ where_clause += "d.inv_tn_number = '" + search_criteria.inv_code + "' or ";
3474
+ where_clause += "d.serial_no = '" + search_criteria.inv_code + "' or ";
3475
+ where_clause += "d.inv_tndigit_number = '" + search_criteria.inv_code + "' or ";
3476
+ where_clause += "d.inv_pnrr_number = '" + search_criteria.inv_code + "')";
3477
+ }
3478
+ else {
3479
+ where_clause += " and (d.inv_ict3_number like '" + search_criteria.inv_code + "%' or ";
3480
+ where_clause += "d.inv_tn_number like '" + search_criteria.inv_code + "%' or ";
3481
+ where_clause += "d.serial_no like '%" + search_criteria.inv_code + "%' or ";
3482
+ where_clause += "d.inv_tndigit_number like '" + search_criteria.inv_code + "%' or ";
3483
+ where_clause += "d.inv_pnrr_number = '" + search_criteria.inv_code + "')";
3484
+ }
3485
+ }
3486
+ else {
3487
+ where_clause += " and ";
3488
+ if (search_criteria.dev_type) {
3489
+ where_clause += "d.type = '" + search_criteria.dev_type + "'";
3490
+ if (search_criteria.marca || (search_criteria.is_PNRR && search_criteria.is_PNRR > 0) || search_criteria.dev_status || search_criteria.dev_model || search_criteria.dev_gestione || search_criteria.no_inv || search_criteria.in_consegna) {
3491
+ where_clause += " and ";
3492
+ }
3493
+ }
3494
+ if (search_criteria.marca) {
3495
+ where_clause += " d.manifacturer = '" + search_criteria.marca + "'";
3496
+ if ((search_criteria.is_PNRR && search_criteria.is_PNRR > 0) || search_criteria.dev_status || search_criteria.dev_model || search_criteria.dev_gestione || search_criteria.no_inv || search_criteria.in_consegna) {
3497
+ where_clause += " and ";
3498
+ }
3499
+ }
3500
+ if (search_criteria.is_PNRR && search_criteria.is_PNRR > 0) {
3501
+ where_clause += " (d.inv_pnrr_number <> '' and inv_pnrr_number is not null) ";
3502
+ if (search_criteria.dev_status || search_criteria.dev_model || search_criteria.dev_gestione || search_criteria.no_inv || search_criteria.in_consegna) {
3503
+ where_clause += " and ";
3504
+ }
3505
+ }
3506
+ if (search_criteria.dev_model) {
3507
+ where_clause += " d.model = '" + search_criteria.dev_model + "'";
3508
+ if (search_criteria.dev_status || search_criteria.dev_gestione || search_criteria.no_inv || search_criteria.in_consegna) {
3509
+ where_clause += " and ";
3510
+ }
3511
+ }
3512
+ if (search_criteria.dev_status) {
3513
+ where_clause += " du.status = :dev_status and (CURDATE() >= du.date_start and CURDATE() <= du.date_end) ";
3514
+ if (search_criteria.dev_gestione || search_criteria.no_inv || search_criteria.in_consegna) {
3515
+ where_clause += " and ";
3516
+ }
3517
+ }
3518
+ if (search_criteria.dev_gestione) {
3519
+ where_clause += " dg.id_gestione = " + search_criteria.dev_gestione + " and CURDATE() >= dg.date_start and CURDATE() <= dg.date_end";
3520
+ if (search_criteria.no_inv || search_criteria.in_consegna) {
3521
+ where_clause += " and ";
3522
+ }
3523
+ }
3524
+ if (search_criteria.no_inv) {
3525
+ where_clause += " d.no_inventario = 1";
3526
+ if (search_criteria.in_consegna) {
3527
+ where_clause += " and ";
3528
+ }
3529
+ }
3530
+ if (search_criteria.in_consegna) {
3531
+ where_clause += " (cb.id_consegna is not null and cb.tipo_bene = 'DEVICE' and cb.stato_restituzione = 0)"
3532
+ }
3533
+ }
3534
+ }
3535
+ if (search_criteria.id_dev_exclude > 0) {
3536
+ where_clause += " and d.id <> " + search_criteria.id_dev_exclude;
3537
+ }
3538
+ query += where_clause;
3539
+ return query;
3540
+ }
3541
+
3542
+ function getDevicesByDetailsSelect(db_used, search_criteria, details) {
3543
+ var query = "";
3544
+ if (db_used) {
3545
+ switch (db_used) {
3546
+ case 'SQLITE':
3547
+ query = getDevicesByDetailsSelectSQLite(search_criteria, details);
3548
+ break;
3549
+ case 'MYSQL':
3550
+ query = getDevicesByDetailsSelectMySQL(search_criteria, details);
3551
+ break;
3552
+ case 'MYSQL2':
3553
+ query = getDevicesByDetailsSelectMySQL2(search_criteria, details);
3554
+ break;
3555
+ }
3556
+ }
3557
+ return query;
3558
+ }
3559
+
3560
+ function createDeviceSelectObj(search_type, inv_code, dev_type, marca, dev_model, is_PNRR, dev_status, dev_gestione, no_inv, in_consegna, id_dev_exclude) {
3561
+ var search_criteria = {};
3562
+ search_criteria.search_type = search_type;
3563
+ search_criteria.inv_code = inv_code;
3564
+ search_criteria.dev_type = dev_type;
3565
+ search_criteria.marca = marca;
3566
+ search_criteria.dev_model = dev_model;
3567
+ search_criteria.is_PNRR = is_PNRR;
3568
+ search_criteria.dev_status = dev_status;
3569
+ search_criteria.dev_gestione = dev_gestione;
3570
+ search_criteria.no_inv = no_inv;
3571
+ search_criteria.in_consegna = in_consegna;
3572
+ search_criteria.id_dev_exclude = id_dev_exclude;
3573
+ return search_criteria;
3574
+ }
3575
+
3576
+ function createDetailsObj(os, version, storage, addon, network, mac_address, name) {
3577
+ var objDetails = {};
3578
+ objDetails.os = os;
3579
+ objDetails.version = version;
3580
+ objDetails.storage = storage;
3581
+ objDetails.addon = addon;
3582
+ objDetails.network = network;
3583
+ objDetails.mac_address = mac_address;
3584
+ objDetails.name = name;
3585
+
3586
+ return objDetails;
3587
+ }
3588
+ // End Select devices by details
3589
+
3590
+
3162
3591
  // Select by idDoc
3163
3592
  function getDevicesByIdDocSQLite(id_doc) {
3164
3593
  var query = "SELECT DISTINCT d.id, d.type as Tipo, d.manifacturer as Marca, d.model as Modello, ";
@@ -3720,10 +4149,10 @@ function queryDeviceStatusSQLite(id_device, date_ref) {
3720
4149
  if (date_ref) {
3721
4150
  switch (date_ref) {
3722
4151
  case "current":
3723
- query += "and date('now') >= du.date_status ";
4152
+ query += "and (date('now') >= du.date_start and date('now') <= du.date_end)";
3724
4153
  break;
3725
4154
  default:
3726
- query += "and '" + date_ref + "' >= du.date_status ";
4155
+ query += "and ('" + date_ref + "' >= du.date_start and '" + date_ref + "' <= du.date_end)";
3727
4156
  break;
3728
4157
 
3729
4158
  }
@@ -3737,10 +4166,10 @@ function queryDeviceStatusMySQL(id_device, date_ref) {
3737
4166
  if (date_ref) {
3738
4167
  switch (date_ref) {
3739
4168
  case "current":
3740
- query += "and (CURDATE() >= du.date_status ";
4169
+ query += "and (CURDATE() >= du.date_start and CURDATE() <= du.date_end) ";
3741
4170
  break;
3742
4171
  default:
3743
- query += "and :date_ref >= du.date_status ";
4172
+ query += "and (:date_ref >= du.date_start and :date_ref <= du.date_end) ";
3744
4173
  break;
3745
4174
 
3746
4175
  }
@@ -3754,10 +4183,10 @@ function queryDeviceStatusMySQL2(id_device, date_ref) {
3754
4183
  if (date_ref) {
3755
4184
  switch (date_ref) {
3756
4185
  case "current":
3757
- query += "and CURDATE() >= du.date_status ";
4186
+ query += "and (CURDATE() >= du.date_start and CURDATE() <= du.date_end) ";
3758
4187
  break;
3759
4188
  default:
3760
- query += "and '" + date_ref + "' >= du.date_status ";
4189
+ query += "and ('" + date_ref + "' >= du.date_start and '" + date_ref + "' <= du.date_end)";
3761
4190
  break;
3762
4191
 
3763
4192
  }
@@ -3785,35 +4214,37 @@ function queryDeviceStatus(db_used, id_device, date_ref) {
3785
4214
  //End Get Device Status
3786
4215
  // Manage insertDeviceStatus
3787
4216
  function insertDeviceStatusSQLite(id_device, dev_status, start_date) {
3788
- var query = "insert into device_usage (date_status, id_device, status) ";
4217
+ var query = "insert into device_usage (date_start, date_end, id_device, status) ";
3789
4218
  query += "values (";
3790
4219
  if ((!start_date || start_date == '') || start_date == "TODAY") {
3791
- query += "date('now'),";
4220
+ query += "date('now'), ";
3792
4221
  }
3793
4222
  else {
3794
- query += "'" + start_date + "',";
4223
+ query += "'" + start_date + "', ";
3795
4224
  }
4225
+ query += "'2999-12-31', ";
3796
4226
  query += id_device + ",";
3797
4227
  query += dev_status;
3798
4228
  query += ")";
3799
4229
  return query;
3800
4230
  }
3801
4231
  function insertDeviceStatusMySQL(id_device, dev_status, start_date) {
3802
- var query = "insert into device_usage (date_status, id_device, status) ";
4232
+ var query = "insert into device_usage (date_start, date_end, id_device, status) ";
3803
4233
  query += "values (";
3804
4234
  if ((!start_date || start_date == '') || start_date == "TODAY") {
3805
- query += "CURDATE(),";
4235
+ query += "CURDATE(), ";
3806
4236
  }
3807
4237
  else {
3808
- query += ":start_date,";
4238
+ query += ":start_date, ";
3809
4239
  }
4240
+ query += "'2999-12-31', ";
3810
4241
  query += ":id_device,";
3811
4242
  query += ":dev_status";
3812
4243
  query += ")";
3813
4244
  return query;
3814
4245
  }
3815
4246
  function insertDeviceStatusMySQL2(id_device, dev_status, start_date) {
3816
- var query = "insert into device_usage (date_status, id_device, status) ";
4247
+ var query = "insert into device_usage (date_start, date_end, id_device, status) ";
3817
4248
  query += "values (";
3818
4249
  if ((!start_date || start_date == '') || start_date == "TODAY") {
3819
4250
  query += "CURDATE(),";
@@ -3821,6 +4252,7 @@ function insertDeviceStatusMySQL2(id_device, dev_status, start_date) {
3821
4252
  else {
3822
4253
  query += "'" + start_date + "',";
3823
4254
  }
4255
+ query += "'2999-12-31', ";
3824
4256
  query += id_device + ",";
3825
4257
  query += dev_status;
3826
4258
  query += ")";
@@ -3844,7 +4276,71 @@ function insertDeviceStatus(db_used, id_device, dev_status, start_date) {
3844
4276
  return query;
3845
4277
  }
3846
4278
  //end insert device status
3847
- // Remove device status
4279
+ // Manage updateDeviceStatus
4280
+ function updateDeviceStatusSQLite(id_device, dev_status, start_date) {
4281
+ var query = "update device_usage (date_start, date_end, id_device, status) ";
4282
+ query += "values (";
4283
+ if ((!start_date || start_date == '') || start_date == "TODAY") {
4284
+ query += "date('now'), ";
4285
+ }
4286
+ else {
4287
+ query += "'" + start_date + "', ";
4288
+ }
4289
+ query += "'2999-12-31', ";
4290
+ query += id_device + ",";
4291
+ query += dev_status;
4292
+ query += ")";
4293
+ return query;
4294
+ }
4295
+ function insertDeviceStatusMySQL(id_device, dev_status, start_date) {
4296
+ var query = "insert into device_usage (date_start, date_end, id_device, status) ";
4297
+ query += "values (";
4298
+ if ((!start_date || start_date == '') || start_date == "TODAY") {
4299
+ query += "CURDATE(), ";
4300
+ }
4301
+ else {
4302
+ query += ":start_date, ";
4303
+ }
4304
+ query += "'2999-12-31', ";
4305
+ query += ":id_device,";
4306
+ query += ":dev_status";
4307
+ query += ")";
4308
+ return query;
4309
+ }
4310
+ function insertDeviceStatusMySQL2(id_device, dev_status, start_date) {
4311
+ var query = "insert into device_usage (date_start, date_end, id_device, status) ";
4312
+ query += "values (";
4313
+ if ((!start_date || start_date == '') || start_date == "TODAY") {
4314
+ query += "CURDATE(),";
4315
+ }
4316
+ else {
4317
+ query += "'" + start_date + "',";
4318
+ }
4319
+ query += "'2999-12-31', ";
4320
+ query += id_device + ",";
4321
+ query += dev_status;
4322
+ query += ")";
4323
+ return query;
4324
+ }
4325
+ function insertDeviceStatus(db_used, id_device, dev_status, start_date) {
4326
+ var query = "";
4327
+ if (db_used) {
4328
+ switch (db_used) {
4329
+ case 'SQLITE':
4330
+ query = insertDeviceStatusSQLite(id_device, dev_status, start_date);
4331
+ break;
4332
+ case 'MYSQL':
4333
+ query = insertDeviceStatusMySQL(id_device, dev_status, start_date);
4334
+ break;
4335
+ case 'MYSQL2':
4336
+ query = insertDeviceStatusMySQL2(id_device, dev_status, start_date);
4337
+ break;
4338
+ }
4339
+ }
4340
+ return query;
4341
+ }
4342
+ //end update device status
4343
+ // Remove device status - DA RIVEDERE -
3848
4344
  function removeDeviceStatusSQLite(id_device, dev_status) {
3849
4345
  var query = "delete from device_usage ";
3850
4346
  query += "where id_device = " + id_device + " and date_status = ";
@@ -3915,7 +4411,7 @@ function insertDeviceSQLite(dev) {
3915
4411
  if (dev.peso_g)
3916
4412
  peso = dev.peso_g;
3917
4413
 
3918
- query = "insert into devices (inv_ict3_number, inv_tn_number, inv_pnrr_number, inv_tndigit_number, type, manifacturer, model, serial_no, note, num_objects, no_inventario, peso_g) ";
4414
+ query = "insert into devices (inv_ict3_number, inv_tn_number, inv_pnrr_number, inv_tndigit_number, type, manifacturer, model, serial_no, note, num_objects, no_inventario, peso_g, part_of, is_unused) ";
3919
4415
  query += "values (";
3920
4416
  query += "'" + String(inventario).trim() + "',";
3921
4417
  query += "'" + String(inv_comune).trim() + "',";
@@ -3928,13 +4424,15 @@ function insertDeviceSQLite(dev) {
3928
4424
  query += "'" + String(note).trim() + "',";
3929
4425
  query += dev.num_objects + ", ";
3930
4426
  query += dev.no_inv + ", ";
3931
- query += peso;
4427
+ query += peso + ", ";
4428
+ query += "'" + dev.part_of + "', ";
4429
+ query += dev.is_unused;
3932
4430
  query += ")";
3933
4431
  }
3934
4432
  return query;
3935
4433
  }
3936
4434
  function insertDeviceMySQL() {
3937
- var query = "insert into devices (inv_ict3_number, inv_tn_number, inv_pnrr_number, inv_tndigit_number, type, manifacturer, model, serial_no, note, num_objects, no_inventario) ";
4435
+ var query = "insert into devices (inv_ict3_number, inv_tn_number, inv_pnrr_number, inv_tndigit_number, type, manifacturer, model, serial_no, note, num_objects, no_inventario, peso_g, part_of, is_unused) ";
3938
4436
  query += "values (";
3939
4437
  query += ":inventario, ";
3940
4438
  query += ":inv_comune, ";
@@ -3947,7 +4445,9 @@ function insertDeviceMySQL() {
3947
4445
  query += ":note, ";
3948
4446
  query += ":num_objects, ";
3949
4447
  query += ":no_inv, ";
3950
- query += ":peso_g ";
4448
+ query += ":peso_g, ";
4449
+ query += ":part_of, ";
4450
+ query += ":is_unused, ";
3951
4451
  query += ")";
3952
4452
  return query;
3953
4453
  }
@@ -4019,7 +4519,9 @@ function updateDeviceSQLite(deviceObj) {
4019
4519
  query += "note = '" + note.trim() + "',";
4020
4520
  query += "num_objects = " + dev.num_objects + ", ";
4021
4521
  query += "no_inventario = " + dev.no_inv + ", ";
4022
- query += "peso_g = " + peso + " ";
4522
+ query += "peso_g = " + peso + ", ";
4523
+ query += "part_of = '" + part_of + "', ";
4524
+ query += "is_unused = " + is_unused + " ";
4023
4525
  query += " where id = " + dev.id;
4024
4526
  }
4025
4527
  return query;
@@ -4038,7 +4540,9 @@ function updateDeviceMySQL() {
4038
4540
  query += "note = :note, ";
4039
4541
  query += "num_objects = :num_objects, ";
4040
4542
  query += "no_inventario = :no_inv, ";
4041
- query += "peso_g = :peso_g ";
4543
+ query += "peso_g = :peso_g, ";
4544
+ query += "part_of = :part_of, ";
4545
+ query += "is_unused = :is_unused ";
4042
4546
  query += " where id = :id_device";
4043
4547
  return query;
4044
4548
  }
@@ -4115,6 +4619,8 @@ function getDeviceMySQLPayload(dev) {
4115
4619
  "num_objects": retValue.num_objects,
4116
4620
  "no_inv": retValue.no_inv,
4117
4621
  "peso_g": retValue.peso_g,
4622
+ "part_of": retValue.part_of,
4623
+ "is_unused": retValue.is_unused,
4118
4624
  "id_device": dev.id
4119
4625
  };
4120
4626
  }
@@ -4152,7 +4658,38 @@ function removeDevice(db_used, id_device) {
4152
4658
  return query;
4153
4659
  }
4154
4660
 
4155
- //End remove device
4661
+ //End set unused device
4662
+ // Remove Device
4663
+ function updateUnusedDeviceSQLite(id_device, unused_switch) {
4664
+ var query = "update devices set is_unused = " + unused_switch + " ";
4665
+ query += "where id = " + id_device;
4666
+ return query;
4667
+ }
4668
+
4669
+ function updateUnusedDeviceMySQL() {
4670
+ var query = "update devices set is_unused = :unused_switch ";
4671
+ query += "where id = :id_device";
4672
+ return query;
4673
+ }
4674
+ function updateUnusedDevice(db_used, id_device, unused_switch) {
4675
+ var query = "";
4676
+ if (db_used) {
4677
+ switch (db_used) {
4678
+ case 'SQLITE':
4679
+ query = updateUnusedDeviceSQLite(id_device, unused_switch);
4680
+ break;
4681
+ case 'MYSQL':
4682
+ query = updateUnusedDeviceMySQL();
4683
+ break;
4684
+ case 'MYSQL2':
4685
+ query = updateUnusedDeviceSQLite(id_device, unused_switch);
4686
+ break;
4687
+ }
4688
+ }
4689
+ return query;
4690
+ }
4691
+
4692
+ //End set unused device
4156
4693
  //Get Last Id
4157
4694
  function queryLastDeviceIdSQLite() {
4158
4695
  return "select seq as id from sqlite_sequence where name = 'devices'";
@@ -12568,7 +13105,7 @@ function getLastSiteForDevice(db_used,id_device) {
12568
13105
 
12569
13106
 
12570
13107
  // end of source//Get Devices for Statistics
12571
- function queryStatisticSQLite(list_types) {
13108
+ function queryStatisticSQLite(list_types, exclude_unused) {
12572
13109
  var query = "select type as Tipo, count(*) as Numero from devices ";
12573
13110
  query += "where type in (";
12574
13111
  for (let i = 0; i < list_types.length; i++) {
@@ -12578,10 +13115,13 @@ function queryStatisticSQLite(list_types) {
12578
13115
  }
12579
13116
  }
12580
13117
  query += ") and (is_removed is null or is_removed = 0) ";
13118
+ if (exclude_unused && exclude_unused == 1) {
13119
+ query += "and (is_unused is null or is_unused = 0) ";
13120
+ }
12581
13121
  query += "group by Tipo";
12582
13122
  return query;
12583
13123
  }
12584
- function queryStatisticMySQL(list_types) {
13124
+ function queryStatisticMySQL(list_types, exclude_unused) {
12585
13125
  var query = "select type as Tipo, count(*) as Numero from devices ";
12586
13126
  query += "where type in (";
12587
13127
  for (let i = 0; i < list_types.length; i++) {
@@ -12591,21 +13131,24 @@ function queryStatisticMySQL(list_types) {
12591
13131
  }
12592
13132
  }
12593
13133
  query += ") and (is_removed is null or is_removed = 0) ";
13134
+ if (exclude_unused && exclude_unused == 1) {
13135
+ query += "and (is_unused is null or is_unused = 0) ";
13136
+ }
12594
13137
  query += "group by Tipo";
12595
13138
  return query;
12596
13139
  }
12597
- function queryStatistic(db_used,list_types) {
13140
+ function queryStatistic(db_used,list_types, exclude_unused) {
12598
13141
  var query = "";
12599
13142
  if (db_used) {
12600
13143
  switch (db_used) {
12601
13144
  case 'SQLITE':
12602
- query = queryStatisticSQLite(list_types);
13145
+ query = queryStatisticSQLite(list_types, exclude_unused);
12603
13146
  break;
12604
13147
  case 'MYSQL':
12605
- query = queryStatisticMySQL(list_types);
13148
+ query = queryStatisticMySQL(list_types, exclude_unused);
12606
13149
  break;
12607
13150
  case 'MYSQL2':
12608
- query = queryStatisticSQLite(list_types);
13151
+ query = queryStatisticSQLite(list_types, exclude_unused);
12609
13152
  break;
12610
13153
  }
12611
13154
  }
@@ -12837,7 +13380,7 @@ function queryStatisticsDeviceStatusSQLite() {
12837
13380
  var query = "select case when ds.status is null then 0 else ds.status end as Stato, sd.name as Descrizione, count(*) as Numero from devices d ";
12838
13381
  query += "left join device_usage ds on d.id = ds.id_device ";
12839
13382
  query += "join status_description sd on sd.id = Stato "
12840
- query += "where date('now') >= ds.date_status or Stato = 0 ";
13383
+ query += "where (date('now') >= ds.date_start and date('now') <= ds.date_end) or ds.status = 0 ";
12841
13384
  query += "and (is_removed is null or is_removed = 0) ";
12842
13385
  query += "group by Stato";
12843
13386
  return query;
@@ -12846,7 +13389,7 @@ function queryStatisticsDeviceStatusMySQL() {
12846
13389
  var query = "select case when ds.status is null then 0 else ds.status end as Stato, sd.name as Descrizione, count(*) as Numero from devices d ";
12847
13390
  query += "left join device_usage ds on d.id = ds.id_device ";
12848
13391
  query += "join status_description sd on sd.id = Stato "
12849
- query += "where CURDATE() >= ds.date_status or Stato = 0 ";
13392
+ query += "where (CURDATE() >= ds.date_start and CURDATE() <= ds.date_end) or ds.status = 0 ";
12850
13393
  query += "and (is_removed is null or is_removed = 0) ";
12851
13394
  query += "group by Stato";
12852
13395
  return query;
@@ -12855,7 +13398,7 @@ function queryStatisticsDeviceStatusMySQL2() {
12855
13398
  var query = "select case when ds.status is null then 0 else ds.status end as Stato, sd.name as Descrizione, count(*) as Numero from devices d ";
12856
13399
  query += "left join device_usage ds on d.id = ds.id_device ";
12857
13400
  query += "join status_description sd on sd.id = Stato "
12858
- query += "where CURDATE() >= ds.date_status or Stato = 0 ";
13401
+ query += "where (CURDATE() >= ds.date_start and CURDATE() <= ds.date_end) or ds.status = 0 ";
12859
13402
  query += "and (is_removed is null or is_removed = 0) ";
12860
13403
  query += "group by Stato";
12861
13404
  return query;
@@ -15166,6 +15709,9 @@ module.exports = {
15166
15709
  queryNetworksByFilter,
15167
15710
  getDevicesSelectByRelated,
15168
15711
  getDevicesSelect,
15712
+ getDevicesByDetailsSelect,
15713
+ createDeviceSelectObj,
15714
+ createDetailsObj,
15169
15715
  getDevicesByIdDoc,
15170
15716
  getDevicesSelectBySite,
15171
15717
  queryDeviceById,
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  ".": "./lib/modules.js",
5
5
  "./dbconn": "./lib/dbconn.js"
6
6
  },
7
- "version": "3.0.139",
7
+ "version": "3.0.142",
8
8
  "description": "Funzioni per ALSManager",
9
9
  "license": "ISC",
10
10
  "author": "Luca Cattani",