Procházet zdrojové kódy

fixed Zaliczka pozycja addItem kwota netto = 0 when vat = 0

Piotr Labudda před 9 roky
rodič
revize
bc1e817321

+ 21 - 8
SE/se-lib/Schema/DefaultDb/zaliczka_pozycja/ZaliczkaPozycjaStorageAcl.php

@@ -40,13 +40,11 @@ class Schema_DefaultDb_zaliczka_pozycja_ZaliczkaPozycjaStorageAcl extends Core_A
   public function addItem($itemTodo) {
     DBG::log(['msg'=> 'addItem', $itemTodo]);
     $sqlItem = array();
+    $kwota = V::get('kwota', 0, $itemTodo, 'price');
+    if ($kwota > 0) $sqlItem[ $this->getSqlFieldName('kwota') ] = $kwota;
     if (!empty($itemTodo['nr_faktury'])) {
       $sqlItem[ $this->getSqlFieldName('nr_faktury') ] = $itemTodo['nr_faktury'];
     }
-    if (!empty($itemTodo['kwota'])) {
-      $kwota = V::get('kwota', 0, $itemTodo, 'price');
-      if ($kwota > 0) $sqlItem[ $this->getSqlFieldName('kwota') ] = $kwota;
-    }
     if (array_key_exists('vat', $itemTodo)) {
       $sqlItem[ $this->getSqlFieldName('vat') ] = (int)$itemTodo['vat'];
     }
@@ -60,10 +58,18 @@ class Schema_DefaultDb_zaliczka_pozycja_ZaliczkaPozycjaStorageAcl extends Core_A
     $vat = V::get('vat', 23, $itemTodo, 'int');
     $sqlItem[ $this->getSqlFieldName('kwota_netto') ] = ($kwota > 0 && $vat > 0)
       ? $kwota / (1 + $vat / 100)
-      : 0;
+      : $kwota;
 
     if (empty($sqlItem)) throw new Exception("Empty record");
-    return DB::getPDO()->insert($this->getRootTableName(), $sqlItem);
+    $sqlItem['A_RECORD_CREATE_DATE'] = 'NOW()';
+    $sqlItem['A_RECORD_CREATE_AUTHOR'] = User::getLogin();
+    $idCreated = DB::getPDO()->insert($this->getRootTableName(), $sqlItem);
+    if ($idCreated > 0) {
+      $sqlHistItem = $sqlItem;
+      $sqlHistItem['ID_USERS2'] = $idCreated;
+      DB::getPDO()->insert($this->getRootTableName() . "_HIST", $sqlHistItem);
+    }
+    return $idCreated;
   }
 
   public function updateItem($itemPatch) {
@@ -168,7 +174,14 @@ class Schema_DefaultDb_zaliczka_pozycja_ZaliczkaPozycjaStorageAcl extends Core_A
 }
 
 /* FIX BUG kwota_netto = 0
-    SELECT ID, kwota, kwota_netto , vat , round(kwota / (1 + (vat / 100)), 2) FROM `ZALICZKA_POZYCJA`
-    where kwota > 0 and kwota_netto = 0
+
+    SELECT p.ID, p.kwota, p.kwota_netto , p.vat , round(p.kwota / (1 + (p.vat / 100)), 2), p.A_RECORD_CREATE_DATE, p.A_RECORD_CREATE_AUTHOR, p.A_RECORD_UPDATE_DATE, p.A_RECORD_UPDATE_AUTHOR
+      , j.*
+      , z.*
+    FROM `ZALICZKA_POZYCJA` p
+      left join `CRM__#REF_TABLE__2` j on (j.REMOTE_PRIMARY_KEY = p.ID)
+      left join `ZALICZKA` z on(z.ID = j.PRIMARY_KEY)
+    where p.kwota > 0 and p.kwota_netto = 0
+
     update `ZALICZKA_POZYCJA` set kwota_netto = round(kwota / (1 + (vat / 100)), 2) where kwota > 0 and kwota_netto = 0
 */