Merge branch 'develop' of https://github.com/frappe/erpnext into develop
@ -5,7 +5,7 @@ import frappe
|
||||
from erpnext.hooks import regional_overrides
|
||||
from frappe.utils import getdate
|
||||
|
||||
__version__ = '10.1.14'
|
||||
__version__ = '10.1.15'
|
||||
|
||||
def get_default_company(user=None):
|
||||
'''Get default company for user'''
|
||||
|
@ -61,7 +61,10 @@ frappe.query_reports["General Ledger"] = {
|
||||
"label": __("Party Type"),
|
||||
"fieldtype": "Link",
|
||||
"options": "Party Type",
|
||||
"default": ""
|
||||
"default": "",
|
||||
on_change: function() {
|
||||
frappe.query_report_filters_by_name.party.set_value("");
|
||||
}
|
||||
},
|
||||
{
|
||||
"fieldname":"party",
|
||||
@ -82,8 +85,7 @@ frappe.query_reports["General Ledger"] = {
|
||||
frappe.query_report_filters_by_name.party_name.set_value("");
|
||||
return;
|
||||
}
|
||||
|
||||
var fieldname = frappe.scrub(party_type) + "_name";
|
||||
var fieldname = erpnext.utils.get_party_name(party_type) || "name";
|
||||
frappe.db.get_value(party_type, party, fieldname, function(value) {
|
||||
frappe.query_report_filters_by_name.party_name.set_value(value[fieldname]);
|
||||
});
|
||||
|
@ -81,7 +81,7 @@ def set_account_currency(filters):
|
||||
if gle_currency:
|
||||
account_currency = gle_currency
|
||||
else:
|
||||
account_currency = None if filters.party_type == "Employee" else \
|
||||
account_currency = None if filters.party_type in ["Employee", "Student", "Shareholder"] else \
|
||||
frappe.db.get_value(filters.party_type, filters.party, "default_currency")
|
||||
|
||||
filters["account_currency"] = account_currency or filters.company_currency
|
||||
|
@ -226,7 +226,7 @@ erpnext.buying.PurchaseOrderController = erpnext.buying.BuyingController.extend(
|
||||
me.frm.doc['supplied_items'].forEach((item, index) => {
|
||||
if (item.rm_item_code && item.main_item_code) {
|
||||
me.raw_material_data.push ({
|
||||
'name':index,
|
||||
'name':item.name,
|
||||
'item_code': item.main_item_code,
|
||||
'rm_item_code': item.rm_item_code,
|
||||
'item_name': item.rm_item_code,
|
||||
|
@ -285,7 +285,7 @@ class StatusUpdater(Document):
|
||||
ifnull((select
|
||||
ifnull(sum(if(%(target_ref_field)s > %(target_field)s, abs(%(target_field)s), abs(%(target_ref_field)s))), 0)
|
||||
/ sum(abs(%(target_ref_field)s)) * 100
|
||||
from `tab%(target_dt)s` where parent="%(name)s" having sum(abs(%(target_ref_field)s)) > 0), 0), 2)
|
||||
from `tab%(target_dt)s` where parent="%(name)s" having sum(abs(%(target_ref_field)s)) > 0), 0), 6)
|
||||
%(update_modified)s
|
||||
where name='%(name)s'""" % args)
|
||||
|
||||
@ -293,7 +293,7 @@ class StatusUpdater(Document):
|
||||
if args.get('status_field'):
|
||||
frappe.db.sql("""update `tab%(target_parent_dt)s`
|
||||
set %(status_field)s = if(%(target_parent_field)s<0.001,
|
||||
'Not %(keyword)s', if(%(target_parent_field)s>=99.99,
|
||||
'Not %(keyword)s', if(%(target_parent_field)s>=99.999999,
|
||||
'Fully %(keyword)s', 'Partly %(keyword)s'))
|
||||
where name='%(name)s'""" % args)
|
||||
|
||||
|
Before Width: | Height: | Size: 261 KiB |
BIN
erpnext/docs/assets/img/manufacturing/work-order.png
Normal file
After Width: | Height: | Size: 257 KiB |
After Width: | Height: | Size: 109 KiB |
Before Width: | Height: | Size: 85 KiB |
Before Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 353 KiB |
Before Width: | Height: | Size: 65 KiB |
Before Width: | Height: | Size: 95 KiB |
Before Width: | Height: | Size: 92 KiB |
After Width: | Height: | Size: 37 KiB |
After Width: | Height: | Size: 100 KiB |
BIN
erpnext/docs/assets/img/project/timesheet/timesheet-timer.gif
Normal file
After Width: | Height: | Size: 1.1 MiB |
After Width: | Height: | Size: 246 KiB |
After Width: | Height: | Size: 128 KiB |
After Width: | Height: | Size: 731 KiB |
After Width: | Height: | Size: 149 KiB |
After Width: | Height: | Size: 226 KiB |
After Width: | Height: | Size: 210 KiB |
@ -1,6 +1,6 @@
|
||||
introduction
|
||||
bill-of-materials
|
||||
production-order
|
||||
work-order
|
||||
workstation
|
||||
operation
|
||||
subcontracting
|
||||
|
@ -1,99 +0,0 @@
|
||||
# Fertigungsauftrag
|
||||
<span class="text-muted contributed-by">Beigetragen von CWT Connector & Wire Technology GmbH</span>
|
||||
|
||||
Der Fertigungsauftrag (auch als Arbeitsauftrag bezeichnet) ist ein Dokument welches vom Produktionsplaner als Startsignal in die Fertigung gegeben wird, um eine bestimmte Anzahl eines bestimmten Artikels zu produzieren. Der Fertigungsauftrag unterstützt Sie auch dabei den Materialbedarf (Lagerbuchung) für diesen Artikel aus der **Stückliste** zu generieren.
|
||||
|
||||
Der **Fertigungsauftrag** wird aus dem **Werkzeug zur Fertigungsplanung** generiert, basierend auf den Kundenaufträgen. Sie können weiterhin direkt einen Fertigungsauftrag erstellen über:
|
||||
|
||||
> Fertigung > Dokumente > Fertigungsauftrag > Neu
|
||||
|
||||
<img class="screenshot" alt="Fertigungsauftrag" src="{{docs_base_url}}/assets/img/manufacturing/production-order.png">
|
||||
|
||||
### Einen Fertigungsauftrag erstellen
|
||||
|
||||
* Wählen Sie den Artikel aus, der gefertigt werden soll.
|
||||
* Die Standard-Stückliste für diesen Artikel wird aus dem System gezogen. Sie können die Stückliste auch ändern.
|
||||
* Wenn die ausgewählte Stückliste auch Arbeitsgänge mit berücksichtigt, sollte das System alle Arbeitsgänge aus der Stückliste übernehmen.
|
||||
* Geben Sie das geplante Startdatum an (ein geschätztes Datum zu dem die Produktion beginnen soll).
|
||||
* Wählen Sie das Lager aus. Das Fertigungslager ist der Ort zu dem die Artikel gelangen, wenn Sie mit der Herstellung beginnen, und das Eingangslager ist der Ort, wo fertige Erzeugnisse lagern, bevor sie versandt werden.
|
||||
|
||||
> Anmerkung: Sie können einen Fertigungsauftrag abspeichern ohne ein Lager auszuwählen. Lager sind jedoch zwingend erforderlich um einen Fertigungsauftrag zu übertragen.
|
||||
|
||||
### Arbeitsplätze neu zuordnen/Dauer von Arbeitsgängen
|
||||
|
||||
* Als Voreinstellung zieht das System Arbeitsplätze und die Dauer von Arbeitsgängen aus der gewählten Stückliste.
|
||||
|
||||
<img class="screenshot" alt="Fertigungsauftrag - Arbeitsgänge" src="{{docs_base_url}}/assets/img/manufacturing/PO-operations.png">
|
||||
|
||||
* Wenn Sie den Arbeitsplatz für einen bestimmten Arbeitsgang im Fertigungsauftrag neu zuordnen möchten, können Sie das tun, bevor Sie den Fertigungsauftrag übertragen.
|
||||
|
||||
<img class="screenshot" alt="Fertigungsauftrag - Arbeitsgänge neu zuordnen" src="{{docs_base_url}}/assets/img/manufacturing/PO-reassigning-operations.png">
|
||||
|
||||
* Wählen Sie den betreffenden Arbeitsgang aus und ändern Sie seinen Arbeitsplatz.
|
||||
* Sie können auch die Dauer des Arbeitsgangs ändern.
|
||||
|
||||
### Kapazitätsplanung im Fertigungsauftrag
|
||||
|
||||
* Wenn ein Fertigungsauftrag basierend auf dem geplanten Startdatum und der Verfügbarkeit des Arbeitsplatzes übertragen wird, plant das System alle Arbeitsgänge für den Fertigungsauftrag ein (wenn der Fertigungsauftrag selbst Arbeitsgänge enthält).
|
||||
|
||||
### Material der Fertigung übergeben
|
||||
|
||||
* Wenn Sie Ihren Fertigungsauftrags übertragen haben, müssen Sie das Rohmaterial übertragen um den Fertigungsprozess zu starten.
|
||||
* Das erstellt eine Lagerbuchung mit allen Artikeln, die benötigt werden, um diesen Fertigungsauftrag abzuschliessen. Die Artikel werden an das Fertigungslager übertragen (dieser Prozess fügt basierend auf Ihren Einstellungen Unterbaugruppen mit Stückliste als EINEN Artikel hinzu oder löst die Unterpunkte auf).
|
||||
* Klicken Sie auf "Material der Fertigung übergeben".
|
||||
|
||||
<img class="screenshot" alt="Materialübertrag" src="{{docs_base_url}}/assets/img/manufacturing/PO-material-transfer.png">
|
||||
|
||||
* Geben Sie die Menge des Materials an, das übertragen werden soll.
|
||||
|
||||
<img class="screenshot" alt="Materialübertrag - Menge" src="{{docs_base_url}}/assets/img/manufacturing/PO-material-transfer-qty.png">
|
||||
|
||||
* Übertragen Sie die Lagerbuchung.
|
||||
|
||||
<img class="screenshot" alt="Lagerbuchung zum Kundenauftrag" src="{{docs_base_url}}/assets/img/manufacturing/PO-SE-for-material-transfer.png">
|
||||
|
||||
* Das an die Fertigung übertragene Material wird basierend auf der Lagerbuchung im Fertigungsauftrag aktualisiert.
|
||||
|
||||
<img class="screenshot" alt="Lagerbuchung zum Fertigungsauftrag" src="{{docs_base_url}}/assets/img/manufacturing/PO-material-transfer-updated.png">
|
||||
|
||||
### Zeitprotokoll erstellen
|
||||
|
||||
* Der Fortschritt des Fertigungsauftrages kann über ein [Zeitprotokoll]<img class="screenshot" alt="Make TL against PO" src="{{docs_base_url}}/assets/img/manufacturing/PO-operations-make-tl.png"> mitprotokolliert werden.
|
||||
* Zeitprotokolle werden zu den Arbeitsgängen des Fertigungsauftrages erstellt.
|
||||
* Vorlagen für Zeitprotokolle werden für die eingeplanten Arbeitsgänge zum Zeitpunkt des Übertragens des Fertigungsauftrages erstellt.
|
||||
* Um weitere Zeitprotokolle zu einem Arbeitsgang zu erstellen, wählen Sie "Zeitprotokoll erstellen" im betreffenden Arbeitsgang aus.
|
||||
|
||||
<img class="screenshot" alt="Zeitprotokoll zum Fertigungsauftrag erstellen" src="{{docs_base_url}}/assets/img/manufacturing/PO-operations-make-tl.png">
|
||||
|
||||
### Fertige Erzeugnisse aktualisieren
|
||||
|
||||
* Wenn Sie den Fertigungsauftrag fertiggestellt haben, müssen Sie die Fertigen Erzeugnisse aktualisieren.
|
||||
* Das erstellt eine Lagerbuchung, welche alle Unterartikel vom Fertigungslager abzieht und dem Lager "Fertige Erzeugnisse" gutschreibt.
|
||||
* Klicken Sie auf "Fertige Erzeugnisse aktualisieren".
|
||||
|
||||
<img class="screenshot" alt="Fertigerzeugnisse aktualiseren" src="{{docs_base_url}}/assets/img/manufacturing/PO-FG-update.png">
|
||||
|
||||
* Geben Sie die Menge des übertragenen Materials an.
|
||||
|
||||
<img class="screenshot" alt="Menge der Fertigerzeugnisse aktualisieren" src="{{docs_base_url}}/assets/img/manufacturing/PO-FG-update-qty.png">
|
||||
|
||||
>Tipp: Sie können einen Fertigungsauftrag auch teilweise fertig stellen, indem Sie über eine Lagerbuchung das Lager Fertige Erzeugnisse aktualisieren.
|
||||
|
||||
### Einen Fertigungsauftrag anhalten
|
||||
|
||||
* Wenn Sie einen Fertigungsauftrag anhalten, wird sein Status auf "Angehalten" gesetzt, mit der Folge, dass alle Herstellungsprozesse für diesen Fertigungsauftrag eingestellt werden.
|
||||
* Um den Fertigungsauftrag anzuhalten klicken Sie auf die Schaltfläche "Anhalten".
|
||||
|
||||
1. Wenn Sie den Fertigungsauftrag übertragen, reserviert das System für jeden Arbeitsgang des Fertigungsauftrags in Serie gemäß dem geplanten Startdatum basierend auf der Verfügbarkeit des Arbeitsplatzes ein Zeitfenster. Die Verfügbarkeit des Arbeitsplatzes hängt von den Arbeitszeiten des Arbeitsplatzes und der Urlaubsliste ab und davon, ob ein anderer Arbeitsgang des Fertigungsauftrages in diesem Zeitfenster eingeplant wurde. Sie können in den Fertigungseinstellungen die Anzahl der Tage angeben, in denen das System versucht den Arbeitsgang einzuplanen. Standardmäßig ist dieser Wert auf 30 Tage eingestellt. Wenn der Arbeitsgang über das verfügbare Zeitfenster hinaus Zeit benötigt, fragt Sie das System, ob der Arbeitsgang pausieren soll. Wenn das System die Terminplanung erstellen konnte, legt es Zeitprotokolle an und speichert sie. Sie können diese verändern und später übertragen.
|
||||
2. Sie können außerdem zusätzliche Zeitprotokolle für einen Arbeitsgang erstellen. Hierzu wählen Sie den betreffenden Arbeitsgang aus und klicken Sie auf "Zeitprotokoll erstellen".
|
||||
3. Rohmaterial übertragen: Dieser Schritt erstellt eine Lagerbuchung mit allen Artikeln, die benötigt werden, um dem Fertigungsauftrag abzuschliessen, und dem Fertigungslager hinzugefügt werden müssen (Unterartikel werden entweder als EIN Artikel mit Stücklister ODER in aufgelöster Form gemäß Ihren Einstellungen hinzugefügt).
|
||||
4. Fertigerzeugnisse aktualisieren: Dieser Schritt erstellt eine Lagerbuchung, welche alle Unterartikel vom Fertigungslager abzieht und dem Lager Fertige Erzeugnisse hinzufügt.
|
||||
5. Um die zum Fertigungsauftrag erstellten Zeitprotokolle anzusehen, klicken Sie auf "Zeitprotokolle anzeigen".
|
||||
|
||||
<img class="screenshot" alt="Fertigungsauftrag anhalten" src="{{docs_base_url}}/assets/img/manufacturing/PO-stop.png">
|
||||
|
||||
* Sie können auch einen angehaltenen Fertigungsauftrag wieder weiter laufen lassen.
|
||||
|
||||
> Anmerkung: Um einen Fertigungsauftrag zu einem Artikel zu erstellen müssen Sie auf dem Artikelformular das Feld "Fertigungsauftrag zulassen" ankreuzen.
|
||||
|
||||
{next}
|
99
erpnext/docs/user/manual/de/manufacturing/work-order.md
Normal file
@ -0,0 +1,99 @@
|
||||
# Arbeitsauftrag
|
||||
<span class="text-muted contributed-by">Beigetragen von CWT Connector & Wire Technology GmbH</span>
|
||||
|
||||
Der Arbeitsauftrag (auch als Arbeitsauftrag bezeichnet) ist ein Dokument welches vom Produktionsplaner als Startsignal in die Fertigung gegeben wird, um eine bestimmte Anzahl eines bestimmten Artikels zu produzieren. Der Arbeitsauftrag unterstützt Sie auch dabei den Materialbedarf (Lagerbuchung) für diesen Artikel aus der **Stückliste** zu generieren.
|
||||
|
||||
Der **Arbeitsauftrag** wird aus dem **Werkzeug zur Fertigungsplanung** generiert, basierend auf den Kundenaufträgen. Sie können weiterhin direkt einen Arbeitsauftrag erstellen über:
|
||||
|
||||
> Fertigung > Dokumente > Arbeitsauftrag > Neu
|
||||
|
||||
<img class="screenshot" alt="Arbeitsauftrag" src="{{docs_base_url}}/assets/img/manufacturing/work-order.png">
|
||||
|
||||
### Einen Arbeitsauftrag erstellen
|
||||
|
||||
* Wählen Sie den Artikel aus, der gefertigt werden soll.
|
||||
* Die Standard-Stückliste für diesen Artikel wird aus dem System gezogen. Sie können die Stückliste auch ändern.
|
||||
* Wenn die ausgewählte Stückliste auch Arbeitsgänge mit berücksichtigt, sollte das System alle Arbeitsgänge aus der Stückliste übernehmen.
|
||||
* Geben Sie das geplante Startdatum an (ein geschätztes Datum zu dem die Produktion beginnen soll).
|
||||
* Wählen Sie das Lager aus. Das Fertigungslager ist der Ort zu dem die Artikel gelangen, wenn Sie mit der Herstellung beginnen, und das Eingangslager ist der Ort, wo fertige Erzeugnisse lagern, bevor sie versandt werden.
|
||||
|
||||
> Anmerkung: Sie können einen Arbeitsauftrag abspeichern ohne ein Lager auszuwählen. Lager sind jedoch zwingend erforderlich um einen Arbeitsauftrag zu übertragen.
|
||||
|
||||
### Arbeitsplätze neu zuordnen/Dauer von Arbeitsgängen
|
||||
|
||||
* Als Voreinstellung zieht das System Arbeitsplätze und die Dauer von Arbeitsgängen aus der gewählten Stückliste.
|
||||
|
||||
<img class="screenshot" alt="Arbeitsauftrag - Arbeitsgänge" src="{{docs_base_url}}/assets/img/manufacturing/PO-operations.png">
|
||||
|
||||
* Wenn Sie den Arbeitsplatz für einen bestimmten Arbeitsgang im Arbeitsauftrag neu zuordnen möchten, können Sie das tun, bevor Sie den Arbeitsauftrag übertragen.
|
||||
|
||||
<img class="screenshot" alt="Arbeitsauftrag - Arbeitsgänge neu zuordnen" src="{{docs_base_url}}/assets/img/manufacturing/PO-reassigning-operations.png">
|
||||
|
||||
* Wählen Sie den betreffenden Arbeitsgang aus und ändern Sie seinen Arbeitsplatz.
|
||||
* Sie können auch die Dauer des Arbeitsgangs ändern.
|
||||
|
||||
### Kapazitätsplanung im Arbeitsauftrag
|
||||
|
||||
* Wenn ein Arbeitsauftrag basierend auf dem geplanten Startdatum und der Verfügbarkeit des Arbeitsplatzes übertragen wird, plant das System alle Arbeitsgänge für den Arbeitsauftrag ein (wenn der Arbeitsauftrag selbst Arbeitsgänge enthält).
|
||||
|
||||
### Material der Fertigung übergeben
|
||||
|
||||
* Wenn Sie Ihren Arbeitsauftrags übertragen haben, müssen Sie das Rohmaterial übertragen um den Fertigungsprozess zu starten.
|
||||
* Das erstellt eine Lagerbuchung mit allen Artikeln, die benötigt werden, um diesen Arbeitsauftrag abzuschliessen. Die Artikel werden an das Fertigungslager übertragen (dieser Prozess fügt basierend auf Ihren Einstellungen Unterbaugruppen mit Stückliste als EINEN Artikel hinzu oder löst die Unterpunkte auf).
|
||||
* Klicken Sie auf "Material der Fertigung übergeben".
|
||||
|
||||
<img class="screenshot" alt="Materialübertrag" src="{{docs_base_url}}/assets/img/manufacturing/PO-material-transfer.png">
|
||||
|
||||
* Geben Sie die Menge des Materials an, das übertragen werden soll.
|
||||
|
||||
<img class="screenshot" alt="Materialübertrag - Menge" src="{{docs_base_url}}/assets/img/manufacturing/PO-material-transfer-qty.png">
|
||||
|
||||
* Übertragen Sie die Lagerbuchung.
|
||||
|
||||
<img class="screenshot" alt="Lagerbuchung zum Kundenauftrag" src="{{docs_base_url}}/assets/img/manufacturing/PO-SE-for-material-transfer.png">
|
||||
|
||||
* Das an die Fertigung übertragene Material wird basierend auf der Lagerbuchung im Arbeitsauftrag aktualisiert.
|
||||
|
||||
<img class="screenshot" alt="Lagerbuchung zum Arbeitsauftrag" src="{{docs_base_url}}/assets/img/manufacturing/PO-material-transfer-updated.png">
|
||||
|
||||
### Zeitprotokoll erstellen
|
||||
|
||||
* Der Fortschritt des Arbeitsauftrages kann über ein [Zeitprotokoll]<img class="screenshot" alt="Make TL against PO" src="{{docs_base_url}}/assets/img/manufacturing/PO-operations-make-tl.png"> mitprotokolliert werden.
|
||||
* Zeitprotokolle werden zu den Arbeitsgängen des Arbeitsauftrages erstellt.
|
||||
* Vorlagen für Zeitprotokolle werden für die eingeplanten Arbeitsgänge zum Zeitpunkt des Übertragens des Arbeitsauftrages erstellt.
|
||||
* Um weitere Zeitprotokolle zu einem Arbeitsgang zu erstellen, wählen Sie "Zeitprotokoll erstellen" im betreffenden Arbeitsgang aus.
|
||||
|
||||
<img class="screenshot" alt="Zeitprotokoll zum Arbeitsauftrag erstellen" src="{{docs_base_url}}/assets/img/manufacturing/PO-operations-make-tl.png">
|
||||
|
||||
### Fertige Erzeugnisse aktualisieren
|
||||
|
||||
* Wenn Sie den Arbeitsauftrag fertiggestellt haben, müssen Sie die Fertigen Erzeugnisse aktualisieren.
|
||||
* Das erstellt eine Lagerbuchung, welche alle Unterartikel vom Fertigungslager abzieht und dem Lager "Fertige Erzeugnisse" gutschreibt.
|
||||
* Klicken Sie auf "Fertige Erzeugnisse aktualisieren".
|
||||
|
||||
<img class="screenshot" alt="Fertigerzeugnisse aktualiseren" src="{{docs_base_url}}/assets/img/manufacturing/PO-FG-update.png">
|
||||
|
||||
* Geben Sie die Menge des übertragenen Materials an.
|
||||
|
||||
<img class="screenshot" alt="Menge der Fertigerzeugnisse aktualisieren" src="{{docs_base_url}}/assets/img/manufacturing/PO-FG-update-qty.png">
|
||||
|
||||
>Tipp: Sie können einen Arbeitsauftrag auch teilweise fertig stellen, indem Sie über eine Lagerbuchung das Lager Fertige Erzeugnisse aktualisieren.
|
||||
|
||||
### Einen Arbeitsauftrag anhalten
|
||||
|
||||
* Wenn Sie einen Arbeitsauftrag anhalten, wird sein Status auf "Angehalten" gesetzt, mit der Folge, dass alle Herstellungsprozesse für diesen Arbeitsauftrag eingestellt werden.
|
||||
* Um den Arbeitsauftrag anzuhalten klicken Sie auf die Schaltfläche "Anhalten".
|
||||
|
||||
1. Wenn Sie den Arbeitsauftrag übertragen, reserviert das System für jeden Arbeitsgang des Arbeitsauftrags in Serie gemäß dem geplanten Startdatum basierend auf der Verfügbarkeit des Arbeitsplatzes ein Zeitfenster. Die Verfügbarkeit des Arbeitsplatzes hängt von den Arbeitszeiten des Arbeitsplatzes und der Urlaubsliste ab und davon, ob ein anderer Arbeitsgang des Arbeitsauftrages in diesem Zeitfenster eingeplant wurde. Sie können in den Fertigungseinstellungen die Anzahl der Tage angeben, in denen das System versucht den Arbeitsgang einzuplanen. Standardmäßig ist dieser Wert auf 30 Tage eingestellt. Wenn der Arbeitsgang über das verfügbare Zeitfenster hinaus Zeit benötigt, fragt Sie das System, ob der Arbeitsgang pausieren soll. Wenn das System die Terminplanung erstellen konnte, legt es Zeitprotokolle an und speichert sie. Sie können diese verändern und später übertragen.
|
||||
2. Sie können außerdem zusätzliche Zeitprotokolle für einen Arbeitsgang erstellen. Hierzu wählen Sie den betreffenden Arbeitsgang aus und klicken Sie auf "Zeitprotokoll erstellen".
|
||||
3. Rohmaterial übertragen: Dieser Schritt erstellt eine Lagerbuchung mit allen Artikeln, die benötigt werden, um dem Arbeitsauftrag abzuschliessen, und dem Fertigungslager hinzugefügt werden müssen (Unterartikel werden entweder als EIN Artikel mit Stücklister ODER in aufgelöster Form gemäß Ihren Einstellungen hinzugefügt).
|
||||
4. Fertigerzeugnisse aktualisieren: Dieser Schritt erstellt eine Lagerbuchung, welche alle Unterartikel vom Fertigungslager abzieht und dem Lager Fertige Erzeugnisse hinzufügt.
|
||||
5. Um die zum Arbeitsauftrag erstellten Zeitprotokolle anzusehen, klicken Sie auf "Zeitprotokolle anzeigen".
|
||||
|
||||
<img class="screenshot" alt="Arbeitsauftrag anhalten" src="{{docs_base_url}}/assets/img/manufacturing/PO-stop.png">
|
||||
|
||||
* Sie können auch einen angehaltenen Arbeitsauftrag wieder weiter laufen lassen.
|
||||
|
||||
> Anmerkung: Um einen Arbeitsauftrag zu einem Artikel zu erstellen müssen Sie auf dem Artikelformular das Feld "Arbeitsauftrag zulassen" ankreuzen.
|
||||
|
||||
{next}
|
@ -22,7 +22,7 @@ By **Doctype** mentioned in the Option field, we mean parent Doctype. So, just l
|
||||
---- Quotation<br>
|
||||
---- Sales Invoice<br>
|
||||
---- Employee<br>
|
||||
---- Production Order<br>
|
||||
---- Work Order<br>
|
||||
.. and so on.
|
||||
|
||||
So linking this field with parent Doctype will list all the Doctype records.
|
||||
|
@ -1,7 +1,7 @@
|
||||
# Custom Doctype
|
||||
|
||||
DocType or a Document Type is a tool to insert form in ERPNext. The forms like Sales Order,
|
||||
Sales Invoices, Production Order are added as Doctype in the backend. Let's assume we are
|
||||
Sales Invoices, Work Order are added as Doctype in the backend. Let's assume we are
|
||||
creating a Custom Doctype for a Book.
|
||||
|
||||
Custom Doctype allows you to insert custom forms in ERPNext as per your requirement.
|
||||
|
@ -164,7 +164,7 @@ Customer's request to price an item or service.
|
||||
#### Sales Order
|
||||
|
||||
A note confirming the terms of delivery and price of an Item (product or
|
||||
service) by the Customer. Deliveries, Production Orders and Invoices are made
|
||||
service) by the Customer. Deliveries, Work Orders and Invoices are made
|
||||
on basis of Sales Orders.
|
||||
|
||||
> Selling > Sales Order
|
||||
@ -360,16 +360,16 @@ direct cost of the product.
|
||||
|
||||
> Manufacturing > Workstation
|
||||
|
||||
#### Production Order
|
||||
#### Work Order
|
||||
|
||||
A document signaling production (manufacture) of a particular Item with
|
||||
specified quantities.
|
||||
|
||||
> Manufacturing > Production Order
|
||||
> Manufacturing > Work Order
|
||||
|
||||
#### Production Planning Tool
|
||||
|
||||
A tool for automatic creation of Production Orders and Purchase Requests based
|
||||
A tool for automatic creation of Work Orders and Purchase Requests based
|
||||
on Open Sales Orders in a given period.
|
||||
|
||||
> Manufacturing > Production Planning Tool
|
||||
|
@ -14,7 +14,7 @@ implementation should happen in two phases.
|
||||
* Create Customer Groups, Item Groups, Warehouses, Supplier Groups, so that you can classify your Items.
|
||||
* Complete a standard sales cycle - Lead > Opportunity > Quotation > Sales Order > Delivery Note > Sales Invoice > Payment (Journal Entry)
|
||||
* Complete a standard purchase cycle - Material Request > Purchase Order > Purchase Receipt > Payment (Journal Entry).
|
||||
* Complete a manufacturing cycle (if applicable) - BOM > Production Planning Tool > Production Order > Material Issue
|
||||
* Complete a manufacturing cycle (if applicable) - BOM > Production Planning Tool > Work Order > Material Issue
|
||||
* Replicate a real life scenario into the system.
|
||||
* Create custom fields, print formats etc as required.
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Capacity Planning based on Production Order
|
||||
# Capacity Planning based on Work Order
|
||||
|
||||
Capacity Planning functionality helps you in tracking production jobs allocated on each Workstation.
|
||||
|
||||
@ -24,19 +24,19 @@ Follow are the steps to use Capacity Planning Feature in your ERPNext account.
|
||||
|
||||
In a BOM, with the list of raw material needed, for manufacturing, you can also list operation and workstations through which those raw materials will be processed.
|
||||
|
||||
4. Production Order:
|
||||
4. Work Order:
|
||||
|
||||
On submission of Production Order, Timesheet for Operations. This helps you allocate production jobs on each Workstation, as well as you can update actual time taken for each Operation.
|
||||
On submission of Work Order, Timesheet for Operations. This helps you allocate production jobs on each Workstation, as well as you can update actual time taken for each Operation.
|
||||
|
||||
### Error due to Capacity Planning
|
||||
|
||||
**Question:** On Submission of Production Order, we are getting following error message.
|
||||
**Question:** On Submission of Work Order, we are getting following error message.
|
||||
|
||||
<img alt="Role Desk Permission" class="screenshot" src="{{docs_base_url}}/assets/img/articles/capacity-2.png">
|
||||
|
||||
**Answer: **Please check if you have updated Working Hours in the Workstation master? If not, then please update it and then try to submit Production Order.
|
||||
**Answer: **Please check if you have updated Working Hours in the Workstation master? If not, then please update it and then try to submit Work Order.
|
||||
|
||||
On submission of Production Order, Operations (as added in the BOM) are allocated on the workstation. Each operation should start and end on the same day. If a system is not able to schedule that operation in a day, then system request you to divide that Project, so that system can allocate smaller operations in a day.
|
||||
On submission of Work Order, Operations (as added in the BOM) are allocated on the workstation. Each operation should start and end on the same day. If a system is not able to schedule that operation in a day, then system request you to divide that Project, so that system can allocate smaller operations in a day.
|
||||
|
||||
If you have update working hours in the Workstation, but still getting this issue, that because one of your operation is taking too long, and cannot be completed in a day. Please divide that operation into smaller operations, so that it can be allocated on Workstation and completed on the same day.
|
||||
|
||||
|
@ -6,4 +6,4 @@ Production Planning Tool has field called "Use Multi-Level BOM", checking which
|
||||
|
||||
<img src="{{docs_base_path}}/assets/img/articles/$SGrab_203.png">
|
||||
|
||||
`Use Multi-Level BOM` field is also there in the Production Order and Stock Entry. If checked, raw-materials of sub-assembly item will be consumed in the manufacturing process, and not the sub-assembly item itself.
|
||||
`Use Multi-Level BOM` field is also there in the Work Order and Stock Entry. If checked, raw-materials of sub-assembly item will be consumed in the manufacturing process, and not the sub-assembly item itself.
|
||||
|
@ -24,7 +24,7 @@ To make a new BOM:
|
||||
|
||||
* Select the Item for which you want to make the BOM.
|
||||
* Add the operations that you have to go through to make that particular Item in the “Operations” table. For each operation, you will be asked to enter a Workstation. You must create new Workstations as and when necessary.
|
||||
* Workstations are defined only for product costing and Production Order Operations scheduling purposes not inventory.
|
||||
* Workstations are defined only for product costing and Work Order Operations scheduling purposes not inventory.
|
||||
* Inventory is tracked in Warehouses not Workstations.
|
||||
|
||||
###Costing of a BOM
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
The Manufacturing module in ERPNext helps you to maintain multi-level Bill of
|
||||
Materials (BOMs) for your Items.
|
||||
It helps in product costing, production planning, creating production orders for your manufacturing shop floors and
|
||||
It helps in product costing, production planning, creating work orders for your manufacturing shop floors and
|
||||
planning inventory by getting your material requirement via BOMs (also called Material Requirements Planning MRP).
|
||||
|
||||
### Topics
|
||||
|
@ -1,6 +1,6 @@
|
||||
introduction
|
||||
bill-of-materials
|
||||
production-order
|
||||
work-order
|
||||
workstation
|
||||
operation
|
||||
subcontracting
|
||||
|
@ -21,6 +21,6 @@ with the Projects module..
|
||||
You can track work-in-progress by creating work-in-progress Warehouses.
|
||||
|
||||
ERPNext will help you track material movement by automatically creating Stock
|
||||
Entries from your Production Orders by building from Bill of Materials.
|
||||
Entries from your Work Orders by building from Bill of Materials.
|
||||
|
||||
{next}
|
@ -20,7 +20,7 @@ To use the Production Plan, go to:
|
||||
|
||||
<img class="screenshot" alt="Sales Orders" src="/docs/assets/img/manufacturing/sales_orders.png">
|
||||
|
||||
* Click on Get Items for Production Order to fetch the items from the above sales orders.
|
||||
* Click on Get Items for Work Order to fetch the items from the above sales orders.
|
||||
|
||||
<img class="screenshot" alt="Sales Order Item" src="/docs/assets/img/manufacturing/sales_order_items.png">
|
||||
* Include Exploded Items :- To include subassembly items of raw materials in the production.
|
||||
@ -35,7 +35,7 @@ To use the Production Plan, go to:
|
||||
|
||||
<img class="screenshot" alt="Material Requests" src="/docs/assets/img/manufacturing/material_requests.png">
|
||||
|
||||
* Click on Get Items for Production Order to fetch the items from the above material requests.
|
||||
* Click on Get Items for Work Order to fetch the items from the above material requests.
|
||||
|
||||
<img class="screenshot" alt="Material Request Item" src="/docs/assets/img/manufacturing/material_request_items.png">
|
||||
|
||||
@ -48,6 +48,6 @@ To use the Production Plan, go to:
|
||||
* Include Subcontracted Items :- To add subcontracted item's raw materials if include exploded items is disabled
|
||||
* Ignore Existing Ordered Quantity :- If enabled then system will not check the projected quantity to make material request.
|
||||
|
||||
# Options To Make Production Order and Material Request
|
||||
# Options To Make Work Order and Material Request
|
||||
|
||||
<img class="screenshot" alt="Make PO or MR" src="/docs/assets/img/manufacturing/make_po_mr.png">
|
||||
|
@ -8,7 +8,7 @@ Manufacturing Settings can be found at:
|
||||
|
||||
####Disable Capacity Planning and Time Tracking
|
||||
|
||||
As per Capacity Planning feature, when Production Order is created for an item, for each Operation, Time Log is created. Based on actual Operation Time, Time Logs is updated. This also provides total Operations Cost against Production Order.
|
||||
As per Capacity Planning feature, when Work Order is created for an item, for each Operation, Time Log is created. Based on actual Operation Time, Time Logs is updated. This also provides total Operations Cost against Work Order.
|
||||
|
||||
If you don't track actual operations time, and want to disable creation of Time Log based on Operations, you should check "Disable Capacity Planning and Time Tracking" in the Manufacturing Settings.
|
||||
|
||||
@ -28,11 +28,11 @@ Holiday of a company can be recorded in the [Holiday List](/docs/user/manual/en/
|
||||
|
||||
####Over Production Allowance Percentage
|
||||
|
||||
While making Production Orders against a Sales Order, the system will only allow production item quantity to be lesser than or equal to the quantity in the Sales Order. In case you wish to allow Production Orders to be raised with greater quantity, you can mention the Over Production Allowance Percentage here.
|
||||
While making Work Orders against a Sales Order, the system will only allow production item quantity to be lesser than or equal to the quantity in the Sales Order. In case you wish to allow Work Orders to be raised with greater quantity, you can mention the Over Production Allowance Percentage here.
|
||||
|
||||
####Back-flush Raw Materials Based On
|
||||
|
||||
When creating Manufacture Entry, raw-material items are back-flush based on BOM of production item. If you want raw-material items to be back-flushed based on Material Transfer entry made against that Production Order instead, then you should set Back-flush Raw Materials Based On "Material Transferred for Manufacture".
|
||||
When creating Manufacture Entry, raw-material items are back-flush based on BOM of production item. If you want raw-material items to be back-flushed based on Material Transfer entry made against that Work Order instead, then you should set Back-flush Raw Materials Based On "Material Transferred for Manufacture".
|
||||
|
||||
<img class="screenshot" alt="Manufacturing Settings" src="{{docs_base_url}}/assets/img/articles/manufacturing-settings-4.png">
|
||||
|
||||
@ -46,8 +46,8 @@ Time gap between two production operations.
|
||||
|
||||
####Default Work In Progress Warehouse
|
||||
|
||||
This Warehouse will be auto-updated in the Work In Progress Warehouse field of Production Order.
|
||||
This Warehouse will be auto-updated in the Work In Progress Warehouse field of Work Order.
|
||||
|
||||
####Default Finished Goods Warehouse
|
||||
|
||||
This Warehouse will be auto-updated in the Work In Progress Warehouse field of Production Order.
|
||||
This Warehouse will be auto-updated in the Work In Progress Warehouse field of Work Order.
|
||||
|
@ -11,7 +11,7 @@ period (usually a week or a month).
|
||||
This list of Items can be generated from the open Sales Orders or pending Material Requests that can be Manufactured in the system
|
||||
and will generate:
|
||||
|
||||
* Production Orders for each Item.
|
||||
* Work Orders for each Item.
|
||||
* Purchase Requests for Items whose Projected Quantity is likely to fall below zero.
|
||||
|
||||
To use the Production Planning Tool, go to:
|
||||
@ -43,7 +43,7 @@ To use the Production Planning Tool, go to:
|
||||
|
||||
<img class="screenshot" alt="Production Planing Tool" src="{{docs_base_url}}/assets/img/manufacturing/ppt-get-item.png">
|
||||
|
||||
#### Step 4: Create Production Orders
|
||||
#### Step 4: Create Work Orders
|
||||
|
||||
<img class="screenshot" alt="Production Planing Tool" src="{{docs_base_url}}/assets/img/manufacturing/ppt-create-production-order.png">
|
||||
|
||||
@ -69,7 +69,7 @@ You can always edit the Item list and increase / reduce quantities to plan
|
||||
your production.
|
||||
|
||||
> Note: How do you change a Production Plan? The output of the Production
|
||||
Planning Tool is the Production Order. Once your orders are created, you can
|
||||
change them by amending the Production Orders.
|
||||
Planning Tool is the Work Order. Once your orders are created, you can
|
||||
change them by amending the Work Orders.
|
||||
|
||||
{next}
|
||||
|
@ -1,26 +1,26 @@
|
||||
# Production Order
|
||||
# Work Order
|
||||
|
||||
<img class="screenshot" alt="Production Order" src="{{docs_base_url}}/assets/img/manufacturing/manufacturing-flow.png">
|
||||
A Production Order (also known as a Work Order) is a document that is given to
|
||||
<img class="screenshot" alt="Work Order" src="{{docs_base_url}}/assets/img/manufacturing/manufacturing-flow.png">
|
||||
A Work Order is a document that is given to
|
||||
the manufacturing shop floor by the Production Planner as a signal to produce
|
||||
a certain quantity of a certain Item. The Production Order also helps to generate
|
||||
a certain quantity of a certain Item. The Work Order also helps to generate
|
||||
the material requirements (Stock Entry) for the Item to be produced from its
|
||||
**Bill of Materials**.
|
||||
|
||||
The **Production Order** is generated from the **Production Planning
|
||||
Tool** based on Sales Orders. You can also create a direct Production Order
|
||||
The **Work Order** is generated from the **Production Planning
|
||||
Tool** based on Sales Orders. You can also create a direct Work Order
|
||||
by:
|
||||
|
||||
> Manufacturing > Documents > Production Order > New
|
||||
> Manufacturing > Documents > Work Order > New
|
||||
|
||||
<img class="screenshot" alt="Production Order" src="{{docs_base_url}}/assets/img/manufacturing/production-order.png">
|
||||
<img class="screenshot" alt="Work Order" src="{{docs_base_url}}/assets/img/manufacturing/work-order.png">
|
||||
|
||||
<div class-"embed-container">
|
||||
<iframe src="https://www.youtube.com/embed/yv_KAIlHrO4?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen>
|
||||
</iframe>
|
||||
</div>
|
||||
|
||||
### Creating Production Orders
|
||||
### Creating Work Orders
|
||||
|
||||
* Select the Item to be produced.
|
||||
* The default BOM for that item will be fetched by the system. You can also change BOM.
|
||||
@ -28,36 +28,36 @@ by:
|
||||
* If the selected BOM has operartion mentioned in it, the system shall fetch all operations from BOM.
|
||||
* Mention the Planned Start Date (an Estimated Date at which you want the Production to begin.)
|
||||
* Select Warehouses:
|
||||
* Source Warehouses: The warehouse where you store your raw materials. Each required item can have separate source warehouse. Group warehouse also can be selected as source warehouse. On submission of Production Order, the raw mateirals will be reserved in these warehouses for production usage.
|
||||
* Source Warehouses: The warehouse where you store your raw materials. Each required item can have separate source warehouse. Group warehouse also can be selected as source warehouse. On submission of Work Order, the raw mateirals will be reserved in these warehouses for production usage.
|
||||
* Work-in-Progress Warehouse: The warehouse where your Items will be transferred when you begin production. Group Warehouse can also be selected as Work-in-Progress warehouse.
|
||||
* Target Warehouse: The warehouse where you store finished Items before they are shipped.
|
||||
* Scrap Warehouse: Scrap Items will be stored in this warehouse.
|
||||
* Required Items: All the required items (raw materials) will be fetched from BOM and populated in this table. Here you can also change the default source warehouse for any item. And during the production, you can track transferred raw materials from this table.
|
||||
|
||||
> Note : You can save a Production Order without selecting the warehouses, but warehouses are mandatory for submitting a Production Order
|
||||
> Note : You can save a Work Order without selecting the warehouses, but warehouses are mandatory for submitting a Work Order
|
||||
|
||||
###Reassigning Workstation/Duration for Operations
|
||||
|
||||
* By default the system fetchs workstation and duration for Production Order Operations from the selected BOM.
|
||||
* By default the system fetchs workstation and duration for Work Order Operations from the selected BOM.
|
||||
|
||||
<img class="screenshot" alt="PO Opeartions" src="{{docs_base_url}}/assets/img/manufacturing/PO-operations.png">
|
||||
|
||||
* If you wish to reassign the workstation for a particular opeeration in the Production Order, you can do so before submitting the Production Order.
|
||||
* If you wish to reassign the workstation for a particular opeeration in the Work Order, you can do so before submitting the Work Order.
|
||||
|
||||
<img class="screenshot" alt="PO reassigning Operations" src="{{docs_base_url}}/assets/img/manufacturing/PO-reassigning-operations.png">
|
||||
|
||||
* Select the respective operation, and change its workstation.
|
||||
* You can also change the Operating Time for that operation
|
||||
|
||||
### Capacity Planning in Production Order
|
||||
### Capacity Planning in Work Order
|
||||
|
||||
* When a Production Order is submitted, based on the Planned Start Date and the availability of the workstations, system schedules all operations for the Production Order (if Production Order has operations specified).
|
||||
* When a Work Order is submitted, based on the Planned Start Date and the availability of the workstations, system schedules all operations for the Work Order (if Work Order has operations specified).
|
||||
* Drafts of Time Logs are also created based on the scheduled operations.
|
||||
|
||||
### Transfering Materials for Manufacturing
|
||||
|
||||
* Once you have submitted your Production Order, you need to Transfer the Raw Materials to initiate the Manufacturing Process.
|
||||
* This will create a Stock Entry with all the Items required to complete this Production Order to be added to the WIP Warehouse. (this will add sub-Items with BOM as one Item or explode their children based on your setting above).
|
||||
* Once you have submitted your Work Order, you need to Transfer the Raw Materials to initiate the Manufacturing Process.
|
||||
* This will create a Stock Entry with all the Items required to complete this Work Order to be added to the WIP Warehouse. (this will add sub-Items with BOM as one Item or explode their children based on your setting above).
|
||||
|
||||
* Click on 'Start'.
|
||||
|
||||
@ -71,29 +71,29 @@ by:
|
||||
|
||||
<img class="screenshot" alt="Stock Entry for PO" src="{{docs_base_url}}/assets/img/manufacturing/PO-SE-for-material-transfer.png">
|
||||
|
||||
* Material Transfered for Manufacturing will be updated in the Production Order based on the Stock Entry.
|
||||
* Material Transfered for Manufacturing will be updated in the Work Order based on the Stock Entry.
|
||||
|
||||
<img class="screenshot" alt="Stock Entry for PO" src="{{docs_base_url}}/assets/img/manufacturing/PO-material-transfer-updated.png">
|
||||
|
||||
#### Material Transfer through Stock Entry
|
||||
Use cases for this option are:
|
||||
* If material transfer is done in bulk and/or is not required to be tracked against a particular Production Order
|
||||
* If material transfer is done in bulk and/or is not required to be tracked against a particular Work Order
|
||||
* If the responsibility for Material Transfer and Production Entry lies with two separate users
|
||||
|
||||
If this is the case, you can select the Skip Material Transfer check box, which will allow you to make the “Manufacture” Stock Entry directly by clicking on the ‘Finish’ button.
|
||||
|
||||
### Making Time Logs
|
||||
|
||||
* Progress in the Production Order can be tracked using [Timesheet](/docs/user/manual/en/projects/timesheet/timesheet-against-production-order.html)
|
||||
* Timesheet's time slots are created against Production Order Operations.
|
||||
* Drafts of Timesheet are created based on the scheduled operations when an Production Order is Submitted.
|
||||
* Progress in the Work Order can be tracked using [Timesheet](/docs/user/manual/en/projects/timesheet/timesheet-against-work-order.html)
|
||||
* Timesheet's time slots are created against Work Order Operations.
|
||||
* Drafts of Timesheet are created based on the scheduled operations when an Work Order is Submitted.
|
||||
* To create more Timesheets against an operation click 'Make Timesheet' button.
|
||||
|
||||
<img class="screenshot" alt="Make timesheet against PO" src="{{docs_base_url}}/assets/img/manufacturing/PO-operations-make-ts.png">
|
||||
|
||||
###Updating Finished Goods
|
||||
|
||||
* Once you are done with the Production Order you need to update the Finished Goods.
|
||||
* Once you are done with the Work Order you need to update the Finished Goods.
|
||||
* This will create a Stock Entry that will deduct all the sub-Items from the WIP Warehouse and add them to the Finished Goods Warehouse.
|
||||
* Click on 'Finish'.
|
||||
|
||||
@ -103,23 +103,23 @@ If this is the case, you can select the Skip Material Transfer check box, which
|
||||
|
||||
<img class="screenshot" alt="Update Finished Goods Qty" src="{{docs_base_url}}/assets/img/manufacturing/PO-FG-update-qty.png">
|
||||
|
||||
> Tip : You can also partially complete a Production Order by updating the Finished Goods stock creating a Stock Entry.
|
||||
> Tip : You can also partially complete a Work Order by updating the Finished Goods stock creating a Stock Entry.
|
||||
|
||||
### Stopping a Production Order
|
||||
### Stopping a Work Order
|
||||
|
||||
* When you stop a Production Order its status is changed to Stop indicating that all production process against that Production Order is to be ceased.
|
||||
* To stop the Production Order click on the 'Stop' Button
|
||||
* When you stop a Work Order its status is changed to Stop indicating that all production process against that Work Order is to be ceased.
|
||||
* To stop the Work Order click on the 'Stop' Button
|
||||
|
||||
1. On Submitting the Production Order, the system will reserve a slot for each of the Production Order Operations serially after the planned start date based on the workstation availability. The Workstation availability depends on the Workstation timings, holiday list and if some other Production Order Operation was scheduled in that slot. You can mention the number of days for the system to try scheduling the operations in the Manufacturing Settings. This is set to 30 Days by default. If the operation requires time exceeding the available slot, system shall ask you to break the operations. Once the scheduling is done system shall create Time Logs and save them. You can Modify them and submit them later.
|
||||
1. On Submitting the Work Order, the system will reserve a slot for each of the Work Order Operations serially after the planned start date based on the workstation availability. The Workstation availability depends on the Workstation timings, holiday list and if some other Work Order Operation was scheduled in that slot. You can mention the number of days for the system to try scheduling the operations in the Manufacturing Settings. This is set to 30 Days by default. If the operation requires time exceeding the available slot, system shall ask you to break the operations. Once the scheduling is done system shall create Time Logs and save them. You can Modify them and submit them later.
|
||||
2. You can also create additional time logs against an Operation. For doing so select the respective operation and click on 'Make Time Log'
|
||||
3. Transfer Raw Material: This will create a Stock Entry with all the Items required to complete this Production Order to be added to the WIP Warehouse. (this will add sub-Items with BOM as one Item or explode their children based on your setting above).
|
||||
3. Transfer Raw Material: This will create a Stock Entry with all the Items required to complete this Work Order to be added to the WIP Warehouse. (this will add sub-Items with BOM as one Item or explode their children based on your setting above).
|
||||
4. Update Finished Goods: This will create a Stock Entry that will deduct all the sub-Items from the WIP Warehouse and add them to the Finished Goods Warehouse.
|
||||
5. To check all Time Logs made against the Production Order click on 'Show Time Logs'
|
||||
5. To check all Time Logs made against the Work Order click on 'Show Time Logs'
|
||||
|
||||
<img class="screenshot" alt="PO - stop" src="{{docs_base_url}}/assets/img/manufacturing/PO-stop.png">
|
||||
|
||||
* You can also re-start a stopped Production Order.
|
||||
* You can also re-start a stopped Work Order.
|
||||
|
||||
> Note : In order to make a Production Order against an Item you must specify 'Yes' to "Allow Production Order" on the Item form.
|
||||
> Note : In order to make a Work Order against an Item you must specify 'Yes' to "Allow Work Order" on the Item form.
|
||||
|
||||
{next}
|
@ -14,7 +14,7 @@ You can also create a Workstation by:
|
||||
|
||||
In workstation specify the workstation working hours under the 'working hour' section.
|
||||
You can also specify the working hours based on shifts.
|
||||
While scheduling Production Order, system will check for the availability of the workstation based on the working hours specified.
|
||||
While scheduling Work Order, system will check for the availability of the workstation based on the working hours specified.
|
||||
|
||||
> Note : You can enable overtime for your workstation in [Manufacturing Settings](/docs/user/manual/en/manufacturing/setup/manufacturing-settings.html)
|
||||
|
||||
|
@ -3,7 +3,7 @@
|
||||
Timesheet can be used for track actual hours worked. It can be used for multiple purposes like:
|
||||
|
||||
* Billable work to Customers
|
||||
* Production Order Operations
|
||||
* Work Order Operations
|
||||
* Creating Salary Slip based on hours worked.
|
||||
* Tasks
|
||||
* Project
|
||||
|
@ -1,3 +1,4 @@
|
||||
salary-slip-from-timesheet
|
||||
sales-invoice-from-timesheet
|
||||
timesheet-against-production-order
|
||||
timesheet-against-work-order
|
||||
timer-in-timesheet
|
||||
|
@ -0,0 +1,26 @@
|
||||
|
||||
# Timer in Timesheet
|
||||
|
||||
Timesheets can be tracked against Project and Tasks along with a Timer.
|
||||
|
||||
<img class="screenshot" alt="Timer" src="{{docs_base_url}}/assets/img/project/timesheet/timesheet-timer.gif">
|
||||
|
||||
#### Steps to start a Timer:
|
||||
|
||||
- On clicking, **Start Timer**, a dialog pops up and starts the timer for already present activity for which checkbox `completed` is unchecked.
|
||||
|
||||
<img class="screenshot" alt="Timer in Progress" src="{{docs_base_url}}/assets/img/project/timesheet/timesheet-timer-in-progress.png">
|
||||
|
||||
- If no activities are present, fill up the activity details, i.e. activity type, expected hours or project in the dialog itself, on clicking **Start**, a new row is added into the Timesheet Details child table and timer begins.
|
||||
|
||||
- On clicking, **Complete**, the `hours` and `to_time` fields are updated for that particular activity.
|
||||
|
||||
<img class="screenshot" alt="Timer Completed" src="{{docs_base_url}}/assets/img/project/timesheet/timesheet-after-complete.png">
|
||||
|
||||
- At any point of time, if the dialog is closed without completing the activity, on opening the dialog again, the timer resumes by calculating how much time has elapsed since `from_time` of the activity.
|
||||
|
||||
- If any activities are already present in the Timesheet with completed unchecked, clicking on **Resume Timer** fetches the activity and starts its timer.
|
||||
|
||||
- If the time exceeds the `expected_hours`, an alert box appears.
|
||||
|
||||
<img class="screenshot" alt="Timer Exceeded" src="{{docs_base_url}}/assets/img/project/timesheet/timesheet-timer-alert.png">
|
@ -1,39 +1,39 @@
|
||||
#Timesheet based on Production Order
|
||||
#Timesheet based on Work Order
|
||||
|
||||
Creating Timesheet for Production Order helps in capacity planning for the Workstations. Also it helps in tracking actual time consumed the Workstation for completing specific operation.
|
||||
Creating Timesheet for Work Order helps in capacity planning for the Workstations. Also it helps in tracking actual time consumed the Workstation for completing specific operation.
|
||||
|
||||
When a Production Order is submitted, based on the Planned Start Date and the availability of the Workstations, system schedules all operations by creating Timesheet.
|
||||
When a Work Order is submitted, based on the Planned Start Date and the availability of the Workstations, system schedules all operations by creating Timesheet.
|
||||
|
||||
<img class="screenshot" alt="Sales Invoice" src="{{docs_base_url}}/assets/img/project/timesheet/timesheet-capacity-planning.png">
|
||||
|
||||
Let's assume we are manufacturing a mobile phone. As per the Bill of Material, time required for the assembly of components could be one hour. However the actual time taken for it's completion could be more than planned. The actual time tracking provides actual operation cost, hence helps in determining accurate valuation of the manufacturing item.
|
||||
|
||||
####Production Order
|
||||
####Work Order
|
||||
|
||||
As per the Bill of Materials of manufacturing item, following are the Operations and Workstation through which raw-material items are processed.
|
||||
|
||||
<img class="screenshot" alt="Sales Invoice" src="{{docs_base_url}}/assets/img/project/timesheet/timesheet-production-order-1.png">
|
||||
<img class="screenshot" alt="Sales Invoice" src="{{docs_base_url}}/assets/img/project/timesheet/timesheet-work-order-1.png">
|
||||
|
||||
On submission on Production Order, Timesheet will be created automatically.
|
||||
On submission on Work Order, Timesheet will be created automatically.
|
||||
|
||||
<img class="screenshot" alt="Sales Invoice" src="{{docs_base_url}}/assets/img/project/timesheet/timesheet-production-order-2.png">
|
||||
<img class="screenshot" alt="Sales Invoice" src="{{docs_base_url}}/assets/img/project/timesheet/timesheet-work-order-2.png">
|
||||
|
||||
####Time Sheet created from Production Order
|
||||
####Time Sheet created from Work Order
|
||||
|
||||
In the Timesheet, unique row will be added for each Operation - Workstation. This allows operator/supervisor at the workstation to enter actual From Time and To Time taken for each Operation.
|
||||
|
||||
<img class="screenshot" alt="Sales Invoice" src="{{docs_base_url}}/assets/img/project/timesheet/timesheet-production-order-3.gif">
|
||||
<img class="screenshot" alt="Sales Invoice" src="{{docs_base_url}}/assets/img/project/timesheet/timesheet-work-order-3.gif">
|
||||
|
||||
After enter From Time and To Time for all the Operations, Total Hours will be calculated.
|
||||
|
||||
<img class="screenshot" alt="Sales Invoice" src="{{docs_base_url}}/assets/img/project/timesheet/timesheet-production-order-6.png">
|
||||
<img class="screenshot" alt="Sales Invoice" src="{{docs_base_url}}/assets/img/project/timesheet/timesheet-work-order-6.png">
|
||||
|
||||
With updating actual time, you can also enter "Completed Qty". If all the items are not processed in the same Timesheet, you can create another Timesheet from the Production Order.
|
||||
With updating actual time, you can also enter "Completed Qty". If all the items are not processed in the same Timesheet, you can create another Timesheet from the Work Order.
|
||||
|
||||
<img class="screenshot" alt="Sales Invoice" src="{{docs_base_url}}/assets/img/project/timesheet/timesheet-production-order-4.png">
|
||||
<img class="screenshot" alt="Sales Invoice" src="{{docs_base_url}}/assets/img/project/timesheet/timesheet-work-order-4.png">
|
||||
|
||||
####Save and Submit Timesheet
|
||||
|
||||
On the submission of Timesheet, Total Hours is calculated. Also, in the Production Order, for each Operation, actual Start and End Time is updated.
|
||||
On the submission of Timesheet, Total Hours is calculated. Also, in the Work Order, for each Operation, actual Start and End Time is updated.
|
||||
|
||||
<img class="screenshot" alt="Sales Invoice" src="{{docs_base_url}}/assets/img/project/timesheet/timesheet-production-order-5.png">
|
||||
<img class="screenshot" alt="Sales Invoice" src="{{docs_base_url}}/assets/img/project/timesheet/timesheet-work-order-5.png">
|
@ -26,13 +26,13 @@ Material Transfer entry is created for the inter-warehouse Material Transfer.
|
||||
|
||||
#### 4.Purpose: Material Transfer for Manufacture
|
||||
|
||||
In the manufacturing process, raw-materials are issued from the stores to the production department (generally WIP warehouse). This Material Transfer entry is created from Production Order. Items in this entry are fetched from the BOM of production Item, as selected in Production Order.
|
||||
In the manufacturing process, raw-materials are issued from the stores to the production department (generally WIP warehouse). This Material Transfer entry is created from Work Order. Items in this entry are fetched from the BOM of production Item, as selected in Work Order.
|
||||
|
||||
<img alt="Transfer for Manufacture" class="screenshot" src="{{docs_base_url}}/assets/img/articles/stock-entry-manufacture-transfer.gif">
|
||||
|
||||
#### 4.Purpose: Manufacture
|
||||
|
||||
Manufacture is created from Production Order. In this entry, both raw-material item as well as production item are fetched from the BOM, selected in the Production Order. For the raw-material items, only Source Warehouse (generally WIP warehouse) is mentioned. For the production item, only target warehouse as mentioned in the Production Order is updated. On submission, stock of raw-material items are deducted from Source Warehouse, which indicates that raw-material items were consumed in the manufacturing process. Production Item is added to the Target Warehouse marking the completion of production cycle.
|
||||
Manufacture is created from Work Order. In this entry, both raw-material item as well as production item are fetched from the BOM, selected in the Work Order. For the raw-material items, only Source Warehouse (generally WIP warehouse) is mentioned. For the production item, only target warehouse as mentioned in the Work Order is updated. On submission, stock of raw-material items are deducted from Source Warehouse, which indicates that raw-material items were consumed in the manufacturing process. Production Item is added to the Target Warehouse marking the completion of production cycle.
|
||||
|
||||
<img alt="Manufacture" class="screenshot" src="{{docs_base_url}}/assets/img/articles/stock-entry-manufacture.gif">
|
||||
|
||||
|
@ -11,7 +11,7 @@ You can access this report from `Stock > Main Report > Stock Projected Quantity`
|
||||
This report list item wise - warehouse wise stock level of an item considering all the stock transactions. With Actual Quantity of an item, it also provide other details like:
|
||||
|
||||
1. Actual Qty: Quantity available in the warehouse.
|
||||
2. Planned Qty: Quantity, for which, Production Order has been raised, but is pending to be manufactured.
|
||||
2. Planned Qty: Quantity, for which, Work Order has been raised, but is pending to be manufactured.
|
||||
3. Requested Qty: Quantity requested for purchase, but not ordered.
|
||||
4. Ordered Qty: Quantity ordered for purchase, but not received.
|
||||
5. Reserved Qty: Quantity ordered for sale, but not delivered.
|
||||
|
@ -34,7 +34,7 @@ You can also split the batch into smaller one by clicking on "Split". This will
|
||||
### Transacting Items with Batches
|
||||
|
||||
Batch master is created before creation of Purchase Receipt.
|
||||
Hence eveytime there is Purchase Receipt or Production Order being made for a batch item,
|
||||
Hence eveytime there is Purchase Receipt or Work Order being made for a batch item,
|
||||
you will first create its Batch No, and then select it in Purchase order or Production Entry.
|
||||
|
||||
On every stock transaction (Purchase Receipt, Delivery Note, POS Invoice) made for batch item,
|
||||
|
@ -20,7 +20,7 @@ shortages and to calculate the right order quantity.
|
||||
Reserved Qty
|
||||
|
||||
* Actual Qty: Quantity available in the warehouse.
|
||||
* Planned Qty: Quantity, for which, Production Order has been raised, but is pending to be manufactured.
|
||||
* Planned Qty: Quantity, for which, Work Order has been raised, but is pending to be manufactured.
|
||||
* Requested Qty: Quantity requested for purchase, but not ordered.
|
||||
* Ordered Qty: Quantity ordered for purchase, but not received.
|
||||
* Reserved Qty: Quantity ordered for sale, but not delivered.
|
||||
|
@ -219,8 +219,8 @@
|
||||
Production Planning Tool</a>
|
||||
<span class="text-muted pull-right">1:41</span>
|
||||
</li>
|
||||
<li><a href="/docs/user/videos/learn/production-order.html">
|
||||
Production Order</a>
|
||||
<li><a href="/docs/user/videos/learn/work-order.html">
|
||||
Work Order</a>
|
||||
<span class="text-muted pull-right">2:24</span>
|
||||
</li>
|
||||
<li>
|
||||
|
@ -20,7 +20,7 @@ opening-stock
|
||||
point-of-sale
|
||||
printing-and-branding
|
||||
product-bundle
|
||||
production-order
|
||||
work-order
|
||||
production-planning
|
||||
project-and-task
|
||||
purchase-cycle
|
||||
|
@ -1,9 +0,0 @@
|
||||
# Production Order
|
||||
|
||||
<iframe width="660" height="371" src="https://www.youtube.com/embed/ZotgLyp2YFY" frameborder="0" allowfullscreen></iframe>
|
||||
|
||||
**Duration: 2:24**
|
||||
|
||||
Production Order (also called as Work Order) is a document that is given to the manufacturing shop floor by the Production Planner as a signal to produce a certain quantity of a certain Item.
|
||||
|
||||
This video walks you through creating Production Order in ERPNext. There will be several entries made against Production Order (like Material Transfer, Manufacture entry, Time Log) to track progress against Production Order.
|
@ -6,4 +6,4 @@
|
||||
|
||||
Production Planning Tool helps you plan production and purchase of Items for a period.
|
||||
|
||||
This video walks you through production planning for Sales Order item. Material Planning allows you to check required quantity of raw materials for manufacturing. You can create Material Request for the raw-material items for which sufficient stock is not available. From Production Planning Tool, you can also create Production Order for the finished items.
|
||||
This video walks you through production planning for Sales Order item. Material Planning allows you to check required quantity of raw materials for manufacturing. You can create Material Request for the raw-material items for which sufficient stock is not available. From Production Planning Tool, you can also create Work Order for the finished items.
|
||||
|
9
erpnext/docs/user/videos/learn/work-order.md
Normal file
@ -0,0 +1,9 @@
|
||||
# Work Order
|
||||
|
||||
<iframe width="660" height="371" src="https://www.youtube.com/embed/ZotgLyp2YFY" frameborder="0" allowfullscreen></iframe>
|
||||
|
||||
**Duration: 2:24**
|
||||
|
||||
Work Order (also called as Work Order) is a document that is given to the manufacturing shop floor by the Production Planner as a signal to produce a certain quantity of a certain Item.
|
||||
|
||||
This video walks you through creating Work Order in ERPNext. There will be several entries made against Work Order (like Material Transfer, Manufacture entry, Time Log) to track progress against Work Order.
|
@ -16,6 +16,12 @@ frappe.ui.form.on("Program Enrollment Tool", {
|
||||
});
|
||||
},
|
||||
|
||||
get_students_from: function(frm) {
|
||||
if (frm.doc.get_students_from == "Student Applicant") {
|
||||
frm.dashboard.add_comment(__('Only the Student Applicant with the status "Approved" will be selected in the table below.'));
|
||||
}
|
||||
},
|
||||
|
||||
"get_students": function(frm) {
|
||||
frm.set_value("students",[]);
|
||||
frappe.call({
|
||||
|
@ -1,5 +1,6 @@
|
||||
{
|
||||
"allow_copy": 0,
|
||||
"allow_guest_to_view": 0,
|
||||
"allow_import": 0,
|
||||
"allow_rename": 0,
|
||||
"beta": 0,
|
||||
@ -12,6 +13,7 @@
|
||||
"engine": "InnoDB",
|
||||
"fields": [
|
||||
{
|
||||
"allow_bulk_edit": 0,
|
||||
"allow_on_submit": 0,
|
||||
"bold": 0,
|
||||
"collapsible": 0,
|
||||
@ -21,6 +23,8 @@
|
||||
"hidden": 0,
|
||||
"ignore_user_permissions": 0,
|
||||
"ignore_xss_filter": 0,
|
||||
"in_filter": 0,
|
||||
"in_global_search": 0,
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 0,
|
||||
"label": "Operation",
|
||||
@ -38,9 +42,11 @@
|
||||
"reqd": 1,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
"allow_bulk_edit": 0,
|
||||
"allow_on_submit": 0,
|
||||
"bold": 0,
|
||||
"collapsible": 0,
|
||||
@ -50,6 +56,8 @@
|
||||
"hidden": 0,
|
||||
"ignore_user_permissions": 0,
|
||||
"ignore_xss_filter": 0,
|
||||
"in_filter": 0,
|
||||
"in_global_search": 0,
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 0,
|
||||
"label": "Workstation",
|
||||
@ -67,9 +75,11 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
"allow_bulk_edit": 0,
|
||||
"allow_on_submit": 0,
|
||||
"bold": 0,
|
||||
"collapsible": 0,
|
||||
@ -79,6 +89,8 @@
|
||||
"hidden": 0,
|
||||
"ignore_user_permissions": 0,
|
||||
"ignore_xss_filter": 0,
|
||||
"in_filter": 0,
|
||||
"in_global_search": 0,
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 0,
|
||||
"label": "Description",
|
||||
@ -95,9 +107,11 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
"allow_bulk_edit": 0,
|
||||
"allow_on_submit": 0,
|
||||
"bold": 0,
|
||||
"collapsible": 0,
|
||||
@ -107,6 +121,8 @@
|
||||
"hidden": 0,
|
||||
"ignore_user_permissions": 0,
|
||||
"ignore_xss_filter": 0,
|
||||
"in_filter": 0,
|
||||
"in_global_search": 0,
|
||||
"in_list_view": 0,
|
||||
"in_standard_filter": 0,
|
||||
"length": 0,
|
||||
@ -120,9 +136,11 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
"allow_bulk_edit": 0,
|
||||
"allow_on_submit": 0,
|
||||
"bold": 0,
|
||||
"collapsible": 0,
|
||||
@ -132,6 +150,8 @@
|
||||
"hidden": 0,
|
||||
"ignore_user_permissions": 0,
|
||||
"ignore_xss_filter": 0,
|
||||
"in_filter": 0,
|
||||
"in_global_search": 0,
|
||||
"in_list_view": 0,
|
||||
"in_standard_filter": 0,
|
||||
"label": "Hour Rate",
|
||||
@ -149,9 +169,11 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
"allow_bulk_edit": 0,
|
||||
"allow_on_submit": 0,
|
||||
"bold": 0,
|
||||
"collapsible": 0,
|
||||
@ -162,7 +184,9 @@
|
||||
"hidden": 0,
|
||||
"ignore_user_permissions": 0,
|
||||
"ignore_xss_filter": 0,
|
||||
"in_list_view": 0,
|
||||
"in_filter": 0,
|
||||
"in_global_search": 0,
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 0,
|
||||
"label": "Operation Time ",
|
||||
"length": 0,
|
||||
@ -179,9 +203,11 @@
|
||||
"reqd": 1,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
"allow_bulk_edit": 0,
|
||||
"allow_on_submit": 0,
|
||||
"bold": 0,
|
||||
"collapsible": 0,
|
||||
@ -191,6 +217,8 @@
|
||||
"hidden": 0,
|
||||
"ignore_user_permissions": 0,
|
||||
"ignore_xss_filter": 0,
|
||||
"in_filter": 0,
|
||||
"in_global_search": 0,
|
||||
"in_list_view": 1,
|
||||
"in_standard_filter": 0,
|
||||
"label": "Operating Cost",
|
||||
@ -208,9 +236,11 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
"allow_bulk_edit": 0,
|
||||
"allow_on_submit": 0,
|
||||
"bold": 0,
|
||||
"collapsible": 0,
|
||||
@ -220,6 +250,8 @@
|
||||
"hidden": 0,
|
||||
"ignore_user_permissions": 0,
|
||||
"ignore_xss_filter": 0,
|
||||
"in_filter": 0,
|
||||
"in_global_search": 0,
|
||||
"in_list_view": 0,
|
||||
"in_standard_filter": 0,
|
||||
"label": "Base Hour Rate(Company Currency)",
|
||||
@ -236,9 +268,11 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
"allow_bulk_edit": 0,
|
||||
"allow_on_submit": 0,
|
||||
"bold": 0,
|
||||
"collapsible": 0,
|
||||
@ -249,6 +283,8 @@
|
||||
"hidden": 0,
|
||||
"ignore_user_permissions": 0,
|
||||
"ignore_xss_filter": 0,
|
||||
"in_filter": 0,
|
||||
"in_global_search": 0,
|
||||
"in_list_view": 0,
|
||||
"in_standard_filter": 0,
|
||||
"label": "Operating Cost(Company Currency)",
|
||||
@ -265,9 +301,11 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
"allow_bulk_edit": 0,
|
||||
"allow_on_submit": 0,
|
||||
"bold": 0,
|
||||
"collapsible": 0,
|
||||
@ -277,6 +315,8 @@
|
||||
"hidden": 0,
|
||||
"ignore_user_permissions": 0,
|
||||
"ignore_xss_filter": 0,
|
||||
"in_filter": 0,
|
||||
"in_global_search": 0,
|
||||
"in_list_view": 0,
|
||||
"in_standard_filter": 0,
|
||||
"label": "Image",
|
||||
@ -292,20 +332,21 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
}
|
||||
],
|
||||
"has_web_view": 0,
|
||||
"hide_heading": 0,
|
||||
"hide_toolbar": 0,
|
||||
"idx": 1,
|
||||
"image_view": 0,
|
||||
"in_create": 0,
|
||||
"in_dialog": 0,
|
||||
"is_submittable": 0,
|
||||
"issingle": 0,
|
||||
"istable": 1,
|
||||
"max_attachments": 0,
|
||||
"modified": "2017-02-10 07:12:41.255544",
|
||||
"modified": "2018-03-26 09:55:28.107451",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Manufacturing",
|
||||
"name": "BOM Operation",
|
||||
@ -314,6 +355,7 @@
|
||||
"quick_entry": 0,
|
||||
"read_only": 0,
|
||||
"read_only_onload": 0,
|
||||
"show_name_in_global_search": 0,
|
||||
"track_changes": 0,
|
||||
"track_seen": 0
|
||||
}
|
@ -514,3 +514,4 @@ erpnext.patches.v10_0.update_reserved_qty_for_purchase_order
|
||||
erpnext.patches.v10_0.update_hub_connector_domain
|
||||
erpnext.patches.v10_0.set_student_party_type
|
||||
erpnext.patches.v10_0.update_project_in_sle
|
||||
erpnext.patches.v10_0.fix_reserved_qty_for_sub_contract
|
||||
|
29
erpnext/patches/v10_0/fix_reserved_qty_for_sub_contract.py
Normal file
@ -0,0 +1,29 @@
|
||||
# Copyright (c) 2017, Frappe and Contributors
|
||||
# License: GNU General Public License v3. See license.txt
|
||||
|
||||
from __future__ import unicode_literals
|
||||
import frappe
|
||||
from erpnext.stock.utils import get_bin
|
||||
|
||||
def execute():
|
||||
for d in frappe.db.sql("""
|
||||
select distinct rm_item_code, reserve_warehouse
|
||||
from `tabPurchase Order Item Supplied`
|
||||
where docstatus=1 and reserve_warehouse is not null and reserve_warehouse != ''"""):
|
||||
|
||||
try:
|
||||
bin_doc = get_bin(d[0], d[1])
|
||||
bin_doc.update_reserved_qty_for_sub_contracting()
|
||||
except:
|
||||
pass
|
||||
|
||||
for d in frappe.db.sql("""select distinct item_code, source_warehouse
|
||||
from `tabWork Order Item`
|
||||
where docstatus=1 and transferred_qty > required_qty
|
||||
and source_warehouse is not null and source_warehouse != ''""", as_list=1):
|
||||
|
||||
try:
|
||||
bin_doc = get_bin(d[0], d[1])
|
||||
bin_doc.update_reserved_qty_for_production()
|
||||
except:
|
||||
pass
|
23
erpnext/projects/doctype/timesheet/timesheet.css
Normal file
@ -0,0 +1,23 @@
|
||||
.stopwatch {
|
||||
text-align: center;
|
||||
padding: 1em;
|
||||
padding-bottom: 1em;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.stopwatch span {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
font-size: 3em;
|
||||
font-family: menlo;
|
||||
}
|
||||
|
||||
.stopwatch .colon {
|
||||
margin-top: -8px;
|
||||
}
|
||||
.playpause {
|
||||
border-right: 1px dashed #fff;
|
||||
border-bottom: 1px dashed #fff;
|
||||
}
|
@ -3,6 +3,7 @@
|
||||
|
||||
frappe.ui.form.on("Timesheet", {
|
||||
setup: function(frm) {
|
||||
frappe.require("/assets/erpnext/js/projects/timer.js");
|
||||
frm.add_fetch('employee', 'employee_name', 'employee_name');
|
||||
frm.fields_dict.employee.get_query = function() {
|
||||
return {
|
||||
@ -50,6 +51,41 @@ frappe.ui.form.on("Timesheet", {
|
||||
}
|
||||
}
|
||||
|
||||
if (frm.doc.docstatus < 1) {
|
||||
|
||||
$.each(frm.doc.time_logs || [], function(i, row) {
|
||||
if(row.from_time && !row.completed) {
|
||||
if (row.to_time && frappe.datetime.now_datetime() > row.to_time) {
|
||||
frappe.utils.play_sound("alert");
|
||||
frappe.msgprint(__(`Timer exceeded the expected hours for activity ${row.activity_type} in row ${row.idx}.`));
|
||||
}
|
||||
}
|
||||
frm.refresh_fields();
|
||||
});
|
||||
|
||||
let button = 'Start Timer';
|
||||
$.each(frm.doc.time_logs || [], function(i, row) {
|
||||
if ((row.from_time <= frappe.datetime.now_datetime()) && !row.completed) {
|
||||
button = 'Resume Timer';
|
||||
}
|
||||
})
|
||||
|
||||
frm.add_custom_button(__(button), function() {
|
||||
var flag = true;
|
||||
// Fetch the row for timer where activity is not completed and from_time is not <= now_time
|
||||
$.each(frm.doc.time_logs || [], function(i, row) {
|
||||
if (flag && row.from_time <= frappe.datetime.now_datetime() && !row.completed) {
|
||||
let timestamp = moment(frappe.datetime.now_datetime()).diff(moment(row.from_time),"seconds");
|
||||
erpnext.timesheet.timer(frm, row, timestamp);
|
||||
flag = false;
|
||||
}
|
||||
})
|
||||
// If no activities found to start a timer, create new
|
||||
if (flag) {
|
||||
erpnext.timesheet.timer(frm);
|
||||
}
|
||||
}).addClass("btn-primary");
|
||||
}
|
||||
if(frm.doc.per_billed > 0) {
|
||||
frm.fields_dict["time_logs"].grid.toggle_enable("billing_hours", false);
|
||||
frm.fields_dict["time_logs"].grid.toggle_enable("billable", false);
|
||||
@ -86,7 +122,6 @@ frappe.ui.form.on("Timesheet", {
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
dialog.show();
|
||||
},
|
||||
|
||||
@ -114,7 +149,15 @@ frappe.ui.form.on("Timesheet Detail", {
|
||||
frappe.model.set_value(cdt, cdn, "hours", moment(child.to_time).diff(moment(child.from_time),
|
||||
"seconds") / 3600);
|
||||
},
|
||||
|
||||
time_logs_add: function(frm) {
|
||||
var $trigger_again = $('.form-grid').find('.grid-row').find('.btn-open-row');
|
||||
$trigger_again.on('click', () => {
|
||||
$('.form-grid')
|
||||
.find('[data-fieldname="timer"]')
|
||||
.append(frappe.render_template("timesheet"));
|
||||
frm.trigger("control_timer");
|
||||
})
|
||||
},
|
||||
hours: function(frm, cdt, cdn) {
|
||||
calculate_end_time(frm, cdt, cdn)
|
||||
},
|
||||
|
@ -39,6 +39,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -69,6 +70,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -98,6 +100,38 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
"allow_bulk_edit": 0,
|
||||
"allow_on_submit": 0,
|
||||
"bold": 0,
|
||||
"collapsible": 0,
|
||||
"columns": 0,
|
||||
"fieldname": "expected_hours",
|
||||
"fieldtype": "Float",
|
||||
"hidden": 0,
|
||||
"ignore_user_permissions": 0,
|
||||
"ignore_xss_filter": 0,
|
||||
"in_filter": 0,
|
||||
"in_global_search": 0,
|
||||
"in_list_view": 0,
|
||||
"in_standard_filter": 0,
|
||||
"label": "Expected Hrs",
|
||||
"length": 0,
|
||||
"no_copy": 0,
|
||||
"permlevel": 0,
|
||||
"precision": "",
|
||||
"print_hide": 0,
|
||||
"print_hide_if_no_value": 0,
|
||||
"read_only": 0,
|
||||
"remember_last_selected_value": 0,
|
||||
"report_hide": 0,
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -127,6 +161,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -157,6 +192,40 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
"allow_bulk_edit": 0,
|
||||
"allow_on_submit": 0,
|
||||
"bold": 0,
|
||||
"collapsible": 0,
|
||||
"columns": 0,
|
||||
"default": "0",
|
||||
"fieldname": "completed",
|
||||
"fieldtype": "Check",
|
||||
"hidden": 0,
|
||||
"ignore_user_permissions": 0,
|
||||
"ignore_xss_filter": 0,
|
||||
"in_filter": 0,
|
||||
"in_global_search": 0,
|
||||
"in_list_view": 0,
|
||||
"in_standard_filter": 0,
|
||||
"label": "Completed",
|
||||
"length": 0,
|
||||
"no_copy": 0,
|
||||
"options": "",
|
||||
"permlevel": 0,
|
||||
"precision": "",
|
||||
"print_hide": 0,
|
||||
"print_hide_if_no_value": 0,
|
||||
"read_only": 0,
|
||||
"remember_last_selected_value": 0,
|
||||
"report_hide": 0,
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -186,6 +255,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -194,7 +264,7 @@
|
||||
"bold": 0,
|
||||
"collapsible": 0,
|
||||
"columns": 0,
|
||||
"depends_on": "eval:parent.work_order",
|
||||
"depends_on": "eval:parent.production_order",
|
||||
"fieldname": "completed_qty",
|
||||
"fieldtype": "Float",
|
||||
"hidden": 0,
|
||||
@ -217,6 +287,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -225,7 +296,7 @@
|
||||
"bold": 0,
|
||||
"collapsible": 0,
|
||||
"columns": 0,
|
||||
"depends_on": "eval:parent.work_order",
|
||||
"depends_on": "eval:parent.production_order",
|
||||
"fieldname": "workstation",
|
||||
"fieldtype": "Link",
|
||||
"hidden": 0,
|
||||
@ -249,6 +320,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -278,6 +350,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -286,7 +359,7 @@
|
||||
"bold": 0,
|
||||
"collapsible": 0,
|
||||
"columns": 0,
|
||||
"depends_on": "eval:parent.work_order",
|
||||
"depends_on": "eval:parent.production_order",
|
||||
"fieldname": "operation",
|
||||
"fieldtype": "Link",
|
||||
"hidden": 0,
|
||||
@ -310,6 +383,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -318,7 +392,7 @@
|
||||
"bold": 0,
|
||||
"collapsible": 0,
|
||||
"columns": 0,
|
||||
"depends_on": "eval:parent.work_order",
|
||||
"depends_on": "eval:parent.production_order",
|
||||
"fieldname": "operation_id",
|
||||
"fieldtype": "Data",
|
||||
"hidden": 1,
|
||||
@ -341,6 +415,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -370,6 +445,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -401,6 +477,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -430,6 +507,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -462,6 +540,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -491,6 +570,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -522,6 +602,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -551,6 +632,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -582,6 +664,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -612,6 +695,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -643,6 +727,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -676,6 +761,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -705,6 +791,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -735,6 +822,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -767,6 +855,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -797,6 +886,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
},
|
||||
{
|
||||
@ -828,6 +918,7 @@
|
||||
"reqd": 0,
|
||||
"search_index": 0,
|
||||
"set_only_once": 0,
|
||||
"translatable": 0,
|
||||
"unique": 0
|
||||
}
|
||||
],
|
||||
@ -841,7 +932,7 @@
|
||||
"issingle": 0,
|
||||
"istable": 1,
|
||||
"max_attachments": 0,
|
||||
"modified": "2018-01-07 11:46:04.045313",
|
||||
"modified": "2018-03-21 17:13:32.561550",
|
||||
"modified_by": "Administrator",
|
||||
"module": "Projects",
|
||||
"name": "Timesheet Detail",
|
||||
|
@ -493,7 +493,7 @@ frappe.help.help_links['Form/BOM'] = [
|
||||
]
|
||||
|
||||
frappe.help.help_links['Form/Work Order'] = [
|
||||
{ label: 'Work Order', url: 'https://frappe.github.io/erpnext/user/manual/en/manufacturing/production-order' },
|
||||
{ label: 'Work Order', url: 'https://frappe.github.io/erpnext/user/manual/en/manufacturing/work-order' },
|
||||
]
|
||||
|
||||
frappe.help.help_links['Form/Workstation'] = [
|
||||
|
155
erpnext/public/js/projects/timer.js
Normal file
@ -0,0 +1,155 @@
|
||||
frappe.provide("erpnext.timesheet");
|
||||
|
||||
erpnext.timesheet.timer = function(frm, row, timestamp=0) {
|
||||
let dialog = new frappe.ui.Dialog({
|
||||
title: __("Timer"),
|
||||
fields:
|
||||
[
|
||||
{"fieldtype": "Link", "label": __("Activity Type"), "fieldname": "activity_type",
|
||||
"reqd": 1, "options": "Activity Type"},
|
||||
{"fieldtype": "Link", "label": __("Project"), "fieldname": "project", "options": "Project"},
|
||||
{"fieldtype": "Link", "label": __("Task"), "fieldname": "task", "options": "Task"},
|
||||
{"fieldtype": "Float", "label": __("Expected Hrs"), "fieldname": "expected_hours"},
|
||||
{"fieldtype": "Section Break"},
|
||||
{"fieldtype": "HTML", "fieldname": "timer_html"}
|
||||
]
|
||||
});
|
||||
|
||||
if (row) {
|
||||
dialog.set_values({
|
||||
'activity_type': row.activity_type,
|
||||
'project': row.project,
|
||||
'task': row.task,
|
||||
'expected_hours': row.expected_hours
|
||||
});
|
||||
}
|
||||
dialog.get_field("timer_html").$wrapper.append(get_timer_html());
|
||||
function get_timer_html() {
|
||||
return `
|
||||
<div class="stopwatch">
|
||||
<span class="hours">00</span>
|
||||
<span class="colon">:</span>
|
||||
<span class="minutes">00</span>
|
||||
<span class="colon">:</span>
|
||||
<span class="seconds">00</span>
|
||||
</div>
|
||||
<div class="playpause text-center">
|
||||
<button class= "btn btn-primary btn-start"> ${ __("Start") } </button>
|
||||
<button class= "btn btn-primary btn-complete"> ${ __("Complete") } </button>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
erpnext.timesheet.control_timer(frm, dialog, row, timestamp);
|
||||
dialog.show();
|
||||
};
|
||||
|
||||
erpnext.timesheet.control_timer = function(frm, dialog, row, timestamp=0) {
|
||||
var $btn_start = $(".playpause .btn-start");
|
||||
var $btn_complete = $(".playpause .btn-complete");
|
||||
var interval = null;
|
||||
var currentIncrement = timestamp;
|
||||
var initialised = row ? true : false;
|
||||
var clicked = false;
|
||||
|
||||
// If row with not completed status, initialize timer with the time elapsed on click of 'Start Timer'.
|
||||
if (row) {
|
||||
initialised = true;
|
||||
$btn_start.hide();
|
||||
$btn_complete.show();
|
||||
initialiseTimer();
|
||||
}
|
||||
if (!initialised) {
|
||||
$btn_complete.hide();
|
||||
}
|
||||
$btn_start.click(function(e) {
|
||||
if (!initialised) {
|
||||
// New activity if no activities found
|
||||
var args = dialog.get_values();
|
||||
if(!args) return;
|
||||
if (!frm.doc.time_logs[0].activity_type) {
|
||||
frm.doc.time_logs = [];
|
||||
}
|
||||
row = frappe.model.add_child(frm.doc, "Timesheet Detail", "time_logs");
|
||||
row.activity_type = args.activity_type;
|
||||
row.from_time = frappe.datetime.get_datetime_as_string();
|
||||
row.project = args.project;
|
||||
row.task = args.task;
|
||||
row.expected_hours = args.expected_hours;
|
||||
row.completed = 0;
|
||||
let d = moment(row.from_time);
|
||||
if(row.expected_hours) {
|
||||
d.add(row.expected_hours, "hours");
|
||||
row.to_time = d.format(moment.defaultDatetimeFormat);
|
||||
}
|
||||
frm.refresh_field("time_logs");
|
||||
frm.save();
|
||||
}
|
||||
|
||||
if (clicked) {
|
||||
e.preventDefault();
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!initialised) {
|
||||
initialised = true;
|
||||
$btn_start.hide();
|
||||
$btn_complete.show();
|
||||
initialiseTimer();
|
||||
}
|
||||
});
|
||||
|
||||
// Stop the timer and update the time logged by the timer on click of 'Complete' button
|
||||
$btn_complete.click(function() {
|
||||
var grid_row = cur_frm.fields_dict['time_logs'].grid.get_row(row.idx - 1);
|
||||
var args = dialog.get_values();
|
||||
grid_row.doc.completed = 1;
|
||||
grid_row.doc.activity_type = args.activity_type;
|
||||
grid_row.doc.project = args.project;
|
||||
grid_row.doc.task = args.task;
|
||||
grid_row.doc.expected_hours = args.expected_hours;
|
||||
grid_row.doc.hours = currentIncrement / 3600;
|
||||
grid_row.doc.to_time = frappe.datetime.now_datetime();
|
||||
grid_row.refresh();
|
||||
frm.save();
|
||||
reset();
|
||||
dialog.hide();
|
||||
});
|
||||
function initialiseTimer() {
|
||||
interval = setInterval(function() {
|
||||
var current = setCurrentIncrement();
|
||||
updateStopwatch(current);
|
||||
}, 1000);
|
||||
}
|
||||
|
||||
function updateStopwatch(increment) {
|
||||
var hours = Math.floor(increment / 3600);
|
||||
var minutes = Math.floor((increment - (hours * 3600)) / 60);
|
||||
var seconds = increment - (hours * 3600) - (minutes * 60);
|
||||
|
||||
// If modal is closed by clicking anywhere outside, reset the timer
|
||||
if (!$('.modal-dialog').is(':visible')) {
|
||||
reset();
|
||||
}
|
||||
if(hours > 99)
|
||||
reset();
|
||||
$(".hours").text(hours < 10 ? ("0" + hours.toString()) : hours.toString());
|
||||
$(".minutes").text(minutes < 10 ? ("0" + minutes.toString()) : minutes.toString());
|
||||
$(".seconds").text(seconds < 10 ? ("0" + seconds.toString()) : seconds.toString());
|
||||
}
|
||||
|
||||
function setCurrentIncrement() {
|
||||
currentIncrement += 1;
|
||||
return currentIncrement;
|
||||
}
|
||||
|
||||
function reset() {
|
||||
currentIncrement = 0;
|
||||
initialised = false;
|
||||
clearInterval(interval);
|
||||
$(".hours").text("00");
|
||||
$(".minutes").text("00");
|
||||
$(".seconds").text("00");
|
||||
$btn_complete.hide();
|
||||
$btn_start.show();
|
||||
}
|
||||
};
|
@ -111,6 +111,12 @@ $.extend(erpnext.utils, {
|
||||
}
|
||||
},
|
||||
|
||||
get_party_name: function(party_type) {
|
||||
var dict = {'Customer': 'customer_name', 'Supplier': 'supplier_name', 'Employee': 'employee_name',
|
||||
'Member': 'member_name'};
|
||||
return dict[party_type];
|
||||
},
|
||||
|
||||
copy_value_in_all_row: function(doc, dt, dn, table_fieldname, fieldname) {
|
||||
var d = locals[dt][dn];
|
||||
if(d[fieldname]){
|
||||
|
@ -109,8 +109,8 @@ class Gstr1Report(object):
|
||||
customers = frappe.get_all("Customer", filters={"customer_type": self.customer_type})
|
||||
|
||||
if self.filters.get("type_of_business") == "B2B":
|
||||
conditions += " and invoice_type != 'Export' and is_return != 1 and customer in ('{0}')".\
|
||||
format("', '".join([frappe.db.escape(c.name) for c in customers]))
|
||||
conditions += """ and ifnull(invoice_type, '') != 'Export' and is_return != 1
|
||||
and customer in ('{0}')""".format("', '".join([frappe.db.escape(c.name) for c in customers]))
|
||||
|
||||
if self.filters.get("type_of_business") in ("B2C Large", "B2C Small"):
|
||||
b2c_limit = frappe.db.get_single_value('GSt Settings', 'b2c_limit')
|
||||
|
@ -84,7 +84,7 @@ class Gstr2Report(Gstr1Report):
|
||||
conditions += opts[1]
|
||||
|
||||
if self.filters.get("type_of_business") == "B2B":
|
||||
conditions += "and invoice_type != 'Export' and is_return != 1 "
|
||||
conditions += "and ifnull(invoice_type, '') != 'Export' and is_return != 1 "
|
||||
|
||||
elif self.filters.get("type_of_business") == "CDNR":
|
||||
conditions += """ and is_return = 1 """
|
||||
|
@ -96,14 +96,14 @@ erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend(
|
||||
|
||||
if (this.frm.has_perm("submit")) {
|
||||
// close
|
||||
if(flt(doc.per_delivered, 2) < 100 || flt(doc.per_billed) < 100) {
|
||||
if(flt(doc.per_delivered, 6) < 100 || flt(doc.per_billed) < 100) {
|
||||
this.frm.add_custom_button(__('Close'),
|
||||
function() { me.close_sales_order() }, __("Status"))
|
||||
}
|
||||
}
|
||||
|
||||
// delivery note
|
||||
if(flt(doc.per_delivered, 2) < 100 && ["Sales", "Shopping Cart"].indexOf(doc.order_type)!==-1 && allow_delivery) {
|
||||
if(flt(doc.per_delivered, 6) < 100 && ["Sales", "Shopping Cart"].indexOf(doc.order_type)!==-1 && allow_delivery) {
|
||||
this.frm.add_custom_button(__('Delivery'),
|
||||
function() { me.make_delivery_note_based_on_delivery_date(); }, __("Make"));
|
||||
this.frm.add_custom_button(__('Work Order'),
|
||||
@ -113,20 +113,20 @@ erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend(
|
||||
}
|
||||
|
||||
// sales invoice
|
||||
if(flt(doc.per_billed, 2) < 100) {
|
||||
if(flt(doc.per_billed, 6) < 100) {
|
||||
this.frm.add_custom_button(__('Invoice'),
|
||||
function() { me.make_sales_invoice() }, __("Make"));
|
||||
}
|
||||
|
||||
// material request
|
||||
if(!doc.order_type || ["Sales", "Shopping Cart"].indexOf(doc.order_type)!==-1
|
||||
&& flt(doc.per_delivered, 2) < 100) {
|
||||
&& flt(doc.per_delivered, 6) < 100) {
|
||||
this.frm.add_custom_button(__('Material Request'),
|
||||
function() { me.make_material_request() }, __("Make"));
|
||||
}
|
||||
|
||||
// make purchase order
|
||||
if(flt(doc.per_delivered, 2) < 100 && allow_purchase) {
|
||||
if(flt(doc.per_delivered, 6) < 100 && allow_purchase) {
|
||||
this.frm.add_custom_button(__('Purchase Order'),
|
||||
function() { me.make_purchase_order() }, __("Make"));
|
||||
}
|
||||
@ -229,6 +229,7 @@ erpnext.selling.SalesOrderController = erpnext.selling.SellingController.extend(
|
||||
{fieldtype:'Data', fieldname:'sales_order_item', reqd: 1,
|
||||
label: __('Sales Order Item'), hidden:1}
|
||||
],
|
||||
data: r.message,
|
||||
get_data: function() {
|
||||
return r.message
|
||||
}
|
||||
|
@ -360,6 +360,7 @@ class SalesOrder(SellingController):
|
||||
where production_item=%s and sales_order=%s and sales_order_item = %s and docstatus<2''', (i.item_code, self.name, i.name))[0][0])
|
||||
if pending_qty:
|
||||
items.append(dict(
|
||||
name= i.name,
|
||||
item_code= i.item_code,
|
||||
bom = bom,
|
||||
warehouse = i.warehouse,
|
||||
|
@ -6,15 +6,15 @@ frappe.listview_settings['Sales Order'] = {
|
||||
return [__("Closed"), "green", "status,=,Closed"];
|
||||
|
||||
} else if (doc.order_type !== "Maintenance"
|
||||
&& flt(doc.per_delivered, 2) < 100 && frappe.datetime.get_diff(doc.delivery_date) < 0) {
|
||||
&& flt(doc.per_delivered, 6) < 100 && frappe.datetime.get_diff(doc.delivery_date) < 0) {
|
||||
// to bill & overdue
|
||||
return [__("Overdue"), "red", "per_delivered,<,100|delivery_date,<,Today|status,!=,Closed"];
|
||||
|
||||
} else if (doc.order_type !== "Maintenance"
|
||||
&& flt(doc.per_delivered, 2) < 100 && doc.status!=="Closed") {
|
||||
&& flt(doc.per_delivered, 6) < 100 && doc.status!=="Closed") {
|
||||
// not delivered
|
||||
|
||||
if(flt(doc.per_billed, 2) < 100) {
|
||||
if(flt(doc.per_billed, 6) < 100) {
|
||||
// not delivered & not billed
|
||||
|
||||
return [__("To Deliver and Bill"), "orange",
|
||||
@ -26,14 +26,14 @@ frappe.listview_settings['Sales Order'] = {
|
||||
"per_delivered,<,100|per_billed,=,100|status,!=,Closed"];
|
||||
}
|
||||
|
||||
} else if ((doc.order_type === "Maintenance" || flt(doc.per_delivered, 2) == 100)
|
||||
&& flt(doc.per_billed, 2) < 100 && doc.status!=="Closed") {
|
||||
} else if ((doc.order_type === "Maintenance" || flt(doc.per_delivered, 6) == 100)
|
||||
&& flt(doc.per_billed, 6) < 100 && doc.status!=="Closed") {
|
||||
|
||||
// to bill
|
||||
return [__("To Bill"), "orange", "per_delivered,=,100|per_billed,<,100|status,!=,Closed"];
|
||||
|
||||
} else if((doc.order_type === "Maintenance" || flt(doc.per_delivered, 2) == 100)
|
||||
&& flt(doc.per_billed, 2) == 100 && doc.status!=="Closed") {
|
||||
} else if((doc.order_type === "Maintenance" || flt(doc.per_delivered, 6) == 100)
|
||||
&& flt(doc.per_billed, 6) == 100 && doc.status!=="Closed") {
|
||||
|
||||
return [__("Completed"), "green", "per_delivered,=,100|per_billed,=,100|status,!=,Closed"];
|
||||
}
|
||||
|
@ -76,14 +76,16 @@ class Bin(Document):
|
||||
def update_reserved_qty_for_production(self):
|
||||
'''Update qty reserved for production from Production Item tables
|
||||
in open work orders'''
|
||||
self.reserved_qty_for_production = frappe.db.sql('''select sum(required_qty - transferred_qty)
|
||||
self.reserved_qty_for_production = frappe.db.sql('''
|
||||
select sum(item.required_qty - item.transferred_qty)
|
||||
from `tabWork Order` pro, `tabWork Order Item` item
|
||||
where
|
||||
item.item_code = %s
|
||||
and item.parent = pro.name
|
||||
and pro.docstatus = 1
|
||||
and item.source_warehouse = %s
|
||||
and pro.status not in ("Stopped", "Completed")''', (self.item_code, self.warehouse))[0][0]
|
||||
and pro.status not in ("Stopped", "Completed")
|
||||
and item.required_qty > item.transferred_qty''', (self.item_code, self.warehouse))[0][0]
|
||||
|
||||
self.set_projected_qty()
|
||||
|
||||
@ -123,7 +125,12 @@ class Bin(Document):
|
||||
and po.per_received < 100
|
||||
""", (self.item_code))[0][0]
|
||||
|
||||
self.db_set('reserved_qty_for_sub_contract', (reserved_qty_for_sub_contract - materials_transferred))
|
||||
if reserved_qty_for_sub_contract > materials_transferred:
|
||||
reserved_qty_for_sub_contract = reserved_qty_for_sub_contract - materials_transferred
|
||||
else:
|
||||
reserved_qty_for_sub_contract = 0
|
||||
|
||||
self.db_set('reserved_qty_for_sub_contract', reserved_qty_for_sub_contract)
|
||||
self.set_projected_qty()
|
||||
self.db_set('projected_qty', self.projected_qty)
|
||||
|
||||
|
@ -444,27 +444,48 @@ $.extend(erpnext.item, {
|
||||
return selected_attributes;
|
||||
}
|
||||
|
||||
let attribute_names = frm.doc.attributes.map(d => d.attribute);
|
||||
|
||||
attribute_names.forEach(function(attribute) {
|
||||
frm.doc.attributes.forEach(function(d) {
|
||||
let p = new Promise(resolve => {
|
||||
frappe.call({
|
||||
method:"frappe.client.get_list",
|
||||
args:{
|
||||
doctype:"Item Attribute Value",
|
||||
filters: [
|
||||
["parent","=", attribute]
|
||||
],
|
||||
fields: ["attribute_value"],
|
||||
limit_start: 0,
|
||||
limit_page_length: 500
|
||||
}
|
||||
}).then((r) => {
|
||||
if(r.message) {
|
||||
attr_val_fields[attribute] = r.message.map(function(d) { return d.attribute_value; });
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
if(!d.numeric_values) {
|
||||
frappe.call({
|
||||
method:"frappe.client.get_list",
|
||||
args:{
|
||||
doctype:"Item Attribute Value",
|
||||
filters: [
|
||||
["parent","=", d.attribute]
|
||||
],
|
||||
fields: ["attribute_value"],
|
||||
limit_start: 0,
|
||||
limit_page_length: 500
|
||||
}
|
||||
}).then((r) => {
|
||||
if(r.message) {
|
||||
attr_val_fields[d.attribute] = r.message.map(function(d) { return d.attribute_value; });
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
} else {
|
||||
frappe.call({
|
||||
method:"frappe.client.get",
|
||||
args:{
|
||||
doctype:"Item Attribute",
|
||||
name: d.attribute
|
||||
}
|
||||
}).then((r) => {
|
||||
if(r.message) {
|
||||
const from = r.message.from_range;
|
||||
const to = r.message.to_range;
|
||||
const increment = r.message.increment;
|
||||
|
||||
let values = [];
|
||||
for(var i = from; i <= to; i += increment) {
|
||||
values.push(i);
|
||||
}
|
||||
attr_val_fields[d.attribute] = values;
|
||||
resolve();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
promises.push(p);
|
||||
|
@ -19,7 +19,7 @@ def get_product_bundle_items(item_code):
|
||||
where t2.new_item_code=%s and t1.parent = t2.name order by t1.idx""", item_code, as_dict=1)
|
||||
|
||||
def get_packing_item_details(item):
|
||||
return frappe.db.sql("""select item_name, description, stock_uom from `tabItem`
|
||||
return frappe.db.sql("""select item_name, description, stock_uom, default_warehouse from `tabItem`
|
||||
where name = %s""", item, as_dict = 1)[0]
|
||||
|
||||
def get_bin_qty(item, warehouse):
|
||||
@ -28,7 +28,6 @@ def get_bin_qty(item, warehouse):
|
||||
return det and det[0] or frappe._dict()
|
||||
|
||||
def update_packing_list_item(doc, packing_item_code, qty, main_item_row, description):
|
||||
bin = get_bin_qty(packing_item_code, main_item_row.warehouse)
|
||||
item = get_packing_item_details(packing_item_code)
|
||||
|
||||
# check if exists
|
||||
@ -48,15 +47,16 @@ def update_packing_list_item(doc, packing_item_code, qty, main_item_row, descrip
|
||||
pi.description = item.description
|
||||
pi.uom = item.stock_uom
|
||||
pi.qty = flt(qty)
|
||||
pi.actual_qty = flt(bin.get("actual_qty"))
|
||||
pi.projected_qty = flt(bin.get("projected_qty"))
|
||||
pi.description = description
|
||||
if not pi.warehouse:
|
||||
pi.warehouse = main_item_row.warehouse
|
||||
pi.warehouse = item.default_warehouse or main_item_row.warehouse
|
||||
if not pi.batch_no:
|
||||
pi.batch_no = cstr(main_item_row.get("batch_no"))
|
||||
if not pi.target_warehouse:
|
||||
pi.target_warehouse = main_item_row.get("target_warehouse")
|
||||
bin = get_bin_qty(packing_item_code, pi.warehouse)
|
||||
pi.actual_qty = flt(bin.get("actual_qty"))
|
||||
pi.projected_qty = flt(bin.get("projected_qty"))
|
||||
|
||||
def make_packing_list(doc):
|
||||
"""make packing list for Product Bundle item"""
|
||||
|
@ -217,6 +217,12 @@ def validate_serial_no(sle, item_det):
|
||||
frappe.throw(_("Serial No {0} has already been received").format(serial_no),
|
||||
SerialNoDuplicateError)
|
||||
|
||||
if (sr.delivery_document_no and sle.voucher_type != 'Stock Entry'
|
||||
and sle.voucher_type == sr.delivery_document_type):
|
||||
return_against = frappe.db.get_value(sle.voucher_type, sle.voucher_no, 'return_against')
|
||||
if return_against and return_against != sr.delivery_document_no:
|
||||
frappe.throw(_("Serial no {0} has been already returned").format(sr.name))
|
||||
|
||||
if sle.actual_qty < 0:
|
||||
if sr.warehouse!=sle.warehouse:
|
||||
frappe.throw(_("Serial No {0} does not belong to Warehouse {1}").format(serial_no,
|
||||
|
@ -141,8 +141,8 @@ frappe.ui.form.on('Stock Entry', {
|
||||
frm.trigger("toggle_display_account_head");
|
||||
}
|
||||
|
||||
if (frm.doc.docstatus==1 && frm.doc.purpose == "Material Receipt") {
|
||||
frm.add_custom_button(__('Make Retention Stock Entry'), function () {
|
||||
if(frm.doc.docstatus==1 && frm.doc.purpose == "Material Receipt" && frm.get_sum('items', 'sample_quantity')) {
|
||||
frm.add_custom_button(__('Make Sample Retention Stock Entry'), function () {
|
||||
frm.trigger("make_retention_stock_entry");
|
||||
});
|
||||
}
|
||||
@ -500,7 +500,13 @@ erpnext.stock.StockEntry = erpnext.stock.StockController.extend({
|
||||
}
|
||||
|
||||
this.frm.set_indicator_formatter('item_code',
|
||||
function(doc) { return (doc.qty<=doc.actual_qty) ? "green" : "orange" })
|
||||
function(doc) {
|
||||
if (!doc.s_warehouse) {
|
||||
return 'blue';
|
||||
} else {
|
||||
return (doc.qty<=doc.actual_qty) ? "green" : "orange"
|
||||
}
|
||||
})
|
||||
|
||||
this.frm.add_fetch("purchase_order", "supplier", "supplier");
|
||||
|
||||
|
@ -1,2 +1,2 @@
|
||||
DocType: Account,Accounts,དངུལ་རྩིས།
|
||||
DocType: Pricing Rule,Buying,ཉོ་བ།
|
||||
b'DocType: Account',b'Accounts',b'\xe0\xbd\x91\xe0\xbd\x84\xe0\xbd\xb4\xe0\xbd\xa3\xe0\xbc\x8b\xe0\xbd\xa2\xe0\xbe\xa9\xe0\xbd\xb2\xe0\xbd\xa6\xe0\xbc\x8d'
|
||||
b'DocType: Pricing Rule',b'Buying',b'\xe0\xbd\x89\xe0\xbd\xbc\xe0\xbc\x8b\xe0\xbd\x96\xe0\xbc\x8d'
|
||||
|
|
@ -1,29 +1,29 @@
|
||||
apps/erpnext/erpnext/stock/report/stock_ledger/stock_ledger.py +114,'Opening','Åbning'
|
||||
DocType: Lead,Lead,Bly
|
||||
apps/erpnext/erpnext/config/selling.py +153,Default settings for selling transactions.,Standardindstillinger for at sælge transaktioner.
|
||||
DocType: Timesheet,% Amount Billed,% Beløb Billed
|
||||
DocType: Purchase Order,% Billed,% Billed
|
||||
,Lead Id,Bly Id
|
||||
apps/erpnext/erpnext/accounts/report/accounts_receivable/accounts_receivable.html +192,'Total','Total'
|
||||
DocType: Selling Settings,Selling Settings,Salg af indstillinger
|
||||
apps/erpnext/erpnext/accounts/report/gross_profit/gross_profit.py +71,Selling Amount,Selling Beløb
|
||||
apps/erpnext/erpnext/crm/doctype/opportunity/opportunity.py +192,Lead must be set if Opportunity is made from Lead,"Bly skal indstilles, hvis Opportunity er lavet af Lead"
|
||||
DocType: Item,Default Selling Cost Center,Standard Selling Cost center
|
||||
apps/erpnext/erpnext/accounts/report/payment_period_based_on_invoice_date/payment_period_based_on_invoice_date.py +64,90-Above,90-Above
|
||||
DocType: Pricing Rule,Selling,Selling
|
||||
apps/erpnext/erpnext/accounts/page/pos/pos.js +76, to ,Ultima Actualización : Fecha inválida
|
||||
DocType: Sales Order,% Delivered,% Leveres
|
||||
DocType: Lead,Lead Owner,Bly Owner
|
||||
apps/erpnext/erpnext/controllers/stock_controller.py +236,{0} {1}: Cost Center is mandatory for Item {2},{0} {1}: Udgiftområde er obligatorisk for varen {2}
|
||||
apps/erpnext/erpnext/config/selling.py +169,Tax template for selling transactions.,Skat skabelon til at sælge transaktioner.
|
||||
apps/erpnext/erpnext/controllers/accounts_controller.py +312, or ,o
|
||||
DocType: Sales Order,% of materials billed against this Sales Order,% Af materialer faktureret mod denne Sales Order
|
||||
DocType: SMS Center,All Lead (Open),Alle Bly (Open)
|
||||
apps/erpnext/erpnext/templates/includes/footer/footer_extension.html +7,Get Updates,Hent opdateringer
|
||||
apps/erpnext/erpnext/controllers/sales_and_purchase_return.py +48,'Update Stock' can not be checked because items are not delivered via {0},"'Opdater lager' kan ikke markeres, varerne ikke leveres via {0}"
|
||||
apps/erpnext/erpnext/patches/v4_0/create_price_list_if_missing.py +21,Standard Selling,Standard Selling
|
||||
,Lead Details,Bly Detaljer
|
||||
DocType: Selling Settings,Settings for Selling Module,Indstillinger for Selling modul
|
||||
,Lead Name,Bly navn
|
||||
DocType: Vehicle Service,Half Yearly,Halvdelen Årlig
|
||||
DocType: Rename Tool,"Attach .csv file with two columns, one for the old name and one for the new name","Vedhæfte .csv fil med to kolonner, en for det gamle navn og et til det nye navn"
|
||||
b'apps/erpnext/erpnext/stock/report/stock_ledger/stock_ledger.py +117',"b""'Opening'""","b""'\xc3\x85bning'"""
|
||||
b'DocType: Lead',b'Lead',b'Bly'
|
||||
b'apps/erpnext/erpnext/config/selling.py +153',b'Default settings for selling transactions.',b'Standardindstillinger for at s\xc3\xa6lge transaktioner.'
|
||||
b'DocType: Timesheet',b'% Amount Billed',b'% Bel\xc3\xb8b Billed'
|
||||
b'DocType: Purchase Order',b'% Billed',b'% Billed'
|
||||
,b'Lead Id',b'Bly Id'
|
||||
b'apps/erpnext/erpnext/accounts/report/accounts_receivable/accounts_receivable.html +197',"b""'Total'""","b""'Total'"""
|
||||
b'DocType: Selling Settings',b'Selling Settings',b'Salg af indstillinger'
|
||||
b'apps/erpnext/erpnext/accounts/report/gross_profit/gross_profit.py +71',b'Selling Amount',b'Selling Bel\xc3\xb8b'
|
||||
b'apps/erpnext/erpnext/crm/doctype/opportunity/opportunity.py +192',b'Lead must be set if Opportunity is made from Lead',"b'Bly skal indstilles, hvis Opportunity er lavet af Lead'"
|
||||
b'DocType: Item',b'Default Selling Cost Center',b'Standard Selling Cost center'
|
||||
b'apps/erpnext/erpnext/accounts/report/payment_period_based_on_invoice_date/payment_period_based_on_invoice_date.py +64',b'90-Above',b'90-Above'
|
||||
b'DocType: Pricing Rule',b'Selling',b'Selling'
|
||||
b'apps/erpnext/erpnext/accounts/page/pos/pos.js +76',b' to ',b'Ultima Actualizaci\xc3\xb3n : Fecha inv\xc3\xa1lida'
|
||||
b'DocType: Sales Order',b'% Delivered',b'% Leveres'
|
||||
b'DocType: Lead',b'Lead Owner',b'Bly Owner'
|
||||
b'apps/erpnext/erpnext/controllers/stock_controller.py +236',b'{0} {1}: Cost Center is mandatory for Item {2}',b'{0} {1}: Udgiftomr\xc3\xa5de er obligatorisk for varen {2}'
|
||||
b'apps/erpnext/erpnext/config/selling.py +169',b'Tax template for selling transactions.',b'Skat skabelon til at s\xc3\xa6lge transaktioner.'
|
||||
b'apps/erpnext/erpnext/controllers/accounts_controller.py +313',b' or ',b'o'
|
||||
b'DocType: Sales Order',b'% of materials billed against this Sales Order',b'% Af materialer faktureret mod denne Sales Order'
|
||||
b'DocType: SMS Center',b'All Lead (Open)',b'Alle Bly (Open)'
|
||||
b'apps/erpnext/erpnext/templates/includes/footer/footer_extension.html +7',b'Get Updates',b'Hent opdateringer'
|
||||
b'apps/erpnext/erpnext/controllers/sales_and_purchase_return.py +48',"b""'Update Stock' can not be checked because items are not delivered via {0}""","b""'Opdater lager' kan ikke markeres, varerne ikke leveres via {0}"""
|
||||
b'apps/erpnext/erpnext/patches/v4_0/create_price_list_if_missing.py +21',b'Standard Selling',b'Standard Selling'
|
||||
,b'Lead Details',b'Bly Detaljer'
|
||||
b'DocType: Selling Settings',b'Settings for Selling Module',b'Indstillinger for Selling modul'
|
||||
,b'Lead Name',b'Bly navn'
|
||||
b'DocType: Vehicle Service',b'Half Yearly',b'Halvdelen \xc3\x85rlig'
|
||||
b'DocType: Rename Tool',"b'Attach .csv file with two columns, one for the old name and one for the new name'","b'Vedh\xc3\xa6fte .csv fil med to kolonner, en for det gamle navn og et til det nye navn'"
|
||||
|
|
@ -0,0 +1,17 @@
|
||||
b'apps/erpnext/erpnext/accounts/report/accounts_receivable/accounts_receivable.html +77',b'Cheques Required',b'Checks Required'
|
||||
b'apps/erpnext/erpnext/accounts/doctype/bank_reconciliation/bank_reconciliation.py +97',b'Row #{0}: Clearance date {1} cannot be before Cheque Date {2}',b'Row #{0}: Clearance date {1} cannot be before Check Date {2}'
|
||||
b'apps/erpnext/erpnext/utilities/user_progress.py +210',b'People who teach at your organisation',b'People who teach at your organization'
|
||||
b'apps/erpnext/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py +37',b'Outstanding Cheques and Deposits to clear',b'Outstanding Checks and Deposits to clear'
|
||||
b'DocType: Payment Entry',b'Cheque/Reference Date',b'Check/Reference Date'
|
||||
b'DocType: Cheque Print Template',b'Scanned Cheque',b'Scanned Check'
|
||||
b'DocType: Cheque Print Template',b'Cheque Size',b'Check Size'
|
||||
b'DocType: Bank Reconciliation Detail',b'Cheque Date',b'Check Date'
|
||||
b'apps/erpnext/erpnext/config/accounts.py +272',b'Setup cheque dimensions for printing',b'Setup check dimensions for printing'
|
||||
b'apps/erpnext/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py +42',b'Cheques and Deposits incorrectly cleared',b'Checks and Deposits incorrectly cleared'
|
||||
b'DocType: Payment Entry',b'Cheque/Reference No',b'Check/Reference No'
|
||||
b'DocType: Bank Reconciliation',b'Select account head of the bank where cheque was deposited.',b'Select account head of the bank where check was deposited.'
|
||||
b'DocType: Cheque Print Template',b'Cheque Print Template',b'Check Print Template'
|
||||
b'DocType: Bank Reconciliation Detail',b'Cheque Number',b'Check Number'
|
||||
b'DocType: Employee',b'Cheque',b'Check'
|
||||
b'DocType: Cheque Print Template',b'Cheque Height',b'Check Height'
|
||||
b'DocType: Cheque Print Template',b'Cheque Width',b'Check Width'
|
|
@ -1 +1 @@
|
||||
DocType: Patient,Married,既婚
|
||||
b'DocType: Patient',b'Married',b'\xe6\x97\xa2\xe5\xa9\x9a'
|
||||
|
|
@ -1,7 +1,7 @@
|
||||
DocType: Fee Structure,Components,Componentes
|
||||
apps/erpnext/erpnext/hr/doctype/attendance/attendance.py +29,Employee {0} on Half day on {1},"Empleado {0}, media jornada el día {1}"
|
||||
DocType: Purchase Invoice Item,Item,Producto
|
||||
DocType: Payment Entry,Deductions or Loss,Deducciones o Pérdidas
|
||||
DocType: Cheque Print Template,Cheque Size,Tamaño de Cheque
|
||||
apps/erpnext/erpnext/utilities/activation.py +128,Make Student Batch,Hacer lotes de Estudiante
|
||||
apps/erpnext/erpnext/hr/doctype/attendance/attendance.py +33,Employee {0} on Leave on {1},"Empleado {0}, la jornada del día {1}"
|
||||
b'DocType: Fee Structure',b'Components',b'Componentes'
|
||||
b'apps/erpnext/erpnext/hr/doctype/attendance/attendance.py +29',b'Employee {0} on Half day on {1}',"b'Empleado {0}, media jornada el d\xc3\xada {1}'"
|
||||
b'DocType: Purchase Invoice Item',b'Item',b'Producto'
|
||||
b'DocType: Payment Entry',b'Deductions or Loss',b'Deducciones o P\xc3\xa9rdidas'
|
||||
b'DocType: Cheque Print Template',b'Cheque Size',b'Tama\xc3\xb1o de Cheque'
|
||||
b'apps/erpnext/erpnext/utilities/activation.py +128',b'Make Student Batch',b'Hacer lotes de Estudiante'
|
||||
b'apps/erpnext/erpnext/hr/doctype/attendance/attendance.py +33',b'Employee {0} on Leave on {1}',"b'Empleado {0}, la jornada del d\xc3\xada {1}'"
|
||||
|
|
@ -1,32 +1,32 @@
|
||||
DocType: Assessment Plan,Grading Scale,Escala de Calificación
|
||||
apps/erpnext/erpnext/education/report/student_and_guardian_contact_details/student_and_guardian_contact_details.py +57,Guardian1 Mobile No,Número de Móvil de Guardián 1
|
||||
apps/erpnext/erpnext/accounts/report/profitability_analysis/profitability_analysis.py +152,Gross Profit / Loss,Ganancia / Pérdida Bruta
|
||||
apps/erpnext/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py +42,Cheques and Deposits incorrectly cleared,Los cheques y depósitos resueltos de forma incorrecta
|
||||
DocType: Assessment Group,Parent Assessment Group,Grupo de Evaluación Padre
|
||||
DocType: Student,Guardians,Guardianes
|
||||
DocType: Fee Schedule,Fee Schedule,Programa de Tarifas
|
||||
apps/erpnext/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js +686,Get Items from Product Bundle,Obtener Ítems de Paquete de Productos
|
||||
apps/erpnext/erpnext/stock/doctype/material_request/material_request.js +930,BOM does not contain any stock item,BOM no contiene ningún ítem de stock
|
||||
DocType: Homepage,Company Tagline for website homepage,Lema de la empresa para la página de inicio del sitio web
|
||||
DocType: Delivery Note,% Installed,% Instalado
|
||||
DocType: Student,Guardian Details,Detalles del Guardián
|
||||
apps/erpnext/erpnext/education/report/student_and_guardian_contact_details/student_and_guardian_contact_details.py +55,Guardian1 Name,Nombre de Guardián 1
|
||||
DocType: Grading Scale Interval,Grade Code,Grado de Código
|
||||
DocType: Fee Schedule,Fee Structure,Estructura de Tarifas
|
||||
DocType: Purchase Order,Get Items from Open Material Requests,Obtener Ítems de Solicitudes Abiertas de Materiales
|
||||
,Batch Item Expiry Status,Estatus de Expiración de Lote de Ítems
|
||||
DocType: Guardian,Guardian Interests,Intereses del Guardián
|
||||
DocType: Guardian,Guardian Name,Nombre del Guardián
|
||||
apps/erpnext/erpnext/selling/doctype/product_bundle/product_bundle.py +29,Child Item should not be a Product Bundle. Please remove item `{0}` and save,Artículo hijo no debe ser un paquete de productos. Por favor remover el artículo `` {0} y guardar
|
||||
DocType: BOM Scrap Item,Basic Amount (Company Currency),Monto Base (Divisa de Compañía)
|
||||
DocType: Grading Scale,Grading Scale Name,Nombre de Escala de Calificación
|
||||
apps/erpnext/erpnext/education/report/student_and_guardian_contact_details/student_and_guardian_contact_details.py +61,Guardian2 Mobile No,Número de Móvil de Guardián 2
|
||||
apps/erpnext/erpnext/education/report/student_and_guardian_contact_details/student_and_guardian_contact_details.py +59,Guardian2 Name,Nombre de Guardián 2
|
||||
DocType: Stock Entry,Customer or Supplier Details,Detalle de cliente o proveedor
|
||||
DocType: Course Scheduling Tool,Course Scheduling Tool,Herramienta de Programación de cursos
|
||||
DocType: Shopping Cart Settings,Checkout Settings,Ajustes de Finalización de Pedido
|
||||
DocType: Guardian Interest,Guardian Interest,Interés del Guardián
|
||||
apps/erpnext/erpnext/utilities/user_progress.py +227,Classrooms/ Laboratories etc where lectures can be scheduled.,"Aulas / laboratorios, etc., donde las lecturas se pueden programar."
|
||||
apps/erpnext/erpnext/templates/includes/cart/cart_dropdown.html +6,Checkout,Finalizando pedido
|
||||
DocType: Guardian Student,Guardian Student,Guardián del Estudiante
|
||||
DocType: BOM Operation,Base Hour Rate(Company Currency),Tarifa Base por Hora (Divisa de Compañía)
|
||||
b'DocType: Assessment Plan',b'Grading Scale',b'Escala de Calificaci\xc3\xb3n'
|
||||
b'apps/erpnext/erpnext/education/report/student_and_guardian_contact_details/student_and_guardian_contact_details.py +57',b'Guardian1 Mobile No',b'N\xc3\xbamero de M\xc3\xb3vil de Guardi\xc3\xa1n 1'
|
||||
b'apps/erpnext/erpnext/accounts/report/profitability_analysis/profitability_analysis.py +152',b'Gross Profit / Loss',b'Ganancia / P\xc3\xa9rdida Bruta'
|
||||
b'apps/erpnext/erpnext/accounts/report/bank_reconciliation_statement/bank_reconciliation_statement.py +42',b'Cheques and Deposits incorrectly cleared',b'Los cheques y dep\xc3\xb3sitos resueltos de forma incorrecta'
|
||||
b'DocType: Assessment Group',b'Parent Assessment Group',b'Grupo de Evaluaci\xc3\xb3n Padre'
|
||||
b'DocType: Student',b'Guardians',b'Guardianes'
|
||||
b'DocType: Fee Schedule',b'Fee Schedule',b'Programa de Tarifas'
|
||||
b'apps/erpnext/erpnext/accounts/doctype/purchase_invoice/purchase_invoice.js +686',b'Get Items from Product Bundle',b'Obtener \xc3\x8dtems de Paquete de Productos'
|
||||
b'apps/erpnext/erpnext/stock/doctype/material_request/material_request.js +930',b'BOM does not contain any stock item',b'BOM no contiene ning\xc3\xban \xc3\xadtem de stock'
|
||||
b'DocType: Homepage',b'Company Tagline for website homepage',b'Lema de la empresa para la p\xc3\xa1gina de inicio del sitio web'
|
||||
b'DocType: Delivery Note',b'% Installed',b'% Instalado'
|
||||
b'DocType: Student',b'Guardian Details',b'Detalles del Guardi\xc3\xa1n'
|
||||
b'apps/erpnext/erpnext/education/report/student_and_guardian_contact_details/student_and_guardian_contact_details.py +55',b'Guardian1 Name',b'Nombre de Guardi\xc3\xa1n 1'
|
||||
b'DocType: Grading Scale Interval',b'Grade Code',b'Grado de C\xc3\xb3digo'
|
||||
b'DocType: Fee Schedule',b'Fee Structure',b'Estructura de Tarifas'
|
||||
b'DocType: Purchase Order',b'Get Items from Open Material Requests',b'Obtener \xc3\x8dtems de Solicitudes Abiertas de Materiales'
|
||||
,b'Batch Item Expiry Status',b'Estatus de Expiraci\xc3\xb3n de Lote de \xc3\x8dtems'
|
||||
b'DocType: Guardian',b'Guardian Interests',b'Intereses del Guardi\xc3\xa1n'
|
||||
b'DocType: Guardian',b'Guardian Name',b'Nombre del Guardi\xc3\xa1n'
|
||||
b'apps/erpnext/erpnext/selling/doctype/product_bundle/product_bundle.py +29',b'Child Item should not be a Product Bundle. Please remove item `{0}` and save',b'Art\xc3\xadculo hijo no debe ser un paquete de productos. Por favor remover el art\xc3\xadculo `` {0} y guardar'
|
||||
b'DocType: BOM Scrap Item',b'Basic Amount (Company Currency)',b'Monto Base (Divisa de Compa\xc3\xb1\xc3\xada)'
|
||||
b'DocType: Grading Scale',b'Grading Scale Name',b'Nombre de Escala de Calificaci\xc3\xb3n'
|
||||
b'apps/erpnext/erpnext/education/report/student_and_guardian_contact_details/student_and_guardian_contact_details.py +61',b'Guardian2 Mobile No',b'N\xc3\xbamero de M\xc3\xb3vil de Guardi\xc3\xa1n 2'
|
||||
b'apps/erpnext/erpnext/education/report/student_and_guardian_contact_details/student_and_guardian_contact_details.py +59',b'Guardian2 Name',b'Nombre de Guardi\xc3\xa1n 2'
|
||||
b'DocType: Stock Entry',b'Customer or Supplier Details',b'Detalle de cliente o proveedor'
|
||||
b'DocType: Course Scheduling Tool',b'Course Scheduling Tool',b'Herramienta de Programaci\xc3\xb3n de cursos'
|
||||
b'DocType: Shopping Cart Settings',b'Checkout Settings',b'Ajustes de Finalizaci\xc3\xb3n de Pedido'
|
||||
b'DocType: Guardian Interest',b'Guardian Interest',b'Inter\xc3\xa9s del Guardi\xc3\xa1n'
|
||||
b'apps/erpnext/erpnext/utilities/user_progress.py +230',b'Classrooms/ Laboratories etc where lectures can be scheduled.',"b'Aulas / laboratorios, etc., donde las lecturas se pueden programar.'"
|
||||
b'apps/erpnext/erpnext/templates/includes/cart/cart_dropdown.html +6',b'Checkout',b'Finalizando pedido'
|
||||
b'DocType: Guardian Student',b'Guardian Student',b'Guardi\xc3\xa1n del Estudiante'
|
||||
b'DocType: BOM Operation',b'Base Hour Rate(Company Currency)',b'Tarifa Base por Hora (Divisa de Compa\xc3\xb1\xc3\xada)'
|
||||
|
|
@ -0,0 +1 @@
|
||||
b'apps/erpnext/erpnext/stock/doctype/item/item.py +498',b'Barcode {0} is not a valid {1} code',b'El c\xc3\xb3digo de barras {0} no es un c\xc3\xb3digo v\xc3\xa1lido {1}'
|
|
@ -1,7 +1,7 @@
|
||||
DocType: Instructor Log,Other Details,Otros Detalles
|
||||
DocType: Material Request Item,Lead Time Date,Fecha de la Iniciativa
|
||||
apps/erpnext/erpnext/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py +41,Lead Time Days,Tiempo de ejecución en días
|
||||
apps/erpnext/erpnext/selling/report/customer_credit_balance/customer_credit_balance.py +45,Outstanding Amt,Saldo Pendiente
|
||||
DocType: Opening Invoice Creation Tool Item,Outstanding Amount,Saldo Pendiente
|
||||
DocType: Payment Entry Reference,Outstanding,Pendiente
|
||||
apps/erpnext/erpnext/crm/doctype/opportunity/opportunity.py +192,Lead must be set if Opportunity is made from Lead,La Iniciativa se debe establecer si la Oportunidad está hecha desde una Iniciativa
|
||||
b'DocType: Instructor Log',b'Other Details',b'Otros Detalles'
|
||||
b'DocType: Material Request Item',b'Lead Time Date',b'Fecha de la Iniciativa'
|
||||
b'apps/erpnext/erpnext/stock/report/itemwise_recommended_reorder_level/itemwise_recommended_reorder_level.py +40',b'Lead Time Days',b'Tiempo de ejecuci\xc3\xb3n en d\xc3\xadas'
|
||||
b'apps/erpnext/erpnext/selling/report/customer_credit_balance/customer_credit_balance.py +45',b'Outstanding Amt',b'Saldo Pendiente'
|
||||
b'DocType: Opening Invoice Creation Tool Item',b'Outstanding Amount',b'Saldo Pendiente'
|
||||
b'DocType: Payment Entry Reference',b'Outstanding',b'Pendiente'
|
||||
b'apps/erpnext/erpnext/crm/doctype/opportunity/opportunity.py +192',b'Lead must be set if Opportunity is made from Lead',b'La Iniciativa se debe establecer si la Oportunidad est\xc3\xa1 hecha desde una Iniciativa'
|
||||
|
|
@ -1,72 +1,32 @@
|
||||
DocType: Timesheet,Total Costing Amount,Monto Total Calculado
|
||||
DocType: Student Group Student,Student Group Student,Alumno de Grupo de Estudiantes
|
||||
DocType: Delivery Note,% Installed,% Instalado
|
||||
DocType: Company,Gain/Loss Account on Asset Disposal,Cuenta de ganancia/pérdida en la disposición de activos
|
||||
apps/erpnext/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +478,Please enter Account for Change Amount,"Por favor, introduzca la Vuenta para el Cambio Monto"
|
||||
DocType: Sales Order,SO-,OV-
|
||||
apps/erpnext/erpnext/manufacturing/doctype/production_order/production_order.js +246,Please set the Item Code first,"Por favor, primero define el Código del Artículo"
|
||||
apps/erpnext/erpnext/accounts/report/trial_balance/trial_balance.js +60,Show unclosed fiscal year's P&L balances,Mostrar saldos de Ganancias y Perdidas de año fiscal sin cerrar
|
||||
,Support Hour Distribution,Distribución de Hora de Soporte
|
||||
apps/erpnext/erpnext/education/report/student_batch_wise_attendance/student_batch_wise_attendance.py +42,Student Group Strength,Fortaleza de Grupo Estudiante
|
||||
apps/erpnext/erpnext/assets/doctype/asset/depreciation.py +191,Please set 'Gain/Loss Account on Asset Disposal' in Company {0},Por favor defina la 'Cuenta de Ganacia/Pérdida por Ventas de Activos' en la empresa {0}
|
||||
apps/erpnext/erpnext/hr/doctype/leave_allocation/leave_allocation.py +44,Leave Type {0} cannot be allocated since it is leave without pay,Tipo de Permiso {0} no puede ser asignado ya que es un Permiso sin paga
|
||||
apps/erpnext/erpnext/hr/doctype/salary_structure/salary_structure.js +463,Show Salary Slip,Mostrar Recibo de Nómina
|
||||
apps/erpnext/erpnext/hr/doctype/salary_slip/salary_slip.py +245,Leave Without Pay does not match with approved Leave Application records,Permiso sin sueldo no coincide con los registros de Solicitud de Permiso aprobadas
|
||||
DocType: Purchase Taxes and Charges Template,"Standard tax template that can be applied to all Purchase Transactions. This template can contain list of tax heads and also other expense heads like ""Shipping"", ""Insurance"", ""Handling"" etc.
|
||||
|
||||
#### Note
|
||||
|
||||
The tax rate you define here will be the standard tax rate for all **Items**. If there are **Items** that have different rates, they must be added in the **Item Tax** table in the **Item** master.
|
||||
|
||||
#### Description of Columns
|
||||
|
||||
1. Calculation Type:
|
||||
- This can be on **Net Total** (that is the sum of basic amount).
|
||||
- **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.
|
||||
- **Actual** (as mentioned).
|
||||
2. Account Head: The Account ledger under which this tax will be booked
|
||||
3. Cost Center: If the tax / charge is an income (like shipping) or expense it needs to be booked against a Cost Center.
|
||||
4. Description: Description of the tax (that will be printed in invoices / quotes).
|
||||
5. Rate: Tax rate.
|
||||
6. Amount: Tax amount.
|
||||
7. Total: Cumulative total to this point.
|
||||
8. Enter Row: If based on ""Previous Row Total"" you can select the row number which will be taken as a base for this calculation (default is the previous row).
|
||||
9. Consider Tax or Charge for: In this section you can specify if the tax / charge is only for valuation (not a part of total) or only for total (does not add value to the item) or for both.
|
||||
10. Add or Deduct: Whether you want to add or deduct the tax.","Plantilla de impuestos que puede aplicarse a todas las operaciones de compra. Esta plantilla puede contener un listado de cuentas de impuestos así como también de otras cuentas de gastos como ""Envío"", ""Seguros"", ""Manejo"", etc.
|
||||
|
||||
#### Nota
|
||||
|
||||
La tasa impositiva que se defina aquí será la tasa de gravamen predeterminada para todos los **Productos**. Si existen **Productos** con diferentes tasas, estas deben ser añadidas a la tabla de **Impuestos del Producto ** dentro del maestro del **Producto**.
|
||||
|
||||
#### Descripción de las Columnas
|
||||
|
||||
1. Tipo de Cálculo:
|
||||
- Este puede ser **Sobre el total neto** (que es la suma de la cantidad básica).
|
||||
- **Sobre la línea anterior total / importe** (para impuestos o cargos acumulados). Si selecciona esta opción, el impuesto se aplica como un porcentaje de la cantidad o total de la fila anterior (de la tabla de impuestos).
|
||||
- **Actual** (como se haya capturado).
|
||||
2. Encabezado de cuenta: La cuenta mayor sobre la que se registrara este gravamen.
|
||||
3. Centro de Costo: Si el impuesto / cargo es un ingreso (como en un envío) o un gasto, debe ser registrado contra un centro de costos.
|
||||
4. Descripción: Descripción del impuesto (que se imprimirán en facturas / cotizaciones).
|
||||
5. Rate: Tasa de impuesto.
|
||||
6. Monto: Monto de impuesto.
|
||||
7. Total: Total acumulado hasta este punto.
|
||||
8. Línea de referencia: Si se basa en ""Línea anterior al total"" se puede seleccionar el número de la fila que será tomado como base para este cálculo (por defecto es la fila anterior).
|
||||
9. Considerar impuesto o cargo para: En esta sección se puede especificar si el impuesto / cargo es sólo para la valoración (no una parte del total) o sólo para el total (no agrega valor al elemento) o para ambos.
|
||||
10. Añadir o deducir: Si usted quiere añadir o deducir el impuesto."
|
||||
apps/erpnext/erpnext/hr/doctype/leave_allocation/leave_allocation.py +123,Leave Type {0} cannot be carry-forwarded,Tipo de Permiso {0} no se puede arrastar o trasladar
|
||||
apps/erpnext/erpnext/hr/doctype/payroll_entry/payroll_entry.py +252,Accural Journal Entry for salaries from {0} to {1},Entrada de Diario de Cuentas por Pagar para salarios de {0} a {1}
|
||||
apps/erpnext/erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py +123,Gain/Loss on Asset Disposal,Ganancia/Pérdida por la venta de activos
|
||||
DocType: Currency Exchange,Specify Exchange Rate to convert one currency into another,Especificar el Tipo de Cambio para convertir de una divisa a otra
|
||||
apps/erpnext/erpnext/stock/dashboard/item_dashboard.js +163,Source and target warehouse must be different,El almacén de origen y el de destino deben ser diferentes
|
||||
apps/erpnext/erpnext/hr/doctype/vehicle_log/vehicle_log.py +20,"Service Item,Type,frequency and expense amount are required","El Artículo de Servico, el Tipo, la Frecuencia y la Cantidad de Gasto son requeridos"
|
||||
apps/erpnext/erpnext/assets/doctype/asset/asset.py +59,Gross Purchase Amount is mandatory,El Importe Bruto de Compra es obligatorio
|
||||
DocType: Stock Entry,Customer or Supplier Details,Detalle de cliente o proveedor
|
||||
DocType: Lab Test Template,Standard Selling Rate,Tarifa de Venta Estándar
|
||||
DocType: Program Enrollment,School House,Casa Escuela
|
||||
apps/erpnext/erpnext/hr/doctype/expense_claim/expense_claim.py +280,Please set default account in Expense Claim Type {0},"Por favor, establezca la Cuenta predeterminada en el Tipo de Reembolso de Gastos {0}"
|
||||
apps/erpnext/erpnext/education/doctype/assessment_result/assessment_result.js +54,Score cannot be greater than Maximum Score,Los resultados no puede ser mayor que la Puntuación Máxima
|
||||
apps/erpnext/erpnext/stock/report/total_stock_summary/total_stock_summary.py +60,Please set Company filter blank if Group By is 'Company',"Por favor, establezca el filtro de Compañía en blanco si Agrupar Por es 'Compañía'"
|
||||
DocType: Education Settings,"For Course based Student Group, the Course will be validated for every Student from the enrolled Courses in Program Enrollment.","Para Grupo de Estudiantes por Curso, el Curso será validado para cada Estudiante de los Cursos inscritos en la Inscripción del Programa."
|
||||
DocType: Education Settings,"For Batch based Student Group, the Student Batch will be validated for every Student from the Program Enrollment.","Para grupo de estudiantes por lotes, el lote de estudiantes se validará para cada estudiante de la inscripción del programa."
|
||||
apps/erpnext/erpnext/setup/setup_wizard/operations/install_fixtures.py +75,Leave Encashment,Cobro de Permiso
|
||||
apps/erpnext/erpnext/selling/doctype/sales_order/sales_order.js +1043,Select Items based on Delivery Date,Seleccionar Artículos según la fecha de entrega
|
||||
b'DocType: Timesheet',b'Total Costing Amount',b'Monto Total Calculado'
|
||||
b'DocType: Student Group Student',b'Student Group Student',b'Alumno de Grupo de Estudiantes'
|
||||
b'DocType: Delivery Note',b'% Installed',b'% Instalado'
|
||||
b'DocType: Company',b'Gain/Loss Account on Asset Disposal',b'Cuenta de ganancia/p\xc3\xa9rdida en la disposici\xc3\xb3n de activos'
|
||||
b'apps/erpnext/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +478',b'Please enter Account for Change Amount',"b'Por favor, introduzca la Vuenta para el Cambio Monto'"
|
||||
b'DocType: Sales Order',b'SO-',b'OV-'
|
||||
b'apps/erpnext/erpnext/manufacturing/doctype/work_order/work_order.js +246',b'Please set the Item Code first',"b'Por favor, primero define el C\xc3\xb3digo del Art\xc3\xadculo'"
|
||||
b'apps/erpnext/erpnext/accounts/report/trial_balance/trial_balance.js +60',"b""Show unclosed fiscal year's P&L balances""",b'Mostrar saldos de Ganancias y Perdidas de a\xc3\xb1o fiscal sin cerrar'
|
||||
,b'Support Hour Distribution',b'Distribuci\xc3\xb3n de Hora de Soporte'
|
||||
b'apps/erpnext/erpnext/education/report/student_batch_wise_attendance/student_batch_wise_attendance.py +42',b'Student Group Strength',b'Fortaleza de Grupo Estudiante'
|
||||
b'apps/erpnext/erpnext/assets/doctype/asset/depreciation.py +191',"b""Please set 'Gain/Loss Account on Asset Disposal' in Company {0}""","b""Por favor defina la 'Cuenta de Ganacia/P\xc3\xa9rdida por Ventas de Activos' en la empresa {0}"""
|
||||
b'apps/erpnext/erpnext/hr/doctype/leave_allocation/leave_allocation.py +44',b'Leave Type {0} cannot be allocated since it is leave without pay',b'Tipo de Permiso {0} no puede ser asignado ya que es un Permiso sin paga'
|
||||
b'apps/erpnext/erpnext/hr/doctype/salary_structure/salary_structure.js +463',b'Show Salary Slip',b'Mostrar Recibo de N\xc3\xb3mina'
|
||||
b'apps/erpnext/erpnext/hr/doctype/salary_slip/salary_slip.py +246',b'Leave Without Pay does not match with approved Leave Application records',b'Permiso sin sueldo no coincide con los registros de Solicitud de Permiso aprobadas'
|
||||
b'DocType: Purchase Taxes and Charges Template',"b'Standard tax template that can be applied to all Purchase Transactions. This template can contain list of tax heads and also other expense heads like ""Shipping"", ""Insurance"", ""Handling"" etc.\n\n#### Note\n\nThe tax rate you define here will be the standard tax rate for all **Items**. If there are **Items** that have different rates, they must be added in the **Item Tax** table in the **Item** master.\n\n#### Description of Columns\n\n1. Calculation Type: \n - This can be on **Net Total** (that is the sum of basic amount).\n - **On Previous Row Total / Amount** (for cumulative taxes or charges). If you select this option, the tax will be applied as a percentage of the previous row (in the tax table) amount or total.\n - **Actual** (as mentioned).\n2. Account Head: The Account ledger under which this tax will be booked\n3. Cost Center: If the tax / charge is an income (like shipping) or expense it needs to be booked against a Cost Center.\n4. Description: Description of the tax (that will be printed in invoices / quotes).\n5. Rate: Tax rate.\n6. Amount: Tax amount.\n7. Total: Cumulative total to this point.\n8. Enter Row: If based on ""Previous Row Total"" you can select the row number which will be taken as a base for this calculation (default is the previous row).\n9. Consider Tax or Charge for: In this section you can specify if the tax / charge is only for valuation (not a part of total) or only for total (does not add value to the item) or for both.\n10. Add or Deduct: Whether you want to add or deduct the tax.'","b'Plantilla de impuestos que puede aplicarse a todas las operaciones de compra. Esta plantilla puede contener un listado de cuentas de impuestos as\xc3\xad como tambi\xc3\xa9n de otras cuentas de gastos como ""Env\xc3\xado"", ""Seguros"", ""Manejo"", etc. \n\n #### Nota \n\nLa tasa impositiva que se defina aqu\xc3\xad ser\xc3\xa1 la tasa de gravamen predeterminada para todos los **Productos**. Si existen **Productos** con diferentes tasas, estas deben ser a\xc3\xb1adidas a la tabla de **Impuestos del Producto ** dentro del maestro del **Producto**.\n\n #### Descripci\xc3\xb3n de las Columnas \n\n 1. Tipo de C\xc3\xa1lculo: \n - Este puede ser **Sobre el total neto** (que es la suma de la cantidad b\xc3\xa1sica).\n - **Sobre la l\xc3\xadnea anterior total / importe** (para impuestos o cargos acumulados). Si selecciona esta opci\xc3\xb3n, el impuesto se aplica como un porcentaje de la cantidad o total de la fila anterior (de la tabla de impuestos).\n - **Actual** (como se haya capturado).\n 2. Encabezado de cuenta: La cuenta mayor sobre la que se registrara este gravamen. \n 3. Centro de Costo: Si el impuesto / cargo es un ingreso (como en un env\xc3\xado) o un gasto, debe ser registrado contra un centro de costos.\n 4. Descripci\xc3\xb3n: Descripci\xc3\xb3n del impuesto (que se imprimir\xc3\xa1n en facturas / cotizaciones).\n 5. Rate: Tasa de impuesto.\n 6. Monto: Monto de impuesto.\n 7. Total: Total acumulado hasta este punto.\n 8. L\xc3\xadnea de referencia: Si se basa en ""L\xc3\xadnea anterior al total"" se puede seleccionar el n\xc3\xbamero de la fila que ser\xc3\xa1 tomado como base para este c\xc3\xa1lculo (por defecto es la fila anterior).\n 9. Considerar impuesto o cargo para: En esta secci\xc3\xb3n se puede especificar si el impuesto / cargo es s\xc3\xb3lo para la valoraci\xc3\xb3n (no una parte del total) o s\xc3\xb3lo para el total (no agrega valor al elemento) o para ambos.\n 10. A\xc3\xb1adir o deducir: Si usted quiere a\xc3\xb1adir o deducir el impuesto.'"
|
||||
b'apps/erpnext/erpnext/hr/doctype/leave_allocation/leave_allocation.py +123',b'Leave Type {0} cannot be carry-forwarded',b'Tipo de Permiso {0} no se puede arrastar o trasladar'
|
||||
b'apps/erpnext/erpnext/hr/doctype/payroll_entry/payroll_entry.py +252',b'Accural Journal Entry for salaries from {0} to {1}',b'Entrada de Diario de Cuentas por Pagar para salarios de {0} a {1}'
|
||||
b'apps/erpnext/erpnext/accounts/doctype/account/chart_of_accounts/verified/standard_chart_of_accounts.py +123',b'Gain/Loss on Asset Disposal',b'Ganancia/P\xc3\xa9rdida por la venta de activos'
|
||||
b'DocType: Currency Exchange',b'Specify Exchange Rate to convert one currency into another',b'Especificar el Tipo de Cambio para convertir de una divisa a otra'
|
||||
b'apps/erpnext/erpnext/stock/dashboard/item_dashboard.js +163',b'Source and target warehouse must be different',b'El almac\xc3\xa9n de origen y el de destino deben ser diferentes'
|
||||
b'apps/erpnext/erpnext/hr/doctype/vehicle_log/vehicle_log.py +20',"b'Service Item,Type,frequency and expense amount are required'","b'El Art\xc3\xadculo de Servico, el Tipo, la Frecuencia y la Cantidad de Gasto son requeridos'"
|
||||
b'apps/erpnext/erpnext/assets/doctype/asset/asset.py +59',b'Gross Purchase Amount is mandatory',b'El Importe Bruto de Compra es obligatorio'
|
||||
b'DocType: Stock Entry',b'Customer or Supplier Details',b'Detalle de cliente o proveedor'
|
||||
b'DocType: Lab Test Template',b'Standard Selling Rate',b'Tarifa de Venta Est\xc3\xa1ndar'
|
||||
b'DocType: Program Enrollment',b'School House',b'Casa Escuela'
|
||||
b'apps/erpnext/erpnext/hr/doctype/expense_claim/expense_claim.py +282',b'Please set default account in Expense Claim Type {0}',"b'Por favor, establezca la Cuenta predeterminada en el Tipo de Reembolso de Gastos {0}'"
|
||||
b'apps/erpnext/erpnext/education/doctype/assessment_result/assessment_result.js +54',b'Score cannot be greater than Maximum Score',b'Los resultados no puede ser mayor que la Puntuaci\xc3\xb3n M\xc3\xa1xima'
|
||||
b'apps/erpnext/erpnext/stock/report/total_stock_summary/total_stock_summary.py +60',"b""Please set Company filter blank if Group By is 'Company'""","b""Por favor, establezca el filtro de Compa\xc3\xb1\xc3\xada en blanco si Agrupar Por es 'Compa\xc3\xb1\xc3\xada'"""
|
||||
b'DocType: Education Settings',"b'For Course based Student Group, the Course will be validated for every Student from the enrolled Courses in Program Enrollment.'","b'Para Grupo de Estudiantes por Curso, el Curso ser\xc3\xa1 validado para cada Estudiante de los Cursos inscritos en la Inscripci\xc3\xb3n del Programa.'"
|
||||
b'DocType: Education Settings',"b'For Batch based Student Group, the Student Batch will be validated for every Student from the Program Enrollment.'","b'Para grupo de estudiantes por lotes, el lote de estudiantes se validar\xc3\xa1 para cada estudiante de la inscripci\xc3\xb3n del programa.'"
|
||||
b'apps/erpnext/erpnext/setup/setup_wizard/operations/install_fixtures.py +75',b'Leave Encashment',b'Cobro de Permiso'
|
||||
b'apps/erpnext/erpnext/selling/doctype/sales_order/sales_order.js +1052',b'Select Items based on Delivery Date',b'Seleccionar Art\xc3\xadculos seg\xc3\xban la fecha de entrega'
|
||||
|
|
@ -1,16 +1,16 @@
|
||||
DocType: Tax Rule,Tax Rule,Regla Fiscal
|
||||
DocType: POS Profile,Account for Change Amount,Cuenta para el Cambio de Monto
|
||||
apps/erpnext/erpnext/config/learn.py +217,Bill of Materials,Lista de Materiales
|
||||
apps/erpnext/erpnext/controllers/accounts_controller.py +626,'Update Stock' cannot be checked for fixed asset sale,"""Actualización de Existencia' no puede ser escogida para venta de activo fijo"
|
||||
DocType: Purchase Invoice,Tax ID,RUC
|
||||
DocType: BOM Item,Basic Rate (Company Currency),Taza Base (Divisa de la Empresa)
|
||||
DocType: Timesheet Detail,Bill,Factura
|
||||
DocType: Activity Cost,Billing Rate,Monto de Facturación
|
||||
apps/erpnext/erpnext/config/learn.py +87,Opening Accounting Balance,Apertura de Saldos Contables
|
||||
apps/erpnext/erpnext/accounts/doctype/tax_rule/tax_rule.py +90,Tax Rule Conflicts with {0},Regla Fiscal en conflicto con {0}
|
||||
DocType: Tax Rule,Billing County,Municipio de Facturación
|
||||
DocType: Sales Invoice Timesheet,Billing Hours,Horas de Facturación
|
||||
DocType: Timesheet,Billing Details,Detalles de Facturación
|
||||
DocType: Tax Rule,Billing State,Región de Facturación
|
||||
DocType: Purchase Order Item,Billed Amt,Monto Facturado
|
||||
DocType: Item Tax,Tax Rate,Tasa de Impuesto
|
||||
b'DocType: Tax Rule',b'Tax Rule',b'Regla Fiscal'
|
||||
b'DocType: POS Profile',b'Account for Change Amount',b'Cuenta para el Cambio de Monto'
|
||||
b'apps/erpnext/erpnext/config/learn.py +217',b'Bill of Materials',b'Lista de Materiales'
|
||||
b'apps/erpnext/erpnext/controllers/accounts_controller.py +627',"b""'Update Stock' cannot be checked for fixed asset sale""","b'""Actualizaci\xc3\xb3n de Existencia\' no puede ser escogida para venta de activo fijo'"
|
||||
b'DocType: Purchase Invoice',b'Tax ID',b'RUC'
|
||||
b'DocType: BOM Item',b'Basic Rate (Company Currency)',b'Taza Base (Divisa de la Empresa)'
|
||||
b'DocType: Timesheet Detail',b'Bill',b'Factura'
|
||||
b'DocType: Activity Cost',b'Billing Rate',b'Monto de Facturaci\xc3\xb3n'
|
||||
b'apps/erpnext/erpnext/config/learn.py +87',b'Opening Accounting Balance',b'Apertura de Saldos Contables'
|
||||
b'apps/erpnext/erpnext/accounts/doctype/tax_rule/tax_rule.py +91',b'Tax Rule Conflicts with {0}',b'Regla Fiscal en conflicto con {0}'
|
||||
b'DocType: Tax Rule',b'Billing County',b'Municipio de Facturaci\xc3\xb3n'
|
||||
b'DocType: Sales Invoice Timesheet',b'Billing Hours',b'Horas de Facturaci\xc3\xb3n'
|
||||
b'DocType: Timesheet',b'Billing Details',b'Detalles de Facturaci\xc3\xb3n'
|
||||
b'DocType: Tax Rule',b'Billing State',b'Regi\xc3\xb3n de Facturaci\xc3\xb3n'
|
||||
b'DocType: Purchase Order Item',b'Billed Amt',b'Monto Facturado'
|
||||
b'DocType: Item Tax',b'Tax Rate',b'Tasa de Impuesto'
|
||||
|
|