FAQ Overview

Retail POS setting manual

This entry is in revision and can not be displayed.

Author: Robi
Last update: 2018-04-20 07:30


Core C-Sharp

Process After Gathering Customization Requirements

Attached is the current process being followed by the Help Desk team after gathering the initial requirements from the client. 

Author: Robi
Last update: 2025-06-18 16:32


Retail POS Change Log

4.4.17.0

Mantis #60451

  • Added "Approval Date" setting on Header Details tab on Settings.
  • Modified checker if the approval date has changed.

Mantis #60027

  • Added new setting "Show Zero Priced Items" to display item with price of 0 in Search Product form even if "Allow Zero Price" setting is set to True.
  • Modified conditions when switching to wholesale mode. Checkers will now compare the purchaseprice to customer's pricingtype.
  • Added new warning message to inform user that a zero priced product was selected.
  • Fixed multiple display of warning messages in wholesale form.
  • Added details to result form when checking for invalid price during customer switch.
  • Removed prices in result form.
  • Fixed incorrect message when switching to customer mode.

Mantis #60679

  • Added methods both for local testing and actual process in requesting member details and sending member point transaction data to web API.
  • Added API method when voiding transactions with member point transaction.
  • Fixed issue where member details reset after error message while saving transaction.
  • Added test output when voiding transaction with member details.
  • Reduced timeout value when requesting thru API to avoid longer loading times.
  • Fixed issue where member was incompletely removed if it failed in validation while saving transaction.

Mantis #60943

  • POS will now process (the queries for) the current transaction before processing the saving of member points transaction data to remote server.
  • Fixed multiple display of warning messages in wholesale form.

4.4.16.2

Mantis #60698

  • Added new setting "Main Form Image Strip Directory" in POS Config to be used as directory of target image to be displayed in Main Form.
  • Revised saving new setting conditions. POS can now accommodate longer path directories.
  • Added separate option to distinguish file to path directories.

v4.4.16.1

Mantis #60490

  • Fixed Robinsons accreditation based on RLC requirements checklist.

Mantis #61199

  • Removed the telephone number displayed on the UI of Main Form.
  • Fixed sales format for Farmers accreditation.
  • Fixed local generation of text file for FTP sending.

v4.4.16.0

Mantis #57364

  • Added return values when saving transaction to determine member transaction results.
  • Added a connection check before display warning alert for member transactions.
  • Added and used a list of saving transactions result for saving member transactions.
  • Fixed issue where the transaction was not considered done when retried.
  • Changed Continue button to Close.
  • Swapped Close and Retry buttons.

Mantis #60216

  • POS now supports “OR” and “SI” terms on product description on refund mode.

Mantis #60213

  • Fixed the issue where POS does not restart sometimes after closing the application. 

4.4.15.0

Mantis #59415

  • Added a breakdown for: VAT, VAT Exempt, Zero Rated sales/return/subtotal in CSV printing.
  • Added 12% VAT sales/return/subtotal in CSV printing.

Mantis #59414

  • Fixed issue on reprinting old transaction with novelty item where its value is not included in the VAT breakdown.
  • Added a function that sets if the retail product is vatable based on the transaction.

Mantis #59370

  • Changed ‘BIR Reports’ button text and form title to 'Reports'.
  • POS will show BIR button is the user is an admin or if “Terminal Accountability’ is enabled.
  • POS will show Z-read with Date Span Report button if user is an admin or if “Terminal Accountability’ is enabled.
  • Changed the automatic select to the first button which is either Summary Report or Z-Read with Date Span Report depending on the logged in user.
  • Added XZ Print permission check in Z-Read with Date Span Report.
  • Fixed incorrect End OR# value in date range reading and when XZ Design Unite setting is set to True.

Mantis #57173

  • Changed the reference for VAT/NONVAT header in readings to the last date included in date range.
  • Fixed VAT headers in readings if date is by weekly and monthly.

Mantis #57915

  • Added “Reset Counter” setting in POS Config. Its value is editable in F12 Menu > Settings by superadmin only.
  • Added Reset Counter display in readings.
  • Removed "Terminal" word in reading counter field to fit both labels.
  • Made “Reset Counter” to be read only to avoid unnecessary values.
  • Set Reset Counter default value to 0.

4.4.14.5

Mantis #59537

  • Fixed checking of connection in main branch to avoid timeout issue when transacting or voiding transaction with payment of member points.  

4.4.14.4

Mantis #59666

  • Renamed “Ignored Transactions” folder to “Failed Transactions” for transactions were failed to be saved upon payment.
  • Remove the Result Form that shows failed transactions directory.
  • Renamed the xps file directory to “_failedtransactions”
  • Altered the warnings for better information.  

4.4.14.3

Mantis #59893

  • Users can now use the Enter key in Wholesale mode if the “Disable Wholesale Price Editing” is set to True.  

4.4.14.2

Mantis #59498

  • Fixed ‘approval date’ data type based on version 4.5 of database.
  • Added checker for datatype column.
  • Updated the version of posdbversion.
  • Added a checker for ‘approval date’ value if it is in datetime format.  

4.4.14.1

Mantis #58879

  • Fixed the “VAT REG / NON VAT REG” character duplication when generating receipt for clients that updated their PTU through client base.

4.4.14.0

Mantis #57597

  • Added Excel sales report on superadmin form.
  • Modified Print E-journal form to support printing of CSV with date and time span.
  • Added a format for ‘per transaction’ in CSV printing.
  • Added Z-read Excel format.
  • Added date and time format for Z-read report.
  • Added a column for original price and discounted price on ‘per transaction’.
  • Adjusted header names and added time on ‘per transaction’ Excel generation.
  • Added amount multiplier (original amount, discounted amount) per product on transaction.
  • Fixed the date displayed on ‘daily reading’ Excel.
  • Adjusted POS Vat History on sales breakdown.
  • Get cutoff by date only to prevent skipping of dates.
  • Less GC excess on gift cheque sales for daily Z-read Excel.
  • Fixed wrong summation of PWD and senior discount on ‘per transaction’.
  • Less GC excess on gift cheque amount.

Mantis #57718

  • Removed Terminal Accountability in inventory form.
  • Removed the F4 shortcut key for Terminal Accountability in inventory form.
  • Removed Terminal Accountability on Other Readings.

Mantis #57364

  • Added informative text to "Invalid Price!" warnings.
  • Added text saying to complete the payment.
  • Added information to user permission denied warning text. Currently, the warning only displays lack of login permission. The added text advises user to contact admin to fix permissions.
  • Added text saying to complete payment even on offline mode.
  • Used recently added feature to show permission
  • Used recently added feature to show permission requested on permission code form. Modified to hide POSD differences in permission descriptions.
  • Change the button from Close to OK. Added an alert overload to allow text and button types only.Shortened the informative text on Invalid Purchase Price warning.
  • Excluded superadmin from being shown in label when permission is needed.
  • Fixed button alignments to adjust as button/window resizes.
  • Cleaned up the alert messages on:
    • POS login and Salesman login when user is denied
    • “Avoid Invalid Purchase Price” alert
    • Remaining payment warning
  • Added a feature to prevent wholesale/retail switch if there are invalid prices.
    • when going to wholesale mode with zero wholesale price
    • when “Avoid Invalid Purchase Price” is set to True and going to retail with products that have product cost greater than selling price
    • These cases only happen when Allow Zero Price settings is set to True.
  • Moved the textbox of invalid products list to the top for the added feature of preventing wholesale switch.
  • Added permission description on permission code.

Mantis #53438

  • Added a Test Printout button to test receipt printout on F12 Menu > Settings.
  • Fixed error in printing by checking if printer is busy.
  • Changed Test Printout to be available only when there is no current transaction.
  • Added a few test products in the test printout.
  • Fixed the wrong computation when POS is Non VAT.
  • Set ‘0’ as value for TRAN#, SI#, and REF#. 

v4.4.13.2

Mantis #59132

  • Added Enable Customer Debt in POS Config. The default value is ‘True’.  

v4.4.13.1

Mantis #57625

  • Added a function that supports date span readings with True XZ Design Unite value.
  • Fixed issue regarding unconsolidated reports.
  • Date span POSD reports now ignores False XZ Design Unite value.

v4.4.13.0

Mantis #56269

  • Added old data support for most of Data Checker functions.
  • Added generation of Excel report in checking of old data.
  • Changed confirmation message in First sales vs Effective date to avoid confusion.

Mantis #57032

  • Fixed issue in void transaction if branch id is 3 digits.
  • Fixed Terminal Accountability report to support old data.

Mantis #57086

  • Added detailed logs for every o-function steps.
  • Fixed scenario where current database name has special characters.
  • Updated o-function.txt to update ‘sqlport’ value to possettings.
  • Added user inputs in .S logs.

Mantis #56991

  • Added permission checking and request when ignoring unsaved transactions.
  • POS will now print receipts only when entering tender is a success.
  • Changed process from “print receipt then save transaction” to “save transaction then print receipt”.
  • Added printing of xps file for ignored transactions.
  • Added folder checking for ignored transactions.
  • Added checking of xps file if it is open, and a prompt to alert user.
  • Added a prompt to inform user that the transaction was saved to folder.
  • Added a loading form when generating failed transaction summary.
  • Added “Permission Needed” label when requesting on Permission Code form.
  • Added a function that prints failed transactions to summarize and print in xps file.
  • Changed the name from “OR#” to “REF#” on failed transaction summary.
  • Simplify folder path displayed after generating xps file.
  • Set flexible font size on Permission Code form to handle different string length.

Mantis #57172

  • Added GC excess on Collection when retrieving transaction with GC excess amount.
  • Disabled GC excess fix during startup.
  • Fixed issues when generating data summary during startup.
  • Fixed issue with cutoff data.
  • Fixed incorrect GC excess retrieval.
  • Fixed date range reading discrepancies.
  • Fixed X-reading being regenerated even if it is an older reading date.
  • Fixed Zero Rated sales and returns computation in all reading reports.
  • Fixed discrepancy of Collection breakdown in readings.
  • Fixed issue of duplication of other tenders in reading with date range.
  • Fixed incorrect GC excess value when reprinting OR from old data.

v4.4.12.0

Mantis #52897

  • Fixed “Item Void Count” output in readings in which the quantity is not reflecting properly on the field before.

Mantis #55849

  • Moved Gift Cheque payment fix from superadmin form to POS startup to make the fix automatic instead.
  • Added checker to avoid repetitive unnecessary data fix process.

Mantis #55895

  • Added new superadmin tool to change POS vat mode.
  • Added a prompt to data fix existing sales data.
  • Disable IsVat checkbox in Settings, so POS vat mode can only be changed through superadmin form.
  • Adjusted Change Vat button properties.
  • Added limit for Change Vat function if there is old data in system.
  • Removed date to filter in Change Vat function since it is not supported.

Mantis #48197

  • Added Consolidated report checkbox in E-journal form to process Z-reading report in either consolidated or per day format.
  • Fixed issue on BIR Z-reading report with old data.
  • Fixed issue if same xps filename is open when processing weekly Z-read report.
  • Minor adjustments in E-journal form UI.

Mantis #36361

  • Added new superadmin tool “O Function” to automate the whole O function process from importing old database to generating appropriate sales data and reading for new database.
  • Fixed issue when copying POS settings value from old DB.
  • Added logs for every failed processes.
  • Update branch table values to new branchid.
  • Updated ‘branchid’ and ‘terminalno’ values in settings.txt
  • Limited ‘branchid’ entry to 3 digits and ‘terminalno’ entry to 2 digits.
  • Limited old database name entry to allow lowercase alphanumeric and underscore '_' characters only.
  • Fixed issues where process still continues even if there are errors.
  • Fixed issue where reading date values in readings were incorrect.
  • Disabled the terminal number field.
  • Fixed process of copying data to old DB.

Mantis #50599

  • Added superadmin F9 function “Update Scripts” to retrieve available Superadmin and Datachecker scripts from clientbase.
  • Changed message if failed to connect to clientbase or has incorrect config values to avoid confusion.

Mantis #51905

  • Added a function that sends PTU Info from clientbase to API.
  • After checking for updates and updating PTU details, POS will send the PTU info to API.
  • Fixed issue list, grammar, and process of sending info.
  • After successfully getting the new POS version for update, POS will send this info to API.

Mantis #49596

  • Aligned getting data of reports like Terminal Reading, Cashier Reading to getting the summary data, so the values should tally with raw data.
  • Fixed issue on Senior sales where 1 character in senior name is not included on getting data of reports.

v4.4.11.17

Mantis #48720

  • Sync only if incorrect time zone or date and time.
  • Changed the time server from Google to Windows.
  • Added a backup time server, Cloudflare.
  • Added local and internet time checker.
  • Added a checker if there is no internet connection.
  • Additional logs with info if failed to sync time.

v4.4.11.16

Mantis #50404

  • Added version in Script filenames to check if scripts are up to date.
  • Added success log in Check PTU process.
  • Updated Delete Transactions script to match latest version.
  • Added logs for scripts used.
  • Added Gift Cheque Payment POSD in delete transactions script.
  • Transferred Update PTU info logs to same location.
  • POS will create a Scripts folder, if not yet existing, to avoid errors.

v4.4.11.15

Mantis #53493

  • POS now allows any user that has login permission to go past the POS Days Alert warning.

Mantis #55495

  • Removed unnecessary processes in Superadmin and Data Checker forms.
  • Removed delete_transactions.txt in build output.

Mantis #55295

  • POS now logs in T log any action done in superadmin form.
  • Added superadmin form functions to S log.

Mantis #50404

  • Added scripts that initialize and delete data for new feature “Delete POS Data” in superadmin form.
  • Altered delete data script to include delete Product Discount and Promo Qty.
  • Fixed Change Terminal # issue.
  • Restored function that export scripts into an encrypted txt file so users can modify script files without updating POS.

v4.4.11.14

Mantis #56030

  • Fixed the excessive new line on product description list on receipt.
  • Fixed the size of Amount Due.

v4.4.11.13

Mantis #53893

  • Changed the title of prompt on Gift Cheque payment to “Confirm Box”.

v4.4.11.12

Mantis #55735

  • Fixed issue on previous version where “System time has changed” when date is ahead.

v4.4.11.11

Mantis #55735

  • Fixed issue on json file where it does not update when automatic z-reading is done from a future date.
  • Added a trigger to display “System time has changed” when date is reverted back to original.

v4.4.11.10

Mantis #54798

  • Added final provider logo design for AltPOS UI theme.
  • Changed confirmation box grammar when clearing transaction F12->F1 with “Confirm Box” as the form title.
  • Changed “OR#” to “SI#” on Refund.
  • Added options for “Print Product Memo” setting to be displayed. The options are Disable, Product Memo with SI, Product Memo without SI, and Reference No.
  • Fixed OR number view on Refund.

Mantis #53651

  • Fixed issue where POS cannot recognize default printer.

v4.4.11.9

Mantis #51506

  • Fixed the position of Amount Due on Gift Check transaction.
  • Fixed unnecessary space when there are special cases.
  • Fixed double space issue when there are Chinese characters.

v4.4.11.8

Mantis #54652

  • Adjusted feature controls size and location for AltPOS UI.
  • Allowed AltPOS Client Logo setting to be empty to disable display on Main Form.
  • Set the Business Name to display as alternative if there is no client logo.
  • Transaction mode, retail or wholesale, and pricing type depend if transaction has customer or none.
  • Set to refresh AltPOS details only when the UI theme is AltPOS.

v4.4.11.7

Mantis #54652

  • Added a new User Interface theme “AltPOS”.
  • Adjusted the necessary forms for them to be properly displayed accordingly to the UI theme.
  • Adjusted the buttons on Menu form.
  • Fixed the Other Info panel.
  • Added lighter color palette as default.
  • Fixed issue that occurs when clicking the POS Config grid.
  • Activate Price level on Other Info panel for AltPOS.
  • Adjusted the shade of background to lighter cream.
  • Changed Total, Tendered, and Change to a darker shade of color.
  • Added a different image on company copyright details and on client logo.
  • Changed background to darker gray.
  • Changed some button texts when AltPOS UI is enabled.
  • Added Other Pricing Type base on list.
  • Added switching of POS UI when PTU is detected.
  • Added new setting “AltPOS Client Logo” that lets users to add/change the client logo via specified file path.
  • Added specific checker for Accreditation before checking of PTU in order to switch to AltPOS before Login form shows.
  • Added validation for image logo specified on “AltPOS Client Logo” setting.
  • Modified the element that removes multiple “space” on Accreditation value.

v4.4.11.6

Mantis #54798

  • Added settings that will display Refund OR.
  • Fixed issue on getting sales memo from a saved transaction for reprinting printout.
  • Added reference number on refunded item if product memo is disabled.
  • Fixed missing product memo.

v4.4.11.5

Mantis #54094

  • Amended the printout for BIR Reports (Z-read with date range) to show correct tax values.
  • Fixed issue where Monthly Reports could not be generated.
  • Fixed issue where total quantity is incorrect in printout.
  • Fixed issue where only one cashier is show in printout.
  • Fixed issue where Senior, PWD sales, VAT Zero, VAT Exempt, Mobile Payment sales were incorrect in printout.
  • Fixed issue where only one printout was generated for Monthly Reports.
  • Fixed issue where mobile payments were not properly summarized per cashier.
  • Fixed issue where VAT Exempt, VAT Zero, Senior, and PWD amounts were still not summarized correctly.
  • Fixed issue where summary did not tally with cashier breakdowns.
  • Fixed issue where Senior and PWD returns do not show.
  • Added old data functionality.
  • Fixed blocker issue that prevents POS from generating reports.
  • Fixed issue where certain fields in the total summary were not correct when the old data feature is utilized with new data.
  • Optimized generation of reports with logs on start and end of the generation.   

v4.4.11.4

Mantis #53732

  • Removed duplicate "Amount Due" on receipt.

v4.4.11.3

Mantis #48720

  • POS now gets the internet time to set the system date and time properly.
  • Added new setting "Enable Synchronize System Time" that enables/disables time syncing for QA purpose.
  • Added timezone changer before time syncing.
  • Added log if system time was changed.
  • Added log that indicates if POS is unable to sync with internet time.

v4.4.11.2

Mantis #53557

  • Fixed issue where mobile payments and other tenders/custom payments are not broken down in Z-Read and Terminal Accountability.

v4.4.11.1

Mantis #48719

  • Added confirmation prompt that asks users if they want to clear all transactions first before printing the Z-Reading.
  • Added checking of permission when voiding all transactions.

v4.4.11.0

Mantis #41544

  • Added "Gift Cheque Excess" as product if it doesn't exist in the database.
  • Added "Gift Cheque Excess" on product list if transaction has an excess.
  • Removed the GC Excess product in receipt. Put GC Excess breakdown under product list in receipt.
  • Fixed the computation on reading. GC Excess is now excluded on gross since it is included on sales.
  • Excluded GC Excess in Department Sales and Item Sales.
  • Included GC Excess on Daily Sales considered as other income.
  • Changed the process of getting GC excess when generating readings and when reprinting or refunding.
  • Moved the Fix Gift Cheque payment posd to Superadmin form.
  • Removed GC excess in New Grand Total since it is already on the sales part.
  • On Reprint module, exclude GC Excess product in fetching sales detail to avoid being listed in product list.
  • Fixed duplication issue of value in vat, vat exempt and zero rated:
    • If transaction is Zero Rated, GC excess value will be 0 and will be included in zero rated sale.
    • If transaction is Vatable, GC excess value will be 0 for VAT exempt breakdown.
  • Fixed negative value in VAT Exempt Sales in readings.
  • Fixed Other Readings/Terminal Readings.
  • Removed GC excess quantity in other reports.

v4.4.10.11

Mantis #51829

  • Fixed an issue that occurs when the Logs subfolder is not yet created in POS folder.

v4.4.10.10

Mantis #51829

  • Encrypted T and C log files.
  • Added compressor for unencrypted T and C logs from previous POS versions.

v4.4.10.9

Mantis #52750

  • Added new setting "Enable Permission Adjust Below Wholesale Price" in POS Config. When set to True, this setting asks the user for permission code to adjust product selling price lower than its wholesale price.

v4.4.10.8

Mantis #52223

  • Fixed issue of retyping correct password when user was asked for permission code in trying to adjust the product price lower than the wholesale price.

v4.4.10.7

Mantis #51545

  • Changed the preview in Other Readings from fixed to dynamic.
  • The height of preview now depends on the length of the report in Other Readings.

v4.4.10.5

Mantis #48228

  • Added new BIR Report for Z-Read Report with date span. The date span could be date range, weekly, monthly, or yearly.
  • Updated the setting "Enable Void and Return Reports" to be "Enable Void/Return/ZRead Reports" in POS Config. This setting displays the buttons for void transactions, return transactions, and z-read report with a date span.

v4.4.10.4

Mantis #51856

  • Disabled resyncing of generated actual sales from POSD Generator to prevent overwriting actual data.

v4.4.10.3

Mantis #51392

  • Added new setting "Always Zero Rated" where transactions are always zero-rated and POS is vatable if set to True.
  • Fixed issue where nonvat products and service charge should be VAT Exempt Sale even when the transaction is zero rated.

v4.4.10.2

Mantis #48223

  • Removed superadmin restriction for Void and Return Reports.

v4.4.10.1

Mantis #48223

  • Added new BIR Reports for Void Transactions and Return Transactions.
  • Added a new setting "Enable Void and Return Reports" that displays the "Void Transactions Report" and "Return Transactions Report" buttons if set to True.
  • Added superadmin restriction to view or hide Void and Return Reports.

v4.4.10.0

Mantis #47881

  • Added an option for users to backup their database first before proceeding with the update of software.

v4.4.9.18

Mantis #48460

  • Added logs for editing pos settings in superadmin account. The logs are encrypted and saved as .S file type.

v4.4.9.17

Mantis #51889

  • Updated the computation of 'Valid Until' date to expire until 2025 based on RMC No. 107-2019

v4.4.9.16

Mantis #49810

  • Updated the consolidated sales file of Ever Commonwealth accreditation to be in 1 row only containing the total sales/discounts.

v4.4.9.15

Mantis #49447

  • Fixed issue with Other Readings in F12 Menu where it displays even if AutoXZ is set to 'True'.

v4.4.9.14

Mantis #51272

  • Changes on getting transaction count on hourly files.
  • Included voided transactions on sales files.
  • OR number on daily sales file of Ayala Land will be affected by 'Show Complete OR' setting. Removed zero prefix on OR number.

v4.4.9.13

Mantis #50658

  • Added a new setting "Enable Debt Sale Cashier Copy" that prints the debt sales transaction in receipts if set to True. The default value is True.

v4.4.9.12

Mantis #49810

  • Added consolidated generation of text files for EverCom Mall in Accreditation Reports.

v4.4.9.11

Mantis #49767

  • Set customer name and reference number from required to optional, so users can save the mobile payment even without these details.

v4.4.9.10

Mantis #49764

  • Added Network generation mode for sending accreditation reports on Evercom Mall.

v4.4.9.9

Mantis #46567

  • Added 'Cashalo' payment method under Mobile Payments with 'Coupon' as supporting payment under Custom Payments.
  • POS saves the details if user accidentally exits out of the Cashalo form.
  • Users are allowed to delete downpayment and to refund using Cashalo payment.
  • If user added Cashalo as payment, the printout receipt will display 'Cashalo Downpayment' label and 'Cashalo Coupon' label for coupons instead of 'Cash' label.
  • Fixed an issue where negative Cashalo amounts for refunds wouldn't reflect on the main Payment form.

v4.4.9.7

Mantis #43951

  • POS can now update the PTU and POS Provider information through getting the data from the clientbase.
  • Set the default 'Is Vat' setting value to True if clientbase sends blank value.

v4.4.9.6

Mantis #49446

  • Changed Other Readings to display their posd data by default.
  • Added the H feature but is disabled for now.

v4.4.9.5

Mantis #48211

  • Disabled the reversion of XZ Design Unite to 'True' for LQ-310 print format.

v4.4.9.4

Mantis #48778

  • Changed warning message when POS was not used. "Please enter z-read permission." --> "To skip this warning, please login using user account that have z-read printing permission."

v4.4.9.3

Mantis #48732

  • Fix color of UI in Settings.

v4.4.9.2

Mantis #48427

  • Fix the process of voiding OR# with old data setup.

Mantis #47740

  • Added Vat Zero-Rated sales column on BIR reports.

v4.4.9.1

Mantis #47554

  • Added a new setting "Print Reference No." that prints the reference number of the transaction on the receipt if set to True. The default value is False.

v4.4.9.0

Mantis #37484

  • Added a new feature, Data Checker, for superadmin account where the POS automatically checks its data.
  • Data Checker is a hidden function that can be opened by superadmin only. To access, F12-Menu > Ctrl+Shift+Z
  • This feature checks the following:
    • transaction cutoffs VS sales
    • server VS pos
    • data vs pos vat history
    • invalid settings
    • sales VS readings
    • effectivity date VS first sale
    • old data checker
  • Reports are generated for the data checking results. It is located at /Documents/BackEndDataChecker folder.
  • Added report for trasaction cutoffs, effectivity date vs first sale date.
  • Added new checker for old data (min OR, max OR, new grand total, read count)
  • Added checker for POSD data of the following:
    • transaction cutoffs VS sales
    • data VS pos vat history
    • sales VS readings
    • effective date VS first sale
    • old data checker
  • Actual and POSD data are merged in one function.
  • Added possettings.xml file for reference in additional checking of possettings table.
  • Added new reports for invalid settings.

v4.4.8.23

Mantis #47048

  • POS now checks and displays a prompt if settings.txt does not exist in the file path.
  • POS also checks if the settings.txt was renamed or if the POS is under maintenance by a developer.
  • Put in errorlogs if there is an error when reading the settings.txt file.

v4.4.8.22

Mantis #46711

  • Added auto update feature in Retail POS for easier update of the software.

v4.4.8.21

Mantis #46428

  • Added another filter for getting the transaction count in hourly sales of Ayala Accreditation.

v4.4.8.20

Mantis #45739

  • Fixed the computation of net sales for EverCom accreditation.

v4.4.8.19

Mantis #45720

  • Fixed issue when voiding certain transactions. POS will now base on length of branch id and terminal number.

v4.4.8.18

Mantis #45531

  • Fixed issue in date range in summary report that occurs when user picked the date for a month only.

v4.4.8.17

Mantis #44236

  • Added a "VOIDED RECEIPT!" and "VOIDED BY:" notes on receipt for LQ310 printout, if the transaction was voided.
  • Added an alert message if there is an issue in the system unit's region, and date and time format.

v4.4.8.16

  • Removed payers name in payment form as it is not always returned by WeChat API.

v4.4.8.15

Mantis #43778

  • Added Access Key and Callback URL in WeChat Settings.
  • Alipay now also has Online Pay.
  • Updated the term "WeChat" to "Fucent" in logs.

v4.4.8.13

Mantis #41985

  • Fixed computation of product adjustment.
  • Added new basis of computing transaction discount based on discounted price and original price of product in reprint receipt module.
  • Fixed product/transaction discount when total price of transaction was over 10,000.
  • When an item has positive adjustment, all product discounts will be disabled.
  • POS now disables transaction adjustment if POS has service charge or local tax

v4.4.8.12

Mantis #43796

  • For Evercom accreditation sales file:
    • Changed "3GPS" to "3PGS".
    • Set open fields 1 - 4 to a blank cell with no value.

v4.4.8.11

Mantis #43614

  • POS now checks if user is still active, so inactive/deleted users won't reflect on reports anymore.
  • Added logs in POSD readings.
  • Fixed incorrect date logs in POSD readings.

v4.4.8.10

Mantis #39597

  • Fixed issue on GC excess when POS is non-vat: set the excess to vat-exempt.
  • Added initial date value on 'Date From' and 'Date To' fields on Transfer Data of superadmin page to prevent error.
  • Fixed issue where an error pops out after second transaction when Product Search Mode is set to 'Button Grid' and when there is a service charge and/or local tax value.
  • Added restrictions in F1-Inventory form for expanding its form size and controls on Terminal Accountability button.
  • Added minimum and maximum date on date range on E-Journal form.
  • Added a validation of OR number to restrict voiding of sales from different terminal.
  • Fixed POS Promotion issues such as:
    • when POS promo discount was retained even after the required amount was not met (occurs when a product was deleted)
    • when the transaction has POS promo applied and a transaction or customer discount was added, the POS still removes the promo discount even when the user chose not to
    • when the total required amount of POS promotion can be bypassed when a senior, PWD, or non-vat discount was added
    • when a package of an item was removed and the POS promo was still retained even if the required amount was not met
  • Modified forced deactivation of POS Promotion.
  • Fixed issue on removal of transaction discount/adjust

v4.4.8.9

Mantis #43462

  • Added 'Enable Auto Refund' on WeChat Settings that if set to true, it will allow auto refund of WeChat payment. The default value is false.
  • Enabled WeChat settings such as 'Verify Username', 'Verify Password', 'Refund Password' and 'Enable Auto Refund' to be edited by users with admin level permissions

v4.4.8.8

Mantis #42653

  • Added a timer that will check if the POS has reached 1 day without readings. It will start after the POS displayed the cutoff warning message.
  • If the timer reached 1 day and 1 minute without generated readings, the POS will automatically generate the readings for the previous day/s.

v4.4.8.7

Mantis #43290

  • The F9-Non Vat button in F12-Menu was changed to F9-Zero Rated.
  • The "Vat-exempt" mode on the modes panel in main form was also changed to "Zero Rated".

v4.4.8.6

Mantis #43218

  • Revised way of initializing and altering tables in POS startup.

v4.4.8.5

Mantis #42891

  • Fixed the reprint issue where if the quantity of retail product was changed, the memo of that product will not be saved in the database.
  • Retained missing log info in Accred module.

v4.4.8.4

Mantis #43025

  • Allow sending of accreditation in shangrila even if other POS doesn't have readings.
  • Set the accreditation format of Starmall back to Vistamall.
  • Removed checker if there are sales in the server for force send of accreditation, since POS might malfunction in the middle of the day.
  • Added logs when doing force send of accereditation.

v4.4.8.3

  • Modified RLC to connect to accreditation consolidated configuration.
  • Modified process to get data from branch server instead of owndb.
  • Get the reprint count amount and quantity from reprintcount table instead of reprint log.
  • Get values of terminal from branch server for Z-Reading.
  • On SuperAdmin form, renamed "Clear Sales" button to "Truncate POS Data".
  • Added report on FTP if blank data; added a process to display 0 if the old count on other terminal is 0.

v4.4.8.1

  • Changed warning message of alert days to a simplier format.
  • Updated warning message to display the start date when the POS was not used.
  • Fixed issue of unable to proceed when user accidentally closed the permission code form and tried to enter the code again.

v4.4.8.0

  • Fixed issues on generic accreditation functions:
    • Sending accereditation file on same day.
    • Unable to generate vistamall and shangrila due to prompt.
    • Unable to check for EOD reading on Farmers.
    • Add multiple validations when there's no sales in POS.
  • Fixed issue on Megaworld where it shows incorrect line rows.
  • Fixed issue on Megaworld where it shows incorrect line rows.
  • Restored DBF file type on Ayala Land accreditation.
  • Fixed label in Payment from "PaymentI Information" to "Payment Information".
  • Fixed authentication code error message from "Please input total auth code." to "Please input authorization code.".
  • Updated cancellation of payment error message to display properly.
  • Added logs for cancellation of wechat payment request.
  • Updated error message display that comes directly from the API of WeChat.
  • Added display of wechat errors in logs.
  • Fixed wrong format of Backup Time in Old Data.
  • Updated POS Config; it can only be opened when there is no current transaction.
  • User can now input amount lower than 0 on WeChat Payment.
  • Fixed small QR character display.
  • Fixed the clicking of view report on Other Readings even if there is a display message.
  • Fixed process of checking if user supplied invalid character path in EJournal file path.
  • Fixed process for non-API mobile payments to show message that the payment may not return automatically
  • Updated error message of "Total amount must be greater than total remaining amount" to "Total amount cannot exceed remaining amount."
  • Default message of WeChat Error Code 3003 was changed to "Invalid authorization code!"
  • Added adjustment to Cathayland PWD and senior computation.
  • Added lost code for refunding of WeChat API when voiding unfinished transaction.
  • Added logs for deletion of mobile payments and successful wechat payment.
  • Fixed display of refund failed when auto-void of transaction during foward time.
  • Fixed regeneration of reading when readtype is 3 and when accreditation is active.
  • Added validation on saving settings if change is current setting value.
  • Changed result behavior. POS will now specify report type and generation mode on result view after generation of accreditation.
  • Added missing dates on network and FTP result log.
  • POS will now check if there is an ongoing transaction to prevent the Settings form to be opened.
  • Added minor validations on FTP, localpath and 3 letters.
  • Fixed issue on Ayala year folder.
  • Moved error exception from T Logs to Error/errlogs.text
  • Added process to delete unused POS settings only if the database is owndb.
  • Changed process; set backup first before drop on delete unusued settings.
  • Added validation on WeChat payment so it won't proceed if payment amount is 0.
  • Removed unnecessary validation on localdrivepath accred setting.
  • Fixed issue on cutoff and changed log to root folder for old data.
  • Fixed issue on End Amount textbox for decimal input.
  • Logs of checking of old data is moved from T logs to root folder error logs.
  • Added option to create temporary folder when generating accred files with wrong directory.

Mantis #34414

  • Added new form that maximizes the controls for accreditation.
  • Added Generation Method settings in POS COnfig.
  • Removed the "Accred" word from settings under Accreditation Settings.
  • Display generation method on accreditation form.
  • Added way to manual send to local, network, and FTP.
  • Hid the UI of accreditation config when viewing Accreditation Report.
  • Added option to send to all available generation modes.
  • POS now checks if the entered local path directory exists or not.
  • POS does not allow users to view advance date that is greater than the current date.
  • Fixed message prompt that shows if the sending of accreditation successed or failed.
  • Added autogenerate on all old paths such as after the reading process, and opening of accreditation report form.
  • Fixed issues on multiple decimals when viewing transaction count.
  • The POS now updates accreditation settings if they exist in the selected accreditation, and deletes the unused fields in the database

v4.4.7.30

  • Changed the Print Receipt Format setting from text field to a dropdown, so user can shoose a format easily.
  • Added LQ310 in Print Receipt Format
  • Added the current LQ310 printout of Sanyang and Northtiles.
  • POS will now set XZ Design Unite to 'True' if Prince Receipt Format is set to 'LQ310'.
  • Added new printout configuration for LQ310 in Printer Profiles XML.
  • Added LQ310 xps printout for BIR reports.
  • Made a process that will handle the xps autosave (BIR) and xps normal printing.
  • Added a value for Zero-Rated Sales in LQ310 receipt.
  • Added a warning prompt if print format is LQ310 and printing type is textfile.

v4.4.7.29

Mantis #41976

  • Added a 'Product Discount Price Basis' setting on POS Config. It can be set to 'Product discount' or 'Branch price'. The 'Product discount' will base on o.price, while 'Branch price' will base on the selling price of the branch.

v4.4.7.28

Mantis #41698

  • Fixed Z-Reading discrepancy, which displays mobile payment and other tender sales of another terminal, by filtering the data based on the terminal number.

v4.4.7.27

Mantis #41142

  • POS will try to send the ungenerated files first to FTP before to local if the accreditation is RLC.
  • Adjusted the O.R. textbox length that can handle the old length of O.R.
  • Fixed the date format of Transaction Date before it is saved in database.

v4.4.7.26

Mantis #39727

  • Added 'Product Display Size' on POS Settings that lets users to adjust the font size of the products added in the transaction. The default value is 12.
  • Added another pricing type - 10.

v4.4.7.25

  • Added support for gift cheque payment in POSD.
  • Updated process of checking discrepancy on reading.
  • Modified the structure and checking of generated POSD logs.
  • Complete the process that updates the POSD Generator version.

v4.4.7.23

Mantis #39336

  • Enabled editing of PTU related fields (business name, owner, address, ACC no., MIN, permit, serial no., TIN) in Settings on F12-Menu.
  • Added permission code of superadmin when saving settings.
  • Redesigned UI of settings for better look.
  • Added Reset button to revert the settings back to its previous details.
  • Added logs when the values are changed in settings.

v4.4.7.22

Mantis #39217

  • Added breakdown computation of PWD and senior discount on SM, Farmers, and Megaworld accreditations.

v4.4.7.21

Mantis #39211

  • The sales type will now be manually assigned on Megaworld accreditation form to avoid producing multiple sales type.
  • Added fix on PWD and Senior discount breakdown in accreditation.

v4.4.7.20

Mantis #31051

  • OR# and TRAN# will only be saved after a successful payment to prevent saving OR# and TRAN# on an unfinished transaction.
  • Since OR# is saved after each successful transaction, OR# display in the main form was replaced by REF# which is the transaction wid to be able to track each transaction.
  • When the POS mode is set to 'Front End (Take Order)', the REF# will use the transaction number.
  • Fixed issue on Product Info display when there were two transactions and the current transaction was paid, it displayed the product info from the last paid transaction instead.
  • In logs, the OR# was replaced with the transaction wid.

v4.4.7.19

  • Replace machine number to POS number on Farmers accreditation format.

v4.4.7.18

Mantis #35449

  • Updated the product search function to make the searching process faster.
  • When Expand Product Column is set to 'True', product column's width in Search Product is manually computed.
  • Fixed columns that do not return to their original size after removing the text on search box, then typing a text to search again.
  • Fixed slow loading issue when searching for products.
  • Fixed issue where Search Product form is not displaying when Expand Product Column is set to 'False'.
  • POS will skip codes that are not needed when Expand Product Column is set to 'False'.
  • Fixed issue in Search Product form to display correct product information.
  • Commented out the logging of speed in Search Product, and the auto creation of new index for branch price.

v4.4.7.17

  • Removed gift check excess when getting summary data and added its amount in vatable sales in the report.
  • Fixed Price Adjustment log in T Logs by removing "* 100" (multiply by 100).
  • Fixed the New Grand Total issue.
  • Changed the decimal limit from 5 to 20 when generating POSD transactions.
  • The POS will now check or search only for the vatable products if the POS is vatable.

v4.4.7.16

  • Made adjustments for RLC Accreditation to prompt messages when sending through FTP succeeded or failed.
  • Adjusted auto generate send for RLC ftp.

v4.4.7.15

Mantis #37307

  • Make all generation of sales text file consolidated if accred_consolidated = true.
  • Set the same folder path for consolidated and nonconsolidated text files.
  • Fixed behavior of printing of Accreditation Summary.
  • Added a "Result" form where it shows the status of dates if they  succeeded or failed.
  • Added logs for failed generation of dates.

v4.4.7.14

Mantis #35763

  • Added necessary settings for Old data reprint functions.   
  • Modified reprint functions to fetch data from old data. Affected modules are listed below:
    • Reprint receipts
    • Reprint Readings (posd/actual)
    • E-sales journal
    • BIR reports
  • Modified Other Reading functions to support retrieving of old data.
  • Modifications in BIR report for more accurate outputs.
  • Added condition in formatting OR number during receipt reprint if ShowCompleteOR is set to false.
  • Fix on BIR summary report with cutoff.
  • Used readingdate as reference instead of date column for Z-Reading.
  • Changed validation for OldDataDate. Value should exactly be the same with last reading date from old database.

v.4.4.7.13

  • Fixed error when printing receipts with special characters in certain conditions.

v4.4.7.12

Mantis #36835

  • Allowed user to enter other characters aside from numbers when the user manually inputs the Member card ID or barcode.
  • [Function O]  Disable and set the Beginning Amount textbox default value to 0.
  • Added an "id" column in initialization of default value of cutoffs table. Its default value is 1.

v4.4.7.11

Mantis #35875

  • Fixed printout error if other info has special characters.
  • Added a warning pop up if there's no default value in cutoff table after the login part of POS.
  • Fixed the distorted receipt printout if telno characters is too long and without spacing.
  • Seperated the creation and checking of PTU Info.

v4.4.7.10

  • Farmers Accreditation (Mantis #36537)
    • Enable admin terminal to see all branch terminal sales and regenerate consolidated files.
    • Add validations to check if some terminals are not used within the day and still be able to generate accreditation files by using confirmation prompt.

v4.4.7.9

   Mantis #27774

  • Added Cutoff UI for creating and editing new cutoff time.
  • Added an additional timer for automatic generation of readings, and for automatic warning pop up if current time is within 3 minutes before the cutoff time.
  • Added enums for cutoff's transition type:
    • Normal Time
    • Backward Time
    • Idle Time - force reading
  • Fixed the auto generation of reading in POS after login part where it will get the accurate cutofftime and attach in reading date before saving it.
  • Selecting only the distinct records in transactioncutoffs table.
  • POS uses the reading date cutofftime to properly setup the range of time when regenerating readings.
  • Get the startOR and EndOr in PosXYZRead by reading date and use the ornumber to get the cutoff id from the transactioncutoff table.
  • Auto generate default cutoff time (00:00:00) if the cutoff time goes missing.
  • Fixes on Terminal Readings, Other Readings and Accreditation reports regarding transaction cutoffs.

v4.4.7.8

  • Adjusted fields on Farmers Accreditation format
    • Added get terminal PTU details to allow owndb POS to get other terminals information.
    • Fixed hour issue on format where printed time of EOD must be included instead of cutoff time.

v4.4.7.7

  • Created a consolidated report for all POS Sales for Ayala Accreditation. (Mantis #26638)

v4.4.7.6

  • Megaworld adjustments:
    • Added raw query computation for less vat discount.
    • Added regular discount on X and Z reading before
    • Recomputed discount computation and display the regular discount on the accreditation.
    • Adjusted sales file to adapt gc excess sales.
  • Megaworld adjustments after demo:
    • Fixed issue on hourly sales file, gc excess must be included on correct hour of sales.
    • Added gc excess on daily sales file, sales per type.
    • Added PWD and senior VAT discount on daily and discount sales file to fix issue on all gross sales total.
    • Removed void transaction count on customer and all success transactions both on hourly and daily sales file.
    • Removed 12% vat on PWD and Senior, based on audit, Megaworld text file format send is misleading.

v4.4.7.5

  • Changed all message box to modal form message box.
  • Able to re-print non-vat information by saving in 'buyersinformation' table.
  • Return items + damage items won't be able to exceed refunding quantity.
  • Allowed changing transaction adjustment to negative value during refund to match original transaction values.
  • Fix on Custom and mobile payments not showing correctly when in POSD.
  • Removed messageboxes that display exception errors.
  • Fix issue on reprint receipt. senior/pwd discount and vat exempt not being printed correctly.
  • Fix issue on pos settings. if show complete OR is set to false, accept incomplete OR# input when reprinting.
  • Update logs for activating nonvat.
  • Fix -> F2 (customer) >  F4 (add item) > change amount to increase its price: Logs will not write the changes.
  • Update  incorrect logs on product discount.
  • Fix sales/product memo. allows empty input.

v4.4.7.4

  • Modified Farmer's accreditation to generate consolidated sales report for multiple POS setup. (Related Mantis #:33807)

v4.4.7.3

  • Fix conditions in fetching POS SyncMode setting. (Related Mantis #: 35880)

v4.4.7.2

  •  StarMall/VistaMall Accred modifications
    • Added network password setting for this accreditation.
    • Changes in specific fields in generated files as per required by this accred.
    • Both accreditation now generates consolidated reports for multiple POS.

v4.4.7.1

  • Fix approval log bug in OR Print Preview if current user is superadmin.

v4.4.7.0

  • GC Excess implementation
    • GC Excess in transactions will be shown in receipts and is added in vatable sales.
    • GC Excess will be included in Net Sales and Vatable Sales in readings.

v4.4.6.4

  • EverComm revisions. 
    • Changed file type of generated file from .txt to .csv.
    • Changed blank fields to 0 as default values.
    • Changed currency from P to php.

v4.4.6.3

  • Hotfix: Fixed Print OR Preview when it's 76mm journal to be able to see the whole receipt.
  • Hotfix: Fixed EJournal exporting data to be able to see the whole receipt.
  • Both accreditation now generates consolidated reports for multiple POS.

v4.4.6.2

  • FT_24422: Added a new page to display the approval log that shows who gave the approval when the POS prompted for permission.

v4.4.6.1

  •  Feature: Added setting that enables or disables manual enter of member card ID/barcode on member form.

v4.4.6.0

  •  HF_34456:
    • Bug fixes Receipt Reprint in particular with POS IsVat settings.
    • Added table 'posvathistory' which stores POS IsVat setting changes.
  • Hotfix: Megaworld accreditation revisions

v4.4.5.17

  • Hotfix: The O key (F12 > O) is now accessible by superadmin account only.
  • Hotfix: The user can now generate a reading upon saving by checking "Generate Reading" then input the read count based on the Z-Read.

v4.4.5.16

  • Hotfix: Fixed the unordered list of products in receipt when using Reprint Receipt module.

v4.4.5.15

  • Hotfix: Allowed Chinese character if neede in printing receipt.
  • Added Print Chinese Characters in POS Settings in POS Config and used it to determine whether to print Chinese characters or not.
  • Fixed issue where the business name is not centered correctly in printer.
  • Updated settings of EPSON TM-T82 Receipt to enable printing of Chinese characters.
  • Updated the default settings for EPSON TM-T82 Receipt.

v4.4.5.14

  •  Hotfix: Removed refresh of discount on reprint
  • Hotfix: Added fix on reprint, miscalculation of discount in reprint preview.
  • Hotfix: Commented out refresh all discount on void transaction.

v4.4.5.11

  •  Hotfix: Added Shangrila accreditation.

v4.4.5.10

  •  Hotfix: Vat Exempt is now computed by total non-vat sales minus vat zero rated sales.
  • Hotfix: Fixed able to access non-vat module using F9 button in non-vat pos mode.
  • Hotfix: Added 'ZERO RATED RETURN:' and 'ZERO RATED SUBTOTAL:' in receipt.
  • Hotfix: Added fix on New Grand total when generating a terminal accountability.

v4.4.5.9

  •  HF_28804:
    • Added a condition that won't allow payment for a transaction when total amount due is 0, except cash payment.
    • Fixed an exception error when a user added a 3-digit year in bank cheque info.

v4.4.5.8

  • HF_32882: Changed the initial values of effectivedate and date to '2000-01-01' when creating cutoffs table in database.
  • HF_32928: The second 'Valid Until' date in receipt displays the date '2020-07-31' if the approval date is 2015-07-31 or earlier. Else, it will add 5 years on the date.

v4.4.5.7

  • HF_32934: Accreditation date from July 31, 2015 and earlier should be valid until July 31, 2020. Else, add 5 years.

v4.4.5.6

  • HF_32475:
    • Removed the rounding off of product quantity to support more than 2 decimal places when entering quantity.
    • Added "Tender Failed" in member offline alert message for clarification.

v4.4.5.5

  • Hotfix: Added permission code to access superadmin module.

v4.4.5.4

  • Hotfix: Excluded the posd part of sale in syncing if the POS Sync Mode is set to "ServerPos".

v4.4.5.3

  •  Hotfix: Fixed auto creation of transactioncutoffs data where it will create data even if there is no salesheadwid in transactioncutoffs table in the database.

v4.4.5.2

  • Feature: Added a hidden function in F12-Menu by pressing the X key which can only be opened by superadmin only.
  • Added option to clear POS sales transactions in this hidden function.
  • Added a feature in the hidden function where the superadmin can transfer data from 1 terminal to another within a specified date range.
  • Added a feature where the superadmin can change the terminal number.

v.4.4.5.1

  • FT_31053: Added 2 kinds of BIR Reports:
    • Detailed Report - generates sales information in a daily basis based on the date range and if actual or posd
    • Summary Report - generates sales information in a monthly basis based on the date range and if actual and posd
  • BIR Report button will be visible/enabled in superadmin and admin users only
  • Added a toggle if the report to be generated is actual reading or posd based on the value on Posd AutoSwitch.
  • Added option to select path where to save, and cancel button to allow users to escape the date picker form.
  • Fixed the vatable and vat-exempt values in summary and detailed reports in BIR Reports
  • Added checking where the POS won't continue to generate report if user cancelled selecting a date range.

v4.4.5.0

  • Hotfix: Set cash denomination form to the top most position when several windows are open.
  • Hotfix: Set accreditation sales report to the top most position when several windows are open.
  • Hotfix: Set the 'POS Days not Used' to 7 as its default value.

v4.4.4.39

  • Hotfix: Original way of discounting is implemented but changes its saving method to 6 decimal.

v4.4.4.38

  • HF_31264: Fixed issue where Z-Read contains two consolidated reports.

v4.4.4.36

  • FT_17176:
    • Added gift cheque validation mode
    • Added gift cheque validation settings on POS Config

v4.4.4.34

  • HF_31120: Fixed discrepancy on reading where the mobile payment transactions are not displayed on reading as "mobile payment".

v4.4.4.33

  • FT_31010: Added settings on POS Config the admin users can modify.

v4.4.4.31

  • Hotfix: Modified the following warning messages:
    • Changed "Database is offline. OR not found." to "Cannot connect to local database. OR not found."
    • Changed "This device is not connected to the database." to "This device is not connected to the local database."
    • Changed "Database is offline." to "Can't connect to local database."

v4.4.4.30

  • Hotfix: Added a condition where the product discount percent is computed only when divisor (product price) is greater than 0.

v4.4.4.28

  • FT_29837: Added the following payment methods under Custom Payment:
    • WeChat Pay
    • Ali Pay
    • GCash
    • PayMaya

(all methods are required to have customer name, reference no., and amount fields)

v4.4.4.27

  • HF_29758: Modified the way of distributing discounts to avoid discrepancy of 0.01 or more. Changed discount percentage to actual discount amount, so the deduction will be more accurate.

v4.4.4.26

  • Feature: Added Vista Mall accreditation.

v4.4.4.25

  • HF_29189: Fixed the discrepancy of product price in the web system. Deleted lines in the code that caused an issue in reprint receipt function which it sets the branch price. instead of sales price, of the product if wholesale and package was set.

v4.4.4.24

  • HF_29944: Optimized customer search to prevent hanging.

v4.4.4.23

  • HF_29912: Set the default value of 'Enable Negative Payment' to 'False'
  • Hotfix: E-Journal text File
    • Added an option to print or save via text file
    • Added an option for user to choose between xps or text file when printing the e-journal
    • Changed shortcut of E-journal in Settings to F2 key

v4.4.4.22

  •  FT_28772: Fixed issue in permission code for posd reading. The user who has permission to print still has to input the permission code to avoid accidentally printing the posd reading.

v4.4.4.21

  •  FT_27031: Created a time span where the reading can only be done between that time span.
    • Added 'Allowed Reading Start Time' and 'Allowed Reading End Time' in POS Config. This is visible to admin accounts.
    • Fixed shortcut key of Z-Reading where it is stoll working even if it is not a valid time for reading.
    • Fixed allowed reading time condition. It should be able to read when the current time is the same as the allowed reading start time or end time.

v4.4.4.20

  • FT_28772: Added input permission code when clicking z-read button. This is to avoid accidentally printing of Z-Read.

v4.4.4.19

  •  Hotfix: Set the 'POS Days not Used' to 7 as its default value

v4.4.4.18

  • FT_29447
    • Removed new and old grand total in X-Reading
    • Added serial number in POS title bar together with POS name
    • Added option to print hard copy of E-journal
    •  Added an option to print actual or posd salesmby toggling H key. The default value is based on Posd Receipt AutoSwitch value in POS Config.

v4.4.4.16

  •  HF_27641: Added feature where the POS will print two receipts if the transaction is PWD/Senior transaction so the pwd/senior has a copy printout.

v4.4.4.15

  • HF_29132:
    • Fixed issue of previous ORs that cannot be reprinted.
    • Fixed issue of reprinting OR when OR preview is enabled in toggling of H key function.

v4.4.4.14

  • HF_28915: Fixed issue where an OR number was skipped in Z-Reading.

v4.4.4.13

  • Hotfix: Removed the word "Nelsoft" in some message prompts.
  • Hotfix: Removed the default POS provider data in POS Settings.

v4.4.4.12

  • FT_27670: Created a feature that will save all receipts into one xps file each.

v4.4.4.10

  • HF_27910: Added a new setting to disable or enable the Price field in wholesale form.

v4.4.4.9

  •  HF_28156: Fixed error where user is unable to input a 'Valid Thru' date in Debit Card payment method.

v4.4.4.8

  •  FT_23143: Added "sqlport" in branch table, terminal table, and settings.txt.

v4.4.4.6

  •  FT_27656: Added a condition: a confirmation message will appear if they want to cancel the POS promotion when the POS promotion discount is already set. This is added to avoid multiple click or multiple discount in POS Promotion form.

 v4.4.4.5

  • Hotfix: Adjusted the maximum acceptable amount in payment.

v4.4.4.3

  • FT_27378: Added the POS version in logs upon login in POS

v4.4.4.2

  •  HF_27315: Fixed issue of POS printing the actual reading even if it is set to print the posd reading when the XZ Design Unite is set to 'False' in POS Config.

v4.4.4.1

  • FT_25576: Fixed issue where the sales synced to server are incomplete.
  • HF_27156: Fixed issue where the reading data is not saved when XZ Design Unite is set to 'False'.
  • Hotfix: Changed condition in Product Memo where it will not be saved if there is no input.
  • Hotfix: Fixed UI on second screen that causes transparentt back color.
  • Hotfix: Edited Product Quantity form design on new UI.
  • Hotfix: Removed feature that can open multiple POS application with different settings.
  • Hotfix: Modified Evercom accreditation

v4.4.4.0

  • FT_19889: Auto detection of type of printer and its settings.
  • FT_23089: Applied senior way of discounting in PWD but different UI to determine the two.
  • FT_24681: Modification on cutoff implementation
  • Hotfix: Fixed VAT Zero discount in receipt by adding amount of zero rate sales in getting subtotals for amount due.
  • Hotfix: Fixed the selection of senior/pwd when clicking the escape (ESC) button.
  • HF_25817:
    • Added a setting 'POS Days not Used' on POS Config.
    • Added a warning if POS is not used more than the days entered in 'POS Days not Used' setting. Then, a permission code form will show up.
    • Added an input field for the computer name in Settings.
  • FT_25814: Allowed multiple instance of POS with different settings.
  • FT_25819:
    • Added a new theme for the new UI. Same color with the old UI but different structure.
    • Added classic theme with the new UI layout when POS UI Type is set to 'True' and 'colortheme=7' in settings.txt

Author: Mary Nicole Quirabu
Last update: 2021-01-07 09:17


AutoSync v4 Change Log

v4.0.4.34

Mantis #114863

Fix sync stuck: idempotent sync table insert and force-remove wids from sender on failure

v4.0.4.33

Mantis #114446 (revision)

fix conditions for syncing

v4.0.4.32

Mantis #114446

add feature if failed to insert to sync/terminalsync table, will reinsert to sync/terminalsync of sender.
change behavior from reinsert sync/terminalsync of sender to skip delete sync/terminalsync of sender if failed to insert sync/terminalsync of receiver

v4.0.4.31

Mantis #114478 (revision)

Fix issue data not being detected when in idle. Needs to restart the app to start syncing.
Add command set global max error count.
Added function to ensure all syncing workers are running.
Set refresh rate to 3 seconds.
Optimized syncing process. Add immeditate updates on progress and reduce delays.
Fix race conditions.

v4.0.4.30

Mantis #114478 (revision)

Fix issue showing posdbversion mismatch from time to time.
Removed spamming of for checking connection.
Avoid spamming of log when checking database version.

v4.0.4.29

Mantis #114478 (revision)

Fix implementation. Add flush host log file to be able to execute flush hosts once per version update.
Track flush hosts command each time triggered manually in settings tool strip.

v4.0.4.28

Mantis #114478

Add cooldown when MySQL returns 1129 to stop hammering blocked hosts
Add new settings flush hosts command
Added new setting flush hosts under settings menu strip
Run flush hosts once when there is a new version update.
Added a superadmin/admin login prompt before running Settings → Tools → Flush hosts.

v4.0.4.27

Mantis #113489

Fully avoids the IPv6 stall without disabling IPv6 system-wide. Predictable behavior across branches regardless of DNS
Added AutoSync/Helpers/MySqlEndpointSelector.cs.
Updated AutoSync/Helpers/NelsoftDbHelper.cs.
Add dedicated conection logging.

v4.0.4.26

Mantis #112542 #113489

fix condition when inserting data to sync table, to make sure all data are inserted
add logs when successfully inserted to sync table (Mantis:113434)
add validation and retry feature when inserting data to sync table.
Fix issues in Product Promo Qty not showing in pos autosync, also changed basis to lastmodifieddate

v4.0.4.25

Mantis #111991

Refactor autosync auto update process. To download exe file in the background and patch in next re-open
Add notification if download will be applied in next restaret.
Fix issue in F1 check for updates. Update code to use latest updater functions.
Updated UserSettings to restore previous working settings if bad Settings.xml is detected during initialization.
Set updater.CaptureSynchronizationContext = false to keep UI responsive without the duplicate *WithoutContext method
app-updater DLL commit using updater v1.0.0.22
Add logs when settings is restored.

v4.0.4.24

Mantis #112062

add validation when inserting data to sync/terminalsync
add retry feature when inserting data to sync/terminalsync (max retry = 5)

v4.0.4.23

Mantis #104031

Added new form for Reset Inventory to Zero 
Added variable Option to store selected option for reset inventory. Added clause generator to filter reset inv query. Set All as default.

v4.0.4.22

Mantis #109111

add flushdns command during startup of application

v4.0.4.21

Mantis #109421

Added checker to check system date and time privileges.
Update condition to trigger local security policy if only has no privilege and time is not synced.
Added class UserSystemRightsHelper.

v4.0.4.20

Mantis #108857

Added checker for backup process to halt and delete folder if a .sql file is corrupted.

v4.0.4.19

Mantis #104976 #107897

Added loading form
Added setting enableutoupdate
Add autoupdate feature during startup
Set autosave correct autoupdate credentials if null are set in settings.xml
Add to Windows Defender Whitelist function using powershell.
Disable UAC function.
Added defender exclusion for windows 7

v4.0.4.18

Mantis #103614 #75770

add retry feature to time.windows.com and time.cloudflare.com
change ntp server to cloudflare and google
change timezone to Singapore Standard Time to fix issue in windows 11
add componenthelper.cs
add checker if startup value is set on registry
add set startup value on registry or update if wrong path

v4.0.4.17

Mantis #103614

Modified batch file and added WaitForExit to prevent error in deleting resource folder.

v4.0.4.16

Mantis #98784

Added setting to enable/disable asking for password in manual backup.

v4.0.4.15

Mantis #99208

add new table to sync if posdbversion is v4.11 and above (sales_zapmember)
add compare for dbversion of sender and receiver if same before adding sales_zapmember table in sync
add checker if table exists in local and remote db

v4.0.4.14

Mantis #96000

Initialize new setting Enable Auto Backup in Settings.xml and Backup Settings Form.
Disable autosync autobackup when autobackup setting is disabled.

v4.0.4.13

Mantis #95307

add filter for saleshead (show=0, status=0)

v4.0.4.12

Mantis #82383

Changed reference config value when checking for posdgen date.
Changed default datetime value if change-master-data doesn't exist.
Added conditions to check for change-master-data when manual resyncing sales data.

v4.0.4.11

Mantis #82383

Automatically close cmd prompt. Added funtion to check internet connection before attempting to sync time via internet.
Fix condition when checking internet connection.

v4.0.4.10

Mantis #80574

Fix autogeneration of ntrights file and bat file to be performed and deleted after execution.
Move to default properties folder.

v4.0.4.9

Mantis #78157

Added feature to allow user to be added in local security policy to change date and time. Added ntrights.exe and bat file as embeded resource.

v4.0.4.8

Mantis #75093

add indicator on syncrepository if haspaymayatable or not, prevent paymayadetail sync if not exist
add generic table checker function

v4.0.4.7

Mantis #70186

add new feature to sync ´paymayadetails´ to server
can only be sync in db 4.0 and up

v4.0.4.6

Mantis #70391

add new form BackupSettingsForm
add menustrip in main form to access backup settings form
add username in permission form for backup settings only

v4.0.4.5

Mantis #67886

Updated application-updater submodule.

v4.0.4.4

Mantis #60748

Removed process where every image is being resized before each backup since it massively slows down the whole process.
Added condition where the backup process only adds new or recently modified image files to an existing zip file.
Fix error when there is no existing backup directory yet
Removed unnecessary generated files in backup directory before starting backup process.

v4.0.4.3

Mantis #58316

Added InitialBackupDirectory Settings to prevent default C:/MyDocuments/dumps/ default storing path.

v4.0.4.2

Mantis #57085

Added exclusions for superadmin user on Sync User and Sync Table to prevent sending its data.
Added a process that removes superadmin from data table if Autosync is terminal sync only. 

v4.0.4.1

Mantis #55010

Fixed the data discrepancy between main and branch. 

v4.0.4.0

Mantis #51292

Added a setting to enable/disable internet time syncing.
Users can now open the app with admin privileges, “Run as administrator”.
Added correct time zone setter.
Added helpers for NTP, Time Zone, and system time checking.
Added UTC time checking.
Added interval time checking.
Modified startup process.
Autosync will stop syncing stock delivery if app has incorrect time.
Added a status on table sync that shows if app has incorrect time.
Added a process that stops table syncing if time is incorrect.
Fixed issues on time syncing for different incorrect date and time scenarios.
Handled the process of time syncing when there is no internet connection.
Added a backup time server for network time checking and syncing. 

v4.0.3.17

Mantis #55565

Added Issued Check table on Branch Sync Table List with reference to last modified date and sync type SubToMain.

v4.0.3.16

Mantis #53625

Added a process checker when there are critical processes running before restarting the application.

v4.0.3.15

Mantis #52355

Added "Reprint Count" on terminal sync table for transmission from terminal to branch server.

v4.0.3.14

Mantis #51856

Disabled resyncing of generated actual sales from POSD Generator to prevent overwriting actual data.

v4.0.3.13

Mantis #51963

Included terminal no = 0 when checking the config table to fix issue of Autosync that still works even when the value for terminal no is different in Settings. xml and in config table.
v4.0.3.12

Mantis #49810

On Settings.xml, changed the default value of Terminal Sync Table from 'consolidatedsync' to 'terminalsync'.
v4.0.3.11

Added new setting "TerminalSyncTable" in Settings.xml.
If the value is 'terminalsync', Autosync checks the data for syncing in terminalsync table. If the value is 'consolidatedsync', Autosync checks the data for syncing in consolidatedsync table that is used by v5 CIRMS POS.
v4.0.3.10

Mantis #46951

Changed the filter from 'last modified date' to 'date created' to be used by Autosync on Product Discount and Product Quantity Promotion modules.
v4.0.3.9

Removed permission confirmation when checking for updates.
v4.0.3.8

Mantis #28388

Added branch restriction when syncing stock delivery.
Modified stock delivery module syncing by basing on last modified date.
Mantis #45870

Added auto update support.
Added error message if update of autosync failed.
Updated error message prompts when checking for updates.
Added a feature that cleanups unnecessary release files.
v4.0.3.7

Mantis #36534

Added a special condition for products that enables syncing from branch to main.
v4.0.3.4

Mantis #34605

Added an indicator that determines if Database and Sync background workers need to be stopped.
Autosync now add logs whenever the Database and Sync background workers had already stopped.
Autosync will now disable buttons and stop background workers when the scheduled database backup is in process.
Removed disabling of all buttons and stopping of background workers when the product picture backup is in process.
v4.0.3.3

Mantis #26506

User ID of user that allowed to reset inventory to zero will be saved.
Added a feature where the Autosync will check if password has admin permission to allow certain actions.
Autosync now requires user to enter password when clicking Reset Inventory to Zero.
Updated Settings.xml where RecomputePermission default value is set to 1.
Password with userid will now be used only for Recompute Inventory and Reset Inventory to Zero. The default password will be used for exit and force restart.
Fixed wrong data conversion.
v4.0.3.2

Autosync will not create database backup if TerminalSyncOnly setting is set to true. (Mantis #35215)
v4.0.3.1

Added approval_log table on terminalsync for db version 3.8 and above.
v4.0.3.0

Added app.config to support multiple target framework.
Added posmobilepayments table in terminal and branch sync via collectiondetail in SyncRepository.cs
Added validation for posmobilepayments, it will only sync if database version is 4.0 or above.
v4.0.2.27

Created feature to backup prodpic folder to create a copy of the folder and save it in dropbox. (Mantis #30363)
v4.0.2.26

Remove brand and supplier when syncing data from the main branch and should only insert necessary data in the terminal sync table. (Mantis #26972)
v4.0.2.25

Fix on Table SyncType filter conditions
Added database version checkers to handle version below 3.4
v4.0.2.24

Autosync can set mysql port. (Mantis #23144)
Added setting for port number.
Added port setting in setting.xml
v4.0.2.23

Fix issue in syncing added table in v4.4.4.0 release (Mantis #26553)
v4.0.2.22

Added tables to sync for release of v4.4.4.0 (Mantis #26553)
 v4.0.2.21

 Sorted Database and Table Lists to be displayed un Treelistview to fix duplication row entry when there are too many rows. (Mantis #26754)
 v4.0.2.20

Fix on ProductSyncMode2 where all outlet branchprice should always sync together with main branchprice. (Mantis # 21681)
Added SyncOutletProducts setting to control outlet branchprice syncing. (Mantis # 21681)
v4.0.2.19

Added TerminalSyncOnly setting to hide and disable branch to branch syncing process. (Mantis #20489)
Edited branch table SyncType mode to MaintoSub. (Mantis #20489)
v4.0.2.18

Fix on data with Chinese characters not syncing properly and the characters were changed to question marks (???). (Mantis #17627, #17238)
v4.0.2.17

Re-arranged enTransactions commit sequence to fix issue where AutoSync deletes sync table data even if local insert fails.
v4.0.2.16

Separated backup process per file.
v4.0.2.15

Fixed bug on insertWidstoSyncTable function where synced data from main branch not automatically inserted to terminalsync table.
v4.0.2.14

 Modified RecomputePermission setting where the user can enable or disable the recompute and reset inventory buttons, or can input permission for these buttons. (Mantis #15741)
v4.0.2.13

Added Chinese characters for connection status and table sync status labels. (Mantis #14289)
v4.0.2.12

Added syncing of all branchprice rows on ProductSyncMode2 from main branch upon creation of product.
v4.0.2.11

Fixed issue where upon saving of POS Cash Denomination, the data was not synced to main server. (Mantis #14986)
v4.0.2.10

Increased manualsync connection and command timeout to 9999. (Mantis #14478)
Refixed Stock Delivery syncing.
v4.0.2.9

 Added RecomputePermission setting where the user must enter password to use the Recompute and Reset Inventory buttons when the setting is set to 1. (Mantis #13584)
 v4.0.2.8

 Fix on duplicate rows with date conditions.
v4.0.2.4

Adjusted SyncRate to 20 to reduce timeout instances during syncing.
 v4.0.2.3

 Skipped syncing salesdetaildiscounts and salesheaddiscounts for database version less than 3.0
v4.0.2.0

 Fixed stock delivery syncing to insert detail first before head.
 v4.0.1.4

 Fixed collectionhead manual sync special case that didn't consider POSD re-arranged codes.
 v4.0.1.3

 Added manual syncing to include tables with POSD.
 v4.0.1.1

Fixed startup issues:
Moved initialization of Sync Controls to Start methods that will run after checkers.
Assignment of LocalDatabaseVersion is done right after mysql checks.
Mode Superadmin pop up to Form Visible Changed instead of on Form Load.
v4.0.1.0

Changed Discount Type syncing on terminal to MainToSubAndSubToMain.
Added condition to TerminalSyncControl for db version less than 3.
v4.0.0.5

Fixed cancel button on exitconfirmationform.
v4.0.0.4

Autosync will only display branches with show value = 1. (Mantis #11071)
v4.0.0.3

POS Terminal to sync only branch price of current branch.
v4.0.0.2

Fix syncing problem on tables with 'tobranchid', 'forbranchid', and 'forbranch' columns. (Mantis #10983)
Create dump folder if not yet existing during database backup process. (Mantis # 10983)
v4.0.0.1

Updated solution version from VS 2008 to VS 2015.
Added sync_limit in setting,txt
v3.8.5.0

Added memberpointtrans to list of tables to sync.
v3.8.4.0

 Deletion and insertion of entries are now split up into batches and are run in an sql transaction.
v3.8.3.2

 Added Process ID on overloaded LOGS_PRINT.
For debugging and modifying gitignore:
Added Process Id to Logs.
Ignored bin and obj folder
 v3.8.3.1

Added logs for stockdeliverydetail.
v3.8.2.2A

Solution: When the first instance of Autosync attempted to restart itself, it saves a restart mode flag into the setting.txt telling the second instance, whenever that unusual circumstance occur again, to make sure that the first instance is properly terminated before proceeding. After a 10-second timeout and if the first instance is still alive, the second instance should forcefully kill the first instance until the existence of the first instance has been fully eradicated, then the second instance resets the restart mode flag to 0 before continuing.
v3.8.2.0

Fix issue in zipping file after creating backup sql file.
 v3.8.1.0

Bug:
The Autosync crashes when another instance is launched while the same
instance is already running, if the form of the same instance running hast not yet been loaded.

Solution:
It seems that SignalInstance() causes the autosync to crash in the described scenario. The line was removed and replaced by simply terminating the application. SignalInstance() brings the window to foreground and somehow causes the autosync to crash.

v3.7.3

Fixed issue when syncing where the productbranchinventory is missing. (Mantis #2356)
v3.7.2

Allow to backup database without locking tables. (Mantis #2355)
v3.7

Fixed some issues of restarting Autosync on multiple instances. (Mantis #2290)
v3.6.3

Allow to run simultaneous Autosync as long as different database and branchid.
v3.6.2

Logs and backups include the database name and branchname. (Mantis #2267)
v3.6.1

Allow collectionhead to sync MtoB (Mantis #2257)
v3.6

 Add fields in settings file: backupdir and backupcnt (Mantis #2211)
Copy the backup file to backupdir path (if correct path) after saving backup in documents folder (Mantis #2211)
Maintain the latest backup files based on backupcnt (Mantis #2211)
Added logs for create and delete backupdb (Mantis #2211)
v3.5.11

User will only sync if the 'user', 'userpermission', 'userbranch' tables exist and have data. (Mantis #2163)
v3.5.10

If showlogs=1, the log will show the following: (Mantis #2113)
when Autosync closes
all unsucessful syncing
log of every 30 mins if the app is still open
when backing up database
v3.5.9

New Settings: showlogs=true to show logs in Autosync that have errors (Mantis #2102)
Sync User: Doesn't sync user if userbranch table does not exist. (Mantis #2102)
v3.5.7

sync salesorderhead
sync user with userbranch
sync product branchprice only to branches if productsyncmode=1

Author: Mary Nicole Quirabu
Last update: 2026-03-31 04:33


Autosync v5 (Manualsync) Change Log

v5.0.2.1

Mantis #57079

  • Added an exclusion list to delete from sync table to prevent sending superadmin user data.
  • Added a filter in rare case an update happens after said deletion.
  • Added exclusion on receiving end, in case superadmin data syncs through.

v5.0.2.0

Mantis #51291

  • Added time sync on startup.
  • Added a setting that enables/disables the time sync feature.
  • Manualsync can now be “run as administrator”.
  • Added separate running timer interval for time checking.
  • Adapted the fix from Autosync v4 which is an issue on incorrect time set when syncing network time.
  • Fixed the added backup timeserver in case of failure to check on primary URL.
  • Handled issue where the app is unable to sync due to no internet connection.

v5.0.1.23

Mantis #44922

  • Added Sync Test function under Settings for branch to branch and terminal to branch syncing.
  • Added a progress bar in Sync test.

v5.0.1.22

Mantis #53625

  • Added a process checker when there are critical processes running before restarting the application.

v5.0.1.21

Mantis #51856

  • Disabled resyncing of generated actual sales from POSD Generator to prevent overwriting actual data.

v5.0.1.20

Mantis #51963

  • Included terminal no = 0 when checking the config table to fix issue of Autosync that still works even when the value for terminal no is different in Settings. xml and in config table.

v5.0.1.19

Mantis #51289

  • Fixed "Rollback successful" issue where there are no details to be synced but are already existing in receiving database.

v5.0.1.18

Mantis #47144

  • Removed the re-syncing process when changes are made in Branches to Sync settings.
  • Changed the message prompt from "Changes done would need to re-sync products to all branches. Do you wish to continue re-syncing?" to "Saved! Autosync will now restart." when saving Branches to Sync settings.
  • Autosync now automatically restarts to load saved settings.

v5.0.1.17

Mantis #47014

  • Fixed issue where the received details are wrong. Autosync can now handle syncing process of stock delivery on outlet branches.

Mantis #47196

  • The "Backup database successful" message now closes automatically after some time.

v5.0.1.16

  • Removed password confirmation when checking for updates.

v5.0.1.15

Mantis #45870

  • Fixed issue where current version is not compatible with older versions.
  • Added auto update support.
  • Fixed the "Rollback:Successful" error where a data contains blank details.
  • Added error message if update of autosync failed.
  • Updated error message prompts when checking for updates.
  • Added a feature that cleanups unnecessary release files.

v5.0.1.14

Mantis #43679

  • Modified the Stock Delivery syncing process.
  • Fixed the incorrect retrieval of date & time fields.
  • Return the syncing to all data instead of selected data only.

v5.0.1.12

Mantis #43866

  • Set the default value of Autobackup setting to 'true'.

v5.0.1.11

Mantis #42551

  • Added an additional setting named "AutoBackup" that will force to back up even if there's no value on Backup Time setting.

v5.0.1.9

  • Added Branch Prices in Sync Settings that lets users to sync all branchprices in selected branches only.
  • Added HasNoInvariantBranchId node option to branchprice tablenode to fix possible issue of other branchprices being deleted if the product already exists.
  • Included main branchprice when syncing product.
  • Added prompt for user to resync product data manually to all branches if changes were made in Branch Prices in Sync Settings.

v5.0.1.8

Mantis #34605

  • Autosync can now check if all background workers have already stopped, so it won't lag in the UI.
  • Autosync checks if the background worker that was stopped is from branch or terminal control.
  • Enabled cancellation on background workers.
  • Autosync now add logs whenever the background workers have already stopped.
  • Autosync also now add logs whenever database backup has succeeded or failed, and shows the success or failed message.
  • Fixed double display of success message when syncing was cancelled, then clicked the sync again.
  • Autosync will now stop the syncing process first before doing the scheduled database backup.

v5.0.1.6

Mantis #26506

  • User ID of user that allowed to reset inventory to zero will be saved.
  • Added a feature where the Autosync will check if password has admin permission to allow certain actions.
  • Autosync now requires user to enter password when clicking Reset Inventory to Zero.
  • Updated Settings.xml where RecomputePermission default value is set to 1.
  • Password with userid will now be used only for Recompute Inventory and Reset Inventory to Zero. The default password will be used for exit and force restart.
  • Fixed wrong data conversion.

v5.0.1.5

  • V5 Manual sync backup checker
    • Added NotifyLastBackupDays in settings, will be used to set how many days when to display the backup notification.
    • Backup notification was moved to display upon auto sync startup.
    • Updated BackupBackgroundWorker.cs to handle when file path doesn't have backslashed in settings.xml.
    • Added code to be able to auto backup like in SyncMode - 0.
    • Updated runningTimer to 30000, so won't be able to skip the minutes in auto-backup time.

v5.0.1.4

  • v5 Autosync not responding during startup if SyncMode is set to Automatic (Mantis #34947)
    • Added code that will handle auto sync mode for sender and receiver buttons.
    • Added autoSenderThread_ProgressChanged.
    • Added autoReceiverThread_ProgressChanged.
    • Added timer for auto dataReceiverThread.
    • Updated code for dataSenderThreadProgress.

v5.0.1.3

  • Added approval_log table on terminalsync for dbversion 3.8 and above.

v5.0.1.2

  • Ignore non existing tables in SyncReader.
  • Added dbversion filter for sqlport column.

v5.0.1.1

  • Added poscashdenomination to Autosync v5 branch sync sub to main. (Mantis #33376)

v5.0.1.0

  • Added posmobilepayments as child of collectionhead table in TerminalTableNodeFactory and BranchTableNodeFactory.
  • Added condition that will only sync posmobilepayments table if database version is 4.0.

v5.0.0.38

  •  Remove brand and supplier when syncing data from the main branch. (Mantis #26972)

v5.0.0.37

  • Autosync can set mysql port. (Mantis #23144)
    • Added setting for port number.
    • Added port setting in setting.xml

v5.0.0.36

  •  Added tables to sync for release of v4.4.4.0

v5.0.0.35

  •  Combined generate and upload processes as 'Send', and download and patch processes as 'Receive'. This optimization should fix corrupted data issues since there will be no more pending files in Autosync data directories.
  • Added ManualSyncMode setting to turn this function on or off.

v5.0.0.34

  • Limit the data count in sync table to 100k in refresh and fetch process for optimization purposes. (Mantis # 24597)

v5.0.0.33

  • Added additional output file checking after its renaming and placed MoveFileToDoenloadedDirectory function to the bottom of DownloadFrom function.
  • Changed failed result messages for corrupted file and no server response errors.
  • Removed distinct query in GetPendingTables function to optimize query.

v5.0.0.32

Mantis #22327

  • Added conditions with productsyncmode 2 to handle newly created products not to override existing branchprice.
  • Added SkipOutletProducts setting that will not include branchprice with outlet branchid.

v5.0.0.31

Mantis #20924

  • Added TableNode options enum to handle possible future tablenode options.
  • Edit PutDataRecursive funtion to handle special conditions for clients with product sync mode set to 2. 
  • Disabled manual resync functions.

v5.0.0.30

Mantis #20147

  • Edit manual resync function to limit stockdelivery data based on frombranchid and tobranchid only for both sides.
  • Edit product name mutex.

 v5.0.0.29

  • Changed application product name to allow v4 and v5 Autosync running at the same time.
  • Changed InitialBackupDirectory setting default value to "C:\dumps".

v5.0.0.28

  •  Fix on data with Chinese characters not syncing properly and the characters were changed to question marks (???).
  • Changed branch table synctype to MaintoSub. Only main branch will be allowed to change branch data.

v5.0.0.27

  • Added backup reminder prompt on exit.

v5.0.0.26

  • Added capability to sync_posd tables for terminal syncing.
  • Removed HasPosd Table property since _posd tables will be added to table list separately.
  • Added HasNoBranchInvariantId property in TableNode for tables with special case of not having brancg-invariant primary key.
  • Re-arranged TableNode parameters to avoid confusion.

v5.0.0.24

  • Added logs for transaction rollback failure.
  • Added auto-adjust in ResultForm.
  • Adjusted Sync Rate to 100 from 1000.

v5.0.0.23

  • Removed MySQL service checker to be able to run Autosync remotely.

v5.0.0.21

  • Refactored ExitConfirmationForm to PasswordConfirmationForm.
  • Added Password Settings and Sync Settings.
  • Added password confirmation for Reset Inventory, Recompute Inventory, Backup Database, Manual Re-Sync.
  • Updated default settings.
  • Added encryption handling to UserSettings using EncryptedAttribute.
  • Added enum and array support to UserSettings.Save().
  • Removed IsManualResyncable property from DatabaseView.
  • Purposely disabled Sync Mode label and comboBox in Sync Settings.
  • Rename ManualSyncBackgroundWorker to ManualResyncBackgroundWorker.
  • Renamed Sync Settings and its components.
  • Changes SyncMode settings ui from hidden to disabled.

v5.0.0.20

  • Added where condition to a query in BranchToTerminalDataPropagator (optimization).
  • Changed FileBasedSyncContro fileServerRoot parameter to TerminalFileServerRoot user instance.
  • Changes in default settings.xml file.

v5.0.0.15

  • Modified DataPatcher.PatchOnce to return patched file size instead of patched row count.

v5.0.0.14

  • Added QueryLogger for SyncWriter/DataPatcher queries.
  • Added cancellation support for fetcher , uploader, downloader, and pathcer threads.
  • Removed Cache Settings UI.

v5.0.0.13

  • Changed DefaultBackupDirectoryOverride to InitialBackupDirectory and added setting UI in BackupSettingsForm.

v5.0.0.12

  • Backup database initial directory override

v5.0.0.9

  • Added log to DataDownloader
  • Run Fetcher every 5 minutes after completing previous run.
  • Modified Status UI.

v5.0.0.6

  • Modified UI
    • Single checkbox per row
    • Added progress Ui and result UI.
  • Modified program behavior on Manual Sync Mode:
    • no tray icon
    • exits on form close
  • Added chache clearing functionality.
  • Added Main Menu Strip and support for more datatypes on UserSettings.Save.
  • Added Form for Cache Settings.
  • Moved buttons to menu strip. Added Backup settings.
  • Separated backup process per file.

v5.0.0.1

  • Added BranchToTerminalDataPropagator database version condition.

v5.0.0

  • Added setting to sync only certain branches.

v4.0.2.9

  • Added RecomputePermission setting where the user must enter password to use the Recompute and Reset Inventory buttons when the setting is set to 1. (Mantis #13584)

v4.0.2.8

  • Fix on delete duplicate rowws with date conditions.

v4.0.2.7

  • Fix on delete duplicate bug.

v4.0.2.6

  • Set syncrate value to 100.

v4.0.2.5

  • Temporary fix for server-pos sales not syncing to main branch. (Mantis #12587)

v4.0.2.4

  • Adjusted SyncRate to 20 to reduce timeout instances during syncing

v4.0.2.3

  • Skipped syncing salesdetaildiscounts and salesheaddiscounts for database version less than 3.0

Author: Mary Nicole Quirabu
Last update: 2020-09-14 03:37


POS Demo Post Report

Author: Mary Nicole Quirabu
Last update: 2019-12-09 07:50


Support

Data recovery Procedures

attached is the list of options the developers currently have to be able to recover data from client computers where the database was already corrupted. 

Author: Robi
Last update: 2018-01-29 10:32


General Processes/Information » Server Setup

What is the overview of the systems setup per client?

Author: Robi
Last update: 2018-01-29 08:04


System directory on clients units

Directory format standard if the client is using GIT:

C:/NS/WS_X/nelsoft_inventory
C:/NS/WS_X/Autosync

C:/NS/POS
C:/NS/POS/Autosync

Important:

  1. This directory should be strictly followed.
  2. The used and most updated software should be placed in directories with this format.
  3. X is just a counter for copies of the same folder name.
  4. The characters "_X" is not necessary for the first copy.
  5. For cases where there are multiple folders with the same name, X should be replaced by the # of the copy meaning, 2 should be put on the 2nd copy, 3 on the 3rd and so on and so forth.
  6. This is important to be followed for easy implementation of the terminal manager because it will be looking for the default directory.
  7. Never keep unused/old copies inside the NS repository.

Author: Robi
Last update: 2018-01-29 08:33


Server/POS Pre-update Checklist

Here are some questions that should be answered before deciding if we are ready to update the client's unit. 

  • Client Should be informed and agree to the following:
    • branches updated and others that are not will not be syncing with each other. This goes with the POS too
    • the client should not turn off the computer while patching, this will cause issues in the data. We will leave a note on the desktop of the server once the update is done. 
  • does the client have any customized software or any AV branch?
    • Web system
    • POS
    • Autosync
    • Database
    • Data collector
      • C500
      • Android
  • Is the client using the data collector? Does their customization require additional changes before being updated?
  • How can we move the settings for their current system to the new and updated one?
  • Are all the POS computer names updated already?
  • Are there any special cases that the devs should be aware of when updating the client? e.g. The manual sync of unirich's main branch is installed in a separate office computer because there is an issue with the server.
  • is the client going to be updated as GIT or not?
  • Clients should be informed that all POS whether for peak season or regularly used should be updated on their schedule and can't be accommodated in december. 
  • should we install both the V4 and the v5 autosync at the same time?
  • Documentation:
    • are all the POS and servers in the teamviewer and logmein list?
    • are already non-existing hardware removed from the list?
    • are the list of branches and terminals in port 82 complete and accurate? 

Author: Robi
Last update: 2018-04-26 05:55


Server/POS Post-update Checklist

POS Checklist

  • There are still space left in the storage (there should be at least 2GB of space left on the unit)
  • Check if the user can login to the software
  • Computer name is being used as the IP if the setup is server based. 
  • The branch ID value is correct
  • The terminal number is still the same as previously setup
  • PTU information are encoded and are being displayed upon reprint. If there are no PTU values, please inform the Help Desk team immediately.
  • Supplier information are encoded and are being displayed upon reprint.
  • the isvat value is the same as before the update was done.
  • The links at the desktop, taskbar, and start up are all correct and not directed toward the older version
  • No folder with "old" is existing in the dropbox folder. (only 1 POS folder per terminal)
  • The autosync shortcut is at the start-up folder
  • manual sync is done and data between server and POS match
  • If the setup is owndb, all triggers should be removed in the POS DB
  • Use the query to compute total sales and collection in the server and the POS databases. Both values should match. 
  • POS time should be in sync with the server time and the time zone is correct. 
  • OWN db POS server IP should be set to "127.0.0.1" or it's own computer name.
  • Autosync is both online and syncing from and to the server
  • Run the query to select all columns and fields on the POS database and compare it to the server's database

Server Checklist

  • Triggers and procedures are complete
  • Users are able to login
  • The branch ID value is correct.
  • If the client is using customized c# software, barcode printer, data collector, update them too
  • The autosync software is running and is in the startup folder

AFTER THE UPDATE, ASSIGN SOMEONE THAT WILL VERIFY IF THE UPDATE WAS DONE COMPLETELY.

Author: Robi
Last update: 2018-06-27 12:27


Automatic GIT deployment

Git Deployment Guide (Git 2.13.2)

Automatic Git Installation

  1. Double click "Git Auto Install.bat"
  2. A checker will run before proceeding with the installation.
  3. If the installation is already done:
  4. The batch file will output "Git already installed!"
  5. Press ENTER to close the Installation Process.
  6. If the Git is not yet installed:
  7. The batch file will output "Installation process ongoing..."
  8. Wait until the batch file automatically closes
  9. Verify if "INSTALLATION COMPLETE!.txt" already exists inside the Git Deployment folder.

Manual Git Installation

  1. GNU General Public License - NEXT
  2. Select Destination Location - C:\Program Files\Git
  3. Select Components - Check: Windows Explorer Integration, Git Bash Here, Git GUI Here, Git LFS, Associate .git*, Associate .sh
  4. Select Start Menu Folder - Git
  5. Adjust your PATH environment - Use Git from the Windows Command Prompt
  6. Choosing HTTPS transport backend - Use the OpenSSL library
  7. Configuring the line ending conversions - Checkout Windows-style, commit Unix-style line endings
  8. Configuring the terminal emulator to use with Git Bash - Use MinTTY
  9. Conifiguring extra options - Check: Enable file system caching, Enable Git Credential Manager, Enable symbolic links

Git Setting up of Credentials (execute this only once during configuration)
git config --global user.name "nelsoft-client"
git config --global user.email nelsoft.systems@gmail.com

Cloning a repository (open bash in desired directory)
git clone https://github.com/nelsoft/nelsoft_inventory.git
git clone https://github.com/nelsoft/nelsoft_pos.git
git clone https://github.com/nelsoft/nelsoft_autosync.git
git clone https://github.com/nelsoft/RestaurantPOS.git

Setting up a gitignore (include the template along with the other files during setup)

  1. Go inside cloned repository
  2. Create a text file with the name gitignore.txt
  3. Open it in a text editor and add your rules, then save and close
  4. Hold SHIFT, right click the folder you're in, then select Open command window here
  5. Then rename the file in the command line with ren gitignore.txt .gitignore

Checking Out a Remote Branch (for clients' specific Git Branches)
git checkout

Failed Git Cloning due to Connectivity Problems

  1. Highlight the repository folder
  2. SHIFT+DELETE
  3. Execute git clone command again
  4. Repeat until successful

------------------------------UPDATING PHASE------------------------------
Updating Client's version via Git Pull (make sure current branch checked out is correct)
git pull

Google Account for nelsoft-client
nelsoft.systems@gmail.com
nelsoft121586

Github Account
nelsoft-client
nelsoft121586

How to unset GIT users

Purpose: to make sure that the clients can't pull other branches on their server

Proceed only after GIT is installed and the credentials are still saved

  1. open git bash
  2. run "git config --global --unset user.email" and "git config --global --unset user.name"
  3. open cmd
  4. run "cmdkey /delete:LegacyGeneric:target=git:https://github.com"
  5. there should be an alert "CMDKEY: Credential deleted successfully."

there is a .bat file attached which still has to be modified to find the git directory which you want to unset. 

Author: Robi
Last update: 2018-01-29 10:11


Server Setup inter-department responsibilities

Attached is the flowchart of the current process being followed by the support dev, help desk, technical department, and the warehouse team. 

Author: Robi
Last update: 2018-01-29 11:47


Multiple POS setup checklist

  1. Both POS should have the the same PTU information
    • KEEP THE PTU DETAILS BLANK on the reported POS to prevent the client from using it without any permit. 
  2. Both POS should have different database setups. Listed below is the setup for the hidden POS:
    1. port: 3307
    2. Schema name: test
    3. password: 123456
  3. For the terminal number, here are the guidelines to decide:
    1. Both POS should have different terminal numbers. 
    2. The reported POS should be starting from 1 and the partner POS should be starting from 11 (for clients that have small business only)
    3. The partner POS should start from 51 if the client is estimated to reach more than 10 POS
  4. If the client hasn't started using the system yet, the settings should be set is:
    • showcompleteor = 0
    • posdpercent = 100
    • posdminamt = 2000000
    • posdmaxamt = 2000000
    • posddisableswitch = 1
    • posdautoxz = 0 
    • posdautoswitch = 0
    • posdreceiptautoswitch=0
    • xzdesign_unite = 1
  5. If the client has already started using the POS the settings should be:
    • showcompleteor = 0
    • posdpercent = 100
    • posdminamt = 2000000
    • posdmaxamt = 2000000
    • posddisableswitch = 1
    • posdautoxz = 1
    • posdautoswitch = 1
    • posdreceiptautoswitch=1
    • xzdesign_unite = 1
  6. if the client is already using the POS before implementing this, we should use the O function for the new POS so that the OR number will not be too far behind.
  7. To set the new theme use the following settings: colortheme=7, pos ui type = true (this is optional, it's allowed by tony to use the same default UI)
  8. New theme = hidden | Old Theme = Reported
  9. make sure to run this query in the new port to allow remote connections:
     GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
     FLUSH PRIVILEGES;​
  10. Make sure to install the hidden software in a different directory
    C:/cp/[put_pos_files_here]​
  11. Each POS will have it's own autosync / manualsync software
  12. Recommend the following to the client:
    1. create multiple desktops so that they can easily switch between desktops and make sure the hidden one is closed when there's an ongoing investigation
    2. Transactions with credit cards, debit cards, mobile payments, and senior/pwd transactions that have reports to other third party companies should be placed in the reported POS
    3. it's better if not everyone in the company knows of the hidden POS or what it's for

Author: Robi
Last update: 2019-03-21 09:27


Server Setup Checklist

Questions to ask:

  • What should be the value of the POSD settings for all the POS?
  • is this branch of the client VAT or non-VAT?
  • is the client setup as product sync mode = 2?
  • which sync software should be included in the installation?
  • is the branch already encoded in the client base?
  • Which network is this branch included in or is it a standalone branch? 
  • are there multiple main branch in the same computer? If yes, create a separate prodpic folder for each main branch and update the config.xml file for each. 
  • is the client customized? what version of the software should I use? the core or their own version?
  • What are the versions of the other branches?
  • should I setup this branch as Git or not?
  • should I setup the autosync or the manual sync?
  • If manual sync is to be setup, are the pos also using the manual sync? should I setup the http file server? 

Author: Robi
Last update: 2019-01-14 11:50


General Processes/Information

Paper Sizes Guide

Author: Robi
Last update: 2018-01-29 08:24


Product Versioning Scheme Followed by Nelsoft

For the web system, POS, and Autosync versioning:

  • follow semantic versioning with additional 1 digit (4) on the left for the core version.
    • "Given a version number MAJOR.MINOR.PATCH, increment the:
      MAJOR version when you make incompatible API changes,
      MINOR version when you add functionality in a backwards-compatible manner, and
      PATCH version when you make backwards-compatible bug fixes.
      Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format"

For the database versioning

  • only 2 digits will be used for the database since any changes here is a major change.
  • to verify if the database has customizations the dev can opt to do 1 of the following:
    • use mysqldbcompare.exe
    • check the nelsoft-db repository if there is a branch for the client.
    • major changes to the database version will be made if the following updates are done:
    • new tables on existing transactions
    • modification on columns for the tables under these major transactions
      • purchase receive
      • sales
      • purchase order
      • stock delivery
      • stock request
      • inventory adjust
      • minor modifications otherwise

Author: Robi
Last update: 2018-01-29 08:43


Nelsoft's Simplified Development process

Author: Robi
Last update: 2018-01-29 08:41


POS accreditation


For temporary use only:

ACC: 02950000000333052047391
PosProviderName= OmegaPOS Inc.
PosProviderAddress=21st Floor, The Enterprise Center, 6750, Ayala Avenue, Makati, 1226 Metro Manila
PosProviderTIN=Supplier TIN: 000-003-290-370
ACC_date=Date Acc.: 03/15/2011

For NTS (Nelsoft Technology Incorporated)

ACC: 0510084880792014080112
PosProviderName=NELSOFT TECHNOLOGY INCORPORATED
PosProviderAddress=2835-B Park Avenue Brgy. 081 Pasay City
PosProviderTIN=Supplier TIN: 008-488-079-000
ACC_date=Date Acc.: 09/09/2014

For NTI (Nelsoft Technology Service)

ACC: 03840000317000054045982
PosProviderName=NELSOFT TECHNOLOGY SERVICE
PosProviderAddress=602A 57 SGT. RIVERA ST. QUEZON CITY
PosProviderTIN=Supplier TIN: 400-003-170-0000
ACC_date=Date Acc.: 10/07/2011

Author: Robi
Last update: 2018-06-20 11:31


Monthly Service Charging System

Author: Mary Nicole Quirabu
Last update: 2019-12-11 11:51


Service Unit Approval Flowchart

Below is the flowchart process of getting approval of service unit:

Below is the second version of the flowchart that is updated on January 21, 2020:

Author: Mary Nicole Quirabu
Last update: 2020-01-21 08:18


Migration to CIRMS-POS process

Author: admin
Last update: 2020-05-20 12:57


Update barcode scanner (PT BS-041 only) setting to scan UPCA/EAN13 barcodes

Scan the first barcode to: ENTER SETUP    

 

Scan this to update the setting: 

 

and then finally scan the last barcode to exit the setup: 

Author: Mary Nicole Quirabu
Last update: 2022-05-27 11:13


General Processes/Information » GIT

Nelsoft's GIT Branching Model

Standard GIT Branching Model

Nelsoft's Methodology

Branches

  1. Master - Production level version of the system. It means that only thoroughly tested features and/or bug fixes should be merged to this version. Developers can only merge to this branch only thru pull request.
  2. Hotfix (HF) - Branch out directly from master. For other companies, this branch should only be created for bug fixes. For Nelsoft, all our branches are HF only because we opt to merge features and fixes immediately rather than integrate them all at the same time through a release branch. Therefore, Release branches and Feature branches that were used before are not practiced anymore. The number after the HF prefix is the mantis number that corresponds to the feature/issue. This means that all tasks should have its own mantis reference before proceeding.
  3. Advanced Version (AV) - Branch out from the master branch. All features created here should be compatible with the master features because clients with an AV branch will be merged back on the next possible version of the core.
  4. Customized System (CS) - clients with CS branches have customized systems that will not be updated anymore because they have features that are not compatible with the Core system.
  5. Full customized branch (FCB) - clients that have this branch have a full customized systems 100% not connected to the inventory system.

Branch Naming

Naming format should be branchtype_mantisid_masterversionbranchout

ex: AV_10001/ AV_10001_4.2.0.3

Branch Grouping

Branch grouping should be implemented to cleanly group related branches with each other. For example, all branches related to a client should have its group along with the main branch for that client. The format should be like this:

Branching out

Branching out to create CS branches means that the branch will be treated as its own master branch and will not be merged back to the Core Master branch. This is how customized clients are managed. It means that any updates to the master branch like bug fixes and/or optimizations will not be fixed in the CS branch as well. The AV branches (not in the image) unlike the CS branch, will be merged back to the master branch once the feature has been implemented in the master branch. The AV branches are created to answer the client's needs for rush features that can't be easily merged to master because it has to be planned first for other clients.

Committing by Feature

Committing should be separated by feature. Again, committing should never be done all at once. For example, there are times that multiple features or issues are within the same mantis number. This allows us to cherry pick per feature and tracking the changes per feature can be easily done. Imagine tracking which files each feature has affected if all of the files are committed at once. This will be checked by the lead and will be rejected once PR is done if the process isn't followed.

Commit message format

  1. There will be 3 parts for the commit message: subject, references, body.
  2. Separate subject from the body with a blank line.
  3. Limit the subject line to 50 characters.
  4. Add the GIT branch type and the mantis ID to the start of the subject.
  5. Use the same subject if there are multiple commits for a certain feature or fix.
  6. Use the imperative mood in the subject line like points A-C and avoid using format from points D and E:
    1. HF_10000: Refactor subsystem X for readability
    2. HF_10000: Update getting started documentation
    3. HF_10000: Remove deprecated methods
    4. HF_10000: Fixed bug with Y
    5. HF_10000: Changing behavior of X
  7. Use the body to explain what and why versus the how of the commit.

Cleaning up branches upon finishing tasks

It's the responsibility of each developer to clean up branches from the origin if unneeded. Examples are finished hotfixes, merged AV's to the master, old CS branches, merged branches to the main CS/AV branches etc.

 

Pull request

  1. Pull request will be implemented for the master branch.
  2. All developers are required to make pull requests on all fixes and features regardless how urgent it is.
  3. Every end of the day short meetings will be done for discussion of pull request features.
  4. Urgent requests can be met earlier for approval of the request ASAP.
  5. Actual process:
    1. Developer branches out from main branches.
    2. Developer modifies local branch.
    3. Developer should not merge the local branch to any of the main branches.
    4. Developer should ask for the pull request for the local branch.
    5. Source tree or GIT will push the branch to the origin to be reviewed by the lead.
    6. After review, the team lead will merge the branch to the main branch in the origin.
    7. After merging, the team lead should inform the developers that the merge was complete and successful and the developers can delete the local branch in the dev's computer.

 Risks

Merging/rebase and conflict resolution

Scenario #1: conflict resolution causes feature/bug fix to accidentally be reverted into older code.

This part of the code (colored red) is already moved to a new position (colored green). When the master branch is merged again to this branch, the code change is reverted to the old arrangement. (See next picture)

This part of the code (colored red) is already moved to a new position (colored green). When the master branch is merged again to this branch, the code change is reverted to the old arrangement. (See next picture)

After the merge, the lines were back at the 150+ range.

This caused a conflict during the merge. When the dev tried to resolve the conflict, he inadvertently chose the older code to commit.

Solution:

  1. As a dev handling the conflict with another dev, discuss the conflict with the other dev which part of the code should be kept or not.
  2. For minor conflicts, do not just check the difference (red or green changes) but also the surrounding code and the effect of the new changes to them.

Sources:

Git image created using: https://github.com/nicoespeon/gitgraph.js/tree/master/packages/gitgraph-js

Author: Clarice
Last update: 2025-06-18 16:18


What is the process for the Nelsoft db repository?

Author: Robi
Last update: 2018-01-29 08:01


Git Deployment Guide (Git 2.13.2)


------------------------------INSTALLATION PHASE------------------------------
Automatic Git Installation
Double click "Git Auto Install.bat"
A checker will run before proceeding with the installation.
If the installation is already done:
The batch file will output "Git already installed!"
Press ENTER to close the Installation Process.
If the Git is not yet installed:
The batch file will output "Installation process ongoing..."
Wait until the batch file automatically closes
Verify if "INSTALLATION COMPLETE!.txt" already exists inside the Git Deployment folder.

Manual Git Installation
GNU General Public License - NEXT
Select Destination Location - C:\Program Files\Git
Select Components - Check: Windows Explorer Integration, Git Bash Here, Git GUI Here, Git LFS, Associate .git*, Associate .sh
Select Start Menu Folder - Git
Adjust your PATH environment - Use Git from the Windows Command Prompt
Choosing HTTPS transport backend - Use the OpenSSL library
Configuring the line ending conversions - Checkout Windows-style, commit Unix-style line endings
Configuring the terminal emulator to use with Git Bash - Use MinTTY
Conifiguring extra options - Check: Enable file system caching, Enable Git Credential Manager, Enable symbolic links

Git Setting up of Credentials (execute this only once during configuration)
git config --global user.name "nelsoft-client"
git config --global user.email nelsoft.systems@gmail.com

Cloning a repository (open bash in desired directory)
git clone https://github.com/nelsoft/nelsoft_inventory.git
git clone https://github.com/nelsoft/nelsoft_pos.git
git clone https://github.com/nelsoft/nelsoft_autosync.git
git clone https://github.com/nelsoft/RestaurantPOS.git

Setting up a gitignore (include the template along with the other files during setup)
Go inside cloned repository
Create a text file with the name gitignore.txt
Open it in a text editor and add your rules, then save and close
Hold SHIFT, right click the folder you're in, then select Open command window here
Then rename the file in the command line with ren gitignore.txt .gitignore

Checking Out a Remote Branch (for clients' specific Git Branches)
git checkout

Failed Git Cloning due to Connectivity Problems
Highlight the repository folder
SHIFT+DELETE
Execute git clone command again
Repeat until successful
------------------------------UPDATING PHASE------------------------------
Updating Client's version via Git Pull (make sure current branch checked out is correct)
git pull

Google Account for nelsoft-client
nelsoft.systems@gmail.com
nelsoft121586

Github Account
nelsoft-client
nelsoft121586

Author: Robi
Last update: 2018-06-05 10:37


General Processes/Information » Mantis

How to properly use the mantis bug tracking system?

Attached is the mantis documentation how to properly encode in the bug tracking software. 

Author: Robi
Last update: 2023-07-04 11:20


Core C-Sharp » Training

Core C-Sharp Developer Training Process

Author: Robi
Last update: 2018-01-29 08:21


Customization » Training

Final Developer Exam Criteria

QA criteria
Following instructions:10
Amount of bug:45 (-2ea for minor, -5ea for major)
Frequency of bug(same bug re appears after fix): 25 (-3 per occurance)
Team communication: 10
Deadline:10

 

Developer Criteria
DB design: 20
Following of instruction: 10
Coding Style(PSR):10
Query and logic design :40
Deadline:20

Author: Robi
Last update: 2018-02-08 07:47


Help Desk » Training

Web System Detailed Training Syllabus

Attached is the list of topics and features that should be discussed when training someone to use the back office system. 

The system version for that training guideline is 4.2.0.3

Author: Robi
Last update: 2018-01-29 11:51


Simplified Request Requirement Gathering Guidelines

Attached are the basic questions or information that are needed customization team.

Author: Robi
Last update: 2018-01-29 11:53


Support » Training

Support Developer Training Process

Author: Robi
Last update: 2018-01-29 08:21


Just Support things

an introduction to how it is to be a support developer in Nelsoft. 

Author: Robi
Last update: 2018-02-09 08:56


Internal Rules and Regulations

General

Data Fix

  • Manual Sync/Re-Sync
    • All developers should get approval before  manual sync is done. 

Updates

  • All developers should make screen shots of the critical steps they make during the update
  • All developers should keep their own screenshots for historical review when an issue regarding the update arises. 
  • No screenshot will make the developer the primary issue upon investigation

Author: Robi
Last update: 2018-02-09 09:12


General Processes/Information » Product Release

Versions with Major Issues

This entry is in revision and can not be displayed.

Author: Mary Nicole Quirabu
Last update: 2021-03-17 09:02


Version Compatibility table

 

# Web POS Database Autosync Manual Sync Runsql
1 4.2.0.3 4.4.3.34 3.3 4.0.0.21 5.0.0.35  
2 4.3.X.X 4.4.4.0 3.4 4.0.0.23  5.0.0.36   
 3 4.3.X.X 4.4.4.8 3.5 4.0.2.24  5.0.0.37   
4.3.X.X 4.4.4.28 4.0 4.0.3.0 5.0.1.0  
5 4.4.X.X 4.4.4.28 4.0 4.0.3.0 5.0.1.0

receive_sd_permission

 

*only runsql is necessary to be updated to 4.4 from 4.3 

Author: Robi
Last update: 2018-08-03 11:07


Release Checklist

  • Make sure there are change logs for each software
    • web
    • pos
    • manual sync
    • auto sync
    • database
  • Tag the version in GIT upon release.
  • Before releasing the patch on any client's production server, it should be tested on a dummy or staging server.
  • All departments(including the product owners) should be trained or informed of any major changes on the next release.
  • List all pending mantis/feature that should be existing in the patch
  • Check which AV branches should be updated immediately after the release of the patch
  • Update the version compatibility table
  • Make sure that the javascript files with changes have an increment in version. this is to avoid having problems with the browsers cache. 

Author: Robi
Last update: 2018-02-26 11:20


Nelsoft Versioning Scheme

  • Nelsoft is using the standard git branching model: 

  • Nelsoft will follow the semantic versioning standard. The only difference is the 4th digit to the left which will be our differentiator whether the system being talked about is from the core or the v5 system.
  • The semantic version standard can be reviewed here: https://semver.org/
  • The notable parts we should take note are the following:
    • Given a version number MAJOR.MINOR.PATCH, increment the:

      1. MAJOR version when you make incompatible API changes,
      2. MINOR version when you add functionality in a backwards-compatible manner, and
      3. PATCH version when you make backwards-compatible bug fixes.
    • Once a versioned package has been released, the contents of that version MUST NOT be modified. Any modifications MUST be released as a new version.
  • Like the Git standard, we will increment the version everytime there is a merge done to the master branch.

Author: Robi
Last update: 2018-02-13 05:19


Versions with Major Issues

Retail POS

Start Version Fixed version Issue
4.4.5.1 4.4.7.14  BIR reports issue with posd auto switch
4.4.17.0 4.4.19.0  Member not earning due to error
 4.4.19.0    Slow to initialize on first run after update
N/A 4.4.21.3

 Transaction cutoffs being deleted when pos software is forced close and change form is still open (resolved in 64258)

Resto POS

Start Version Fixed version Issue
     Reports have no switch functionality
     

Author: Mary Nicole Quirabu
Last update: 2022-01-10 04:55


Product Manuals

HRIS Payroll System Manual

Attached is the latest version of the manual. 

Author:
Last update: 2018-01-29 10:00


Terminal Manager Manual

Author: Robi
Last update: 2025-07-23 07:31


Barcode Printer Manual

Author: Robi
Last update: 2018-08-28 09:45


Inventory System Manual

Author: Robi
Last update: 2018-11-16 09:46


Restaurant POS manual

Author: Robi
Last update: 2019-07-12 05:39


Retail POS manual

Author: Robi
Last update: 2019-06-21 07:25


Windows Data Collector Manual

Author: Robi
Last update: 2018-07-11 05:44


Registration System Manual

Author: Robi
Last update: 2018-01-29 09:58


Data Checker Manual

Author: Robi
Last update: 2018-01-29 09:59


Testmate Manual

Author: Robi
Last update: 2018-01-29 10:07


Client base Manual

Attached is the unfinished document on how to use the client base system. 

Author: Robi
Last update: 2018-01-29 12:04


AutoSync v4 Manual

Author: Mary Nicole Quirabu
Last update: 2019-06-26 10:06


Retail POS Accreditation

Author: Mary Nicole Quirabu
Last update: 2019-06-04 11:46


Retail POS Config

Author: Mary Nicole Quirabu
Last update: 2020-02-19 05:46


Nelsoft Patcher Manual

Author: Mary Nicole Quirabu
Last update: 2019-01-29 05:07


Server Setup Manual

Author: Mary Nicole Quirabu
Last update: 2019-01-29 05:08


CIRMS Manual

Author: Robi Navarro
Last update: 2019-12-11 04:31


Queue Management Developer Manual

 Table of Contents

 

Version Compatibility

The table below shows the minimum version of the Queue Management software, test case specification, and SQLite compatible with the version of this document.

System Document Test Case Specifications Queue Management Software SQLite
1.0 1.0 1.0.0.0 3.27.2
2.0 1.0 1.0.0.0 3.27.2

The Test Case Specifications can be found here.

 

About Queue Management

System Summary

The queue management software helps users to line up the orders from their customers sent from the POS. The users can move the queued orders from 'Now Preparing' to 'Now Serving' to 'Done'. The customers can also view the queueing real time on another screen but with only 'Now Preparing' and 'Now Serving' panels.

System Requirements

Below are the dependencies needed for the latest version of Queue Management software to work properly:

  • Target Framework: .Net Framework 4.7.2
  • Platform Target: Any CPU, 32-bit or 64-bit
  • Operating System: Windows 7 SP1
  • Packages & Libraries:
    • Newtonsoft.Json v12.0.2
    • SQLite v1.0.111.0
    • Dapper v2.0.30
    • Costura.Fody v3.3.3
    • Fody v6.0.0

The following are the safest minimum hardware requirements for Queue Management:

  • At least 4GB RAM
  • For screen resolution:
    • 1024 x 768 for User View
    • 1280 x 720 for Customer View

 

Features and Functionalities

This section discusses the functionalities and uses of the Queue Management software.

Main Features

The Queue Management software is able to store the queue numbers without losing data even on forced shutdown of unit. Its settings is accessible directly through the software. It also uses C# sockets for the communication between POS and this software.

The Queue Management software has two screens. One for user view and the other view is for customers. Both of the screens now use a standard layout, and their design (main logo, background color and image, font style and color) can be configured based on client's preference.

Below is the User View:

  • The Now Preparing panel is where the queue numbers from POS are transferred to automatically.
  • The Now Serving panel is where the queue numbers are moved to when the order of customer is done and complete. Queue numbers under this panel can be moved to Done panel or back to Now Preparing.
  • The Done panel is where the queue numbers are moved to when the order of customer has been served to them. Only five numbers are shown on this panel; older numbers are hidden.
  • This Reset button clears the queue numbers in all panels.
  • The numeric keypad is used by users for managing the software. The button shortcuts work whether the Num Lock key is turned on or off.
    • Button 4 (left) is used to move selector to the left of current panel.
    • Button 6 (right) is used to move selector to the right of current panel.
    • Button 8 (up) is used to move selector to previous number in the queue of current panel.
    • Button 2 (down) is used to move selector to next number in the queue of current panel.
    • When the selector is moved to another panel, it automatically selects the first number in its queue list.
    • The Enter key is used to move the selected queue number to the next panel. For example, from Now Preparing to Now Serving or from Now Serving to Done.
    • The Del key is used to move the selected queue number to the previous panel. For example, from Done to Now Serving or from Now Serving to Now Preparing.
    • When a queue number is moved to the next panel, the next number in current panel's queue is selected.
    • When a number is moved back to its previous panel, it is returned to where it was in the queue.
    • The plus (+) key is used to manually input a queue number. The number will be added in the Now Preparing panel.

NOTE: Users can switch to a different window by using the Alt + Tab keys.

Below is the Customer View

This screenshot is an example of Customer View showing images in the image slider.

  • There are only two panel in customer's view: Now Serving and Now Preparing
  • For this view, both panels can display the numbers in 2 columns and 7 rows for each.
  • The Done panel is hidden from this view.
  • A sound is played when a queue number is moved from Now Preparing to Now Serving.
  • The logo image which is located on the upper right of the view can be changed if the client wants to.
  • This view can have an image slider if the client wants to. The image slider is located on the lower right part of the view. A folder, where they can put the images, will be generated when the software is opened for the first time.
    • The images folder location: C:\Users\Public\Documents\Queue Management\Images
  • The image slider allows these file formats of the images: jpg/jpeg, png, bmp.

The In-App Editor

The application's in-app editor is for customizing the User View and Customer View according to the preferences of the user that they can set themselves. This can be accessed in the User View through the gears icon located on the topmost right corner as shown below:

There are two tabs in the editor, one for Customer View and one for User view.

  • Main Logo Image - This is where users can set the logo image to be displayed on the upper right part of the Customer View. The minimum allowed image dimension is 500 x 300 pixels. The only allowed filed formats are jpg, jpeg, png, bmp.
  • Background Image - This is where to set the background image of Customer View.  If this is selected, Background Color setting will be disabled since only either of the two can be used. The minimum allowed image dimension is 1280 x 720 pixels.
  • Background Color - This is where to set the background color of Customer View. If this is selected, Background Image will be disabled since only either of the two can be used.
  • Queue Number Font Style - This sets the font style of queue numbers displayed on Customer View. The only allowed font format is tff.
  • Queue Number Font Color - This sets the color of queue numbers displayed on the screen.
  • Now Preparing / Now Serving Font Style - Users can set the font style of "Now Preparing" and "Now Serving" here for Customer View. The allowed font format is tff.
  • Now Preparing / Now Serving Font Color - Users can set the color of "Now Preparing" and "Now Serving" here for Customer View.
  • Advertisement Images Folder - The Open button beside this only opens the folder where the images in image slider are stored. Any changes made in the said folder will take effect only after restarting the application. The allowed dimension for the images should be at least 300 x 300 pixels.

  • Background Image - This is where to set the background image of User View.  If this is selected, Background Color setting will be disabled since only either of the two can be used. The minimum allowed image dimension is 1024 x 720 pixels.
  • Background Color - This is where to set the background color of Customer View. If this is selected, Background Image will be disabledsince only either of the two can be used.
  • Now Preparing / Now Serving / Done Font Style - This sets the font style for "Now Preparing", "Now Serving", and "Done". The allowed font format is tff.
  • Now Preparing / Now Serving / Done Font Color - This sets the color for "Now Preparing", "Now Serving", and "Done" on User View.
  • Queue Number Font Style - This sets the font style of queue numbers on all panels. The allowed font format is tff.
  • Queue Selected Box Color - This sets the box color of a queue number when it is selected.
  • Queue Preparing Font Color - This sets the font color of queue numbers under Now Preparing panel.
  • Queue Serving Font Color - This sets the font color of queue numbers under Now Serving panel.
  • Queue Done Font Color - This sets the font color of queue numbers under Done panel.
  • Queue Preparing Box Color - This sets the box color of queue numbers under Now Preparing panel.
  • Queue Serving Box Color - This sets the box color of queue numbers under Now Serving panel.
  • Queue Done Box Color - This sets the box color of queue number under Done panel.
  • Reset Font Style - This sets the font style of the Reset button. The only allowed font format is tff.
  • Reset Button Image - This sets the background imaged of Reset button. The allowed file formats are jpg, jpeg, png, and bmp. 
  • Users can save their changes on the editor by clicking the Apply button. The changes will take effect after clicking the OK button which restarts the application showing the applied changes.
    • If the user made changes and clicked the “OK” button without clicking “Apply,” a prompt will appear that asks the user to confirm the changes. Clicking “Yes” will restart the program with the applied changes. Clicking “No” will send the user back to the Settings window.
  • The Cancel button is only enabled when a user made changes, and when it is clicked, it closes the editor and cancel all changes made. This button becomes disabled when the Apply button is clicked.
  • The Restore Default button will revert all settings to their default values. The changes will only take effect after clicking the Apply or OK button.

Software Settings

A subfolder named "Queue Management" will now be saved inside the main folder where QueueMgmt.exe application file is located. If the subfolder "Queue Management" is non-existent, then it will automatically be created upon opening the executable file.

Inside the "Queue Management" folder, there contains a "Settings.txt" where a user can configure the desired images, font style and font colors to use in Customer View and User View. The following settings include:

  • MainLogoPath - Set here the full path of the main logo image file (NOTE: If path is non-existent, the main logo in the Customer View will appear blank)
  • Customer_BackgroundImagePath - Set here the full image file path for Customer View (NOTE: If path is non-existent, the application will instead use the background color set below)
  • Customer_BackgroundColor - Set here the background color for Customer View
  • Customer_QueueNumberFontStyle - Set here the full file path of queue numbers font style for Customer View (NOTE: If path is non-existent, the application will use a generic sans serif font)
  • Customer_QueueNumberFontColor - Set here the font color of queue number in Customer View
  • Customer_NowPreparingFontStyle - Set here the full file path for font style of both "Now Preparing" and "Now Serving" in Customer View (NOTE: If path is non-existent, the application will use a generic monospace font)
  • Customer_NowPreparingFontColor - Set here the font color of "Now Preparing" and "Now Serving" in Customer View
  • User_BackgroundImagePath - Set here the full image file path for User View (NOTE: If path is non-existent, the application will instead use the background color set below)
  • User_BackgroundColor - Set here the background color for User View
  • User_NowPreparingFontStyle - Set here the full file path for font style of both "Now Preparing" and "Now Serving" in User View (NOTE: If path is non-existent, the application will use a generic monospace font)
  • User_NowPreparingFontColor - Set here the font color of "Now Preparing" and "Now Serving" in User View
  • User_QueueNumberFontStyle - Set here the full file path of queue numbers font style for User View (NOTE: If path is non-existent, the application will use a generic sans serif font)
  • User_Queue_PreparingBackColor - Set here the background color of queue numbers at the "Now Preparing" panel in User View
  • User_Queue_ServingBackColor - Set here the background color of queue numbers at the "Now Serving" panel in User View
  • User_Queue_DoneBackColor - Set here the background color of queue numbers at the "Done" panel in User View
  • User_Queue_PreparingFontColor - Set here the font color of queue numbers at the "Now Preparing" panel in User View
  • User_Queue_ServingFontColor - Set here the font color of queue numbers at the "Now Serving" panel in User View
  • User_Queue_DoneFontColor - Set here the font color of queue numbers at the "Done" panel in User View
  • ResetFontStyle - Set here the full file path for font style of "Reset" in User View (NOTE: If path is non-existent, the application will use a generic monospace font)
  • ResetButtonImagePath - Set here the full image file path for reset button (NOTE: If path is non-existent, the application will instead use a default reset button design)

Users can use any of the 147 color names listed on Note.txt file which is also inside the "Queue Management" folder. They can also use any 6-digit hexadecimal color code (ex. "383838" for DarkGray, "1C8981" for a shade of blue green). If the user used none of the allowed color values listed, the application will set the color to Black.

Another folder named "Queue Management" will now be saved at C drive (C:\Users\Public\Documents\Queue Management) which will contain subfolders "Fonts" and "Images"

  • Subfolder "Fonts" will store the files of custom font style (as long as file format is .TTF) that the user desires to apply in the application design.
  • Subfolder "Images" will store image files that user desires to use for the main logo, slide show images in customer view, backgrounds for customer view and user view.
    • In this subfolder, another subfolder named "SliderImages" will store image files for the slide show in customer view.

Sending of Queue Numbers from POS to Queue Management

This part shows the process of entering queue numbers from POS to the queue management software.

  1. Make sure the Queue Management software is open to be able to send the queue numbers.
  2. Open command prompt.
  3. Change the directory to the folder location of Client.exe. See example below.

  4. Then, input "client <ip address> <queue number>". If local, input "client <queue number>". See example below.

NOTE: The queue number can be 3 - 4 digits only, less or more than that will not be accepted.

 

Process Flow

The diagrams below show the flow of the whole process of using the Queue Management software in two ways.

Queue Number From POS

Manual Input of Queue Number

 

Frequently Asked Questions

Things to Remember

  • When the Num Lock key is off, the numeric keypad can be used for moving the selector or the queue number to another panel, but it cannot be used when manually inputting a queue number.

Possible Issues to be Encountered

  1. Application not working
    • This issue may happen when there's not enough storage and when database is full due to not clearing or resetting data.
  2. Application is slower than usual
    • This happens when database is full due to not clearing or resetting data. Another cause may be there's not enough storage or not enough RAM to properly accommodate the software.
  3. Disrupted display
    • This occurs when an extended display is not used or when the screen resolution is lower than the minimum given in System Requirements.
    • The recommended value for scale and layout is 100%. When the value is higher than 125%, the display becomes disrupted.
  4. Unable to enter order / move order
    • This may happen when the numeric keypad is not working properly.
  5. Numeric keypad is working but unable to add order
    • This happens when the Num Lock key is off, and user tries to manually input a queue number with plus (+) key on the keypad.

Software Limitations

  1. Only 3 - 4 digits are accepted for queue number.
  2. Only one instance of the software can be opened.
  3. The allowed file formats for the image slider are png, jpg, jpeg, bmp.

Author: Mary Nicole Quirabu
Last update: 2020-01-22 09:36


Core C-Sharp » Documentation

SM Coin System Requirements and Documents

Attached are the documentations related to SM's coin system and the POS' important requirements for the POS to work with the SM's system. 

Author: Robi
Last update: 2019-09-04 04:36


POS Settings List

V4.4.4.0

Retail POS Settings

Important Settings (data related):

  • POS Sync Mode
    • 0 = ServerPos; 1 = PosOwnDb
    • If set to ServerPos, transactions are saved to sync table.
    • If set to PosOwnDb, transactions are saved to terminalsync table.
    • This is automatic already, if the POS finds a "terminalno = 0" in the config table of the database, it will assume that it's a server pos type system.
  • Card Payments to Posd - If set to true, transactions with card payments will be also be saved to poscardpayment_posd table. Default is false.
  • Senior Transaction to Posd – If set to true, transactions with senior discount applied will be saved to Posd. Default is false.
  • Terminal
    • should be set carefully to avoid data issues
    • isn't required to startat 1
    • this will affect the first 1 or 2 digits of the OR/SI number
    • Changing this will reset the OR/SI from the start.
  • BranchId - branch where the terminal is connected to. 
  • Server
    • Preferably a computer name rather than static IP
    • This can be set as the static IP or the computer name of the server.
    • can be localhost or 127.0.0.1 if the POS has its own database
  • UserId - usually root
  • Password
    • has different values especially for older clients 
    • but the most usual value is still our default password. 
  • Database
    • can be another value not "nelsoft" 
    • be careful with this especially when the client has multiple schemas. 
    • incorrect value for this will mean a lot of datafix to be done. 

Important Settings (Reporting related):

  • isvat
    • This should be set based on the client's business tax type
    • it's allowable  by the BIR to be changed from non-vat to vat. No datafix is needed for that  case we just need to change the settings becacuse the client can be set to vat from non-vat without fixing the old transactions. 
    • but changing from VAT to NON-VAT is not allowable by the BIR
  • POS UI Type
    • If set to true, POS UI will change. On external settings.txt file, if ColorTheme is set to 7, new UI and old color theme is retained. Default value is false.
    • new UI is reserved for the other pos
  • POS Name
    • Sets name of POS terminal.
    • Should be set as the registered name of the software
    • Should include the version of the software registered in the BIR
    • will be concatenated with the serial number field and the posdcode values.
  • Supplier Information
    • POS Provider Name – Registered name of POS Provider.
    • POS Provider Address – Address of POS Provider.
    • POS Provider Tin – Registered TIN number of POS Provider.
    • Accreditation Date – Registered accreditation date of POS terminal
    • Approval Date - Date Approval of the PTU
  • CrepDsop – Percentage. Sets the percentage amount to be taken from the actual transaction amount.
  • NimDsop – Min. Minimum amount basis for the Posd amount. Posd amount will be equal to the actual transaction amount if Posd amount is lower than the min amount value.
  • XamDsop – Max. Maximum amount basis for the Posd amount. Posd amount is set to 100 if Posd amount is greater than the max amount value.
  • Posd AutoXZ
    • If set to true, F3 button is Exit. If set to false, F3 button is Other Readings. [f3] Other readings is used to generate other terminal readings.
    • if set to true, original will base its old grand total for the current day from the new grand total of the POSD yesterday.
  • Posd AutoSwitch – If set to true, Inventory is set to Posd mode by default. Click button H to switch mode. Default is false.
  • XZ Design Unite – If set to true, Printing format of Xread and Zread is the same. Default is true.
  • Terminal Digit
    • Sets the digit limit of Terminal No. Default is 2.
    • max value is 2
    • if changed from 1 to 2 or vice versa, will not affect the continuity of the OR/SI number.
  • Posd Disable Switch – If set to true, switching from Posd mode and vice versa is disabled.
  • Posd Receipt AutoSwitch – If set to true, Reprint receipt is set to Posd mode by default. Click button H to switch to mode. Default is false.
  • All PTU related settings
    • should all be encoded and should match the PTU printed by the client. 

Others

  • Avoid Invalid Price – When set to true, selected products with selling price below their purchase price is not allowed. Default is false.
  • Hide Reprint Receipt – If set to true, [f4] Reprint Receipt button on [f12] Menu is hidden. Default is false.
  • Allow Zero Price – If set to true, product list on Search Product form allows the display of products with 0.00 selling price. Default is false.
  • Reading Date range – unused
  • Gross Method – On generating XZ readings. If set to true, on gross sales summary it will include Gross sales before and after discount, tax and net sales.
  • OR Print Count – Sets the number of times a receipt will be printed per transaction. Default is 1.
  • Service Charge
    • Percentage value of service charge per transaction.
    • Default is 0
  • Local Tax
    • Percentage value of tax amount per transaction.
    • Default is 0.
  • Show Details CC in Zread
    • If set to true, it shows a detailed summary of credit card transactions method used on Z read.
    • Default is True
  • Terminal Accountability – Allows printing of terminal accountability summary on [f12] Menu -> [f1] Inventory -> [f4] Terminal Accountability. Default is false. (Note: when Inventory is on posd mode, F4 button is hidden.)
  • Refund Mode – (0-Off, 1-Basic, 2-Detailed) When transaction has refunded item, if set to Off, product will be refunded. If set to Basic, before proceeding to payment the user is required to input sales memo. If set to Detailed, a refund form will be displayed where the user is required to input returned qty, damage qty, remarks and sales OR # from where the product was transacted. Default mode is Detailed.
  • Product Search Mode – (0 - Default, 1 - Exact Match, 2 – Button Grid) If set to Exact Match, product list on Search Product form is filtered based on exact value on search input field. If set to Button Grid, Products are displayed as button grids and categorized per department.
  • Customer Display Length – Sets the customer pole display limit. Default is 20.
  • OR Preview – Shows the preview of the receipt before reprinting.
  • Ads URL – Web url to be displayed on the 2nd screen. If value is blank, 2nd screen is not visible.
  • Max Cash Collection – Maximum amount to be collected from cash drawer.
  • Auto Show Keyboard – If set to false. On screen keyboard will be displayed. Default is false.
  • Discount Details – If set to true, print complete discount summary on receipt.
  • POS Mode – (1- default, 2-backend, 3-frontend) If set to 2-backend, POS is allowed take order and transact payments and transactions created from takeorderonly. If set to 3-frontend, POS is set to takeorderonly mode.
  • Salesman Password – On assigning a salesman to current transaction. If set to false, registered salesman username is required. If set to true, salesman username and password is required. Default is false.
  • Product Qty form – If set to true, after selecting a product from the Search Product form, it will display Product Price and Quantity form which will allow the user to change the initial quantity and price. Default value is false. (Note: value will be disregarded if Product search mode is 2-Button Grid)
  • Enable Negative Payment – allows negative amount payment.
  • Member Points Mode – (0-Allbranch, 1-Localbranch) If set to Local branch, allow payment transactions using member points only if member is registered on current branch. If set to All branch, payment of members points is allowed on all branches. Default is 0-Allbranch.
  • Weighing Scale Barcode – Set default code format for printing weighing scale barcode.
  • POS Cut Off – If set to true, sets POS cut off time based on cutoffs table.
  • Show Product Barcode – If set to true, Barcode Column is displayed on product list on Search Product form. Default is true. (Note: value will be disregarded if Product search mode is 2-Button Grid)
  • Show Product Client Barcode – If set to true, Client Barcode Column is displayed on product list on Search Product form. Default is false. (Note: value will be disregarded if Product search mode is 2-Button Grid)
  • Show Product Inv. - If set to true, Inventory Column is displayed on product list on Search Product form. Default is false. (Note: value will be disregarded if Product search mode is 2-Button Grid)
  • Show Stock Number - If set to true, Stock No. Column is displayed on product list on Search Product form. Default is true. (Note: value will be disregarded if Product search mode is 2-Button Grid)
  • Show Description - If set to true, Description Column is displayed on product list on Search Product form. Default is false. (Note: value will be disregarded if Product search mode is 2-Button Grid)
  • Show Product Memo - If set to true, Memo Column is displayed on product list on Search Product form. Default is false. (Note: value will be disregarded if Product search mode is 2-Button Grid)
  • Expand Product Column - If set to true, Product Column display on product list will adjust depending on product name. Default is true. (Note: value will be disregarded if Product search mode is 2-Button Grid)
  • Separate Product Entry – If set to true, if the same product is on the current OR is selected again from the product list, instead of adjusting the quantity of the product on the current OR, it will be a new product entry. Default is false.
  • Product Search Sort By – (1-Product barcode, 2- Client barcode, 3 – StockNo, 4-Price, 5-ProductName, 6-Desc, 7-Memo, 8-Inv) Sets the way the products are sorted on product list. (Note: value will be disregarded if Product search mode is 2-Button Grid)
  • Product Search Sort Direction – Sets the product list sort either Ascending or Descending.
  • Print Product Memo – If set to true, Product memo will be displayed on receipt.
  • POS Days not used Alert – Sets the number of days allowed for user to not login to POS. If the difference from last Zread date from the current date is greater than or equal to the set value, permission code is required to login to POS. Minimum value should be greater than 1.
  • Offline Security Code – unused.
  • POS Mac Address – unused
  • Printer Settings – values under printer settings are automatically set based on default printer. Values will be extracted from PrinterProfiles.xml.
    • Print Receipt Format – Sets the default receipt format. The following are the format options:
      • Custom_46mm_journal
      • Custom_JNF_57mm
      • Custom_76mm
      • Custom_57mm
      • Custom_LQ310
    • Default Printer – Sets the default receipt printer to be used. If blank, POS will automatically set the value based on the current default printer of unit.
  • Accreditation – Sets the mall accreditation type. If value is not empty, Sales Report form will display upon login based on accreditation type.

 

Author: Robi
Last update: 2020-06-22 09:35


Coding standards

Author: Robi Navarro
Last update: 2019-01-29 12:35


C-Sharp - Team Processes

  • Turnover/training sessions would be conducted by the teams every month. features that wll be discussed include:
    • any bugfixes that makes changes with regards to the user experience.
    • new features / settings
    • optimization

Author: admin
Last update: 2019-08-14 11:56


WeChat API Documentation

Attached in this FAQ are the WeChat Pay API documentations from the earliest version to the latest one, arranged accordingly.

Author: Mary Nicole Quirabu
Last update: 2019-06-26 10:21


Mall Accreditation Setup

Author: Mary Nicole Quirabu
Last update: 2019-10-02 08:30


Mall Accreditation Demo Process (RLC)

MALL ACCREDITATION IN ROBINSONS GALLERIA

October 11, 2019

Departure from Nelsoft Office: 10:30AM

Arrival at Mall: 11:19AM via Grab

The first thing you need to do in a mall accreditation is to coordinate with the Mall Admin. Look for the Head of Accreditation Team, he or she will give you a list containing different instructions or scenarios in which our system needs to follow. They will also give the time for you to setup. In our case, there were 50 instructions we need to follow, some of them were already NA due to repetition of details. The Head of Accreditation Team was Ms. Erlinda Turla , we were also accommodated by Mr. Jojo P Garay (Admin). After that, they lent us a room enough for us to setup.

Lunch at 12:00-1:15….

For the setup of mall accreditation, you will need the following:

  • Laptop  - this will be used for the accred generator. If ever there were mistakes in the readings or outputs, we can use it to apply fixes or changes in the codes. It will also be used for different transactions such as adding products in the system.
  • Strong Internet Connection – you will need it in order to make different transactions. It can be a pocket Wi-Fi
  • Router – it will be used to accommodate LAN cable connection for the thermal printer and network connection with the tablet.
  • Thermal Printer - it will be used for printing the receipts of every transaction and readings made in the POS sys
  • Tablet with POS system installed – you will need it in order to use the POS system when creating different transactions written in the paper which were given by the mall.
  • Chargers (for tablet and laptop/pocket wifi) – this will allow you to use the laptop and tablet for a longer time as it will take a lot of time to finish the accreditation.
  • Extensions - this will be used for the chargers, printer, and router to plug in.
  • LAN Cables (Cat5) – this is needed for setting up connections between the laptop, router and printer.
  • Thermal Paper – it is the type of paper needed for printing receipts. Make sure that you bring many of these just in case there are mistakes in the printing of transactions.  

 

The next step is to study the list containing the instructions or scenarios given by the mall. Take note of the discounts, Senior, PWD, and service charges if there are any. After paying attention to it, you will now proceed to the transaction part.

Using laptop or any computer, you need to login at the website “test.lettuce.ph” with the username “009988” and the password is “111111”.

Upon Logging in:

  1. Drag the mouse on the left side of the screen
  2. Click New Store Setup then click Category Setup.
  3. Click the Add New Category button.
  4. In the Name field, type the name of the mall. For Robinsons, type RLC. 

After adding a category, click again the New Store Setup on the left side of the screen. This time there is a category named after the mall which is already existing, so

  1. Click Item Setup to add products.
  2. Input the store name, category, the item name and the price.
  3. The item name can be anything related to the type of the product such as foods.

For the price field, look at the paper containing the scenarios. Copy the prices given by the scenario. Take note that if a price already exists, you can just skip it and proceed to the next scenario. Leave the other fields unchanged then click submit. Keep on adding products until you finished all the scenarios.

After adding the products, you will create transactions using the android-based POS called Lettuce. This application is installed in the tablet. When creating transactions, you should follow the scenarios given by the mall. Look at the price and discounts if there any. Reprint or void a transaction if the scenario tells you to.

  1. For creating transaction
  2. Choose the number of tables.
  3. Choose a product in the said category.
  4. Bill out. Apply item discounts if there are any. Input details if it is a Senior or PWD.

After that, you will print the receipt of every transaction. Organize the receipts in ascending order. Then print the Z-reading using the tablet.

For the next scenario, you don’t need to add products in the system. In our case, the given scenarios are reprinting and voiding transactions. Check the details if they are correct. After finishing the list of scenarios:

  1. Open the Accred Generator, make sure the settings and configuration are already set up. 

Note: The Details needed by the Accred Generator will be provided upon coordinating with the Mall Admin.

Collect all of the receipts and the printed output from the Accred Generator. Make sure all details and readings are accurate. This will be checked by the Head of Accreditation Team. If there are miscalculations or errors or the output doesn’t match the expected output from the mall, we will need to apply fixes and adjustment that are needed to meet their desired output.

The Head of Accreditation Team will give his/her sign if our system already met their expected output otherwise the Accreditation will not be settled.

Author: Mary Nicole Quirabu
Last update: 2019-10-24 05:48


Mall Accreditation per POS Type

Retail POS

Mall Generation Type
(Consolidated / Per Terminal)
Version No. Latest Stable Version No.
Ayala Land Both 4.4.7.19 4.4.7.19
Cathay Land Per Terminal 4.4.7.19 4.4.7.19
Ever Gotesco Per Terminal 4.4.7.19 4.4.7.19
Farmers Plaza Both 4.4.7.19 4.4.7.19
Fisher Mall Per Terminal 4.4.7.19 4.4.7.19
Festival Mall Both 4.4.7.19 4.4.7.19
Greenfield Per Terminal 4.4.7.19 4.4.7.19
Megaworld Per Terminal 4.4.7.19 4.4.7.19
Robinsons Both 4.4.7.19 4.4.7.19
Shangri-la Plaza Both 4.4.7.19 4.4.7.19
SM Per Terminal 4.4.7.19 4.4.7.19
Star Mall Both 4.4.7.19 4.4.7.19
Vista Mall Both 4.4.7.19 4.4.7.19

 

Resto POS

Mall Generation Type
(Consolidated / Per Terminal)
Version No. Latest Stable Version No.
SM Per Terminal 1.4.2.5 1.4.2.5

 

Lettuce POS 

Mall Generation Type
(Consolidated / Per Terminal)
Version No. Latest Stable Version No.
Ayala Land Both 1.0.10.826 1.0.10.826
Festival Mall Per Terminal 1.0.10.826 1.0.10.826
Megaworld Per Terminal 1.0.10.826 1.0.10.826
Robinsons Both 1.0.10.826 1.0.10.826
Shangri-la Plaza Per Terminal 1.0.10.826 1.0.10.826
SM Both 1.0.10.826 1.0.10.826

Author: Mary Nicole Quirabu
Last update: 2019-12-11 07:37


POS Accreditation Form and Checklist 2020 (RLC)

Author: Mary Nicole Quirabu
Last update: 2020-11-13 09:17


Behavior of cardpaymenttoposd / mobilepaymenttoposd / seniortoposd / gcexcesstoposd

for cardpaymenttoposd
POS = "False to match"
Gen = "False to match"

for mobilepaymenttoposd
POS = "True to match"
Gen = "False to match"

for seniortoposd
POS = "True to match"
Gen = "False to match"

 

*note:  gcexcesstoposd now deprecated since 4.4.11.0

Author: Mary Nicole Quirabu
Last update: 2022-03-30 08:02


Queue System Manual

Author: Mary Nicole Quirabu
Last update: 2022-08-22 09:24


Core PHP » Research notes

Archiving

Author: Robi
Last update: 2018-01-29 10:14


Multiple Instance MySQL on a single computer

Author: Robi
Last update: 2018-01-29 10:15


Core C-Sharp » KPI and JD

Evaluation - Software Engineer I

Author: Robi
Last update: 2018-01-30 06:23


Evaluation - Software Engineer II

Author: Robi
Last update: 2018-01-30 06:24


Evaluation - Software Engineer III

Author: Robi
Last update: 2018-01-30 06:24


Evaluation - Software Engineer Trainee

Author: Robi
Last update: 2018-01-30 06:24


Evaluation - Senior Software Engineer

Author: Robi
Last update: 2018-01-30 06:25


Evaluation - Software Quality Assurance Engineer I

Author: Robi
Last update: 2018-01-30 06:38


Evaluation - Software Quality Assurance Engineer II

Author: Robi
Last update: 2018-01-30 06:38


Evaluation - Software Quality Assurance Engineer III

Author: Robi
Last update: 2018-01-30 07:07


Core PHP » KPI and JD

Evaluation - Software Engineer I

Author: Robi
Last update: 2018-01-30 06:39


Evaluation - Software Engineer II

Author: Robi
Last update: 2018-01-30 06:21


Evaluation - Software Engineer III

Author: Robi
Last update: 2018-01-30 06:21


Evaluation - Software Engineer Trainee

Author: Robi
Last update: 2018-01-30 06:22


Evaluation - Senior Software Engineer

Author: Robi
Last update: 2018-01-30 06:22


Evaluation - Software Quality Assurance Engineer I

Author: Robi
Last update: 2018-01-30 06:38


Evaluation - Software Quality Assurance Engineer II

Author: Robi
Last update: 2018-01-30 06:38


Evaluation - Software Quality Assurance Engineer III

Author: Robi
Last update: 2018-01-30 07:08


Customization » KPI and JD

Evaluation - Software Quality Assurance Engineer I

Author: Robi
Last update: 2018-01-30 06:41


Evaluation - Software Quality Assurance Engineer II

Author: Robi
Last update: 2018-01-30 06:42


Evaluation - Software Quality Assurance Engineer III

Author: Robi
Last update: 2018-01-30 07:07


Evaluation - Senior Software Engineer

Author: Robi
Last update: 2018-01-30 06:53


Evaluation - Software Engineer I

Author: Robi
Last update: 2018-01-30 06:53


Evaluation - Software Engineer III

Author: Robi
Last update: 2018-01-30 06:54


Evaluation - Software Engineer II

Author: Robi
Last update: 2018-01-30 06:54


Help Desk » KPI and JD

Evaluation form for HELP DESK ASSOCIATE

Author: Robi
Last update: 2018-01-29 12:11


Evaluation form for HELP DESK OFFICER

Author: Robi
Last update: 2018-01-29 12:13


Evaluation form for HELP DESK SPECIALIST

Author: Robi
Last update: 2018-01-29 12:12


Evaluation form for HELP DESK SUPERVISOR

Author: Robi
Last update: 2018-08-31 08:30


Support » KPI and JD

Evaluation - Senior Software Engineer

Author: Robi
Last update: 2018-01-30 06:51


Evaluation - Software Engineer I

Author: Robi
Last update: 2018-01-30 06:51


Evaluation - Software Engineer II

Author: Robi
Last update: 2018-01-30 06:51


Evaluation - Software Engineer III

Author: Robi
Last update: 2018-01-30 06:51


Evaluation - Software Engineer Trainee

Author: Robi
Last update: 2018-01-30 06:51


Evaluation - Software Quality Assurance Engineer I

Author: Robi
Last update: 2018-01-30 06:50


Evaluation - Software Quality Assurance Engineer II

Author: Robi
Last update: 2018-01-30 06:50


Evaluation - Software Quality Assurance Engineer III

Author: Robi
Last update: 2018-01-30 07:09


Support » Misc Queries

Copy orig to posd with option to change %

set @terminalno = 1;
set @datefrom = '2018-01-01';
set @dateto = '2019-01-31 23:59:59';
set @branchid = 16;
set @perc = 1;

delete from salesdetail_posd
where headid in (
select
wid
from saleshead
where ´date´ between @datefrom and @dateto
and terminalno = @terminalno
and branchid =@branchid
and ´type´ = 3
);
delete from collectiondetail_posd
where headid in (
select
headid
from collectionsales_posd
where saleswid in (
select ´wid´
from saleshead
where ´date´ between @datefrom and @dateto
and ´terminalno´ = @terminalno
and ´branchid´ = @branchid
and ´type´ = 3
)
);

set @wid = (
select ifnull(max(wid),concat(@branchid,lpad(@terminalno,2,0),'00000000001')+0)
from salesdetail_posd
where left(wid,4) = concat(@branchid,lpad(@terminalno,2,0))
);

INSERT INTO ´salesdetail_posd´
(
´wid´,
´headid´,
´productid´,
´description´,
´quantity´,
´bigquantity´,
´oprice´,
´price´,
´discount1´,
´discount2´,
´discount3´,
´discount4´,
´istransfer´,
´pprice´,
´addbackqty´,
´addbackbigqty´,
´vat´,
´senior´,
´soldby´)
select
@wid := @wid + 1,
´headid´,
´productid´,
´description´,
´quantity´,
´bigquantity´,
´oprice´*@perc,
´price´*@perc,
´discount1´,
´discount2´,
´discount3´,
´discount4´,
´istransfer´,
´pprice´*@perc,
´addbackqty´,
´addbackbigqty´,
´price´*@perc/1.12*0.12,
´senior´,
´soldby´
from salesdetail
where headid in (
select
wid
from saleshead
where ´date´ between @datefrom and @dateto
and ´terminalno´ = @terminalno
and ´branchid´ = @branchid
and ´type´ = 3
);

update collectionsales_posd as C,
(select H.wid, sum(D.price*D.quantity) as amount
from salesdetail_posd as D, saleshead_posd as H
where H.wid = D.headid
and ´date´ between @datefrom and @dateto
and terminalno = @terminalno
and branchid =@branchid
group by H.wid) as S set
C.amount = S.amount
where C.saleswid = S.wid;

set @wid = (
select ifnull(max(wid),concat(@branchid,lpad(@terminalno,2,0),'00000000001')+0)
from collectiondetail_posd
where left(wid,4) = concat(@branchid,lpad(@terminalno,2,0)));

INSERT INTO ´collectiondetail_posd´
(
´wid´,
´headid´,
´method´,
´amount´)
select
@wid := @wid + 1,
D.headid,
D.method,
D.amount*@perc from collectiondetail as D, collectionsales_posd as S
where D.headid = S.headid and S.saleswid in (
select
wid
from saleshead
where ´date´ between @datefrom and @dateto
and terminalno = @terminalno
and branchid = @branchid
);

delete from posxyzread_posd where terminalno = @terminalno and ´date´ >= @datefrom and branchid =@branchid;
delete from posxyzread where terminalno = @terminalno and ´date´ >= @datefrom and branchid = @branchid;

select
´date´,oldgrandtotal,newgrandtotal,
format(newgrandtotal-oldgrandtotal,2) as amt
from posxyzread_posd
where terminalno = @terminalno and ´date´ >= @datefrom
and branchid =@branchid
and readtype = 3 ;
select
´date´,oldgrandtotal,newgrandtotal,
format(newgrandtotal-oldgrandtotal,2) as amt
from posxyzread
where terminalno = @terminalno and ´date´ >= @datefrom
and branchid = @branchid
and readtype = 3 ;

 

 

Author: Robi
Last update: 2018-02-02 11:38


Support » Support Services

Recompute Inventory/ Reset Inventory to Zero

Things to remember before deciding to recompute the clients inventory:

  1. Make sure that there aren't any recent inventory adjustments made by the client before doing recompute as this will cause issues with the client since they just corrected their inventory. If you find out that there is a recent adjustment, inform the HD assign with the mantis so the fix can be discussed with the client. 
  2. Try to avoid making recompute inventory the first solution when there is an inventory issue with the client
  3. Analyze first the issue why the inventory didn't tally using the product inventory log
  4. If possible, create a screenshot that will document the issues found 
  5. Make sure that the client is informed that we will be doing a recompute of the inventory
  6. If the client is already using the version 5 autosync, make sure to have all the old data sync first before deleting the PBI and PTS data, otherwise there'll still be leftover data in the cloud server and it will cause the inventory to not tally. 

Steps when there is a need to recompute inventory

  1. Backup the database 
  2. Delete the "productbranchinventory" and "producttransactionsummary" data of the sub branch in the main branch.
  3. Click recompute inventory in the sub branch with the issue
  4. Make sure that the new PBI and PTS data are being synced to the main branch. 

Things to do after recompute was done

  1. Make sure to create a schedule to double check the inventory of the client for up to around 2 months
  2. When checking for the inventory, make sure that the inventory of the sub branch tallies with the main branch's data of the sub branch inventory.

Author: Robi
Last update: 2018-02-07 13:07


Checklist when changing terminalno

  1. Create Backup
  2. OR number should still be continuous.
  3. Recompute the reading/get the last reading and change the terminal no.
  4. Autosync branchid is changed. 
  5. Make sure all the pending data to be synced are already synced.
    • This might cause the user to report that the data on the pos is not incomplete when compared to the server even if there're no pending transactions in the sync table. 
  6. The computer name is updated.
  7. server data regarding the POS' computer name is updated
  8. Old POS settings and terminal info are transferred . ***
  9. The client base is updated either manually or thru the Terminal Manager
  10. Is the client requesting to delete the sales because they now have a PTU? If yes, what is now their correct tax type? is it the same with the current setup? Do you need to change from Vat to Non-vat or vice versa? 
  11. Does the new terminal number have sales linked to it already? meaning there are already data using the new terminal number to be set to the POS.

Author: Robi
Last update: 2018-07-24 06:56


Checklist for change server sitecode / Delete Branch

  • what will happen to the transactions and the data created using the old sitecode?
  • will the data created using the old sitecode be transferred to the main branch? i.e. users, customers, suppliers, etc. 
  • will the sales be deleted or transferred using the O function too?
  • If the O function is to be used, should we transfer the member points to the new branchid too?
  • should the inventory be transferred too? 
  • should the data with the old sitecode be deleted in the main server?
  • What should we do to the client base data? 
  • What programs do I need to change the settings? 
  • Should we just change the branch show to 0 to avoid deleting the data and make sure we can't re-use the old wid?
  • On change branchID we usually setup a new port to host the old data of the client. We should name the folder for that system as "Nelsoft-cancelled" and update the branch name in the branch table as "branchname-cancelled"

Author: Robi
Last update: 2018-09-11 06:11


Deleting client sales

Pre-update Questions:

  • Have you created a backup of the data?
  • Has the client reported the sales they made to the BIR?
    • this is to make sure that we don't change any data that has already been reported. 
  • When is the starting date according to the permit? and have they reported the sales to the bir or have encoded the data in their POS book?
    • this is to make sure that sales made after the effectivity date are not modified especially if they are already reported. 
  • Ask the client to choose which of the following do they want to delete:
    • All transaction
    • All POS sales only
    • All Sales including the POS and the WH sales
    • Keep the inventory before deleting or not. 
  • check version of the client to be deleted. Make sure the SQL query you're using is updated. 
  • Is the client requesting to delete the sales because they now have a PTU? If yes, what is now their correct tax type? is it the same with the current setup?

To Double Check:

  • Are all the triggers and procedures still existing?
  • If the client wants to keep the inventory, is the inventory still the same as before deleting?
  • Are the OR numbers after the effective date of the PTU still continuous and starts at 001? and have you informed the client to redo the Z-reading
  • In case you deleted the sales from a sub branch, have you deleted the sales in the main branch too? And if the client is using the Manual sync, have you finished all the pending files to be synced? 
    • This is to avoid issues in the autosync and the data after the task was done. 
  • If the client asked to reset the inventory of a sub branch, check the main branch if the data for the sub branch's inventory and product transaction summary is reset too.

Author: Robi
Last update: 2018-06-14 06:29


Checklist when copying products from another branch

  • ask the client which data to include
  • if product is requested to be included double check the following
    • do you copy the branchprice 
    • the product image should be included

Author: Robi
Last update: 2018-02-27 12:53


General Processes/Information » Development Standards

Database Design

Naming Convention

  • Use lowercase: Will help on speed typing, avoid mistakes dues to case sensitivity e.t.c
  • No space – use underscore instead
  • No numbers in name only alpha English characters
  • Valid understandable names like  blog, ecommerce e.t.c but not like project, james, e.t.c
  • Name should be self explanatory
  • Names should not be more than 64 characters.
  • Avoid prefix

source: https://anandarajpandey.com/2015/05/10/mysql-naming-coding-conventions-tips-on-mysql-database/

Author: Robi
Last update: 2018-02-13 09:45


Help Desk » Team Processes

Consumable Orders

Author: Robi
Last update: 2018-04-12 06:23


Tech Scheduling

Author: Robi
Last update: 2018-04-12 07:32


Tech Issue Escalation

Author: Robi
Last update: 2018-04-12 07:34


Dev Issue Escalation

Author:
Last update: 2018-04-12 07:35


Trello Management - For Repair board

Author: Robi
Last update: 2018-04-12 07:36


Trello Management - Server Setup board

Author: Robi
Last update: 2018-04-12 07:37


Trello Management - Server Setup board (Re-host)

Author: Robi
Last update: 2018-04-12 07:38


Customization Team Escalation

Author: Robi
Last update: 2018-04-12 07:39


Client Change Name Process

  1. Client informs the HD that they have or will change their business name
  2. [Help Desk] Create Mantis
  3. [Help Desk] Update the client’s name in Logmein, Hamachi, Teamviewer lists
  4. [Help Desk] Update client base
    1. Mantis will be automatically updated
    2. MSCS will be automatically updated
  5. [Help Desk] Provide Mantis to the SysOps team
  6. [SysOps] change server name in config.xml
  7. [SysOps] check if there are changes for administrator.cirms
  8. [Help Desk] Inform the accounting and externals departments (if change 2303)
    1. Externals will apply for new PTU (if necessary)
    2. Accounting will update their documents
  9. [Help Desk] Inform the salesman so they can update their records

Author: Mary Nicole Quirabu
Last update: 2019-10-18 04:22


Systems Operations Team » Common Problems

Common deployment problems: Autosync

  • Branches are offline
    • scenario : All connections and settings are all correct and there are no error logs
      • Solution: database version number is not existing in either of the databases.
  • Unable to open autosync
    • Scenario: Error message: "Local branch table row is missing"
      • Solution: check the branch table if there is a row with WID matching the branchid being used in the autosync settings. If there is, check if the show column is set to 1.
  • Unable to remove or place AutoSync to Windows Startup

Author: Robi
Last update: 2018-08-23 09:16


Common update problems: patcher [unknown database 'nelsoft_retail']

Error encountered: 

The cause:

Solution:

Set the environment variable to the path where the mysql.exe can be found.  It's usually under program files\mysql\mysql server 5.5\bin (remember to put semicolon (;) after every directory

Result

Author: Robi Navarro
Last update: 2018-10-23 08:41


Customization » Team processes

Customization Team JD

Author: Robi Navarro
Last update: 2018-10-08 11:14


Team processes

Author: Robi Navarro
Last update: 2018-10-01 13:25


How to check if the client is customized?

  1. Login to your account in the client base
  2. Get the client group ID of the client.
  3. Open source tree or any other software where you can view all the remote branches of the system.
  4. Check if there are cs or av branches for the client group id you just got.
  5. Make sure to check all softwares for possible customizations
  6. Access this google sheet to check if there are applied customizations 

Author: Robi Navarro
Last update: 2019-01-21 07:50


Systems Operations Team » Queries

Update POS to OWN db first before the server.

Directly update POS to OwnDB without updating server yet

  1. Add column in branch table
    - localnetworkip = pcname
    - port = 80
  2. Add the Terminal table and the terminal sync table to the server manually
  3. Temporarilly update the version of the server's database to the version that will be used for the POS.
  4. Run Patcher > Install POS
  5. Copy the values from the posreceiptsettings/terminal and possettings tables from the server to to the pos' db
  6. run query: 3_update_terminal_table.sql at pos db
  7. Run POS as serverpos then as owndb to update the server's database
  8. Export posdata from outdated server. make sure to remove the 1st 2 lines of sql
  9. Import posdata to POS as new db, then use Insert Select query to overwrite the updated structure in the POS database
  10. Superadmin - ManualSync sales
  11. Check POS if OR# is updated
  12. Check saleshead, transactioncutoffs, cutoffs
  13. Check server vs pos if equal
  14. Revert the version changed from step 3 in the server's database

Author: Robi Navarro
Last update: 2019-01-17 13:03


Compare Server vs POS data

 

set @branchid = 1;
set @terminalno = 1;
set @startdate = '2000-01-01';
set @enddate = '2020-12-30 23:59:59';


select @terminalno,

	sales.´sales amount´,
    collection.´collection sales amount´,collection.´collection detail amount´,
    reading.´total read count´,	reading.´total sales from reading´,reading.´max grand total´,
    sales_posd.´sales amount´ as 'POSD sales amount',
    collection_posd.´collection sales amount´ as 'POSD collection sales amount',
    collection_posd.´collection detail amount´ as 'POSD collection detail amount',
    reading_posd.´total read count´ as 'POSD total read count',	
    reading_posd.´total sales from reading´ as 'POSD total sales from reading',
    reading_posd.´max grand total´ as 'POSD max grand total',
    user.´total user count´, product.´total product count´
    
from
(select @terminalno as 'terminalno') as terminal
left join (
	select H.terminalno, format(coalesce(sum(quantity*price),0),2) as 'sales amount'
	from saleshead as H, salesdetail as D
	where H.wid= D.headid 
		and H.´show´ = 1 and H.´status´ = 1 and H.´type´ = 3  
		and ´date´ between @startdate and @enddate
		and terminalno = @terminalno
		and branchid = @branchid
	group by H.´terminalno´
) as sales on sales.terminalno = terminal.terminalno
left join (
	select A.terminalno,  
		format(sum(A.´collectionsalesamount´),2) as 'collection sales amount',
		format(sum(A.´collectiondetailamount´),2) as 'collection detail amount'
	from 
	(
		select S.terminalno, 
			coalesce(if(CH.´show´ = 1 and CH.´status´ = 1, CS.´amount´,0),0) as 'collectionsalesamount',
			coalesce(sum(if(CH.´show´ = 1 and CH.´status´ = 1, CD.´amount´,0)),0) as 'collectiondetailamount'
		from (
			select H.wid, H.terminalno
			from saleshead as H, salesdetail as D
			where H.wid= D.headid 
				and H.´show´ = 1 and H.´status´ = 1 and H.´type´ = 3  
				and ´date´ between @startdate and @enddate
				and terminalno = @terminalno
				and branchid = @branchid
			group by H.´wid´
		) S
		left join collectionsales as CS on CS.saleswid = S.wid
		left join collectionhead as CH on CH.wid = CS.headid
		left join collectiondetail as CD on CD.headid = CS.headid
		group by S.wid
	) A
) as collection on collection.terminalno = terminal.terminalno
left join (
	select terminalno, count(*) as 'total read count', 
		format(sum(newgrandtotal-oldgrandtotal),2) as 'total sales from reading', format(max(newgrandtotal),2) as 'max grand total'
	from posxyzread
	where readtype = 3
		and ´date´ between @startdate and @enddate
		and terminalno = @terminalno
		and branchid = @branchid
	order by ´date´ desc
) as reading on reading.terminalno = terminal.terminalno
left join (
	select H.terminalno, format(coalesce(sum(quantity*price),0),2) as 'sales amount'
	from saleshead_posd as H, salesdetail_posd as D
	where H.wid= D.headid 
		and H.´show´ = 1 and H.´status´ = 1 and H.´type´ = 3  
		and ´date´ between @startdate and @enddate
		and terminalno = @terminalno
		and branchid = @branchid
	group by H.´terminalno´
) as sales_posd on sales_posd.terminalno = terminal.terminalno
left join (
	select A.terminalno,  
		format(sum(A.´collectionsalesamount´),2) as 'collection sales amount',
		format(sum(A.´collectiondetailamount´),2) as 'collection detail amount'
	from 
	(
		select S.terminalno, 
			coalesce(if(CH.´show´ = 1 and CH.´status´ = 1, CS.´amount´,0),0) as 'collectionsalesamount',
			coalesce(sum(if(CH.´show´ = 1 and CH.´status´ = 1, CD.´amount´,0)),0) as 'collectiondetailamount'
		from (
			select H.wid, H.terminalno
			from saleshead_posd as H, salesdetail_posd as D
			where H.wid= D.headid 
				and H.´show´ = 1 and H.´status´ = 1 and H.´type´ = 3  
				and ´date´ between @startdate and @enddate
				and terminalno = @terminalno
				and branchid = @branchid
			group by H.´wid´
		) S
		left join collectionsales_posd as CS on CS.saleswid = S.wid
		left join collectionhead_posd as CH on CH.wid = CS.headid
		left join collectiondetail_posd as CD on CD.headid = CS.headid
		group by S.wid
	) A
) as collection_posd on collection_posd.terminalno = terminal.terminalno
left join (
	select terminalno, count(*) as 'total read count', 
		format(sum(newgrandtotal-oldgrandtotal),2) as 'total sales from reading', format(max(newgrandtotal),2) as 'max grand total'
	from posxyzread_posd
	where readtype = 3
		and ´date´ between @startdate and @enddate
		and terminalno = @terminalno
		and branchid = @branchid
	order by ´date´ desc
) as reading_posd on reading_posd.terminalno = terminal.terminalno 

left join (
	select @terminalno as 'terminalno', count(*) as 'total user count'
	from ´user´
	where ´show´ = 1 and ´status´ = 1
) as user on user.terminalno = terminal.terminalno



left join (
	select @terminalno as 'terminalno', count(*) as 'total product count'
	from ´product´ as P,branchprice as BP
	where P.´show´ = 1 and P.´status´ = 1 and P.wid = BP.productid
		and BP.branchid = @branchid
) as product on product.terminalno = terminal.terminalno




Author: Robi Navarro
Last update: 2019-01-17 13:05


Select all POS settings for documentation

set group_concat_max_len = 10000000;
set @branchid = (select ´value´ from config where particular = 'branchid' limit 1);
set @terminalno = (select ´value´ from config where particular = 'terminalno' limit 1);
set @schema_ = 'nelsoft_retail';

SET @column_names = (select group_concat(concat('concat("',column_name,':",','´',´column_name´,'´)'))
	from information_schema.columns
	where ´table_schema´ = @schema_ and ´table_name´ = 'possettings' );

set @stmt = concat('select concat_ws("\r",',@column_names,')
	as "cls" from possettings
	where ´branchid´ = ? and ´terminal´ = ?');

PREPARE stmt1 FROM @stmt;
EXECUTE stmt1 using @branchid, @terminalno;
DEALLOCATE PREPARE stmt1;


SET @column_names = (select group_concat(concat('concat("',column_name,':",','´',´column_name´,'´)'))
	from information_schema.columns
	where ´table_schema´ = @schema_ and ´table_name´ = 'terminal' );

set @stmt = concat('select concat_ws("\r",',@column_names,')
	as "cls" from terminal
	where ´branchid´ = ? and ´terminalno´ = ?');

PREPARE stmt1 FROM @stmt;
EXECUTE stmt1 using @branchid, @terminalno;
DEALLOCATE PREPARE stmt1;

Author: Robi Navarro
Last update: 2019-01-17 13:07


Rename schema

1. drop triggers of old database (you can find the query in the Stored Procedures section)

2. Create new schema

create schema ´nelsoft_old´;

3. run resulting query from the following query in workbench

select concat('alter table ','nelsoft','.´',table_name, '´ rename to ','nelsoft_old','.´', table_name,'´;') as 'rename' from information_schema.tables where table_schema = 'nelsoft';

4. copy the result as unquoted

5. run all queries

6. add back the triggers

Author: Robi Navarro
Last update: 2019-01-18 08:24


New Branch Queries

1. allow the admin and superadmin to access the sub branch system  

set @new_branchid = [wid of new branch];  
  
Delete from ´userbranch´     
where branchid = @new_branchid  
    and userid in (100000001,1);  
    
Insert into ´userbranch´  
(userid, branchid)  
values  
(100000001, @new_branchid),  
(1, @new_branchid);

2. Add new branch to the database then use this query to sync the new branch to other existing branches

set @new_branchid = [wid of new branch];  
set @branch_to_copy_price_from = [existing branch wid to copy the price from];  
  
INSERT INTO ´sync´ (´tablename´, ´wid´, ´branchid´)     
SELECT     
    'branch', @new_branchid, ´wid´     
FROM ´branch´     
WHERE ´wid´ > 10     
    AND ´wid´ <> @new_branchid;

3. Insert new branchprice of new branch 

set @new_branchid = [wid of new branch];  
set @branch_to_copy_price_from = [existing branch wid to copy the price from];  

DELETE FROM ´branchprice´     
WHERE ´branchid´ =  @new_branchid;    
    
INSERT INTO ´branchprice´    
(    
    ´branchid´,    
    ´productid´,    
    ´purchaseprice´,    
    ´sellingprice´,    
    ´wholesaleprice´,    
    ´maxquantity´,    
    ´minquantity´,    
    ´packagepurchaseprice´,    
    ´packagesellingprice´,    
    ´packagewholesaleprice´,    
    ´packageqty´,    
    ´ispackage´    
)    
SELECT     
    @new_branchid,    
    ´productid´,    
    ´purchaseprice´,    
    ´sellingprice´,    
    ´wholesaleprice´,    
    ´maxquantity´,    
    ´minquantity´,    
    ´packagepurchaseprice´,    
    ´packagesellingprice´,    
    ´packagewholesaleprice´,    
    ´packageqty´,    
    ´ispackage´    
FROM ´branchprice´     
WHERE ´branchid´ = @branch_to_copy_price_from ;

4. sync new branchprice to other branches (if branches are > 20, ask if this should be executed)

set @new_branchid = [wid of new branch];  
DELETE FROM ´sync´     
WHERE ´tablename´ = 'product';  
    
INSERT INTO ´sync´ (´tablename´, ´wid´, ´branchid´)     
SELECT     
    'product', P.´wid´, B.´wid´     
FROM ´product´ AS P, ´branch´ AS B    
WHERE B.´wid´ > 10     
    AND P.wid > 10     
    AND B.´wid´ <> @new_branchid;

Author: Robi Navarro
Last update: 2019-01-18 05:20


Cutoffs management

1. Each saleshead should have an equivalent number of transactioncutoffs table

set @terminalno = 1;

select count(*)
from saleshead 
where terminalno = @terminalno;

select count(*) 
from transactioncutoffs as T, saleshead as H 
where H.wid = T.salesheadwid 
    and H.terminalno = @terminalno;

2. Re-initialize the transactioncutoffs table if found out that it doesn't tally with the saleshead count OR the 00:00:00 cutoff id is not 1.

truncate table transactioncutoffs;
insert into transactioncutoffs (salesheadwid,cutoffid)
select wid, 1 from saleshead;

3. Fix discrepancies in the transactioncutoffs table

A. check if there are duplicates

select count(*), cutoffid from transactioncutoffs group by cutoffid;

 B. fix the duplicate entries by running this

drop table transactioncutoffs;

update ´cutoffs´ set id='1' where cutofftime = '00:00:00';

C. Run the POS for it to recreate the transactioncutoffs table. 

4. set the effective date for the 00:00:00 cutofftime to the year 2000

update cutoffs set effectivedate  = '2000-01-01' where cutofftime = '00:00:00';

Author: Robi Navarro
Last update: 2019-01-18 08:39


Stored Procedures

1. Drop all triggers

delimiter $$
drop trigger if exists ´before_insert_damagedetail´ $$	
drop trigger if exists ´before_update_damagedetail´ $$	
drop trigger if exists ´before_delete_damagedetail´ $$	
drop trigger if exists ´before_insert_damagehead´ $$	
drop trigger if exists ´before_update_damagehead´ $$	
drop trigger if exists ´before_delete_damagehead´ $$	
drop trigger if exists ´before_insert_productinventoryadjust´ $$	
drop trigger if exists ´before_update_productinventoryadjust´ $$	
drop trigger if exists ´before_delete_productinventoryadjust´ $$	
drop trigger if exists ´before_insert_purchasereceivedetail´ $$	
drop trigger if exists ´before_update_purchasereceivedetail´ $$	
drop trigger if exists ´before_delete_purchasereceivedetail´ $$	
drop trigger if exists ´before_insert_purchasereceivehead´ $$	
drop trigger if exists ´before_update_purchasereceivehead´ $$	
drop trigger if exists ´before_delete_purchasereceivehead´ $$	
drop trigger if exists ´before_insert_purchasereturndetail´ $$	
drop trigger if exists ´before_update_purchasereturndetail´ $$	
drop trigger if exists ´before_delete_purchasereturndetail´ $$	
drop trigger if exists ´before_insert_purchasereturnhead´ $$	
drop trigger if exists ´before_update_purchasereturnhead´ $$	
drop trigger if exists ´before_delete_purchasereturnhead´ $$	
drop trigger if exists ´before_insert_salesdetail´ $$	
drop trigger if exists ´before_update_salesdetail´ $$	
drop trigger if exists ´before_delete_salesdetail´ $$	
drop trigger if exists ´before_insert_saleshead´ $$	
drop trigger if exists ´before_update_saleshead´ $$	
drop trigger if exists ´before_delete_saleshead´ $$	
drop trigger if exists ´before_insert_stockdeliverydetail´ $$	
drop trigger if exists ´before_update_stockdeliverydetail´ $$	
drop trigger if exists ´before_delete_stockdeliverydetail´ $$	
drop trigger if exists ´before_insert_stockdeliveryhead´ $$	
drop trigger if exists ´before_update_stockdeliveryhead´ $$	
drop trigger if exists ´before_delete_stockdeliveryhead´ $$
delimiter ;

2. Give permission to the user to access/edit/add/remove triggers

UPDATE mysql.user SET Password=PASSWORD('121586') WHERE User='root'; 
FLUSH PRIVILEGES;

GRANT ALL PRIVILEGES ON nelsoft.* TO root @'%' IDENTIFIED BY '121586';
FLUSH PRIVILEGES;

UPDATE mysql.user SET SELECT_PRIV='Y' WHERE User='root'; 
FLUSH PRIVILEGES;

3. Run the following queries to re-initialize the procedures

#Run the drop all triggers query found above. 

CREATE TRIGGER ´before_insert_damagedetail´ BEFORE INSERT ON ´damagedetail´ FOR EACH ROW
proc_:BEGIN
 	call process_detail ((new.quantity*new.bigquantity),new.´productid´,
 		new.headid, -1,11,new.wid);
END $$


CREATE TRIGGER ´before_update_damagedetail´ BEFORE UPDATE ON ´damagedetail´ FOR EACH ROW
proc_:BEGIN
 
 	call process_detail ((old.quantity*old.bigquantity),old.´productid´,
 		old.headid, 1,11,old.wid);
 	
 	call process_detail ((new.quantity*new.bigquantity),new.´productid´,
 		new.headid, -1,11,new.wid);
 END $$


CREATE TRIGGER ´before_delete_damagedetail´ BEFORE DELETE ON ´damagedetail´ FOR EACH ROW
proc_:BEGIN

 	call process_detail ((old.quantity*old.bigquantity),old.´productid´,
 		old.headid, 1,11,old.wid);
 
 END $$


CREATE TRIGGER ´before_insert_damagehead´ BEFORE INSERT ON ´damagehead´ FOR EACH ROW
proc_:BEGIN
 	
 	CALL ´process_damagehead´(new.wid, new.´show´, new.´status´, 
 		new.branchid, -1, new.´date´);
 
 END $$


CREATE TRIGGER ´before_update_damagehead´ BEFORE UPDATE ON ´damagehead´ FOR EACH ROW
proc_:BEGIN
 	
 	CALL ´process_damagehead´(old.wid, old.´show´, old.´status´, 
 		old.branchid, 1,old.´date´);
 
 	CALL ´process_damagehead´(new.wid, new.´show´, new.´status´, 
 		new.branchid, -1,new.´date´);
 END $$


CREATE TRIGGER ´before_delete_damagehead´ BEFORE DELETE ON ´damagehead´ FOR EACH ROW
proc_: BEGIN
	CALL ´process_damagehead´(old.wid, old.´show´, old.´status´, old.branchid, 1,old.´date´);
END $$


CREATE TRIGGER ´before_insert_productinventoryadjust´ BEFORE INSERT ON ´productinventoryadjust´ FOR EACH ROW
proc_:BEGIN
 	IF( new.wid > 0 AND new.´status´ = 1 AND new.branchid > 0) THEN 
 		CALL ´process_productbranchinventory´(
 			new.productid, new.branchid, new.changedquantity , new.´datecreated´,9,new.wid);
 	end if;
 END $$


CREATE TRIGGER ´before_update_productinventoryadjust´ BEFORE UPDATE ON ´productinventoryadjust´ FOR EACH ROW
proc_:BEGIN
     IF( new.wid > 0 AND old.´status´=1 AND new.branchid > 0) THEN 
 		CALL ´process_productbranchinventory´(
 			old.productid, old.branchid, old.changedquantity*(-1), old.´datecreated´,9,old.wid);
 	end if;
 	IF( new.wid > 0 AND new.´status´ = 1 AND new.branchid > 0) THEN 
 		CALL ´process_productbranchinventory´(
 			new.productid, new.branchid, new.changedquantity , new.´datecreated´,9,new.wid);
 	end if;
 END $$


CREATE TRIGGER ´before_delete_productinventoryadjust´ BEFORE DELETE ON ´productinventoryadjust´ FOR EACH ROW
proc_:BEGIN
 
 	IF( old.wid > 0 AND old.´status´ = 1 AND old.branchid > 0) THEN 
 		CALL ´process_productbranchinventory´(
 			old.productid, old.branchid, old.changedquantity*(-1), old.´datecreated´,9,old.wid);
 	end if;
 
 END $$


CREATE TRIGGER ´before_insert_purchasereceivedetail´ BEFORE INSERT ON ´purchasereceivedetail´ FOR EACH ROW
proc_:BEGIN
 	call process_detail ((new.quantity*new.bigquantity),new.´productid´,
 		new.headid, 1,1,new.wid);
 
 	#CALL ´set_suppliertransactionsummary´(new.headid,2,-1);
 END $$


CREATE TRIGGER ´before_update_purchasereceivedetail´ BEFORE UPDATE ON ´purchasereceivedetail´ FOR EACH ROW
proc_:BEGIN
 
 	call process_detail ((old.quantity*old.bigquantity),old.´productid´,
 		old.headid, -1,1,old.wid);
 	
 	call process_detail ((new.quantity*new.bigquantity),new.´productid´,
 		new.headid, 1,1,new.wid);
 
 	#if(old.headid > 0) then
 	#	CALL ´set_suppliertransactionsummary´(old.headid,2,-1);
 	#elseif (old.headid = 0) then
 	#	CALL ´set_suppliertransactionsummary´(new.headid,2,-1);
 	#end if;
 END $$


CREATE TRIGGER ´before_delete_purchasereceivedetail´ BEFORE DELETE ON ´purchasereceivedetail´ FOR EACH ROW
proc_:BEGIN
 
 	call process_detail ((old.quantity*old.bigquantity),old.´productid´,
 		old.headid, -1,1,old.wid);
 
 	#CALL ´set_suppliertransactionsummary´(old.headid,2,-1);
 
 END $$


CREATE TRIGGER ´before_insert_purchasereceivehead´ BEFORE INSERT ON ´purchasereceivehead´ FOR EACH ROW
proc_:BEGIN
 	
 	CALL ´process_purchasereceivehead´(new.wid, new.´show´, new.´status´, 
 		new.branchid, 1,new.´receivedate´);
 
 END $$


CREATE TRIGGER ´before_update_purchasereceivehead´ BEFORE UPDATE ON ´purchasereceivehead´ FOR EACH ROW
proc_:BEGIN
 	
 	CALL ´process_purchasereceivehead´(old.wid, old.´show´, old.´status´, 
 		old.branchid, -1,old.´receivedate´);
 
 	CALL ´process_purchasereceivehead´(new.wid, new.´show´, new.´status´, 
 		new.branchid, 1,new.´receivedate´);
 
 	#CALL ´set_suppliertransactionsummary´(old.wid,2,-1);
 
 END $$


CREATE TRIGGER ´before_delete_purchasereceivehead´ BEFORE DELETE ON ´purchasereceivehead´ FOR EACH ROW
proc_: BEGIN
 	CALL ´process_purchasereceivehead´(old.wid, old.´show´, old.´status´, old.branchid, -1,old.´receivedate´);
 
 	#CALL ´set_suppliertransactionsummary´(old.wid,2,-1);
 END $$


CREATE TRIGGER ´before_insert_purchasereturndetail´ BEFORE INSERT ON ´purchasereturndetail´ FOR EACH ROW
proc_:BEGIN
 	call process_detail ((new.quantity*new.bigquantity),new.´productid´,
 		new.headid, -1,2,new.wid);
 
 	#CALL ´set_suppliertransactionsummary´(new.headid,4,-1);
 END $$


CREATE TRIGGER ´before_update_purchasereturndetail´ BEFORE UPDATE ON ´purchasereturndetail´ FOR EACH ROW
proc_:BEGIN
 
 	call process_detail ((old.quantity*old.bigquantity),old.´productid´,
 		old.headid, 1,2,old.wid);
 	
 	call process_detail ((new.quantity*new.bigquantity),new.´productid´,
 		new.headid, -1,2,new.wid);
 
 	#if(old.headid > 0) then
 	#	CALL ´set_suppliertransactionsummary´(old.headid,4,-1);
 	#elseif (old.headid = 0) then
 	#	CALL ´set_suppliertransactionsummary´(new.headid,4,-1);
 	#end if;
 END $$


CREATE TRIGGER ´before_delete_purchasereturndetail´ BEFORE DELETE ON ´purchasereturndetail´ FOR EACH ROW
proc_:BEGIN
 
 	call process_detail ((old.quantity*old.bigquantity),old.´productid´,
 		old.headid, 1,2,old.wid);
 
 	#CALL ´set_suppliertransactionsummary´(old.headid,4,-1);
 
 END $$


CREATE TRIGGER ´before_insert_purchasereturnhead´ BEFORE INSERT ON ´purchasereturnhead´ FOR EACH ROW
proc_:BEGIN
 	
 	CALL ´process_purchasereturnhead´(new.wid, new.´show´, new.´status´, 
 		new.branchid, -1,new.´orderdate´);
 
 END $$


CREATE TRIGGER ´before_update_purchasereturnhead´ BEFORE UPDATE ON ´purchasereturnhead´ FOR EACH ROW
proc_:BEGIN
 	
 	CALL ´process_purchasereturnhead´(old.wid, old.´show´, old.´status´, 
 		old.branchid, 1,old.´orderdate´);
 
 	CALL ´process_purchasereturnhead´(new.wid, new.´show´, new.´status´, 
 		new.branchid, -1,new.´orderdate´);
 
 	#CALL ´set_suppliertransactionsummary´(old.wid,4,-1);
 END $$


CREATE TRIGGER ´before_delete_purchasereturnhead´ BEFORE DELETE ON ´purchasereturnhead´ FOR EACH ROW
proc_: BEGIN
 	CALL ´process_purchasereturnhead´(old.wid, old.´show´, old.´status´, old.branchid, 1,old.´orderdate´);
 
 	#CALL ´set_suppliertransactionsummary´(old.wid,4,-1);
 END $$


CREATE TRIGGER ´before_insert_salesdetail´ BEFORE INSERT ON ´salesdetail´ FOR EACH ROW
proc_:BEGIN
 	SET @qty = new.quantity * new.bigquantity;
 	CALL process_detail(@qty, new.productid, new.headid, -1,3,new.wid);
 	
 	SET @addback = new.addbackqty * new.addbackbigqty;
 	CALL process_detail(@addback, new.productid, new.headid, 1,3,new.wid);
 
 	call ´process_sales_fncs´(new.productid,@qty,@addback,-1,new.headid);
 
 	#CALL ´set_customertransactionsummary´(new.headid,2,-1);
 END $$


CREATE TRIGGER ´before_update_salesdetail´ BEFORE UPDATE ON ´salesdetail´ FOR EACH ROW
proc_:BEGIN
 	SET @qty = old.quantity * old.bigquantity;
 	CALL process_detail(@qty, old.productid, old.headid, 1,3,old.wid);
 
 	SET @addback = old.addbackqty * old.addbackbigqty;
 	CALL process_detail(@addback, old.productid, old.headid, -1,3,old.wid);
 
 	call ´process_sales_fncs´(old.productid,@qty,@addback,1,old.headid);
 
 	SET @qty = new.quantity * new.bigquantity;
 	CALL process_detail(@qty, new.productid, new.headid, -1,3,new.wid);
 	
 	SET @addback = new.addbackqty * new.addbackbigqty;
 	CALL process_detail(@addback, new.productid, new.headid, 1,3,new.wid);
 
 	call ´process_sales_fncs´(new.productid,@qty,@addback,-1,new.headid);
 
 	#if(old.headid > 0) then
 	#	CALL ´set_customertransactionsummary´(old.headid,2,-1);
 	#elseif (old.headid = 0) then
 	#	CALL ´set_customertransactionsummary´(new.headid,2,-1);
 	#end if;
 
 END $$


CREATE TRIGGER ´before_delete_salesdetail´ BEFORE DELETE ON ´salesdetail´ FOR EACH ROW
proc_:BEGIN
 	SET @qty = old.quantity * old.bigquantity;
 	CALL process_detail(@qty, old.productid, old.headid, 1,3,old.wid);
 
 	SET @addback = old.addbackqty * old.addbackbigqty;
 	CALL process_detail(@addback, old.productid, old.headid, -1,3,old.wid);
 
 	call ´process_sales_fncs´(old.productid,@qty,@addback,1,old.headid);
 
 	#CALL ´set_customertransactionsummary´(old.headid,2,-1);
 END $$


CREATE TRIGGER ´before_insert_saleshead´ BEFORE INSERT ON ´saleshead´ FOR EACH ROW
proc_: BEGIN
 	CALL ´process_saleshead´(new.wid, new.´show´, new.´status´, new.branchid, -1, new.´date´);
 	call ´process_sales_fncs_head´(new.branchid,new.´date´,new.wid,new.´status´,new.´show´,-1,3);
 END $$


CREATE TRIGGER ´before_update_saleshead´ BEFORE UPDATE ON ´saleshead´ FOR EACH ROW
proc_: BEGIN
 	CALL ´process_saleshead´(old.wid, old.´show´, old.´status´, old.branchid, 1, old.´date´);
 	call ´process_sales_fncs_head´(old.branchid,old.´date´,old.wid,old.´status´,old.´show´,1,3);
 
 	CALL ´process_saleshead´(new.wid, new.´show´, new.´status´, new.branchid, -1, new.´date´);
 	call ´process_sales_fncs_head´(new.branchid,new.´date´,new.wid,new.´status´,new.´show´,-1,3);
 
 	#CALL ´set_customertransactionsummary´(old.wid,2,-1);
 END $$


CREATE TRIGGER ´before_delete_saleshead´ BEFORE DELETE ON ´saleshead´ FOR EACH ROW
proc_: BEGIN
 	CALL ´process_saleshead´(old.wid, old.´show´, old.´status´, old.branchid, 1, old.´date´);
 	call ´process_sales_fncs_head´(old.branchid,old.´date´,old.wid,old.´status´,old.´show´,1,3);
 
 	#CALL ´set_customertransactionsummary´(old.wid,2,-1);
 END $$


CREATE TRIGGER ´before_insert_stockdeliverydetail´ BEFORE INSERT ON ´stockdeliverydetail´ FOR EACH ROW
proc_:BEGIN
 	call process_detail ((new.quantity*new.bigquantity),new.´productid´,
 		new.headid, -1,5,new.wid);
 	
 	call process_detail (new.recvqty,new.´productid´,
 		new.headid, 1,6,new.wid);
 END $$


CREATE TRIGGER ´before_update_stockdeliverydetail´ BEFORE UPDATE ON ´stockdeliverydetail´ FOR EACH ROW
proc_:BEGIN
 
 	call process_detail ((old.quantity*old.bigquantity),old.´productid´,
 		old.headid, 1,5,old.wid);
 	
 	call process_detail ((new.quantity*new.bigquantity),new.´productid´,
 		new.headid, -1,5,new.wid);
 
 	call process_detail (old.recvqty,old.´productid´,
 		old.headid, -1,6,old.wid);
 	
 	call process_detail (new.recvqty,new.´productid´,
 		new.headid, 1,6,new.wid);
 END $$


CREATE TRIGGER ´before_delete_stockdeliverydetail´ BEFORE DELETE ON ´stockdeliverydetail´ FOR EACH ROW
proc_:BEGIN
 
 	call process_detail ((old.quantity*old.bigquantity),old.´productid´,
 		old.headid, 1,5,old.wid);
 
 	call process_detail (old.recvqty,old.´productid´,
 		old.headid, -1,6,old.wid);
 
 END $$


CREATE TRIGGER ´before_insert_stockdeliveryhead´ BEFORE INSERT ON ´stockdeliveryhead´ FOR EACH ROW
proc_:BEGIN
 	
 	CALL ´process_stockdeliveryhead´(new.wid, new.´show´, new.´status´, 
 		new.frombranchid, -1,1,new.´deliverydate´);
 
 	CALL ´process_stockdeliveryhead´(new.wid, new.´show´, new.´status´, 
 		new.tobranchid, 1,2,new.´datereceived´);
 END $$


CREATE TRIGGER ´before_update_stockdeliveryhead´ BEFORE UPDATE ON ´stockdeliveryhead´ FOR EACH ROW
proc_:BEGIN
 	
 	CALL ´process_stockdeliveryhead´(old.wid, old.´show´, old.´status´, 
 		old.frombranchid, 1,1,old.´deliverydate´);
 
 	CALL ´process_stockdeliveryhead´(new.wid, new.´show´, new.´status´, 
 		new.frombranchid, -1,1,new.´deliverydate´);
 
 	CALL ´process_stockdeliveryhead´(old.wid, old.´show´, old.´status´, 
 		old.tobranchid, -1,2,old.´datereceived´);
 
 	CALL ´process_stockdeliveryhead´(new.wid, new.´show´, new.´status´, 
 		new.tobranchid, 1,2,new.´datereceived´);
 END $$


CREATE TRIGGER ´before_delete_stockdeliveryhead´ BEFORE DELETE ON ´stockdeliveryhead´ FOR EACH ROW
proc_: BEGIN
 	CALL ´process_stockdeliveryhead´(old.wid, old.´show´, old.´status´, old.frombranchid, 1,1,old.´deliverydate´);
 	CALL ´process_stockdeliveryhead´(old.wid, old.´show´, old.´status´, old.tobranchid, -1,2,old.´datereceived´);
 END $$


	
CREATE DEFINER=´root´@´localhost´ PROCEDURE ´check_product´(
	in wid_d BIGINT(20),
	in stockno_d varchar(50),
	in product_d varchar(300),
	in barcode_d varchar(50),
	in clientbarcode_d varchar(50),
	in clientbarcode2_d varchar(50),
	in packbarcode_d varchar(50),
	in packbarcode2_d varchar(50)
)
proc_checkprod:BEGIN

	declare nelsoft_stockno_cntr double unsigned default 0;
	declare nelsoft_product_cntr double unsigned default 0;
	declare nelsoft_barcode_cntr double unsigned default 0;
	declare nelsoft_clientbarcode_cntr double unsigned default 0;
	declare nelsoft_clientbarcode2_cntr double unsigned default 0;
	declare nelsoft_packbarcode_cntr double unsigned default 0;
	declare nelsoft_packbarcode2_cntr double unsigned default 0;
    
	start transaction;
	SET AUTOCOMMIT=0;
		select wid from product where ´wid´ > 10 and ´show´ = 1 for update; 

		SELECT count(*) into nelsoft_stockno_cntr 
		FROM product 
		WHERE stockno = stockno_d AND wid != wid_d AND ´show´ = 1  
			AND length(stockno_d) > 0 for update;
		if(nelsoft_stockno_cntr > 0) then 
			rollback;
			select 1;
			LEAVE proc_checkprod;
		end if;
		
		SELECT count(*) into nelsoft_product_cntr 
		FROM product 
		WHERE ´product´ = product_d
			AND wid != wid_d 
			AND ´show´ = 1 
			and length(product_d) > 0 for update;
		if(nelsoft_product_cntr > 0) then 
			rollback;
			select 2;
			LEAVE proc_checkprod;
		end if;

		#barcode
		SELECT count(*) into nelsoft_barcode_cntr 
		FROM product 
		WHERE ((´barcode´ = barcode_d OR ´clientbarcode´ = barcode_d OR ´packbarcode´ = barcode_d 
			OR ´clientbarcode2´ = barcode_d OR ´packbarcode2´ = barcode_d) 
			and length(barcode_d) > 0)
			AND wid != wid_d AND ´show´ = 1 for update;
		if(nelsoft_barcode_cntr > 0) then 
			rollback;
			select 3;
			LEAVE proc_checkprod;
		end if;

		#clientbarcode
		SELECT count(*) into nelsoft_clientbarcode_cntr 
		FROM product 
		WHERE ((´barcode´ = clientbarcode_d OR ´clientbarcode´ = clientbarcode_d OR ´packbarcode´ = clientbarcode_d 
			OR ´clientbarcode2´ = clientbarcode_d OR ´packbarcode2´ = clientbarcode_d) 
			and length(clientbarcode_d) > 0)
			AND wid != wid_d AND ´show´ = 1 for update;
		if(nelsoft_clientbarcode_cntr > 0) then 
			rollback;
			select 4;
			LEAVE proc_checkprod;
		end if;

		#clientbarcode2
		SELECT count(*) into nelsoft_clientbarcode2_cntr 
		FROM product 
		WHERE ((´barcode´ = clientbarcode2_d OR ´clientbarcode´ = clientbarcode2_d OR ´packbarcode´ = clientbarcode2_d 
			OR ´clientbarcode2´ = clientbarcode2_d OR ´packbarcode2´ = clientbarcode2_d) 
			and length(clientbarcode2_d) > 0)
			AND wid != wid_d AND ´show´ = 1 for update;
		if(nelsoft_clientbarcode2_cntr > 0) then 
			rollback;
			select 5;
			LEAVE proc_checkprod;
		end if;

		#packbarcode
		SELECT count(*) into nelsoft_packbarcode_cntr 
		FROM product 
		WHERE ((´barcode´ = packbarcode_d OR ´clientbarcode´ = packbarcode_d OR ´packbarcode´ = packbarcode_d 
			OR ´clientbarcode2´ = packbarcode_d OR ´packbarcode2´ = packbarcode_d) 
			and length(packbarcode_d) > 0)
			AND wid != wid_d AND ´show´ = 1 for update;
		if(nelsoft_packbarcode_cntr > 0) then 
			rollback;
			select 6;
			LEAVE proc_checkprod;
		end if;
		#packbarcode2
		SELECT count(*) into nelsoft_packbarcode2_cntr 
		FROM product 
		WHERE ((´barcode´ = packbarcode2_d OR ´clientbarcode´ = packbarcode2_d OR ´packbarcode´ = packbarcode2_d 
			OR ´clientbarcode2´ = packbarcode2_d OR ´packbarcode2´ = packbarcode2_d) 
			and length(packbarcode2_d) > 0)
			AND wid != wid_d AND ´show´ = 1 for update;
		if(nelsoft_packbarcode2_cntr > 0) then 
			rollback;
			select 7;
			LEAVE proc_checkprod;
		end if;

	update ´product´ set
		´stockno´ = stockno_d,
		´product´ = product_d,
		´barcode´ = barcode_d,
		´clientbarcode´ = clientbarcode_d,
		´packbarcode´ = packbarcode_d,
		´clientbarcode2´ = clientbarcode2_d,
		´packbarcode2´ = packbarcode2_d,
		´show´ = 1
	where ´wid´ = wid_d;

	select 0;
	commit;
END $$



CREATE DEFINER=´root´@´localhost´ PROCEDURE ´procedure_set_begininginv´(in frombranch integer, in uptobranch integer)
BEGIN
	DECLARE sitecode INT DEFAULT frombranch;
    DECLARE curbranch INT DEFAULT 10;
    DECLARE isremote_val INT DEFAULT 0;
	DECLARE branchno int default 0;
    
    select ´value´ into curbranch from config where particular = 'branchid'; 

	SELECT COUNT(*) INTO branchno FROM ´branch´;

	IF( branchno > 0 ) THEN

		TRUNCATE TABLE productinventorylog;
		ALTER TABLE ´productinventorylog´ AUTO_INCREMENT = 1 ;

		test_loop : LOOP
			IF (sitecode > uptobranch) THEN
				LEAVE test_loop;
			END IF;
            
            select ´isremote´ into isremote_val from branch where wid = sitecode; 
            
            if(sitecode = curbranch or (isremote_val = 1 and curbranch = 10 )) then 
                DELETE FROM ´productbranchinventory´ WHERE ´branchid´ = sitecode;
                
                REPLACE INTO productbranchinventory (´branchid´, ´productid´, ´inv´, ´date´)
                select * from (
                    SELECT sitecode, P.´wid´ AS 'pwid',
                        COALESCE(PR.´qty´,0) 
                        - COALESCE(PRtn.´qty´,0)
                        - COALESCE(SRtn.´qty´,0) 
                        + COALESCE(SRtn.´rqty´,0) 
                        - COALESCE(SD.´qty´,0) 
                        + COALESCE(SR.´qty´,0) 
                        + COALESCE(ADJ.´qty´,0) 
                        - COALESCE(DMG.´qty´,0) AS 'inv', NOW()
                    FROM ´product´ AS P 
                    LEFT JOIN (
                        SELECT D.´productid´, SUM(D.´quantity´ * D.´bigquantity´) AS 'qty'
                        FROM ´purchasereceivehead´ AS H, ´purchasereceivedetail´ AS D
                        WHERE D.´headid´ = H.´wid´ AND H.´show´ = 1 
                            AND H.´status´ = 1 AND H.´branchid´ = sitecode
                            AND D.´productid´ > 0
                        GROUP BY D.´productid´
                    ) AS PR ON P.´wid´ = PR.´productid´
                    LEFT JOIN (
                        SELECT D.´productid´, SUM(D.´quantity´ * D.´bigquantity´) AS 'qty'
                        FROM ´purchasereturnhead´ AS H, ´purchasereturndetail´ AS D
                        WHERE D.´headid´ = H.´wid´ AND H.´show´ = 1 
                            AND H.´status´ = 1 AND H.´branchid´ = sitecode
                            AND D.´productid´ > 0
                        GROUP BY D.´productid´
                    ) AS PRtn ON P.´wid´ = PRtn.´productid´
                    LEFT JOIN (
                        SELECT D.´productid´, 
                                SUM(IF(D.´quantity´ < 0,0,D.´quantity´) * D.´bigquantity´) AS 'qty',
                                SUM(D.´addbackqty´ * D.´addbackbigqty´) AS 'rqty'
                        FROM ´saleshead´ AS H, ´salesdetail´ AS D
                        WHERE D.´headid´ = H.´wid´ AND H.´show´ = 1 
                            AND H.´status´ = 1 AND H.´branchid´ = sitecode
                            AND D.´productid´ > 0
                        GROUP BY D.´productid´
                    ) AS SRtn ON P.´wid´ = SRtn.´productid´
                    LEFT JOIN (
                        SELECT D.´productid´, SUM(D.´quantity´ * D.´bigquantity´) AS 'qty'
                        FROM ´stockdeliveryhead´ AS H, ´stockdeliverydetail´ AS D
                        WHERE D.´headid´ = H.´wid´ AND H.´show´ = 1 
                            AND H.´status´ = 1 AND H.´frombranchid´ = sitecode
                            AND D.´productid´ > 0
                        GROUP BY D.´productid´
                    ) AS SD ON P.´wid´ = SD.´productid´
                    LEFT JOIN (
                        SELECT D.´productid´, SUM(´recvqty´) AS 'qty'
                        FROM ´stockdeliveryhead´ AS H, ´stockdeliverydetail´ AS D
                        WHERE D.´headid´ = H.´wid´ AND H.´show´ = 1 
                            AND H.´status´ = 1 AND H.´tobranchid´ = sitecode
                            AND D.´productid´ > 0
                        GROUP BY D.´productid´
                    ) AS SR ON P.´wid´ = SR.´productid´
                    LEFT JOIN (
                        SELECT ´productid´, SUM(´changedquantity´) AS 'qty'
                        FROM ´productinventoryadjust´
                        WHERE ´status´ = 1 AND ´branchid´ = sitecode
                            AND ´productid´ > 0 
                        GROUP BY ´productid´
                    ) AS ADJ ON P.´wid´ = ADJ.´productid´
                    LEFT JOIN (
                        SELECT D.´productid´, SUM(D.´quantity´ * D.´bigquantity´) AS 'qty'
                        FROM ´damagehead´ AS H, ´damagedetail´ AS D
                        WHERE D.´headid´ = H.´wid´ AND H.´show´ = 1 
                            AND H.´status´ = 1 AND H.´branchid´ = sitecode
                            AND D.´productid´ > 0
                        GROUP BY D.´productid´
                    ) AS DMG ON P.´wid´ = DMG.´productid´
                    WHERE P.´show´ = 1 AND P.´wid´ > 1 
                ) A
                where inv <> 0;
            end if;

			SET sitecode = sitecode +1;
		END LOOP; 
	END IF;
END $$


CREATE DEFINER=´root´@´localhost´ PROCEDURE ´procedure_set_customer_transaction_summary´()
BEGIN

	DECLARE curbranch INT DEFAULT 10;

	select ´value´ into curbranch from config where particular = 'branchid'; 

	if(curbranch = 10) then
		delete from ´customertransactionsummary´ where branchid = 10;

	elseif(curbranch > 10) then
		TRUNCATE table ´customertransactionsummary´;

	end if;

	insert into customertransactionsummary (customerid, branchid, ´date´, orderamount, tradeamount, returnamount, paidamount)


	select A.customerid, curbranch, A.´date´,sum(if(A.´type´ = 1,A.´amt´,0)) as 'orderamount',
		   sum(if(A.´type´ = 2,A.´amt´,0)) as 'tradeamount',
		   sum(if(A.´type´ = 2,A.´retamt´,0)) as 'returnamount',
	       sum(if(A.´type´ = 3,A.´amt´,0)) as 'paidamount'
	from (
		
	    select 1 as 'type', H.´customerid´, date(´date´) as 'date', sum(D.´quantity´*D.´bigquantity´*D.´price´) as 'amt', 0 as 'retamt'
		from ´customer´ as C, ´salesorderhead´ as H, ´salesorderdetail´ as D 
		where H.´wid´ = D.´headid´ and H.´customerid´ = C.´wid´
			and H.´show´ = 1
			and H.´status´ = 1
			and C.´show´ = 1
			and H.´branchid´ = curbranch
			and H.´customerid´ > 0
			group by date(´date´), H.´customerid´
	    union all

	    select 2 as 'type', A.customerid, A.´date´, sum(A.posamt) as 'amt' ,  sum(A.negamt) as 'retamt' 
		from (
			select H.wid, date(H.´date´) as 'date', H.customerid, case 
					when H.´type´ = 3 then
						sum(if(D.quantity>0,D.quantity*D.price,0))
					when H.´type´ <> 3 then
						sum(if(D.quantity>0,D.quantity*D.price*D.bigquantity,0))
						*((100 - H.´discount1´)/100)
						*((100 - H.´discount2´)/100)
						*((100 - H.´discount3´)/100)
						*((100 - H.´discount4´)/100)
						+(´adjust´*abs(sum(if(D.quantity>0,D.quantity*D.price*D.bigquantity,0))/sum(abs(D.quantity)*D.price*D.bigquantity)))
				end as 'posamt',
				abs(case 
					when H.´type´ = 3 then
						sum(if(D.quantity<0,D.quantity*D.price,0))
					when H.´type´ <> 3 then
						(sum(if(D.quantity<0,D.quantity*D.price*D.bigquantity,0))
						*((100 - H.´discount1´)/100)
						*((100 - H.´discount2´)/100)
						*((100 - H.´discount3´)/100)
						*((100 - H.´discount4´)/100))
						+(´adjust´*abs(sum(if(D.quantity<0,D.quantity*D.price*D.bigquantity,0))/sum(abs(D.quantity)*D.price*D.bigquantity)))
				end) as 'negamt'
			from ´customer´ as C,saleshead as H, salesdetail as D 
			where H.´wid´ = D.´headid´ and H.´customerid´ = C.´wid´
				and H.´show´ = 1
				and H.´status´ = 1
				and C.´show´ = 1
				and ´branchid´ = curbranch
			group by H.wid
		) A 
		group by date(´date´), ´customerid´

		union all
		
	    select 3 as 'type', H.´customerid´, date(´collectiondate´) as 'date', sum(D.amount) as 'amt', 0 as 'retamt'
		from ´customer´ as C,´collectionhead´ as H, ´collectiondetail´ as D 
		where H.´wid´ = D.´headid´ and H.´customerid´ = C.´wid´
			and H.´show´ = 1
			and H.´status´ = 1
			and C.´show´ = 1
			and H.´branchid´ = curbranch
			and H.´customerid´ > 0
			group by date(´collectiondate´), H.´customerid´
	) A 
	group by date(´date´), ´customerid´;

END $$


CREATE DEFINER=´root´@´localhost´ PROCEDURE ´process_damagehead´(
	in ´wid_d´ BIGINT(20),
	in ´show_d´ integer,
	in ´status_d´ integer,
	in ´branchid_d´ integer,
	in ´add_minus´ integer,
	in ´date_d´ datetime
)
proc_: begin
	DECLARE bDone BOOL DEFAULT FALSE;
	DECLARE productid_d VARCHAR(200) DEFAULT '';
	DECLARE qty_d DOUBLE DEFAULT 0;
	DECLARE dwid_d DOUBLE DEFAULT 0;
	DECLARE curs CURSOR FOR 
		SELECT ´productid´, ´wid´, ´quantity´*´bigquantity´ AS 'qty' 
		FROM ´damagedetail´ WHERE ´headid´ = wid_d;
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET bDone = TRUE;

	IF( wid_d > 0 and show_d = 1 AND status_d = 1 AND branchid_d > 0) THEN 
		OPEN curs;
		read_loop: LOOP
			FETCH curs INTO productid_d, dwid_d, qty_d;
			IF bDone THEN
				LEAVE read_loop;
			END IF;
			CALL ´process_productbranchinventory´(
				productid_d, branchid_d, add_minus*qty_d, date_d, 11, dwid_d);
		END LOOP;
		CLOSE curs;
	END IF;
end $$


CREATE DEFINER=´root´@´localhost´ PROCEDURE ´process_detail´(
	in ´qty_d´ double,
	in ´productid_d´ BIGINT(20),
	in ´headid_d´ BIGINT(20),
	in ´add_minus´ integer,
	in ´table_d´ integer,
	in ´dwid_d´ BIGINT(20)
)
proc_: begin
	
	IF( productid_d > 0 AND headid_d > 0 AND qty_d > 0 ) THEN
		CASE
			WHEN table_d = 1  THEN
				SELECT COUNT(*), ´show´, ´status´, ´branchid´,´receivedate´
					INTO @cnt, @show_d, @status_d, @branchid_d, @date_d
				FROM ´purchasereceivehead´ WHERE ´wid´ = headid_d;
			WHEN table_d = 2  THEN
				SELECT COUNT(*), ´show´, ´status´, ´branchid´, ´orderdate´
					INTO @cnt, @show_d, @status_d, @branchid_d, @date_d
				FROM ´purchasereturnhead´ WHERE ´wid´ = headid_d;
			WHEN table_d = 3  THEN
				SELECT COUNT(*), ´show´, ´status´, ´branchid´, ´date´
					INTO @cnt, @show_d, @status_d, @branchid_d, @date_d
				FROM ´saleshead´ WHERE ´wid´ = headid_d;
			WHEN table_d = 5  THEN
				SELECT COUNT(*), ´show´, ´status´, ´frombranchid´, ´deliverydate´
					INTO @cnt, @show_d, @status_d, @branchid_d, @date_d
				FROM ´stockdeliveryhead´ WHERE ´wid´ = headid_d;
			WHEN table_d = 6  THEN
				SELECT COUNT(*), ´show´, ´status´, ´tobranchid´, ´datereceived´
					INTO @cnt, @show_d, @status_d, @branchid_d, @date_d
				FROM ´stockdeliveryhead´ WHERE ´wid´ = headid_d;
			WHEN table_d = 11  THEN
				SELECT COUNT(*), ´show´, ´status´, ´branchid´, ´date´
					INTO @cnt, @show_d, @status_d, @branchid_d, @date_d
				FROM ´damagehead´ WHERE ´wid´ = headid_d;
			
		END CASE; 

		IF( qty_d > 0 AND @cnt > 0 AND @show_d = 1 AND @status_d = 1 AND @branchid_d > 0) THEN
			CALL ´process_productbranchinventory´(
				productid_d, @branchid_d, add_minus*qty_d, @date_d, table_d, dwid_d);
			
		END IF;
	END IF;

end $$



CREATE DEFINER=´root´@´localhost´ PROCEDURE ´process_productbranchinventory´(
	in ´productid_d´ BIGINT(20),
	in ´branchid_d´ integer,
	in ´qty_d´ double,
	in ´date_d´ datetime,
	in ´type_d´ integer,
	in ´referencewid_d´ BIGINT(20)
)
begin
	SELECT ´value´, COUNT(*) INTO @cur_branchid, @branchid_cnt 
	FROM ´config´ WHERE ´particular´ = 'branchid';

	IF(qty_d <> 0 AND productid_d > 1 AND branchid_d > 0) THEN
		IF(type_d <> 3 and type_d <> 4) then
			call process_producttransactionsummary(date_d,branchid_d,type_d,productid_d,qty_d);
		end if;
	END IF;
    
    select ´isremote´ into @isRemote from ´branch´ where wid = branchid_d;

	IF( qty_d <> 0 AND productid_d > 1 AND branchid_d > 0 AND (@cur_branchid = branchid_d or (@isRemote = 1 and @cur_branchid = 10))) THEN 

		INSERT INTO ´productbranchinventory´ 
			(´productid´, ´branchid´, ´inv´, ´date´) 
		VALUES (productid_d, branchid_d, qty_d, NOW()) 
		ON DUPLICATE KEY UPDATE ´inv´ = ´inv´ + qty_d, ´date´ = now();#date_d -> now()

		SET @newinv = (SELECT ´inv´ FROM ´productbranchinventory´
						WHERE ´productid´ = productid_d AND ´branchid´ = branchid_d);
		INSERT INTO ´productinventorylog´
		(´productid´,´branchid´,´date´,´qty´,´newinv´,´type´,´referencewid´) VALUES 
		( productid_d, branchid_d, now(), qty_d, @newinv, type_d, referencewid_d ); #date_d -> now()
        
        delete from ´sync´ 
		where ´tablename´ = 'productbranchinventory' 
			and ´wid´= productid_d 
			and ´branchid´<> @cur_branchid;
        
		if(@isRemote = 0) then 
			if(@cur_branchid = 10) then 

				INSERT INTO sync (´tablename´, ´wid´, ´branchid´)
				SELECT 'productbranchinventory', productid_d, ´wid´
				FROM ´branch´ WHERE ´wid´ <> @cur_branchid and ´isremote´ = 0;

			ELSEIF ( @cur_branchid <>  10 ) THEN 

				INSERT INTO sync (´tablename´, ´wid´, ´branchid´)
				SELECT 'productbranchinventory', productid_d, 10;

			end if;
		end if;
        
	END IF;

end $$


CREATE DEFINER=´root´@´localhost´ PROCEDURE ´process_producttransactionsummary´(
	in ´date_d´ datetime,
	in ´branchid_d´ integer,
	in ´table_d´ integer,
	in ´productid_d´ BIGINT(20),
	in ´qty_d´ double
)
proc_: begin

	SELECT ´value´, COUNT(*) INTO @cur_branchid, @branchid_cnt 
	FROM ´config´ WHERE ´particular´ = 'branchid';
    
    set @isRemote = 0;
    
    select ´isremote´ into @isRemote from ´branch´ where wid = branchid_d;
    
	IF( qty_d <> 0 AND productid_d > 1 AND branchid_d > 0 AND (@cur_branchid = branchid_d or (@isRemote = 1 and @cur_branchid = 10))) THEN	
		set @purchasereceive = 0;
		set @purchasereturn = 0;
		set @sales = 0;
		set @salesreturn = 0;
		set @stockdelivery = 0;
		set @stockreceive = 0;
		set @damage = 0;
		set @adjust_inc = 0;
		set @adjust_dec = 0;

		set @temp = 0;
		set @formatted_date = date(concat(date(date_d),' 00:00:00'));
		
		if(table_d = 1)THEN
			set @purchasereceive = qty_d;
		elseif(table_d = 2)THEN
			set @purchasereturn = qty_d * -1;
		elseif(table_d = 3 )THEN
			set @sales = qty_d * -1;
		elseif(table_d = 4)THEN
			set @salesreturn = qty_d;
		elseif(table_d = 5)THEN
			set @stockdelivery = qty_d * -1;
		elseif(table_d = 6)THEN
			set @stockreceive = qty_d;
		elseif(table_d = 9 and qty_d > 0)THEN
			set @adjust_inc = qty_d;
		elseif(table_d = 9 and qty_d < 0)THEN
			set @adjust_dec = qty_d * -1;
		elseif(table_d = 11)THEN
			set @damage = qty_d * -1;
		end if;

		update ´producttransactionsummary´ 
			set 
			´purchasereceive´ = ´purchasereceive´ + @purchasereceive, 
		    ´purchasereturn´ = ´purchasereturn´ + @purchasereturn, 
		    ´sales´ = ´sales´ + @sales, 
		    ´salesreturn´ = ´salesreturn´ + @salesreturn, 
		    ´damage´ = ´damage´ + @damage, 
		    ´adjust_inc´ = ´adjust_inc´ + @adjust_inc, 
		    ´adjust_dec´ = ´adjust_dec´ + @adjust_dec,
		    ´stockdelivery´ = ´stockdelivery´ + @stockdelivery,
		    ´stockreceive´ = ´stockreceive´ + @stockreceive,
			´productid´ = (@temp := productid_d),
			´id´=LAST_INSERT_ID(´id´)
		where ´branchid´ = branchid_d and ´date´ = @formatted_date and ´productid´ = productid_d;
		
		if(@temp = 0) then
			INSERT INTO ´producttransactionsummary´
			(´branchid´,´date´,´productid´,´purchasereceive´,´purchasereturn´,´sales´,´salesreturn´,
			´damage´,´adjust_inc´,´adjust_dec´,´stockdelivery´,´stockreceive´)
			values
			(branchid_d,date(date_d),productid_d,@purchasereceive,@purchasereturn,@sales,@salesreturn,
			@damage,@adjust_inc,@adjust_dec,@stockdelivery,@stockreceive);
		end if;
				   
		set @lastid = LAST_INSERT_ID();

		if(´branchid_d´ <> 10 && @isRemote = 0) then
			delete from sync where tablename = 'producttransactionsummary' and wid = @lastid;
			insert into ´sync´(´tablename´,´wid´,´branchid´) values ('producttransactionsummary',@lastid,10);
		end if;
	END IF;
end $$



CREATE DEFINER=´root´@´localhost´ PROCEDURE ´process_producttransactionsummary_head´(
	in ´branchid_d´ integer,
	in ´date_d´ datetime,
	in ´wid_d´ BIGINT(20),
	in ´status_d´ integer,
	in ´show_d´ integer,
	in ´addminus´ integer,
	in ´table_d´ integer
)
proc_: begin

	DECLARE bDone BOOL DEFAULT FALSE;
	DECLARE productid_d VARCHAR(200) DEFAULT '';
	DECLARE qty_d DOUBLE DEFAULT 0;
	DECLARE addback_d DOUBLE DEFAULT 0;
	DECLARE curs CURSOR FOR 
		SELECT ´productid´, ´quantity´*´bigquantity´ AS 'qty',
			´addbackqty´ * ´addbackbigqty´ AS 'addback'
		FROM ´salesdetail´ WHERE ´headid´ = wid_d;
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET bDone = TRUE;

	IF( wid_d > 0) THEN 
		IF( show_d = 1 AND status_d = 1 AND branchid_d > 0) THEN
			OPEN curs;
			read_loop: LOOP
				FETCH curs INTO productid_d, qty_d, addback_d;
				IF bDone THEN
					LEAVE read_loop;
				END IF;
				IF(qty_d > 0) THEN
					call ´process_producttransactionsummary´(date_d,branchid_d,table_d,productid_d,addminus*qty_d);
				END IF;
			END LOOP;
			CLOSE curs;
		END IF;
	END IF;
end $$


CREATE DEFINER=´root´@´localhost´ PROCEDURE ´process_purchasereceivehead´(
	in ´wid_d´ BIGINT(20),
	in ´show_d´ integer,
	in ´status_d´ integer,
	in ´branchid_d´ integer,
	in ´add_minus´ integer,
	in ´date_d´ datetime
)
proc_: begin
	DECLARE bDone BOOL DEFAULT FALSE;
	DECLARE productid_d VARCHAR(200) DEFAULT '';
	DECLARE qty_d DOUBLE DEFAULT 0;
	DECLARE dwid_d DOUBLE DEFAULT 0;
	DECLARE curs CURSOR FOR 
		SELECT ´productid´, ´wid´, ´quantity´*´bigquantity´ AS 'qty' 
		FROM ´purchasereceivedetail´ WHERE ´headid´ = wid_d;
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET bDone = TRUE;

	IF( wid_d > 0 and show_d = 1 AND status_d = 1 AND branchid_d > 0) THEN 
		OPEN curs;
		read_loop: LOOP
			FETCH curs INTO productid_d, ´dwid_d´, qty_d;
			IF bDone THEN
				LEAVE read_loop;
			END IF;
            
			CALL ´process_productbranchinventory´(
				productid_d, branchid_d, add_minus*qty_d, date_d, 1, dwid_d);
		END LOOP;
		CLOSE curs;
	END IF;
	
end $$


CREATE DEFINER=´root´@´localhost´ PROCEDURE ´process_purchasereturnhead´(
	in ´wid_d´ BIGINT(20),
	in ´show_d´ integer,
	in ´status_d´ integer,
	in ´branchid_d´ integer,
	in ´add_minus´ integer,
	in ´date_d´ datetime
)
proc_: begin
	DECLARE bDone BOOL DEFAULT FALSE;
	DECLARE productid_d VARCHAR(200) DEFAULT '';
	DECLARE qty_d DOUBLE DEFAULT 0;
	DECLARE dwid_d DOUBLE DEFAULT 0;
	DECLARE curs CURSOR FOR 
		SELECT ´productid´, ´wid´, ´quantity´*´bigquantity´ AS 'qty' 
		FROM ´purchasereturndetail´ WHERE ´headid´ = wid_d;
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET bDone = TRUE;

	IF( wid_d > 0 and show_d = 1 AND status_d = 1 AND branchid_d > 0) THEN 
		OPEN curs;
		read_loop: LOOP
			FETCH curs INTO productid_d, dwid_d, qty_d;
			IF bDone THEN
				LEAVE read_loop;
			END IF;
			CALL ´process_productbranchinventory´(
				productid_d, branchid_d, add_minus*qty_d, date_d, 2, dwid_d);
		END LOOP;
		CLOSE curs;
	END IF;
	
end $$


CREATE DEFINER=´root´@´localhost´ PROCEDURE ´process_sales_fncs´(
	in ´productid_d´ BIGINT(20),
	in ´qty_d´ integer,
	in ´addbackqty_d´ integer,
	in ´add_minus´ integer,
	in ´headid_d´ BIGINT(20)
)
proc_: begin
	
	SELECT COUNT(*), ´show´, ´status´, ´branchid´,´date´
	INTO @cnt, @show_d, @status_d, @branchid_d, @date_d
	FROM ´saleshead´ WHERE ´wid´ = headid_d;

	IF( @show_d = 1 AND @status_d = 1 AND @branchid_d > 0) THEN
		IF(qty_d > 0) THEN
			call ´process_producttransactionsummary´(@date_d,@branchid_d,3,productid_d,qty_d*add_minus);
		END IF;
		call ´process_salesreturn´(@date_d,qty_d,addbackqty_d,productid_d,headid_d,add_minus);
	END IF;
end $$


CREATE DEFINER=´root´@´localhost´ PROCEDURE ´process_sales_fncs_head´(
	in ´branchid_d´ integer,
	in ´date_d´ datetime,
	in ´wid_d´ BIGINT(20),
	in ´status_d´ integer,
	in ´show_d´ integer,
	in ´add_minus´ integer,
	in ´table_d´ integer
)
proc_: begin
	IF( show_d = 1 AND status_d = 1 AND branchid_d > 0) THEN
		call ´process_producttransactionsummary_head´(branchid_d,date_d,wid_d,status_d,show_d,add_minus,3);
		call ´process_salesreturn_head´(wid_d,date_d,branchid_d,status_d,show_d,add_minus);
	END IF;
end $$


CREATE DEFINER=´root´@´localhost´ PROCEDURE ´process_saleshead´(
	in ´wid_d´ BIGINT(20),
	in ´show_d´ integer,
	in ´status_d´ integer,
	in ´branchid_d´ integer,
	in ´add_minus´ integer,
	in ´date_d´ datetime
)
proc_: begin
	DECLARE bDone BOOL DEFAULT FALSE;
	DECLARE productid_d VARCHAR(200) DEFAULT '';
	DECLARE qty_d DOUBLE DEFAULT 0;
	DECLARE dwid_d DOUBLE DEFAULT 0;
	DECLARE addback_d DOUBLE DEFAULT 0;
	DECLARE curs CURSOR FOR 
		SELECT ´productid´, ´wid´, ´quantity´*´bigquantity´ AS 'qty',
			´addbackqty´ * ´addbackbigqty´ AS 'addback'
		FROM ´salesdetail´ WHERE ´headid´ = wid_d;
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET bDone = TRUE;

	IF( wid_d > 0) THEN 
		IF( show_d = 1 AND status_d = 1 AND branchid_d > 0) THEN
			OPEN curs;
			read_loop: LOOP
				FETCH curs INTO productid_d, dwid_d, qty_d, addback_d;
				IF bDone THEN
					LEAVE read_loop;
				END IF;
				IF qty_d > 0 THEN
				CALL ´process_productbranchinventory´(
					productid_d, branchid_d, add_minus*qty_d, date_d, 3, dwid_d);
				END IF;
				IF addback_d > 0 THEN
				CALL ´process_productbranchinventory´(
					productid_d, branchid_d, -1*add_minus*addback_d, date_d, 3, dwid_d);#from 4 to 3
				END IF;
			END LOOP;
			CLOSE curs;
		END IF;
	END IF;
end $$


CREATE DEFINER=´root´@´localhost´ PROCEDURE ´process_salesreturn´(
	in ´date_d´ datetime,
	in ´salesqty_d´ double,
	in ´addbackqty_d´ double,
	in ´productid_d´ BIGINT(20),
	in ´headid_d´ BIGINT(20),
	in ´add_minus´ integer
)
proc_: begin

	set @cnt = 0;
	set @show_d = 0;	
	set @status_d = 0;
	set @branchid_d = 0;
	set @damagedqty_d = abs(salesqty_d)-abs(addbackqty_d);

	SELECT COUNT(*), ´show´, ´status´, ´branchid´
		INTO @cnt, @show_d, @status_d, @branchid_d
	FROM ´saleshead´ WHERE ´wid´ = headid_d;

	IF( @damagedqty_d > 0 AND salesqty_d < 0 AND @cnt > 0 AND @show_d = 1 AND @status_d = 1 AND @branchid_d > 0) THEN
		call process_producttransactionsummary(date_d,@branchid_d,11,productid_d,add_minus*@damagedqty_d);
		#call process_producttransactionsummary(date_d,@branchid_d,3,productid_d,-1*add_minus*@damagedqty_d);
	END IF;

	IF( salesqty_d < 0 AND @cnt > 0 AND @show_d = 1 AND @status_d = 1 AND @branchid_d > 0) THEN
		call process_producttransactionsummary(date_d,@branchid_d,4,productid_d,add_minus*salesqty_d);
	END IF;
end $$


CREATE DEFINER=´root´@´localhost´ PROCEDURE ´process_salesreturn_head´(
	in ´wid_d´ BIGINT(20),
	in ´date_d´ datetime,
	in ´branchid_d´ integer,
	in ´status_d´ integer,
	in ´show_d´ integer,
	in ´add_minus´ integer
)
proc_: begin
	DECLARE bDone BOOL DEFAULT FALSE;
	DECLARE productid_d VARCHAR(200) DEFAULT '';
	DECLARE qty_d DOUBLE DEFAULT 0;
	DECLARE addback_d DOUBLE DEFAULT 0;
	DECLARE curs CURSOR FOR 
		SELECT ´productid´, ´quantity´*´bigquantity´ AS 'qty',
			´addbackqty´ * ´addbackbigqty´ AS 'addback'
		FROM ´salesdetail´ WHERE ´headid´ = wid_d;
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET bDone = TRUE;
	IF( wid_d > 0) THEN 
		IF( show_d = 1 AND status_d = 1 AND branchid_d > 0) THEN
			OPEN curs;
			read_loop: LOOP
				FETCH curs INTO productid_d, qty_d, addback_d;
				IF bDone THEN
					LEAVE read_loop;
				END IF;
				
				IF(qty_d < 0) THEN
					set @damagedqty_d = abs(qty_d)-abs(addback_d);
					IF( @damagedqty_d > 0 AND qty_d < 0 AND show_d = 1 AND status_d = 1 AND branchid_d > 0) THEN
						call process_producttransactionsummary(date_d,branchid_d,11,productid_d,add_minus*@damagedqty_d);
						#call process_producttransactionsummary(date_d,branchid_d,3,productid_d,-1*add_minus*@damagedqty_d);
					END IF;

					IF( qty_d < 0 AND show_d = 1 AND status_d = 1 AND branchid_d > 0) THEN
						call process_producttransactionsummary(date_d,branchid_d,4,productid_d,add_minus*qty_d);
					END IF;
				END IF;
			END LOOP;
			CLOSE curs;
		END IF;
	END IF;
end $$



CREATE DEFINER=´root´@´localhost´ PROCEDURE ´process_stockdeliveryhead´(
	in ´wid_d´ BIGINT(20),
	in ´show_d´ integer,
	in ´status_d´ integer,
	in ´branchid_d´ integer,
	in ´add_minus´ integer,
	in ´whichQTY´ integer,
	in ´date_d´ datetime
)
proc_: begin
	DECLARE bDone BOOL DEFAULT FALSE;
	DECLARE productid_d VARCHAR(200) DEFAULT '';
	DECLARE qty_d DOUBLE DEFAULT 0;
	DECLARE dwid_d DOUBLE DEFAULT 0;
	DECLARE recvqty_d DOUBLE DEFAULT 0;
	DECLARE curs CURSOR FOR 
		SELECT ´productid´, ´wid´, ´quantity´*´bigquantity´ AS 'qty', ´recvqty´
		FROM ´stockdeliverydetail´ WHERE ´headid´ = wid_d;
	DECLARE CONTINUE HANDLER FOR NOT FOUND SET bDone = TRUE;

	IF( wid_d > 0 and show_d = 1 AND status_d = 1 AND branchid_d > 0) THEN 
		OPEN curs;
		read_loop: LOOP
			FETCH curs INTO productid_d, dwid_d, qty_d, recvqty_d;
			IF bDone THEN
				LEAVE read_loop;
			END IF;
			if(whichQTY = 1)then
				CALL ´process_productbranchinventory´(
					productid_d, branchid_d, add_minus*qty_d, date_d, 5, dwid_d);
			end if;
			if(whichQTY = 2)then
				CALL ´process_productbranchinventory´(
					productid_d, branchid_d, add_minus*recvqty_d, date_d, 6, dwid_d); 			
				end if;
		END LOOP;
		CLOSE curs;
	END IF;
end $$

delimiter $$

DROP TRIGGER IF EXISTS before_insert_productinventoryadjust$$
CREATE TRIGGER ´before_insert_productinventoryadjust´ BEFORE INSERT ON ´productinventoryadjust´ FOR EACH ROW
proc_:BEGIN
 	IF( new.wid > 0 AND new.´status´ = 1 AND new.branchid > 0 AND new.istransfer = 0) THEN 
 		CALL ´process_productbranchinventory´(
 			new.productid, new.branchid, new.changedquantity , new.´datecreated´,9,new.wid);
 	end if;
END $$

DROP TRIGGER IF EXISTS before_update_productinventoryadjust$$
 CREATE TRIGGER ´before_update_productinventoryadjust´ BEFORE UPDATE ON ´productinventoryadjust´ FOR EACH ROW
proc_:BEGIN
 
 	IF( new.wid > 0 AND old.´status´=1 AND new.branchid > 0 AND new.istransfer = 0) THEN 
 		CALL ´process_productbranchinventory´(
 			old.productid, old.branchid, old.changedquantity*(-1), old.´datecreated´,9,old.wid);
 	end if;
 	IF( new.wid > 0 AND new.´status´ = 1 AND new.branchid > 0 AND new.istransfer = 0) THEN 
 		CALL ´process_productbranchinventory´(
 			new.productid, new.branchid, new.changedquantity , new.´datecreated´,9,new.wid);
 	end if;
 END $$

DROP TRIGGER IF EXISTS before_delete_productinventoryadjust$$
CREATE TRIGGER ´before_delete_productinventoryadjust´ BEFORE DELETE ON ´productinventoryadjust´ FOR EACH ROW
proc_:BEGIN

 	IF( old.wid > 0 AND old.´status´ = 1 AND old.branchid > 0 AND old.istransfer = 0) THEN 
 		CALL ´process_productbranchinventory´(
 			old.productid, old.branchid, old.changedquantity*(-1), old.´datecreated´,9,old.wid);
 	end if;
 
 END $$
delimiter $$

drop procedure ´process_sales_fncs´ $$

CREATE PROCEDURE ´process_sales_fncs´(
    in ´productid_d´ BIGINT(20),
    in ´qty_d´ double,
    in ´addbackqty_d´ double,
    in ´add_minus´ integer,
    in ´headid_d´ BIGINT(20)
)
proc_: begin
    
    SELECT COUNT(*), ´show´, ´status´, ´branchid´,´date´
    INTO @cnt, @show_d, @status_d, @branchid_d, @date_d
    FROM ´saleshead´ WHERE ´wid´ = headid_d;

    IF( @show_d = 1 AND @status_d = 1 AND @branchid_d > 0) THEN
        IF(qty_d > 0) THEN
            call ´process_producttransactionsummary´(@date_d,@branchid_d,3,productid_d,qty_d*add_minus);
        END IF;
        call ´process_salesreturn´(@date_d,qty_d,addbackqty_d,productid_d,headid_d,add_minus);
    END IF;
end $$

Author: Robi Navarro
Last update: 2019-01-18 08:30


Run MYSQL DB COMARE

1. go to the directory where mysql db compare is found using CMD and run this command:

mysqldbcompare --server1=root:121586@'10073-15-POS03' --server2=root:121586@'127.0.0.1' nelsoft:nelsoft --run-all-tests --changes-for=server1 --difftype=differ --skip-data-check --skip-row-count --format=csv --skip-table-options

Author: Robi Navarro
Last update: 2019-01-18 08:46


General Processes/Information » Installation Manuals

Android Studio Installation

Android Studio Installation

Download the following:

  1. Android Studio : https://developer.android.com/studio
  2. JDK : https://www.oracle.com/technetwork/java/javase/downloads/jdk12-downloads-5295953.html

Pre - Installation

Install Java Development Kit (JDK)

  1. Before installing Android Studio, install first Java Development Kit(JDK). Ensure to install version 1.8 and above. You can check your JDK version by typing "javac -version" on command line.

  2. Run the installer and follow the instruction.

  3. Include JDK's "bin" directory in the System Variable PATH

    a. Add new variable under System variables, value should be the path to JDK's bin

     

    b. Add this to PATH variable in System Variables "%JAVA_HOME%\bin"

     

  4. Verifying path, in cmd typing "javac" should result something similar to below image:

     

Android Studio Installation

  1. Run the installer for Android Studio

  2. Check "Android Virtual Device" to install emulator for testing

     

  3. Select path to install or click Next then Install

  4. Click Finish and Run Android Studio

  5. Update components if necessary

  6. Go to File > Settings > Appearance & Behavior > System Settings > Android SDK, install Android version by checking the checkboxes and click Apply

     

  7. With the above image, copy the Android SDK Location

  8. Under User variables:

     

  9. Add the copied path in the Path variable

     

  10. To verify, type "adb" on cmd and should show something similar below

     

  11. In Android Studio, under Tools > AVD Manager, click Create Virtual Device

     

  12. Choose desired device, then Next, click Download on version the device is available for test run, this will download files and might take a long time and then click Finish

Some Stuff

Build the project

  1. Clicking this will Build and compile the files and create an APK

     

Running the project

  1. Clicking this will run the project in the emulator with the desired device.

     

Finding the APK

 

Author: Mary Nicole Quirabu
Last update: 2019-09-19 12:18


Printer Setup for Chinese Characters

EPSON TM-U220 Receipt (Simplified Chinese Driver)

  1. DIP SWITCH, to set resident characters to Simplified Chinese GB18030.   Note: To check resident characters, hold the Feedback button of printer before powering on.   

EPSON TM-T82 Receipt (South Asian Driver)

  1. Memory Switch, to set resident characters to Simplified Chinese GB18030.   Note: To check resident characters, hold the Feedback button of printer before powering on.
    • To set resident characters to Simplified Chinese GB18030:  [怎么设定简体中文字母 GB18030: ]
      1. Hold the Feedback button of printer before powering on. [ 打开打印机之前,请按住打印机的“反馈”按钮 ]
      2. Hold again the feedback button for more than 1 second to display the menu option. [ 再次按住反馈按钮1秒钟以上,显示设定选项。]

      3. Select '3: Customize Value Settings'. (Click the feedback button 4 times and hold it on 4th time)  [ 选择‘3:Customize Value Settings’(按下"反馈"按钮4次,然后按住第4次) ]

      4. Select '3: Multi Language Font'. (Click the feedback button 4 times and hold it on 4th time)  [ 选择‘3: Multi Language Font’(按下"反馈"按钮4次,然后按住第4次) ]

      5. If * is on '1: Thai, Vietnam', select '2: Simplified Chinese'. (Click the feedback button 3 times and hold it on 3rd time)  [ 比如 * 是在 '1: Thai, Vietnam',选择'2: Simplified Chinese' (按下"反馈"按钮3次,然后按住第3次) ]

      6. Proceed to exit afterwards. [ 重启打印机 ]
  2. On POS Config (Setting.xml in Resto), in Printer Settings, set Print Receipt Actual to 48 and Print Receipt Limit to 48. [ 销售收银台POS Config(餐厅收银台setting.xml),Printer Settings里,设定Print Receipt Actual=48 和 Print Receipt Limit=48. ]
  3. On POS Config (Setting.xml in Resto), in Printer Settings, set Print Receipt DisableBypass to True. (PrintReceiptSentFontToB to 0 in Resto) [ 收银台POS Config(餐厅收银台setting.xml),Printer Settings里,设定DisableBypass=True(餐厅收银台PrintReceiptSentFontToB=0)]
  4. On POS Config, in POS settings, set Print Chinese Characters to True. [ 收银台POS Config, POS Settings里,设定Print Chinese Characters=True ]

Author: Mary Nicole Quirabu
Last update: 2019-10-21 13:16


Data Collector Installation / Update requirements

  • Storage for all APKs are found here 
  • Status
    • Core latest version: 2.0.3
    • CIRMS latest version: 6.0.1
    • CIRMS unoptimized latest version: 1.0.7 (discontinued)
    • CIRMS optimized starting version: 1.0.31
  • CIRMS optimized
    • Starting version: 1.0.31
    • Required Hardware: 95W series
    • Minimum android OS version: android 6 (Marshmallow)
    • Software requirements
      • disable debug features
      • should have teamviewer
    • When updating
      -Ask user to finalize all transactions before the update because all data will be lost during update
      -To delete data: go to settings => app => data collector => clean data

Author: admin
Last update: 2022-01-10 07:12


Product Manuals » ManualSync (AutoSync v5)

AutoSync v5 User Manual

Author: Mary Nicole Quirabu
Last update: 2019-12-11 04:08


AutoSync v5 Developer Manual

Table of Contents

 

Version Compatibility

The table below shows the minimum version of the Manual Sync application, database, and test case specification compatible with the version of this document.

System Document Test Case Specification Manual Sync Database
1.0 1.0 5.0.1.15 2.9

 The Test Case Specifications document can be found on this link.

 

About ManualSync

System Summary

Autosync v5, also called as ManualSync, is faster and more reliable that its previous version, Autosync v4, where the syncing speed is slower because it is reliant to Hamachi that directly connects and sends files to the database of other servers. In ManualSync, the syncing process is not affected even without the Hamachi.

Users can perform the syncing and database backup even at the idlest time of the day, so this will not affect the traffic of system usage. In this version, users can now select the folder or drive they want the backup database to be stored.

The Http File Server receives files from one server and then sends those files to another server through the Manual Sync software. The Http File Server provides the size of the files to be downloaded when requested by servers through the Manual Sync.

In the server where the HTTP File Server is hosted, there is a folder 'file_server_production' where the files of all clients are stored. The HTTP File Server creates a directory hierarchy which separates each client network and their files using the branch's client network id.

Inside the file_server_production is the ‘downloaded’ and ‘uploaded’ folders. These folders contain the client network id folders where each of them consists of ‘to branchid’ folders. Then, the ‘to branchid’ folders contain the ‘from branchid’ folders that consist of folders of every table downloaded/uploaded.

The structure of directory hierarchy is shown below:

One of the issues encountered with Http File Server is full storage. Folders already downloaded from the server are deleted to have more storage space for files since they are only necessary for back tracking purposes incase issues are encountered.

System Requirements

Below are the dependencies needed for the latest version of Manual Sync to work properly:

  • Target Framework: .NET Framework 4.5.2
  • Platform Target: Any CPU, 32-bit or 64-bit (64-bit is preferred)
  • Operating System: Windows Vista SP2 or later (Windows 7 or later is preferred)
  • Packages & Libraries:
    • Newtonsoft.Json v9.0.1
    • RestSharp v105.2.3
    • ObjectListView.Official v2.9.1
    • NUnit v3.5.0
    • NSubstitute v1.10.0
    • MySql.Data
    • Ionic.Zip
    • ApplicationUpdater

The following are the safest minimum hardware requirements for Manual Sync:

  • 4GB RAM
  • i3 processor
  • At least 240GB of hard disk capacity 

 

Setup Guide

This section shows how to setup the Manual Sync application before using it.

  • If both server and POS are using Manual Sync:
    1. Download the HttpFileServer folder from this link: https://trello.com/c/PCEtGuOc/27-manual-sync-setup
    2. Transfer HttpFileServer in server folder of current branch. See image below.

    3. Open the HttpFileServer folder. Then, go to config folder.
    4. Open config.json. Change directory to D:
    5. Go to drive D and create new folder named "FileServerRoot"
    6. On HTTPD-vhosts.conf, add virtual host port 79 root path: C:\NS\WS_1\HttpFileServer\public
    7. Add Listen 0:0:0:0:79 on HTTPD.conf
    8. Restart apache.
    9. Change settings of SERVER and POS.
      • For Terminal File Server Hostname, the format should be like this:  <TerminalFileServerHostname>[server's computer name:79]</TerminalFileServerHostname>

NOTES:

  • Test if the port number used is working and available.
  • For FileServerRoot folder, you can use any drives available but don't forget to change the config settings in HttpFileServer. Also, do not use drive C as much as possible.

 

Manual Sync Settings

This section shows the settings of Manual Sync in the xml file. Each setting is discussed, and the values are specified that are needed for it to work.

Figure 1: A sample screenshot of the Settings xml file that shows the first few settings.

  1. <ClientNetworkID> - This refers to the client’s network id that can be found on Nelsoft’s client base.
  2. <BranchId> - This refers to the branch id that you are using in your unit/computer.
  3. <TerminalNumber> - This refers to what terminal you are currently in. If the value is “0”, it means you are the server. If it is another value, it means you are the POS terminal.
  4. <Server> - This refers to the name or IP address of your server host.
  5. <Database> - This refers to the database name that you are using in your web system and POS, if you have any.
  6. <Port> - This refers to the TCP/IP port of your server host.
  7. <Username> - This refers to the username to be used by ManualSync as credentials to connect to the database. The default value is “root”.
  8. <Password> - This is the encrypted password of your database connection.
  9. <ProductSyncMode> - This refers to the syncing of products’ branch price in the main branch and the sub-branches. If the value is “1”, all products’ branch price are only synced from the main branch. If the value is “2”, other branches can sync their own branch prices to other branches. Important: The value should be the same with all branches' settings. The "Rollback: Successful" error can occur if one branch tries to send files to another branch that has a different product sync mode value.
  10. <BackupTime> - This refers to the time in 24-hr format that the ManualSync will back up your data. This can have multiple values by separating them by comma. Example: 10:00, 20:00
  11. <InitialBackupDirectory> - This refers to the initial path where the backup database will go to.
  12. <BackupDirectory> - This refers to the directory where the backup will be copied to. It is recommended to input a directory found in a different drive.
  13. <MaxBackupCount> - This refers to the maximum backup file count to be stored. Once it reaches the count, ManualSync will delete the oldest created backup file.
  14. <DataDirectory> - This refers to the folder path for storage of ManualSync generated files pending to be uploaded or patched. It is advised to place the path in \ProgramData\Autosync but in different drive (if there are any) aside from drive C:
  15. <FileServerHostname> - This refers to the http file server address that you need for syncing and for uploading or downloading data from branch to another branch. The hostname to be used is “sync.crims.ph”.
  16. <FileServerUsername> - This refers to the http file server username for authentication to access the file server address. The username to be used is “nelsoft”.
  17. <FileServerPassword> - This refers to the http file server encrypted password for authentication to access the file server address.
  18. <FileServerRoot> - This refers to the directory in the cloud server where the http file server is hosted, where the data  are uploaded to or downloaded from.

    (Important: The directory that all clients are using is named "file_server_production". NEVER use that directory for testing as it can affect the clients data immediately and it is impossible to track or fix the issues that can occur.)

  19. <TerminalFileServerHostname> - This refers to the http file server address that you need for syncing from POS to server and for uploading or downloading data.
  20. <TerminalFileServerUsername> - This refers to the http file server username for authentication to access the terminal address for syncing POS to server.
  21. <TerminalFileServerPassword> - This refers to the http file server encrypted password for authentication to access the terminal address for syncing POS to server.
  22. <TerminalFileServerRoot> - This refers to the directory in the local server where the http file server is hosted, where the data  are uploaded to or downloaded from.

    (Important: The directory that all clients are using is named "file_server_production". NEVER use that directory for testing as it can affect the clients data immediately and it is impossible to track or fix the issues that can occur.)

  23. <SyncMode> - This determines whether the sync mode will be Auto or Manual. If the input is "0", the sync mode is 'Auto' that enables the software to automatically send or receive the files in the branch. The sending/receiving of files happens every five minutes. If the input is “1”, the sync mode is ‘Manual’ which is the default mode.
  24. <ManualSyncMode> - This turns on or off the function of combining ‘generate’ and ‘upload’ processes as “Send”, and ‘download’ and ‘patch’ processed as “Receive”. This is an optimization that fixes corrupted data issues. If the input is “0”, this turns the function off which separates the said processes. If the input is “1”, this turns the function on which combines the said processes.
  25. <BranchesToSync> - This refers to the branch id of the branches you want to sync. If there is no value, this setting is considered off.
  26. <SuperadminMode> - This changes the mode of ManualSync into superadmin mode if you input “1”. (NOTE: This setting is currently disabled.)
  27. <LogPatcherQueries> - This enables or disables the creation of log for queries that will be run on database during the generation process in the ManualSync application. If the input is “0”, this disables the creation of log per day. If the input is “1”, this enables the creation of log per day. The queries will be placed in a file named queries.txt.
  28. <MasterKey> - This refers to the encrypted password that can be used in back-up database, manual re-sync, reset inventory and recompute inventory, and can be used to access other features in the application. This can be changed in the Password Settings in the application under the Settings tab. The default value is “admin”. The hardcoded value is 121586.
  29. <BackupKey> - This refers to the encrypted password that needs to be entered when you manually backup the database. This can be changed in the Password Settings in the application.
  30. <ManualResyncKey> - This refers to the encrypted password that needs to be entered when you choose to manual resync the database. This can be changed in the Password Settings in the application. (NOTE: This setting will be removed on the following version.)
  31. <ResetInventoryKey> - This refers to the encrypted password that needs to be entered before the ManualSync resets the inventory. This can be changed in the Password Settings in the application.
  32. <RecomputeInventoryKey> - This refers to the encrypted password that need to be entered before the ManualSync recomputes the inventory. This can be changed in the Password Settings in the application.
  33. <SkipOutletProducts> - This setting does not include the branchprice with branchid of outlet if the input is “0”. If the input is “1”, it includes the branchprice with outlet branchid. The default value is "0".
  34. <NotifyLastBackupDays> - This is used to set how many days when to display the notification of backup database.
  35. <AutoBackup> - If the value is 1, this setting forces to back up the database even if there is no value in Backup Time setting.

 

Features and Functionalities

Main Features

The buttons on the main user interface of ManualSync can be changed by changing the value of ManualSync Mode in the Settings xml file. If the value is 0, the UI will show you the Generate, Upload, Download, and Patch buttons. If the value is 1, the UI will show the Send and Receive buttons. It is recommended to use Manual Sync Mode = 1 because data can get corrupted when using the Manual Sync Mode = 0.

Below is the UI of Manual Sync if the <ManualSyncMode> is set to 0:

  1. Manual Sync Menu Bar
    • File - This shows the access to the exit button, and force restart button if the <SyncMode> is set to 0 in Settings.
    • Tools - This contains the following functions:
      • Backup Database - This is used when the user wants to manually backup the database.
      • Reset Inventory - This resets the inventory of all products to zero. This function only works on the current branch id.
      • Recompute Inventory - This function recomputes all data in modules that reflect the inventory of products.
    • Settings - This tab has the following settings:
      • Backup Settings - This setting is where users can set the backup directory and the maximum backup count.
      • Sync Settings - This is where users can set which branches will be synced to and from other branches. For the main branch, this is where users can also set which specific branches will be sent the branch prices to.
      • Password Settings - This only shows the settings where users can change the passwords that are used with the major functions in Manual Sync.
      • Check Updates - This function, when clicked, checks if there are updates for Manual Sync.
  2. Database - This shows the list of other branches with their sql server and sql port.
  3. Generate Status - This shows the data to be generated from your branch.
  4. Upload Status - This shows the data count that needs to be uploaded from your branch to other branches.
  5. Download Status - This shows the data count that needs to be downloaded from other branches to your branch.
  6. Patch Status - This shows the data to be patched to your branch.
  7. Refresh - This button refreshes and displays the data of all listed branches.
  8. Generate - This button generates the files to be uploaded from your branch to other branches.
  9. Upload - This button uploads the generated files to the HTTP file server.
  10. Download - This button downloads files from the HTTP file server to the unit.
  11. Patch - This button, when clicked, applies the changes that are in the files to the databaase.

Below is the UI of Manual Sync if <ManualSyncMode> is set to 1:

  1. Sender Status - This shows the data count that need to be sent from your branch to other branches.
  2. Receiver Status - This shows the data count that need to be received from other branches to your branch.
  3. Send - This is the combination of Generate and Upload functions.
  4. Receive - This is the combination of Download and Patch functions.
  5. This shows the current version of the application.
  6. This shows the current branch you are using.
  7. This shows the terminal number. If the value is 0, the application is for the server. If it's another number, the application is for the POS terminal. This can be changed in the Settings xml file.

Settings

Backup Settings

 

  1. Backup Directory - This is the folder path where the backup database will be stored. The default value is C:\dumps.
  2. Backup Directory 2 - This is the secondary folder path for the backup database. This is only optional to be filled.
  3. Browse buttons - These buttons let users to easily select the folder path of the backup directory.
  4. Max Backup Count - This refers to the maximum count the backup database will be saved. The default value is 4.

Sync Settings

 

  1. Branches to Sync - This tab lets users select only specific branches to sync.
  2. Sync Mode - This shows the sync mode of the application. This can be Auto or Manual and can only be changed in the Settings xml file.
  3. Users can tick this checkbox if they want to sync data only to and from selected branches.
  4. Branch Prices - This tab only shows in main branch. This tab lets users select only specific branches where they want to send the branch prices of all branches. Branches not selected will receive only the main branch's prices and their own prices.
  5. Users can tick this checkbox if they want to sync the branch price only on selected branches.
  6. Branches - These are the branches that users can select in Sync Settings.

Password Settings

 

  1. Master Key - This is the password that can be used in all functions in the application that need password. The default value is "admin". The hardcoded value is 121586.
  2. Backup Key - This is the password to be entered when a user manually backups the database.
  3. Manual Re-Sync Key - This is the password to be used when a user manually resync the database. NOTE: This setting will be removed on the following version.

Syncing Types

This part shows the direction of syncing of every table in the database.

Branch to Branch:

Module    Sync Type
Product (product sync mode=1) -  Main to Sub
Product (product sync mode=2) -  All
Brand -  Main to Sub
Department -  Main to Sub
Category -  Main to Sub
Supplier -  Main to Sub
Customer -  All
Member -  All
Member Rate -  All
Member Points -  Sub to Main
User -  All
Bank Account -  Main to Sub
Purchase Order -  All
Purchase Receive -  All
Payment -  Main to Sub & Sub to Main
Purchase Return -  Sub to Main
Other Payment -  Sub to Main
Damaged Product -  Sub to Main
Sales and Returns -  Sub to Main
Sales Order -  Sub to Main
Counter -  Sub to Main
Collection -  Main to Sub & Sub to Main
Other Receives -  Sub to Main
POS Cash Denomination -  Sub to Main
Stock Requests -  All
Stock Deliveries -  All
Product Inventory Adjustment -  Sub to Main
Bank Transactions -  Sub to Main
Product Price Adjust -  Main to Sub & Sub to Main
Department Price Adjust -  Main to Sub & Sub to Main
Product Quantity Promotion -  All
POS Promotion -  Sub to Main
Product Discount -  All
Product Branch Inventory -  All
Product Transaction Summary -  Sub to Main 
Branch -  Main to Sub 

Terminal to Server:

Module    Sync Type
Product -  Main to Sub
Brand -  Main to Sub
Department -  Main to Sub
Category -  Main to Sub
Supplier -  Main to Sub
Customer -  Main to Sub
Member -  Main to Sub
Member Rate -  Main to Sub
Member Points -  Sub to Main
User -  Main to Sub
Sales and Returns -  Sub to Main
Sales and Returns Posd -  Sub to Main
Collection -  Sub to Main
Collection Posd -  Sub to Main
Product Quantity Promotion -  Main to Sub
POS Promotion -  Main to Sub
Product Discount -  Main to Sub
Discount Type -  Main to Sub & Sub to Main
POS Cash Denomination -  Main to Sub & Sub to Main
POS Readings -  Sub to Main
POS Readings Posd -  Sub to Main
POS Receipt Settings (db version < 3.1) -  Main to Sub & Sub to Main
Terminal -  Main to Sub & Sub to Main
Branch -  Main to Sub
Approval Logs (db version >= 3.8) -  Sub to Main

  

Process Flow of ManualSync

General Flow

The diagrams below show the general flow for the whole process of using the ManualSync and its tools.

 

Diagram 1: Flowchart of ManualSync with Generate/Upload & Download/Patch buttons.

 

Diagram 2: Flowchart of ManualSync with Send/Receive buttons.

Detailed Flow

This section shows the detailed flowchart with algorithm of every tool in ManualSync.

Refresh Process

If <ManualSyncMode> = 0:

  1. Loop through each available branches or terminals for syncing.
    1. On DataFetcher status (Generate)
      1. Loop through each available tables for generating process.
        1. Select row count from either ´sync´ or ´terminalsync´ tables.
        2. Total count for each table will be displayed.
    2. On DataUploader status (Upload)
      1. Retrieve all available folders in local 'generated' DataDirectory. (Note: Each folder is named after TableNames.)
      2. Get the total file size of all generated files within the retrieved folders.
      3. Total file size for each table will be displayed.
    3. On DataDownloader status (Download)
      1. Send request to HttpFileServer of all uploaded files for your branch.
      2. HttpFileServer will conveniently respond with the list of tables with total file size for each.
      3. Total file size for each table will be displayed.
    4. On DataPatcher status (Patch)
      1. Retrieve all available folders in local 'downloaded' DataDirectory. (Note: Each folder is named after TableNames.)
      2. Get the total file size of all downloaded files within the retrieved folders.
      3. Total file size for each table will be displayed.

If <ManualSyncMode> = 1:

  1. Loop through each available branches or terminals for syncing.
    1. On DataSender status (Send)
      1. Loop through each available tables for sending process.
        1. Select row count from either ´sync´ or ´terminalsync´ tables.
        2. Total count for each table will be displayed.
    2. On DataReceiver status (Receive)
      1. Send request to HttpFileServer of all uploaded files for your branch.
      2. HttpFileServer will conveniently respond with the list of tables with total file size for each.
      3. Total file size for each table will be displayed.

NOTE: If there are a lot of data to be processed, the software refreshes by batch for every 100,000 of data.

Generate Data

  1. Retrieve a list of wids from ´sync´ or ´terminalsync´ table given the TableNode and target branch.
  2. GetDataRecursive
    1. Check if current Table in progress exists.
    2. Generate a specific SQL query for the table using the criteria given by the TableNode of the current table. (These criteria includes 'WHERE' arguments, BranchPrice filters (if Product module) and specifying composite unique keys.)
    3. Select the actual DataTable using the retrieved wid list as reference keys and the generated SQL query.
    4. Filter the actual DataTable based on its ´frombranchid´ and ´tobranchid´ columns. (Stockdelivery module special condition)
    5. Repeat this GetDataRecursive process for all children TableNodes if there are any.
    6. Consolidate all DataTables of each recursive process into a DataSet.
    7. Return the DataSet as 'DataPack' which also contains the list of wids, and the table name.
  3. Serialize the 'DataPack' into a json string.
  4. Compress the json string into a bin file and save it into 'DataDirectory' fetched folder. (filename format is sync_<generated timestamp>.bin)
  5. Decompress and de-serialize the generated file to check if it is not corrupted.
  6. If all process succeeds, delete the list of wids in the ´sync´ table.

NOTE: If there are a lot of data to be processed, Manual Sync generates data by batch for every 100,000.

Upload Data

  1. Retrieve a list of generated files from 'DataDirectory' fetched folder given the TableNode and target branch.
  2. Generate the directory hierarchy where the files will be uploaded into the HttpFileServer.
  3. Request access to HttpFileServer and upload the generated file given the generated directory hierarchy.
  4. If the upload process succeeds, delete the uploaded file in your local 'DataDirectory'.

Download Data

  1. Generate the directory hierarchy where the source files from HttpFileServer will be downloaded.
  2. Request access to HttpFileServer and get the available files to be downloaded given the generated source directory hierarchy.
  3. If a file exist, download the file and save it into your local 'DataDirectory' downloaded folder.
  4. Create a copy of the downloaded file and Deserialize it to check if it is not corrupted.
  5. If the download process succeeds, execute a request to HttpFileServer to move the remote file to the cloud server's downloaded directory.

Patch Data

  1. Retrieve a list of downloaded files from 'DataDirectory' downloaded folder given the TableNode and the sender branch info.
  2. De-serialize the retrieved file and extract the 'DataPack'.
  3. PutDataRecursive (Pass the DataSet and reference keys inside the 'DataPack')
    1. Select the DataTable of the current Table from the DataSet.
    2. Filter the DataTable using the criteria and special conditions given by the TableNode of the current Table.
    3. Repeat this PutDataRecursive process for all children TableNodes if there are any.
    4. Delete existing local database entries using the given reference keys to avoid duplicate rows.
    5. Insert the filtered DataTable to local database.
  4. PropagateData
    1. If the SyncType of the current Table requires the patched data to be synced to existing terminals or other branches, insert the Table name, reference keys and the destination branch ID to your ´sync´ table.
  5. If all process succeeds, delete the downloaded file from your local 'DataDirectory'.

 

Backup Database

  1. Click Backup Database under Tools tab.
  2. A warning appears to run this tool only when there's no POS online.
  3. If you want to continue, click Yes then proceed to next step. Else, click No then, end process.
  4. Input password.
  5. If password is correct, do the following process:
    1. Get every table in the database.
    2. Compress all the tables into a zip file.
    3. If the maximum backup count has been reached, delete the oldest database backup.
    4. Copy the zipped file to the indicated backup directory.
    5. If there is a second backup directory, copy the zipped file to the second backup directory.
    6. Display "Backup database successful!"

 

Reset Inventory to Zero

  1. Click Reset Inventory to Zero under Tools tab.
  2. A warning appears to run this tool only when there's no POS online.
  3. If you want to continue, click Yes then proceed to next step. Else, click No then, end process.
  4. Input password.
  5. If password is correct, do the following process:
    1. Re-compute inventory process.
    2. Select each product and its current inventory in the database.
    3. If the product has current inventory of 0, skip the product. Else, continue.
    4. For every product, multiply the current inventory to -1 to negate the value.
    5. Then, add the result to the current inventory to get new inventory, which is 0.
    6. On product inventory adjust table, list every product with its old inventory and new inventory.
    7. Re-compute inventory, again.
    8. Display "Reset inventory value to zero successful!"

 

Recompute Inventory

  1. Click Recompute Inventory under Tools tab.
  2. A warning appears to run this tool only when there's no POS online.
  3. If you want to continue, click Yes then proceed to next step. Else, click No then, end process.
  4. Input password.
  5. If password is correct, do the following process:
    1. If main branch, delete main branch's product branch inventory and product transaction summary.
    2. If sub branch, delete all data in product branch inventory and product transaction summary.
    3. Recompute all data in all modules that reflect the products' inventory. (Modules: purchase receive, purchase return, sales, sales return, stock delivery, stock receive, product inventory adjust, damage)
    4. Insert the total data transacted for the day in each module in product transaction summary.
    5. Insert the updated inventory of products in product branch inventory.
    6. Display "Recompute inventory successful!"

 

 

Frequently Asked Questions

Things to Remember

  • The client network id and branch id in settings should match with the values in config table.
  • When performing backup database, reset inventory, or recompute inventory, make sure that there are no POS currently running on the database.
  • It is recommended to set the folder path for Data Directory in \ProgramData\Autosync but a different drive from C
    • For example, D:\ProgramData\Autosync
  • The same with FileServerRoot folder; it should be in a different drive but C.
  • If the folder path set on backup directory does not exists, Manual Sync will create the folder when it backs up the database.

Possible Issues to be Encountered

  1. Corrupted data
    • This happens when the unit has shut down while sending data. This issue mostly happens when Manual Sync Mode is set to 0, but it can still happen when the mode is set to 1.
  2. Mismatched versions
    • The database version of the branch might not be updated and does not match with the version of other branches.
  3. "Rollback: successful" error
    • This is an old bug that happens when data was sent with blank details.
      • For example, a user created an invoice with no details, and it was sent using the Manual Sync. The application cannot handle when there are no rows in the table which are supposed to be the details of that invoice.
    • This error can occur when one branch tries to send files to another branch that has a different product sync mode value from it.
  4. Stock Delivery issue
    • This issue occurs when old data overwrites the newer data in branches involved in the transaction and in third party branches (branches not in the frombranchid and tobranchid fields).
    • This has been fixed recently but is still being monitored, in case the issue occurs again. It now bases on last modified date.
  5. Not all products get synced sometimes
  6. Third party issue
  7. .bin file gets blocked by antivirus
  8. Unable to send or receive
    • This happens when the user has no permission to do the action.

Software Limitations

ManualSync is a faster and more reliable software especially when it comes to its syncing process. It also allows users to perform syncing and database backup whenever is applicable to them. But even with all the improvements made in this software, it still has its limitations.

  1. The Manual Re-sync feature is disabled in this software unlike in AutoSync v4. A user should be able to view another branch's data when going to use the Manual Re-sync feature. In AutoSync v5, there is no access to another branch's database.

Software Change Log

You can find the change log of Manual Sync on this link.

 

Author: Mary Nicole Quirabu
Last update: 2019-10-29 11:35


General Processes/Information » BIR

Day of accreditation

This entry is in revision and can not be displayed.

Author: Mary Nicole Quirabu
Last update: 2022-06-20 17:24


General Processes/Information » BIR » New Accreditation Demo » Bamboo

DELIPOS Documents

Author: Mary Nicole Quirabu
Last update: 2020-02-12 06:37


Lettuce POS Documents

Author: Mary Nicole Quirabu
Last update: 2020-02-12 06:38


RELIAPOS Documents

Author: Mary Nicole Quirabu
Last update: 2020-02-12 06:37


BIR Minutes of Meeting

Author: Mary Nicole Quirabu
Last update: 2022-06-20 17:46


Product Manuals » Retail POS - Core

Senior 20 vs Senior 5

 

  • all Senior citizen / PWD should carry a book where all their transactions are manually listed by the cashier.
  • this book can be used in multiple stores (unrelated stores). Since this can be used in multiple stores we can't track the senior from transacting more than their limit only the cashier can check, through the senior book, if the senior has reached more than the allowed transaction amount.
  • senior 5% is only effective on the local RDO where the senior is registered therefore the limit is only applicable to them.
  • the limit for the senior 5% is for the whole day.
  • only the senior 5% has limit, the 20% shouldn't have any.
  • limit span and amount is different per RDO.
  • senior 5% and 20% should have separate breakdown in the receipt so that the cashier can easily identify them and write them in the senior book

Author: Mary Nicole Quirabu
Last update: 2022-01-03 10:36


Supported Resolutions

 

  • 1920x1080 (16:9)
  • 1360x768 (16:9)
  • 1366x768 (16:9) 
  • 1280x720 (16:9) 
  • 1024x768(4:3)

supported since v4.4.24.0

 

limitation: scaling the display more than 100% is not supported

 

Author: Mary Nicole Quirabu
Last update: 2022-06-16 11:45


General Processes/Information » BIR » New Accreditation Demo

BIR Documentary Requirements

Author: Mary Nicole Quirabu
Last update: 2022-06-20 17:47


List of items to bring in BIR demo

  • at least 2 laptops with the following
    • back office system
    • POS system with correct settings
    • printer drivers installed and tested. 
    • Database to use in demo should have at least 50 realistic products/items depending on type of POS.
    • Blank database or script for clearing data
  • u220 dot matrix printer x 1
  • HDMI x 1
  • VGA x 1
  • Extension cord
  • Extra Journal paper x 3

 

Author: Mary Nicole Quirabu
Last update: 2022-06-20 17:46


Guideline for Accreditation Demo (FROM EXPERIENCE IN PREVIOUS DEMOS)

I. On-line application

The first step is to register on eAccReg System of BIR on this link for application of accreditation demo. After the successful registration, necessary requirements have to be submitted to be qualified for accreditation demo.

II. Submission of Requirements

Here is the list of requirements to be submitted for request of demo.

For Documentary Requirements:
You can find some of the documents here.

  1. Hardcopy of the Company Profile (with target clients and every type of POS)
  2. Proof of Online Application via Electronic Accreditation and Registration (eAccReg) System
  3. Revised Sworn Statement (Annex "B") in accordance with the pro-forma per "Annex A" of Revenue Memorandum Order (RMO) No. 10-2005 and must reflect the additional information:
    • Taxpayer-applicant's Name, Detailed Business Address and "VAT / Non-VAT REG TIN"
    • Complete Software Name and Version No. with Release No./Date
    • That the current POS Software Name and Version No./Release No./Release Date is intended for <insert industry>
    • Indicate whether the application is stand-alone, global, with server-consolidator and/or decentralized
    • Maximum accumulating sales capacity (minimum of twelve digits including the digits after the decimal)
    • Reset Counter Number
    • That the folders containing system files and database is locked and cannot be deleted. There will always be a security that the data will not be deleted upon deployment
    • That all reports and accounting records are compliant with the 10-year retention period pursuant to Revenue Regulation No. 5-2014
    • That the company will assist BIR personnel in case of Tax Audit / Investigation / Verification and Tax Mapping Operations with the taxpayer-user
  4. Duly accomplished and signed Functional and Technical Evaluation Checklist (Annex "C")
  5. Screenshot of the Software Name & Version No. reflected on the Log-In Screen, Home Screen and Splash Screen (if applicable)
  6. Screenshot of the Online/Offline Indicator
  7. User/Security Access Matrix (user permissions)
  8. Narrative Back-up Procedure and Disaster Recovery Plan (DRP)
  9. Process Flowchart for each POS
  10. System Flowchart for each POS
  11. Product brochure
  12. User's manual
  13. Photocopy of Certificate of Registration
  14. Latest BIR form payment 0605 (Annual Registration Fee for business)

For Receipts / Invoices:

  1. All principal receipts/invoices should be in compliance with RR No. 10-2015, as amended by RR No. 16-2018, and must reflect the additional information:
    • Registered Name of the taxpayer-user
    • Detailed business address where such SI/or shall be issued/located
    • VAT (or Non-VAT) REG. TIN with 5-digit branch code, to wit "VAT REG. TIN 000-000-000-00000"
    • Machine Identification Number (MIN)
    • Serial Number (SN)
    • Business Style, if any
    • Indicate "SALES INVOICE" (for sale of goods) or "OFFICIAL RECEIPT" (for services rendered) prominently shown after the header
    • Sales Invoice No./SI No. or Official Receipt No./OR No. (minimum of 6-running digits)
    • Date and Time of Transaction
    • Description of Item/Service, quantity, unit cost and total cost
    • Must follow the format for the breakdown of sales:
      • VATable Sales
      • VAT Amount
      • VAT Exempt Sales
      • Zero-Rated Sales
    • Provision for the Name, Address, TIN, and Business Style of the buyer
    • The following information shall also be printed at the bottom portion/footer of the receipt:
      • Software Supplier's Name, Detailed Business Address and "VAT (or 'Non-VAT', whichever is applicable) REG TIN";
      • Accreditation No., "Date Issued: mm/dd/yyyy" and "Valid Until: mm/dd/yyyy";
      • Permit To Use (PTU) No., "Date Issued: mm/dd/yyyy" and "Valid Until "mm/dd/yyyy";
      • On Principal Invoices/Receipts: Must have the phrase "THIS INVOICE (for sale of goods) or RECEIPT (for services rendered) SHALL BE VALID FOR FIVE (5) YEARS FROM THE DATE OF THE PERMIT TO USE";
      • On Supplementary Invoices/Receipts: Must have the phrases "THIS DOCUMENT SHALL BE VALID FOR FIVE (5) YEARS FROM THE DATE OF THE PERMIT TO USE" and "THIS DOCUMENT IS NOT VALID FOR CLAIM OF INPUT TAX" in bold letters (bottom portion);
  2. Indicate the word "REPRINT" on the succeeding copies to be printed after the Original SI/OR is printed -- "SI No." / "OR No." should not increment every time SI/OR is reprinted
  3. Provision for the Classification and Rate of Discount (Regular (15%), SC (20%), PWD (5%), etc.)
  4. For transactions with Senior Citizen (SC)/PWD Discounts and Diplomat Transactions:
    • Customer Name, Address, "OSCA/SC ID No." or "PWD ID No." or "Diplomat ID", TIN and Signature
    • Sample of separate transaction with 5% and 20% SC and PWD Discounts
    • Should be capable of generating "Customer Copy" and "Accounting (or 'Store') Copy"
  5. For Adjustment to Sales Transaction, the following must be taken into consideration:
    • Title of the report should be shown prominently after the header -- "VOID" / "RETURN/EXCHANGE"
    • Must have a unique sequential number -- SI/OR No. should not advance by 1 or No new SI/OR No. should be issued/generated
    • Reflect the "Ref. SI/OR No."
    • Positive values of the original transaction should be presented in negative (-) form
    • "THIS DOCUMENT SHALL BE VALID FOR FIVE (5) YEARS FROM THE DATE OF THE PERMIT TO USE" and "THIS DOCUMENT IS NOT VALID FOR CLAIM OF INPUT TAX"
  6. Sample invoices/receipts with different types of transactions [e.g. Regular, with Discounts (SC, PWD, Regular, Promo, Employee, etc.) different modes and multiple modes of payment, adjustment to sales, etc.] including X-Reading and Z-Reading for two (2) business days reflecting the amendments in compliance with the abovementioned comments;

For Reports / Logs:

  1. On the X-Reading (Cashier's Accountability Report) and Z-Reading (End-of-Day Report) the following should be reflected:
    • Title of the Report: "X-Reading" or "Z-Reading", whichever is applicable
    • "Beginning SI/OR No." and "Ending SI/OR No."
    • "Beginning Balance" and "Ending Balance"
    • Summary of transactions, discounts, mode of payment, adjustments (beginning balance and ending balance, beginning transaction no. and ending transaction no.), etc.
    • Additional on X-Reading, reflect the Collector/Cashier's Name
    • Additional on Z-Reading, reflect the following:
      • Reset Counter Number, if resettable, or "Non-Resettable"
      • "Z-counter" that advances by 1 every time a Z-Reading id generated (should not increment on reprint)
      • "Accumulated Grand Total" at the bottom-most portion
  2. The header of X-Reading and Z-Reading should be aligned with the header of the SI/OR
  3. Corresponding e-journal in .txt file format (must be the replica of all transactions, SI/OR including all Void/Refund/Return transactions, X-reading, Z-reading Reports, etc.)
  4. Back-end Report (BIR Sales Summary Report) (Annex "D")
  5. Sample SC / PWD Report containing the following:
    • Name
    • OSCA/SC ID or PWD ID
    • Gross Sales
    • Sales Discount Granted
    • Date
    • 'SI' / 'OR' No.
  6. Audit Trail Report (Activity Log) reflecting the following:
    • Date and Time stamp
    • Username / ID
    • Activity performed
    • Values of the date involved in the activity(ies)

III. Request Schedule of Demo

The company representative will submit the requirements at BIR National. After submitting the requirements, he/she can now request a schedule for accreditation demo also at BIR National.

IV. During Demo

A. Introduction of the company

The company representatives will first fill up the provider attendance and then, setup the demo equipment and materials. After that, the company profile will be presented along with every type of POS that the representatives will demonstrate to BIR.

B. Items to demonstrate

  • Log in
  • Main form menu
  • Different types of transaction with realistic products (types of transaction are listed below for each POS)
  • Checking of receipts per type of transaction
  • Void and return process
  • X reading, Y reading checking
  • End of day, Z reading checking
  • BIR Reports checking, details based on reading for summary and or for detailed

Here are the types of transaction that can be asked to demo by BIR:

For Retail POS:

  • Regular transaction using cash payment
  • Regular transaction using credit card payment
  • Transaction with senior discount 20% using cash payment
  • Transaction with senior discount 5% using cash payment
  • Transaction with PWD discount 20% using cash payment
  • Transaction with senior discount 5% and 20% using cash payment
  • Transaction with senior discount 5% and 20% with VAT and non-VAT product (20% senior discount) using cash payment
  • Zero Rated transaction using cash payment

For Fast Food / Fine Dining POS:

  • Regular transaction with vatable product paid with cash
  • Regular transaction paid with credit card
  • Regular transaction (no specific instruction. just to be voided, later)
  • Senior transaction with 1 guest and 1 senior paid with cash
  • Senior transaction with non-senior guest, 5 guests, 2 senior count; paid with cash
  • Void transaction number 3
  • Senior transaction with 1 guest and 1 senior using cash payment

C. List of comments / questions

Here are some of the comments and questions that can be asked by BIR during demo:

  • Provide screenshot of the log in and company profile
  • Senior citizens and PWD have the accounting copies of the sales invoice/official receipt
  • Senior citizens who will avail of discount can present any ID and not necessarily the SC card
  • If the item was returned, can the amount paid be returned back? What happens in POS?
    • Possible for cash transactions only
  • No vat on purchase on medicines on hypertension/diabetic persons however, sc/pwd can still enjoy vat exemption on all medicines
    • VAT exempt products regardless of customer, either senior or not, especially hypertension/diabetic persons
  • Using credit card sale with return of item, how it is reported?
    • Software is not capable of adjusting return transactions using credit card
  • eJournal must include x & z readings
  • If possible, prepare sales report reported to dump on a monthly basis
  • BIR Summary Sales Report -- data on each column were erroneously recorded particularly grand accumulated sales beginning and ending
  • Provision for eSales Reporting
  • Subject to another demo (if there are still issues that need to comply to BIR)
  • Submit screenshot on audit trail report/activity
  • Delipos -- sample of receipt includes service charge with vat however subsequent transaction OR#6 service charge will no longer be subjected to vat

After the demo, the representatives will sign on the attendance that is also in the minutes of meeting.

When the demo was approved by BIR, the following document requirements should be submitted:

  • Softcopies of e-journals and logs of every POS presented in the demo (should be saved in a CD)
  • For each type of POS, printed copies of the following:
    • Summary sales report of transactions created during demo
    • Detailed sales report of transactions created during demo
    • E-sales report of transactions created during demo

V. Follow up of certificate of accreditation

When all the requirements are completely submitted, the only thing left to do is to obtain the certificate of accreditation.

 

This is the guideline to follow, as of February 2020.

Author: Mary Nicole Quirabu
Last update: 2022-06-20 18:31


BIR registration process for new accreditation

 

AS OF 2022-06-21 THIS IS IN BIR'S WEBSITE


DOCUMENTARY REQUIREMENTS

A. For Initial Application

For Stand Alone CAS or POS Machines (not linked to CAS)

1) Accomplished BIR Form 1907 Application for Permit to Use Cash Register Machine/Point of Sale Machine (2002 Enhanced Version)

2) A joint sworn declaration by the applicant and the distributor/dealer or vendor of the machines containing the following:

- Name, address, business name/style of the applicant, TIN of the applicant, kind/line of business and the address where the machine shall be used

- Name, business style, address and TIN of the distributor/dealer or vendor of the machine

- For CRM, brand, model, serial number and type of all its parts, whether electronic or mechanical, whether with resettable or non-resettable accumulating grand total, and whether new or second hand

- For POS machines, brand, model, serial numbers and type of all its parts, whether new or second hand, and software to be used

- Maximum accumulating sales capacity

- Reset Counter number; and,

- Other essential features

3) Photocopy of proof of payment of Registration Fee

4) Photocopy of Certificate of Registration (COR) issued by BIR

5) Photocopy of Certificate of Registration of business style/name issued by DTI (in case of individual) or a copy of SEC Registration (in case of corporation);

6) Sample receipts for a “no sale” transactions identified to the particular issuing machine legibly showing the heading (company logo, business name, trade name, proprietor’s name if applicant is single proprietor, address where the machine is going to be used including branch identification) consecutive receipt numbers and date;

7) Sample receipt showing the reading of the accumulated grand total recorded in the machine, and in case of electronic and POS machines, the reset counter number;

8) For machine with resettable accumulating grand total, all the proprietor’s reset keys and/or copy of the software to be used in the actual operation of the POS machines and customizations made thereto; and

9) Operating Manuals.

CRM/POS Machines linked to CAS

1) Company Profile:

- Photocopy of BIR Certificate of Registration

- Photocopy of Previously Issued Permit, if applicable

- Photocopy of Current Registration Fee Payment

2) Location map of the place of business

3) Inventory of previously approved unused Invoices and receipts, if applicable

4) List of branches that will use CAS, if any

5) Technical Requirements:

- Application Name and Software Used (Development & Database)

- Functions and Features of the application

- System Flow/s

- Process Flow

- Back-up Procedure, Disaster and Recovery Plan

- Sworn Statement and Proof of System Ownership

- List of Reports and Correspondences that can be generated from the system with their description, purpose and sample layout

- Facsimile of System Generated Loose-leaf Books of Accounts and List thereof/Receipts/Invoices

6) Additional Requirements in case of affiliated companies/sister companies, franchisees and branches:

- Photocopy of Previously Issued Permit for mother/sister company or another branch using the same system, if applicable

- Certification from the CSET which previously evaluated the approve system

B. CRM/POS Machines For Repair, Upgrade, Change, Modification, Update Or Removal/Withdawal

Prior to machine repair, upgrade, change, modification or update

a) Written notice to the RDO/LTAD I or II/LTDO that issued the previous permit

After the machine repair, upgrade, change, modification or update

a) New Application Form

b) Joint Sworn Statement executed by the proprietor and the person who made the repair

In case of removal/withdrawal of the machine

a) Written notice to the RDO/LTAD I or II/LTDO that issued the previous permit

 

PROCEDURES

A. Initial Application

- For Stand Alone Cash Register Machine (CRM) or Point Of Sales (POS) Machine (not linked to CAS)

File duly accomplished BIR Form 1907 Application for Permit to Use Cash Register Machine/Point of Sale Machine, (2002 Enhanced Version) with the RDO within whose jurisdiction the business establishment where the machine will be used is located.

- For Cash Register Machine (CRM) /Point of Sales Machine (POS) Machines linked to Computerized Accounting System (CAS)

File duly accomplished BIR Form 1907 Application for Permit to Use Cash Register Machine/Point of Sale Machine, (2002 Enhanced Version) with the RDO/LTAD I or II/LTDO within whose jurisdiction the business establishment where the machine will be used or located RDO/LTAD I or II/LTDO having jurisdiction over the Head Office (HO) except for the following cases:

- In the case the branch adopts CAS ahead of the HO, the application shall be filed by the Branch with the RDO having jurisdiction over the Branch with a certification that the HO does not use CAS. In the event that the HO later adopts the same CAS and the branch with the previously issued permit shall be linked to it, the permit to be issued to the HO shall include a new permit for the said Branch, which shall supersede the previously issued permit.

- In case the branch adopts a different CAS from that of its HO, it shall apply for permit to adopt CAS at the BIR office having jurisdiction over the Branch.

B. Repair, Upgrade, Change, Modification, Update, Removal/Withdrawal

a) Repair, upgrade, change, modification or update of the machine/s

- Prior to repair, upgrade, change, modification or update

Taxpayer files written notice to the RDO/LTAD I or II/LTDO that issued the previous permit

- After the repair, upgrade, change, modification or update

Taxpayer shall submit new BIR Form 1907 together with the required documents to the RDO/LTAD I or II/LTDO that issued the previous permit.

b) Removal/withdrawal of the machine/s

- Taxpayer files written notice to the RDO/LTAD I or II/LTDO that issued the previous permit

DEADLINES

Before using Cash Register Machine (CRM) and/or Point of Sales Machine (POS)

 

RELATED REVENUE ISSUANCES

RR No. 10-99 and RMO No. 29-2002

CODAL REFERENCE

Sec. 237 of the National Internal Revenue Code


FREQUENTLY ASKED QUESTIONS

1) What is Point-Of-Sale (POS) Terminal?

A point-of-sale (POS) terminal is a computerized replacement for a cash register. Much more complex than the cash registers of even just a few years ago, the POS system can include the ability to record and track customer orders, process credit and debit cards, connect to other systems in a network, and manage inventory. Generally, a POS terminal has as its core a personal computer, which is provided with application-specific programs and I/O devices for the particular environment in which it will serve. A POS system for a restaurant, for example, is likely to have all menu items stored in a database that can be queried for information in a number of ways. POS terminals are used in most industries that have a point of sale such as a service desk, including restaurants, lodging, entertainment, and museums.

Increasingly, POS terminals are also Web-enabled, which makes remote training, and operation possible, as well as inventory tracking across geographically dispersed locations.


2) What is Cash Register Machine (CRM)?

Cash Register Machine uses a firmware, which is installed on a chip called electronic programmable Read only Memory (EPROM). In electronic engineering, the term firmware is interpreted as a program which is burned on a non-volatile memory, and which is used for the organization of an exactly defined field of application. A machine-near program code ensures shortest execution times and highest operation- and data security. Compared with traditional PC-systems, the hardware of firmware-controlled machines is usually specially made, what enables to take also ergonomic requirements into consideration.


3) What is CRM/POS Machines Linked to CAS?

Cash Register Machines/Point of Sale Machines that are electronically connected to a CAS or connected to a CAS through a central server via network.


4) In applying for permit to use CRM/POS machines linked to CAS, is it part of the procedure that it should pass the Case Monitoring System (CMS) of the Bureau?

For monitoring purposes, LTAD I and II, LTDOs and computerized RDOs shall create a case for the CRM/POS Machines in the CMS and assign the same to a case officer prior to the preparation and issuance of the corresponding stickers. The corresponding template for CRM/POS shall likewise be filled out by the case officer assigned. (RMO 29-2002)


5) Is automatic resetting of the range of serial numbers on POS machines allowed?

As a general rule, automatic resetting of serial numbers on POS machines is not allowed.


6) What BIR issuance/guidelines shall be applied in processing application for use of CRM/POS machines not linked to taxpayer’s CAS? Is it RMO No. 29-2002 or RR No. 10-99?

Application for use of stand-alone (not linked to CAS) POS Machine/CRM shall be processed under the provisions of RR No. 10-99 or any later regulations that may be issued amending RR No. 10-99. (RMO 29-2002)


7) What does a pool of CRM/POS machines mean?

These are CRM/POS machines reserved for use during peak season by the taxpayer and which shall be registered under the Head Office. These machines shall only be allowed to be transported and be used in rove around the branches of the taxpayer upon written approval from BIR concerned office having jurisdiction over the Head Office on the corresponding CRM/POS machines stating therein the duration of use and the branch/place where said machines shall be used. (RMO 29-2002)


8) Will the taxpayers be allowed to have or maintain a pool of Cash Register Machines (CRM)/Point of Sale (POS) machines linked to CAS?

Yes. Taxpayers that opt to maintain a pool of CRM/POS Machines in their business operations during peak season (stand-by/roving machines) shall identify such in their applications. These machines shall be treated as Head Office machines and shall be issued permits by LTAD I or II, LTDO or RDO having jurisdiction over the Head Office. Only CRM/POS machines belonging to the pool shall be allowed to be transported for use in the branches or to any place of business of the taxpayer.

Transfer to the taxpayer’s branch/es of CRM/POS machines belonging to the pool shall be subject to the approval of LTAD I or II, LTDO or RDO having jurisdiction over the Head Office, which shall then inform the branch/es’ RDOs where the machines shall be used. (RMO 29-2002)


9) Is the roving of stand -alone POS machines allowed?

Roving of stand-alone CRM/POS machines is not allowed. Only POS machines linked to CAS belonging to the pool may be transferred to the taxpayer’s branch/es or other place of business. (RMO 29-2002)


10) How do we monitor pool of CRM/POS machines?

The taxpayer shall give prior notice to the BIR that the CRM/POS machines shall be transferred from Head Office to its branch. (RMO 29-2002)


11) How can we identify machines belonging to the pool of CRM/POS machines?

The pool of CRM/POS machines is registered under the Head Office. To properly identify the CRM/POS machines belonging to the pool, the issuing BIR office shall indicate in the Permit to Use Cash Register Machine (CRM) or Point of Sale (POS) Machine (Annex “G” of RMO 29-2002) after the box for Head Office the word “Pool” in parenthesis. [e.g. Head Office (Pool)].


12) Who shall issue stickers for CRM/POS machines linked to CAS?

Stickers for CRM/POS machines linked to CAS shall be issued by the following:

• For machines to be used by the branch/es

By the BIR office having jurisdiction over the branch/es upon presentation by the taxpayer and submission of a copy of the Branch Permit issued by the BIR office having jurisdiction over the Head Office.

• For machines to be used by the Head Office and those belonging to the pool

By the BIR office having jurisdiction over the Head Office. (RMO 29-2002)


13) How can the CRM/POS Machines stickers issued under RMO No. 29-2002 and RR No. 10-99 be distinguished?

A template for the CRM/POS machines sticker was provided in RMO No. 29-2002. This shall serve as a format that shall distinguish the stickers issued under RMO No. 29-2002 from that issued under RR No. 10-99.


14) Is the manual cash register machine sales book still to be maintained in case the taxpayer adopts CAS?

Taxpayer with approved CAS capable of generating reports such as but not limited to daily sales, accumulated sales, etc. need not be required to maintain manual Cash Register Machine Sales Book provided that all information required in the manual CRM Sales Book are reflected in the computerized reports.

However, these computerized reports shall be made available during post system evaluation of CAS, or duly authorized tax audit of taxpayer’s records. (RMO 29-2002)


15) For Stand Alone POS Machine that can generate a detailed Cash Register/POS Machine Sales Report, would the taxpayer still be required to maintain a Cash Register Sales Book?

Taxpayer with stand alone POS Machine not linked to CAS is still required to maintain a Cash Register Sales Book except when said taxpayer applies for a permit to use a Component of CAS on Sales, provisions under RMO 29-2002 shall be adhered to.

16) Under what issuance applications for permit to use vending machines shall be processed?

Applications for permit to use Vending Machines shall be processed following the provisions of RR No. 10-99.

 

 

 

Author: Mary Nicole Quirabu
Last update: 2022-06-30 07:45


General Processes/Information » BIR » Rules

Revenue Regulations No. 11-2004

SUBJECT: Rules and regulations on accreditation, registration and use of cash register machines (CRM), point-of-sale (POS) machines and/or business machines generating receipts/invoices

Author: Mary Nicole Quirabu
Last update: 2022-06-20 17:52


RMO 7-2015 PENALTY COMPUTATIONS

Subject: The Revised Consolidated Schedule of Compromise Penalties for Violations of the National Internal Revenue Code

Author: Mary Nicole Quirabu
Last update: 2022-06-20 18:22


HR Policies

Time Records, Official Work Schedules & Related Concerns (Dec 1,2014)

TIME RECORDS, OFFICIAL WORK SCHEDULES & RELATED CONCERNS (DEC 1,2014)

TO/ FOR : ALL EMPLOYEES
FROM : The Management
SUBJECT : Time Records, Official Work Schedules & Related Concerns
DATE : 01 December 2014

It is the company’s objective to standardize and ensure that the time records of all employees are accurate at all times. More than a legal requirement, keeping of said records is necessary in the computation of hours and the equitable compensations due to every person employed with the company.

Not to mention the facts that our Benefits on VL/ SL With Pay, Offsetting, Overtime and Employee Recognition Program as well as Policy on Official Business/ Errand are already in place.

Accordingly, it is expected that all employees have to be prompt, present and working at the start of the respective official work schedule as follows and designated work area to ascertain smooth flow of work at all times:

Flexi[ble] time
(Must complete eight [8] hours of work excluding the one [1] hour meal break.)
Managers
Developers
Others on a case to case basis with due approval
9:00 a.m. to 6:00 p.m. Other employees/ personnel

Henceforth, all employees are required to do/ accomplish the following as agreed during the Department Head’s meetings and per latest directive of the management, effective immediately:

  1. Time IN and/ or OUT accordingly upon every entry to and/ or departure from the company premises when reporting at the Office.
    No time IN and/ or OUT as well as without filed OB/ Errand and/ or Request for Leave Forms shall/ may mean Absence Without Official Leave (AWOL)/ Abandonment of Work and will not be paid accordingly.
  2. Observe proper break times i.e. morning snacks: 10:00 a.m. to 10:15 a.m./ lunch break: 12:00 nn. to 1:00 p.m./ afternoon snacks: 3:00 p.m. to 3:15 p.m.
    Exemptions shall be granted to personnel on flexible time, on shifting lunch break and those attending to urgent customer’s needs.
  3. File for Official Business/ Errand Form during transaction/ activities outside the office. Related plans only shall not be honored.
  4. Comply with our Leave of Absence Policy whether with pay or without pay.
  5. Refrain from loitering during company time inside and outside of the office.
  6. An addendum is to wear the official Nelsoft Tech./ Easy Shop/ Alphalogic Polo Shirts.
    Black Easy Shop shirt is not allowed. Instead, employees who do not have yet the official polo shirts may wear semi-formal attire on Tuesdays.

Let it be reiterated that change of work schedule is aimed at meeting work requirements than personal conveniences. Request for change of work schedule must be put into writing and shall be dealt on a case to case basis. Personnel hence with work schedules outside the above based on personal conveniences and/ or preferences have to submit their written appeal and justifications to HR Department on/ or before 11 December 2014 addressed to the Office of the President, for review and approval of the management. Otherwise, they shall be automatically revoked.

All Section/ Department Heads shall be responsible to help enforce and maintain discipline as well as enjoined to be good mentors and/ or role-models among subordinates.

These supersede any existing guidelines, practices and/ or policies inconsistent thereto. Violators shall be subjected to disciplinary actions ranging from written warning to suspensions/ termination whichever is applicable.

Author: erika
Last update: 2023-06-08 06:21


Policy on Absences & Leave Availment (Sept 22, 2014)

POLICY ON ABSENCES & LEAVE AVAILMENT (SEPT 22, 2014)

To : ALL CONCERNED
FROM : HR Department
SUBJECT: Policy on Absences and Leave Availment
DATE : 22 September 2014

1. Every regular employee who has been hired on or before 01 October 2013 shall be entitled to Leave of Absence in a year as follows:

 

Regular employees however hired after 01 October 2013 shall be entitled to the above Leave of Absence with pay in a year but on a pro-rated basis as follows:

 

 

2. Further, a regular employee may only earn and accrue a maximum of .83 VL and .83 SL in a month as follows which he/ she may only avail/ apply accordingly:

3. Absence is the status of being physically away from working places/ station and/ or company premises whether whole-day, half-day (4 hours) or undertime (starting 2 hours before off-duty).

Unnecessary and unauthorized absences must be avoided. If deemed necessary, employees must comply “ON TIME” with our existing guidelines on leave of absences whether with pay or without pay.

4. Any unexcused/ unauthorized absences shall be considered as absence without official leave (AWOL). They will not be allowed to be charged against leave credits with pay and subject to salary deductions on the immediate pay/ payroll period.

It will be considered as an abandonment of work if the absences without official leave (AWOL) are continuous for at least five (5) working days.

5. In addition to loss of pay for the duration of such absence, the erring personnel shall be meted with disciplinary/ corrective actions below:

5.1. Anticipated Absences
Prior approval of the Superior concerned must be secured in advance on a duly accomplished leave of absence form.
Filing of leave notification/ availment to HR Department should be according to the schedule below irrespective of the circumstances:
1 to 2 days : 2 working days in advance
3 days & above : 5 working days in advance

5.2. Emergency Absences (Those caused by serious illness, death of a family member, calamities directly affecting the personnel and compelling reasons subject to the Immediate Superior’s approval)
The Human Resource & Administration Office together with the Immediate Superior must be informed either through the telephone, telegram or intermediary not later than two (2) hours before the start of the personnel’s work schedule on the day of his/ her absence.
Upon return to work or first working day, the leave of absence form must be completely accomplished, signed by the Immediate Superior and received by the HR Department for the absence to be considered approved and filed.

Absences due to illness for two (2) days or more shall be subject to house visits and shall require submission of medical certificate.

5.3. Extensions (Absences beyond the day/s approved or reported to be emergency but incurred due to compelling reasons.)
The Human Resource & Administration Office together with the Immediate Superior must similarly be informed either through the telephone, telegram or intermediary not later than two (2) hours before the start of the personnel’s work schedule on the day of his/ her extended absence.
The leave of absence form more so must be completely accomplished, signed by the aforementioned authorities for the absence to be considered approved and filed, upon return to work.

6. This policy and the use of the attached revised Leave Form shall take effect on 01 October 2014.

Author: erika
Last update: 2023-06-08 07:18


Company Dress Code Policy (Sept 8, 2014)

COMPANY DRESS CODE POLICY (SEPT 8, 2014)

TO/FOR : ALL EMPLOYEES
FROM : HR Department
DATE : 08 September 2014

I. OBJECTIVE

It is the policy of the company to require its personnel to follow/ wear the dress code it prescribes to ensure that all are in proper and clean uniform while on duty as well as project a positive company image and identity.

II. COVERAGE

It is applicable to all personnel irrespective of tenure of office and employment status.

III. IMPLEMENTING GUIDELINES

A. COMPANY DRESS CODE

1. The prescribed uniform/ dress code shall be according to the guidelines as follows, effective 18 September 2014, Thursday:

Personnel on official business (OB) and/ or special events outside the company premises inclusive of Sales Executives may wear at least a semi-formal or formal attire whichever is appropriate.

Whereas other personnel on field works (Technical Team, Driver, Custodian among others) must wear the company’s official polo shirt.

While female personnel must be modest in their choice of clothes. They should not wear dresses which are considered loud, revealing and/ or inappropriate.

Further, at least a semi-formal attire must be worn during intermittent bad weather conditions which fall on Thursdays.

2. Prescribed uniform/ dress code should be worn at all times while on duty.

3. Every personnel is expected to maintain a neat and well pressed company polo shirt uniform and wear them with pride at all times.

B. IDENTIFICATION CARDS (ID’s)

1. ID’s are standard parts of the company prescribed dress code. Hence, all personnel with issued ID’s must also wear them conspicuously while on duty.


2. The amount of One Hundred Fifty Pesos (Php150.00) shall be charged for each replacement of lost or damaged ID’s duly substantiated by notarized affidavit of loss or damage.


3. ID’s have to be returned to HR Department upon separation from the company as one of the prerequisites for the issuance of clearance.

Non-wearing of prescribed dress code inclusive of company ID’s during working hours shall constitute irregularity and will have corresponding disciplinary actions from verbal/ written warning to suspension.

All immediate superiors are enjoined to help ensure that the foregoing are consistently and impartially implemented among their respective subordinates.

The management may amend or revise the above policy and guidelines or any part thereof at any time it may deem necessary.

Author: erika
Last update: 2023-06-08 07:53


Employee Recognition Program (Sept 9, 2014)

EMPLOYEE RECOGNITION PROGRAM (SEPT 9, 2014)

FOR : PRESIDENT
FROM : HR Department
DATE : 09 September 2014

I. OBJECTIVE

It is the policy of the company to recognize its personnel in their exemplary performance and deportment on the job. Apart from recognition per se, it is aimed at morale boosting, increased rapport among personnel, promote goodwill as well as bring about peace and order in a constructive/ positive approach.

II. COVERAGE

The program is applicable to all qualified personnel who are employed with the company.

III. IMPLEMENTING GUIDELINES

A. EARLY BIRD: Effective 26 September 2014

 

B. PANTAC (Perfect Attendance, No Tardiness & Administrative Case) INCENTIVE PROGRAM: 26 September 2014

The company requires its personnel to be prompt, present, working at the start of their work schedule and designated work area as well as disciplined at all times. It is to ascertain smooth flow of work, commitment, excellence, professionalism and discipline among its ranks.

C. BEST EMPLOYEE OF THE QUARTER (To be chosen from each and every unit/ section/ department): Effective September 2014

 D. MODEL EMPLOYEE OF THE YEAR (To be chosen from all the recipients of Best Employee per unit/ section/ department during the): Effective November 2014 to November 2015

E. HEROIC ACT COMMENDATION: Effective immediately

F. BIRTHDAY CELEBRATORS OF THE MONTH: October 2014

G. UPGRADING PROGRAM: Effective Immediately

H. RECREATIONAL ACTIVITIES: Effective October 2014

The management reserves the right to amend or revise any part thereof at anytime it may deem necessary to adjust to the ever changing circumstances and needs of the company.

Author: erika
Last update: 2023-06-08 09:00


Policy/ Guidelines on Force Majeure & Other Contingencies (Oct 18, 2014)

POLICY/ GUIDELINES ON FORCE MAJEURE & OTHER CONTINGENCIES (OCT 18, 2014)

TO / FOR : ALL CONCERNED
FROM : HR Department
SUBJECT : POLICY/ GUIDELINES ON FORCE MAJEURE & OTHER CONTINGENCIES
DATE : 18 October 2014

 It is the company’s standing practice to take prompt and necessary action to ensure that practical and reasonable work arrangements are in place whenever force majeure or contingencies especially weather disturbances occur.

Force majeure means “a cause, event and/ or circumstance that is NOT reasonably foreseeable/ caused by/ under the control of neither the company nor its employees thereby the effects thereof and/ or personnel’s failure to perform his/ her obligations cannot be attributed to any of the party”.

Below are examples of force majeure among others:

In assertion however of our goal which ensures that all our personnel will be safe from hazards, the following policy and guidelines shall take effect immediately once there is no declaration from the government:

The declaration of the President/ CEO and/ or Vice-President shall be cascaded to or verified by the Executive Secretary (and/ or HR Department) who shall relay the same to all Department Heads to in turn inform their respective subordinates.

Forced leave of absence shall be charged to unused leave credits (VL first then SL) for those who are entitled. More so, it must be filed whether with pay or without pay in order not to be considered AWOL during the day.

In the event wherein works are only performed less than eight (8) hours for whatever justifiable reasons, the special incentive shall be treated equitably or on a pro-rated basis.

Whereas tardiness shall be excused in terms of deductions and disciplining during the days with force majeure, overtime shall only be allowed and eligible for due compensation per standing policy and practice in cases where operational expediency requires and/ or with prior approval of the Department Head concerned.

Further, when there is a force majeure immediately preceding the holiday, it will have no bearing and qualified employees shall be entitled to holiday pay.

This policy shall take immediately and supersede practices inconsistent thereto.

Author: erika
Last update: 2023-06-08 11:25


Free Computerized Eye Examination (Dec 10, 2014)

FREE COMPUTERIZED EYE EXAMINATION (DEC 10, 2014)

TO/ FOR : ALL CONCERNED/ INTERESTED
FROM : HR Department
SUBJECT : FREE COMPUTERIZED EYE EXAMINATION
DATE : 10 December 2014

OPTIQUE CITY MANILA shall render optometric care and services on 12 December 2014, Friday at 10:00 a.m. – onwards within the premises of the company (Game Room and/ or Conference Room).

The approved optometric care and services include the following:
1. Free computerized and manual eye examination/ refraction/ consultation.
2. Free repair services on applicable optical frames and parts.
3. Optical items for reasonable prices.
4. Special promo of 20% to 30% discount for cash purchase.
5. Buy 1 take 1 on colored contact lenses.
6. Three (3) months warranty for authentic frames, lifetime warranty for adjustments and service warranty for nose pads and screws.
5. Purchase of eye glasses on installment basis payable in 2 to 6 consecutive equal installments by salary deductions.

 

The activity shall be done three (3) at a time only such that all objectives will be realized without disruptions of the respective individual/ departmental deadlines and/ or operations.

Please make yourself available and come on time should you wish to avail of said privileges.

Author: erika
Last update: 2023-06-09 04:04


Revised Policy on Overtime (Mar 15, 2014)

REVISED POLICY ON OVERTIME (MAR 15, 2014)

TO : ALL CONCERNED
FROM : HR Department
DATE : 15 March 2014

Overtime work refers to the works actually done in excess of performed normal working hours i.e. eight (8) hours a day for which additional compensation is paid.

All rank & file and supervisory employees shall be eligible to overtime pay for approved work done at least one (1) hour beyond the eight hours a day of services rendered provided that he/ she completed the regular work hours of 48 hours a week, effective 26 September 2014.

Employees hence who committed at least an hour of tardiness during the day and/ or failed to render 48 hours of work during the applicable week shall not be allowed to avail of overtime pay. It shall be treated as an extension which shall be paid with a regular rate only.

When extremely necessary to render overtime work, approval of the Section/ Department Head concerned must be secured on a duly accomplished Overtime Form at least one (1) day in advance or the next working day if emergency.

Employees without exception may be obliged to render overtime during emergency situations and other factors such as:
a. Lack of manpower
b. Increased work loads
c. Need to render work which cannot be performed during normal working hours
d. Other circumstances analogous to the above

While employees with prior agreement to render overtime shall be subject to disciplinary action if they fail/ refuse to do so without valid reason, those who shall falsify or tamper the Overtime Form shall be subject to disciplinary actions.

Attached is the revised Overtime Form.

Author: erika
Last update: 2023-06-09 04:07


Health Care Benefit Coverage Survey (Nov 10 2014)

HEALTH CARE BENEFIT COVERAGE SURVEY (NOV 10 2014)

TO : DEPARTMENT HEADS & ALL REGULAR EMPLOYEES
FROM : HR Department
Subject : Health Care Benefit Coverage Survey
DATE : 10 November 2014

Our contract with our Health Care Benefit provider, MEDICard Philippines, Inc. is supposed to commence on 15 November 2014, Saturday. Its representatives will conduct a thorough orientation in two (2) batches on 20 November 2014, Thursday at 10:00 a.m. to 11:45 a.m. (1st batch) and 1:30 p.m. to 3:30 p.m. (2nd batch).

The company’s health care benefit shall be an OPTION ll (without AHMC, MMC, SLMC-QC & Global, TMC & CSMC), SEMI-PRIVATE PROGRAM for all its principal members irrespective of rank or position/ designation as follows:

Further, principal members may enroll their dependents under the company account (as an added benefit) but have to pay the corresponding premium by way of salary deductions. The company will facilitate the application for membership of employees’ dependents and will initially shoulder the full payment to MEDICard with related details hereunder:

However, principal members may avail of OPTION ll’s higher plans and/ or OPTION l’s various Rooms & Boards but have to pay the difference with details below:

OPTION ll: Without AHMC, MMC, SLMC-QC & Global, TMC & CSMC

OPTION l: With MMC, SLMC-QC, TMC, CSMC but without SLMC-Global

Mindful of these, your assistance is hereby solicited in determining among you and your subordinates who shall enroll with MEDICard to avail of its benefits by filling up the spaces provided for. Likewise, to attend any of the above schedules of orientation. Membership eligibility must follow a hierarchy:

With one’s conformity and considerations of the greater majority on account of possible premium (and other features) adjustment due to change/ decrease in number of members, it will be considered irrevocable and all concerned shall be thereby officially included in the coverage.

Make the survey complete and return the accomplished forms on or before 12 November 2014, Wednesday, 3:00 p.m.

Whereas you may refer to HR Department for the other details of our Health Care Benefit Program, attached is the Survey Form for your utilization.

Author: erika
Last update: 2023-06-09 04:30


Employee Code Of Discipline

EMPLOYEE CODE OF DISCIPLINE

l.      DESCRIPTION

The disciplinary actions provided in this manual are merely frame of reference. Although they are not absolute rules to be applied, they are not to be imposed arbitrarily.

The HRAd, Hearing Panel and the management must exercise their judgment with prudence in imposing said disciplinary actions. It shall likewise be their duty to counsel the erring employee to help bring about reformed performance and deportment on the job.

In cases however of grave offenses, the erring employee may be given a last chance or be discharged upon observance of due process and fair play. Further, the company may institute the necessary and appropriate civil and/ or criminal case(s) against the erring employee provided warranted by the circumstances.

ll.      COVERAGE

This manual shall be applicable to all employees and personnel who take part and/ or have the authority to conduct employee discipline proceedings, decisions and/ or resolutions relative to each and every irregularity committed.

It shall be applied impartially to all employees of the company. All employees are expected to understand and abide its provisions to prevent commission of irregularities and achieve harmony, productivity and efficiency. Ignorance to the provisions of this manual shall not excuse any employee from non-compliance.

lll.      POLICY, GUDELINES & PROCEDURES

  1. The Immediate Superior concerned shall submit an Incident Report or Initiatory Memo to HRAd upon knowledge of the irregularity committed by his/ her respective subordinate. HRAd however shall directly act on irregularities which could be based already on its records.
  2. HRAd shall conduct an initial validation if said reported or being complained incident truly occurred.

    If positive, it shall reduce the received Incident Report or Initiatory Memo as well as its knowledge of the irregularity based on its record or complaint received into a NOTICE TO EXPLAIN/ REPLY.

    HRAD thru said notice shall notify the alleged erring employee to submit a written explanation within five (5) days from receipt thereof.

  3. The INVESTIGATION-EVALUATION COMMITTEE shall conduct investigation and/ or evaluation and submit its findings and recommendation to the HEARING PANEL based on the standing provisions per Company Manual/ Code of Discipline.

    Investigation shall be conducted within a timeframe to include investigative leads, gathered related data and established facts based on evidences such as photos, admissions, written testimony of witnesses, etc.

    The Investigation Committee shall be composed of the Immediate Superior of the erring employee, HRAd Officer/ Manager and at least two (2) chosen Department Heads/ employees depending on the nature of the irregularity.   For money matters for example, the Accounting Head and the VP for Customer Relations & QA shall be involved in the investigation.

  4. The HEARING PANEL shall conduct a proceeding wherein the alleged erring employee’s explanations/ defenses on the matter at issues shall be heard especially in cases of grave offenses, if necessary and/ or if no admission has been secured by the INVESTIGATION-EVALUATION COMMITTEE.

    Subsequently, the HEARING PANEL shall submit its decision to the Office of the President/ Vice-Presidents for conformity and/ or finality.

    To reiterate, all charges/ offenses for termination shall be heard by the Hearing Panel irrespective of the circumstances which shall be presided in close coordination with a lawyer.

    The HEARING PANEL shall consider the following in rendering its decision:

  • The provisions and/ or spirit of the Company Manual/ Code of Discipline and the Labor Code
  • Excusing, justifying, mitigating and/ or aggravating circumstance(s) if there is/ are any.

The Hearing Panel shall be composed of the Department Heads (except the Immediate Superior of the erring employee) which shall convene when a quorum is met.

5.  With clearance from the President or VP’s, HRAd shall serve the decision/ resolution, monitor its imposition and ascertain the following:

  • The notice of decision/ resolution has been served and signed by the subject employee.
  • All concerned have been copy furnished i.e. one (1) original copy to the offender and the other original copy to the subject’s 201 file.

6. An APPEAL in writing may be made by the offender submitted to HRAd to in turn forward to the Office of the President within five (5) working days from receipt of the Notice of Decision/ Resolution. The formal appeal must include the reasons and bases for disputing the evidences and the decisions. Otherwise, the decision shall be deemed final and executory.

lV.    IMPORTANT GUIDELINES

  1. Upon knowledge of an irregularity, an objective initial validation shall be conducted first by HRAd if the incident indeed occurred before issuing a Notice to Explain/ Reply.
  2. During the pendency of the administrative proceedings or while the decision/ resolution at issue remains under appeal and/ or until final decision/ resolution has been duly rendered, no personnel may be placed under floating status and/ or be subjected to disciplinary action.
  3. Preventive suspension may however be imposed if necessitated as provided by the Labor Code.
  4. In cases of a single incident but eliciting multiple charges/ offenses, the highest disciplinary action shall be the principal measure to be imposed to the erring employee.
  5. An employee who commits simultaneous, subsequent and/ or preponderant non-minor offenses may be dismissed from the company.
  6. Immediate Superior’s alleged omission, harboring of his subordinates irregularities and the like shall be reported by the Department Head concerned while that of the Department Head’s shall be directly treated by the management.
  7. The resolution of the case shall include pecuniary liability (restitution and indemnity to affected person/ entity/ NSI) in addition to the principal penalty/ sanction taking into account the provisions of the Labor Code and existing jurisprudence.
  8. Irregularities which are not explicit in the Code shall be treated per analogous charges/ offenses and/ or category they fall.

V.      DISCIPLINARY ACTIONS (PREVENTIVE/ CORRECTIVE SANCTION-PENALTY)

GRADATION OF OFFENSE DISCIPLINARY ACTION
1 Verbal warning & reprimand
2 Written warning & reprimand
3 Suspension for 1 – 2 days
4 Suspension for 3 – 4 days
5 Suspension for 5 – 6 days
6 Termination/ Dismissal

Vl.     CATEGORIES OF OFFENSES, GRADATION & APPLICABLE DISCIPLINARY ACTIONS

GRAVITY 1ST 2ND 3RD 4TH 5TH 6TH
NON GRAVE
Category A = Minor 1 2 3 4 5 6
Category B = Major 2 3 4 5 6 N/A
Category C = Serious 3 4 5 6 N/A N/A
GRAVE
GRAVE 5/6 6 N/A N/A N/A N/A

 

NON-GRAVE

A = MINOR 6 Strikes/ Measures (to be reset Annually)

GRADATION OF OFFENSE

DISCIPLINARY ACTION

1st

Verbal warning & reprimand

2nd

Written warning & reprimand

3rd

Suspension for 1 – 2 days

4th

Suspension for 3 – 4 days

5th

Suspension for 5 – 6 days

6th

Termination/ Dismissal

 

B = MAJOR: 5 Strikes/ Measures

GRADATION OF OFFENSE

DISCIPLINARY ACTION

1st

Written warning & reprimand

2nd

Suspension for 1 – 2 days

3rd

Suspension for 3 – 4 days

4th

Suspension for 5 – 6 days

5th

Termination/ Dismissal

 

C = SERIOUS: 4 Strikes/ Measures

GRADATION OF OFFENSE

DISCIPLINARY ACTION

1st

Suspension for 1 – 2 days

2nd

Suspension for 3 – 4 days

3rd

Suspension for 5 – 6 days

4th

Termination/ Dismissal

 

GRAVE: 1 or 2 Strikes/ Measures

GRADATION OF OFFENSE

DISCIPLINARY ACTION

1st

Suspension for 5 – 6 days/

Termination/ Dismissal

2nd

Termination/ Dismissal

Vll.   SPECIFIC IRREGULARITIES/ CHARGES/ OFFENSES

Non-grave irregularities are categorized into Category A for Minor, Category B for Major and Category C for Serious.

However, the category of the specific offenses may vary depending on the presence of mitigating or aggravating circumstance such that a minor irregularity may be treated as a major offense if an aggravating circumstance is found by the Investigation Committee and Hearing Panel. Likewise, a major irregularity may be construed as a minor offense if a mitigating circumstance is found in the process. The same principle shall apply to serious irregularities.

To stress, selected irregularities which are treated as a minor offense only may be reset annually per top management’s approval.

NON-GRAVE

CATEGORY A:

  1. Violations on attendance such as:
  2. Wrong filing of OT, OB, leave of absence and premium.
  3. Used of profanity, foul words, tone and gestures to address colleagues, co-employees and clients.
  4. Engaging in any activity that may conflict with their ability to perform their task like watching movies, TV shows, downloading of files not related to work, and the like.
  5. Refusal to take calls from the client or co-employees related to work.
  6. Not answering phone calls and/ or text messages which are work related for all On Call employees.
  7. Failure to reply to customers or clients.
  8. Lack of focus or attention to clients.
    • One (1) day AWOL in a fiscal month with or without notification.
    • 5-7 times/ days of tardiness in a fiscal month.
  9. Pretending to be busy.
  10. Unauthorized sharing of user accounts to others.
  11. Violation of common safety practices.
  12. Any forms of misuse of company phone, equipment and/ or facilities.
  13. Unauthorized use of company vehicles, machinery and other equipment.
  14. Tampering, removal, destruction and/ or misuse fire-fighting equipment.
  15. Use of company letterhead/ logo for unauthorized transactions.
  16. Unauthorized selling and/ or advertising in company premises and work hours.
  17. Delayed submission of reports.
  18. Smoking in prohibited areas.
  19. Refusal or evasion of security rules such as searches.
  20. Failure or refusal to report an accident or any property damage within a reasonable time.
  21. Ignorance to basic cleanliness such as:
      • Littering, throwing cigarette butts and ashes and other similar acts.
      • Stepping on the toilet bowl or leaving the toilet bowl dirty or unflushed.
      • Bringing wet and dripping dishes in the work place.
      • Leaving personal clean or dirty dishes on the sink.
      • Crowding the dish dryer by using it as a personal storage for dishes or utensils.
      • Leaving rotten food or storing food for long periods in the refrigerator.
      • Spitting on the floor.

     

  22. Failure to comply with the scheduled annual physical examination despite explicit instruction.
  23. Failure to follow the dress code/ attire of the company.
  24. Failure to comply with the I.D. policy while inside the company premise.
  25. Failure to liquidate cash requests on time.
  26. Late remittance of collection, receiving client’s payment without receipt, unable to remit collection on time.
  27. Failure to turn over lost and found item.

 

CATEGORY B:

  1. Violations on attendance such as:
    • 2-3 days of AWOL in a fiscal month with or without notification and consecutive or not.
    • 8-10 times/ days of tardiness in a fiscal month.
  2. All forms of dishonesty regarding time IN and/ or OUT.
  3. Any forms of abuse of break hours.
  4. Not reporting for work without notification to the Immediate Superior.
  5. Quitting/Leaving work before scheduled off-duty or during working hours without superior approval or failure to complete 8 hours of work less the snacks and lunch break only.
  6. Unprofessional approach to co-employee and/ or clients such as:
          • Inappropriate behavior on account of age, physical disability, marital status, race, religion or gender
          • Threatening a co-employee, client, visitor and/ or guest.
          • Providing incorrect information to colleagues irrespective of reasons that may result to disruption of work.
  7.    Not reporting issues or problems related to work to their Immediate Superior.
  8. False testimony against co-employee and superior.
  9. Using work hours and company’s property for personal use such as:
    1. Using company's tools and equipment for developing non-NSI related projects.
    2. Downloading things not related to work that can affect business operations.
    3. Doing a sideline job / other projects during office/working hours without the consent of the management.
    4. Sleeping while on duty.
  10. Making own itinerary / changing of work schedule without prior notice and/ or approval of the Immediate Superior.
  11. Playing games during working hours before 7:00pm and/ or outside the designated room only.
  12. Accept gifts and/ or money from clients to develop a feature or requests that are not in the client and company’s agreement.
  13. Giving inappropriate quotations for personal gain.
  14. Leaving the clients uninformed of the statuses of their issues/concerns, or implementing procedures without informing the client.
  15. Attempting to open, move, disconnect or tamper any IT equipment or hardware in the work areas.
  16. Causing destruction or damage to company property through gross negligence.
  17. Padding sales quotation and/ or actual sales with extra charges not covered by company's pricing policy.
  18. Vandalism and/ or destroying company property.
  19. Intentionally not giving accurate and/ or consistent answer to clients.
  20. Omission or neglect of duty such as:
    • Failure to provide quality and efficient customer service to client.
    • Inefficiency and/ or failure to meet minimum acceptable standards of the job after appropriate coaching by the Immediate Superior.
    • Failure to submit or non-submission of reports.
    • Failure to comply with the scheduled delivery time and/ or place.
    • Wrong delivery of items.
    • Failure to immediately admit mistakes/ errors.
    • Not following the documented processes and procedures.
    • Willfully refusing to render overtime despite a reasonable advance notice.
  21. Deviation from procedures for field personnel.
  22. Deliberate and/ or malicious disruption of departmental or company operations.
  23. Courting client’s personnel that can affect the work of both.
  24. Not surrendering the company receipt.
  25. Company drivers/collectors incurring driving/traffic violations due to own neglect.

 

CATEGORY C:

  1. Violations on attendance such as:
    • 4 days of AWOL in a fiscal month with or without notification and consecutive or not.
    • 5 days of AWOL in a fiscal month with or without notification but not consecutive.
    •    11-20 times/ days of tardiness in a fiscal month.
  2. Inappropriate/Indecent/Scandalous behavior in the workplace, including, but not limited to, horseplay, threatening, intimidating, coercing, bullying, any act of fighting, or interfering with fellow employees.
  3. Inflicting bodily harm or injury to a co-employee, client, visitor and/ or guest.
  4. Disrespect to the client in person or over the phone.
  5. Disrespect to employees with higher designation.
  6. Any forms of sabotage of work.
  7. Filing an overtime without rendering a job.
  8. Stealing money or any property from colleagues.
  9. Harboring of co-employees’ irregularities for whatever reason.
  10. Conducting the ff. vices at any time inside the premise:
    • Drinking of alcoholic beverages
    • Smoking
    • Gambling in any form
  11. Non-sales personnel selling of company’s software or software developed with same features without authorization or approval of the superior.
  12. Stealing of company’s client.
  13. Developing company system for the use of other company or team.
  14. Intentional damage or misuse of company property such as:
    • Hacking the server system.
    • Ruining the tools or project source codes that are used by the company.
    • Destroying company equipment, products and/or machineries.
  15. Unauthorized release of confidential information such as:
    • Disclosing the company’s software features, financial information, trade secrets to other people that are not part of the company.
    • Leaking of classified information/ tools used by the team.
    • Leaking or using client data to a 3rd party.
  16. Reporting to work under the influence of alcohol or prohibited drugs.
  17. Unauthorized possession of firearms, long knives, explosives and other deadly weapons within the company premises.
  18. Possession of Illegal drugs.
  19. Giving false statement or testimony during any investigation conducted by the company.
  20. Advancing one’s personal gain over the company’s where conflict of interest is involved like favoring certain suppliers in company purchases and the like.
  21. Taking, misappropriating or converting company funds or money for personal gain or benefit such as:
    • Unremitted collection.
    • Falsifying, altering and/ or tampering of company records.
    • Misdeclaration of petty cash entries or claims.
    • Overcharging of gasoline, communication, transportation expense and board and lodging.
    • Using the company allowance/ fund for personal use and/ or not connected to work.
    • Submission of fictitious, padded or tampered documents in support of claims for reimbursement or liquidation.
  22. Negligence in safekeeping his/ her pay slip and/ or divulging any information regarding compensation.
  23. Failure to repeatedly achieve sales quota indicated in the internal policy of the sales department.
  24. Amorous relationship with the client and/ or his/ her representative.
  25. Forging the signature of the superiors in any company forms and of clients in delivery receipts, service forms and the like.
  26. Other causes analogous to the above.

 

GRAVE

  1. Violations on attendance such as:
    • 5 days of AWOL in a month with or without notification and consecutive.
    • 6 days of AWOL and above in a month with or without notification and consecutive or not.
    • 21 days of consecutive tardiness and above in a fiscal month.
  2. Serious misconduct.
  3. Willful disobedience by the employee of the lawful orders of his/ her employer or representative.
  4. Gross or habitual neglect of duty.
  5. Fraud or willful breach by the employee of the trust reposed in him/ her by his/ her employer or duly authorized representative.
  6. Commission of a crime or offense by the employee against the person of his/ her employer or any immediate member of his/ her family or his/ her duly authorized representative.
  7. Conviction of a crime.
  8. Use of prohibited drug.
  9. Assault.
  10. Concubinage / adultery.
  11. Bribery.
  12. Sexual favor made as a condition in giving assistance to the employee in need.
  13. Unauthorized disclosure of confidential information to the detriment of the company.
  14. Unauthorized disclosure of salary rate.
  15. Concealment of contagious disease.
  16. Falsification of employment records, tampering of receipts, agreements, contracts, and alterations of any company documents.
  17. Misappropriation of fund.
  18. Espionage.
  19. Violation of Republic Act 7877 (Sexual Harassment).
  20. Other causes analogous to the above.

Author: erika
Last update: 2023-06-09 05:02


Sports and Recreational Policy

SPORTS AND RECREATIONAL POLICY

MEMORANDUM
Date : 20 February 20, 2018
To : All Employees
From : The Management
Re : Sports and Recreational Policy

 

I. PURPOSE
Physically active lifestyle is beneficial to both the organization and the employees and includes reduced incidence of disease, obesity and a variety of physiological and other benefits. It contributes to the well-being of the whole organization. Because of these, the organization is committed to the active and healthy lifestyle and gives greater importance to the health and well-being of its members.

II. SCOPE
This policy guides all organizational sports and recreational activities. It is aligned with the National goal of achieving healthy living. It provides a mechanism for engaging the sporting activity in the organizational level. It also sets out the roles and responsibilities of the organization and its members.

III. SPORTS AND RECREATION COMMITTEE
The organization shall appoint Sports and Recreational Committee as the representative of Nelsoft Systems, Inc., who shall conduct their operations within the guidelines set forth hereunder:

 The Sports and Recreation Committee shall be composed of five (5) members, two (2) of which are members of the Management and the remaining three (3) from the employees.
 Is responsible for ensuring that all sports and recreation activities are regulated by the same.
 Shall be responsible for the cleaning of sport facility or facilitating such cleaning.
 Shall provide or facilitate the provision of consumables such as drinking water, tools, balls, nets, rackets, and other tools to carry out the activity.
 Is required to make the facility accessible to the participants. The Sports and Recreation Committee shall coordinate the needs of the activities.
 Shall implement and popularize this policy.
 Shall list the priority sports and recreational activities based on the results of the needs assessment.
 To communicate sports and recreation issues to staff;
 To advise on issues of sport, recreation and this policy;
 To determine the practice sessions and games or competitions;
 To arrange and coordinate sports and recreation activities;
 Ensure safekeeping of sports kits, recreational uniforms and other related equipment;
 Ensure coordination and procure licenses with national government and local government units and other government departments and non- governmental organizations;
 Ensure that all sport and recreation activities are governed by the Code of Employee Discipline;
 Ensure the establishment of teams who represents employees across all the organization; and
 Deliver reports to the Management Team: Human Resources and other relevant departments before and after each sports or recreational event.
 The meetings of the Sports and Recreation Committee must meet only during free time and must never hamper the office jobs and performance in the office.
 The SRC shall meet quarterly and when there is a need.

IV. PARTNERSHIP
For the purpose of implementing this policy, the Sports and Recreation Committee, in consultation with the management committee, may enter into a partnership with a third-party organization who will facilitate certain aspects of sports and recreation activities. For this purpose, Tthe participation of the third-party organization is only limited to officiating activities during actual games and no other.
The members of any team may invite third-party players to be members of their own teams. However, this is subject to the confirmation of the Sports and Recreation Committee and as long as this would not destroy the essence of the activity.
For any issues that may arise in the holding of such events, the Sports and Recreation Committee’s decision is final and controlling. This partnership is only executed and treated valid as long as beneficial to the Nelsoft Systems, Inc.

 


V. HUMAN RESOURCES CONSIDERATIONS
The attendance of employees to sports and recreational activities shall not be permitted during working hours, except if the activity is expressly sanctioned by the organization.
In official events, where the participants need practice sessions in preparation for official competition, the committee should seek permission not later than 10 working days from the Human Resources and Management Team, who may grant permission for the participants to leave their place of work early.
The Managers/Section heads must however ensure that service delivery is not compromised as a result of the early release of staff. Work must be prioritized.
The Code of Employee Discipline shall apply before, during and after sports and recreational events.

VI. SPORTS AND RECREATION ACTIVITIES
1. SPORTS ALLOWED: Basketball, Volleyball, Badminton, Soccer, Tennis, Table Tennis, Chess, Darts, Bowling and other sports activities that may be allowed by the organization.
2. RECREATIONAL ACTIVITIES: Choral and Traditional music, yoga other activities that may be allowed by the organization.
3. All sports and recreation activities involving the employees which will directly identify, directly and indirectly, the organization must be expressly authorized by the Sports and Recreation Committee. This holds true whether the activity was done within or outside company premises.

VII. INJURIES AND DAMAGES
Although the organization supports sport and recreational activities, employees must remember that participation in these activities is purely voluntary, whether the activity is official or informally agreed by the parties. Games held by the employees expressly or impliedly sanctioned by the Sports and Recreation Committee are pure responsibilities of the employee and shall in no way be under the account of the organization.
Regarding injuries or other unwanted scenarios transpiring or sustained during participation in sports and recreational activities, the employees understand and concede that they discharge, release and waive to the organization and hold the same free from any liability or damage.
Any leave which has to be applied due to a sport injury shall be deemed to be sick leave and if no sick leave credit is available, it shall be charged to leave without pay.
The Organization will not be held liable for any damages linked to sports/recreation participation; this includes damages that may arise from travelling, accommodation and participation in the actual sporting or recreational activities.

VIII. MEMBERSHIP
Employees shall be allowed to participate in these sanctioned sporting / recreational activities.

X. ROLES AND RESPONSIBILITIES
The Responsibilities of the Employee
The professional image of the organization is portrayed and maintained through acceptable conduct of its members during sporting or recreational activities. Employees participating in the games are
expected to be champions of sportsmanship and team camaraderie. In this regard, the organization expects that these activities will promote unity among all members of the organization.
Employees are expected to prioritize their work based on their assigned workloads, which will be monitored by supervisors at all times.
Employees should request permission from their supervisors all the time before leaving their workstations for sports and recreational activities.
Employees should respect the decision of the supervisors, and always prioritize service delivery to sports and recreations.
The Role of a Manager/supervisor
The Managers/Section heads shall ensure that all employees comply with this policy. They are responsible for making employees aware of the contents of the policy. They are expected to manage the performance of their employees including employees who participate in sports.
Managers/Section heads shall be able to decide if the employee can go to sports or not basing his/her decision only on service delivery which is measurable and objective not on subjectivity.
Managers/Section heads shall monitor this policy through analysis of attendance and punctuality reports submitted by the Human Resources to them.
Managers/Section heads shall ensure that this policy is implemented equally with other policies.

 XI. CODE OF ETHICS
The Code of Employee Discipline shall apply to all extramural activities and events, and shall govern the conduct of players and spectators.
Participation in the activities shall be free of any form of discrimination.
All participants are to be treated with respect.
All outcomes and interpretations from sports officials should be treated as final.
No humiliating remarks shall be made at any time to opposing players, other employees or sporting officials.
Players and spectators shall not make harassing remarks from the sidelines.
No individuals and/or teams who arrive visibly intoxicated or suspected to be under the influence, or in possession of alcohol or any other illegal substance will be permitted to participate in the games. In such cases, disciplinary measures will apply and will be sent home immediately.
There will be no drinking of alcohol or exhibition of unacceptable behavior by participants or spectators during official games or events. Any player or spectator, who physically assaults, verbally/sexually harasses or engages in a physical fight with any employee or sports official will be subjected to the disciplinary procedure under the Code of Employee Discipline.

 XII. MONITORING AND EVALUATION
The Human Resources and the Sports and Recreation Committee unit shall frequently monitor and evaluate the implementation of the policy.

 

Author: erika
Last update: 2023-06-09 08:01


Alcohol Free Work Place Policy (Oct 10, 2019)

ALCOHOL FREE WORK PLACE POLICY (OCT 10, 2019)

TO : ALL CONCERNED
FROM : The Management
SUBJECT : Alcohol Free Workplace Policy
DATE : 10 October 2019

 The Nelsoft Systems Inc. adopts this alcohol-free workplace policy and program to ensure a safe and healthful workplace. In this regard, all employees shall abide by the terms and conditions of this policy.

I. ALCOHOL PROHIBITED
          The company explicitly prohibits the following:
    1. Use, possession, solicitation or sale of alcohol in the workplace; or
    2. Impairment or under the influence of alcohol which may cause/causing adverse effect on employee’s work performance, safety of co-employees or Company’s reputation.

II. DEFINITION OF TERMS
    1. Assessment Team- A group of persons composed of occupational safety and health personnel, human resource representative, employer’s representative and employees’ representative who are trained to address all aspects of prevention.
    2. Cause Testing- A form of alcohol-test assessment conducted by the Company when an employee is suspected to be under the influence of alcohol. The Company request its suspected employee to submit himself to alcohol test.
    3. “Involved in an on-the-job accident or injury “- An accident of any person within the workplace immediately or proximately caused by the employee under the influence of alcohol.
    4. Near Miss- An incident which could have led to any injury or fatality of employees and/or considerable damage to the employer had it not been curtailed.
    5. Post-Accident Testing- A form of alcohol-test assessment conducted by the Company to those employees involved in an on-the-job accident or injury.
    6. Random Testing- A form of alcohol test assessment conducted by the Company Employees may be selected at random for alcohol testing at any interval determined by
the company.
    7. Workplace – Any office or property owned, leased or operated by the Company or at any other place where an employee performs work for the Company.

III. PREVENTIVE MEASURES
          
The company shall post in conspicuous place and notify in writing all its employees of this
policy and shall establish an alcohol-free workplace policy awareness program. The contents of
such awareness program are as follows:
    1. Dangers involved in the use, possession, solicitation or sale of alcohol in the workplace;
    2. Policy of maintaining an alcohol-free workplace;
    3. Available employee assistance program; and
    4. Imposable penalties for employees found guilty for violation of alcohol-free workplace policy.

IV. TESTING PROCEDURE
    A. Cause-Test
          
1. If an employee’s demeanour caused the Company to suspect that he is using, possessing, soliciting or selling alcohol in the workplace, the latter will request the
former to submit himself to a cause-test. If the employee objects to subject himself to cause-test, he must state his objection and the reason thereof in writing. The Company shall immediately decide whether the ground for objection is valid or not. Should the Company found that the objection is not valid and the employee still
refused to submit himself to the cause-test, the refusal will be considered as a ground for disciplinary action; and

          2. If the cause-test showed a positive result, the employee will be referred to the assessment team for further examination. However, if the employee still disagrees with the result of the assessment team, he will be subjected to another alcohol testing at the nearest medical facility.

    B. Post-Accident-Test
          
1. If an accident or a near miss has been immediately or proximately caused by employees engaged in using possessing, soliciting or selling alcohol in the workplace,
all employees involved in the on-the-job accident shall be subjected to a postaccident-test. If the employee objects to subject himself to cause-test, he must state
his objection and the reason thereof in writing. The Company shall immediately decide whether the ground for objection is valid or not. Should the Company found that the objection is not valid and the employee still refused to submit himself to the cause-test,
the refusal will be considered as a ground for disciplinary action; and

          2. If the cause-test showed a positive result, the employee will be referred to the
assessment team for further examination. The findings of the assessment team shall
be considered final.

    C. Random Test
          
1. At any time during the working hours, the Company may conduct a random alcohol test with its employees. If the employee objects to subject himself to cause-test, he must state his objection and the reason thereof in writing. The Company shall immediately decide whether the ground for objection is valid or not. Should the Company found that the objection is not valid and the employee still refused to submit himself to the cause-test, the refusal will be considered as a ground for disciplinary action; and

          2. If the cause-test showed a positive result, the employee will be referred to the assessment team for further examination. However, if the employee still disagrees with the result of the assessment team, he will be subjected to another alcohol testing at the nearest medical facility.

V. CONFIDENTIALITY
          The company shall observe at all times confidentiality of the results relative to alcohol tests done to employees.

VI. TREATMENT, REHABILITATION AND REFERREAL
          
The Assessment Team shall determine whether or not an employee found addicted to alcohol would need referral for treatment and/or rehabilitation in a Department of Health-Accredited Center. This benefit is only given to employees who seek help from the assessment team.

VII. MONITORING AND EVALUATION
          
The implementation of the alcohol-free workplace policy and program shall be monitored and evaluated periodically by the Assessment Team to ensure that the goal of an alcohol-free workplace is met.

VIII. DISCIPLINARY ACTION
         
 1. Failure to submit to cause-test, post-accident-test, random-test, or alcohol test by a nearest medical facility shall be a ground for a disciplinary action with a penalty of one (1) month suspension without pay;
          2. If an employee found guilty for violation of any of the acts prohibited under paragraph I of this policy shall be subjected to a disciplinary action with a penalty of one (1) month suspension without pay; or
          3. If an employee found to have been guilty for violation of this policy, repeatedly violated the provisions thereof shall be subjected to a disciplinary action with a penalty of three (3) months suspension or dismissal from service.

IX. EFFECTIVITY
   
       This company policy is effective immediately to all employees.

Author: erika
Last update: 2023-06-09 08:38


Voluntary Assistance (Feb 19, 2019)

VOLUNTARY ASSISTANCE (FEB 19, 2019)

TO/ FOR : ALL CONCERNED
FROM : The Management
SUBJECT : Policy & Guidelines for Voluntary Assistance
DATE : 19 February 2019

Voluntary Assistance is solicited money given to bereaved employee with qualifying dependent only.

1. Eligible Dependents

2. While the personnel concerned shall provide the following information to the HR

3. The HRAD Department shall be responsible for the following

MISCELLANEOUS

• If the death of the relative on 2nd degree of kinship like Uncle, Auntie and Cousin may seek an approval from the management to be able to get an assistance. 
• If with the approval from management the bereaved employee may personally do the solicitation to the employees. The HR will not facilitate the process. 
• The management reserves the right to amend, add, revise and/ or delete these policy and guidelines or any part thereof at anytime it deem necessary to adopt to ever changing circumstances and related concerns. 
• The foregoing Policy and Guidelines shall take effect on 01 March 2019.

 

Author: erika
Last update: 2023-06-09 08:41


TB Workplace Policy (Oct 10, 2019)

TB WORKPLACE POLICY (OCT 10, 2019)

TO/ FOR : ALL CONCERNED
FROM : The Management
SUBJECT : TB Workplace Policy
DATE : 10 October 2019

WORKPLACE POLICY AND PROGRAM ON TUBERCULOSIS (TB) PREVENTION AND CONTROL

       The Nelsoft Systems Inc recognizes that while 80% of Tuberculosis (TB) cases belong to the economically productive individuals, it is also treatable and its spread can be curtailed if proper control measures will be implemented. As such, this TB Policy and Program is hereby issued for the information and guidance of the employees.

PURPOSE:

To address the stigma attached to TB and to ensure that the worker’s right against discrimination, brought by the disease, is protected.

To facilitate free access to anti-TB medicines of affected employees through referrals.

I. IMPLEMENTING STRUCTURE

        The Nelsoft Systems Inc TB Program shall be managed by its health and safety committee consists of representatives from the different divisions and departments.

II. COVERAGE

        This Program shall apply to all employees regardless of their employment status.

III. GUIDELINES

A. Preventive Strategies

1. Conduct of Tuberculosis (TB) Advocacy, Training and Education

a. TB education shall be conducted by the (name of company) Medical Clinic in close coordination with the health and safety committee, through distribution and posting of IEC materials and counselling and/ or lectures.
b. Engineering measures such as improvement of ventilation, provision for adequate sanitary facilities and observance of standard for space requirement (avoidance of overcrowding) shall be implemented.

2. Screening, Diagnosis, Treatment and Referral to Health Care Services

a. The company shall establish a referral system and provide access to diagnostic and treatment services for its employees. The company shall make arrangements with the nearest Direct Observed Treatment (DOT) facility.
b. The company’s adherence to the DOTS guidelines on the diagnosis and treatment is highly encouraged.

B. MEDICAL MANAGEMENT

1. The company shall adopt the DOTS strategy in the management of workers with tuberculosis. TB case finding, case holding and Reporting and Recording shall be in accordance with the Comprehensive Unified Policy (CUP) and the National Tuberculosis Control Program.

2. The company shall at the minimum refer employees and their family members with TB to private or public DOTS centers.

C. SOCIAL POLICY

1. Non-discriminatory Policy and Practices

a. There shall be no discrimination of any form against employees from pre to post employment, including hiring, promotion, or assignment, on account of their TB status. (ILO C111)
b. Workplace management of sick employees shall not differ from that of any other illness. Persons with TB related illnesses should be able to work for as long as medically fit.

2. Work-Accommodation and Arrangement

a. Agreements made between the company and employee’s representatives shall reflect measures that will support workers with TB through flexible leave arrangements, rescheduling of working time and arrangement for return to work.
b. The employee may be allowed to return to work with reasonable working arrangements as determined by the Company Health Care provider and/or the DOTS provider.

D. COMPENSATION

        The company shall provide access to Social Security System and Employees Compensation benefits under PD 626 to an employee who acquired TB infection in the performance of his/her duty.

V. ROLES AND RESPONSIBILITIES OF EMPLOYERS AND EMPLOYEES

A. Employer’s Responsibilities

1. The Employer, together with workers/ labor organizations, company focal personnel for human resources, safety and health personnel shall develop, implement, monitor and evaluate the workplace policy and program on TB.
2. Provide information, education and training on TB prevention for its workforce.
3. Ensure non-discriminatory practices in the workplace.
4. Ensure confidentiality of the health status of its employees and the access to medical records is limited to authorized personnel.
5. The Employer, through its Human Resources Department, shall see to it that their company policy and program is adequately funded and made known to all employees.
6. The Health and Safety Committee, together with employees/ labor organizations shall jointly review the policy and program and continue to improve these by networking with government and organizations promoting TB prevention.

B. Employees’ Responsibilities

1. The employee’s organization is required to undertake an active role in educating and training their members on TB prevention and control.
2. Employees shall practice non-discriminatory acts against co-workers.
3. Employees and their organization shall not have access to personnel data relating to a worker’s TB status.
4. Employees shall comply with universal precaution and the preventive measures.

V. IMPLEMENTATION AND MONITORING

The Safety and Health Committee or its counterpart shall periodically monitor and evaluate the implementation of this Policy and Program.

VI. EFFECTIVITY

This Policy shall take place effective immediately and shall be made known to every employee.

Author: erika
Last update: 2023-06-09 08:44


Sports and Recreation Policy (Feb 20, 2018)

SPORTS AND RECREATION POLICY (FEB 20, 2018)

TO/ FOR : ALL Employees
FROM : The Management
SUBJECT : Sports and Recreation Policy
DATE : 20 February 2018

I. PURPOSE

          Physically active lifestyle is beneficial to both the organization and the employees and includes reduced incidence of disease, obesity and a variety of physiological and other benefits. It contributes to the well-being of the whole organization. Because of these, the organization is committed to the active and healthy lifestyle and gives greater importance to the health and well-being of its members.

II. SCOPE

         This policy guides all organizational sports and recreational activities. It is aligned with the National goal of achieving healthy living. It provides a mechanism for engaging the sporting activity in the organizational level. It also sets out the roles and responsibilities of the organization and its members.

III. SPORTS AND RECREATION COMMITTEE

         The organization shall appoint Sports and Recreational Committee as the representative of Nelsoft Systems, Inc., who shall conduct their operations within the guidelines set forth hereunder:

• The Sports and Recreation Committee shall be composed of five (5) members, two (2) of which are members of the Management and the remaining three (3) from the employees. 
• Is responsible for ensuring that all sports and recreation activities are regulated by the same. 
• Shall be responsible for the cleaning of sport facility or facilitating such cleaning. 
• Shall provide or facilitate the provision of consumables such as drinking water, tools, balls, nets, rackets, and other tools to carry out the activity.
• Is required to make the facility accessible to the participants. The Sports and Recreation Committee shall coordinate the needs of the activities.
• Shall implement and popularize this policy. 
• Shall list the priority sports and recreational activities based on the results of the needs assessment. 
• To communicate sports and recreation issues to staff; 
• To advise on issues of sport, recreation and this policy; 
• To determine the practice sessions and games or competitions; 
• To arrange and coordinate sports and recreation activities; • Ensure safekeeping of sports kits, recreational uniforms and other related equipment; 
• Ensure coordination and procure licenses with national government and local government units and other government departments and non- governmental organizations;
• Ensure that all sport and recreation activities are governed by the Code of Employee Discipline; • Ensure the establishment of teams who represents employees across all the organization; and 
• Deliver reports to the Management Team: Human Resources and other relevant departments before and after each sports or recreational event. 
• The meetings of the Sports and Recreation Committee must meet only during free time and must never hamper the office jobs and performance in the office. 
• The SRC shall meet quarterly and when there is a need.

IV. PARTNERSHIP

      For the purpose of implementing this policy, the Sports and Recreation Committee, in consultation with the management committee, may enter into a partnership with a third-party organization who will facilitate certain aspects of sports and recreation activities. For this purpose, Tthe participation of the third-party organization is only limited to officiating activities during actual games and no other. The members of any team may invite third-party players to be members of their own teams. However, this is subject to the confirmation of the Sports and Recreation Committee and as long as this would not destroy the essence of the activity. For any issues that may arise in the holding of such events, the Sports and Recreation Committee’s decision is final and controlling. This partnership is only executed and treated valid as long as beneficial to the Nelsoft Systems, Inc.

V. HUMAN RESOURCES CONSIDERATIONS

       The attendance of employees to sports and recreational activities shall not be permitted during working hours, except if the activity is expressly sanctioned by the organization. In official events, where the participants need practice sessions in preparation for official competition, the committee should seek permission not later than 10 working days from the Human Resources and Management Team, who may grant permission for the participants to leave their place of work early. The Managers/Section heads must however ensure that service delivery is not compromised as a result of the early release of staff. Work must be prioritized. The Code of Employee Discipline shall apply before, during and after sports and recreational events.

VI. SPORTS AND RECREATION ACTIVITIES

1. SPORTS ALLOWED: Basketball, Volleyball, Badminton, Soccer, Tennis, Table Tennis, Chess, Darts, Bowling and other sports activities that may be allowed by the organization.
2. RECREATIONAL ACTIVITIES: Choral and Traditional music, yoga other activities that may be allowed by the organization.
3. All sports and recreation activities involving the employees which will directly identify, directly and indirectly, the organization must be expressly authorized by the Sports and Recreation Committee. This holds true whether the activity was done within or outside company premises.

VII. INJURIES AND DAMAGES

        Although the organization supports sport and recreational activities, employees must remember that participation in these activities is purely voluntary, whether the activity is official or informally agreed by the parties. Games held by the employees expressly or impliedly sanctioned by the Sports and Recreation Committee are pure responsibilities of the employee and shall in no way be under the account of the organization.

        Regarding injuries or other unwanted scenarios transpiring or sustained during participation in sports and recreational activities, the employees understand and concede that they discharge, release and waive to the organization and hold the same free from any liability or damage.

        Any leave which has to be applied due to a sport injury shall be deemed to be sick leave and if no sick leave credit is available, it shall be charged to leave without pay.

       The Organization will not be held liable for any damages linked to sports/recreation participation; this includes damages that may arise from travelling, accommodation and participation in the actual sporting or recreational activities.

VIII. MEMBERSHIP

          Employees shall be allowed to participate in these sanctioned sporting / recreational activities.

X. ROLES AND RESPONSIBILITIES

The Responsibilities of the Employee

          The professional image of the organization is portrayed and maintained through acceptable conduct of its members during sporting or recreational activities. Employees participating in the games are expected to be champions of sportsmanship and team camaraderie. In this regard, the organization expects that these activities will promote unity among all members of the organization.

          Employees are expected to prioritize their work based on their assigned workloads, which will be monitored by supervisors at all times. Employees should request permission from their supervisors all the time before leaving their workstations for sports and recreational activities.

          Employees should respect the decision of the supervisors, and always prioritize service delivery to sports and recreations.

          The Role of a Manager/supervisor

          The Managers/Section heads shall ensure that all employees comply with this policy. They are responsible for making employees aware of the contents of the policy. They are expected to manage the performance of their employees including employees who participate in sports.

          Managers/Section heads shall be able to decide if the employee can go to sports or not basing his/her decision only on service delivery which is measurable and objective not on subjectivity.

          Managers/Section heads shall monitor this policy through analysis of attendance and punctuality reports submitted by the Human Resources to them.

          Managers/Section heads shall ensure that this policy is implemented equally with other policies.

XI. CODE OF ETHICS

          The Code of Employee Discipline shall apply to all extramural activities and events, and shall govern the conduct of players and spectators.

          Participation in the activities shall be free of any form of discrimination.

          All participants are to be treated with respect.

          All outcomes and interpretations from sports officials should be treated as final.

          No humiliating remarks shall be made at any time to opposing players, other employees or sporting officials.

          Players and spectators shall not make harassing remarks from the sidelines.

          No individuals and/or teams who arrive visibly intoxicated or suspected to be under the influence, or in possession of alcohol or any other illegal substance will be permitted to participate in the games. In such cases, disciplinary measures will apply and will be sent home immediately.

          There will be no drinking of alcohol or exhibition of unacceptable behavior by participants or spectators during official games or events. Any player or spectator, who physically assaults, verbally/sexually harasses or engages in a physical fight with any employee or sports official will be subjected to the disciplinary procedure under the Code of Employee Discipline.

XII. MONITORING AND EVALUATION

         The Human Resources and the Sports and Recreation Committee unit shall frequently monitor and evaluate the implementation of the policy.

Author: erika
Last update: 2023-06-09 08:47


Smoke Free Workplace Policy (Oct 2, 2019)

SMOKE FREE WORKPLACE POLICY (OCT 2, 2019)

TO/ FOR : ALL CONCERNED
FROM : The Management
SUBJECT : Smoke Free Workplace Policy
DATE : 02 October 2019

SMOKE-FREE WORKPLACE POLICY AND PROGRAM

         Pursuant to Section 6 of Republic Act No. 9211 which specifically prohibits indoor smoking and protects people against second hand smoke, this company policy is hereby issued to protect its employees and clients against the hazard brought about by smoking.

         Smoke-free workplaces protect non-smokers from the dangers of secondhand smoke and also encourage staff to either quit smoking or reduce their cigarette consumption. Successful implementation of this policy will depend on both the management and employee’s support.

I. PREVENTIVE STRATEGIES

         Nelsoft Systems Inc shall notify all employees of this policy and shall establish a smokefree workplace policy awareness program. This will also be a part of orientation for newly-hired employees. A “NO SMOKING SIGN” shall be conspicuously displayed at floor areas which were designated as a NO SMOKING AREA. The roof top and the parking area are the only areas in the office in which employees will be allowed to smoke.

         Capacity building for speakers’ bureau, counsellors and the general workers population will be part of staff development program of the company.

         The ill-effects of smoking will be discussed during the training/orientation of employees which will be spearheaded by the Health and Safety Committee.

II. IMPLEMENTATION

         Worksite smoking policies aim mainly to protect non-smokers from Environmental Tobacco Smoke, (ETS), while the objective of worksite cessation program is to help employees who do smoke to give up the habit. The use of support groups of former smokers, HRDS staff, and medical staff that may act as educators/counsellors and support for workers to enable them in their wish of quitting the habit. Programs should be coordinated with managed-care providers’ offerings of tobacco assessment and counselling. Internally, physical activity, nutrition, and stress management will assist smokers to quit and to stay abstinent.

         Networking with health professionals, experts and organizations with the same advocacy is also being encouraged to create a partnership of sort. This may lead to better program implementation as their best practices may be replicated.

         Strengthening workers participation may encourage ownership of the program. Team Leaders per Department maybe assigned, he/she may assign secret marshals who would monitor the no smoking policy in their workplaces. Team leaders would also monitor the smoker’s diary (mandatory to smokers enrolled in the program) and the progress of the implementation of the smoking program in their office.

         Employees who wish to quit smoking shall be referred by the committee to DOH accredited smoking cessation clinics.

III. MONITORING AND EVALUATION

         The implementation of the smoke-free workplace policies and programs shall be monitored and evaluated periodically by the employer to ensure that the goal of an alcohol-free workplace is met. The Health and Safety Committee or other similar Committee shall be tasked for this purpose.

IV. EFFECTIVITY

All concerned shall comply with all the provisions of this company policy effective immediately.

Author: erika
Last update: 2023-06-09 08:49


Sexual Harassment Workplace Policy (Oct 10, 2019)

SEXUAL HARASSMENT WORKPLACE POLICY (OCT 10, 2019)

TO/ FOR : ALL CONCERNED
FROM : The Management
SUBJECT : Sexual Harassment Workplace Policy
DATE : 10 October 2019

BWC GUIDELINES NO. 2, SERIES OF 2012

“SEXUAL HARRASMENT POLICIES AND PROCEDURES”

          Pursuant to the provisions of Section 4, Republic Act No. 7877, An Act Declaring Sexual Harassment Unlawful in the Employment, Education or Training Environment, and For Other Purposes, the following policies and procedure are hereby issued by NSI Company to prevent sexual harassment in its workplace and to provide the procedure for the resolution, settlement and/or disposition of sexual harassment cases.

I. COMPANY POLICY AGAINST SEXUAL HARASSMENT

Nelsoft Systems Inc Company believes that employees should be afforded the opportunity to work in an environment free of sexual harassment. Sexual harassment is a form of misconduct that undermines the employment relationship. No employee, either male or female, should be subjected verbally or physically to unsolicited and unwelcome sexual overtures or conduct.

Sexual harassment refers to behavior that is not welcome, that is personally offensive, debilitates morale and, therefore, interferes with work effectiveness. Such behavior may be in the form of unwanted physical, verbal or visual sexual advances, requests for sexual favors, and other sexually oriented conduct which is offensive or objectionable to the recipient, including, but not limited to: epithets, derogatory or suggestive comments, slurs or gestures and offensive posters, cartoons, pictures, or drawings.

Nelsoft Systems Inc Company will not tolerate any behavior that amounts to sexual harassment and any officer or employee found to have committed sexual harassment shall be subjected to disciplinary action, up to and including dismissal.

A. DEFINITION OF SEXUAL HARASSMENT

        Nelsoft Systems Inc Company has adopted, and its policy is based on, the definition of sexual harassment set forth in Section 3 of R.A. 7877. It provides that sexual harassment in workplace is committed by an employer, employee, manager, supervisor, agent of the employer, or any other person who, having authority, influence or moral ascendancy over another in a work environment, demands, requires or otherwise requires any sexual favor from the other, regardless of whether the demand, requests or requirement for submission is accepted by the object of said Act. In a work-related or employment environment, sexual harassment is committed when:

1. The sexual favor is made as a condition in the hiring or in the employment, reemployment, or continued employment of said individual, or in granting said individual favorable compensation, terms of conditions, promotions, or privileges; or the refusal to grant the sexual favor results in limiting, segregating or classifying the employee which in any way would discriminate, deprive or diminish employment opportunities or otherwise adversely affect said employee;
2. the above acts would impair the employees’ rights or privileges under existing labor laws; or
3. the above acts would result in an intimidating, hostile, or offensive environment for the employee.

B. WHERE SEXUAL HARASSMENT IS COMMITED

       Sexual harassment may be committed in any work or training environment. It may include, but are not limited to the following:

1. In or outside the office building or training site;
2. at office or training-related social functions;
3. in the course of work assignments outside the office;
4. at work-related conferences, studies or training sessions; or
5. during work related travel.

C. FORMS OF SEXUAL HARASSMENT

Sexual harassment may be committed in any of the following forms:

1. Overt sexual advances;
2. Unwelcome or improper gestures of affection;
3. Request or demand for sexual favors including but not limited to going out on dates, outings, or the like for the same purpose;
4. Any other act or conduct of a sexual nature or for purposes of sexual gratification which is generally annoying, disgusting or offensive to the victim.

D. WHAT IS NOT SEXUAL HARASSMENT

       Sexual harassment does not refer to occasional compliments of a socially acceptable nature. It refers to behavior that is not welcome, that is personally offensive, that debilitates morale, and that, therefore, interferes with work effectiveness.

E. EMPLOYER’S RESPONSIBILITY

        Nelsoft Systems Inc Company undertakes to provide its officers and employees a work environment free of sexual harassment by management personnel, by co-workers and by others with whom officers and employees must interact in the course of their employment in NSI Company. Sexual harassment is specifically prohibited as unlawful and as a violation of NSI's policy. NSI Company is responsible for preventing sexual harassment in the workplace, for taking immediate corrective action to stop sexual harassment in the workplace and for promptly investigating any allegation of work-related sexual harassment.

II. PROCEDURES ON SEXUAL HARASSMENT CASES

A. COMPLAINT PROCEDURE

         Any officer or employee, who experiences or witnesses any act of sexual harassment in the workplace, shall report the same immediately to the Committee on Decorum and Investigation. They may also report acts of sexual harassment to any other member of NSI's management or ownership. All allegations of sexual harassment will be quickly investigated. To the extent possible, the identity of the officer or employee shall remain confidential and that of any witnesses and the alleged harasser will be protected against unnecessary disclosure. When the investigation is completed, all parties will be informed of the outcome of the investigation.

         A Committee on Decorum and Investigation shall be constituted and shall be composed of the management and the employees’ representative to receive complaints, investigate and hear sexual harassment cases. The Committee shall develop its own rules in the settlement and disposition of sexual harassment cases. The Committee shall also develop and implement programs to increase understanding and awareness about sexual harassment.

B. RETALIATION

         NSI Company will permit no employment-based retaliation against anyone who brings a complaint of sexual harassment or who speaks as a witness in the investigation of a complaint of sexual harassment.

C. WRITTEN POLICY

         All officers and employees of NSI Company shall receive a copy of NSI's sexual harassment policy upon assumption of their respective offices. If at any time an officer of employee would like another copy of the policy, please contact the Office of the Committee on Decorum. If NSI Company should amend or modify its sexual harassment policy, all officers and employees will receive an individual copy of the amended or modified policy.

Author: erika
Last update: 2023-06-09 08:50


NSI DTR Treatments

NSI DTR TREATMENTS

DTR TREATMENTS

FLEXIBLE SCHEDULE

▪ Reported at 11:01 am to 11:15am= Must render additional 2 hrs. of work
▪ Reported at 11:16am=considered half day absent
▪ Reported after 11:00am and at the same time failed to complete the 8 hours of work= considered half-day absent
▪ Reported on/or before 11:00am but failed to complete the 8hours of work= Pro-rated deductions

EARLY SHIFT (HELP DESK)8:00-5:00 pm / 8:30am – 5:30pm
▪ With grace period of 15 mins.
▪ Reported at 8:16 AM / 8:46 AM = must render additional 2 hrs. of work
▪ Reported at 8:17 AM / 8:47 AM-onwards = considered half day absent
▪ Reported exactly 8:16 AM /8:46 AM and at the same time failed to complete the 8hrs. ( 2hrs extension) of work = considered half day absent

OTHERS

▪ 4 allowable late for Saturday duty > HELPDESK ▪ Anticipated OT’s, OB’s and/ or Leaves must be filed in advance
▪ Emergency OT’s OB’s and/ or Leaves must be filed on the next working day
▪ Late filing and outside the cut-off = declined

ADDITIONAL NOTES

▪ Since cases of 11:16 AM, 8:17 AM and 8:47 AM are already considered half day, should the employee wish to complete the 8 hrs. of work or not, they still have to file a 4hr. half-day leave with pay or no pay whichever the employee desires for payroll monitoring purposes.
▪ Additional 2 hrs. of work is not applicable for time-in of 11:16 AM, 8:17 AM and 8:47 AM since they are considered half-day absent already.
▪ Those who failed to complete 8hrs. ( 2hrs. of work) for cases of 8:16 AM, 8:46 AM, 11:01 and beyond shall file a 5hr. of half day leave regardless of their time out for payroll monitoring purposes.

SAMPLE HALF-DAY TIME TABLE FOR MORNING SCHED & 2 HR. WORK EXTENSION

Author: erika
Last update: 2023-06-09 08:53


Mobile Postpaid Plan Usage (Aug 25, 2020)

MOBILE POSTPAID PLAN USAGE (AUG 25, 2020)

TO/ FOR : To Helpdesk
FROM : The Management
SUBJECT : Mobile Postpaid Plan Usage
DATE : 25 August 2020

Nelsoft Systems Inc. mobile phone and postpaid sim are intended for the use of serving customers and in conducting the Company’s business.

Personal usage is prohibited.

New upgraded plan are as follows:

• Pack – my Biz Go SURF 599 (5GB) Unli calls to Globe/TM and Unli All Net Text with 200 All Net Minutes

Due to this upgrade, the company will no longer extend limit and will not be financially responsible for any features or usage charges above the plan.

Any excess will be shouldered by the employee thru salary deduction upon validation of the billing statement.

This will take effect immediately.

Author: erika
Last update: 2023-06-09 08:54


HIV/AIDS Workplace Policy (Oct 10, 2019)

HIV/AIDS WORKPLACE POLICY (OCT 10, 2019)

TO/ FOR : ALL CONCERNED/ INTERESTED
FROM : The Management
SUBJECT : HIV/AIDS Workplace Policy
DATE : 10 October 2019

HIV/AIDS WORKPLACE POLICY AND PROGRAM

In conformity with Republic Act No. 8504 otherwise known as the Philippine AIDS Prevention and Control Act of 1998 which recognizes workplace-based programs as a potent tool in addressing HIV/AIDS as an international pandemic problem, this company policy is hereby issued for the information and guidance of the employees in the diagnosis, treatment and prevention of HIV/AIDS in the workplace.

This policy is also aimed at addressing the stigma attached to HIV/AIDS and ensures that the workers’ right against discrimination and confidentiality is maintained.

I. IMPLEMENTING STRUCTURE

            The Nelsoft Systems Inc HIV/AIDS Program shall be managed by its health and safety committee consists of representatives from the different divisions and departments.

II. BASIC INFORMATION ON HIV/AIDS

What is HIV/AIDS?

            It is a disease caused by a virus called HIV (Human Immunodeficiency Virus). This virus slowly weakens a person’s ability to fight off other diseases by attaching itself to and destroying important cells that control and support the human immune system.

How HIV/AIDS is transmitted?

• Unprotected sex with an HIV infected person;
• From an infected mother to her child (during pregnancy, at birth through breast feeding);
• Intravenous drug use with contaminated needles;
• Transfusion with infected blood and blood products; and
• Unsafe, unprotected contact with infected blood and bleeding wounds of an infected person.

Is there a cure?

        No. However, there are antiretroviral drug combinations that are available when properly used, result in prolonged survival of people with HIV. Holistic care of people living with HIVAIDS and comprehensive treatment of opportunistic infections also dramatically improve quality of life.

III. COVERAGE

      This Program shall apply to all employees regardless of their employment status.

IV. GUIDELINES

A. Preventive Strategies

1. Conduct of HIV-AIDS Education. -

a. Who will conduct?
The Medical Clinic of in coordination with the Health and Safety Committee shall conduct HIV-AIDS education to all employees for free. This shall also form part of the orientation of newly hired employees. The standardized information package developed by the Department of Labor and Employment (DOLE) may be used for this purpose.

b. How will it be conducted?
The HIV-AIDS education will be conducted through distribution and posting of IEC materials, lectures, counselling and training and information on adherence to standard or universal precautions in the workplace

2. Screening, Diagnosis, Treatment and Referral to Health Care Services

a. Screening for HIV as a prerequisite to employment is not mandatory.
b. The company shall encourage positive health seeking behavior through Voluntary Counseling and Testing.
c. The company shall establish a referral system and provide access to diagnostic and treatment services for its workers. Referral to Social Hygiene Clinics of LGU for HIV screening shall be facilitated by the company’s medical clinic staff.
d. The company shall likewise facilitate access to livelihood assistance for the affected employee and his/her families, being offered by other government agencies.

B. SOCIAL POLICY

1. Non-discriminatory Policy and Practices

a. Discrimination in any form from pre-employment to post- employment, including hiring, promotion or assignment, termination of employment based on the actual, perceived or suspected HIV status of an individual is prohibited.
b. Workplace management of sick employees shall not differ from that of any other illness.
c. Discriminatory act done by an officer or an employee against their co-officer or co-employee shall likewise be penalized.

2. Confidentiality/Non-Disclosure Policy

a. Access to personal data relating to a worker’s HIV status shall be bound by the rules of confidentiality consistent with provisions of R.A. 8504 and the ILO Code of Practice.
b. Job applicants and workers shall not be compelled to disclose them HIV/AIDS status and other related medical information.
c. Co-employees shall not be obliged to reveal any personal information relating to the HIV/AIDS status of fellow workers.

3. Work-Accommodation and Arrangement

a. The company shall take measures to reasonably accommodate employees with AIDS related illnesses.
b. Agreements made between the company and employee’s representatives shall reflect measures that will support workers with HIV/AIDS through flexible leave arrangements, rescheduling of working time and arrangement for return to work.

V. ROLES AND RESPONSIBILITIES OF EMPLOYERS AND EMPLOYEES

A. Employer’s Responsibilities

1. The Company, together with employees/ labor organizations, company focal personnel for human resources, safety and health personnel shall develop, implement, monitor and evaluate the workplace policy and program on HIV/AIDS.
2. Provide information, education and training on HIV/AIDS for its workforce.
3. Ensure non-discriminatory practices in the workplace and that the policy and program adhere to existing legislations and guidelines.
4. Ensure confidentiality of the health status of its employees and the access to medical records is limited to authorized personnel.
5. The Company, through its Human Resources Department, shall see to it that their company policy and program is adequately funded and made known to all employees.
6. The Health and Safety Committee, together with employees/ labor organizations shall jointly review the policy and program and continue to improve these by networking with government and organizations promoting HIV prevention.

B. Employees’ Responsibilities

1. The employee’s organization shall undertake an active role in educating and training their members on HIV prevention and control. Promote and practice a healthy lifestyle with emphasis on avoiding high risk behavior and other risk factors that expose workers to increased risk of HIV infection.
2. Employees shall practice non-discriminatory acts against co-employees.
3. Employees and their organization shall not have access to personnel data relating to a worker’s HIV status.
4. Employees shall comply with universal precaution and preventive measures.

VI. IMPLEMENTATION AND MONITORING

The Safety and Health Committee or its counterpart shall periodically monitor and evaluate the implementation of this Policy and Program.

VII. EFFECTIVITY

This Policy shall take place effective immediately and shall be made known to every employee.

Author: erika
Last update: 2023-06-09 08:57


Hepatitis B Workplace Policy (Oct 10, 2019)

HEPATITIS B WORKPLACE POLICY (OCT 10, 2019)

TO/ FOR : ALL CONCERNED/ INTERESTED
FROM : The Management
SUBJECT : Hepatitis B Workplace Policy
DATE : 10 October 2019

WORKPLACE POLICY AND PROGRAM ON HEPATITIS B

Nelsoft Systems Inc is committed to conform to the established standards assurance of customer satisfaction, protection of our environment and health and safety in the workplaces.

The company promotes and ensures a healthy environment through its various health programs to safeguard its employees. And as part of the company’s compliance to DOLE Department Advisory No. 05, Series of 2010 (Guidelines for the Implementation of a Workplace Policy and Program on Hepatitis B), this Program has been developed. This program is aimed to address the stigma attached to hepatitis B and to ensure that the employees’ right against discrimination and confidentiality is maintained.

This guideline is formulated for everybody’s information and reference for the diagnosis, treatment, and prevention of Hepatitis B. This will inform the employees of their role as well as the company in dealing with Hepatitis B. A healthy environment encompasses a good working relationship and great output for continuous business growth.

 I. Implementing Structure

The Company’s Hepatitis B workplace policy and program shall be managed by its health and safety committee. Each division or department of the Company shall be duly represented.

II. Guidelines

A. Education

1. Coverage. All employees regardless of employment status may avail of hepatitis B education services for free;
2. Hepatitis B shall be conducted through distribution and posting of IEC materials and counselling and/ or lectures; and
3. Hepatitis B education shall be spearheaded by the company Medical Clinic in close coordination with the health and safety committee.

B. Preventive Strategies

1. All employees are encouraged to be immunized against Hepatitis B after securing clearance from their physician.
2. Workplace sanitation and proper waste management and disposal shall be monitored by the health and safety committee on a regular basis.
3. Personal protective equipment shall be made available at all times for all employees; and
4. Employees will be given training and information on adherence to standards or universal precautions in the workplace.

III. Social Policy

A. Nondiscriminatory Policy and Practices

1. There shall be no discrimination of any form against employees on the basis of their Hepatitis B status consistent with the international agreements on nondiscrimination ratified by the Philippines (ILO C111). Employees shall not be discriminated against, from pre to post employment, including hiring, promotion, or assignment because of their hepatitis B status.
2. Workplace management of sick employees shall not differ from that of any other illness. Persons with Hepatitis B related illnesses may work for as long as they are medically fit to work.

B. Confidentiality

            Job applicants and employees shall not be compelled to disclose their Hepatitis B status and other related medical information. Co-employees shall not be obliged to reveal any personal information about their fellow employees. Access to personal data relating to employee’s Hepatitis B status shall be bound by the rules on confidentiality and shall be strictly limited to medical personnel or if legally required.

C. Work-Accommodation and Arrangement

1. The company shall take measures to reasonably accommodate employees who are Hepatitis B positive or with Hepatitis B - related illnesses.
2. Through agreements made between management and employees’ representative, measures to support employees with Hepatitis B are encouraged to work through flexible leave arrangements, rescheduling of working time and arrangement for return to work.

D. Screening, Diagnosis, Treatment and Referral to Health Care Services

1. The company shall establish a referral system and provide access to diagnostic and treatment services for its employees for appropriate medical evaluation/ monitoring and management.
2. Adherence to the guidelines for healthcare providers on the evaluation of Hepatitis B positive employees is highly encouraged.
3. Screening for Hepatitis B as a prerequisite to employment shall not be mandatory.

E. Compensation

           The company shall provide access to Social Security System and Employees Compensation benefits under PD 626 to an employee contracted with Hepatitis B infection in the performance of his duty.

IV. Roles and Responsibilities of Employers and Employees

A. Employer’s Responsibilities

1. Management, together with employees’ organizations, company focal personnel for human resources, and safety and health personnel shall develop, implement, monitor and evaluate the workplace policy and program on Hepatitis B.
2. The Health and Safety Committee shall ensure that their company policy and program is adequately funded and made known to all employees.
3. The Human Resources Department shall ensure that their policy and program adhere to existing legislations and guidelines, including provisions on leaves, benefits and insurance.
4. Management shall provide information, education and training on Hepatitis B for its workforce consistent with the standardized basic information package developed by the Hepatitis B TWG; if not available within the establishment, then provide access to information.
5. The company shall ensure non-discriminatory practices in the workplace.
6. The management together with the company focal personnel for human resources and safety and health shall provide appropriate personal protective equipment to prevent Hepatitis B exposure, especially for employees exposed to potentially contaminated blood or body fluid.
7. The Health and Safety Committee, together with the employees’ organizations shall jointly review the policy and program for effectiveness and continue to improve these by networking with government and organizations promoting Hepatitis B prevention.
8. The company shall ensure confidentiality of the health status of its employees, including those with Hepatitis B.
9. The human resources shall ensure that access to medical records is limited to authorized personnel.

B. Employees Responsibilities

1. The employees’ organization is required to undertake an active role in educating and training their members on Hepatitis B prevention and control. The IEC program must also aim at promoting and practicing a healthy lifestyle with emphasis on avoiding high risk behavior and other risk factors that expose employees to increased risk of Hepatitis B infection, consistent with the standardized basic information package developed by the Hepatitis B TWG.
2. Employees shall practice non-discriminatory acts against co-employees on the ground of Hepatitis B status.
3. Employees and their organizations shall not have access to personnel data relating to an employee’s Hepatitis B status. The rules of confidentiality shall apply in carrying out union and organization functions.
4. Employees shall comply with the universal precaution and the preventive measures.
5. Employees with Hepatitis B may inform the health care provider or the company physician on their Hepatitis B status, that is, if their work activities may increase the risk of Hepatitis B infection and transmission or put the Hepatitis B positive at risk for aggravation.

V. IMPLEMENTATION AND MONITORING

       Within the establishment, the implementation of the policy and program shall be monitored and evaluated periodically. The safety and health committee or its counterpart shall be tasked for this purpose.

VI. EFFECTIVITY

This Policy shall take effect immediately and shall be made known to all employees.

Author: erika
Last update: 2023-06-13 04:36


Guidelines on Reimbursement / Liquidation of Expenses and Payment Cash Request (Nov 2, 2021)

GUIDELINES ON REIMBURSEMENT / LIQUIDATION OF EXPENSES AND PAYMENT CASH REQUEST (NOV 2, 2021)

TO/ FOR : ALL CONCERNED/ INTERESTED
FROM : The Management
SUBJECT : Guidelines on Reimbursement / Liquidation of Expenses and Payment Cash Request
DATE : 02 November 2021

Reimbursement will be valid only 1 week after the actual date of expenses

• Liquidation of previous request is required (For monthly request)
• Submit the approved request form and liquidation form together with required attachments a day before the fund needed.
• Receipts should be named to Nelsoft Systems Inc
• Date and Amount must be cleared on the receipts
• Alterations / Corrections on the receipts should be countersign by the issuer.
• For reimbursement charged to client, Transportation and Accommodation Charges are required to be signed by the client.
• Submission of Liquidation form and receipts should be arranged per request to avoid duplication of attachments. (Example: Liquidation form next page will be the required attachments)

 

The following list are the required attachments for every request:

For Food Allowance – no receipts (with max amount only)
For Representation - Sales Invoice / Official Receipts / Receiving copy with signature
For Repairs and Maintenance Services / Supplies – Service Invoice / Sales Invoice / Official Receipts (DR or Delivery Receipt is only allowed if the name and signature of supplier is indicated in the receipts)
For Gas/ Diesel allowance – clear copy of official receipts/ Sales Invoice from Gas station
For Transportation allowance – Will be based on PUV regular fare
        • Bus – Required bus ticket
        • LRT / MRT – Receipts
        • Jeep – No receipts needed (will be based on actual fare)
        • UV Express – No receipts needed (will be based on actual fare)
For parking allowance – Parking ticket

Author: erika
Last update: 2023-06-13 04:38


WAREHOUSE ROOM POLICY (Feb 17, 2022)

WAREHOUSE ROOM POLICY (FEB 17, 2022)

TO/FOR : ALL CONCERNED
FROM : The Management
SUBJECT: WAREHOUSE ROOM POLICY
DATE : 17 February 2022

A warehouse is “a planned space for the efficient storage and handling of goods and materials”.

Warehousing is the process of storing goods which are to be distributed later.

This policy is created for the purpose of ensuring that all the items or stocks are well and safely kept by the authorized personnel.

- Only authorized personnel may enter the room. Other personnel outside the department shall secure approval from the Head / Superior of the department
.- Proper segregation and identification of physical items according to its weight and qualification e.g. Class A, Class B and to other branches of inventory
- Ensure that all the items are safe and well-arranged / managed
- Follow the First In, First Out Policy
- All items / stocks shall place orderly and with label
- All the stocks / orders placed outside the warehouse must be identified as for delivery the next day morning with approval of the management.
- No stocks / items shall be left outside the warehouse room after office hours except those approved and for delivery the next day.
- Proper segregation of stocks inside the warehouse room must be followed.
- Movement of items shall be directly from vehicle to warehouse, and warehouse to vehicle only. If stopovers are inevitable (i.e., batch movement, shortage of pushcart or elevator waiting), supervision of at least one authorized personnel is required and logged accordingly.
- Ensure safety of items / stocks inside the warehouse room by securing all doors are locked at all times when no authorized personnel inside.

SANCTIONS / OFFENSES
..........- Any person involved or caught not following this policy shall be disciplined accordingly
......................- Losses / Missing items shall undergo investigation. Once proven for charge, payment terms shall be in salary deduction scheme with proper .........documentation and authorization to deduct from the employee.

SCHEDULE OF OFFENSES:
First Offense – Written Warning
2nd Offense – 3 days suspension
3rd Offense – 6 days suspension
4th Offense – Termination

Author: erika
Last update: 2023-06-13 04:38


Drug Free Workplace (Oct 10, 2019)

DRUG FREE WORKPLACE (OCT 10, 2019)

TO/ FOR : ALL CONCERNED
FROM : The Management
SUBJECT : Drug Free Workplace Policy
DATE : 10 October 2019

In compliance with Article V of Republic Act No. 9165, otherwise known as the Comprehensive Dangerous Drugs Act of 2002, and its Implementing Rules and Regulations and DOLE Department Order No. 53-03, series of 2003 (Guidelines for the Implementation of a DrugFree Workplace Policies and Programs for the Private Sector), Nelsoft Systems Inc Company hereby adopts the following policies and programs to achieve a drug-free workplace:

I. COMPANY POLICY ON DRUG-FREE WORKPLACE

Nelsoft Systems Inc Company explicitly prohibits:

• The use, possession, solicitation for, or sale of dangerous drugs on company premises or while performing an assignment.
• Being impaired or under the influence of dangerous drugs away from the company, if such impairment or influence adversely affects the employee's work performance, the safety of the employee or of others, or puts at risk the company's reputation.
• Possession, use, solicitation for, or sale of dangerous drugs away from the company premises, if such activity or involvement adversely affects the employee's work performance, the safety of the employee or of others, or puts at risk the company's reputation.
• The presence of any detectable number of dangerous drugs in the employee's system while at work, while on the premises of the company, or while on company business. "Dangerous Drugs" include those listed in the Schedules annexed to the 1961 Single Convention on Narcotic Drugs, as amended by the 1972 Protocol, and in the Schedules annexed to the 1971 Single Convention on Psychotropic Substances as enumerated in the attached annex of R.A. 9165.

II. COMPANY PROGRAM ON DRUG-FREE WORKPLACE

A. MANDATORY DRUG TEST

1. To ensure that only those qualified shall be screened and recruited to prevent the detrimental effects (e.g., lower productivity; poor decision making; increased accidents; more compensation claims; and reduced team effort) which drug use and abuse may cause in the workplace, the conduct of mandatory drug test shall be required for pre-employment.
2. Nelsoft Systems Inc designates an accredited company, a duly accredited drug testing center by the Department of Health (DOH), as its authorized drug testing laboratory.
3. Nelsoft Systems Inc may also conduct drug testing under any of the following circumstances:

i. RANDOM TESTING: Officer/employees may be selected at random for drug testing at any interval determined by the Company.
ii. FOR-CAUSE TESTING: The company may ask an officer/employee to submit to a drug test at any time it feels that the employee may be under the influence of drugs, including, but not limited to, the following circumstances: evidence of drugs on or about the employee's person or in the employee's vicinity, unusual conduct on the employee's part that suggests impairment or influence of drugs, negative performance patterns, or excessive and unexplained absenteeism or tardiness.
iii. POST-ACCIDENT TESTING: Any officer/employee involved in a “NearMiss” incident or “Work Accident” under circumstances that suggest possible use or influence of drugs may be asked to submit to a drug test. As defined herein, “Near-Miss” means an incident arising from or in the course of work which could have led to injuries or fatalities of the workers and/or considerable damage to the employer had it not been curtailed. “Work Accident” refers to unplanned or unexpected occurrence that may or may not result in personal injury, property damage, work stoppage or interference or any combination thereof of which arises out of and in the course of employment.

4. All drug tests shall employ, among others, two (2) testing methods, the screening test which will determine the positive result as well as the type of the drug used and the confirmatory test which will confirm a positive screening test. Where the confirmatory test turns positive, the company’s Assessment Team shall evaluate the results and determine the level of care and administrative interventions that can be extended to the concerned employee. .
5. Nelsoft Systems Inc Company shall inform the officer/employee who was subjected to a drug test of the test-results whether positive or negative.
6. All costs of drug testing shall be borne by Nelsoft Systems Inc Company.

B. TREATMENT, REHABILITATION, AND REFERRAL

1. An officer/employee who, for the first time, is found positive of drug use, shall be referred for treatment and/or rehabilitation in a DOH accredited center. For this purpose, company shall provide a list of at least three (3) accredited facilities which an employee who was tested positive for drugs may choose from.
2. Following rehabilitation, the company’s Assessment Team, in consultation with the head of the rehabilitation center, shall evaluate the status of the drug dependent employee and recommend to the employer the resumption of the employee’s job if he/she poses no serious danger to his/her co-employees and/or the workplace.
3. All costs for the treatment and rehabilitation of the drug dependent employee shall be charged to his account. The period during which the employee is under treatment or rehabilitation shall be considered as authorized leaves.
4. Repeated drug use even after ample opportunity for treatment and rehabilitation shall be dealt with the corresponding penalties under R.A. 9165 and is a ground for dismissal.

C. ADVOCACY, EDUCATION AND TRAINING

1. Nelsoft Systems Inc Company undertakes to increase the awareness and education of its officers and employees on the adverse effects of dangerous drugs through continuous advocacy, education and training programs/activities to all its officers and employees.
2. All officers and employees are required to undergo an orientation/education program before assumption of their respective duties. The program shall include the following topics:

i. Salient features of R.A. 9165;
ii. Adverse effects of abuse and/or misuse of dangerous drugs on the person, workplace, family and the community;
iii. Preventive measures against drug abuse; and
iv. Steps to take when intervention is needed, as well as available services for treatment and rehabilitation.

3. To encourage all officers and employees to lead a healthy lifestyle while at work and at home, the company undertakes to conduct the following activities as often as possible:

i. Lifestyle assessment programs on health nutrition, weight management, stress management, alcohol abuse, smoking cessation, and other indicators of risk diseases;
ii. Health wellness screenings (e.g., blood pressure and heart rate, cholesterol test, blood glucose, etc.);
iii. Sports, recreational and fun-game activities; and
iv. Other activities promoting health and wellness.

D. ROLES, RIGHTS AND RESPONSIBILITIES OF EMPLOYER AND EMPLOYEES

1. Nelsoft Systems Inc Company shall ensure that the workplace policies and programs on the prevention and control of dangerous drugs, including drug testing, shall be disseminated to all officers and employees. The employer shall obtain a written acknowledgement from the employees that the policy has been read and understood by them. .
2. Nelsoft Systems Inc Company shall maintain the confidentiality of all information relating to drug tests or to the identification of drug users in the workplace; exceptions may be made only where required by law, in case of overriding public health and safety concerns; or where such exceptions have been authorized in writing by the person concerned.
3. All officers and employees shall enjoy the right to due process, absence of which will render the referral procedure ineffective.

E. CONSEQUENCES OF POLICY VIOLATIONS

1. Any officer or employee who uses, possesses, distributes, sells or attempts to sell, tolerates, or transfers dangerous drugs or otherwise commits other unlawful acts as defined under Article II of RA 9165 and its Implementing Rules and Regulations shall be subject to the pertinent provisions of the said Act.
2. Any officer or employee found positive for use of dangerous drugs shall be dealt with administratively in accordance with the provisions of Article 282 of Book VI of the Labor Code and under RA 9165.

F. MONITORING AND EVALUATION

1. The implementation of these policies and programs shall be monitored and evaluated periodically by management to ensure a drug-free workplace. For this purpose, an Assessment Team shall be constituted in accordance with D.O. 53-03.

G. EFFECTIVITY

1. The provisions of these policies and programs shall be immediately effective after its ratification by the management and the employee’s representatives and its posting in the company’s bulletin board.

Author: erika
Last update: 2023-06-13 04:43


Breadfeeding Workplace Policy (Dec 10, 2019)

BREADFEEDING WORKPLACE POLICY (DEC 10, 2019)

TO/ FOR : ALL CONCERNED
FROM : The Management
SUBJECT : Breastfeeding Workplace Policy
DATE : 10 December 2019

Nelsoft Systems Inc recognizes the importance of breastfeeding for both mother and baby and hereby supports and promotes breastfeeding.

Nelsoft Systems Inc provides facilities and the support necessary to enable mothers in their employment to balance breastfeeding / breastmilk expression with their work.

Provision of facilities and support includes: Lactation breaks.

Lactation breaks are compensable breaks. Nelsoft Systems Inc will allow mothers to express breast milk in the designated company lactation station during breaks or as the need arises.

• Flexibility for breastmilk expression breaks. There is flexibility for mothers to take lactation breaks during their workday. These can be negotiated between the mother, employee representative and supervisor.
• Facilities include: clean, private area, with comfortable chair, hand washing facilities, storage area for coolers, a refrigerator
• Access to breastfeeding information. Staff and employees are made aware of this policy. All women who are going on maternity leave will be provided with information on how they can combine breastfeeding and work once they return to work.

Employees who are considering breastfeeding can make arrangements for use of the breastfeeding facilities and other supports before going on maternity leave. She has to notify the HR Department and the Clinic of her intent to use the breastfeeding and other arrangements by filing up the form applying for use of lactation facilities.

Author: erika
Last update: 2023-06-13 04:44


Audit Notification Report (Jan 19, 2022)

AUDIT NOTIFICATION REPORT (JAN 19, 2022)

TO/ FOR : ALL CONCERNED
FROM : The Management
SUBJECT : Audit Notification Report
DATE : 19 January 2022

FINANCIAL CONTROLS - Financial controls are the procedures, policies, and means by which an organization. monitors and controls the direction, allocation, and usage of its financial resources. Financial controls are at the very core of resource management and operational efficiency in any organization.

Audit Notification Report - The ANR or Audit Notification Report will be the documented warning for the employees that are not following / non-compliance to financial controls implemented by the Finance & Accounting Department. This document will be forwarded to respective Immediate Head for endorsement to VP of Support group and return to F&A for signature of employee. The Financial Controls that will be implemented as part of company policies are stated on the following pages.

 

Accounts Receivable Controls

1. Daily remittance of collections (No Cash shortage)
2. Only collectors are allowed to collect / remit the cash
3. Daily submission of deposit slip / proof of payment to GC
4. Monitoring of collections thru weekly submission of reports.
5. For weekly monitoring, for 3rd week of collections if still no update after follows up need to escalate to Salesman – documented.
6. For collectors who fail to remit the cash within the day, Cash should be surrender to Ms. Eloi / Jess.
7. Collectors who fail to surrender / deposit on the next day (Sunday not included) of actual collected date will be subject for ANR
8. For provincial collections, (special instructions) Tech may collect but need to remit/deposit the cash on the next day of duty to office or collector need to collect the cash from the Tech personnel.
9. For any noncompliance to policy will be subject to issuance of ANR

Accounts Payable Controls

1. Checking of documents (SI / OR / DR). Complete details, No alteration or correction on the amount.
2. SI/ DR/ OR should have stamp received with date and signature from Supply Chain, for advance payment, Liquidation should have stamp received also w/ date and signature.
3. Failure to liquidate the advances 1 week after the actual expenses will be subject for ANR
4. For Monthly request advances, 1 week after the end of the month the liquidation should be submitted to F&A.
5. Reimbursement beyond 1 week allowance policy will be subject to ANR and special approval.
6. Unliquidated advances should be remit / deposit (1 week after actual expenses w/ liquidation report) (for Tech 2 weeks to revolve the fund after 2 weeks no field duty need to deposit the unliquidated amount)
7. 2 weeks advance request are not allowed
8. For a month with no liquidation / deposit of unliquidated, advances will be deducted to salary (based on signed ANR)
9. Required docs/ attachments will be based on guidelines on reimbursement/liquidations.

Guidelines on Reimbursement / Liquidation of expenses and Payment Cash request

- Reimbursement will be valid only 1 week after the actual date of expenses
- Liquidation of previous request is required (For monthly request)
- Submit the approved request form and liquidation form together with required attachments a day before the fund needed.
- Receipts should be named to Nelsoft Systems Inc
Date and Amount must be cleared on the receipts
- Alterations / Corrections on the receipts should be countersign by the issuer.
- For reimbursement charged to client, Transportation and Accommodation Charges are required to be signed by the client.
- Submission of Liquidation form and receipts should be arranged per request to avoid duplication of attachments. (Example: Liquidation form next page will be the required attachments)
- The following list are the required attachments for every req
Guest:
For Food Allowance – no receipts (with max amount only)
For Representation - Sales Invoice / Official Receipts / Receiving copy with signature
For Repairs and Maintenance Services / Supplies – Service Invoice / Sales Invoice / Official Receipts (DR or Delivery Receipt is only allowed if the name and signature of supplier is indicated in the receipts)
For Gas/ Diesel allowance – clear copy of official receipts/ Sales Invoice from Gas station
For Transportation allowance – Will be based on PUV regular fare
Bus – Required bus ticket
LRT / MRT – Receipts
Jeep – No receipts needed (will be based on actual fare)
UV Express – No receipts needed (will be based on actual fare)

Inventory Audit

1. Monthly inventory Audit
2. Inventory variance without valid reason will subject for ANR
3. Failure to record inbound/outbound items for issuance of ANR
4. Discrepancy on amount in recording of inbound/outbound items for issuance of ANR

Other Internal Controls

1. Any fraudulent act (Intentional erasure to finance documents w/o countersign, Alteration of amount and etc) for issuance of ANR
2. Negligence result to loss/ breakage in the company’s asset will subject for ANR
3. Connivance of employees with Supplier/ Client and co – employee that result to loss/breakage in company will subject for ANR
4. Four (4) issued ANR within the month, Ten (10) ANR within the year will be subject to HR policy.
5. For non-compliance / disregarding ANR will be subject to HR policy.

DISCIPLINARY ACTIONS (PREVENTIVE/ CORRECTIVE SANCTION-PENALTY)

1. Four (4) issued ANR within the month

GRADATION OF OFFENSE       DISCIPLINARY ACTION
1st                                      Suspension for 5 – 6 days/
2nd                                     Termination/ Dismissal

2. Ten (10) ANR within the year

GRADATION OF OFFENSE       DISCIPLINARY ACTION
1st                                      Suspension for 5 – 6 days/
2nd                                     Termination/ Dismissal

Author: erika
Last update: 2023-06-13 04:51


Additional Policies (Undertime, Parking, Data Information, Office Security and Health Related Issues) (Feb 17, 2022)

ADDITIONAL POLICIES (UNDERTIME, PARKING, DATA INFORMATION, OFFICE SECURITY AND HEALTH RELATED ISSUES) (FEB 17, 2022)

TO/FOR : ALL CONCERNED
FROM : The Management
SUBJECT: Additional Policies (Undertime, Parking, Data Information, Office Security and Health Related Issues)
DATE : 17 February 2020

TIMEKEEPING

Accurately recording time worked is the responsibility of every employee.Time worked is the time actually spent on a job(s) performing assigned duties.

Upon the start of employment, an employee shall be enrolled in the biometrics system for timekeeping with the assistance of the Human Resources Associate.

There is no UNDERTIME allowed in the morning (nor use of VL/SL to cover the late / undertime). Undertime is allowed in the afternoon for a maximum of 3 hours to a minimum of 1 hour and must be filed thru our payroll system.

The time clock is a legal instrument. Altering, falsifying, tampering with time records, or recording time on another team member’s time record will result to disciplinary action including termination of employment.

PERSONNEL DATA CHANGES:

It is the responsibility of each employee to promptly notify their Supervisors AND Human Resources Department of any changes in personnel data such as:

• Mailing Address
• Contact Number
• Name and number of dependents
• Person to contact in case of emergency

COMPANY OFFICE SECURITY

• All employees who are issued keys to the office are responsible for their safekeeping. The last employee, or designated employee, who leaves the office at the end of the business day assumes the responsibility to ensure that all doors are securely locked and all appliances and lights are turned off.
• No unauthorized person (including former employees) are allowed to enter the company premises anytime. If needed, they must seek approval to the management.

PARKING

• Parking space is limited on the building premises. Employees bringing their personal cars / motorcycles must park on a first come, first served basis in areas indicated and provided by the Company. No employee should leave his/her vehicle in the building premises during non-office hours.

HEALTH RELATED ISSUES

• Employee who become aware of any health-related issue especially the serious contagious diseases and pregnancy, should notify their head and Human Resources Department of health status. This policy has been instituted strictly to protect the employee.
• A written “permission to work” from the employee’s doctor is required at the time or shortly after notice has been given. The doctor’s note should specify whether the employee is able to perform regular duties as outlined in his/her job description.

Author: erika
Last update: 2023-06-13 05:38


Laptop Policy (May 31, 2022)

LAPTOP POLICY (MAY 31, 2022)

TO/FOR : ALL CONCERNED
FROM : The Management
SUBJECT: Laptop Policy
DATE : 31 May2022

Laptop computers provide important functionality, allowing employees to have their computing resource at hand in meetings/workplace or even at home in certain time pressing situations so as to enable employees to be maximally functional and productive while away from office premises.

Laptop shall be the property of the Company at all times and the employee will not have any right or interest in the said asset except using such asset during the employment or for such duration as may be decided by the Company. Employee must ensure that the laptop is being used only for official purposes and in the course of the rightful discharge of their duties and not for generating, transmitting, corresponding any content that is contrary to Company policies. This may lead to the employee being subject to disciplinary or any other appropriate action as per Company policies.

All laptops acquired for employees on behalf of the Company shall be deemed to be Company property. Each employee issued with a laptop shall be responsible for the security of that laptop, regardless of whether the laptop is used in the office, at the employee’s place of residence.

Virus Protection

1. Avoid opening any email attachment unless you were expecting to receive it from that person.
2. Always virus-scan any files downloaded to your computer from any source (CD/DVD, USB hard disks and memory sticks, network files, email attachments or files from the Internet). Virus scans normally happen automatically if your virus definitions are up to date, but you can also initiate manual scans if you wish to be certain.
3. Report any security incidents (such as virus infections) promptly to the IT Help in order to minimize the damage
4. Respond immediately to any virus warning message on your computer, or if you suspect a virus (e.g., by unusual file activity) by contacting the IT Help. Do not forward any files or upload data onto the network if you suspect your PC might be infected.

Data Backups

1. You will be personally responsible for storing your data in one drive.
2. Remember, if the laptop is stolen, lost or damaged, or if it simply malfunctions, it may be impossible to retrieve any of the data from the laptop. Saving the data in one drive will save you a lot of heartache and extra work.

Use of Unauthorized Software /Content

1. Employees are required to ensure that they do not download, install or use unauthorized software programs. Unauthorized software could introduce serious security vulnerabilities into the Company networks as well as affecting the working of your laptop.
2. All software or other programs that are downloaded onto the Company provided laptop, whether or not they are so downloaded in accordance with the business needs of the Company, or the directions of the Company management in this regard, shall immediately become the sole and exclusive property of the Company, and henceforth can only be used in accordance with the directions of the Company in this regard. Further, any programs or software that were preinstalled at the time of the possession of the laptop being handed over to the Company, cannot be altered or removed, whether permanently or temporarily, in any manner whatsoever save and otherwise than in accordance with the directions of the Company in this regard.
3. The employee shall not install any unauthorized accessories/software like messengers, chatting software or any malicious software, which may cause problems to the functioning of the laptop and strictly adhere to Company’s software. 4. If there is damage on account of the above the employee may be liable to pay the damages at cost to the Company/the same will be deducted from their monthly salary. 5. As you might expect, Company will not tolerate inappropriate materials such as pornographic, racist, defamatory or harassing files, pictures, videos or email messages that might cause offence or embarrassment to either the Company, its employees or any third party. No employee should ever store, use, copy or circulate such material on the laptop and should not visit or attempt to visit any dubious websites

CONSEQUENCES OF BREACH

1. Any action of the employee that are inconsistent with this Policy shall be treated as serious professional misconduct on the part of the employee, and the employee concerned shall be subject to any disciplinary proceeding, or action, by the Company, which the management of the Company may deem appropriate under the existing circumstances. Such action may also include any rights of termination or any other rights that the Company may have under the terms of the employment agreement entered into by the Company with the employee concerned.
2. The Company shall bear expenses for laptop maintenance and repairs arising out of the normal wear and tear However, in the event of any damage to the laptop arising out of the negligence, misuse or abuse of the laptop by the employee, the employee shall be solely liable to make the payment for all the expenses arising therefrom. The Company shall have the right to reclaim such expenses and deduct the same from your salary.

Reporting Laptop Problem

1. Create an Incident Report stating the problem occurred with attached proof of evidence like pictures or videos with sign by the Superior / Head and forward to HRAD for proper documentation.
2. Laptop shall be brought to the office for technical checking and report by an IT Tech.
3. Recommendation from the IT Tech through Technical Report shall be with the Top Management’s approval.
4. Any damage cost shall be deducted from the employee’s salary once proven that there is a negligence from the employee’s side.

Turnover of Laptop

When an employee resigned, he/she must bring the laptop personally to the office for turnover and technical checking. Assessment/ Recommendation of IT Tech after checking the laptop shall be through a Technical Report. Any issues or problem arises after checking the laptop by an IT Tech comparing to the time the laptop issued to the employee shall be subject for a discussion with the exiting employee by an HRAD personnel. Final charges when proven that there is a negligence from the employees’ side shall be computed and deducted from his/her last pay.

Laptop Replacement

Laptop issued to an employee can be replaced upon request when the target years reached. For Laptop issued to Developers, QAs, Customer Service Dept- replacement of laptop after reaching the age of three (3) years from the issued date. For Laptop issued to Support Groups – replacement of laptop after reaching age of (5) years from the issued date.

Laptop Purchase

An employee may purchase Laptop from the company when it is available and is already for sale. The process of purchasing the laptop is through a request letter intended to specific laptop description signed by the superior/ head. An HR personnel to receive the signed letter and compute the value of the laptop. Laptop payment shall be through salary deduction maximum of eight (8) months or 16 cut off, to be deducted to the nearest payroll after the processing is done. Releasing of laptop from the employee’s personal purchase shall be after the re formatting. No re formatting of laptop, no releasing policy shall be applied.

Author: erika
Last update: 2023-06-13 05:39


Additional Policies on Laptop and other company equipment’s that requires Technical Report (Sept 1, 2022)

ADDITIONAL POLICIES ON LAPTOP AND OTHER COMPANY EQUIPMENT’S THAT REQUIRES TECHNICAL REPORT (SEPT 1, 2022)

TO : ALL CONCERNED
FROM : The Management
SUBJECT : Additional Policies on Laptop and other company equipment’s that requires Technical Report
DATE : 1 September 2022

LAPTOP/ EQUIPMENT REQUIRED TECHNICAL DIAGNOSIS

ENDORSED / TURNED OVER

- An employee resigned or separated must bring the laptop / equipment personally to the office. Laptop / equipment endorsed / turned over should be diagnosed or checked by the technical personnel..
- Results of overall check-up / diagnosis shall be written through the Technical Report Form signed by the technical personnel. .
- Technical Report diagnosis / overall check-up result shall be evaluated by the Management to recognize when there is a negligence or none. .
- Recommendation of repair indicated in the Technical Report Form is subject for the .
- Management’s approval. Cost / Charges may be identified if whom to charge (employee company). .
- Laptop / equipment for overall check-up / diagnosis will be automatic re formatted or cleaned. All files or back up must be secured by the superior/head of the resigned employee..
- No signing of clearance from the technical head shall be made unless the employee is cleared from the endorsed / turned over laptop / equipment. .
- Technical Report Form must be signed by the technical personnel once the repair is done with the laptop / equipment.

PROBLEM REPORTING

- Create an Incident Report stating the problem occurred with attached proof of evidence like pictures or videos with sign by the Superior / Head and forward to HRAD for proper documentation. .
- Laptop / equipment shall be brought to the office for technical overall checking and report by technical personnel. .
- Recommendation from the IT Tech through Technical Report Form shall be with the Top Management’s approval. .
- Technical Report Form shall include not only the Incident Report issue of the laptop / equipment but the overall diagnosis to avoid imminent problem that may arise in the future. .
- Any damage cost shall be deducted from the employee’s salary once proven that there is a negligence from the employee’s side. .
- Reporting of Incident Report must be within three (3) days upon noticed of the laptop / equipment problem. .
- Late submission of Incident Report shall be subject for an investigation and disciplinary action under the policy of not reporting of issues or problems related to work.

ISSUING USED LAPTOP / EQUIPMENT TO OTHER EMPLOYEES

- Laptop / equipment should be in good condition. .
- Previous Technical Report Form will be one of the basis in endorsing the laptop / equipment to the .
- other employees. .
- Previous Technical Report Form with recommendation of approved repair shall be signed by the technical personnel to attest that the repair is done. .
- Used laptop / equipment before issuing to other employee shall be again checked by the technical personnel to guarantee that there is no problem with the laptop / equipment. Previous Technical Report Form shall be signed and stated as “good to issue” signed on the actual date. .
- Employees which will be issued the used laptop / equipment shall sign the Technical Report Form to inform that there is a repair made from the used laptop. .
- All issues that may arise after the endorsement of used laptop / equipment shall be at the employees’ responsibilities..
- Employees issued used laptop / equipment shall report immediately the problem through an Incident Report with attach proofs. Incident Report must be created on the actual day.

Author: erika
Last update: 2023-06-13 05:40


Guidelines on Reimbursement of Gas Allowance using Private Car (October 3, 2022)

GUIDELINES ON REIMBURSEMENT OF GAS ALLOWANCE USING PRIVATE CAR (OCTOBER 3, 2022)

TO : ALL CONCERNED
FROM : The Management
SUBJECT : Guidelines on Reimbursement of Gas Allowance using Private Car
DATE : 3 October 2022

Guidelines on Reimbursement of Gas Allowance using Private Car

The Management will allow employees to use personal car and reimburse the gasoline expenses with the following conditions:

• Gasoline allowance using private car should be for official business use only

• Submit request form for gas allowance using private car (Please see annex A)

• Reimbursement will be valid only 1 week after the actual date of expenses, failure to submit reimbursement 1 week after the actual date of transaction will be subject for special approval (Signatory of request will be VP of Support Group only)

• Date and Amount must be cleared on the receipts

• Alterations / Corrections on the receipts should be countersigned by the issuer.

• Submission of request form and receipts should be arranged per request to avoid duplication of attachments. (Example: Request form’s next page will be the required attachments)

• Gasoline allowance will be computed based on actual consumption. Please see sample computation below:

CAR TYPE: SEDAN
Average Fuel Consumption: 12km/L (Fixed)
Distance from point of Origin to Destination – 35km (based on Waze / Google Maps)
Gasoline price – Php 71 (based on actual receipt/s)

Gasoline allowance for reimbursement
35km / 12kml = 2.92kml x 71 = 207.32 (one way)

CAR TYPE: SUV
Average Fuel Consumption: 9.5 km/L (Fixed)
KM from point of Origin to Destination – 35km (based on Waze / Google Maps)
Gasoline price – Php 71 (based on actual receipt/s)

Gasoline allowance for reimbursement 35km / 9.5kml = 3.68kml x 71 = 261.28 (one way)

For multiple destinations - gas allowance will be computed per destination.

Point of origin
Office-based – Office only
WFH – Office or Home address (whichever km is lower)

The following list are the required attachments for every request:

• Approved request form for gasoline allowance
• Screenshot of OB filed
• Screenshot of google maps / waze from origin to destination/s (for WFH – Home address & Office)
• Gas receipt/s

 

Author: erika
Last update: 2023-06-13 05:44


C# CIRMS » Issues

MYSQL service is automatically shutting down

Steps: 

  • check for corrupted tables
    • the service automatically shuts down if the system tries to access a table that is already corrupted
    • corrupted tables can be a result of hardware deterioration or if the unit is always shut down improperly
    • possible solutions:
      • try and recover all tables using innodb_force_recovery
      • check if the unit needs to be replaced/upgraded 
      • we need to inform the user to shut the unit down properly
  • check for hardware
    • check hard drive health
      • from experience, IBdata and the database tables have a high chance to get corrupted if the hard drive has very low health (<85%) which is why the drive health should be kept at >90%
      • if the harddrive health is too low, suggest to HD that the harddrive be replaced and the POS to be re-setup
    • check RAM usage
      • Client could have many open browser tabs or they're using another software eating up the RAM.
      • check for viruses or malware which can eat up the unit's resources
      • MySQL shuts down automatically if the available RAM is below a certain level. 
      • Inform client to avoid using the unit for other purposes than for the POS especially for the older units. 
    • check system files
      • check system files by running  'sfc /scannow' to check system files integrity.
  • check for system events 
    • forced shutdown - user should shut exit the pos and shut the unit down properly. If not, this can easily cause data base corruption and affect hard drive health too
    • system error - solution can be case to case 

After troubleshooting

  • remind user to backup data consistently for all terminals even if there're no errors encountered especially if drive health is less than recommended value

Sample Mantis issues: 

  1.  Unhandled exception has occurred in your application

Author: Mary Nicole Quirabu
Last update: 2023-07-06 09:58


How to handle VAT Settings issue?

Goal: data matches the clients documents (PTU/2303) 

Get information about the following first:

  1. When is the effectivity date of the PTU?
  2. When was the vat change supposed to be? (from the 2303)
  3. What's the original and the new vat settings supposed to be? 
  4. Does the POS already have transactions? 

Scenario 1: VAT settings wasn't changed after the release of the PTU

  1. If the BIR has already seen the issue and they have a copy of the reading or of any receipt, we can't change this anymore unless instructed by the BIR EXPLICITLY. 
  2.  Ask CIRMS backend team to datafix vat type of transactions on or after the effectivity date of the PTU 
  3. Only sales after the effectivity date of the PTU should be updated since OR#0001 should start from that date 
  4. Fix data and regenerate readings

Scenario 2: VAT type of the client changed while the POS is already officially used but the client failed to inform us when the change happened. 

  1. If the BIR has already seen the issue and they have a copy of the reading or of any receipt, we can't change this anymore unless instructed by the BIR EXPLICITLY. 
  2. Get the vat change date from the 2303 document
  3.  Ask CIRMS backend team to datafix vat type of transactions starting from the vat change date onwards 
  4. Only sales after the vat change date should be fixed. 
  5. Sales after the PTU effectivity date and before the vat change date should remain as is
  6. Fix data and regenerate readings

Scenario 3: vat settings is incorrect but there're no transactions

  1. change the vat settings 

 

*IMPORTANT: After fixing the issue, and it's scenario #1 that occured, inform direct head and HD supervisor so that further investigation can be made. 

 

Author: Mary Nicole Quirabu
Last update: 2023-07-04 13:45


Guide to handle BIR issues

  • as much as possible avoid doing datafix but you can proceed given the following
    • Do not datafix anything if BIR already has a copy of the reading and/or receipts 
    • any data can be updated  if they already after the last reading and ejournal that's submitted to the BIR 
    • any datafix should be approved first
  • Sales should start (#001) on the effectivity date of the PTU or later
  • POSD settings should be correct
  • OR# and grand totals in readings should always be continuous 

Author: Mary Nicole Quirabu
Last update: 2023-07-04 13:35