Project

General

Profile

Specification » History » Revision 72

Revision 71 (Soh Keong, 10/29/2024 10:58 AM) → Revision 72/73 (Soh Keong, 11/11/2024 03:15 PM)

{{toc}} 

 h1. Specification 

 h1. Programming Guide 

 h2. Jar version  

 |_. version |_. Description                                  | 
 | 1.0         | Init                                           | 
 | 1.1         | Response Object --> Object List                | 
 | 1.3         | Append all error with pipe symbol              | 
 | 1.4         | Added connection rollback                      | 
 | 1.5         | Added more than 1 Entity                       | 
 | 1.7         | Added eCosway's state name                     | 

 h2. Jar File Download 

 "Jar":/redmine/attachments/816 "Jar":/redmine/attachments/815 
 "Lib":/redmine/attachments/803 
 "Properties": 

 h3. Classes 

 * *my.aisino.einvoice.bean*  
 * *my.aisino.einvoice.bean.transaction*  
 * *my.aisino.einvoice.constant*  
 * *my.aisino.einvoice.service*  
 * *my.aisino.einvoice.util*  

 h3. properties file 

 * *service.properties* 

 # *merchant.id*         - 

 h2. Aisino Service 

 <pre> 
 my.aisino.einvoice.service.TransactionService service = new my.aisino.einvoice.service.TransactionService(); 
 </pre> 

 h3. submitEInvoice 

 <pre> 
 InvoiceSubmissionResponseBean responseBean = service.submitEInvoice(Connection conn, List<InvoiceSubmissionRequestBean> beanList); 
 InvoiceSubmissionResponseBean responseBean = service.submitEInvoice(Connection conn, List<InvoiceSubmissionRequestBean> beanList, boolean insertTable); 
 </pre> 

 <pre> 
 CommonConstant = my.aisino.einvoice.constant.CommonConstant 
 </pre> 

 # *conn*             - Database connection. 
 # *beanList*         - InvoiceSubmissionRequestBean List. 

 > * *docCode*           - From Keys (TAX_DOC_SUMMARY) 
 > * *issueMode*         - CommonConstant.ISSUE_MODE_EINVOICE_* (YES=e-invoice; NO=consolidate) 
 > * *orderId* 
 > * *orderDate*         - Format(yyyy-MM-dd) 
 > * *orderTime*         - Format(HH:mm:ssZ) 
 > * *originalOrderId* - For Credit Note/ Debit Note/ Refund Note 
 > * *orderTypeCode*     - CommonConstant.INVOICE_TYPE_CODE_* (https://sdk.myinvois.hasil.gov.my/codes/e-invoice-types/) 
 > * *currencyCode*      - CommonConstant.CURRENCY_CODE_* (https://sdk.myinvois.hasil.gov.my/codes/currencies/) 
 > * *totalExcludingTax*  
 > * *totalIncludingTax*  
 > * *totalPayableAmount*  
 > * *businessSystem*    - CommonConstant.BUSINESS_SYSTEM_* 
 > * *entity*            - CommonConstant.ENTITY_* 
 > * *exchangeRate*      - (Optional) 
 > * *k1*                - (Optional) 
 > * *incoterms*         - (Optional) 
 > * *ftaInformation*    - (Optional) 
 > * *k2*                - (Optional) 

 NON-POSTING 
 > * *storeCode* 
 -> * *shopperId*- (Moved to BuyerBean) 

 > * *supplierBean* : For Full Bean [new TaxDocDao().getSupplierBySupplierCode(Connection, PropBean.getCoswaySupplierCode())] 
 > ** *addressBean*  
 > *** *country*    - CommonConstant.COUNTRY_* (https://sdk.myinvois.hasil.gov.my/codes/countries/) 
 > *** *state*      - CommonConstant.STATE_* (https://sdk.myinvois.hasil.gov.my/codes/state-codes/) 
 > *** *city*       - Max length : 50 
 > *** *postal*     - Max length : 50 
 > *** *address1* - Max length : 150 
 > *** *address2* - Max length : 150 
 > *** *address3* - Max length : 150 
 > ** *contactNumber* - Max length : 20 
 > ** *name*            - Max length : 300 
 > ** *msic*      - https://sdk.myinvois.hasil.gov.my/codes/msic-codes/  
 > ** *registrationBean* 
 > *** *tin*       
 > *** *regSchemeId*    - CommonConstant.ID_TYPE_* 
 > *** *regNo*  
 > *** *sst*        (Optional) 

 > * *buyerBean*  
 > ** *buyerCode* - From keys (TAX_DOC_BUYER) 
 > ** *shopperId* 
 > ** *addressBean*  
 > *** *country*    - CommonConstant.COUNTRY_* (https://sdk.myinvois.hasil.gov.my/codes/countries/) 
 > *** *state*      - CommonConstant.STATE_* (https://sdk.myinvois.hasil.gov.my/codes/state-codes/) 
 > *** *city*       - Max length : 50 
 > *** *address1* - Max length : 150 
 > *** *address2* - Max length : 150 
 > *** *address3* - Max length : 150 
 > ** *contactNumber* - Max length : 20 
 > ** *name*            - Max length : 300 
 > ** *email*          
 > ** *registrationBean* 
 > *** *tin*       
 > *** *regSchemeId*    - CommonConstant.ID_TYPE_* 
 > *** *regNo*  
 > *** *sst*        (Optional) 

 > * *productList* 
 > ** *docLineCode*              - From Keys (TAX_DOC_DETAIL) 
 > ** *productName*              - Max length : 300 
 > ** *productCode*              - Max length :    18 
 > ** *measurement* (Optional) - CommonConstant.MEASUREMENT_* (https://sdk.myinvois.hasil.gov.my/codes/unit-types/) 
 > ** *quantity*      (Optional)  
 > ** *totalExcludingTax* 
 > ** *unitPrice* 
 > ** *subtotal* 
 > ** *totalDiscountAmount*     - (Optional) 
 > ** *classificationList*  
 > *** *code*                   - CommonConstant.CLASSIFICATION_CODE_* (https://sdk.myinvois.hasil.gov.my/codes/classification-codes/) 
 > *** *group*                  - CommonConstant.CLASSIFICATION_GROUP_*  
 > ** *taxTotalBean* 
 > *** *totalTaxAmount* 
 > *** *taxSubTotalList* 
 > **** *taxType*            - CommonConstant.TAX_TYPE_* (https://sdk.myinvois.hasil.gov.my/codes/tax-types/) 
 > **** *percent*            (Optional) 
 > **** *perUnitAmount*      (Optional) 
 > **** *measurement*        (Optional) - CommonConstant.MEASUREMENT_* (https://sdk.myinvois.hasil.gov.my/codes/unit-types/) 
 > **** *quantity*           (Optional) 
 > **** *netAmount*          (Optional) 
 > **** *tax* 

 > * *taxTotalBean* 
 > ** *totalTaxAmount* 
 > ** *taxSubTotalList* 
 > *** *taxType*         - CommonConstant.TAX_TYPE_* (https://sdk.myinvois.hasil.gov.my/codes/tax-types/) 
 > *** *percent*         - Optional 
 > *** *perUnitAmount* - Optional 
 > *** *measurement*     - Optional 
 > *** *quantity*        - Optional 
 > *** *netAmount*       - Optional 
 > *** *tax*             -  

   3. *responseBean* 

 > * *httpResponseCode* 
 > * *returnCode* 
 > * *returnMsg* 

 > * *responseBeanList* 
 > ** *submissionUid* 
 > ** *acceptedDocumentList* 
 > *** *orderId* 
 > *** *uuid* 
 > ** *rejectedDocumentList* 
 > *** *orderId* 
 > *** *errorList* 
 > **** *code* 
 > **** *message* 

 h3. queryEInvoice 

 <pre> 
 InvoiceInquiryResponseBean responseBean = service.queryEInvoice(InvoiceInquiryRequestBean bean); 
 </pre> 

 # *conn*             - Database connection. 
 # *bean*             - Object. 
 > * *documentNum* 
 > * *submissionUid* 
 > * *invoiceUuid* 
 > * *invoiceTypeCode* 
 > * *buyerTin* 
 > * *buyerName* 
 > * *supplierTin* 
 > * *supplierName* 
 > * *totalAmountFrom* 
 > * *totalAmountTo* 
 > * *invoiceStatus* 
 > * *confirmStatusCode* 
 > * *issuedDateFrom* 
 > * *issuedDateTo* 
 > * *pageNo* (Mandatory) 
 > * *pageSize* (Mandatory) 

   3. *responseBean* 

 > * *page* 
 > ** *pageCount* 
 > ** *pageNo* 
 > ** *pageSize* 
 > ** *totalSize* 

 > * *recordList* 
 > ** *buyerTin* 
 > ** *buyerName* 
 > ** *confirmStatusCode* 
 > ** *currency* 
 > ** *description* 
 > ** *documentNum* 
 > ** *excludingTaxAmount* 
 > ** *includingTaxAmount* 
 > ** *invoiceId* 
 > ** *invoiceStatus* 
 > ** *invoiceTypeCode* 
 > ** *invoiceUuid* 
 > ** *issuedDate* 
 > ** *nowTime* 
 > ** *operationDate* 
 > ** *operator* 
 > ** *pageIndex* 
 > ** *pageNo* 
 > ** *pageSize* 
 > ** *supplierTin* 
 > ** *supplierName* 
 > ** *submissionUid* 
 > ** *transactionId* 

 h3. cancelEInvoice 

 <pre> 
 InvoiceCancelResponseBean responseBean = service.cancelEInvoice(InvoiceCancelRequestBean bean); 
 </pre> 

 # *conn*             - Database connection. 
 # *bean*             - Object. 
 > * *cancelCode*     - CommonConstant.CANCEL_CODE_*  
 > * *cancelReason* - (Mandatory for CommonConstant.CANCEL_CODE_OTHERS)  
 > * *invoiceIds* - List of Integer 

   3. *responseBean* 

 > * *success* - true / false 


 h3. queryTransaction 

 <pre> 
 InvoiceInquiryResponseBean responseBean = service.queryTransaction(TransactionInquiryRequestBean bean); 
 </pre> 

 # *conn*             - Database connection. 
 # *bean*             - Object. 
 > * *invoiceTypeCode* 
 > * *documentNum* 
 > * *supplierTin* 
 > * *businessSystem* 
 > * *buyerTin* 
 > * *buyerName* 
 > * *dateFrom* 
 > * *dateTo* 
 > * *issuedFlag* 
 > * *invoiceUuid* 
 > * *invoiceStatus* 
 > * *confirmStatusCode* 
 > * *pageNo* (Mandatory) 
 > * *pageSize* (Mandatory) 

   3. *responseBean* 

 > * *page* 
 > ** *pageCount* 
 > ** *pageNo* 
 > ** *pageSize* 
 > ** *totalSize* 

 > * *recordList* 
 > ** *businessSystem* 
 > ** *storeCode* 
 > ** *buyerName* 
 > ** *buyerTin* 
 > ** *confirmStatusCode* 
 > ** *createDate* 
 > ** *currency* 
 > ** *documentNum* 
 > ** *invoiceTypeCode* 
 > ** *id* 
 > ** *invoiceUuid* 
 > ** *issuedDate* 
 > ** *issuedFlag* 
 > ** *invoiceStatus* 
 > ** *issuedDate* 
 > ** *issuedFlag* 
 > ** *nowTime* 
 > ** *operationDate* 
 > ** *operator* 
 > ** *pageIndex* 
 > ** *pageNo* 
 > ** *pageSize* 
 > ** *payableAmount* 
 > ** *submissionUid* 
 > ** *subtotal* 
 > ** *supplierId* 
 > ** *supplierName* 
 > ** *supplierTin* 
 > ** *tax* 
 > ** *total* 
 > ** *transactionDate* 
 > ** *invalidReasons* 


 h2. CommonConstant 

 |_. Name                   |_. values                                                                                                       | 
 | INTERFACE_               | LOGIN, INVOICE_ISSUANCE, INVOICE_INQUIRY, INVOICE_CANCEL, INVOICE_PURCHASE_INQUIRY, INVOICE_PURCHASE_REJECT    | 
 | RETURN_CODE_             | SUCCESS, ABNORMAL                                                                                              | 
 | INVOICE_STATUS_          | VALID, INVALID, CANCELLED, SUBMITTED                                                                           | 
 | CONFIRM_STATUS_CODE_     | AWAITING, ACCEPTED, REJECTED                                                                                   | 
 | CANCEL_CODE_             | WRONG_BUYER, WRONG_INVOICE, OTHERS                                                                             | 
 | INVOICE_TYPE_CODE_       | INVOICE, CREDIT_NOTE, DEBIT_NOTE, REFUND_NOTE, SELF_BILLED_INVOICE, SELF_BILLED_CREDIT_NOTE, SELF_BILLED_DEBIT_NOTE, SELF_BILLED_REFUND_NOTE    | 
 | TAX_DOC_STATUS_          | PENDING, VERIFIED, SUCCESS, FAIL, REJECT, DELETED                                                              | 
 | CURRENCY_CODE_           | MALAYSIA_RINGGIT                                                                                               | 
 | COUNTRY_                 | MALAYSIA, SINGAPORE, BRUNEI_DARUSSALAM, THAILAND, INDONESIA, TAIWAN                                            | 
 | COUNTRY_CODE_            | MALAYSIA, SINGAPORE, BRUNEI_DARUSSALAM, THAILAND, INDONESIA, TAIWAN                                            | 
 | STATE_                   | ALL, JOHOR, KEDAH, KELANTAN, MELAKA, NEGERI_SEMBILAN, PAHANG, PULAU_PENANG, PERAK, PERLIS, SELANGOR, TERRENGANU, SABAH, SARAWAK, WILAYAH_PERSEKUTUAN_KUALA_LUMPUR, WILAYAH_PERSEKUTUAN_LABUAN, WILAYAH_PERSEKUTUAN_PUTRAJAYA, NOT_APPLICABLE                      | 
 | MEASUREMENT_             | METRE, CENTIMETRE, KILOMETRE, LITRE, KILOGRAM, GRAM                                                            | 
 | CLASSIFICATION_REF_NO_ | CONSOLIDATED, OTHERS, VOUCHER_GIFT_CARD                                                                        | 
 | CLASSIFICATION_CODE_     | CONSOLIDATED, ECOMMERCE_TO_BUYER, ECOMMERCE_SELF_BILLED_TO_SELLER, OTHERS, CLASSIFICATION_CODE_SELF_BILLED_OTHERS, CLASSIFICATION_CODE_SELF_BILLED_MONETARY_PAYMENT_TO_AGENTS, CLASSIFICATION_CODE_VOUCHER_GIFT_CARD                                         | 
 | CLASSIFICATION_GROUP_    | CLASS, PRODUCT_TARIFF_CODE                                                                                     | 
 | TAX_TYPE_                | SALES, SERVICE, TOURISM, HIGH_VALUE_GOODS, LOW_VALUE_GOODS, NOT_APPLICABLE, TAX_EXEMPTION                      | 
 | ID_TYPE_                 | BRN, NRIC, PASSPORT, ARMY                                                                                      | 
 | TIN_                     | GENERAL_PUBLIC, FOREIGN_BUYER, FOREIGN_SUPPLIER, BUYER                                                         | 
 | ENTITY_                  | COSWAY, ECOSWAY, RANK_DISTRIBUTOR, KIMIA_SUCHI, KIMIA_SUCHI_MARKETING, VITAL_DEGREE                            | 
 |                          | EINVOICE_REQUEST_IND, EXCLUDING_POSTING                                                                        | 
 | BUSINESS_SYSTEM_         | SALES, BONUS, HFEE                                                                                             | 
 | ISSUE_MODE_EINVOICE_     | YES, NO                                                                                                        | 
 | _DEFAULT                 | BUYER_NAME_DEFAULT, MANDATORY_VALUES_DEFAULT                                                                   |