Code Monkey home page Code Monkey logo

pos_bahrain's Introduction

POS Bahrain

POS Enhancement over the default POS of ERPNext

  1. Opening Cash (Doctype) - Cashier to enter the opening cash received.
  2. Closing Cash Voucher Customized to Display opening cash for that cashier and the total sales from Opening Cash Voucher time/date till the Closing cash voucher time/date.
  3. Print Barcode from POS - (Example Receipt No. in Barcode Code128A).
  4. Batch Number in POS View with expiry Date.
  5. UOM Field In item list to change UOM of the item.
  6. Make batch number naming Series.
  7. Fetch item number directly in JS using Material Receipt/Purchase receipt Item selection.
  8. Select Default Warehouse in Purchase receipt - (Multi Company Scenario).
  9. Shortcut Key to press Pay in POS - Used F9 to press Pay, Ctrl + P to Print & Ctrl + B for New, ctrl + , focuses on Sales Employee field(When Employee Field is used).
  10. Focus back to Item Search field for user to input next item directly (when Batch item is scanned).
  11. POS to Fetch only those batch and Items which are in stock in the POS profile selected warehouse.
  12. Show Expiry Date while selecting Batch from drop down in Stock Entry (Material Receipt).
  13. Limiting reports to respected company.
  14. Return from offline POS.
  15. Simple Sales and Purchase Register Reports.
  16. Customer Item-Wise Sales Report.
  17. Item Consumption Report.
  18. Item-Wise Sales Return.
  19. Simple Batch Expiry Report.
  20. Customer Sales Summary.
  21. Generate Print format for Closing Voucher.
  22. Restrict Max discount allowed on Offline POS.

Future Updates

  1. XXXXXXXXXXX

Version Update

  1. 0.4.4 Added Custom pb_phone in customer doc and hook function to copy phone from contact to customer pb_phone field upon contact form updation.

Dev Notes

  • Custom Fields created by this app generally start with pb_. There are a few fields that do not follow this convention. Please refer to the hooks.py for more info.

License

MIT# pos_bahrain

pos_bahrain's People

Contributors

doreen2002 avatar dulhaver avatar f-9t9it avatar hafeeskazhunkil avatar irayspace avatar muzzy73 avatar neerajvkn avatar sunhoww avatar venkatesh-3103 avatar venku31 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pos_bahrain's Issues

Discount Calculation

Let the form fetch wholesale price as per the customer default.

Then fetch standard selling price for the item.

Then custom discount that will calculate the amount based off the % with standard selling price and recalculate the wholesale price.

Item wholesale price fetched from item
Custom field to fetch retail price
Custom discount field to calculate discount amount based on retail price

If custom discount amount is not equal to zero then retail price 7- the discount amount becomes the new wholesale price

So total 3 custom fields

Sales Person Item-wise Sales

Describe the bug
When clicking the report "Sales Person Item-wise Sales" an error pops "pymysql.err.InternalError: (1054, "Unknown column 'sii.salesman_name' in 'field list'")"
To Reproduce
Steps to reproduce the behavior:

  1. Go to : POS BAHRAIN
  2. Click on : Sales Person Item-wise Sale
  3. See error

Expected behavior
Report to load
Screenshots
image

Desktop (please complete the following information):

  • OS: WIN 10
  • Browser Chrome
  • Version 88.0.4324.150

Additional context
looks like the script requires an update to custom field pb_sales_employee_name

Customer Item-wise Sales

  • Customer Item-wise Sales - Item Name Missing ??
  • Total Also Missing. Add Show total command at the end

Installing app error

