ERPNext Learning Guide
ERPNext Learning Guide
Module 1
1.0 Introduction
This document assumes you are curious to know what ERPNext is about and you are interested in learning how to use it.
Customers
Suppliers
Sales
Accounting
Inventory of Items (Stock)
Projects
Manufacturing
Retail sales
It is also incorporating several domain specific functions for industries such as:
Education
Agriculture
Healthcare
Non-Profits
ERPNext already has basic documentation, videos and a support group with plenty of community members that can support you on your journey to learn how to use this software.
ERPNext also allows your suppliers and customers to access a portal to manage information related to your company, and it also has a web site for e-commerce.
1.2 Structure
The following course or tutorial is divided into 5 modules, which will enable you to master ERPNext.
This course is divided in 5 modules. Each module will take your learning from the general to the more specific, in the same manner that we talk about a ship in general terms, each
additional module will explore the topics with more specificity about the ship, such as propulsion systems, bilge systems, navigation, crew, etc. At the end we will reach detailed
explanations about individual ship components such as engines, pumps, compass, captain's duties, etc. With this, you can revise the basics or go down to the details when necessary
to master ERPNext.
I personally like a specific order to better refer to topics in a structured manner, so I have numbered items by levels, separated by decimals. Each module is at a level 1. Level 2 is
represented by a level one number, separated by a decimal and another number, and then another number that begins the ordinal count of the topic within the module. You can refer
to a specific topic by the number. This also will help when indexing. Each sub-topic is separated by a decimal point from the number that represents the parent or principal topic.
You can run it locally on a linux machine, or in a virtual server on any operating system.
Ideally you use a web server with a public IP address so you can access the service from any internet connected device.
This module focuses on learning to set it up, configuring it and use this instance to satisfy the basic accounting and management needs of a business or non-profit.
1.4 Getting an instance of ERPNext
1.4.1 Trial account on erpnext.com
The quickest and easiest way to learn it, is to open a trial account on erpnext.com (https://www.erpnext.com) Once set up, jump straigh to Module 2.
The next easiest way is to download a pre-installed virtual image to use with Oracle's VirtualBox. Download VirtualBox from here (https://www.virtualbox.org/) Since ERPNext is open
source software (https://en.wikipedia.org/wiki/Open-source_license), you can download a production image directly from this site and use for any purpose allowed in the license:
https://erpnext.com/download (https://erpnext.com/download) You run virtualBox, import the appliance and start the server. Make sure you configure the virtual networking cards
properly. I usually use a Bridged adapter to my existing WiFi connection on a MAC so that the virtual machine gets an IP address from my router. This way, I can access it using a
local IP address on the web browser.
The rest of the module will be an initial exploration of the program modules for
Accounting
Human Resources
Stock or Inventory
Buying
Selling
CRM (Customer Resource Management)
Manufacturing
Projects
Assets
Web Site
1. From the desktop, click on the top right of the screen where your user is shown to show a collapsible menu.
2. Click on My Settings
3. In the page that is loaded, scroll down and in the section Change Password click to deploy and show the field where you can enter a new password
4. Enter your new password
5. Select (or not) the options to : 5.1 Email notification of password change 5.2 Logout of all devices while the password is changed.
6. Scroll back up and click on Save
1. From the desktop, click on the top right of the screen where your user is shown to show a collapsible menu.
2. Click on My Settings
3. Scroll down and click on the More Information section to deploy it
4. Add a gender
5. Add a telefono
6. Add a móvil
7. Add a date of birth
8. Add a location
9. Add a short biography
10. Select "Mute sounds" if you do not wish to listen to alert and confirmation sounds in ERPNext
11. Scroll back up and click on Save
1. From the desktop, click on the top right of the screen where your user is shown to show a collapsible menu.
2. Click on My Settings
3. Scroll down and click on the Desktop Background section to deploy it
4. Click on Attach
5. Browse and select an image file in .png or .jpg format in desirable dimensions and click Upload
6. Check the background style, leaving it in full screen or tile as necessary.
7. Modify the image and the background style, until satisfied with your background image.
1. From the desktop, click on the top right of the screen where your user is shown to show a collapsible menu.
2. Click on My Settings
3. Scroll down and click on the Desktop Background section to deploy it
4. Click on x on the side of the filename attached for the Background image to eliminate it.
1. From the desktop, click on the top right of the screen where your user is shown to show a collapsible menu.
2. Click on Set Desktop Icons
3. You can choose to change By User and your user, or choose all
4. You can also choose Select all and click again to unmark all
5. Select the modules that you want to show on the desktop
6. Scroll up and click on Save
To move the icons, click and hold until the icons shake Move the icon to the desired place When done, click on the desk for them to stay fixed again To eliminate an icon,
follow the same procedure above, instead click the x to erase them
Images
Attachments
Assignments
Labels
Users
Sharing
Time of creation and editing
Comments
Specific DocType action buttons
The Make Button
Duplicating documents I consider this particular feature of ERPNext one of the most useful for day to day transactions, because it allows you to copy data from an existing
DocType such as a purchase order and create a new one with the same items, just changing the amount and date or other parameters to suit this particular doctype instance.
Example: A main or master DocType is one such as Item or Sales Invoice. A supporting DocType is an Item Attribute or a Sales Invoice Item
User
Item
Item Price
Customizing (adding fields)
Series and numbering
Documentation (https://erpnext.org/docs/user/manual) YouTube Video Channel (https://www.youtube.com/c/erpnext) Discussion Forum (https://discuss.erpnext.com/) Chapters
(https://erpnext.org/chapters)
2.2.3 - Stock
2.2.4 - Buying
2.2.4.5 - Full purchase Cycle: Supplier quotation, purchase order, purchase receipt, purchase invoice and payment (Video 025)
2.2.5 - Selling
2.2.5.5 - CFull sales cycle: Customer quotation, sales order, delivery note, sales invoice, payment request and payment (Video 030)
2.2.6.1 - Use of CRM to increase sales and customer service (Video 031)
2.2.7 - Manufacturing
2.2.8 - Projects
2.2.9 - Assets
2.2.10.2 - Pasos para crear una pagina web - Basado en conferencia Octubre 2017
2- Planifique su estructura
En este caso, el sitio ejemplo maneja eventos. Cada evento tiene una imagen, un titulo, una fecha y un boton para reservar. Luego hay contenido sobre lo que el evento posee.
Se creara un modulo para eventos publicos en ERPNext. Luego se creará un objeto llamado "Evento". Para reservar un ticket, crearemos un objeto "Ticket" Esto son dos DocTypes
que crearemos. Finalmente, crearemos una vista web.
Let's configure the theme. Hay un Standard theme, pero Hagamos uno nuevo. **WebSite > Setup > Website Theme >
We also learned about the very important Frappé framework, which empowers ERPNext beyond just the main and support DocTypes, especially its functionality allowing assignments
of documents to other users, attaching files to these documents, sharing individual documents whose individual permits are restricted to certain users, track all activities on a
document chronologically and by author, including the comments and communications that can be placed directly on the DocType. We also learned how to search for help and
support.
We then initiated our exploration of the accounting modules by creating a company, cost centers, accounts and learning how to create accounting entries.
We saw the human resource module where we created the first employee. We moved to the stock module where we learned the importance of properly grouping items, an example
of a coding scheme the creation of a pair of warehouses and then we learned to create items. Items are some of the most crucial parts of ERPNext.
After this we moved to know about the Buying module where we created a supplier, modified it made a quotation as furnished by the supplier, then a direct purchase, and finally a
more formal purchase which includes a supplier quotation, purchase order, purchase receipt, purchase invoice and payment.
We saw then the same process, now in the Selling module, where we added a customer, modified its data, added a quotation to the customer and finally generated a more formal
sale (sales cycle)
We checked how to use the CRM module to manage potential customers, allowing us to increase the service to the customer, create marketing campaigns and track leads until
converting them to customers.
We checked the manufacturing module and its underpinning: The Bill of Materials (BOM) which allowed us to define which raw materials are needed for a specific product.
The Projects module was overseen, with the creation of a simple internal project with tasks and due dates. The assets module with its categories and assets, which we will learn how
to depreciate and maintain in the next module. The WebSite module allowed us to create a simple webpage to serve to all users accesing from the web
Discounts: If you apply a percentage discount over the Grand Total, the total will be: (Sum of itm x qty - Sales tax (included)) - ((Sum of itm x qty - Sales tax (included)) * % Discount)
If you apply a total discount amount over the Grand Total, the total will be: (Sum of itm x qty - Sales tax (included)) - (Discount Amount)
Payment Entry
Supplier Quotation
Purchase Order
Purchase Invoice
Purchase Receipt
Journal Entry
Sales Order
Sales Invoice
Customer Quotation
Delivery Notes
The documents will be created automatically, at the indicated time, as Draft You can indicate if you wish to have them validated automatically upon creation!
Suppose that you must create a purchase invoice for a monthly property rental manually. With subscriptions, you can create the first monthly invoice manually, and then enable the
subscription so that it automatically generates the next month's purchase invoice, on the day of your choosing.
1. To crate a subscription, you must have at least one document of the type you wish to repeat. If you have not done so, prepare the first one manually and save it.
2. To create the subscription, write this in the empty text box at the top of every ERPNext instance, aka "Awesome Bar": New Subscription
3. Enter the reference DocType for your subscription
4. Enter the series and number of the document that you wish to repeat, this is the same as you created in step 1
5. Select the frequency you wish for the subscription, this can be:
Daily
Weekly
Monthly: You must indicate the specific day of the month when you want it to be created.
Quarterly: You must indicate the specific day of the month in which the quarter ends when you want it to repeat.
Bi-anually
Annual: You must indicate the specific day of the month in which the year ends when you want it to repeat.
6. Indicate the initial date from where you wish to create the first one in the series.
7. Indicate the last date or until when you no longer wish more documents to be created automatically.
If the end date is before the next estimated date in the frequency, ERPNext will limit the creaiton of the document.
8. Indicate if you wish the document to be Validated at the moment of creation.
If you wish to automatically invoice a customer, and have automatic sending of sales invoice, check the field to generate and send the sales invoice automatically.
9. Indicate if you wish to disable the subscription (even though you do not want to erase it)
10. Indicate if you wish to be alerted vía email about the creation of the DocType. When selecting the field, you must indicate the following.
E-mail subject: You can use Jinja, for dynamic messages such as "New Sales Invoice #123", where 123 is the actual series number of the created document by the
subscription settings.
Email recipients, separated by a new line. You may add as many recipients as you wish.
Print format
Message: The message for the email can be formated with Jinja, so that you can use dynamic numbers, customer names, etc.
3.2.3 - Stock
3.2.4 - Buying
Important: If you changed the default warehouse AFTER having created a product bundle, make sure you refresh or reload the page.
3.2.5 - Selling
1. Puedes establecer promociones en las cuales ofrece descuento en la compra de x cantidad de articulos
2. Para cliente X, el precio de venta debe ser actualizado por y cantidad
3. Los productos categorizados bajo el Grupo de Articulos especificado tienen el mismo precio de compra o venta.
4. Los clientes que pertenecen a un grupo especifico de clientes obtienen precio de venta x o un descuento del y %
5. Los proveedores bajo cierta categoría deben de tener un precio x.
6. Puedes agregar margen de venta sobre lista de compras 6.1 Haga un listado de precios de compra y asegurese de ingresar un precio de compra en ese listado 6.2 Haga una
regla de precio en la cual indique el codigo del articulo de compra. Indique que es una regla para la venta. 6.3 Agregue el margen porcentual que usted desea sobre el
producto de compra 6.4 Haga su factura de venta y verá el margen aplicado.
3.2.6.3 - SMS Settings for mobile messaging from ERPNext (Video 085)
3.2.7 - Manufacturing
3.2.8 - Projects
A task is an allocation of work to be completed before a specific time. A task can exist by itself, or it can belong to a project.
If you wish to see how you create a task from a project, follow the instructiones from project.
To make a new Task, go to Projects > Tasks > New Enter the Subject or Title for the task. Select if it belongs to a project, if necessary. Enter the foreseen date from Beggining to
End You may enter the Expected Time of the task in hours You may enter the progress in Percentage Indicate the specific details for this task textually.
To keep track of the time used in a task, we create a timesheet Select activity type Indicate start time Indicate hours used End time is updated. Save the record.
In the related task you will be able to see the time spent on this task If the task belongs to a project, then the time spent will be updated there.
3.2.9 - Assets
3.2.10 - Tools
Whenever you add an Item or Customer to a Shopify Account, it synchronizes with ERPNext automatically adding the item or customer.
If you add a new Item or Customer in ERPNext account, item should upload automatically to Shopify.
You can manually force the synchronization of Items or Customers.
You can receive orders from shopify Customers directly in ERPNext. Requirements: Shopify Account, ERPNext server with domain name
On the left sidebar in the Shopify account administration, at the bottom you will see a link for Apps.
Click on Get to install it on your Shopify account This screen will notify you that ERPNext will have the ability to do the following:
Enter the data required: Shop Name: Enter the name of your shop website as provided by Shopify: [yourstore].shopify.com ERPNext Site Name: This is the domain name
where you are running ERPNext. Example: testsite.com ERPNext User Id: Enter the user ID (email address) of the user that will have access to synchronize. Password: The
password associated with the ERPNext user indicated above.
The Shopify website should now show that the ERPNext app under the Installed apps
Ideally, the ERPNext server will update automatically to add the Shopify connector app. If not, make sure you install the application from Setup > Applications > Application
Installer > ERPNext Shopify
1. To access the Shopify Settings, type this in the Awesome Bar on top: Shopify settings
2. Make sure the box entitled Enable Shopify is checked
3. App Type: Public
4. Shop URL: Enter the shop name as entered above [your_store].shopify.com
5. Price List: Select the default ERPNext Price list
6. Warehouse: Set the warehouse where Items will ship from, to fulfill Shopify orders.
7. Cash/Bank Account: Set the ERPNext account that will keep track of the deposits fromShopify sales.
8. Customer Group: Although this is automatically set from Shopify, you can set it manually here.
9. Sales Order Series: Set the desired series to automatically generate when a shopify order is sincronized with ERPNext
10. Map Shopify Tax / Shipping to ERPNext account 10.1 Add a row where you will define the Title of the Tax or Shipping charge 10.2 In the same row, select the ERPNext
account where you want to tally these charges 10.3 The Title must equal the name of the additional items in the Shopify invoice. ??? TK
11. Import Delivery Notes from Shopify on Shipment: mark if you want to create a delivery note based on items marked as shipped on Shopify. 11.1 You must select the Delivery
Note series you wish for this
12. Import Sales Invoice from Shopify if Payment is marked: mark if you want to create a Sales Invoice automatically if payment is added 12.1 You must select the Sales Invoice
series you wish to use for this.
1. From within ERPNext, to synchronize manually go to Shopify settings by entering it on the Awesome Bar and click on Sync Shopify
2. A message will pop up stating: "Queued for syncing. It may take a few minutes to an hour if this is your first sync."
3. On the settings page, a yellow banner will appear letting you know that: "The Last sync request is queued" This message will change to Last sync request was successful
when the latest synchronization has finished successfully.
4. If you press the Shopify Log button, you can view all the logs with their title a confirmation of the status, and the Status wheter is was a Success or *Failed
5. If you now go to Stock > Items, you will see the items synchronized from Shopify. Each item will be identified by the Shopify Product ID, and will also have the Shopify
characteristics such as Description, Image, etc.
1. Go to Stock > Items and open each item you want to Synchronize to Shopify
2. Each Item has a checkbox to Sync With Shopify. Make sure you check this box and Save the Item to confirm the changes.
3. If you also want to Synchronize the Quantity in your warehouse with Shopify, then check the box Sync Quantity With Shopify. Again, Save the Item to confirm the changes.
4. Go to Shopify settings and click Sync Shopify again to push the Items from ERPNext to Shopify.
5. If you go to your Products page in Shopify, you will see the Items you just synchronized from ERPNext.
1. In Shopify, you can add customers that will be synchronized with ERPNext automatically.
2. In ERPNext go to Shopify settings and click Sync Shopify to synchronize customers.
3. All the data, including address, will be synchronized to the Customer entry in ERPNext.
ERPNext only pulls orders from shopify! Your customers "Customer to Business (C2B)" place their orders in Shopify. Your customers "Business to Business (B2B)" place their
orders vía the ERPNext portal and account you provide them. Even if you have products on your website, the link for placing an order should lead them to your Shopify shop.
Once the order has been placed by the customer, the order will synchronize automatically with ERPNext. A Sales Order created in ERPNext will not synchronize to Shopify. It
will only get Sales Orders from Shopify to ERPNext.
If Delivery Note checkbox is selected, ERPNext will synchronize them, and link them to related Sales Orders, Sales Invoices or Payments if any. Delivery notes will have both the
Shopify Order ID and Shopify Fulfillment ID listed when they synchronize from Shopify. Delivery Notes from Shopify synchronization will always be in Draft status, so that you can
edit them and modify them before submitting them. A submitted Delivery Note that satisfies the Sales Order or Sales Invoice means that the order has been fulfilled completely. a
Delivery Note created primarily in ERPNext, will NOT synchronize to Shopify! It works only from Shopify to ERPNext.
If Sales Invoice checkbox is selected, ERPNext will create Sales Invoices. These Sales Invoices will be linked to Delivery Notes, Sales Orders and Payments if any. If Payment has
been received, a linked Payment Entry will also be created in ERPNext.
When Items are synchronized from Shopify, the unique product ID from Shopify is copied to ERPNext so that it does not synchronize twice to Shopify from ERPNext in the next
synchronization. Price List is also updated when synchronized from Shopify.
The Shopify application has a scheduler setup that will synchronize with Shopify frequently (exact timeframe?)
Pending questions to be answered: What happens with VAT if included in price with Shopify? How do we process a return from a customer:
1. With refund?
2. Without refund?
A best practice to use here is to prepend the name of your company to field names (A good practice to prevent errors when updating. Y
Adding new fields to main doctypes (Customize)
A best practice to use here is to prepend the name of your company to field names (A good practice to prevent errors when upd
This particular instruction helps with child table doctypes
4.2.3 - Stock
A reconciliation allows you to enter the items that have been physically counted or observed in a warehouse on a specific date, and an account to cost or expense the items not
found. You can also specify the cost center for this particular entry.
Each line lists the item, the warehouse and the amount actually verified in the warehouse. ERPNext will then fetch the valuation rate (or you may enter it yourself ?).
Once the DocType has been Validated, it will post corresponding GL Entries and Stock entries.
4.2.4 - Buying
4.2.4.1 - Inviting suppliers to the ERPNext portal for your Company (Video 184)
When you create a quotation request, you may invite the supplier to your portal to make an offer for the request.
4.2.5 - Selling
4.2.7 - Manufacturing
4.2.8 - Projects
This report shows the tasks overlayed in a calendar to visualize the required time to complete the task.
You may update the progress of the task (%) form the Gantt chart
4.2.9 - Assets
5.1.6 Account payment vía gateway (Cuenta pasarela de pago) (Video 205)
5.2.2.13 - Reports
5.2.3 - Stock
5.2.4 - Buying
5.2.5.3 - Material Requests for which Supplier Quotations are not Created (Video 263)
5.2.5 - Selling
5.2.9 - Assets
5.2.10.9 - Developer mode and development console on the browser (Video 294)
11.4.2 - Crop
2.2 - Patient
2.5 - Consultation
2.9 - Invoicing
2.10 - Physician
13.2 - Chapter
13.3 - Volunteer
13.4 - Donor
15.1.4 - Distributing the work: Print the messages for field interviews
Check the forums to verify if there is a project already underway addressing the issue that you have.
Ideally you may participate in this project.
These steps will lead you through setting up a Virtual Machine with a Linux .iso until you have a working ERPNext server for local use
These instructions are based on what has worked for us.
This setup is only recommended for a server that will be used locally!
I personally like to run my development servers in Linux Server. You might also wish to use Ubuntu Desktop (http://releases.ubuntu.com/16.04/ubuntu-16.04.4-desktop-
amd64.iso.torrent). To avoid compatibility issues I recommend 64-bit Ubuntu 16.04 LTS server (http://releases.ubuntu.com/16.04/ubuntu-16.04.4-server-amd64.iso.torrent). Visit the
Ubuntu page (https://www.ubuntu.com/download) to select the proper version for your needs. I suggest you use a torrent manager, you will get very fast downloads. I personally use
μTorrent (http://www.utorrent.com/) and on a 10Mb connection I get it downloaded in under 15 minutes.
1. Go to the Ubuntu page (https://www.ubuntu.com/download) to select the proper version for your needs
2. Once you have selected what you need, you click on it to begin the download
3. The download will be a .torrent file.
4. If you double click on it or open your torrent manager, you will be able to add it to the torrent list
5. Make sure you start the torrent and let it seed some time after downloading
6. The result will be a .iso file which will be used to setup our Development server
1. Configure the Virtual Machine's networking by right clicking on it and selecting Settings
On the Network tab, under Adapter 1, select Bridged Adapter
Choose your current networking device (ideally, wehre the virtual machine can get an IP assigned by DHCP)
Click OK
2. Right click on Virtual Machine and select Settings again.
Select the Storage tab
Where it says Controller: IDE there is an Empty item with a CD icon. Click it.
On the right pane, under Attributes you will see a field called Optical Drive. Click on the CD Icon beside it.
A menu item will pop up, and one of them will say: Choose Virtual Optical Disk File. Click on it.
Navigate to the folder where you downloaded the .iso file for Ubuntu and select it.
Click Open
You should now see the file oyu just choose under the Controller IDE item
Click OK
15.5.2.3.5 - Configure Linux Server for root user and SSH access
1. Set root password You will be prompted for the password for your user that you entered during installation. Then enter the root password twice to confirm.
sudo passwd -l root 3. Switch to the root user su root 4. Open the sshd_config file to setup SSH connections
nano /etc/ssh/sshd_config
NOTE: These settings are for a development server on your local network, never use these settings in a production server! 6. Restart the OpenSSH server to make changes
active, by typing in the console service ssh restart or sudo systemctl restart sshd.service
8. Try connecting vía a network machine or your local host (the machine hosting the virtual machine) terminal using SSH
ssh root@[ip_address_of_your_vm]
smbpasswd -a root 2. Configure the server by modifying the .conf file nano /etc/samba/smb.conf 3. When open, scroll down to the shares definition section, close to
[printers] section, and add these lines:
[ERPNext-root]
path = /
valid users = root
force user = root
read only = no
create mask = 0755
guest ok = yes
nano /etc/hostname
Make sure the file has at least one line with the hostname you desire, less than 15 characters in length.
service smbd restart 8. Test your configuration testparm 9. Reboot the server to have the hostname announced on the local network, using: reboot
**DON'T Forget to snapshot at this point. This will enable you to browse the files on any network computer and modify them. I have a development server setup separately and
work from other computers in the network.
1. First, you will need to switch to the sudo user you configured during linux installation
sudo apt-get install python-minimal && sudo apt-get install build-essential python-setuptools 2. Now, change to the /home directory cd
/home 3. Download the installation script for Frappe /ERPNext sudo wget
https://raw.githubusercontent.com/frappe/bench/master/playbooks/install.py 4. Here, you might opt to install either the production or the development
version. This choice is up to you, but I have found my workflow progresses faster working with a master Production instance of ERPNext. For ERPNext core features, a
develop server is best. sudo python install.py --production 5. During installation you will be prompted for a Database password for root, and an Administrator
password. 6. When successful and done, a message will show: Frappe/ERPNext has been successfully installed!
1. To make maintenance easier, you can configure a profile file to take you directly to the frappe-bench directory
sudo nano ~/.bash_profile 2. Add the following line: cd /home/frappe/frappe-bench/ 3. Exit and Save with CTRL + X, Y and ENTER
1. On the command line, once installed, you might have to start the frappe-bench.
cd /home/frappe/frappe-bench/ 2. Run the start command bench start
Before you create your app, open this page (https://octicons.github.com/) in your web browser and find out the name of the icon you wish to use for your application.
You also need to pick a color for the icon background square, it can be either: Standard HTML color name: blue or Hex color value in the form: #000000
You also need to figure out which license you will use to publish your application, and jot down the keyword for the license.
If you already have a server with an instance of ERPNext running, you also need the site name for your instance of ERPNext.
Example:
4. Install the application to your site. Repeat command for any other site where you want the app
Example:
Note: Currently, the app is installed, but no icon will show on the ERPNext desktop in the web browser until you create the first DocType!
Open your web browser and type the server address where ERPNext is hosted.
Login
Once you are on the ERPNext desktop, click on the Awesome Bar on top, and type: new DocType
Press ENTER
A new DocType configuration page will open
I suggest you create a Configuration DocType for the application first.
In the Is Single field select YES
Name: Configuration
Click on Save
6. Enable developer mode in the terminal
cd /home/frappe/frappe-bench/sites/[your_site_name]
Then, open the site_config.json file to add the line that turns developer mode on:
nano site_config.json
"developer_mode": 1,
7. Find your app in the linux directories: To modify your application, you can access the directory where the app files in the following folder, and select the files, modify them, etc.
cd /home/frappe/frappe-bench/apps/[name_of_your_app]
8. Optional: Configure your application folder for tracking changes with GitHub Once inside the directory, run the following commands:
git init
9. Add files to the local git repository This will add all the files currently in your folder, to the local git repository
git add .
10. Now, commit your changes This prepares the changes and places them in the staging area from where they will be pushed.
11. Only once: If you haven't done so (https://help.github.com/articles/create-a-repo/), go to your remote repository on GitHub or other server, and click on the copy link button on
the top right of the repository.
This will set the default origin repository to push and pull from. You can verify it with:
git remote -v
Important: The following command assumes you have nothing in the remote repository yet!
15.5.2.9 - Modificando Reports - Query report (Example: Adding columns) (Video 255)
15.5.2.10 - Creating Reports - Pages (Example: Sales Analytics, vs. Sales Analytics 2.0) (Video 258)
Many times, your cusotm application does not need sophisticated functionality, but instead requires useful records to become available or seamlessly appear in the ERPNext
instance. Sometimes the amount of data is beyond the Data Import Tool limit. In this case we can bypass the data import tool and simply include them as a default when installing the
application.
As you develop your application, add the records for the required doctypes in the most practical manner available to you.
Modify your hooks.py so that the fixtures = [] variable contains the DocType records you wish to include. For example, aside from the Custom Field or Custom Script that you
already consider exporting, you wish to include a specific chart of Accounts, a set of Cost Centers and a bunch of Item Groups, then the line in hooks.py should read like this:
After: fixtures = ["Custom Field", "Custom Script", "Account", "Cost Center", "Item Group"]
Now, with the records neatly entered as you wish them, (and before making a commit and push to your git server), execute the following command on your development server:
This command will create 5 .json files, one for each DocType, inside the /home/frappe/frappe-bench/apps/[app-name]/[app-name]/fixtures/ directory of your
application, like this:
These files will contain all the records that you saved previously, and awhen you install the application on any server, they will be automatically loaded. The user will not have to load
them on their own.
15.5.2.12 - Testing
Aside from the usual code >try > fail > recode > try again > succeed cycle, tests of the python scripts are crucial to ensure that the code is doing what it is supposed to do. Within the
DocType that you are creating, it is imperative to create that least these three test files: test_[doctype-name].py test_[doctype-name].js test_records.json The Python and JavaScript
files contain assertions that use the functions you coded as well as local functions and variables to explicitly confirm that the function in the software is doing what it is supposed to do.
This process dramatically increases the integrity of the software, and clarifies it for those who are evaluating or auditing the code.
La combinación de esto evidentemente resulta en una reducción de costos y mejores ventas, los cuales se trasladan directamente a su operación. Una bodega ordenada hace las
tareas más faciles, rápidas y efectivas. Cumplir ocn una certificación ayuda en abrir más mercados.
Entonces, si desea mejorar su operación partamos desde los estándares aceptados para manejo de bodegas. Estos estándares surgieron despues de muchas pruebas y errores en
otras organizaciones a lo largo del tiempo. Conforme el paso del tiempo, se ha llegado a un común acuerdo desde lo informal hasta una formalidad, a lo cual se le llama Estándar de
la industria. Aqui veremos los concéptos básicos que puede aplicar para tener excelentes resultados desde el inicio.
Al administrar las ubicaciones de las bodegas adecuadamente, se podrá utilizar herramientas y sistemas comúnmente utilizados como: obtención interactiva de objetos por fase ó
ubicaciónes dinámicas.
Obtencion Interactiva de Objetos por Fase (OIOF): Interactive Wave Picking, le permite a la persona encargada de obtener objetos en bodega, de hacer su ruta eficiente,
desglosando el total de articulos que recogerá en una sola lista que asegura que solo recorra una vez cada pasillo o estantería. Si tengo 5 pedidos con un total de 20 objetos,
algunos de ellos repetidos, el sistema OIOF me desplegará la lista de tal manera que pase recogiendo cantidades de objetos a obtener, para cuando retorne a mi punto de partida,
ya los asigne a los pedidos correspondientes.
Ubicaciónes dinámicas: En un sistema de ubicación dinámica, se permite que la ubicación de los productos cambie de posición en las ubicaciones de bodega. Un ejemplo de esto es
que los productos más comunes puedan ser almacenados mas cercanos a la ubicación donde se empacan o utilizan.
http://microchannel.com.au/company-blog/march-2015/warehouse-management-static-vs-dynamic-slotting (http://microchannel.com.au/company-blog/march-2015/warehouse-
management-static-vs-dynamic-slotting) https://www.youtube.com/watch?v=31GfSd0oIzg (https://www.youtube.com/watch?v=31GfSd0oIzg)
Ambas estructuras mencionadas arriba le permiten reducir el tiempo de obtención de los objetos.
Terminology
Previo a sugerirle como nombrar sus bodegas, clarifiquemos la terminología.
Location: Un area designada y etiquetada en su bodega, en donde una persona va a obtener los objetos para un pedido. Tipicamente se identifica con una serie de codigos
alfanumericos (que pueden incluir codificacion en barra) que pueden usarse para rápidamente registrar la salida o ingreso de un producto en sus sitema de administración de
bodega (almacén)
Bin: Es cualquier tipo de almacenamiento adentro de uno o mas espacios o ubicaciones para el producto almacenado. (Por ejemploi: Un contenedor de clavos, otro de tornillos,
etc.). Esta es la ubicación mas específica que se sugiere utilizar en una bodega. Ocasionalmente se puede intercambiar con el término Ubicación.
Shelf: El siguiente nivel de ubicación a la cual se le coloca nombre es el Entrepaño o Fila. Este es el espacio horizontal que atraviesa la enteridad de la Estantería en donde se
ubica.
Rack: (Also: Unit or Section) Se refiere a la seccion de unidades o modulos que contienen Entrepaños para almacenar los productos. Dependiendo de la bodega, las Estanterías
se pueden identificar como una unidad entera a lo largo de un Pasillo, o como secciones de Entrepaños largos. Se puede imaginar lo descrito como un montón de libreras
alineadas en una fila, con cada librera en su propia Estantería dentro de la fila de Estanterías.
Aisle: La siguiente forma de indicar ubicación es por Pasillo, el cual se define como el espacio entre sus Estanterías por el cual se puede mover usted o su maquinaria de bodega
(Montacargas, etc.)
Si deseamos ver una jerarquía de su bodega, lo lógico es entonces definirla de lo general a lo específico como:
General Location > Warehouse Group > Warehouse > Aisle > Rack > Shelf > Bin
1. Numere los Entrepaños del suelo hacia arriba. De esta forma, si necesita agregar entrepaños, no tiene que volver a etiquetarlos. Por ejemplo, si tiene una Estantería con
cuatro Entrepaños, siendo el superior etiquetado como #1, y el de hasta abajo como el #4, si desea agregar ubicaciones (Entrepaños), su nueva ubicación (supongamos
que es el Entrepaño #5) quedaría encima del Entrepaño #1. Evidentemente esto le complica todo.
2. Es recomendable que cuando desee utilizar numeración en las ubicaciones, utilice un cero en todos los numeros inferiores a diez (Por Ejemplo: 01, 02, 03, etc.). Esto le
permite a su sistema leer las ubicaciones alfanuméricas codificadas en código de barras, correctamente. Además, le simplifica la lectura a su personal, puesto que se
acostumbran a leer dos dígitos siempre.
3. Sea consistente. Un sistema inconsistente de etiquetado le herá más dificil el trabajo a sus empleados.
Debido a que la variedad de productos que se almacenan es muy cambiante, en algunos casos se necesita mucho detalle, y en otros se necesita menos detalle (Ej. Bodega que
almacena neumáticos de vehiculo versus una que almacena componentes para computadoras)
Two methods
Serpentine
Experts suggest that you arrange your warehouse in serpentine fashion, which allows your staff to move about in a snake or "S" like fashion by weaving in and out of the aisles to
drop off or pick up the required items. In cases where you use the Interactive Wave Picking methodology, it reduces the amount of time used to obtain all those items necessary to
fullfill the requirements.
Estanteria-FS-Serpentina
Standard