|
|
@@ -6,191 +6,191 @@ Lib::loadClass('DBG');
|
|
|
|
|
|
class Schema_DefaultDb_zaliczka_ZaliczkaStorageAcl extends Core_AclSimpleSchemaBase {
|
|
|
|
|
|
- public $_simpleSchema = [
|
|
|
- 'root' => [
|
|
|
- '@namespace' => 'default_db/ZALICZKA/Zaliczka',// Api_WfsNs::getBaseWfsUri() . '/default_db/Zaliczka'
|
|
|
- '@primaryKey' => 'id',
|
|
|
- 'id' => [ '@type' => 'xsd:integer', '@alias' => 'ID' ],
|
|
|
- 'created' => [ '@type' => 'xsd:date', '@alias' => 'A_RECORD_CREATE_DATE' ],
|
|
|
- 'worker' => [ '@ref' => 'default_objects/AccessOwner' ],// 'alias_ref:default_objects:AccessOwner'
|
|
|
- 'kwota' => [ '@type' => 'xsd:decimal', '@totalDigits' => 16, '@fractionDigits' => 2, '@alias' => 'KWOTA' ],
|
|
|
- 'uwagi' => [ '@type' => 'xsd:string', '@alias' => 'UWAGI' ],
|
|
|
- 'nierozliczona_kwota' => [ '@type' => 'xsd:decimal', '@totalDigits' => 16, '@fractionDigits' => 2, '@alias' => 'NIEROZLICZONA_KWOTA' ],
|
|
|
- 'korespondencja' => [ '@ref' => 'default_db/IN7_DZIENNIK_KORESP/ZaliczkaKoresp' ],
|
|
|
- 'pozycja' => [ '@ref' => 'default_db/ZALICZKA_POZYCJA/ZaliczkaPozycja', '@maxOccurs' => 'unbounded' ],
|
|
|
- 'A_STATUS' => [ '@type' => 'xsd:string' ],
|
|
|
- 'L_APPOITMENT_USER' => [ '@type' => 'xsd:string' ],
|
|
|
- 'approvedBy' => [ '@type' => 'xsd:string', '@alias' => 'APPROVED_BY' ],
|
|
|
- ],
|
|
|
- ];
|
|
|
-
|
|
|
- public function getTotal($params = array()) {
|
|
|
- if (!isset($params['#refFrom'])) {
|
|
|
- throw new Exception("Missing param #refFrom/primaryKey (id user)");
|
|
|
- }
|
|
|
- $idUser = V::get('primaryKey', 0, $params['#refFrom'], 'int');
|
|
|
- return DB::getPDO()->fetchValue("
|
|
|
- select count(*) as cnt
|
|
|
- from ZALICZKA z
|
|
|
- join ADMIN_USERS u on(z.L_APPOITMENT_USER = u.ADM_ACCOUNT and u.ID = {$idUser})
|
|
|
- ");
|
|
|
- }
|
|
|
-
|
|
|
- public function getItems($params = array()) {
|
|
|
- // '#refFrom' => [
|
|
|
- // 'namespace' => 'default_db__x3A__ADMIN_USERS/Worker',
|
|
|
- // 'primaryKey' => $idUser
|
|
|
- // ]
|
|
|
- if (!isset($params['#refFrom'])) {
|
|
|
- throw new Exception("Missing param #refFrom/primaryKey (id user)");
|
|
|
- }
|
|
|
- $idUser = V::get('primaryKey', 0, $params['#refFrom'], 'int');
|
|
|
-
|
|
|
- return array_map(
|
|
|
- function ($row) use ($params) {
|
|
|
- return $this->buildFromSqlRow($row, $params);
|
|
|
- },
|
|
|
- DB::getPDO()->fetchAll("
|
|
|
- select z.*
|
|
|
- from ZALICZKA z
|
|
|
- join ADMIN_USERS u on(z.L_APPOITMENT_USER = u.ADM_ACCOUNT and u.ID = {$idUser})
|
|
|
- order by z.ID DESC
|
|
|
- ")
|
|
|
- );
|
|
|
- }
|
|
|
-
|
|
|
- public function addItem($itemTodo) {
|
|
|
- DBG::log(['msg' => '$itemTodo', 'log' => $itemTodo]);
|
|
|
-
|
|
|
- if (!is_array($itemTodo) || empty($itemTodo['worker'])) throw new Exception("Missing worker");
|
|
|
- if (empty($itemTodo['worker']['id'])) throw new Exception("Missing worker id");
|
|
|
- if (empty($itemTodo['kwota'])) throw new Exception("Nie podano kwoty");
|
|
|
- $itemTodo['kwota'] = floatval($itemTodo['kwota']);
|
|
|
- if ($itemTodo['kwota'] <= 0) throw new Exception("Podano błędną kwotę");
|
|
|
-
|
|
|
- $idUser = intval($itemTodo['worker']['id']);
|
|
|
- if ($idUser <= 0) throw new Exception("Wrong worker id");
|
|
|
-
|
|
|
- // TODO: use default_objects/AccessOwner -> getItem($idUser)
|
|
|
- $userLogin = DB::getPDO()->fetchValue("
|
|
|
- select u.ADM_ACCOUNT
|
|
|
- from `ADMIN_USERS` u
|
|
|
- where u.ID = {$idUser}
|
|
|
- ");
|
|
|
- if (empty($userLogin)) throw new Exception("User not exists ID={$idUser}");
|
|
|
- DBG::log(['msg' => '$userLogin', 'log' => $userLogin]);
|
|
|
-
|
|
|
- $idTransaction = Core_AclHelper::startTransaction('ZALICZKA', $idUser, $userLogin);
|
|
|
-
|
|
|
- $zaliczkaRefWorker = ACL::getRefTable('default_db/ZALICZKA/Zaliczka', 'worker');
|
|
|
- $idActiveZaliczka = DB::getPDO()->fetchValue("
|
|
|
- select MAX(t.ID)
|
|
|
- from `ZALICZKA` t
|
|
|
- -- join `ADMIN_USERS` u on(t.L_APPOITMENT_USER = u.ADM_ACCOUNT)
|
|
|
- left join `{$zaliczkaRefWorker}` ref on(ref.PRIMARY_KEY = t.ID and ref.A_STATUS != 'DELETED')
|
|
|
- left join `ADMIN_USERS` r on(r.ID = ref.REMOTE_PRIMARY_KEY)
|
|
|
- where r.ID = {$idUser}
|
|
|
- and t.A_STATUS in('WAITING', 'NORMAL') -- TODO cache use #INSTANCE table
|
|
|
- ");
|
|
|
- DBG::log(['msg' => '$idActiveZaliczka', 'log' => $idActiveZaliczka]);
|
|
|
-
|
|
|
- $userSaldo = 0;
|
|
|
- if ($idActiveZaliczka > 0) {
|
|
|
- $zaliczkaRefPozycja = ACL::getRefTable('default_db/ZALICZKA/Zaliczka', 'pozycja');
|
|
|
- $userSaldo = DB::getPDO()->fetchValue("
|
|
|
- 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 and (r.A_STATUS is null or r.A_STATUS != 'DELETED'))
|
|
|
- where t.ID = {$idActiveZaliczka}
|
|
|
- ");
|
|
|
- }
|
|
|
- DBG::log(['msg' => '$userSaldo', 'log' => $userSaldo]);
|
|
|
-
|
|
|
- $usrLogin = User::getLogin();
|
|
|
- $sqlUwagi = DB::getPDO()->quote(V::get('uwagi', '', $itemTodo), PDO::PARAM_STR);
|
|
|
- $sqlApprovedBy = DB::getPDO()->quote(V::get('approvedBy', '', $itemTodo), PDO::PARAM_STR);
|
|
|
- $execRet = DB::getPDO()->execSql("
|
|
|
- insert into `ZALICZKA` (A_RECORD_CREATE_AUTHOR, A_RECORD_CREATE_DATE
|
|
|
- , L_APPOITMENT_USER, NIEROZLICZONA_KWOTA
|
|
|
- , KWOTA, UWAGI, APPROVED_BY)
|
|
|
- select '{$usrLogin}' as A_RECORD_CREATE_AUTHOR, NOW() as A_RECORD_CREATE_DATE
|
|
|
- , u.ADM_ACCOUNT, '{$userSaldo}'
|
|
|
- , '{$itemTodo['kwota']}', {$sqlUwagi}, {$sqlApprovedBy}
|
|
|
- from ADMIN_USERS u
|
|
|
- where u.ID = {$idUser}
|
|
|
- ");
|
|
|
- DBG::log(['msg' => '$execRet', 'log' => $execRet]);
|
|
|
- $id = DB::getPDO()->lastInsertId();
|
|
|
- DBG::log(['msg' => '$id', 'log' => $id]);
|
|
|
- if (!$id) throw new Exception("Wystąpiły błędy podczas dodawania Zaliczki do bazy danych");
|
|
|
-
|
|
|
- DB::getPDO()->execSql("
|
|
|
- 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::log(['msg' => 'old $instance', 'log' => $instance]);
|
|
|
-
|
|
|
- // 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::log(['msg' => 'fix instance name $instance', 'log' => $instance]);
|
|
|
- if (!$instance['has_instance']) {
|
|
|
- DB::getPDO()->insert('ZALICZKA__#INSTANCE_HIST', [
|
|
|
- 'PRIMARY_KEY' => $instance['ID_ZALICZKA'],
|
|
|
- 'INSTANCE_NAME' => 'ZaliczkaArchiwalna'
|
|
|
- ]);
|
|
|
- DB::getPDO()->insert('ZALICZKA__#INSTANCE', [
|
|
|
- 'PRIMARY_KEY' => $instance['ID_ZALICZKA'],
|
|
|
- 'INSTANCE_NAME' => 'ZaliczkaArchiwalna'
|
|
|
- ]);
|
|
|
- } else if ('ZaliczkaAktywna' == $instance['INSTANCE_NAME']) {
|
|
|
- DB::getPDO()->insert('ZALICZKA__#INSTANCE_HIST', [
|
|
|
- 'PRIMARY_KEY' => $instance['ID_ZALICZKA'],
|
|
|
- 'INSTANCE_NAME' => 'ZaliczkaArchiwalna'
|
|
|
- ]);
|
|
|
- DB::getPDO()->execSql("
|
|
|
- update `ZALICZKA__#INSTANCE`
|
|
|
- set INSTANCE_NAME = 'ZaliczkaArchiwalna'
|
|
|
- , A_RECORD_UPDATE_DATE = NOW()
|
|
|
- where PRIMARY_KEY = {$instance['ID_ZALICZKA']}
|
|
|
- ");
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- $this->insertRef('worker', $id, $idUser);// TODO: add to hist table
|
|
|
-
|
|
|
- $childTableKwota = $this->getChildHistTable('kwota');
|
|
|
- DB::getPDO()->insert($childTableKwota, [
|
|
|
- 'VALUE' => $itemTodo['kwota'],
|
|
|
- 'A_TRANSACTION_ID' => $idTransaction
|
|
|
- ]);
|
|
|
-
|
|
|
- DB::getPDO()->execSql("
|
|
|
- update ZALICZKA
|
|
|
- set A_STATUS = 'OFF_HARD'
|
|
|
- where L_APPOITMENT_USER = '{$userLogin}'
|
|
|
- and ID < {$id}
|
|
|
- ");
|
|
|
-
|
|
|
- // TODO: legacy fill table ZALICZKA_HIST
|
|
|
- // $itemTodo['A_RECORD_UPDATE_AUTHOR'] = User::getLogin();
|
|
|
+ public $_simpleSchema = [
|
|
|
+ 'root' => [
|
|
|
+ '@namespace' => 'default_db/ZALICZKA/Zaliczka',// Api_WfsNs::getBaseWfsUri() . '/default_db/Zaliczka'
|
|
|
+ '@primaryKey' => 'id',
|
|
|
+ 'id' => [ '@type' => 'xsd:integer', '@alias' => 'ID' ],
|
|
|
+ 'created' => [ '@type' => 'xsd:date', '@alias' => 'A_RECORD_CREATE_DATE' ],
|
|
|
+ 'worker' => [ '@ref' => 'default_objects/AccessOwner' ],// 'alias_ref:default_objects:AccessOwner'
|
|
|
+ 'kwota' => [ '@type' => 'xsd:decimal', '@totalDigits' => 16, '@fractionDigits' => 2, '@alias' => 'KWOTA' ],
|
|
|
+ 'uwagi' => [ '@type' => 'xsd:string', '@alias' => 'UWAGI' ],
|
|
|
+ 'nierozliczona_kwota' => [ '@type' => 'xsd:decimal', '@totalDigits' => 16, '@fractionDigits' => 2, '@alias' => 'NIEROZLICZONA_KWOTA' ],
|
|
|
+ 'korespondencja' => [ '@ref' => 'default_db/IN7_DZIENNIK_KORESP/ZaliczkaKoresp' ],
|
|
|
+ 'pozycja' => [ '@ref' => 'default_db/ZALICZKA_POZYCJA/ZaliczkaPozycja', '@maxOccurs' => 'unbounded' ],
|
|
|
+ 'A_STATUS' => [ '@type' => 'xsd:string' ],
|
|
|
+ 'L_APPOITMENT_USER' => [ '@type' => 'xsd:string' ],
|
|
|
+ 'approvedBy' => [ '@type' => 'xsd:string', '@alias' => 'APPROVED_BY' ],
|
|
|
+ ],
|
|
|
+ ];
|
|
|
+
|
|
|
+ public function getTotal($params = array()) {
|
|
|
+ if (!isset($params['#refFrom'])) {
|
|
|
+ throw new Exception("Missing param #refFrom/primaryKey (id user)");
|
|
|
+ }
|
|
|
+ $idUser = V::get('primaryKey', 0, $params['#refFrom'], 'int');
|
|
|
+ return DB::getPDO()->fetchValue("
|
|
|
+ select count(*) as cnt
|
|
|
+ from ZALICZKA z
|
|
|
+ join ADMIN_USERS u on(z.L_APPOITMENT_USER = u.ADM_ACCOUNT and u.ID = {$idUser})
|
|
|
+ ");
|
|
|
+ }
|
|
|
+
|
|
|
+ public function getItems($params = array()) {
|
|
|
+ // '#refFrom' => [
|
|
|
+ // 'namespace' => 'default_db__x3A__ADMIN_USERS/Worker',
|
|
|
+ // 'primaryKey' => $idUser
|
|
|
+ // ]
|
|
|
+ if (!isset($params['#refFrom'])) {
|
|
|
+ throw new Exception("Missing param #refFrom/primaryKey (id user)");
|
|
|
+ }
|
|
|
+ $idUser = V::get('primaryKey', 0, $params['#refFrom'], 'int');
|
|
|
+
|
|
|
+ return array_map(
|
|
|
+ function ($row) use ($params) {
|
|
|
+ return $this->buildFromSqlRow($row, $params);
|
|
|
+ },
|
|
|
+ DB::getPDO()->fetchAll("
|
|
|
+ select z.*
|
|
|
+ from ZALICZKA z
|
|
|
+ join ADMIN_USERS u on(z.L_APPOITMENT_USER = u.ADM_ACCOUNT and u.ID = {$idUser})
|
|
|
+ order by z.ID DESC
|
|
|
+ ")
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
+ public function addItem($itemTodo) {
|
|
|
+ DBG::log(['msg' => '$itemTodo', 'log' => $itemTodo]);
|
|
|
+
|
|
|
+ if (!is_array($itemTodo) || empty($itemTodo['worker'])) throw new Exception("Missing worker");
|
|
|
+ if (empty($itemTodo['worker']['id'])) throw new Exception("Missing worker id");
|
|
|
+ if (empty($itemTodo['kwota'])) throw new Exception("Nie podano kwoty");
|
|
|
+ $itemTodo['kwota'] = floatval($itemTodo['kwota']);
|
|
|
+ if ($itemTodo['kwota'] <= 0) throw new Exception("Podano błędną kwotę");
|
|
|
+
|
|
|
+ $idUser = intval($itemTodo['worker']['id']);
|
|
|
+ if ($idUser <= 0) throw new Exception("Wrong worker id");
|
|
|
+
|
|
|
+ // TODO: use default_objects/AccessOwner -> getItem($idUser)
|
|
|
+ $userLogin = DB::getPDO()->fetchValue("
|
|
|
+ select u.ADM_ACCOUNT
|
|
|
+ from `ADMIN_USERS` u
|
|
|
+ where u.ID = {$idUser}
|
|
|
+ ");
|
|
|
+ if (empty($userLogin)) throw new Exception("User not exists ID={$idUser}");
|
|
|
+ DBG::log(['msg' => '$userLogin', 'log' => $userLogin]);
|
|
|
+
|
|
|
+ $idTransaction = Core_AclHelper::startTransaction('ZALICZKA', $idUser, $userLogin);
|
|
|
+
|
|
|
+ $zaliczkaRefWorker = ACL::getRefTable('default_db/ZALICZKA/Zaliczka', 'worker');
|
|
|
+ $idActiveZaliczka = DB::getPDO()->fetchValue("
|
|
|
+ select MAX(t.ID)
|
|
|
+ from `ZALICZKA` t
|
|
|
+ -- join `ADMIN_USERS` u on(t.L_APPOITMENT_USER = u.ADM_ACCOUNT)
|
|
|
+ left join `{$zaliczkaRefWorker}` ref on(ref.PRIMARY_KEY = t.ID and ref.A_STATUS != 'DELETED')
|
|
|
+ left join `ADMIN_USERS` r on(r.ID = ref.REMOTE_PRIMARY_KEY)
|
|
|
+ where r.ID = {$idUser}
|
|
|
+ and t.A_STATUS in('WAITING', 'NORMAL') -- TODO cache use #INSTANCE table
|
|
|
+ ");
|
|
|
+ DBG::log(['msg' => '$idActiveZaliczka', 'log' => $idActiveZaliczka]);
|
|
|
+
|
|
|
+ $userSaldo = 0;
|
|
|
+ if ($idActiveZaliczka > 0) {
|
|
|
+ $zaliczkaRefPozycja = ACL::getRefTable('default_db/ZALICZKA/Zaliczka', 'pozycja');
|
|
|
+ $userSaldo = DB::getPDO()->fetchValue("
|
|
|
+ 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 and (r.A_STATUS is null or r.A_STATUS != 'DELETED'))
|
|
|
+ where t.ID = {$idActiveZaliczka}
|
|
|
+ ");
|
|
|
+ }
|
|
|
+ DBG::log(['msg' => '$userSaldo', 'log' => $userSaldo]);
|
|
|
+
|
|
|
+ $usrLogin = User::getLogin();
|
|
|
+ $sqlUwagi = DB::getPDO()->quote(V::get('uwagi', '', $itemTodo), PDO::PARAM_STR);
|
|
|
+ $sqlApprovedBy = DB::getPDO()->quote(V::get('approvedBy', '', $itemTodo), PDO::PARAM_STR);
|
|
|
+ $execRet = DB::getPDO()->execSql("
|
|
|
+ insert into `ZALICZKA` (A_RECORD_CREATE_AUTHOR, A_RECORD_CREATE_DATE
|
|
|
+ , L_APPOITMENT_USER, NIEROZLICZONA_KWOTA
|
|
|
+ , KWOTA, UWAGI, APPROVED_BY)
|
|
|
+ select '{$usrLogin}' as A_RECORD_CREATE_AUTHOR, NOW() as A_RECORD_CREATE_DATE
|
|
|
+ , u.ADM_ACCOUNT, '{$userSaldo}'
|
|
|
+ , '{$itemTodo['kwota']}', {$sqlUwagi}, {$sqlApprovedBy}
|
|
|
+ from ADMIN_USERS u
|
|
|
+ where u.ID = {$idUser}
|
|
|
+ ");
|
|
|
+ DBG::log(['msg' => '$execRet', 'log' => $execRet]);
|
|
|
+ $id = DB::getPDO()->lastInsertId();
|
|
|
+ DBG::log(['msg' => '$id', 'log' => $id]);
|
|
|
+ if (!$id) throw new Exception("Wystąpiły błędy podczas dodawania Zaliczki do bazy danych");
|
|
|
+
|
|
|
+ DB::getPDO()->execSql("
|
|
|
+ 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::log(['msg' => 'old $instance', 'log' => $instance]);
|
|
|
+
|
|
|
+ // 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::log(['msg' => 'fix instance name $instance', 'log' => $instance]);
|
|
|
+ if (!$instance['has_instance']) {
|
|
|
+ DB::getPDO()->insert('ZALICZKA__#INSTANCE_HIST', [
|
|
|
+ 'PRIMARY_KEY' => $instance['ID_ZALICZKA'],
|
|
|
+ 'INSTANCE_NAME' => 'ZaliczkaArchiwalna'
|
|
|
+ ]);
|
|
|
+ DB::getPDO()->insert('ZALICZKA__#INSTANCE', [
|
|
|
+ 'PRIMARY_KEY' => $instance['ID_ZALICZKA'],
|
|
|
+ 'INSTANCE_NAME' => 'ZaliczkaArchiwalna'
|
|
|
+ ]);
|
|
|
+ } else if ('ZaliczkaAktywna' == $instance['INSTANCE_NAME']) {
|
|
|
+ DB::getPDO()->insert('ZALICZKA__#INSTANCE_HIST', [
|
|
|
+ 'PRIMARY_KEY' => $instance['ID_ZALICZKA'],
|
|
|
+ 'INSTANCE_NAME' => 'ZaliczkaArchiwalna'
|
|
|
+ ]);
|
|
|
+ DB::getPDO()->execSql("
|
|
|
+ update `ZALICZKA__#INSTANCE`
|
|
|
+ set INSTANCE_NAME = 'ZaliczkaArchiwalna'
|
|
|
+ , A_RECORD_UPDATE_DATE = NOW()
|
|
|
+ where PRIMARY_KEY = {$instance['ID_ZALICZKA']}
|
|
|
+ ");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ $this->insertRef('worker', $id, $idUser);// TODO: add to hist table
|
|
|
+
|
|
|
+ $childTableKwota = $this->getChildHistTable('kwota');
|
|
|
+ DB::getPDO()->insert($childTableKwota, [
|
|
|
+ 'VALUE' => $itemTodo['kwota'],
|
|
|
+ 'A_TRANSACTION_ID' => $idTransaction
|
|
|
+ ]);
|
|
|
+
|
|
|
+ DB::getPDO()->execSql("
|
|
|
+ update ZALICZKA
|
|
|
+ set A_STATUS = 'OFF_HARD'
|
|
|
+ where L_APPOITMENT_USER = '{$userLogin}'
|
|
|
+ and ID < {$id}
|
|
|
+ ");
|
|
|
+
|
|
|
+ // TODO: legacy fill table ZALICZKA_HIST
|
|
|
+ // $itemTodo['A_RECORD_UPDATE_AUTHOR'] = User::getLogin();
|
|
|
// $itemTodo['A_RECORD_UPDATE_DATE'] = "NOW()";
|
|
|
// $affected = DB::getPDO()->update($rootTableName, $pkField, $pk, $itemTodo);
|
|
|
// if ($affected && $histTableName) {
|
|
|
@@ -198,24 +198,24 @@ class Schema_DefaultDb_zaliczka_ZaliczkaStorageAcl extends Core_AclSimpleSchemaB
|
|
|
// $itemTodo['A_RECORD_CREATE_AUTHOR'] = User::getLogin();
|
|
|
// $itemTodo['A_RECORD_CREATE_DATE'] = "NOW()";
|
|
|
|
|
|
- DB::getPDO()->execSql("
|
|
|
- insert into `ZALICZKA_HIST` (ID_USERS2, L_APPOITMENT_USER, NIEROZLICZONA_KWOTA, KWOTA
|
|
|
- , A_RECORD_CREATE_AUTHOR, A_RECORD_CREATE_DATE)
|
|
|
- select z.ID as ID_USERS2, z.L_APPOITMENT_USER, z.NIEROZLICZONA_KWOTA, z.KWOTA
|
|
|
- , z.A_RECORD_CREATE_AUTHOR, z.A_RECORD_CREATE_DATE
|
|
|
- from ZALICZKA z
|
|
|
- where z.ID = {$id}
|
|
|
- ");
|
|
|
- return $id;
|
|
|
- }
|
|
|
-
|
|
|
- public function updateItem($itemPatch) {
|
|
|
- DBG::log(['msg' => '$itemPatch', $itemPatch]);
|
|
|
- $pkField = $this->getPrimaryKeyField();
|
|
|
- if (!array_key_exists($pkField, $itemPatch)) throw new Exception("Missing primary key");
|
|
|
- $pk = (int)$itemPatch[$pkField];
|
|
|
- if ($pk <= 0) throw new Exception("Wrong primary key format");
|
|
|
- $oldItem = $this->getItem($pk, [
|
|
|
+ DB::getPDO()->execSql("
|
|
|
+ insert into `ZALICZKA_HIST` (ID_USERS2, L_APPOITMENT_USER, NIEROZLICZONA_KWOTA, KWOTA
|
|
|
+ , A_RECORD_CREATE_AUTHOR, A_RECORD_CREATE_DATE)
|
|
|
+ select z.ID as ID_USERS2, z.L_APPOITMENT_USER, z.NIEROZLICZONA_KWOTA, z.KWOTA
|
|
|
+ , z.A_RECORD_CREATE_AUTHOR, z.A_RECORD_CREATE_DATE
|
|
|
+ from ZALICZKA z
|
|
|
+ where z.ID = {$id}
|
|
|
+ ");
|
|
|
+ return $id;
|
|
|
+ }
|
|
|
+
|
|
|
+ public function updateItem($itemPatch) {
|
|
|
+ DBG::log(['msg' => '$itemPatch', $itemPatch]);
|
|
|
+ $pkField = $this->getPrimaryKeyField();
|
|
|
+ if (!array_key_exists($pkField, $itemPatch)) throw new Exception("Missing primary key");
|
|
|
+ $pk = (int)$itemPatch[$pkField];
|
|
|
+ if ($pk <= 0) throw new Exception("Wrong primary key format");
|
|
|
+ $oldItem = $this->getItem($pk, [
|
|
|
'cols' => [
|
|
|
'id',
|
|
|
'kwota',
|
|
|
@@ -225,148 +225,148 @@ class Schema_DefaultDb_zaliczka_ZaliczkaStorageAcl extends Core_AclSimpleSchemaB
|
|
|
// 'worker',
|
|
|
]
|
|
|
]);
|
|
|
- DBG::log(['msg' => '$oldItem', $oldItem]);
|
|
|
-
|
|
|
- // pozycja
|
|
|
- $pozAcl = ACL::getAclByNamespace('default_db/ZALICZKA_POZYCJA/ZaliczkaPozycja');
|
|
|
- $pozPkField = $pozAcl->getPrimaryKeyField();
|
|
|
- if (empty($oldItem['pozycja'])) {
|
|
|
- DBG::log("empty \$oldItem['pozycja']");
|
|
|
- if (!empty($itemPatch['pozycja'])) {
|
|
|
- foreach ($itemPatch['pozycja'] as $pozTodo) {
|
|
|
- if ($pozTodo[ $pozPkField ] !== -1) throw new Exception("BUG ZaliczkaPozycja id not equal -1");
|
|
|
- unset($pozTodo[ $pozPkField ]);
|
|
|
- $pkPoz = $pozAcl->addItem($pozTodo);
|
|
|
- DBG::log(['msg'=> '$pkPoz', $pkPoz]);
|
|
|
- $this->insertRef('pozycja', $pk, $pkPoz);
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- DBG::log("not empty \$oldItem['pozycja'] " . ((!empty($itemPatch['pozycja'])) ? "not empty" : "empty") . " patch pozycja");
|
|
|
- $pozToAdd = array();
|
|
|
- $pozToUpdate = array();
|
|
|
- $pozToRemove = array();
|
|
|
- if (!empty($itemPatch['pozycja'])) {
|
|
|
- foreach ($itemPatch['pozycja'] as $pozTodo) {
|
|
|
- if ($pozTodo[ $pozPkField ] == -1) {
|
|
|
- unset($pozTodo[ $pozPkField ]);
|
|
|
- $pozToAdd[] = $pozTodo;
|
|
|
- } else {
|
|
|
- $pozToUpdate[ $pozTodo[ $pozPkField ] ] = $pozTodo;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- foreach ($oldItem['pozycja'] as $pozOld) {
|
|
|
- if ($pozOld[ $pozPkField ] > 0 && !array_key_exists($pozOld[ $pozPkField ], $pozToUpdate)) {
|
|
|
- $pozToRemove[] = $pozOld[ $pozPkField ];
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- DBG::log(['msg'=> '$pozToAdd', $pozToAdd]);
|
|
|
- DBG::log(['msg'=> '$pozToUpdate', $pozToUpdate]);
|
|
|
- DBG::log(['msg'=> '$pozToRemove', $pozToRemove]);
|
|
|
-
|
|
|
- foreach ($pozToAdd as $pozTodo) {
|
|
|
- $pkPoz = $pozAcl->addItem($pozTodo);
|
|
|
- DBG::log(['msg'=> '$pkPoz', $pkPoz]);
|
|
|
- $this->insertRef('pozycja', $pk, $pkPoz);
|
|
|
- }
|
|
|
- foreach ($pozToRemove as $idPoz) {
|
|
|
- // $rmPozItem = [];
|
|
|
- // $rmPozItem[$pozPkField] = $idPoz;
|
|
|
- // $rmPozItem['A_STATUS'] = 'DELETED';
|
|
|
- // $pozAcl->updateItem($rmPozItem);// TODO: update instance and A_STATUS (cache)
|
|
|
- $this->removeRef('pozycja', $pk, $idPoz);
|
|
|
- }
|
|
|
- foreach ($pozToUpdate as $pozTodo) {
|
|
|
- $pozAcl->updateItem($pozTodo);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- // korespondencja
|
|
|
- if (empty($oldItem['korespondencja'])) {
|
|
|
- DBG::log("empty \$oldItem['korespondencja']");
|
|
|
- if (!empty($itemPatch['korespondencja'])) {
|
|
|
- if (empty($itemPatch['korespondencja'][0]['id'])) throw new Exception("BUG: Missing Koresp id");
|
|
|
- $pkKoresp = $itemPatch['korespondencja'][0]['id'];
|
|
|
- $this->insertRef('korespondencja', $pk, $pkKoresp);
|
|
|
- }
|
|
|
- } else {
|
|
|
- DBG::log("not empty \$oldItem['korespondencja'] " . ((!empty($itemPatch['korespondencja'])) ? "not empty" : "empty") . " patch koresp");
|
|
|
- // if (id != id) => update : clearRefs, insertRef
|
|
|
- if (empty($oldItem['korespondencja'][0]['id'])) throw new Exception("BUG: Missing Koresp id in current object");
|
|
|
-
|
|
|
- if (!empty($itemPatch['korespondencja'])) {
|
|
|
- if (empty($itemPatch['korespondencja'][0]['id'])) throw new Exception("BUG: Missing Koresp id");
|
|
|
- $pkOldKoresp = $oldItem['korespondencja'][0]['id'];
|
|
|
- $pkKoresp = $itemPatch['korespondencja'][0]['id'];
|
|
|
- DBG::log("\$pkOldKoresp({$pkOldKoresp}), \$pkKoresp({$pkKoresp})");
|
|
|
- if ($pkOldKoresp != $pkKoresp) {
|
|
|
- $this->cleanRefs('korespondencja', $pk);
|
|
|
- $this->insertRef('korespondencja', $pk, $pkKoresp);
|
|
|
- }
|
|
|
- } else {
|
|
|
- DBG::log("cleanRefs \$pk({$pk})");
|
|
|
- $this->cleanRefs('korespondencja', $pk);
|
|
|
- }
|
|
|
- }
|
|
|
+ DBG::log(['msg' => '$oldItem', $oldItem]);
|
|
|
+
|
|
|
+ // pozycja
|
|
|
+ $pozAcl = ACL::getAclByNamespace('default_db/ZALICZKA_POZYCJA/ZaliczkaPozycja');
|
|
|
+ $pozPkField = $pozAcl->getPrimaryKeyField();
|
|
|
+ if (empty($oldItem['pozycja'])) {
|
|
|
+ DBG::log("empty \$oldItem['pozycja']");
|
|
|
+ if (!empty($itemPatch['pozycja'])) {
|
|
|
+ foreach ($itemPatch['pozycja'] as $pozTodo) {
|
|
|
+ if ($pozTodo[ $pozPkField ] !== -1) throw new Exception("BUG ZaliczkaPozycja id not equal -1");
|
|
|
+ unset($pozTodo[ $pozPkField ]);
|
|
|
+ $pkPoz = $pozAcl->addItem($pozTodo);
|
|
|
+ DBG::log(['msg'=> '$pkPoz', $pkPoz]);
|
|
|
+ $this->insertRef('pozycja', $pk, $pkPoz);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ DBG::log("not empty \$oldItem['pozycja'] " . ((!empty($itemPatch['pozycja'])) ? "not empty" : "empty") . " patch pozycja");
|
|
|
+ $pozToAdd = array();
|
|
|
+ $pozToUpdate = array();
|
|
|
+ $pozToRemove = array();
|
|
|
+ if (!empty($itemPatch['pozycja'])) {
|
|
|
+ foreach ($itemPatch['pozycja'] as $pozTodo) {
|
|
|
+ if ($pozTodo[ $pozPkField ] == -1) {
|
|
|
+ unset($pozTodo[ $pozPkField ]);
|
|
|
+ $pozToAdd[] = $pozTodo;
|
|
|
+ } else {
|
|
|
+ $pozToUpdate[ $pozTodo[ $pozPkField ] ] = $pozTodo;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ foreach ($oldItem['pozycja'] as $pozOld) {
|
|
|
+ if ($pozOld[ $pozPkField ] > 0 && !array_key_exists($pozOld[ $pozPkField ], $pozToUpdate)) {
|
|
|
+ $pozToRemove[] = $pozOld[ $pozPkField ];
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ DBG::log(['msg'=> '$pozToAdd', $pozToAdd]);
|
|
|
+ DBG::log(['msg'=> '$pozToUpdate', $pozToUpdate]);
|
|
|
+ DBG::log(['msg'=> '$pozToRemove', $pozToRemove]);
|
|
|
+
|
|
|
+ foreach ($pozToAdd as $pozTodo) {
|
|
|
+ $pkPoz = $pozAcl->addItem($pozTodo);
|
|
|
+ DBG::log(['msg'=> '$pkPoz', $pkPoz]);
|
|
|
+ $this->insertRef('pozycja', $pk, $pkPoz);
|
|
|
+ }
|
|
|
+ foreach ($pozToRemove as $idPoz) {
|
|
|
+ // $rmPozItem = [];
|
|
|
+ // $rmPozItem[$pozPkField] = $idPoz;
|
|
|
+ // $rmPozItem['A_STATUS'] = 'DELETED';
|
|
|
+ // $pozAcl->updateItem($rmPozItem);// TODO: update instance and A_STATUS (cache)
|
|
|
+ $this->removeRef('pozycja', $pk, $idPoz);
|
|
|
+ }
|
|
|
+ foreach ($pozToUpdate as $pozTodo) {
|
|
|
+ $pozAcl->updateItem($pozTodo);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // korespondencja
|
|
|
+ if (empty($oldItem['korespondencja'])) {
|
|
|
+ DBG::log("empty \$oldItem['korespondencja']");
|
|
|
+ if (!empty($itemPatch['korespondencja'])) {
|
|
|
+ if (empty($itemPatch['korespondencja'][0]['id'])) throw new Exception("BUG: Missing Koresp id");
|
|
|
+ $pkKoresp = $itemPatch['korespondencja'][0]['id'];
|
|
|
+ $this->insertRef('korespondencja', $pk, $pkKoresp);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ DBG::log("not empty \$oldItem['korespondencja'] " . ((!empty($itemPatch['korespondencja'])) ? "not empty" : "empty") . " patch koresp");
|
|
|
+ // if (id != id) => update : clearRefs, insertRef
|
|
|
+ if (empty($oldItem['korespondencja'][0]['id'])) throw new Exception("BUG: Missing Koresp id in current object");
|
|
|
+
|
|
|
+ if (!empty($itemPatch['korespondencja'])) {
|
|
|
+ if (empty($itemPatch['korespondencja'][0]['id'])) throw new Exception("BUG: Missing Koresp id");
|
|
|
+ $pkOldKoresp = $oldItem['korespondencja'][0]['id'];
|
|
|
+ $pkKoresp = $itemPatch['korespondencja'][0]['id'];
|
|
|
+ DBG::log("\$pkOldKoresp({$pkOldKoresp}), \$pkKoresp({$pkKoresp})");
|
|
|
+ if ($pkOldKoresp != $pkKoresp) {
|
|
|
+ $this->cleanRefs('korespondencja', $pk);
|
|
|
+ $this->insertRef('korespondencja', $pk, $pkKoresp);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ DBG::log("cleanRefs \$pk({$pk})");
|
|
|
+ $this->cleanRefs('korespondencja', $pk);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
/* { "updates": {
|
|
|
- "@instance": "ZaliczkaAktywna",
|
|
|
- "id": "8",
|
|
|
- "created": "2017-01-27 11:10:59",
|
|
|
- "worker": [{ "id": "1", "login": "magdalena.cichosz", "name": "Magdalena Cichosz" }],
|
|
|
- "kwota": "0.01",
|
|
|
- "nierozliczona_kwota": "300.02",
|
|
|
- "pozycja": [{
|
|
|
- "id": -1,
|
|
|
- "nr_faktury": "fv 2017/1/1",
|
|
|
- "kwota": 100,
|
|
|
- "vat": 23,
|
|
|
- "kwota_netto": 0,
|
|
|
- "kategoria_kosztu": "BUDOWA: Usługi obce"
|
|
|
- }],
|
|
|
- "korespondencja": {
|
|
|
- "id": "6013",
|
|
|
- "title": "faktura Vat (MULTI-TAB) [6013]",
|
|
|
- "kategoriaKosztu": "do uzgodnienia",
|
|
|
- "projekt": { "id": "64", "nrBudowy": "20/2016" }
|
|
|
- }
|
|
|
- }
|
|
|
+ "@instance": "ZaliczkaAktywna",
|
|
|
+ "id": "8",
|
|
|
+ "created": "2017-01-27 11:10:59",
|
|
|
+ "worker": [{ "id": "1", "login": "magdalena.cichosz", "name": "Magdalena Cichosz" }],
|
|
|
+ "kwota": "0.01",
|
|
|
+ "nierozliczona_kwota": "300.02",
|
|
|
+ "pozycja": [{
|
|
|
+ "id": -1,
|
|
|
+ "nr_faktury": "fv 2017/1/1",
|
|
|
+ "kwota": 100,
|
|
|
+ "vat": 23,
|
|
|
+ "kwota_netto": 0,
|
|
|
+ "kategoria_kosztu": "BUDOWA: Usługi obce"
|
|
|
+ }],
|
|
|
+ "korespondencja": {
|
|
|
+ "id": "6013",
|
|
|
+ "title": "faktura Vat (MULTI-TAB) [6013]",
|
|
|
+ "kategoriaKosztu": "do uzgodnienia",
|
|
|
+ "projekt": { "id": "64", "nrBudowy": "20/2016" }
|
|
|
+ }
|
|
|
+ }
|
|
|
} */
|
|
|
|
|
|
- $patch = [];
|
|
|
- // $itemPatch['kwota'] = str_replace(',', '.', $itemPatch['kwota']);
|
|
|
- // if ($itemPatch['kwota'] != $oldItem['kwota']) $patch['kwota'] = $itemPatch['kwota'];
|
|
|
-
|
|
|
- // TODO: diff $itemPatch['pozycja'] != $oldItem['pozycja']
|
|
|
- if (!empty($patch)) {
|
|
|
- // if (array_key_exists('kwota', $patch)) {
|
|
|
- // DB::getPDO()->update('ZALICZKA', 'ID', $pk, [ 'kwota' => $patch['kwota'] ]);
|
|
|
- // }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public function getItem($primaryKey, $params = []) {
|
|
|
- $zaliczkaRaw = DB::getPDO()->fetchAll("
|
|
|
- select t.*
|
|
|
- from `ZALICZKA` t
|
|
|
- where t.ID = {$primaryKey}
|
|
|
- ");
|
|
|
- $zaliczkaRaw = (!empty($zaliczkaRaw)) ? reset($zaliczkaRaw) : null;
|
|
|
- // DBG::nicePrint($zaliczkaRaw, '$zaliczkaRaw');
|
|
|
- if (!$zaliczkaRaw) return null;
|
|
|
- return $this->buildFromSqlRow($zaliczkaRaw, $params);
|
|
|
- }
|
|
|
-
|
|
|
- public function reinstall() {
|
|
|
- // TODO: mv to Core_AclSimpleSchemaBase and reainstall by _simpleSchema - read current data from `information_schema`
|
|
|
+ $patch = [];
|
|
|
+ // $itemPatch['kwota'] = str_replace(',', '.', $itemPatch['kwota']);
|
|
|
+ // if ($itemPatch['kwota'] != $oldItem['kwota']) $patch['kwota'] = $itemPatch['kwota'];
|
|
|
+
|
|
|
+ // TODO: diff $itemPatch['pozycja'] != $oldItem['pozycja']
|
|
|
+ if (!empty($patch)) {
|
|
|
+ // if (array_key_exists('kwota', $patch)) {
|
|
|
+ // DB::getPDO()->update('ZALICZKA', 'ID', $pk, [ 'kwota' => $patch['kwota'] ]);
|
|
|
+ // }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ public function getItem($primaryKey, $params = []) {
|
|
|
+ $zaliczkaRaw = DB::getPDO()->fetchAll("
|
|
|
+ select t.*
|
|
|
+ from `ZALICZKA` t
|
|
|
+ where t.ID = {$primaryKey}
|
|
|
+ ");
|
|
|
+ $zaliczkaRaw = (!empty($zaliczkaRaw)) ? reset($zaliczkaRaw) : null;
|
|
|
+ // DBG::nicePrint($zaliczkaRaw, '$zaliczkaRaw');
|
|
|
+ if (!$zaliczkaRaw) return null;
|
|
|
+ return $this->buildFromSqlRow($zaliczkaRaw, $params);
|
|
|
+ }
|
|
|
+
|
|
|
+ public function reinstall() {
|
|
|
+ // TODO: mv to Core_AclSimpleSchemaBase and reainstall by _simpleSchema - read current data from `information_schema`
|
|
|
DB::getPDO()->execSql("
|
|
|
CREATE TABLE IF NOT EXISTS `ZALICZKA` (
|
|
|
`ID` int(11) NOT NULL AUTO_INCREMENT,
|
|
|
- `A_RECORD_CREATE_DATE` datetime DEFAULT NULL,
|
|
|
- `A_RECORD_CREATE_AUTHOR` varchar(20) DEFAULT NULL,
|
|
|
- `A_RECORD_UPDATE_DATE` datetime DEFAULT NULL,
|
|
|
+ `A_RECORD_CREATE_DATE` datetime DEFAULT NULL,
|
|
|
+ `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 'WAITING',
|
|
|
`A_ADM_COMPANY` varchar(100) NOT NULL DEFAULT '',
|
|
|
@@ -375,9 +375,9 @@ class Schema_DefaultDb_zaliczka_ZaliczkaStorageAcl extends Core_AclSimpleSchemaB
|
|
|
`KWOTA` decimal(16,2) NOT NULL DEFAULT 0,
|
|
|
`NIEROZLICZONA_KWOTA` decimal(16,2) NOT NULL DEFAULT 0,
|
|
|
`UWAGI` varchar(255) NOT NULL DEFAULT '',
|
|
|
- `PAYMENT_METHOD` enum('', 'wypłacono gotówka', 'wypłacono przelew karta', 'wypłacono przelew konto') NOT NULL DEFAULT '',
|
|
|
- `DOKUMENTY` enum('', 'TAK', 'NIE') NOT NULL DEFAULT '',
|
|
|
- `APPROVED_BY` varchar(255) NOT NULL DEFAULT '',
|
|
|
+ `PAYMENT_METHOD` enum('', 'wypłacono gotówka', 'wypłacono przelew karta', 'wypłacono przelew konto') NOT NULL DEFAULT '',
|
|
|
+ `DOKUMENTY` enum('', 'TAK', 'NIE') NOT NULL DEFAULT '',
|
|
|
+ `APPROVED_BY` varchar(255) NOT NULL DEFAULT '',
|
|
|
PRIMARY KEY (`ID`)
|
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin2;
|
|
|
");
|
|
|
@@ -395,30 +395,30 @@ class Schema_DefaultDb_zaliczka_ZaliczkaStorageAcl extends Core_AclSimpleSchemaB
|
|
|
`L_APPOITMENT_USER` varchar(100) NOT NULL DEFAULT 'N/S;',
|
|
|
`KWOTA` varchar(16) NOT NULL DEFAULT 'N/S;',
|
|
|
`NIEROZLICZONA_KWOTA` varchar(16) NOT NULL DEFAULT 'N/S;',
|
|
|
- `UWAGI` varchar(255) NOT NULL DEFAULT 'N/S;',
|
|
|
- `PAYMENT_METHOD` varchar(255) NOT NULL DEFAULT 'N/S;',
|
|
|
- `DOKUMENTY` varchar(255) NOT NULL DEFAULT 'N/S;',
|
|
|
- `APPROVED_BY` varchar(255) NOT NULL DEFAULT 'N/S;',
|
|
|
+ `UWAGI` varchar(255) NOT NULL DEFAULT 'N/S;',
|
|
|
+ `PAYMENT_METHOD` varchar(255) NOT NULL DEFAULT 'N/S;',
|
|
|
+ `DOKUMENTY` varchar(255) NOT NULL DEFAULT 'N/S;',
|
|
|
+ `APPROVED_BY` varchar(255) NOT NULL DEFAULT 'N/S;',
|
|
|
PRIMARY KEY (`ID`),
|
|
|
- KEY `ID_USERS2` (`ID_USERS2`)
|
|
|
- ) ENGINE=MyISAM DEFAULT CHARSET=latin2;
|
|
|
+ KEY `ID_USERS2` (`ID_USERS2`)
|
|
|
+ ) ENGINE=MyISAM DEFAULT CHARSET=latin2;
|
|
|
");
|
|
|
DB::getPDO()->execSql("
|
|
|
CREATE TABLE IF NOT EXISTS `ZALICZKA_POZYCJA` (
|
|
|
`ID` int(11) NOT NULL AUTO_INCREMENT,
|
|
|
- `A_RECORD_CREATE_DATE` datetime DEFAULT NULL,
|
|
|
- `A_RECORD_CREATE_AUTHOR` varchar(20) DEFAULT NULL,
|
|
|
- `A_RECORD_UPDATE_DATE` datetime DEFAULT NULL,
|
|
|
+ `A_RECORD_CREATE_DATE` datetime DEFAULT NULL,
|
|
|
+ `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 'WAITING',
|
|
|
`A_ADM_COMPANY` varchar(100) NOT NULL DEFAULT '',
|
|
|
`A_CLASSIFIED` varchar(100) NOT NULL DEFAULT '',
|
|
|
`L_APPOITMENT_USER` varchar(100) NOT NULL DEFAULT '',
|
|
|
- `nr_faktury` varchar(255) NOT NULL DEFAULT '',
|
|
|
+ `nr_faktury` varchar(255) NOT NULL DEFAULT '',
|
|
|
`kwota` decimal(16,2) NOT NULL DEFAULT 0,
|
|
|
`vat` int(11) NOT NULL DEFAULT 23,
|
|
|
`kwota_netto` decimal(16,2) NOT NULL DEFAULT 0,
|
|
|
- `kategoria_kosztu` varchar(255) NOT NULL DEFAULT '',
|
|
|
+ `kategoria_kosztu` varchar(255) NOT NULL DEFAULT '',
|
|
|
PRIMARY KEY (`ID`)
|
|
|
) ENGINE=MyISAM DEFAULT CHARSET=latin2;
|
|
|
");
|
|
|
@@ -439,75 +439,75 @@ class Schema_DefaultDb_zaliczka_ZaliczkaStorageAcl extends Core_AclSimpleSchemaB
|
|
|
`kwota` varchar(16) NOT NULL DEFAULT 'N/S;',
|
|
|
`vat` varchar(5) NOT NULL DEFAULT 'N/S;',
|
|
|
`kwota_netto` varchar(16) NOT NULL DEFAULT 'N/S;',
|
|
|
- `kategoria_kosztu` varchar(255) NOT NULL DEFAULT 'N/S;',
|
|
|
+ `kategoria_kosztu` varchar(255) NOT NULL DEFAULT 'N/S;',
|
|
|
PRIMARY KEY (`ID`),
|
|
|
- KEY `ID_USERS2` (`ID_USERS2`)
|
|
|
- ) ENGINE=MyISAM DEFAULT CHARSET=latin2;
|
|
|
+ KEY `ID_USERS2` (`ID_USERS2`)
|
|
|
+ ) ENGINE=MyISAM DEFAULT CHARSET=latin2;
|
|
|
");
|
|
|
|
|
|
- echo UI::h('div', [ 'class' => "container", 'style' => "background:#ffe5b6; margin-top:6px" ], "<p style=\"margin:0; padding:6px\">Upgrade schema</p>");
|
|
|
- UI::startContainer([ 'style' => "max-height:200px; overflow-y:scroll; border:1px solid #ffe5b6" ]);
|
|
|
- try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_POZYCJA` ADD `nr_faktury` varchar(255) NOT NULL DEFAULT '' ");
|
|
|
- } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
- try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_POZYCJA` ADD `vat` int(11) NOT NULL DEFAULT 23 ");
|
|
|
- } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
- try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_POZYCJA` ADD `kwota_netto` decimal(16,2) NOT NULL DEFAULT 0 ");
|
|
|
- } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
- try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_POZYCJA` ADD `kategoria_kosztu` varchar(255) NOT NULL DEFAULT '' ");
|
|
|
- } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
- try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_POZYCJA_HIST` ADD `nr_faktury` varchar(255) NOT NULL DEFAULT 'N/S;' ");
|
|
|
- } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
- try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_POZYCJA_HIST` ADD `vat` varchar(5) NOT NULL DEFAULT 'N/S;' ");
|
|
|
- } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
- try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_POZYCJA_HIST` ADD `kwota_netto` varchar(16) NOT NULL DEFAULT 'N/S;' ");
|
|
|
- } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
- try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_POZYCJA_HIST` ADD `kategoria_kosztu` varchar(255) NOT NULL DEFAULT 'N/S;' ");
|
|
|
- } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
- UI::endContainer();
|
|
|
- UI::startContainer([ 'style' => "max-height:200px; overflow-y:scroll; border:1px solid #ffe5b6" ]);
|
|
|
- try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA` ADD `UWAGI` varchar(255) NOT NULL DEFAULT '' ");
|
|
|
- } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
- try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_HIST` ADD `UWAGI` varchar(255) NOT NULL DEFAULT 'N/S;' ");
|
|
|
- } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
- try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA` ADD `PAYMENT_METHOD` enum('', 'wypłacono gotówka', 'wypłacono przelew karta', 'wypłacono przelew konto') NOT NULL DEFAULT '' ");
|
|
|
- } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
- try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_HIST` ADD `PAYMENT_METHOD` varchar(255) NOT NULL DEFAULT 'N/S;' ");
|
|
|
- } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
- try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA` ADD `APPROVED_BY` varchar(255) NOT NULL DEFAULT '' ");
|
|
|
- } catch (Exception $e) { DBG::log($e); }
|
|
|
- try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_HIST` ADD `APPROVED_BY` varchar(255) NOT NULL DEFAULT 'N/S;' ");
|
|
|
- } catch (Exception $e) { DBG::log($e); }
|
|
|
- try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA` ADD `DOKUMENTY` enum('', 'TAK', 'NIE') NOT NULL DEFAULT '' ");
|
|
|
- } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
- try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_HIST` ADD `DOKUMENTY` varchar(255) NOT NULL DEFAULT 'N/S;' ");
|
|
|
- } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
- UI::endContainer();
|
|
|
-
|
|
|
- ACL::getRefTable('default_db/ZALICZKA/Zaliczka', 'worker');
|
|
|
- ACL::getRefTable('default_db/ZALICZKA/Zaliczka', 'pozycja');
|
|
|
- ACL::getRefTable('default_db/ZALICZKA/Zaliczka', 'korespondencja');
|
|
|
- // ACL::getRefTable('default_db/ZALICZKA_POZYCJA/ZaliczkaPozycja', 'projekt');
|
|
|
- // ACL::getRefTable('default_db/ZALICZKA_POZYCJA/ZaliczkaPozycja', 'korespondencja');
|
|
|
-
|
|
|
- Core_AclHelper::getInstanceTable('ZALICZKA');// `ZALICZKA__#INSTANCE`
|
|
|
- // TODO: ZaliczkaOczekujaca A_STATUS = WAITING -- dodane przez pracownika
|
|
|
- // TODO: ZaliczkaAktywna A_STATUS = NORMAL -- zakceptowane / wyplacone przez ...
|
|
|
- // TODO: pole na dane wypłacającego zaliczkę
|
|
|
- // TODO: dopiero teraz wyliczyć saldo / nierozliczona_kwota? Saldo pokazywać zawsze, aktualizować po akceptacji (Oczekujaca --> Aktywna)
|
|
|
- // TODO: ZaliczkaArchiwalna A_STATUS = OFF_HARD -- poprzednie zaliczki
|
|
|
- // TODO: ZaliczkaUsunieta A_STATUS = DELETED -- usunieta przez workera lub anulowana przez osobę uprawnioną
|
|
|
-
|
|
|
- Core_AclHelper::getTransactionTable('ZALICZKA');// `ZALICZKA__#TRANSACTION`
|
|
|
- Core_AclHelper::getTransactionTable('ZALICZKA_POZYCJA');// `ZALICZKA_POZYCJA__#TRANSACTION`
|
|
|
-
|
|
|
- echo UI::h('div', [ 'class' => "container", 'style' => "background:#ffe5b6; margin-top:6px" ], "<p style=\"margin:0; padding:6px\">create ChildHistTable</p>");
|
|
|
- UI::startContainer([ 'style' => "max-height:200px; overflow-y:scroll; border:1px solid #ffe5b6" ]);
|
|
|
- foreach ($this->_simpleSchema['root'] as $childName => $schema) {
|
|
|
- if ('@' == substr($childName, 0, 1)) continue;
|
|
|
- $this->getChildHistTable($childName);
|
|
|
- DBG::nicePrint($schema, '$childName('.$childName.')');// TODO: DBG
|
|
|
- }
|
|
|
- UI::endContainer();
|
|
|
+ echo UI::h('div', [ 'class' => "container", 'style' => "background:#ffe5b6; margin-top:6px" ], "<p style=\"margin:0; padding:6px\">Upgrade schema</p>");
|
|
|
+ UI::startContainer([ 'style' => "max-height:200px; overflow-y:scroll; border:1px solid #ffe5b6" ]);
|
|
|
+ try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_POZYCJA` ADD `nr_faktury` varchar(255) NOT NULL DEFAULT '' ");
|
|
|
+ } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
+ try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_POZYCJA` ADD `vat` int(11) NOT NULL DEFAULT 23 ");
|
|
|
+ } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
+ try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_POZYCJA` ADD `kwota_netto` decimal(16,2) NOT NULL DEFAULT 0 ");
|
|
|
+ } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
+ try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_POZYCJA` ADD `kategoria_kosztu` varchar(255) NOT NULL DEFAULT '' ");
|
|
|
+ } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
+ try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_POZYCJA_HIST` ADD `nr_faktury` varchar(255) NOT NULL DEFAULT 'N/S;' ");
|
|
|
+ } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
+ try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_POZYCJA_HIST` ADD `vat` varchar(5) NOT NULL DEFAULT 'N/S;' ");
|
|
|
+ } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
+ try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_POZYCJA_HIST` ADD `kwota_netto` varchar(16) NOT NULL DEFAULT 'N/S;' ");
|
|
|
+ } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
+ try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_POZYCJA_HIST` ADD `kategoria_kosztu` varchar(255) NOT NULL DEFAULT 'N/S;' ");
|
|
|
+ } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
+ UI::endContainer();
|
|
|
+ UI::startContainer([ 'style' => "max-height:200px; overflow-y:scroll; border:1px solid #ffe5b6" ]);
|
|
|
+ try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA` ADD `UWAGI` varchar(255) NOT NULL DEFAULT '' ");
|
|
|
+ } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
+ try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_HIST` ADD `UWAGI` varchar(255) NOT NULL DEFAULT 'N/S;' ");
|
|
|
+ } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
+ try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA` ADD `PAYMENT_METHOD` enum('', 'wypłacono gotówka', 'wypłacono przelew karta', 'wypłacono przelew konto') NOT NULL DEFAULT '' ");
|
|
|
+ } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
+ try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_HIST` ADD `PAYMENT_METHOD` varchar(255) NOT NULL DEFAULT 'N/S;' ");
|
|
|
+ } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
+ try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA` ADD `APPROVED_BY` varchar(255) NOT NULL DEFAULT '' ");
|
|
|
+ } catch (Exception $e) { DBG::log($e); }
|
|
|
+ try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_HIST` ADD `APPROVED_BY` varchar(255) NOT NULL DEFAULT 'N/S;' ");
|
|
|
+ } catch (Exception $e) { DBG::log($e); }
|
|
|
+ try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA` ADD `DOKUMENTY` enum('', 'TAK', 'NIE') NOT NULL DEFAULT '' ");
|
|
|
+ } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
+ try { DB::getPDO()->execSql(" ALTER TABLE `ZALICZKA_HIST` ADD `DOKUMENTY` varchar(255) NOT NULL DEFAULT 'N/S;' ");
|
|
|
+ } catch (Exception $e) { UI::alert('warning', $e->getMessage()); }
|
|
|
+ UI::endContainer();
|
|
|
+
|
|
|
+ ACL::getRefTable('default_db/ZALICZKA/Zaliczka', 'worker');
|
|
|
+ ACL::getRefTable('default_db/ZALICZKA/Zaliczka', 'pozycja');
|
|
|
+ ACL::getRefTable('default_db/ZALICZKA/Zaliczka', 'korespondencja');
|
|
|
+ // ACL::getRefTable('default_db/ZALICZKA_POZYCJA/ZaliczkaPozycja', 'projekt');
|
|
|
+ // ACL::getRefTable('default_db/ZALICZKA_POZYCJA/ZaliczkaPozycja', 'korespondencja');
|
|
|
+
|
|
|
+ Core_AclHelper::getInstanceTable('ZALICZKA');// `ZALICZKA__#INSTANCE`
|
|
|
+ // TODO: ZaliczkaOczekujaca A_STATUS = WAITING -- dodane przez pracownika
|
|
|
+ // TODO: ZaliczkaAktywna A_STATUS = NORMAL -- zakceptowane / wyplacone przez ...
|
|
|
+ // TODO: pole na dane wypłacającego zaliczkę
|
|
|
+ // TODO: dopiero teraz wyliczyć saldo / nierozliczona_kwota? Saldo pokazywać zawsze, aktualizować po akceptacji (Oczekujaca --> Aktywna)
|
|
|
+ // TODO: ZaliczkaArchiwalna A_STATUS = OFF_HARD -- poprzednie zaliczki
|
|
|
+ // TODO: ZaliczkaUsunieta A_STATUS = DELETED -- usunieta przez workera lub anulowana przez osobę uprawnioną
|
|
|
+
|
|
|
+ Core_AclHelper::getTransactionTable('ZALICZKA');// `ZALICZKA__#TRANSACTION`
|
|
|
+ Core_AclHelper::getTransactionTable('ZALICZKA_POZYCJA');// `ZALICZKA_POZYCJA__#TRANSACTION`
|
|
|
+
|
|
|
+ echo UI::h('div', [ 'class' => "container", 'style' => "background:#ffe5b6; margin-top:6px" ], "<p style=\"margin:0; padding:6px\">create ChildHistTable</p>");
|
|
|
+ UI::startContainer([ 'style' => "max-height:200px; overflow-y:scroll; border:1px solid #ffe5b6" ]);
|
|
|
+ foreach ($this->_simpleSchema['root'] as $childName => $schema) {
|
|
|
+ if ('@' == substr($childName, 0, 1)) continue;
|
|
|
+ $this->getChildHistTable($childName);
|
|
|
+ DBG::nicePrint($schema, '$childName('.$childName.')');// TODO: DBG
|
|
|
+ }
|
|
|
+ UI::endContainer();
|
|
|
}
|
|
|
|
|
|
}
|