Online számla 2020. július 1-től

  • 2020. július 1-től eltörölték a jelenlegi 100 000 forintos jelentési értékhatárt, így az összes, belföldi adóalanyok közötti ügyletről adatot kell szolgáltatni a NAV-nak az áfa összegétől függetlenül. Így olyan adózók is bekerülnek az online számla jelentésre kötelezettek körébe, akik áfamentes és/vagy belföldi fordított adózás alá tartozó ügyletekről állítanak ki számlát.

     

    Az elfogadott törvénymódosítás szerint a 2020. december 31. után kiállított összes belföldi teljesítési helyű számlát jelenteni kell majd az adóhatóságnak, amely ezek után adatot fog kapni a belföldi értékesítésekről, az EU-n belüli értékesítésekről és a kivitelről is – azokat a számlákat is jelenteni kell majd a hatóságnak, amelyeknél a vevő természetes személy (a vevő neve és adószáma nélkül).

    Ennek értelmében a Sale Max 3 számlázó program teljesen meg fog szűnni. A napokban ki fogjuk adni azt a frissítést, ami a számlázást július 1-től letiltja.

Online számla

2018. július 1-jétől kötelező adatot szolgáltatni a legalább 100 ezer forint áthárított áfát tartalmazó, belföldi adóalanyok közötti ügyletekről kiállított számlákról.

A kibocsátott számlák – és számlával egy tekintet alá eső okiratok – adataira vonatkozó adatszolgáltatás 2018. július 1-jétől a kiállítás után, rövid időn belül, elektronikusan teljesítendő. Számlázó programmal történő számlázás esetén a számlaadatokat a számlázó programból emberi beavatkozás nélkül, nyilvános interneten keresztül azonnal, a számla elkészülése után rögtön továbbítani kell a NAV-hoz.

http://nav.gov.hu/nav/onlineszamla

Windows service jogosultság szerkesztés

Windows alatt nem egyszerű módosítani, hogy egy szolgáltatást ki állíthassa vagy indíthassa el. Win2003 alatt a SUBINACL parancssori eszközre volt szükség. Win2008/Win7 alatt az SC parancssorból lehet.

Pl: sc sdshow spooler
Erre kb ilyen válasz jön: D:(A;;CCLCSWLOCRRC;;;AU)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWRPWPDTLOCRRC;;;SY)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

Egyszerű értelmezni, ugye? Ha egy felhasználónak akarunk leállítási jogot adni, akkor meg kell először szerezni a felhasználó SID-jét (parancs sorbol WHOAMI /ALL), és azt kell hozzáadni az SC SDSET parancssorral – a megfelelő paramétereket átadva. A jogosultsági paraméter a fenti csinos SSDL formátumban adandó meg.

Szerencsére Sysinternalsos barátaink ezen egyszerűsítettek, mert a processexplorerbe beépítettek egy funkciót, amivel grafikusan meg lehet csinálni mindezt. Ki kell keresni a szolgáltatás processzét, duplakill rajta, majd a Permissions gombra kell kattintani:

Akkor jelenik meg ez az ablak:

Innen már könnyen lehet szerkeszteni a jogosultságokat.

Recovering broken RAID array

It is 2015 and Intel chipset RAID controller (Intel® Rapid Storage Technology in my case with option ROM version 13.1.0.2126) still tends to lose RAID members after firmware upgrade. I have system built on MSI Z97 gaming 3 motherboard and I created RAID 0 volume on Z97 chipset ports from 4 SSD disks (it is used as system/boot disk). After MSI released new firmware for motherboard I installed it from UEFI BIOS. System restarted after firmware installation and SATA ports were reset to AHCI mode. After restoring SATA ports to RAID mode, RAID 0 array recognized only three SSDs as members and one SSD as separate disk not belonging to any RAID volume.

Partition table repair process

In this case nothing has been written to the drive so the repair is quite simple. One must destroy and re-create the array in the Matrix BIOS, then use a disk repair tool to find and revive the partition(s). Additionally, the drives’ master boot records may need to be re-written. The whole process takes about five minutes.

Part 1: Recreating the array in the BIOS (“Intel Matrix Storage Manager Option ROM”)

1. Note all of your array’s attributes(1) as shown during boot: array name, RAID level, member disks, strip size, and capacity. From the Matrix menu choose option 3 – Reset Disks to Non-RAID. Select all disks which are shown as being part of the failed array and follow the prompts(2). You will then be returned to the main menu and those disks will be shown as Non-RAID Disk or similar.