An error occurred while installing pos_bahrain: Item Barcode: Field Barcode in row 1 cannot be hidden and mandatory without default
Traceback (most recent call last):
  File "apps/frappe/frappe/commands/site.py", line 416, in install_app
    _install_app(app, verbose=context.verbose, force=force)
  File "apps/frappe/frappe/installer.py", line 296, in install_app
    add_to_installed_apps(name)
  File "apps/frappe/frappe/installer.py", line 324, in add_to_installed_apps
    post_install(rebuild_website)
  File "apps/frappe/frappe/installer.py", line 477, in post_install
    init_singles()
  File "apps/frappe/frappe/installer.py", line 501, in init_singles
    doc.save()
  File "apps/frappe/frappe/model/document.py", line 305, in save
    return self._save(*args, **kwargs)
  File "apps/frappe/frappe/model/document.py", line 327, in _save
    return self.insert()
  File "apps/frappe/frappe/model/document.py", line 285, in insert
    self.run_post_save_methods()
  File "apps/frappe/frappe/model/document.py", line 1082, in run_post_save_methods
    self.run_method("on_update")
  File "apps/frappe/frappe/model/document.py", line 914, in run_method
    out = Document.hook(fn)(self, *args, **kwargs)
  File "apps/frappe/frappe/model/document.py", line 1264, in composer
    return composed(self, method, *args, **kwargs)
  File "apps/frappe/frappe/model/document.py", line 1246, in runner
    add_to_return_value(self, fn(self, *args, **kwargs))
  File "apps/frappe/frappe/model/document.py", line 911, in fn
    return method_object(*args, **kwargs)
  File "apps/pos_bahrain/pos_bahrain/pos_bahrain/doctype/pos_bahrain_settings/pos_bahrain_settings.py", line 22, in on_update
    make_property_setter(
  File "apps/frappe/frappe/custom/doctype/property_setter/property_setter.py", line 64, in make_property_setter
    property_setter.insert()
  File "apps/frappe/frappe/model/document.py", line 285, in insert
    self.run_post_save_methods()
  File "apps/frappe/frappe/model/document.py", line 1082, in run_post_save_methods
    self.run_method("on_update")
  File "apps/frappe/frappe/model/document.py", line 914, in run_method
    out = Document.hook(fn)(self, *args, **kwargs)
  File "apps/frappe/frappe/model/document.py", line 1264, in composer
    return composed(self, method, *args, **kwargs)
  File "apps/frappe/frappe/model/document.py", line 1246, in runner
    add_to_return_value(self, fn(self, *args, **kwargs))
  File "apps/frappe/frappe/model/document.py", line 911, in fn
    return method_object(*args, **kwargs)
  File "apps/frappe/frappe/custom/doctype/property_setter/property_setter.py", line 38, in on_update
    validate_fields_for_doctype(self.doc_type)
  File "apps/frappe/frappe/core/doctype/doctype/doctype.py", line 1037, in validate_fields_for_doctype
    validate_fields(meta)
  File "apps/frappe/frappe/core/doctype/doctype/doctype.py", line 1458, in validate_fields
    check_hidden_and_mandatory(meta.get("name"), d)
  File "apps/frappe/frappe/core/doctype/doctype/doctype.py", line 1131, in check_hidden_and_mandatory
    frappe.throw(
  File "apps/frappe/frappe/__init__.py", line 526, in throw
    msgprint(
  File "apps/frappe/frappe/__init__.py", line 494, in msgprint
    _raise_exception()
  File "apps/frappe/frappe/__init__.py", line 443, in _raise_exception
    raise raise_exception(msg)
frappe.core.doctype.doctype.doctype.HiddenAndMandatoryWithoutDefaultError: Item Barcode: Field Barcode in row 1 cannot be hidden and mandatory without default

ERPNext: v14.27.9
Frappe Framework: v14.40.0
Pos Bahrain: v0.4.4

POS Return returning cash amount by default.

POS Return returning cash amount by default.

When we make pos return and want to give the customer Store credit , but when we raise pos return it show full negative stock as paid by cash.

This is due to the any negative value is by default as default mode of payment.

Use Case:
If user removes all the amount from the mode of payment when submitting pos return then it should go to customer credit balance (Store credit)

Payment Request

Is it possible to link Payment Request to a POS Sales Invoice or to create a Sales Order from a POS Invoice in Draft?

Some sales are paid by link.

Batch sales from POS

Add logic in POS to handle batch selection accurately and pass it to sales invoice.

Remove Write OFF

Write access to any user is not feasible.

Either remove the Write Off field from POS payment screen or make it un-editable.

Enhancement of Opening cash and Closing Cash Voucher

Enhancement of Opening cash and Closing Cash Voucher.

Currently Opening Cash is mandatory to raise closing Cash voucher. - that is fine. but if user forgot to do opening cash then closing cash is stuck in error loop.

Closing cash voucher to have time cutoff. Example: Opening cash date time to closing cash date time.

next closing cash voucher should not pull the sales between the previous duration range.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.