Bläddra i källkod

updated Zaliczka instance info

Piotr Labudda 9 år sedan
förälder
incheckning
9efcec261d

+ 1 - 0
SE/se-lib/Route/UrlAction/UserProNetMediaZaliczka.php

@@ -158,6 +158,7 @@ class Route_UrlAction_UserProNetMediaZaliczka extends RouteBase {// TODO: UrlAct
 					return [
 						'Nr' => $row['ID'],
 						'Status' => $row['A_STATUS'],
+						'INSTANCE' => DB::getPDO()->fetchValue("select INSTANCE_NAME from `ZALICZKA__#INSTANCE` where PRIMARY_KEY = {$row['ID']}"),
 						'L_APPOITMENT_USER' => $row['L_APPOITMENT_USER'],
 						'KWOTA' => $row['KWOTA'],
 						'NIEROZLICZONA_KWOTA' => $row['NIEROZLICZONA_KWOTA'],

+ 58 - 1
SE/se-lib/Schema/DefaultDb/zaliczka/ZaliczkaStorageAcl.php

@@ -137,9 +137,66 @@ class Schema_DefaultDb_zaliczka_ZaliczkaStorageAcl extends Core_AclSimpleSchemaB
     DBG::nicePrint($execRet, '$execRet');// TODO: DBG
     $id = DB::getPDO()->lastInsertId();
     DBG::nicePrint($id, '$id');// TODO: DBG
+    if (!$id) throw new Exception("Wystąpiły błędy podczas dodawania Zaliczki do bazy danych");
+
+    DB::getPDO()->exec("
+      insert into `ZALICZKA__#INSTANCE` (PRIMARY_KEY, INSTANCE_NAME)
+        values({$id}, 'ZaliczkaAktywna')
+      ON DUPLICATE KEY UPDATE INSTANCE_NAME = 'ZaliczkaAktywna'
+    ");
+    foreach (DB::getPDO()->fetchAll("
+      select z.ID as ID_ZALICZKA, i.*
+      from `ZALICZKA` z
+        left join `ZALICZKA__#INSTANCE` i on(i.PRIMARY_KEY = z.ID)
+      where z.ID != {$id}
+        and z.L_APPOITMENT_USER = '{$userLogin}'
+    ") as $instance) {
+      DBG::nicePrint($instance, '$instance');// TODO: DBG
+
+      // FIX Instance name
+      foreach (DB::getPDO()->fetchAll("
+        select z.ID as ID_ZALICZKA
+  				, IF(i.PRIMARY_KEY IS NOT NULL, 1, 0) as has_instance
+  				, i.*
+        from `ZALICZKA` z
+          left join `ZALICZKA__#INSTANCE` i on(i.PRIMARY_KEY = z.ID)
+        where z.ID != {$id}
+          and z.L_APPOITMENT_USER = '{$userLogin}'
+      ") as $instance) {
+        DBG::nicePrint($instance, '$instance');// TODO: DBG
+  			if (!$instance['has_instance']) {
+          DB::getPDO()->exec("
+    				insert into `ZALICZKA__#INSTANCE_HIST` (PRIMARY_KEY, INSTANCE_NAME)
+    					values ({$instance['ID_ZALICZKA']}, 'ZaliczkaArchiwalna')
+    			");
+  				DB::getPDO()->exec("
+  					insert into `ZALICZKA__#INSTANCE` (PRIMARY_KEY, INSTANCE_NAME)
+  						values ({$instance['ID_ZALICZKA']}, 'ZaliczkaArchiwalna')
+  				");
+  			} else if ('ZaliczkaAktywna' == $instance['INSTANCE_NAME']) {
+          DB::getPDO()->exec("
+    				insert into `ZALICZKA__#INSTANCE_HIST` (PRIMARY_KEY, INSTANCE_NAME)
+    					values ({$instance['ID_ZALICZKA']}, 'ZaliczkaArchiwalna')
+    			");
+  				DB::getPDO()->exec("
+  					update `ZALICZKA__#INSTANCE`
+  					set INSTANCE_NAME = 'ZaliczkaArchiwalna'
+  						, A_RECORD_UPDATE_DATE = NOW()
+  					where PRIMARY_KEY = {$instance['ID_ZALICZKA']}
+  				");
+  			}
+      }
+    }
 
     $this->insertRef('worker', $id, $idUser);
 
+    DB::getPDO()->exec("
+      update ZALICZKA
+      set A_STATUS = 'OFF_HARD'
+      where L_APPOITMENT_USER = '{$userLogin}'
+        and ID < {$id}
+    ");
+
     // TODO: legacy fill table ZALICZKA_HIST
     DB::getPDO()->exec("
       insert into `ZALICZKA_HIST` (ID_USERS2, L_APPOITMENT_USER, NIEROZLICZONA_KWOTA)
@@ -159,7 +216,7 @@ class Schema_DefaultDb_zaliczka_ZaliczkaStorageAcl extends Core_AclSimpleSchemaB
 				`A_RECORD_CREATE_AUTHOR` varchar(20)  DEFAULT NULL,
 				`A_RECORD_UPDATE_DATE` datetime  DEFAULT NULL,
 				`A_RECORD_UPDATE_AUTHOR` varchar(20) NOT NULL DEFAULT '',
-				`A_STATUS` enum('WAITING','NORMAL','MONITOR','WARNING','OFF_SOFT','OFF_HARD','DELETED') DEFAULT NULL,
+				`A_STATUS` enum('WAITING','NORMAL','MONITOR','WARNING','OFF_SOFT','OFF_HARD','DELETED') DEFAULT 'WAITING',
 				`A_ADM_COMPANY` varchar(100) NOT NULL DEFAULT '',
 				`A_CLASSIFIED` varchar(100) NOT NULL DEFAULT '',
 				`L_APPOITMENT_USER` varchar(100) NOT NULL DEFAULT '',