ex_empty($no_va, 'Nomor VA harus diisi.');
     ex_empty($kode_blok, 'Kode Blok harus diisi.');
     ex_empty($kode_lokasi, 'Tower harus diisi.');
     ex_empty($kode_unit, 'Jenis unit harus diisi.');
     ex_empty($kode_tipe, 'Tipe harus diisi.');
     ex_empty($kode_penjualan, 'Jenis penjualan harus diisi.');
     if ($kode_blok != $id) {
         $query = "SELECT COUNT(KODE_BLOK) AS TOTAL FROM STOK WHERE KODE_BLOK = '{$kode_blok}'";
         ex_found($conn->Execute($query)->fields['TOTAL'], "Kode blok \"{$kode_blok}\" telah terdaftar.");
     }
     $query = "SELECT * FROM STOK WHERE KODE_BLOK = '{$kode_blok}' AND KODE_UNIT = '{$kode_unit}' AND KODE_DESA = '{$kode_desa}' AND KODE_LOKASI = '{$kode_lokasi}' AND \n\t\t\tKODE_SK_TANAH = '{$kode_sk_tanah}' AND KODE_FAKTOR = '{$kode_faktor}' AND KODE_TIPE = '{$kode_tipe}' AND \n\t\t\tKODE_SK = '{$kode_sk}' AND KODE_PENJUALAN = '{$kode_penjualan}' AND LUAS_TANAH = '{$luas_tanah}' AND \n\t\t\tLUAS_BANGUNAN = '{$luas_bangunan}' AND PPN_TANAH = '{$ppn_tanah}' AND PPN_BANGUNAN = '{$ppn_bangunan}' AND \n\t\t\tDISC_TANAH = '{$disc_tanah}' AND DISC_BANGUNAN = '{$disc_bangunan}' AND CLASS = '{$class}' AND PROGRAM = '{$program}' AND \n\t\t\tSTATUS_GAMBAR_SITEPLAN = '{$status_gambar_siteplan}' AND STATUS_GAMBAR_LAPANGAN = '{$status_gambar_lapangan}' AND \n\t\t\tSTATUS_GAMBAR_GS = '{$status_gambar_gs}'AND NO_VA = '{$no_va}'";
     ex_found($conn->Execute($query)->recordcount(), "Tidak ada data yang berubah.");
     $query = "\n\t\t\tUPDATE STOK \n\t\t\tSET NO_VA = '{$no_va}',\n\t\t\tKODE_BLOK = '{$kode_blok}', \n\t\t\tKODE_UNIT = '{$kode_unit}', \n\t\t\tKODE_LOKASI = '{$kode_lokasi}', \n\t\t\tKODE_TIPE = '{$kode_tipe}', \n\t\t\tKODE_SK = '{$kode_sk}', \n\t\t\tKODE_PENJUALAN = '{$kode_penjualan}', \t\t\t\t\n\t\t\tLUAS_BANGUNAN = '{$luas_bangunan}'\n\t\t\tWHERE\t\t\t\n\t\t\tKODE_BLOK = '{$id}'\n\t\t\t";
     ex_false($conn->Execute($query), $query);
     $query = "\n\t\t\tUPDATE HARGA_SK \n\t\t\tSET \n\t\t\t\tHARGA_CASH_KERAS = '{$harga_cash_keras}',\n\t\t\t\tCB36X = '{$CB36X}',\n\t\t\t\tCB48X = '{$CB48X}',\n\t\t\t\tKPA24X = '{$KPA24X}',\n\t\t\t\tKPA36X = '{$KPA36X}'\n\t\t\tWHERE\n\t\t\t\tKODE_SK = '{$kode_sk}' \n\t\t\t\tAND KODE_BLOK = '{$id}'\n\t\t\t";
     ex_false($conn->Execute($query), $query);
     $msg = 'Data persediaan awal  berhasil diubah.';
 } elseif ($act == 'Hapus') {
     ex_ha('M28', 'D');
     $act = array();
     $cb_data = $_REQUEST['cb_data'];
     ex_empty($cb_data, 'Pilih data yang akan dihapus.');
     foreach ($cb_data as $id_del) {
         if ($conn->Execute("DELETE FROM STOK WHERE KODE_BLOK = '{$id_del}'")) {
             $act[] = $id_del;
         } else {
             $error = TRUE;
         }
     }
     $msg = $error ? 'Sebagian data stok gagal dihapus.' : 'Data stok berhasil dihapus.';
 } elseif ($act == 'Otorisasi') {
             ex_found($total, "Kwitansi Sudah Ada");
             $query2 = "\n\t\t\t\t\tINSERT INTO KWITANSI (\n\t\t\t\t\t\tKODE_BLOK, NOMOR_KWITANSI, NAMA_PEMBAYAR, TANGGAL, KODE_BAYAR, NILAI, KETERANGAN, NILAI_DIPOSTING, TANGGAL_BAYAR, BAYAR_VIA, CATATAN, PPN, NILAI_NETT, VER_COLLECTION, VER_KEUANGAN, STATUS_KWT, VER_COLLECTION_OFFICER, VER_COLLECTION_TANGGAL, NOMOR_TANDA_TERIMA\n\t\t\t\t\t)\n\t\t\t\t\tVALUES(\n\t\t\t\t\t\t'{$kode_blok}', 'XXX', '{$nama_pembayar}', CONVERT(DATETIME,'{$tanggal}',105), '{$pembayaran}', {$jumlah}, '{$keterangan}', {$jumlah}, CONVERT(DATETIME,'{$tanggal}',105), '{$bank}', '{$catatan}', {$ppn}, {$subtotal}, '1', '0', '0','{$user}', CONVERT(DATETIME,GETDATE(),105), '{$id}'\n\t\t\t\t\t)\n\t\t\t\t";
             ex_false($conn->execute($query2), $query2);
             $query2 = "\n\t\t\t\t\tINSERT INTO FAKTUR_PAJAK (\n\t\t\t\t\t\tKODE_BLOK, NO_KWITANSI, NAMA, ALAMAT_1, NPWP, JENIS, TGL_FAKTUR, KETERANGAN, NILAI, NILAI_DASAR_PENGENAAN, NILAI_PPN\n\t\t\t\t\t)\n\t\t\t\t\tVALUES(\n\t\t\t\t\t\t'{$kode_blok}', 'XXX', '{$nama_pembayar}', '{$alamat_1}', '{$npwp}', '{$jenis}', CONVERT(DATETIME,'{$tanggal}',105), '{$keterangan}', {$jumlah}, {$subtotal}, {$ppn}\n\t\t\t\t\t)\n\t\t\t\t";
             ex_false($conn->execute($query2), $query2);
             $query2 = "\n\t\t\t\t\tUPDATE KWITANSI_TANDA_TERIMA SET STATUS_KWT = '1' WHERE NOMOR_KWITANSI = '{$id}';\n\t\t\t\t";
             ex_false($conn->execute($query2), $query2);
         } else {
             if ($grup == '2') {
                 $total = $conn->Execute("SELECT COUNT(KODE_BLOK) AS TOTAL FROM KWITANSI_LAIN_LAIN WHERE NOMOR_KWITANSI = '{$id}' ")->fields['TOTAL'];
                 ex_found($total, "Kwitansi Sudah Ada");
                 $keterangan = 'Pembayaran ' . $pembayaran . ' atas pembelian ' . $bangunan . ' di ' . $lokasi . ' Blok ' . $kode_blok . ' (TYPE ' . $tipe . ')';
                 $query2 = "\n\t\t\t\tINSERT INTO KWITANSI_LAIN_LAIN (\n\t\t\t\t\tKODE_BLOK, NOMOR_KWITANSI, NAMA_PEMBAYAR, TANGGAL, NILAI, KETERANGAN, KODE_PEMBAYARAN, NILAI_DIPOSTING, TANGGAL_BAYAR, BAYAR_VIA, CATATAN, VER_COLLECTION, VER_KEUANGAN, STATUS_KWT, VER_COLLECTION_OFFICER, VER_COLLECTION_TANGGAL, NOMOR_TANDA_TERIMA\n\t\t\t\t)\n\t\t\t\tVALUES(\n\t\t\t\t\t'{$kode_blok}', 'XXX', '{$nama_pembayar}', CONVERT(DATETIME,'{$tanggal}',105), {$jumlah}, '{$keterangan}', '{$bayar_secara}', {$jumlah}, CONVERT(DATETIME,'{$tanggal}',105), '', '{$catatan}', '1', '0', '0','{$user}', CONVERT(DATETIME,GETDATE(),105), '{$id}'\n\t\t\t\t)\n\t\t\t\t";
                 ex_false($conn->execute($query2), $query2);
                 $query2 = "\n\t\t\t\t\tUPDATE KWITANSI_TANDA_TERIMA SET STATUS_KWT = '1' WHERE NOMOR_KWITANSI = '{$id}';\n\t\t\t\t";
                 ex_false($conn->execute($query2), $query2);
                 $obj->movenext();
             }
         }
         $msg = 'Kwitansi Berhasil dibuat.' . $kata;
     }
     $conn->committrans();
 } catch (Exception $e) {
     $msg = $e->getmessage();
     $error = TRUE;
     if ($conn) {
         $conn->rollbacktrans();
     }
 }
 close($conn);
 $json = array('act' => $act, 'error' => $error, 'msg' => $msg);