Преглед изворни кода

fixed bug in Zaliczka count nierozliczona kwota

Piotr Labudda пре 9 година
родитељ
комит
6974375820

+ 6 - 0
SE/se-lib/Core/Pdo.php

@@ -415,6 +415,7 @@ EOF_STRUCT_MYSQL;
 
 	// for sql like `select count() from ...`
 	public function fetchValue($sql) {
+		DBG::_('DBG_SQL', '>3', "sql", $sql, __CLASS__, __FUNCTION__, __LINE__);
 		$sth = $this->query($sql);
 		return $sth->fetchColumn();
 	}
@@ -528,4 +529,9 @@ EOF_STRUCT_MYSQL;
 		return $this->exec($sql);
 	}
 
+	public function execSql($sql) {
+		DBG::_('DBG_SQL', '>3', "sql", $sql, __CLASS__, __FUNCTION__, __LINE__);
+		return $this->exec($sql);
+	}
+
 }

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

@@ -214,7 +214,6 @@ class Route_UrlAction_UserProNetMediaZaliczka extends RouteBase {// TODO: UrlAct
 				]
 			]);
 			if (!$id) throw new Exception("Nie udało się utworzyć zaliczki");
-
 		} catch (Exception $e) {
 			UI::gora();
 			// UI::menu();// TODO: show menu

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

@@ -93,17 +93,17 @@ class Schema_DefaultDb_zaliczka_ZaliczkaStorageAcl extends Core_AclSimpleSchemaB
     if ($idActiveZaliczka > 0) {
       $zaliczkaRefPozycja = ACL::getRefTable('default_db/ZALICZKA/Zaliczka', 'pozycja');
       $userSaldo = DB::getPDO()->fetchValue("
-    		select t.KWOTA + t.NIEROZLICZONA_KWOTA - sum(r.KWOTA)
+    		select t.KWOTA + t.NIEROZLICZONA_KWOTA - sum(COALESCE(r.KWOTA, 0))
     		from `ZALICZKA` t
     			left join `{$zaliczkaRefPozycja}` ref on(ref.PRIMARY_KEY = t.ID and ref.A_STATUS != 'DELETED')
     			left join `ZALICZKA_POZYCJA` r on(r.ID = ref.REMOTE_PRIMARY_KEY)
         where t.ID = {$idActiveZaliczka}
     	");
-      if($DBG){DBG::nicePrint($userSaldo, '$userSaldo');}
     }
+    if($DBG){DBG::nicePrint($userSaldo, '$userSaldo');}
 
     $usrLogin = User::getLogin();
-    $execRet = DB::getPDO()->exec("
+    $execRet = DB::getPDO()->execSql("
       insert into `ZALICZKA` (A_RECORD_CREATE_AUTHOR, A_RECORD_CREATE_DATE
           , L_APPOITMENT_USER, NIEROZLICZONA_KWOTA)
         select '{$usrLogin}' as A_RECORD_CREATE_AUTHOR, NOW() as A_RECORD_CREATE_DATE
@@ -116,7 +116,7 @@ class Schema_DefaultDb_zaliczka_ZaliczkaStorageAcl extends Core_AclSimpleSchemaB
     if($DBG){DBG::nicePrint($id, '$id');}
     if (!$id) throw new Exception("Wystąpiły błędy podczas dodawania Zaliczki do bazy danych");
 
-    DB::getPDO()->exec("
+    DB::getPDO()->execSql("
       insert into `ZALICZKA__#INSTANCE` (PRIMARY_KEY, INSTANCE_NAME)
         values({$id}, 'ZaliczkaAktywna')
       ON DUPLICATE KEY UPDATE INSTANCE_NAME = 'ZaliczkaAktywna'
@@ -142,20 +142,20 @@ class Schema_DefaultDb_zaliczka_ZaliczkaStorageAcl extends Core_AclSimpleSchemaB
       ") as $instance) {
         if($DBG){DBG::nicePrint($instance, '$instance');}
   			if (!$instance['has_instance']) {
-          DB::getPDO()->exec("
+          DB::getPDO()->execSql("
     				insert into `ZALICZKA__#INSTANCE_HIST` (PRIMARY_KEY, INSTANCE_NAME)
     					values ({$instance['ID_ZALICZKA']}, 'ZaliczkaArchiwalna')
     			");
-  				DB::getPDO()->exec("
+  				DB::getPDO()->execSql("
   					insert into `ZALICZKA__#INSTANCE` (PRIMARY_KEY, INSTANCE_NAME)
   						values ({$instance['ID_ZALICZKA']}, 'ZaliczkaArchiwalna')
   				");
   			} else if ('ZaliczkaAktywna' == $instance['INSTANCE_NAME']) {
-          DB::getPDO()->exec("
+          DB::getPDO()->execSql("
     				insert into `ZALICZKA__#INSTANCE_HIST` (PRIMARY_KEY, INSTANCE_NAME)
     					values ({$instance['ID_ZALICZKA']}, 'ZaliczkaArchiwalna')
     			");
-  				DB::getPDO()->exec("
+  				DB::getPDO()->execSql("
   					update `ZALICZKA__#INSTANCE`
   					set INSTANCE_NAME = 'ZaliczkaArchiwalna'
   						, A_RECORD_UPDATE_DATE = NOW()
@@ -167,7 +167,7 @@ class Schema_DefaultDb_zaliczka_ZaliczkaStorageAcl extends Core_AclSimpleSchemaB
 
     $this->insertRef('worker', $id, $idUser);
 
-    DB::getPDO()->exec("
+    DB::getPDO()->execSql("
       update ZALICZKA
       set A_STATUS = 'OFF_HARD'
       where L_APPOITMENT_USER = '{$userLogin}'
@@ -175,7 +175,7 @@ class Schema_DefaultDb_zaliczka_ZaliczkaStorageAcl extends Core_AclSimpleSchemaB
     ");
 
     // TODO: legacy fill table ZALICZKA_HIST
-    DB::getPDO()->exec("
+    DB::getPDO()->execSql("
       insert into `ZALICZKA_HIST` (ID_USERS2, L_APPOITMENT_USER, NIEROZLICZONA_KWOTA)
         select z.ID as ID_USERS2, z.L_APPOITMENT_USER, z.NIEROZLICZONA_KWOTA
         from ZALICZKA z
@@ -223,7 +223,7 @@ class Schema_DefaultDb_zaliczka_ZaliczkaStorageAcl extends Core_AclSimpleSchemaB
 
   public function reinstall() {
     // TODO: mv to Core_AclSimpleSchemaBase and reainstall by _simpleSchema - read current data from `information_schema`
-		DB::getPDO()->exec("
+		DB::getPDO()->execSql("
 			CREATE TABLE IF NOT EXISTS `ZALICZKA` (
 				`ID` int(11) NOT NULL AUTO_INCREMENT,
 				`A_RECORD_CREATE_DATE` datetime  DEFAULT NULL,
@@ -239,7 +239,7 @@ class Schema_DefaultDb_zaliczka_ZaliczkaStorageAcl extends Core_AclSimpleSchemaB
 				PRIMARY KEY (`ID`)
 			) ENGINE=MyISAM DEFAULT CHARSET=latin2;
 		");
-		DB::getPDO()->exec("
+		DB::getPDO()->execSql("
 			CREATE TABLE IF NOT EXISTS `ZALICZKA_HIST` (
 				`ID` int(11) NOT NULL AUTO_INCREMENT,
 				`ID_USERS2` int(11) NOT NULL,
@@ -257,7 +257,7 @@ class Schema_DefaultDb_zaliczka_ZaliczkaStorageAcl extends Core_AclSimpleSchemaB
 			  KEY `ID_USERS2` (`ID_USERS2`)
 			) ENGINE=MyISAM  DEFAULT CHARSET=latin2;
 		");
-		DB::getPDO()->exec("
+		DB::getPDO()->execSql("
 			CREATE TABLE IF NOT EXISTS `ZALICZKA_POZYCJA` (
 				`ID` int(11) NOT NULL AUTO_INCREMENT,
 				`A_RECORD_CREATE_DATE` datetime  DEFAULT NULL,
@@ -272,7 +272,7 @@ class Schema_DefaultDb_zaliczka_ZaliczkaStorageAcl extends Core_AclSimpleSchemaB
 				PRIMARY KEY (`ID`)
 			) ENGINE=MyISAM DEFAULT CHARSET=latin2;
 		");
-		DB::getPDO()->exec("
+		DB::getPDO()->execSql("
 			CREATE TABLE IF NOT EXISTS `ZALICZKA_POZYCJA_HIST` (
 				`ID` int(11) NOT NULL AUTO_INCREMENT,
 				`ID_USERS2` int(11) NOT NULL,