2. Now choose option 1 – Create RAID Volume, and enter the exact same settings as before (name, RAID level, member disks, strip size, and capacity). The array volume name probably doesn’t need to be the same, but I wouldn’t risk changing it.

Part 2: Recovering the partition tables in TestDisk (or other partition recovery software)

3. After rebooting, use a backup OS of your choice (on a removable drive, or installed temporarily on a different hard drive) to run Christophe Grenier’s TestDisk – a free, open-source recovery program. Others will probably work as well, but this one is fast and does the job very well.

4. In TestDisk, select your disk (which in this case is actually the array)(3) , then your partition type (in my case, it was correctly auto-detected as “Intel/PC”), and choose Analyse. Since the Matrix BIOS has invalidated the partition table information, you will not see anything listed. Now select Quick Search and follow the prompts. If all is well, you will quickly see your existing partitions appear. Once it lists them all, you can hit Stop to avoid waiting as it scans through the rest of the disk. If the detected configuration is correct(4) , press Enter to continue to the next screen, and choose Write to update the partition table as shown.

Part 3: Correcting the Master Boot Record

5. The Matrix BIOS has also invalidated your array’s MBR, so it will need to be retrieved or replaced. There are many ways to achieve this, and TestDisk itself has several methods to do so(5). I prefer to boot to my Windows 7 installation disc and use the “Repair your computer” option(6) . It will detect the invalid MBR and prompt you to fix it – note that you can’t alter Windows’ proposed changes, only apply or dismiss them. The resulting boot manager behaviour(7) can be viewed from the “Click here for diagnostic and repair details” link, if changes are necessary you can open a command prompt and use Windows’ bcdedit command to do so, or if you prefer a GUI (and can get into Windows) you can use NeoSmart’s EasyBCD, which is freeware.

Notes and troubleshooting:

(1) If all disks in the array are shown as “Offline Member“, the array information will not be visible. Booting with only one previously RAIDed disk plugged into the motherboard should cause these details to be reappear so you can write them down. (It will also change that disk’s status to show as “Failed“). Repeat with one disk from each array if you have several.

(2) There will be a warning that says all data will be lost. Ignore this, it is untrue (unless you don’t follow the rest of the steps, of course.)

(3) Depending which OS you run TestDisk from, the drive’s manufacturer may not be listed. Alternatively you may just not be aware of who makes the controller for your specific drive. In these cases it will be necessary to identify the correct entry by its listed capacity, which will be very close to that entered when creating the array in the second step.

(4) The partition layout detected in the first few seconds will usually be correct; I would not recommend changing anything unless you’re certain it is wrong. Keep in mind that installing Windows 7 often creates a hidden ~100MB partition on the system drive.

(5) See details at TestDisk Bootsector Recovery – CGSecurity.org.

(6) See details at Win7 Startup Repair Tool – About.com.

(7) Did you have multiple OS installations, some of which were already broken (or that required a different combination of hardware)? Murphy’s Law dictates that one of these will be set to boot as default. Verify the OS you want is actually the one being loaded before worrying that this fix did not work.

(8) All the TestDisk operations described are shown visually at TestDisk Repair Tutorial – CGSecurity.org.

(9) The above procedure was gleaned from this thread, and is originally credited to Yasin Abbas, aka YaZ.

Fixing UEFI boot

I’ve spent a lot of time trying to get my Windows 8 PC to boot again after cloning to a new SSD and try to summarise how I finally got it all working –

Firstly, boot from a UEFI Windows 8 recovery disk (CD/DVD/USB) – I found that the automated recovery process didn’t find the correct Windows partition, nor when I managed to add it to BCD settings would it make it reliably bootable e.g. using BCDEDIT I got it to find and launch the Windows partition but it refused to cold boot or would not “keep” the settings after a 2nd reboot or power off.

Go into the Advanced options and run the Command Prompt.

Enter diskpart to use the DiskPart tool to ensure you have all the right partitions and to identify your EFI partition – the key thing here is that your EFI partition is formatted as FAT32:

DISKPART> sel disk 0
 Disk 0 is now the selected disk.
 DISKPART> list vol
 Volume ###  Ltr  Label        Fs     Type        Size     Status     Info
 ----------  ---  -----------  -----  ----------  -------  ---------  --------
 Volume 0     E                       DVD-ROM         0 B  No Media
 Volume 1     C                NTFS   Partition    195 GB  Healthy    Boot
 Volume 2         WINRE        NTFS   Partition    400 MB  Healthy    Hidden
 Volume 3                      FAT32  Partition    260 MB  Healthy    System

Then assign a drive letter to the EFI partition:

DISKPART> sel vol 3
 Volume 3 is the selected volume.
 DISKPART> assign letter=b:
 DiskPart successfully assigned the drive letter or mount point.

