SQL Accounting Linking: Difference between revisions

From eStream Software
 
(225 intermediate revisions by 2 users not shown)
Line 1: Line 1:
==Introduction==
==Introduction==
We had 3 Methods to Integrate/Link to SQL Accounting
{| width="90%"
*[[SDK Live]] (Recommended)
|-
*[[SQL XML Import]]
| We had 4 Methods to Integrate/Link to SQL Accounting
*[[SQL Text Import]]
* [[SDK Live]] (Recommended - For two way communication)
* [[SQL Acc XLS n MDB Import]] - XLS, XLSX, Json & CSV/TXT File (Format 2 - <span style="color:#0000ff">Bar(|),Comma(,),Semi Comma(;),Tilde(~)</span>)
* [[SQL XML Import]] - XML File
* [[SQL Text Import]] - CSV/TXT File (Format 1 - <span style="color:#0000ff">Semi Comma (;)</span> Only)
||[[File:QR_SQLLink.jpg|150px|center]]
|}


==SQL Accounting GST Program==
==SQL Accounting & Firebird Program==
* Version (4.2015.738.706) (Demo) - 31 Apr 2015
* [https://www.sql.com.my/download/demo/sqlacc-setup.exe SQL Accounting]
* http://www.estream.com.my/document/SQLLink/setup-0006.exe
* [https://github.com/FirebirdSQL/firebird/releases/download/R3_0_4/Firebird-3.0.4.33054_0_x64.exe Firebird 64 bit]
* [https://download.sql.com.my/customer/Fairy/Steps-InstallnCreateSampleDB.gif Installation Guide]


==Database==
==Database==
===Sample DB===
===Sample DB===
* http://www.estream.com.my/document/SQLLink/GST-SampleDB-20141203.zip
* [https://download.sql.com.my/customer/Fairy/Testing-2022-05-18.zip GSTnSST-SampleDB]
* http://www.estream.com.my/document/SQLLink/Video-RestoreDB.zip
* [https://download.sql.com.my/customer/Fairy/Steps-RestoreDB.gif Restore DB Guide]
 
===Empty DB===
===Empty DB===
# At the Login Screen Click 2 dot Button
# At the Login Screen Click 2 dot Button
Line 19: Line 25:
# Follow the wizard
# Follow the wizard


:::----------------------------------------------------------------------------------------------------------------------------------------------------
{| style="margin: 1em auto 1em auto;"
::::{|
|-
|-
| [[File:Template.Tips-01.jpg|60px]]||  
|  
Default UserName & Password is ADMIN
----------------------------------------------------------------------------------------------------------------------------------------------------
{|
|-
|-
| [[File:Template.Tips-01.jpg|60px]]||  
| [[File:Template.Tips-01.jpg|60px]]||  
To override the TaxAmt when posting :-
Default UserName & Password is ADMIN
Click Tools | Options... | Customer  &
|}
Untick the option "One Cent Different Rounding (Local Currency Fields)
----------------------------------------------------------------------------------------------------------------------------------------------------
for all AR/SL Documents (Recommended)"
|}
|}
:::----------------------------------------------------------------------------------------------------------------------------------------------------


<div style="float: right;">  [[#top|[top]]]</div>
===Things To Consider Before Import/Post===
===Things To Consider Before Import/Post===
Before wanted to Import/Post to SQL Accounting Database, below information must be had/valid in SQL Accounting
Before wanted to Import/Post to SQL Accounting Database, below information/setting must set in the SQL Accounting<br />
# Customer Code => Maintain Customer
 
# Supplier Code => Maintain Supplier
01. Click ''Menu: View'' <br>
# Terms Code => Maintain Terms
: Untick(UnSelect) the option
# Project Code => Maintain Project
:* Command Navigator
# Sales/Purchase Account Code => Maintain Account
:* Tabbed Docking
# Sales/Purchase Return Account Code => Maintain Account
:* Allow Multiple Windows
# Cash/Bank Account Code => Maintain Payment Method (Created from Maintain Account)
:* Enable Windows Task Bar
# Agent Code => Maintain Agent
 
# Area Code => Maintain Area
02. Click ''Menu: Tools | Options... | Customer''  <br>
# Currency Code => Maintain Currency
: Tick(Select) the option
:* Use Cash Sales No. for Payment Received
 
: Untick(UnSelect) the option
:* Perform Tax / Local Amount Rounding
:* 5 Cents Rounding (Sales Invoice)
:* 5 Cents Rounding (Cash Sales)
 
03. Click ''Menu: Tools | Options... | Miscellaneous ''  <br>
: Untick(UnSelect) the option
:* Prompt Negative Stock Quantity Dialog Box
:* Prompt Duplicate Cheque Number
 
04. Click ''Menu: Tools | Maintain User... | New''
: Create New User (eg POS)


Below is Option (i.e. if had post/import item code to SQL Accounting)
05. Click ''Menu: Tools | Maintain User... | Access Right''
# Item Code => Maintain Stock Item
: Tick (Select) the option
# Location Code => Maintain Location
:* '''Override Customer Credit Control''' under the '''Group : Customer'''
# Batch Code => Maintain Batch
:* '''Override Sales Min/Max Price''' under the '''Group : Sales'''
:* '''Override Acceptable Transaction Date''' under the '''Group : Tools'''
:* '''Save on Negative Quantity''' under the '''Group : Stock'''
 
: Untick (UnSelect) the option
::Under the '''Group : Sales'''
::* Prompt Replace Unit Price Dialog
::* Show Payment / Change Dialog in Cash Sales
 
06. Must be had/valid in SQL Accounting
{| class="wikitable" style="margin: 1em auto 1em auto;"
|-
! Field !! In SQL Accounting
|-
| Customer Code || Customer => Maintain Customer
|-
| Supplier Code || Supplier => Maintain Supplier
|-
| Terms Code || Tools => Maintain Terms
|-
| Project Code || Tools => Maintain Project
|-
| Sales/Purchase Account Code || GL => Maintain Account
|-
| Sales/Purchase Return Account Code || GL => Maintain Account
|-
| Cash/Bank Account Code || Tools => Maintain Payment Method (Created from Maintain Account)
|-
| Agent Code || Tools => Maintain Agent
|-
| Area Code || Tools => Maintain Area
|-
| Currency Code || Tools => Maintain Currency
|-
| Tax Code || Tools => Maintain Tax (if had GST)
|}
 
07. Below is Optional (i.e. if had post/import item code to SQL Accounting)
{| class="wikitable" style="margin: 1em auto 1em auto;"
|-
! Field !! Location/Form
|-
| Item Code || Stock => Maintain Stock Item
|-
| Location Code || Stock => Maintain Location
|-
| Batch Code || Stock => Maintain Batch
|}
 
{| style="margin: 1em auto 1em auto;"
|-
|
----------------------------------------------------------------------------------------------------------------------------------------------------
{|
|-
| [[File:Template.Warning-01.jpg|80px]]||
: '''ALWAYS''' do backup the database First before Import/Post to SQL Accounting
|}
----------------------------------------------------------------------------------------------------------------------------------------------------
|}
 
<div style="float: right;">  [[#top|[top]]]</div>


==Table/Fields Detail==
==Table/Fields Detail==
* Updated 19 Aug 2015
* Updated 05 Oct 2024
* http://www.estream.com.my/document/SQLLink/DetailSpec.xlsx
* [https://docs.google.com/spreadsheets/d/1K-eWqe-NHfJfqn9kaoJc4m5YZCvKmGw7WmHqV5Hj6XU/edit?usp=sharing DetailSpec]


===Normal Used Table Name===
===Normal Used Table/Biz Object Name===
* SL_IV - Sales Invoice
---Sales Side---
* SL_CS - Cash Sales
{| class="wikitable" style="margin: 1em auto 1em auto;"
* SL_CN/AR_CN - Credit Note
|-
* SL_DN - Debit Note
! Biz Object !! Description
* AR_PM - Payment
|-
| align="center" | AR_Customer || Maintain Customer
|-
| align="center" | SL_IV || Sales Invoice
|-
| align="center" |  SL_CS || Cash Sales
|-
| align="center" | SL_CN || Sales Credit Note
|-
| align="center" | SL_DN || Sales Debit Note
|-
| align="center" | AR_PM || Customer Payment
|-
| align="center" | AR_IV || Customer Invoice
|-
| align="center" | AR_DN || Customer Debit Note
|-
| align="center" | AR_CN || Customer Credit Note
|}
 
---Purchase Side---
{| class="wikitable" style="margin: 1em auto 1em auto;"
|-
! Biz Object !! Description
|-
| align="center" | AP_Supplier || Maintain Supplier
|-
| align="center" | PH_PI || Purchase Invoice
|-
| align="center" | PH_CP || Cash Purchase
|-
| align="center" | PH_SC || Purchase Return
|-
| align="center" | PH_SD || Purchase Debit Note
|-
| align="center" | AP_SP || Supplier Payment
|-
| align="center" | AP_PI || Supplier Invoice
|-
| align="center" | AP_SD || Supplier Debit Note
|-
| align="center" | AP_SC || Supplier Credit Note
|}
 
 
<div style="float: right;">  [[#top|[top]]]</div>


==Posting Information==
==Posting Information==
* Detail Data should Group by Stock Group/Category & TaxType (ZRL or SR)
* Detail Data should Group by Stock Group/Category & TaxType (ZRL or SR) & Itemcode (if wanted import itemcode)
* Eg. Cafe can be group by
* Eg. Cafe can be group by
::- Food - SR
::- Food - SR
Line 78: Line 203:
===Method 1 (Recommended)===
===Method 1 (Recommended)===
It will be had 4 transactions
It will be had 4 transactions
   1. RM1000 - Post to SL_CS & P_PaymentMethod field is empty
   1. RM1000 - Post to SL_CS & (<span style="color:#0000ff">P_DocNo, P_PaymentMethod</span> field is empty & <span style="color:#0000ff">P_Amount, P_PaidAmount</span> field is 0)
   2. RM700 by Cash - Post to AR_PM
   2. RM700 by Cash - Post to AR_PM
   3. RM200 by MasterCard - Post to AR_PM
   3. RM200 by MasterCard - Post to AR_PM
Line 91: Line 216:
   3. RM100 by CreditCard - Post to AR_PM
   3. RM100 by CreditCard - Post to AR_PM
Pros : Less Posting document<br />
Pros : Less Posting document<br />
Cons : Not Easy to Edit or Delete the transactions
Cons :
* Not Easy to Edit or Delete the transactions
* Cash Sales OR number unable to override (i.e. System Auto set/assign)
 
<div style="float: right;">  [[#top|[top]]]</div>


==Extra Notes==
==Extra Notes==
* Both Full Tax & Simplified IV can use same Debtor Code as Not meantion required Customer GST ID
* Both Full Tax & Simplified IV can use same Debtor Code as Not mention required Customer GST ID
* Gov. 5 cents Rounding - no Tax  
* Government 5 cents Rounding Mechanism - NO Tax/GST Code
* Deposit for Non Refundable can use Customer Payment (AR_PM)
* Deposit for '''Non Refundable''' can use Customer Payment (AR_PM) & set ''NONREFUNDABLE'' field to ''1''
* Doc Disc should proportion by sub total amt for mix tax code (See Cash Sales POS4)
: - Default is SR
: - Will auto reverse once it being Knock-Off
* Doc Disc should proportion by sub total amt for mix tax code (See Cash Sales POS-DocDisc)
:Example
:Example
::  - Doc Discount = 30
::  - Doc Discount = 10% of Document Discount
::  - Sub Total for SR = 849.53 => Disc ((849.53/1,182.51) * 30) = 21.55
::  - Sub Total for SR = 150.24 => Disc (150.24 * 10%) = 15.02
::  - Sub Total for ZR = 332.98 => Disc ((332.98/1,182.51) * 30) = 8.45
::  - Sub Total for ZR = 988.88 => Disc (988.88 * 10%) = 98.89
0r
::  - Doc Discount = 113.91
::  - Sub Total for SR = 150.24 => Disc ((150.24/1139.12) * 113.91) = 15.02
::  - Sub Total for ZR = 988.88 => Disc ((988.88/1139.12) * 113.91) = 98.89
 
* Mixed Supplies Tax Code
* Mixed Supplies Tax Code
::  - ES
::  - ES
::  - TXN43
::  - TX-ES (Replace TX-N43)
::  - TXRE
::  - TX-RE
* Realise Bad Debts Use CN as Normal
* Realise Bad Debts Use CN as Normal
::  - System will contra the provision bad debts done at GST-03 by 6 mth bad debts
::  - System will contra the provision bad debts done at GST-03 by 6 mth bad debts
::  - Make sure Knock the actual Bad debts Invoice
::  - Make sure Knock the actual Bad debts Invoice
* For Purchase Invoice(PI) '''MUST''' 1 by 1 post in (i.e. can't Group multi PI in 1 PI)
==FAQ==
===Prompt <code>Invalid class string, ProdID: "SQLAcc.BizApp"</code> error while try to link to SQL Accounting.===
# Login SQL Accounting
# Click Tools | Options | General
# Click Register & follow wizard
# Exit SQL Accounting
# Login SQL Accounting
# Try run you application to link again
: If still prompt after above steps
# Uninstall SQL Accounting
# Stop Anti Virus
# Reinstall SQL Accounting
# Run the above steps again
===Prompt <code>Access Violation</code> when import.===
: This happen due to
:
: The fieldname is not match with SQL Accounting (eg SQLAcc fieldname UDF_Width yr had call for UDF_Weight)
# Old version of SQL Acc Import program, try update the SQL Acc Import program
# The fieldname had the empty space at the beginning and/or end (norm happen if import from Excel) eg 'DocNo ' or ' DocNo' instead of 'DocNo'
===Why after import the DO still had outstanding even the Invoice had imported?===
: Yes all import will loss the ''Transfer'' status (i.e. if import DO & IV will treat as different) except using SDK import with condition
===Which field should I map/insert to for Credit Note & Debit Note for Invoice Number, Invoice Date & Reason?===
: In Generally(Recommended) you can use below field (All in Header Field)
{| class="wikitable" style="margin: 1em auto 1em auto;"
|-
! SQL Accounting Field !! Mapping Field !! Description
|-
| DocNoEx || Invoice Number ||  Field Size : 20
|-
| DocRef1 || Invoice Date || Field Size : 25
|-
| Description || Reason || Field Size : 200
|}
: If you wanted posted in Detail Field also can
{| class="wikitable" style="margin: 1em auto 1em auto;"
|-
! SQL Accounting Field !! Mapping Field !! Description
|-
| Remark1 || Invoice Number ||  Field Size : 200
|-
| Remark2 || Invoice Date || Field Size : 200
|-
| Description2 || Reason || Field Size : 200
|}
===Can I post/import to SQL Accounting in Monthly Basis?===
: No for GST/SST Era. It advice able to do '''Daily''' Basis posting/import as user had more time to verify if posting/import had Error/Problem
: Below is the proper steps to do posting/import
::* Backup
::* Post/Import to SQL Accounting
::* Compare Listing in SQL Accounting with the POS/External Program Listing
===In my system had multiple level document discount, how to post to SQL Accounting?===
: You can insert 2 or more rows(depend how many level you had) of item as negative unitprice.
: But as mention above '''Extra Notes''' proportion by sub total amt for mix tax code.
===Can I do like this, DR Bank/Cash In hand/Debtor & CR Sales Account using Journal?===
: No. The correct Double Entry is as following
::- '''Invoice/Cash Sales'''
:::DR Debtor
:::CR Sales Account
::- '''Payment Received'''
:::DR Bank/Cash In Hand
:::CR Debtor
===Can I use just ADMIN ID to Import/Posting?===
: No. ''ADMIN'' had full Access Right & if had problem user might had problem trace back who doing the importing...<br />
: It adviceable to create Another ID with less Access Right
===Can SQL Accounting & External Program(eg POS) Import/Posting doing Stock Control in same time?===
: Yes, but we Recommended External Program(eg POS) to do all the Stock Control if the External Program(eg POS)<br />
: able to do all the report Required by the User.
: Reason :
: 01. Faster Import time
: 02. Timing issue as in SQL Acc the Qty is ''ALWAYS'' outdated cause real ''Stock In/Out'' is from the External Program(eg POS)
: 03. Data redundancy as 2 same data for different system
: 04. Avoid wasting time on Sync correctness stock data between 2 system
Related Ref : [https://wiki.sql.com.my/wiki/SDK_Live#Can_I_control_my_Stock_when_I_link_with_other_Application.3F Can I control my Stock when I link with other Application?]
===Can SQL Acc accept negative amount?===
:Yes if for Item Row Amount
:No all document amount(DocAmt field) must not below 0
===Is there any setting for transaction without Tax?===
: No there is no special setting. All you had to do is to set the following field to
{| class="wikitable" style="margin: 1em auto 1em auto;"
|-
! Field !! Value
|-
| Tax || '''''''
|-
| TaxInclusive || 0
|-
| TaxAmt || 0
|}
===How to post If supplier given is Simplified Invoice but exceed RM500?===
: It advisable to ask the user to Request '''Full Tax Invoice''' from their supplier as user might pay double Tax due to add back for non claimable amount to the company profit by their Audit/Accountant.
: Below is example(suggest) how we post to Simplified Invoice from supplier
[[File:SQLLink-01.jpg|800px|center]]
[[File:SQLLink-02.jpg|center]]
{| style="margin: 1em auto 1em auto;"
|-
|
----------------------------------------------------------------------------------------------------------------------------------------------------
{|
|-
| [[File:Template.Tips-01.jpg|60px]]|| You also can use the '''TX-NC''' tax code for amount exceed RM500
|}
----------------------------------------------------------------------------------------------------------------------------------------------------
|}
<div style="float: right;">  [[#top|[top]]]</div>
===Prompt <code>Could not convert variant of type (Null) into type (Integer)</code> error while try to post (eg Invoice)===
: Make sure the database you login is had Started the GST.
<div style="float: right;">  [[#top|[top]]]</div>
===How to post SR with 6% for issue document after 01 Jun 2018?===
: There are 2 solutions
'''Solution 1'''
{| class="mw-collapsible mw-collapsed wikitable"
! Add TaxRate Field Script/Code 
|-
|
...
  lDtl.FindField('TAX').AsString    := 'SR';
  <span style="color:#0000ff">lDtl.FindField('TAXRATE').AsString := '6%';</span>
...
|}
'''Solution 2'''
: Create New Tax SR tax code with 6%(eg <span style="color:#0000ff">SR6</span>) in SQL Accounting
<div style="float: right;">  [[#top|[top]]]</div>
===Is there any changes in Linking for the SST?===
* GST to No SST
: May follow [https://wiki.sql.com.my/wiki/SQL_Accounting_Linking#Is_there_any_setting_for_transaction_without_Tax? Non GST]
* GST to SST
: There is no much changes. Just treat is like normal GST only different is the Tax Code
{| class="wikitable" style="margin: 1em auto 1em auto;"
|-
! Tax Code !! Description !! Rate !! Required Tariff Code
|-
| ST5 || Sales Tax ||  align="center" | 5% || align="center" |Y
|-
| ST || Sales Tax ||  align="center" | 10% || align="center" |Y
|-
| SV || Service Tax ||  align="center" | 6% (8% From 01 Mar 2024) || align="center" |Y
|-
| STE || Sales Tax Exempted ||  || align="center" |N
|}
: New Field added
{| class="wikitable" style="margin: 1em auto 1em auto;"
! Field Name !! Field Type !! Field Size !! Mandatory !! Default Value !! Remarks
|-
| TARIFF ||String||align="center"  |20||align="center" |C||||
* Tariff or HS Code
* Mandatory - If posting to
: - GL Payment Voucher & GL Official Receipt
: - Customer Invoice, Debit Note & Credit Note
: - Supplier Invoice, Debit Note & Credit Note
: - All Sales & Purchase Module without '''Item Code'''
* No Required - If posting Sales & Purchase with '''Item Code'''
|}
<div style="float: right;">  [[#top|[top]]]</div>
===How to SQL Accounting handle if had Discount/Cash Voucher?===
: You can treat the Discount/Cash Voucher as Part of item row but is in Negative UnitPrice
[[File:SQLLink-03.jpg|800px|center]]
===Begin 11 Oct 2019 the Company ROC/BRN will increase to 12 digit characters. Any changes in Linking?===
: Yes if user is upgrade to Version 875.782 & above.
: Table Affected
::- SY_PROFILE => File | Company Profile
::- AR_CUSTOMER => Customer | Maintain Customer
::- AP_SUPPLIER => Supplier | Maintain Supplier
: Field Changes
::- Original Name '''REGISTERNO''' change to <span style="color:#0000ff">BRN</span>
::- New Field <span style="color:#0000ff">BRN2</span>
::- New Field Size for both Fields <span style="color:#0000ff">30</span>
[https://www.ssm.com.my/Lists/Announcement/AnnouncementDetails.aspx?ID=134 SSM Announcement] or [https://download.sql.com.my/customer/Fairy/Announcement-NewROC.pdf PDF]
===Is there any changes in Linking for the E-Invoicing?===
New Field Added<br>
Available in Version 5.2024.983.848 & above
{| class="mw-collapsible mw-collapsed wikitable"
! Maintain Customer & Maintain Supplier
|-
|
{| class="wikitable" style="margin: 1em auto 1em auto;"
! Field Name !! Field Type !! Field Size !! Remarks
|-
| TIN ||String||align="center"  |14|| Company Tax Register Number
|-
| IDTYPE ||Integer || ||
* 0 - Empty
* 1 - Reg No
* 2 - NRIC
* 3 - Passport
* 4 - ARMY
|-
| IDNO ||String||align="center"  |20|| This field will depend on the ID Type selected
|-
| TOURISMNO ||String||align="center"  |17|| This is only applicable to tourism tax registrant, which may consist of hotel operators and online travel operators
|-
| SIC ||String||align="center"  |10||
* Malaysia Standard Industrial Classification (MSIC) Codes
* https://sdk.myinvois.hasil.gov.my/codes/#msic-codes
* Available in Version (TBA)
* Maintain Supplier Only
|-
| SUBMISSIONTYPE ||Integer ||align="center"  | 0|| 
* Available in Version 5.2024.992.854 & above
* 0 = None
* 17 = E-Invoice/Self Billing(for Maintain Supplier)
* 18 = Consolidate
|-
| IRBM_CLASSIFICATION ||String||align="center"  |3||
* Maintain Supplier Only
* Category of products or services being billed as a result of a commercial transaction. More than 1 classification codes can be added for goods / services included in the e-Invoice.
* https://sdk.myinvois.hasil.gov.my/codes/classification-codes/
* Available in Version 5.2024.990.852 & above
|-
| POSTCODE ||String||align="center"  |10|| The identifier for an addressable group of properties according to the relevant postal service
|-
| CITY ||String||align="center"  |50|| The common name of the city, town or village, where the Customer/Supplier address is located.
|-
| STATE ||String||align="center"  |50||
* The state of a country.
* https://sdk.myinvois.hasil.gov.my/codes/state-codes/
|-
| COUNTRY ||String||align="center"  |2||
* A code that identifies the country.
* May refer to Country List [https://docs.google.com/spreadsheets/d/1TcFVqH1VCJ5SjHAt2VCHIeTTcQVUjtIBxLaZGGM0E5k/edit?gid=1859696683#gid=1859696683 Here]
|}
|}
{| class="mw-collapsible mw-collapsed wikitable"
! Maintain Stock Item
|-
|
{| class="wikitable" style="margin: 1em auto 1em auto;"
! Field Name !! Field Type !! Field Size !! Remarks
|-
| IRBM_CLASSIFICATION ||String||align="center"  |3||
* Category of products or services being billed as a result of a commercial transaction. More than 1 classification codes can be added for goods / services included in the e-Invoice.
* https://sdk.myinvois.hasil.gov.my/codes/classification-codes/
|}
|}
Available in Version 5.2024.990.852 & above
{| class="mw-collapsible mw-collapsed wikitable"
! Sales & Purchase Data Entry - Header
|-
|
{| class="wikitable" style="margin: 1em auto 1em auto;"
! Field Name !! Field Type !! Field Size !! Remarks
|-
| EIVDATETIME || DateTime ||align="center"  |0||
* E-Invoicing Submitted Date time in the UTC timezone
* eg 19/07/2024 7:17:43 AM
|-
| IRBM_UUID ||String||align="center"  |26||
* E-Invoicing Submited respond UUID
*eg FSEP22A4Y5BFGGWAX95N943811
|-
| IRBM_LONGID ||String||align="center"  |50||
* E-Invoicing Submited respond Long UUID
* eg TM9AFNQ0M76T07BTX95NX43J10CzvSE31712365482
|-
| IRBM_STATUS ||Integer ||align="center"  |0|| 
* E-Invoicing Submited Status
* https://sdk.myinvois.hasil.gov.my/faq/
* eg 2
|-
| POSTCODE ||String||align="center"  |10|| The identifier for an addressable group of properties according to the relevant postal service
|-
| CITY ||String||align="center"  |50|| The common name of the city, town or village, where the Customer/Supplier address is located.
|-
| STATE ||String||align="center"  |50||
* The state of a country.
* https://sdk.myinvois.hasil.gov.my/codes/state-codes/
|-
| COUNTRY ||String||align="center"  |2||
* A code that identifies the country.
* May refer to Country List [https://docs.google.com/spreadsheets/d/1TcFVqH1VCJ5SjHAt2VCHIeTTcQVUjtIBxLaZGGM0E5k/edit?gid=1859696683#gid=1859696683 Here]
|-
| DPOSTCODE ||String||align="center"  |10|| The identifier for an addressable group of properties according to the relevant postal service
|-
| DCITY ||String||align="center"  |50|| The common name of the city, town or village, where the Customer/Supplier address is located.
|-
| DSTATE ||String||align="center"  |50||
* The state of a country.
* https://sdk.myinvois.hasil.gov.my/codes/state-codes/
|-
| DCOUNTRY ||String||align="center"  |2||
* A code that identifies the country.
* May refer to Country List [https://docs.google.com/spreadsheets/d/1TcFVqH1VCJ5SjHAt2VCHIeTTcQVUjtIBxLaZGGM0E5k/edit?gid=1859696683#gid=1859696683 Here]
|-
| SALESTAXNO ||String||align="center"  |25||
|-
| SERVICETAXNO ||String||align="center"  |25||
|-
| TIN ||String||align="center"  |14|| Company Tax Register Number
|-
| IDTYPE ||Integer || ||
* 0 - Empty
* 1 - Reg No
* 2 - NRIC
* 3 - Passport
* 4 - ARMY
|-
| IDNO ||String||align="center"  |20|| This field will depend on the ID Type selected
|-
| TOURISMNO ||String||align="center"  |17|| This is only applicable to tourism tax registrant, which may consist of hotel operators and online travel operators
|-
| SIC ||String||align="center"  |10||
* Malaysia Standard Industrial Classification (MSIC) Codes
* https://sdk.myinvois.hasil.gov.my/codes/#msic-codes
* Maintain Supplier Only
|-
| INCOTERMS ||String||align="center"  |20|| A set of international trade rules that define the responsibilities of buyers and suppliers.The input of special characters is not allowed.
|-
| SUBMISSIONTYPE ||Integer ||align="center"  | 0|| 
* Available in Version 5.2024.992.854 & above
* 0 = None
* 17 = E-Invoice/Self Billing(for Purchase Only)
* 18 = Consolidate
|}
|}
{| class="mw-collapsible mw-collapsed wikitable"
! Sales & Purchase Data Entry - Detail
|-
|
{| class="wikitable" style="margin: 1em auto 1em auto;"
! Field Name !! Field Type !! Field Size !! Remarks
|-
| TAXEXEMPTIONREASON ||String||align="center"  |300||
* Available in Version 5.2024.992.854 & above
* For Tax Exemption Code use only
|-
| IRBM_CLASSIFICATION ||String||align="center"  |3||
* Category of products or services being billed as a result of a commercial transaction. More than 1 classification codes can be added for goods / services included in the e-Invoice.
* https://sdk.myinvois.hasil.gov.my/codes/classification-codes/
|}
|}
Available in Version 5.2024.990.852 & above
{| class="mw-collapsible mw-collapsed wikitable"
! Maintain Currency
|-
|
{| class="wikitable" style="margin: 1em auto 1em auto;"
! Field Name !! Field Type !! Field Size !! Remarks
|-
| ISOCODE ||String||align="center"  |3||
* https://sdk.myinvois.hasil.gov.my/codes/countries/
|}
|}
===Change to Boolean Type===
: Begin from SQL Acc Version 5.2024.1007.860 & above the follow field type will change to Boolean (True/False)
: [https://download.sql.com.my/customer/sqlacc.x86.5.2024.1008.860.exe SQL Accounting 860]
{| class="wikitable" style="margin: 1em auto 1em auto;"
|-
! FieldName !! True Value !! False Value
|-
|  align="center" | TaxInclusive ||  align="center" |1 ||  align="center" | 0
|-
|  align="center" | SerialNumber ||  align="center" |T ||  align="center" |F
|-
|  align="center" | Cancelled ||  align="center" |T ||  align="center" |F
|-
|  align="center" | Cancelled ||  align="center" |1 ||  align="center" |0
|-
|  align="center" | AddPDCToCRLimit ||  align="center" |T ||  align="center" |F
|-
|  align="center" | Transferable ||  align="center" |T ||  align="center" |F
|-
|  align="center" | IsActive ||  align="center" |T ||  align="center" |F
|-
|  align="center" | IsActive ||  align="center" |1 ||  align="center" |0
|-
|  align="center" | NonRefundable ||  align="center" |1 ||  align="center" |0
|-
|  align="center" | AllowExceedCreditLimit ||  align="center" |T ||  align="center" |F
|-
|  align="center" | Printable ||  align="center" |T ||  align="center" |F
|-
|  align="center" | StockControl ||  align="center" |T ||  align="center" |F
|-
|  align="center" | IsBase ||  align="center" |1 ||  align="center" |0
|-
|  align="center" | IsDefault ||  align="center" |1 ||  align="center" |0
|-
|  align="center" | IsDefault ||  align="center" |T ||  align="center" |F
|}
{| class="wikitable" style="margin: 1em auto 1em auto;"
|-
! Programming !! Before !! After
|-
|  align="center" | C# ||
lDetail.FindField("TaxInclusive").value = 1; <br>
lDetail.FindField("Printable").AsString = "T";
||
lDetail.FindField("TaxInclusive").value = True;<br>
lDetail.FindField("Printable").value = True;
|-
|  align="center" | PHP ||
$lDetail->FindField("TaxInclusive")->value = 0; <br>
$lDetail->FindField("Printable")->AsString = "T";
|| 
$lDetail->FindField("TaxInclusive")->value = False;<br>
$lDetail->FindField("Printable")->value = True;
|-
|  align="center" | Python ||
lDetail.FindField("TaxInclusive").value = 1 <br>
lDetail.FindField("Printable").AsString = "T"
||
lDetail.FindField("TaxInclusive").value = True<br>
lDetail.FindField("Printable").value = True
|-
| Query SQL ||
SELECT CODE, DESCRIPTION FROM AGENT <br>
WHERE ISACTIVE='T'
||
SELECT CODE, DESCRIPTION FROM AGENT <br>
WHERE ISACTIVE
|-
| Query SQL ||
SELECT CODE, DESCRIPTION FROM AGENT <br>
WHERE ISACTIVE='F'
||
SELECT CODE, DESCRIPTION FROM AGENT <br>
WHERE NOT ISACTIVE
|}
* <big>Need assistance? May email to '''support@sql.com.my'''</big>

Latest revision as of 11:02, 22 November 2024

Introduction

We had 4 Methods to Integrate/Link to SQL Accounting
QR SQLLink.jpg

SQL Accounting & Firebird Program

Database

Sample DB

Empty DB

  1. At the Login Screen Click 2 dot Button
  2. Click Create New Database
  3. Follow the wizard

Template.Tips-01.jpg

Default UserName & Password is ADMIN


Things To Consider Before Import/Post

Before wanted to Import/Post to SQL Accounting Database, below information/setting must set in the SQL Accounting

01. Click Menu: View

Untick(UnSelect) the option
  • Command Navigator
  • Tabbed Docking
  • Allow Multiple Windows
  • Enable Windows Task Bar

02. Click Menu: Tools | Options... | Customer

Tick(Select) the option
  • Use Cash Sales No. for Payment Received
Untick(UnSelect) the option
  • Perform Tax / Local Amount Rounding
  • 5 Cents Rounding (Sales Invoice)
  • 5 Cents Rounding (Cash Sales)

03. Click Menu: Tools | Options... | Miscellaneous

Untick(UnSelect) the option
  • Prompt Negative Stock Quantity Dialog Box
  • Prompt Duplicate Cheque Number

04. Click Menu: Tools | Maintain User... | New

Create New User (eg POS)

05. Click Menu: Tools | Maintain User... | Access Right

Tick (Select) the option
  • Override Customer Credit Control under the Group : Customer
  • Override Sales Min/Max Price under the Group : Sales
  • Override Acceptable Transaction Date under the Group : Tools
  • Save on Negative Quantity under the Group : Stock
Untick (UnSelect) the option
Under the Group : Sales
  • Prompt Replace Unit Price Dialog
  • Show Payment / Change Dialog in Cash Sales

06. Must be had/valid in SQL Accounting

Field In SQL Accounting
Customer Code Customer => Maintain Customer
Supplier Code Supplier => Maintain Supplier
Terms Code Tools => Maintain Terms
Project Code Tools => Maintain Project
Sales/Purchase Account Code GL => Maintain Account
Sales/Purchase Return Account Code GL => Maintain Account
Cash/Bank Account Code Tools => Maintain Payment Method (Created from Maintain Account)
Agent Code Tools => Maintain Agent
Area Code Tools => Maintain Area
Currency Code Tools => Maintain Currency
Tax Code Tools => Maintain Tax (if had GST)

07. Below is Optional (i.e. if had post/import item code to SQL Accounting)

Field Location/Form
Item Code Stock => Maintain Stock Item
Location Code Stock => Maintain Location
Batch Code Stock => Maintain Batch

Template.Warning-01.jpg
ALWAYS do backup the database First before Import/Post to SQL Accounting

Table/Fields Detail

Normal Used Table/Biz Object Name

---Sales Side---

Biz Object Description
AR_Customer Maintain Customer
SL_IV Sales Invoice
SL_CS Cash Sales
SL_CN Sales Credit Note
SL_DN Sales Debit Note
AR_PM Customer Payment
AR_IV Customer Invoice
AR_DN Customer Debit Note
AR_CN Customer Credit Note

---Purchase Side---

Biz Object Description
AP_Supplier Maintain Supplier
PH_PI Purchase Invoice
PH_CP Cash Purchase
PH_SC Purchase Return
PH_SD Purchase Debit Note
AP_SP Supplier Payment
AP_PI Supplier Invoice
AP_SD Supplier Debit Note
AP_SC Supplier Credit Note


Posting Information

  • Detail Data should Group by Stock Group/Category & TaxType (ZRL or SR) & Itemcode (if wanted import itemcode)
  • Eg. Cafe can be group by
- Food - SR
- Food - ZRL
- Beverage
- Service Charges
- Rounding
  • Eg. Today got 10 transactions
- 8 is Simplified Invoice - Group as 1 Doc No - POS-00001
- 2 is Full Tax Invoice/Credit Sales Invoice - 1 by 1 in - POS-00002, POS-00003
  • All can post to SL_CS & AR_PM
  • Below is example Today Total Simplified Invoice Sales is RM1000

Method 1 (Recommended)

It will be had 4 transactions

 1. RM1000 - Post to SL_CS & (P_DocNo, P_PaymentMethod field is empty & P_Amount, P_PaidAmount field is 0)
 2. RM700 by Cash - Post to AR_PM
 3. RM200 by MasterCard - Post to AR_PM
 4. RM100 by CreditCard - Post to AR_PM

Pros : Easy to Edit or Delete the transactions
Cons : Many Posting document

Method 2

It will be had 3 transactions

 1. RM700 by Cash - Post to SL_CS P_PaymentMethod field
 2. RM200 by MasterCard - Post to AR_PM
 3. RM100 by CreditCard - Post to AR_PM

Pros : Less Posting document
Cons :

  • Not Easy to Edit or Delete the transactions
  • Cash Sales OR number unable to override (i.e. System Auto set/assign)

Extra Notes

  • Both Full Tax & Simplified IV can use same Debtor Code as Not mention required Customer GST ID
  • Government 5 cents Rounding Mechanism - NO Tax/GST Code
  • Deposit for Non Refundable can use Customer Payment (AR_PM) & set NONREFUNDABLE field to 1
- Default is SR
- Will auto reverse once it being Knock-Off
  • Doc Disc should proportion by sub total amt for mix tax code (See Cash Sales POS-DocDisc)
Example
- Doc Discount = 10% of Document Discount
- Sub Total for SR = 150.24 => Disc (150.24 * 10%) = 15.02
- Sub Total for ZR = 988.88 => Disc (988.88 * 10%) = 98.89

0r

- Doc Discount = 113.91
- Sub Total for SR = 150.24 => Disc ((150.24/1139.12) * 113.91) = 15.02
- Sub Total for ZR = 988.88 => Disc ((988.88/1139.12) * 113.91) = 98.89
  • Mixed Supplies Tax Code
- ES
- TX-ES (Replace TX-N43)
- TX-RE
  • Realise Bad Debts Use CN as Normal
- System will contra the provision bad debts done at GST-03 by 6 mth bad debts
- Make sure Knock the actual Bad debts Invoice
  • For Purchase Invoice(PI) MUST 1 by 1 post in (i.e. can't Group multi PI in 1 PI)

FAQ

Prompt Invalid class string, ProdID: "SQLAcc.BizApp" error while try to link to SQL Accounting.

  1. Login SQL Accounting
  2. Click Tools | Options | General
  3. Click Register & follow wizard
  4. Exit SQL Accounting
  5. Login SQL Accounting
  6. Try run you application to link again
If still prompt after above steps
  1. Uninstall SQL Accounting
  2. Stop Anti Virus
  3. Reinstall SQL Accounting
  4. Run the above steps again

Prompt Access Violation when import.

This happen due to
The fieldname is not match with SQL Accounting (eg SQLAcc fieldname UDF_Width yr had call for UDF_Weight)
  1. Old version of SQL Acc Import program, try update the SQL Acc Import program
  2. The fieldname had the empty space at the beginning and/or end (norm happen if import from Excel) eg 'DocNo ' or ' DocNo' instead of 'DocNo'

Why after import the DO still had outstanding even the Invoice had imported?

Yes all import will loss the Transfer status (i.e. if import DO & IV will treat as different) except using SDK import with condition

Which field should I map/insert to for Credit Note & Debit Note for Invoice Number, Invoice Date & Reason?

In Generally(Recommended) you can use below field (All in Header Field)
SQL Accounting Field Mapping Field Description
DocNoEx Invoice Number Field Size : 20
DocRef1 Invoice Date Field Size : 25
Description Reason Field Size : 200
If you wanted posted in Detail Field also can
SQL Accounting Field Mapping Field Description
Remark1 Invoice Number Field Size : 200
Remark2 Invoice Date Field Size : 200
Description2 Reason Field Size : 200

Can I post/import to SQL Accounting in Monthly Basis?

No for GST/SST Era. It advice able to do Daily Basis posting/import as user had more time to verify if posting/import had Error/Problem
Below is the proper steps to do posting/import
  • Backup
  • Post/Import to SQL Accounting
  • Compare Listing in SQL Accounting with the POS/External Program Listing

In my system had multiple level document discount, how to post to SQL Accounting?

You can insert 2 or more rows(depend how many level you had) of item as negative unitprice.
But as mention above Extra Notes proportion by sub total amt for mix tax code.

Can I do like this, DR Bank/Cash In hand/Debtor & CR Sales Account using Journal?

No. The correct Double Entry is as following
- Invoice/Cash Sales
DR Debtor
CR Sales Account
- Payment Received
DR Bank/Cash In Hand
CR Debtor

Can I use just ADMIN ID to Import/Posting?

No. ADMIN had full Access Right & if had problem user might had problem trace back who doing the importing...
It adviceable to create Another ID with less Access Right

Can SQL Accounting & External Program(eg POS) Import/Posting doing Stock Control in same time?

Yes, but we Recommended External Program(eg POS) to do all the Stock Control if the External Program(eg POS)
able to do all the report Required by the User.
Reason :
01. Faster Import time
02. Timing issue as in SQL Acc the Qty is ALWAYS outdated cause real Stock In/Out is from the External Program(eg POS)
03. Data redundancy as 2 same data for different system
04. Avoid wasting time on Sync correctness stock data between 2 system

Related Ref : Can I control my Stock when I link with other Application?

Can SQL Acc accept negative amount?

Yes if for Item Row Amount
No all document amount(DocAmt field) must not below 0

Is there any setting for transaction without Tax?

No there is no special setting. All you had to do is to set the following field to
Field Value
Tax ''
TaxInclusive 0
TaxAmt 0

How to post If supplier given is Simplified Invoice but exceed RM500?

It advisable to ask the user to Request Full Tax Invoice from their supplier as user might pay double Tax due to add back for non claimable amount to the company profit by their Audit/Accountant.
Below is example(suggest) how we post to Simplified Invoice from supplier
SQLLink-01.jpg
SQLLink-02.jpg

Template.Tips-01.jpg You also can use the TX-NC tax code for amount exceed RM500


Prompt Could not convert variant of type (Null) into type (Integer) error while try to post (eg Invoice)

Make sure the database you login is had Started the GST.


How to post SR with 6% for issue document after 01 Jun 2018?

There are 2 solutions

Solution 1

Add TaxRate Field Script/Code

...

 lDtl.FindField('TAX').AsString     := 'SR';
 lDtl.FindField('TAXRATE').AsString := '6%';

...

Solution 2

Create New Tax SR tax code with 6%(eg SR6) in SQL Accounting

Is there any changes in Linking for the SST?

  • GST to No SST
May follow Non GST
  • GST to SST
There is no much changes. Just treat is like normal GST only different is the Tax Code
Tax Code Description Rate Required Tariff Code
ST5 Sales Tax 5% Y
ST Sales Tax 10% Y
SV Service Tax 6% (8% From 01 Mar 2024) Y
STE Sales Tax Exempted N
New Field added
Field Name Field Type Field Size Mandatory Default Value Remarks
TARIFF String 20 C
  • Tariff or HS Code
  • Mandatory - If posting to
- GL Payment Voucher & GL Official Receipt
- Customer Invoice, Debit Note & Credit Note
- Supplier Invoice, Debit Note & Credit Note
- All Sales & Purchase Module without Item Code
  • No Required - If posting Sales & Purchase with Item Code

How to SQL Accounting handle if had Discount/Cash Voucher?

You can treat the Discount/Cash Voucher as Part of item row but is in Negative UnitPrice
SQLLink-03.jpg


Begin 11 Oct 2019 the Company ROC/BRN will increase to 12 digit characters. Any changes in Linking?

Yes if user is upgrade to Version 875.782 & above.
Table Affected
- SY_PROFILE => File | Company Profile
- AR_CUSTOMER => Customer | Maintain Customer
- AP_SUPPLIER => Supplier | Maintain Supplier
Field Changes
- Original Name REGISTERNO change to BRN
- New Field BRN2
- New Field Size for both Fields 30

SSM Announcement or PDF


Is there any changes in Linking for the E-Invoicing?

New Field Added
Available in Version 5.2024.983.848 & above

Maintain Customer & Maintain Supplier
Field Name Field Type Field Size Remarks
TIN String 14 Company Tax Register Number
IDTYPE Integer
  • 0 - Empty
  • 1 - Reg No
  • 2 - NRIC
  • 3 - Passport
  • 4 - ARMY
IDNO String 20 This field will depend on the ID Type selected
TOURISMNO String 17 This is only applicable to tourism tax registrant, which may consist of hotel operators and online travel operators
SIC String 10
SUBMISSIONTYPE Integer 0
  • Available in Version 5.2024.992.854 & above
  • 0 = None
  • 17 = E-Invoice/Self Billing(for Maintain Supplier)
  • 18 = Consolidate
IRBM_CLASSIFICATION String 3
  • Maintain Supplier Only
  • Category of products or services being billed as a result of a commercial transaction. More than 1 classification codes can be added for goods / services included in the e-Invoice.
  • https://sdk.myinvois.hasil.gov.my/codes/classification-codes/
  • Available in Version 5.2024.990.852 & above
POSTCODE String 10 The identifier for an addressable group of properties according to the relevant postal service
CITY String 50 The common name of the city, town or village, where the Customer/Supplier address is located.
STATE String 50
COUNTRY String 2
  • A code that identifies the country.
  • May refer to Country List Here
Maintain Stock Item
Field Name Field Type Field Size Remarks
IRBM_CLASSIFICATION String 3

Available in Version 5.2024.990.852 & above

Sales & Purchase Data Entry - Header
Field Name Field Type Field Size Remarks
EIVDATETIME DateTime 0
  • E-Invoicing Submitted Date time in the UTC timezone
  • eg 19/07/2024 7:17:43 AM
IRBM_UUID String 26
  • E-Invoicing Submited respond UUID
  • eg FSEP22A4Y5BFGGWAX95N943811
IRBM_LONGID String 50
  • E-Invoicing Submited respond Long UUID
  • eg TM9AFNQ0M76T07BTX95NX43J10CzvSE31712365482
IRBM_STATUS Integer 0
POSTCODE String 10 The identifier for an addressable group of properties according to the relevant postal service
CITY String 50 The common name of the city, town or village, where the Customer/Supplier address is located.
STATE String 50
COUNTRY String 2
  • A code that identifies the country.
  • May refer to Country List Here
DPOSTCODE String 10 The identifier for an addressable group of properties according to the relevant postal service
DCITY String 50 The common name of the city, town or village, where the Customer/Supplier address is located.
DSTATE String 50
DCOUNTRY String 2
  • A code that identifies the country.
  • May refer to Country List Here
SALESTAXNO String 25
SERVICETAXNO String 25
TIN String 14 Company Tax Register Number
IDTYPE Integer
  • 0 - Empty
  • 1 - Reg No
  • 2 - NRIC
  • 3 - Passport
  • 4 - ARMY
IDNO String 20 This field will depend on the ID Type selected
TOURISMNO String 17 This is only applicable to tourism tax registrant, which may consist of hotel operators and online travel operators
SIC String 10
INCOTERMS String 20 A set of international trade rules that define the responsibilities of buyers and suppliers.The input of special characters is not allowed.
SUBMISSIONTYPE Integer 0
  • Available in Version 5.2024.992.854 & above
  • 0 = None
  • 17 = E-Invoice/Self Billing(for Purchase Only)
  • 18 = Consolidate
Sales & Purchase Data Entry - Detail
Field Name Field Type Field Size Remarks
TAXEXEMPTIONREASON String 300
  • Available in Version 5.2024.992.854 & above
  • For Tax Exemption Code use only
IRBM_CLASSIFICATION String 3

Available in Version 5.2024.990.852 & above

Maintain Currency
Field Name Field Type Field Size Remarks
ISOCODE String 3

Change to Boolean Type

Begin from SQL Acc Version 5.2024.1007.860 & above the follow field type will change to Boolean (True/False)
SQL Accounting 860
FieldName True Value False Value
TaxInclusive 1 0
SerialNumber T F
Cancelled T F
Cancelled 1 0
AddPDCToCRLimit T F
Transferable T F
IsActive T F
IsActive 1 0
NonRefundable 1 0
AllowExceedCreditLimit T F
Printable T F
StockControl T F
IsBase 1 0
IsDefault 1 0
IsDefault T F
Programming Before After
C#

lDetail.FindField("TaxInclusive").value = 1;
lDetail.FindField("Printable").AsString = "T";

lDetail.FindField("TaxInclusive").value = True;
lDetail.FindField("Printable").value = True;

PHP

$lDetail->FindField("TaxInclusive")->value = 0;
$lDetail->FindField("Printable")->AsString = "T";

$lDetail->FindField("TaxInclusive")->value = False;
$lDetail->FindField("Printable")->value = True;

Python

lDetail.FindField("TaxInclusive").value = 1
lDetail.FindField("Printable").AsString = "T"

lDetail.FindField("TaxInclusive").value = True
lDetail.FindField("Printable").value = True

Query SQL

SELECT CODE, DESCRIPTION FROM AGENT
WHERE ISACTIVE='T'

SELECT CODE, DESCRIPTION FROM AGENT
WHERE ISACTIVE

Query SQL

SELECT CODE, DESCRIPTION FROM AGENT
WHERE ISACTIVE='F'

SELECT CODE, DESCRIPTION FROM AGENT
WHERE NOT ISACTIVE

  • Need assistance? May email to support@sql.com.my