Exit DiskPart tool by entering exit and at the command prompt run the following:

cd /d b:\EFI\Microsoft\Boot\
 bootrec /fixboot
Delete or rename the BCD file:
 ren BCD BCD.bak
Use bcdboot.exe to recreate BCD store:
 bcdboot c:\Windows /l en-gb /s b: /f ALL

The /f ALL parameter updates the BIOS settings including UEFI firmware/NVRAM, /l en-gb is to localise for UK/GB locale. The localisation defaults to US English, or use en-US.

Reboot and cross your fingers.

Sources

https://communities.intel.com/message/110349#110349

http://superuser.com/questions/460762/how-can-i-repair-the-windows-8-efi-bootloader

http://www.cgsecurity.org/wiki/TestDisk_Download

Fotózás mozgásérzékelővel

Az ötlet nem az enyém, de jó és egyszerű.
Az eredeti itt olvasható: http://luckylarry.co.uk/2009/07/arduino-motion-triggered-camera/

A szükséges hozzávalók:

  • Arduino
  • Mozgásérzékelő
  • Infra LED
  • Nikon ML-L3 kompatibilis digitális fényképező (Pl: Nikon D70, D80)

A feladat a következő. Ahogy a mozgásérzékelő jelzést ad, a fényképezővel készítsünk 2 képet. A két képet követően legalább 15 másodpercig ne készüljön új kép. Az első exponálás előtt megadható legyen, hogy mennyi ideig várjon.

A kábelezés nagyon egyszerű. A 13-as és a föld közé egy LED megy (330 Ohm-os ellenállással, hogy ki ne égjen). A jobb oldali képen a bal kék led. A 11-es és a föld közé megy az infra LED. A 3-as és a föld közé egy 330 Ohm-os ellenállással a másik kék LED. A 3-as porton lévő LED a mozgásérzékelő állapotának megfelelően világít mindig. A 13-as porton lévő LED is ezt követi, de mozgás érzékelve 1 másodpercig világít. Ez inkább hasonlít a riasztó rendszereknél megszokott mozgást jelző LED visszajelzésre. A 12-es porton lévő LED az infra LED, ez végzi az exponálást. A mozgásérzékelő pedig a 2-es porton figyel.

A fényképezőgépen az exponálást infra módra kell kapcsolni és a LED et a D70 logo felé kell irányítani. Ott van a fényképezőn az érzékelő elhelyezve.

A kód: /download/arduino/motion_sensor_photo.zip

Hogy szkeneljünk wordbe egyszerűen

A nézet menüben a Makrók megjelenítését válaszuk.

A makró nevének adjuk ezt: Scan, a helynél pedig válasszuk ki a normal.dotm (globális sablont), majd kattintsunk a Létrehozás gombra.

Ekkor megjelenik a Microsoft Visual Basic szerkesztő ablak. Két sort kell beírni:
On Error Resume Next
WordBasic.InsertImagerScan
Majd el kell menteni a mentés ikonra kattintva.

A mentés után a Visual Basic ablakot be is zárhatjuk.

Most jön az utolsó lépés, kirakni egy ikont a makrónknak. Ezt a gyorselérési eszköztár testre szabásával lehet megcsinálni:

A testreszabásnál a választható parancsok helyét állítsuk át makrókra, majd jelöljük ki a listából a Normal.NewMacros.Scan elemet és a Felvétel gombbal adjuk hozzá a gyorselérési eszköztárhoz.

Ha nem tetszik az ikon, akkor a Módosítás gombbal ki lehet cserélni. Ha ez is kész, akkor az OK gombbal be kell zárni. Az eredmény egy új ikon:

Az ikonra kattintva megjelenik a szokásos kép beszúrása képolvasóból ablak.

Képekkel illusztrálva a leírás letölthető innen.

Hőmérséklet mérés

Az Arduino és társai (Freeduino, AVRDuino, stb.) megteremtették a programozóknak azt a hardware és szoftvert keretet, hogy könnyen tudjanak olyan programokat írni, melyekkel méréseket lehet végezni, vezérléseket megoldani.

Ez az ami szerintem nagyon hiányzott egy ideje a piacról.

Az első projekthez szükség lesz egy Arduino vagy azzal kompatibilis alaplapra. Az itt látható képen maga az alaplap nem látszik, csak a rácsatlakoztatott screwshield és a kijelző. A screwshield arra jó, hogy az arduino analóg, digitális portjaira könnyen csatlakoztathassunk drótokat, amikkel pl. egy bread boardra vezethetjük ki. A bread board egy próba panel, amit nem kell forrasztani, de mégis ki lehet rajta alakítani áramköröket.

Szükség lesz még 1 db 4.7 KOhm-os ellenállásra és DS18B20-as digitális hőmérséklet mérőjére. Mivel ellenállás nem volt kéznél, egy rossz CD meghajtó hangerő szabályzóját használtam fel, amit beállítottam a kívánt értékre.

A hőmérséklet mérőket egy közös buszra lehet kötni, amin 1 Wire protokolt használva lehet kommunikálni. Ez a protokol már meg van írva Arduinohoz. A hőmérséklet mérők kezeléséhez is van kész könyvtár, ezért tényleg csak pár sort kell írni ahhoz, hogy működjön az egész. Mindkét könyvtár elérhető innen:
http://milesburton.com/index.php?title=Dallas_Temperature_Control_Library

A szenzorokat gyakorlatilag a bal oldalon látható módon kell használni. Az 1-es és 3-as lábat földre kötjük, a 2-es láb megy az adatportra. Jól látszik, hogy egy két eres vezetékre szépen fel lehet fűzni több érzékelőt is. Az érzékelők használatához a két könyvtárat kell importálni:

#include <OneWire.h>
#include <DallasTemperature.h>

A kimenet formázásához az stdio könyvtárat is importálom és definiálom, hányas digitális portra lesz kötve az érzékelő.
#include <stdio.h>
#define ONE_WIRE_BUS 3

A kommunikációhoz és a szenzorok kezeléséhez két objektumra lesz szükség.
OneWire  ds(ONE_WIRE_BUS);
DallasTemperature sensors(&ds);

El kell indítani a szenzorok kezelését:
sensors.begin();

Meg kell számolni, hány szenzor van a buszon. Ez állítja be a maxsensors változót, amit majd később használok:
scanSensors();

Majd egy globális üzenetet kell küldeni, hogy minden szenzor mérje meg a hőmérsékletet:
sensors.requestTemperatures();

Az értékeket mteindegyik szenzorból egyesével ki kell olvasni:
for (int i=0;i<maxsensors;i++)
{
float f = sensors.getTempCByIndex(i);
lcdprint(dtostrf(f, 5, 1, buffer));
}

Az lcdprint() függvény saját, hogy könnyen lehessen megjeleníteni szöveget.

A teljes forrás letölthető innen: temp_sensor.zip
A szükséges könyvtárak a hőmérséklet szenzorokhoz: DallasTemperature_350.zip
A kijelző kezeléshez: LCD4Bit_mod.zip

A kijelzőt a NUELECTRONICS gyártja, de sok helyről be lehet szerezni hasonlót.

 

Szellőztetés Arduinoval

A külső mozgásérzékelő a 12-es digitalis portra van kötve. Mozgásérzékelőnek egy Kínából rendelt elemes mozgásérzékelőt használok, ami a tápját az MCU 3.3V-járól kapja. A mozgásérzékelő a 2-es lábon adja le a jelet, ha mozgás van. A jel észlelésekor az alaplapi LED gyorsan villog és elindul egy késleltetés, hogy a relé ne kapcsoljon azonnal. A késleltetés alatt az alaplapi LED lassan villog. Ha a késleltetés letelt, akkor a relé bekapcsol és ezzel indul a szellőztető motor. Ha újabb mozgás történik, akkor a kikapcsolási idő tolódik kifelé. A lényeg az, hogy legalább 5 percig szellőztessen a rendszer az utolsó észlelt mozgás után.

Tápegységnek szintén Kínából rendelt konnektorból használható 9V (1000 mA) tápot használok, ami a konnektoros egységből ki lett szerelve és a próba panelre rögzítve lett.

 

A Windows Device emulátor és a Windows 7 esete

Hát szívás, hogy a Windows 7-hez kijött a Virtual PC utódja, de a Device Emulator nem képes használni. A Microsoft valószínűleg ezzel is rá akarja szorítani a fejlesztőket, hogy menjenek a 6.5-ös vagy újabb windows mobile irányába. Na de akinek mégis kell a Device Emulátor alatt hálózat, azért meg lehet csinálni.

A cikket itt találtam: http://agilemobility.net/2009/08/01/windows-device-emulator-networking/

Röviden és magyarul a lépések:

  1. VPC2007 SP1 letölt
  2. EXE kicsomagolása
  3. MSI kicsomagolása
  4. hálózati központon keresztül a hálózati kártyához új szolgáltatás telepítése
  5. Virtual PC vagy az utódja nincs is a Windows 7-re telepítve, és mégis működik az emulátorban a hálózat.