Compare commits

..

38 Commits

Author SHA1 Message Date
Pratik Vyas
7b4b31fdf7 Merge branch 'develop' 2015-03-16 21:38:30 +05:30
Pratik Vyas
ec25117ab0 bumped to version 4.24.1 2015-03-16 22:08:30 +06:00
Nabin Hait
dfa013e73f Merge pull request #2962 from nabinhait/develop
manipulate_grand_total_for_inclusive_tax
2015-03-16 17:54:54 +05:30
Nabin Hait
f2791f8898 manipulate_grand_total_for_inclusive_tax 2015-03-16 17:01:09 +05:30
Nabin Hait
66773229a4 Merge pull request #2958 from anandpdoshi/anand-mar-13
manipulate grand total for inclusive tax
2015-03-16 15:58:23 +05:30
Anand Doshi
ead48094b6 manipulate diff only if diff <= 0.02 2015-03-13 18:59:01 +05:30
Anand Doshi
d6822ddd7c manipulate grand total for inclusive tax 2015-03-13 18:23:10 +05:30
Nabin Hait
4944fb33ce Merge pull request #2942 from sbktechnology/develop
Added Actual Batch Qty for item in DN & SI
2015-03-11 10:22:47 +05:30
Sambhaji Kolate
845f1c636e code cleanup 2015-03-10 15:19:29 +05:30
Sambhaji Kolate
98dbccd1d6 added actual_batch_qty at warehouse in DN & SI #1873 2015-03-10 15:04:28 +05:30
Pratik Vyas
7346ff3d08 Merge branch 'develop' 2015-03-10 10:41:35 +05:30
Pratik Vyas
21761c204c bumped to version 4.24.0 2015-03-10 11:11:35 +06:00
Nabin Hait
87f3ba139e Merge pull request #2936 from nabinhait/develop
Repost reserved qty and sle for sales invoice without warehouse
2015-03-09 18:50:46 +05:30
Nabin Hait
11498cac94 Repost sle for si without warehouse 2015-03-09 18:28:35 +05:30
Nabin Hait
7a31f6aaca repost reserved qty if negative 2015-03-09 16:31:11 +05:30
Nabin Hait
7d5a2390dd Merge pull request #2934 from nabinhait/develop
Pricing Rule Issue
2015-03-09 15:31:37 +05:30
Nabin Hait
081c3ec476 c-form message issue 2015-03-09 15:11:34 +05:30
Nabin Hait
e2f054cc27 transaction date issue in pricing rule fixed 2015-03-09 14:54:37 +05:30
Pratik Vyas
7e98eb3ab7 Merge branch 'develop' 2015-02-26 14:46:43 +05:30
Pratik Vyas
8462f4ad2c bumped to version 4.23.0 2015-02-26 15:16:43 +06:00
Pratik Vyas
add4c96280 Merge pull request #2871 from anandpdoshi/anand-feb-26
Fixes in queries and translations
2015-02-26 14:43:27 +05:30
Anand Doshi
45b5da0826 [translations] removed translations that have missing placeholders like {0} 2015-02-26 13:34:24 +05:30
Pratik Vyas
dc24d0151c Merge branch 'develop' 2015-02-26 13:27:41 +05:30
Pratik Vyas
c452b4b7cc bumped to version 4.22.2 2015-02-26 13:57:41 +06:00
Anand Doshi
335763da49 updated translations 2015-02-26 13:20:15 +05:30
Anand Doshi
5bd8cfd9fe [fix] queries 2015-02-26 12:40:58 +05:30
Nabin Hait
2ed025e62d Merge pull request #2870 from nabinhait/fix1
Fixes
2015-02-26 11:41:10 +05:30
Nabin Hait
836f9f34e4 warehouse mandatory in sales invoice if update_stock 2015-02-26 11:40:20 +05:30
Nabin Hait
98a8fae7c2 hotfix for fetching default account and warehouse 2015-02-26 11:37:07 +05:30
Nabin Hait
690f8b9323 Merge pull request #2868 from nabinhait/fix1
fix in financial statements
2015-02-25 18:35:09 +05:30
Nabin Hait
79ffc2b3a7 fix in financial statements 2015-02-25 18:32:25 +05:30
Anand Doshi
13b3b070e3 Merge pull request #2843 from anandpdoshi/anand-feb-24
[fix] Added unicode_literals if missing in py files
2015-02-24 14:16:05 +05:30
Anand Doshi
2878cc7757 [fix] get bom items query 2015-02-24 12:39:42 +05:30
Anand Doshi
d57e793bf3 [fix] Added unicode_literals if missing in py files 2015-02-24 12:24:53 +05:30
Nabin Hait
4d32afde30 Merge pull request #2804 from nabinhait/fix1
update stock uom in sle for DN
2015-02-20 14:24:52 +05:30
Nabin Hait
ad3fd5166b update stock uo in sle for DN 2015-02-20 14:23:58 +05:30
Nabin Hait
010657145d Merge pull request #2803 from sbktechnology/develop
fixed stock_balance report for stock_uom #2802
2015-02-20 14:14:14 +05:30
Sambhaji Kolate
973f78e7d3 fixed stock_balance report for stock_uom and stock ledger entry for Delivery Note #2802 2015-02-20 13:09:39 +05:30
125 changed files with 2396 additions and 2177 deletions

View File

@@ -1 +1,2 @@
__version__ = '4.22.1'
from __future__ import unicode_literals
__version__ = '4.24.1'

View File

@@ -1,6 +1,7 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe
test_records = frappe.get_test_records('Budget Distribution')
test_records = frappe.get_test_records('Budget Distribution')

View File

@@ -18,17 +18,17 @@ class CForm(Document):
`tabSales Invoice` where name = %s and docstatus = 1""", d.invoice_no)
if inv and inv[0][0] != 'Yes':
frappe.throw("C-form is not applicable for Invoice: %s" % d.invoice_no)
frappe.throw("C-form is not applicable for Invoice: {0}".format(d.invoice_no))
elif inv and inv[0][1] and inv[0][1] != self.name:
frappe.throw("""Invoice %s is tagged in another C-form: %s.
frappe.throw("""Invoice {0} is tagged in another C-form: {1}.
If you want to change C-form no for this invoice,
please remove invoice no from the previous c-form and then try again""" %
(d.invoice_no, inv[0][1]))
please remove invoice no from the previous c-form and then try again"""\
.format(d.invoice_no, inv[0][1]))
elif not inv:
frappe.throw("Row %s: Invoice %s is invalid, it might be cancelled / does not exist. \
Please enter a valid Invoice" % d.idx, d.invoice_no)
frappe.throw("Row {0}: Invoice {1} is invalid, it might be cancelled / does not exist. \
Please enter a valid Invoice".format(d.idx, d.invoice_no))
def on_update(self):
""" Update C-Form No on invoices"""

View File

@@ -1,3 +1,4 @@
from __future__ import unicode_literals
account_properties = {
"Deutscher Kontenplan SKR03": {
"Bilanzkonten": {

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors and Contributors
# See license.txt
from __future__ import unicode_literals
import frappe
import unittest

View File

@@ -410,7 +410,7 @@ def get_expense_account(doctype, txt, searchfield, start, page_len, filters):
and tabAccount.docstatus!=2
and ifnull(tabAccount.master_type, "")=""
and ifnull(tabAccount.master_name, "")=""
and tabAccount.company = '%(company)s'
and tabAccount.%(key)s LIKE '%(txt)s'
%(mcond)s""" % {'company': filters['company'], 'key': searchfield,
'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype)})
and tabAccount.company = %(company)s
and tabAccount.{key} LIKE %(txt)s
{mcond}""".format(key=searchfield, mcond=get_match_cond(doctype)),
{'company': filters['company'], 'txt': "%%{0}%%".format(txt)})

View File

@@ -244,7 +244,7 @@ cur_frm.cscript.hide_fields = function(doc) {
cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_normal, true);
}
item_flds_stock = ['serial_no', 'batch_no', 'actual_qty', 'expense_account', 'warehouse']
item_flds_stock = ['serial_no', 'batch_no', 'actual_qty', 'actual_batch_qty', 'expense_account', 'warehouse']
cur_frm.fields_dict['entries'].grid.set_column_disp(item_flds_stock,
(cint(doc.update_stock)==1 ? true : false));

View File

@@ -59,6 +59,7 @@ class SalesInvoice(SellingController):
if cint(self.update_stock):
self.validate_item_code()
self.validate_warehouse()
self.update_current_stock()
self.validate_delivery_note()
@@ -350,6 +351,11 @@ class SalesInvoice(SellingController):
if not d.item_code:
msgprint(_("Item Code required at Row No {0}").format(d.idx), raise_exception=True)
def validate_warehouse(self):
for d in self.get('entries'):
if not d.warehouse:
frappe.throw(_("Warehouse required at Row No {0}").format(d.idx))
def validate_delivery_note(self):
for d in self.get("entries"):
if d.delivery_note:
@@ -605,11 +611,10 @@ def get_income_account(doctype, txt, searchfield, start, page_len, filters):
and tabAccount.docstatus!=2
and ifnull(tabAccount.master_type, "")=""
and ifnull(tabAccount.master_name, "")=""
and tabAccount.company = '%(company)s'
and tabAccount.%(key)s LIKE '%(txt)s'
%(mcond)s""" % {'company': filters['company'], 'key': searchfield,
'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype)})
and tabAccount.company = %(company)s
and tabAccount.{key} LIKE %(txt)s
{mcond}""".format(key=searchfield, mcond=get_match_cond(doctype)),
{'company': filters['company'], 'txt': "%%{0}%%".format(txt)})
@frappe.whitelist()
def make_delivery_note(source_name, target_doc=None):

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe
import unittest, json, copy

View File

@@ -339,6 +339,19 @@
"fieldtype": "Column Break",
"permlevel": 0
},
{
"allow_on_submit": 1,
"fieldname": "actual_batch_qty",
"fieldtype": "Float",
"label": "Available Batch Qty at Warehouse",
"no_copy": 1,
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_width": "150px",
"read_only": 1,
"width": "150px"
},
{
"allow_on_submit": 1,
"fieldname": "actual_qty",
@@ -439,7 +452,7 @@
],
"idx": 1,
"istable": 1,
"modified": "2014-09-09 05:35:36.019576",
"modified": "2015-03-10 14:56:45.641026",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Sales Invoice Item",

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe
import unittest

View File

@@ -161,7 +161,8 @@ def add_total_row(out, balance_must_be, period_list):
def get_accounts(company, root_type):
# root lft, rgt
root_account = frappe.db.sql("""select lft, rgt from `tabAccount`
where company=%s and root_type=%s order by lft limit 1""",
where company=%s and root_type=%s and ifnull(parent_account, '') = ''
order by lft limit 1""",
(company, root_type), as_dict=True)
if not root_account:

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,3 +1,4 @@
from __future__ import unicode_literals
from frappe import _
def get_data():

View File

@@ -1,3 +1,4 @@
from __future__ import unicode_literals
from frappe import _
def get_data():

View File

@@ -1,3 +1,4 @@
from __future__ import unicode_literals
from frappe import _
def get_data():

View File

@@ -1,3 +1,4 @@
from __future__ import unicode_literals
from frappe import _
def get_data():

View File

@@ -1,3 +1,4 @@
from __future__ import unicode_literals
from frappe import _
def get_data():

View File

@@ -1,3 +1,4 @@
from __future__ import unicode_literals
from frappe import _
def get_data():

View File

@@ -1,3 +1,4 @@
from __future__ import unicode_literals
from frappe import _
def get_data():

View File

@@ -1,3 +1,4 @@
from __future__ import unicode_literals
from frappe import _
from frappe.widgets.moduleview import add_setup_section

View File

@@ -1,3 +1,4 @@
from __future__ import unicode_literals
from frappe import _
def get_data():

View File

@@ -1,3 +1,4 @@
from __future__ import unicode_literals
from frappe import _
def get_data():

View File

@@ -112,6 +112,8 @@ class AccountsController(TransactionBase):
if item.get("item_code"):
args = parent_dict.copy()
args.update(item.as_dict())
if not args.get("transaction_date"):
args["transaction_date"] = args.get("posting_date")
ret = get_item_details(args)
for fieldname, value in ret.items():
@@ -183,6 +185,7 @@ class AccountsController(TransactionBase):
self.calculate_net_total()
self.calculate_taxes()
self.manipulate_grand_total_for_inclusive_tax()
self.calculate_totals()
self._cleanup()
@@ -351,6 +354,22 @@ class AccountsController(TransactionBase):
self.precision(base_field, item))
item.set(base_field, value_in_company_currency)
def manipulate_grand_total_for_inclusive_tax(self):
# if fully inclusive taxes and diff
if (self.meta.get_field("net_total_export") and self.tax_doclist
and all(cint(t.included_in_print_rate) for t in self.tax_doclist)):
last_tax = self.tax_doclist[-1]
diff = self.net_total_export - flt(last_tax.total / self.conversion_rate,
self.precision("grand_total_export"))
if diff and abs(diff) <= (2.0 / 10**(self.precision("tax_amount", last_tax))):
adjustment_amount = flt(diff * self.conversion_rate, self.precision("tax_amount", last_tax))
last_tax.tax_amount += adjustment_amount
last_tax.tax_amount_after_discount_amount += adjustment_amount
last_tax.total += adjustment_amount
def calculate_total_advance(self, parenttype, advance_parentfield):
if self.doctype == parenttype and self.docstatus < 2:
sum_of_allocated_amount = sum([flt(adv.allocated_amount, self.precision("allocated_amount", adv))

View File

@@ -391,6 +391,7 @@ class SellingController(StockController):
'qty': d.qty,
'reserved_qty': reserved_qty_for_main_item,
'uom': d.stock_uom,
'stock_uom': d.stock_uom,
'batch_no': cstr(d.get("batch_no")).strip(),
'serial_no': cstr(d.get("serial_no")).strip(),
'name': d.name

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe
import frappe.permissions

View File

@@ -1,10 +1,11 @@
from __future__ import unicode_literals
app_name = "erpnext"
app_title = "ERPNext"
app_publisher = "Web Notes Technologies Pvt. Ltd. and Contributors"
app_description = "Open Source Enterprise Resource Planning for Small and Midsized Organizations"
app_icon = "icon-th"
app_color = "#e74c3c"
app_version = "4.22.1"
app_version = "4.24.1"
error_report_email = "support@erpnext.com"

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors and Contributors
# See license.txt
from __future__ import unicode_literals
import frappe
import unittest

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
test_ignore = ["Leave Block List"]

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors and Contributors
# See license.txt
from __future__ import unicode_literals
import frappe
import unittest

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,3 +1,4 @@
from __future__ import unicode_literals
import frappe
test_records = frappe.get_test_records('Leave Allocation')

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe
import unittest

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe
import unittest

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import unittest
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors and Contributors
# See license.txt
from __future__ import unicode_literals
import frappe
import unittest

View File

@@ -395,30 +395,23 @@ def get_bom_items_as_dict(bom, qty=1, fetch_exploded=1):
item.expense_account as expense_account,
item.buying_cost_center as cost_center
from
`tab%(table)s` bom_item, `tabBOM` bom, `tabItem` item
`tab{table}` bom_item, `tabBOM` bom, `tabItem` item
where
bom_item.parent = bom.name
and bom_item.docstatus < 2
and bom_item.parent = "%(bom)s"
and bom_item.parent = %(bom)s
and item.name = bom_item.item_code
%(conditions)s
{conditions}
group by item_code, stock_uom"""
if fetch_exploded:
items = frappe.db.sql(query % {
"qty": qty,
"table": "BOM Explosion Item",
"bom": bom,
"conditions": """and ifnull(item.is_pro_applicable, 'No') = 'No'
and ifnull(item.is_sub_contracted_item, 'No') = 'No' """
}, as_dict=True)
query = query.format(table="BOM Explosion Item",
conditions="""and ifnull(item.is_pro_applicable, 'No') = 'No'
and ifnull(item.is_sub_contracted_item, 'No') = 'No' """)
items = frappe.db.sql(query, { "qty": qty, "bom": bom }, as_dict=True)
else:
items = frappe.db.sql(query % {
"qty": qty,
"table": "BOM Item",
"bom": bom,
"conditions": ""
}, as_dict=True)
query = query.format(table="BOM Item", conditions="")
items = frappe.db.sql(query, { "qty": qty, "bom": bom }, as_dict=True)
# make unique
for item in items:

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors and Contributors
# See license.txt
from __future__ import unicode_literals
import frappe
import unittest

View File

@@ -93,3 +93,6 @@ erpnext.patches.v4_2.recalculate_bom_costs
erpnext.patches.v4_2.discount_amount
erpnext.patches.v4_2.update_landed_cost_voucher
erpnext.patches.v4_2.set_item_has_batch
erpnext.patches.v4_2.update_stock_uom_for_dn_in_sle
erpnext.patches.v4_2.repost_reserved_qty
erpnext.patches.v4_2.repost_sle_for_si_with_no_warehouse

View File

@@ -1,3 +1,4 @@
from __future__ import unicode_literals
import frappe
def execute():

View File

@@ -1,3 +1,4 @@
from __future__ import unicode_literals
import frappe
def execute():

View File

@@ -1,3 +1,4 @@
from __future__ import unicode_literals
import frappe
import frappe.model

View File

@@ -1,3 +1,4 @@
from __future__ import unicode_literals
import frappe
from frappe.templates.pages.style_settings import default_properties

View File

@@ -0,0 +1,12 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe
from erpnext.utilities.repost_stock import update_bin_qty, get_reserved_qty
def execute():
for item_code, warehouse in frappe.db.sql("select item_code, warehouse from tabBin where ifnull(reserved_qty, 0) < 0"):
update_bin_qty(item_code, warehouse, {
"reserved_qty": get_reserved_qty(item_code, warehouse)
})

View File

@@ -0,0 +1,34 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe
from erpnext.stock.stock_ledger import NegativeStockError
def execute():
si_list = frappe.db.sql("""select distinct si.name
from `tabSales Invoice Item` si_item, `tabSales Invoice` si
where si.name = si_item.parent and si.modified > '2015-02-16' and si.docstatus=1
and ifnull(si_item.warehouse, '') = '' and ifnull(si.update_stock, 0) = 1
order by posting_date, posting_time""", as_dict=1)
failed_list = []
for si in si_list:
try:
si_doc = frappe.get_doc("Sales Invoice", si.name)
si_doc.docstatus = 2
si_doc.on_cancel()
si_doc.docstatus = 1
si_doc.set_missing_item_details()
si_doc.on_submit()
frappe.db.commit()
except:
failed_list.append(si.name)
frappe.local.stockledger_exceptions = None
frappe.db.rollback()
print "Failed to repost: ", failed_list

View File

@@ -1,3 +1,4 @@
from __future__ import unicode_literals
import frappe
def execute():

View File

@@ -1,3 +1,4 @@
from __future__ import unicode_literals
import frappe
def execute():

View File

@@ -0,0 +1,11 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe
def execute():
frappe.db.sql("""update `tabStock Ledger Entry` sle, tabItem item
set sle.stock_uom = item.stock_uom
where sle.voucher_type="Delivery Note" and item.name = sle.item_code
and sle.stock_uom != item.stock_uom""")

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe
import unittest

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe, unittest

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe
from frappe import _

View File

@@ -148,7 +148,7 @@ erpnext.TransactionController = erpnext.stock.StockController.extend({
order_type: me.frm.doc.order_type,
is_pos: cint(me.frm.doc.is_pos),
is_subcontracted: me.frm.doc.is_subcontracted,
transaction_date: me.frm.doc.transaction_date,
transaction_date: me.frm.doc.transaction_date || me.frm.doc.posting_date,
ignore_pricing_rule: me.frm.doc.ignore_pricing_rule,
doctype: item.doctype,
name: item.name,
@@ -632,6 +632,7 @@ erpnext.TransactionController = erpnext.stock.StockController.extend({
this.determine_exclusive_rate && this.determine_exclusive_rate();
this.calculate_net_total();
this.calculate_taxes();
this.manipulate_grand_total_for_inclusive_tax && this.manipulate_grand_total_for_inclusive_tax();
this.calculate_totals();
this._cleanup();

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors and Contributors
# See license.txt
from __future__ import unicode_literals
import frappe
import unittest

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe, json
from frappe.utils import flt

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe
from frappe.utils import flt

View File

@@ -43,8 +43,8 @@ def get_so_details():
def get_last_so_amt(customer):
res = frappe.db.sql("""select net_total from `tabSales Order`
where customer ='%(customer)s' and docstatus = 1 order by transaction_date desc
limit 1""" % {'customer':customer})
where customer = %(customer)s and docstatus = 1 order by transaction_date desc
limit 1""", {'customer':customer})
return res and res[0][0] or 0

View File

@@ -215,6 +215,8 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({
},
warehouse: function(doc, cdt, cdn) {
var me = this;
this.batch_no(doc, cdt, cdn);
var item = frappe.get_doc(cdt, cdn);
if(item.item_code && item.warehouse) {
return this.frm.call({
@@ -456,6 +458,29 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({
});
},
manipulate_grand_total_for_inclusive_tax: function() {
// if fully inclusive taxes and diff
if (this.frm.tax_doclist.length) {
var all_inclusive = frappe.utils.all(this.frm.tax_doclist.map(function(d) {
return cint(d.included_in_print_rate);
}));
if (all_inclusive) {
var last_tax = this.frm.tax_doclist.slice(-1)[0];
var diff = this.frm.doc.net_total_export
- flt(last_tax.total / this.frm.doc.conversion_rate, precision("grand_total_export"));
if ( diff && Math.abs(diff) <= (2.0 / Math.pow(10, precision("tax_amount", last_tax))) ) {
var adjustment_amount = flt(diff * this.frm.doc.conversion_rate, precision("tax_amount", last_tax));
last_tax.tax_amount += adjustment_amount;
last_tax.tax_amount_after_discount += adjustment_amount;
last_tax.total += adjustment_amount;
}
}
}
},
_cleanup: function() {
this._super();
this.frm.doc.in_words = this.frm.doc.in_words_export = "";
@@ -476,6 +501,21 @@ erpnext.selling.SellingController = erpnext.TransactionController.extend({
}
},
batch_no: function(doc, cdt, cdn) {
var me = this;
var item = frappe.get_doc(cdt, cdn);
return this.frm.call({
method: "erpnext.stock.get_item_details.get_batch_qty",
child: item,
args: {
"batch_no": item.batch_no,
"warehouse": item.warehouse,
"item_code": item.item_code
},
"fieldname": "actual_batch_qty"
});
},
set_dynamic_labels: function() {
this._super();
this.set_sales_bom_help(this.frm.doc);

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
test_ignore = ["Account", "Cost Center"]

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
# pre loaded

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
test_ignore = ["Price List"]

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
test_dependencies = ["Employee"]

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

File diff suppressed because one or more lines are too long

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe
from frappe.exceptions import ValidationError

View File

@@ -314,6 +314,19 @@
"fieldtype": "Column Break",
"permlevel": 0
},
{
"allow_on_submit": 1,
"fieldname": "actual_batch_qty",
"fieldtype": "Float",
"label": "Available Batch Qty at Warehouse",
"no_copy": 1,
"permlevel": 0,
"precision": "",
"print_hide": 1,
"print_width": "150px",
"read_only": 1,
"width": "150px"
},
{
"allow_on_submit": 1,
"fieldname": "actual_qty",
@@ -426,7 +439,7 @@
],
"idx": 1,
"istable": 1,
"modified": "2014-09-09 05:35:37.460939",
"modified": "2015-03-10 12:21:17.028911",
"modified_by": "Administrator",
"module": "Stock",
"name": "Delivery Note Item",

View File

@@ -52,7 +52,7 @@ class StockLedgerEntry(Document):
frappe.throw(_("Actual Qty is mandatory"))
def validate_item(self):
item_det = frappe.db.sql("""select name, has_batch_no, docstatus, is_stock_item
item_det = frappe.db.sql("""select name, has_batch_no, docstatus, is_stock_item, stock_uom
from tabItem where name=%s""", self.item_code, as_dict=True)[0]
if item_det.is_stock_item != 'Yes':

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe

View File

@@ -171,7 +171,8 @@ def get_basic_details(args, item_doc):
# if default specified in item is for another company, fetch from company
for d in [["Account", "income_account", "default_income_account"], ["Account", "expense_account", "default_expense_account"],
["Cost Center", "cost_center", "cost_center"], ["Warehouse", "warehouse", ""]]:
if not out[d[1]] or args.company != frappe.db.get_value(d[0], out.get(d[1]), "company"):
company = frappe.db.get_value(d[0], out.get(d[1]), "company")
if not out[d[1]] or (company and args.company != company):
out[d[1]] = frappe.db.get_value("Company", args.company, d[2]) if d[2] else None
for fieldname in ("item_name", "item_group", "barcode", "brand", "stock_uom"):
@@ -277,6 +278,15 @@ def get_serial_nos_by_fifo(args, item_doc):
"qty": cint(args.qty)
}))
def get_actual_batch_qty(batch_no,warehouse,item_code):
actual_batch_qty = 0
if batch_no:
actual_batch_qty = flt(frappe.db.sql("""select sum(actual_qty)
from `tabStock Ledger Entry`
where warehouse=%s and item_code=%s and batch_no=%s""",
(warehouse, item_code, batch_no))[0][0])
return actual_batch_qty
@frappe.whitelist()
def get_conversion_factor(item_code, uom):
return {"conversion_factor": frappe.db.get_value("UOM Conversion Detail",
@@ -292,6 +302,12 @@ def get_available_qty(item_code, warehouse):
return frappe.db.get_value("Bin", {"item_code": item_code, "warehouse": warehouse},
["projected_qty", "actual_qty"], as_dict=True) or {}
@frappe.whitelist()
def get_batch_qty(batch_no,warehouse,item_code):
actual_batch_qty = get_actual_batch_qty(batch_no,warehouse,item_code)
if batch_no:
return {'actual_batch_qty': actual_batch_qty}
@frappe.whitelist()
def apply_price_list(args):
"""

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe
from frappe import _

View File

@@ -22,7 +22,7 @@ def execute(filters=None):
item_map[item]["item_group"],
item_map[item]["brand"],
item_map[item]["description"], wh,
qty_dict.uom, qty_dict.opening_qty,
item_map[item]["stock_uom"], qty_dict.opening_qty,
qty_dict.opening_val, qty_dict.in_qty,
qty_dict.in_val, qty_dict.out_qty,
qty_dict.out_val, qty_dict.bal_qty,
@@ -36,7 +36,7 @@ def get_columns(filters):
"""return columns based on filters"""
columns = ["Item:Link/Item:100", "Item Name::150", "Item Group::100", "Brand::90", \
"Description::140", "Warehouse:Link/Warehouse:100", "Stock UOM::90", "Opening Qty:Float:100", \
"Description::140", "Warehouse:Link/Warehouse:100", "Stock UOM:Link/UOM:90", "Opening Qty:Float:100", \
"Opening Value:Float:110", "In Qty:Float:80", "In Value:Float:80", "Out Qty:Float:80", \
"Out Value:Float:80", "Balance Qty:Float:100", "Balance Value:Float:100", \
"Valuation Rate:Float:90", "Company:Link/Company:100"]
@@ -59,7 +59,7 @@ def get_conditions(filters):
def get_stock_ledger_entries(filters):
conditions = get_conditions(filters)
return frappe.db.sql("""select item_code, warehouse, posting_date, actual_qty, valuation_rate,
stock_uom, company, voucher_type, qty_after_transaction, stock_value_difference
company, voucher_type, qty_after_transaction, stock_value_difference
from `tabStock Ledger Entry`
where docstatus < 2 %s order by posting_date, posting_time, name""" %
conditions, as_dict=1)
@@ -78,7 +78,6 @@ def get_item_warehouse_map(filters):
"val_rate": 0.0, "uom": None
}))
qty_dict = iwb_map[d.company][d.item_code][d.warehouse]
qty_dict.uom = d.stock_uom
if d.voucher_type == "Stock Reconciliation":
qty_diff = flt(d.qty_after_transaction) - qty_dict.bal_qty
@@ -106,7 +105,7 @@ def get_item_warehouse_map(filters):
def get_item_details(filters):
item_map = {}
for d in frappe.db.sql("select name, item_name, item_group, brand, \
for d in frappe.db.sql("select name, item_name, stock_uom, item_group, brand, \
description from tabItem", as_dict=1):
item_map.setdefault(d.name, d)

View File

@@ -1,6 +1,7 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe
from frappe import _
import json

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors
# License: GNU General Public License v3. See license.txt
from __future__ import unicode_literals
import frappe, unittest

View File

@@ -1,5 +1,6 @@
# Copyright (c) 2013, Web Notes Technologies Pvt. Ltd. and Contributors and Contributors
# See license.txt
from __future__ import unicode_literals
import frappe
import unittest

View File

@@ -357,7 +357,7 @@ Batched for Billing,دفعات عن الفواتير
Better Prospects,آفاق أفضل
Bill Date,تاريخ الفاتورة
Bill No,رقم الفاتورة
Bill No {0} already booked in Purchase Invoice {1},مشروع القانون لا { 0 } حجزت بالفعل في شراء الفاتورة {1}
Bill No {0} already booked in Purchase Invoice {1},
Bill of Material,فاتورة المواد
Bill of Material to be considered for manufacturing,فاتورة المواد التي سينظر فيها لتصنيع
Bill of Materials (BOM),مشروع القانون المواد (BOM)
@@ -465,7 +465,7 @@ Capital Account,حساب رأس المال
Capital Equipments,معدات العاصمة
Carry Forward,المضي قدما
Carry Forwarded Leaves,تحمل أوراق واحال
Case No(s) already in use. Try from Case No {0},الحالة رقم ( ق ) قيد الاستخدام بالفعل. محاولة من القضية لا { 0 }
Case No(s) already in use. Try from Case No {0},
Case No. cannot be 0,القضية رقم لا يمكن أن يكون 0
Cash,نقد
Cash In Hand,نقد في الصندوق
@@ -1361,7 +1361,7 @@ Item Code > Item Group > Brand,كود البند> مجموعة المدينة>
Item Code and Warehouse should already exist.,يجب أن تكون موجودة بالفعل البند المدونة و المستودعات.
Item Code cannot be changed for Serial No.,لا يمكن تغيير رمز المدينة لل رقم التسلسلي
Item Code is mandatory because Item is not automatically numbered,كود البند إلزامي لأن السلعة بسهولة و غير مرقمة تلقائيا
Item Code required at Row No {0},كود البند المطلوبة في صف لا { 0 }
Item Code required at Row No {0},
Item Customer Detail,البند تفاصيل العملاء
Item Description,وصف السلعة
Item Desription,البند Desription
@@ -1709,7 +1709,7 @@ Name of person or organization that this address belongs to.,اسم الشخص
Name of the Budget Distribution,اسم توزيع الميزانية
Naming Series,تسمية السلسلة
Negative Quantity is not allowed,لا يسمح السلبية الكمية
Negative Stock Error ({6}) for Item {0} in Warehouse {1} on {2} {3} in {4} {5},خطأ الأسهم السلبية ( { } 6 ) القطعة ل {0} في {1} في معرض النماذج ثلاثية على {2} {3} {4} في {5}
Negative Stock Error ({6}) for Item {0} in Warehouse {1} on {2} {3} in {4} {5},
Negative Valuation Rate is not allowed,لا يسمح السلبية قيم التقييم
Negative balance in Batch {0} for Item {1} at Warehouse {2} on {3} {4},الرصيد السلبي في الدفعة {0} القطعة ل {1} في {2} مستودع في {3} {4}
Net Pay,صافي الراتب
@@ -2484,7 +2484,7 @@ Salary Mode,وضع الراتب
Salary Slip,إيصال الراتب
Salary Slip Deduction,زلة الراتب خصم
Salary Slip Earning,مسير الرواتب /الكسب
Salary Slip of employee {0} already created for this month,إيصال راتب الموظف تم إنشاؤها مسبقا لهذا الشهر
Salary Slip of employee {0} already created for this month,
Salary Structure,هيكل المرتبات
Salary Structure Deduction,هيكل المرتبات / الخصومات
Salary Structure Earning,هيكل المرتبات / الكسب
@@ -3008,7 +3008,7 @@ Total Commission,مجموع العمولة
Total Cost,التكلفة الكلية لل
Total Credit,إجمالي الائتمان
Total Debit,مجموع الخصم
Total Debit must be equal to Total Credit. The difference is {0},يجب أن يكون إجمالي الخصم يساوي إجمالي الائتمان .
Total Debit must be equal to Total Credit. The difference is {0},
Total Deduction,مجموع الخصم
Total Earning,إجمالي الدخل
Total Experience,مجموع الخبرة
1 and year: والسنة:
357 Better Prospects آفاق أفضل
358 Bill Date تاريخ الفاتورة
359 Bill No رقم الفاتورة
360 Bill No {0} already booked in Purchase Invoice {1} مشروع القانون لا { 0 ​​} حجزت بالفعل في شراء الفاتورة {1}
361 Bill of Material فاتورة المواد
362 Bill of Material to be considered for manufacturing فاتورة المواد التي سينظر فيها لتصنيع
363 Bill of Materials (BOM) مشروع القانون المواد (BOM)
465 Capital Equipments معدات العاصمة
466 Carry Forward المضي قدما
467 Carry Forwarded Leaves تحمل أوراق واحال
468 Case No(s) already in use. Try from Case No {0} الحالة رقم ( ق ) قيد الاستخدام بالفعل. محاولة من القضية لا { 0 ​​}
469 Case No. cannot be 0 القضية رقم لا يمكن أن يكون 0
470 Cash نقد
471 Cash In Hand نقد في الصندوق
1361 Item Code and Warehouse should already exist. يجب أن تكون موجودة بالفعل البند المدونة و المستودعات.
1362 Item Code cannot be changed for Serial No. لا يمكن تغيير رمز المدينة لل رقم التسلسلي
1363 Item Code is mandatory because Item is not automatically numbered كود البند إلزامي لأن السلعة بسهولة و غير مرقمة تلقائيا
1364 Item Code required at Row No {0} كود البند المطلوبة في صف لا { 0 ​​}
1365 Item Customer Detail البند تفاصيل العملاء
1366 Item Description وصف السلعة
1367 Item Desription البند Desription
1709 Name of the Budget Distribution اسم توزيع الميزانية
1710 Naming Series تسمية السلسلة
1711 Negative Quantity is not allowed لا يسمح السلبية الكمية
1712 Negative Stock Error ({6}) for Item {0} in Warehouse {1} on {2} {3} in {4} {5} خطأ الأسهم السلبية ( { } 6 ) القطعة ل {0} في {1} في معرض النماذج ثلاثية على {2} {3} {4} في {5}
1713 Negative Valuation Rate is not allowed لا يسمح السلبية قيم التقييم
1714 Negative balance in Batch {0} for Item {1} at Warehouse {2} on {3} {4} الرصيد السلبي في الدفعة {0} القطعة ل {1} في {2} مستودع في {3} {4}
1715 Net Pay صافي الراتب
2484 Salary Slip إيصال الراتب
2485 Salary Slip Deduction زلة الراتب خصم
2486 Salary Slip Earning مسير الرواتب /الكسب
2487 Salary Slip of employee {0} already created for this month إيصال راتب الموظف تم إنشاؤها مسبقا لهذا الشهر
2488 Salary Structure هيكل المرتبات
2489 Salary Structure Deduction هيكل المرتبات / الخصومات
2490 Salary Structure Earning هيكل المرتبات / الكسب
3008 Total Cost التكلفة الكلية لل
3009 Total Credit إجمالي الائتمان
3010 Total Debit مجموع الخصم
3011 Total Debit must be equal to Total Credit. The difference is {0} يجب أن يكون إجمالي الخصم يساوي إجمالي الائتمان .
3012 Total Deduction مجموع الخصم
3013 Total Earning إجمالي الدخل
3014 Total Experience مجموع الخبرة

File diff suppressed because it is too large Load Diff

View File

@@ -42,7 +42,7 @@
"<a href=""#Sales Browser/Item Group"">Add / Edit</a>","<a href=""#Sales Browser/Item Group"">Add / Edit</a>"
"<a href=""#Sales Browser/Territory"">Add / Edit</a>","<a href=""#Sales Browser/Territory"">Add / Edit</a>"
"<h4>Default Template</h4><p>Uses <a href=""http://jinja.pocoo.org/docs/templates/"">Jinja Templating</a> and all the fields of Address (including Custom Fields if any) will be available</p><pre><code>{{ address_line1 }}&lt;br&gt;{% if address_line2 %}{{ address_line2 }}&lt;br&gt;{% endif -%}{{ city }}&lt;br&gt;{% if state %}{{ state }}&lt;br&gt;{% endif -%}{% if pincode %} PIN: {{ pincode }}&lt;br&gt;{% endif -%}{{ country }}&lt;br&gt;{% if phone %}Phone: {{ phone }}&lt;br&gt;{% endif -%}{% if fax %}Fax: {{ fax }}&lt;br&gt;{% endif -%}{% if email_id %}Email: {{ email_id }}&lt;br&gt;{% endif -%}</code></pre>",
A Customer Group exists with same name please change the Customer name or rename the Customer Group,"Hi ha un grup de clients amb el mateix nom, si us plau canvia el nom del client o del nom del Grup de Clients"
A Customer Group exists with same name please change the Customer name or rename the Customer Group,"Hi ha un grup de clients amb el mateix nom, si us plau canvia el nom del client o el nom del Grup de Clients"
A Customer exists with same name,
A Lead with this email id should exist,Hauria d'haver-hi un client potencial amb aquest correu electrònic
A Product or Service,Un producte o servei
@@ -79,7 +79,7 @@ Account must be a balance sheet account,
Account with child nodes cannot be converted to ledger,
Account with existing transaction can not be converted to group.,
Account with existing transaction can not be deleted,Un compte amb transaccions no es pot eliminar
Account with existing transaction cannot be converted to ledger,El Compte de la transacció existent no es pot convertir en llibre major
Account with existing transaction cannot be converted to ledger,El Compte de la transacció existent no es pot convertir a llibre major
Account {0} cannot be a Group,El Compte {0} no pot ser un grup
Account {0} does not belong to Company {1},El compte {0} no pertany a l'empresa {1}
Account {0} does not belong to company: {1},
@@ -201,7 +201,7 @@ Agriculture,Agricultura
Airline,Aerolínia
All,Tots
All Addresses.,
All Contact,All Contact
All Contact,Tots els contactes
All Contacts.,
All Customer Contact,Contacte tot client
All Customer Groups,
@@ -1582,7 +1582,7 @@ Last Sales Order Date,
Latest,Més recent
Lead,Client potencial
Lead Details,Detalls del client potencial
Lead Id,Identificació de l'enviament
Lead Id,Identificador del client potencial
Lead Name,
Lead Owner,Responsable del client potencial
Lead Source,Origen de clients potencials
@@ -2788,7 +2788,7 @@ Select your home country and check the timezone and currency.,Seleccioni el seu
"Selecting ""Yes"" will allow you to create Bill of Material showing raw material and operational costs incurred to manufacture this item.","En seleccionar """" li permetrà crear la llista de materials que mostra la matèria primera i els costos operatius incorreguts en la fabricació d'aquest element."
"Selecting ""Yes"" will allow you to make a Production Order for this item.",
"Selecting ""Yes"" will give a unique identity to each entity of this item which can be viewed in the Serial No master.","En seleccionar """" li donarà una identitat única a cada entitat d'aquest article que es pot veure a la taula mestre de Números de sèrie"
Selling,De venda
Selling,Vendes
Selling Amount,
Selling Rate,La tarifa de venda
Selling Settings,
@@ -3012,7 +3012,7 @@ Sunday,
Supplier,
Supplier (Payable) Account,Proveïdor (a pagar) Compte
Supplier (vendor) name as entered in supplier master,Nom del Proveïdor (venedor) tal i com es va entrar a la configuració de proveïdors
Supplier > Supplier Type,Proveïdor> Tipus Proveïdor
Supplier > Supplier Type,Proveïdor > Tipus Proveïdor
Supplier Account,
Supplier Account Head,
Supplier Address,Adreça del Proveïdor
@@ -3020,7 +3020,7 @@ Supplier Addresses and Contacts,Adreces i contactes dels proveïdors
Supplier Details,
Supplier Id,Identificador de Proveïdor
Supplier Invoice Date,Data Factura Proveïdor
Supplier Invoice No,Factura de Proveïdor No
Supplier Invoice No,Número de Factura de Proveïdor
Supplier Name,Nom del proveïdor
Supplier Naming By,NOmenament de proveïdors per
Supplier Part Number,PartNumber del proveïdor
@@ -3029,7 +3029,7 @@ Supplier Quotation Item,Oferta del proveïdor d'article
Supplier Reference,Referència Proveïdor
Supplier Type,Tipus de Proveïdor
Supplier Type / Supplier,
Supplier Type master.,Taula metre de tipus de proveïdor
Supplier Type master.,Taula mestre de tipus de proveïdor
Supplier Warehouse,Magatzem Proveïdor
Supplier Warehouse mandatory for sub-contracted Purchase Receipt,
Supplier database.,
@@ -3046,7 +3046,7 @@ Support Email Settings,
Support Manager,Gerent de Suport
Support Password,Contrasenya de suport
Support Team,Equip de suport
Support Ticket,Tiquet
Support Ticket,Tiquet de suport
Support queries from customers.,
Symbol,
Sync Support Mails,Sincronitzar Suport Mails
1 (Half Day)
42 <a href="#Sales Browser/Item Group">Add / Edit</a> <a href="#Sales Browser/Item Group">Add / Edit</a>
43 <a href="#Sales Browser/Territory">Add / Edit</a> <a href="#Sales Browser/Territory">Add / Edit</a>
44 <h4>Default Template</h4><p>Uses <a href="http://jinja.pocoo.org/docs/templates/">Jinja Templating</a> and all the fields of Address (including Custom Fields if any) will be available</p><pre><code>{{ address_line1 }}&lt;br&gt;{% if address_line2 %}{{ address_line2 }}&lt;br&gt;{% endif -%}{{ city }}&lt;br&gt;{% if state %}{{ state }}&lt;br&gt;{% endif -%}{% if pincode %} PIN: {{ pincode }}&lt;br&gt;{% endif -%}{{ country }}&lt;br&gt;{% if phone %}Phone: {{ phone }}&lt;br&gt;{% endif -%}{% if fax %}Fax: {{ fax }}&lt;br&gt;{% endif -%}{% if email_id %}Email: {{ email_id }}&lt;br&gt;{% endif -%}</code></pre>
45 A Customer Group exists with same name please change the Customer name or rename the Customer Group Hi ha un grup de clients amb el mateix nom, si us plau canvia el nom del client o del nom del Grup de Clients Hi ha un grup de clients amb el mateix nom, si us plau canvia el nom del client o el nom del Grup de Clients
46 A Customer exists with same name
47 A Lead with this email id should exist Hauria d'haver-hi un client potencial amb aquest correu electrònic
48 A Product or Service Un producte o servei
79 Account with child nodes cannot be converted to ledger
80 Account with existing transaction can not be converted to group.
81 Account with existing transaction can not be deleted Un compte amb transaccions no es pot eliminar
82 Account with existing transaction cannot be converted to ledger El Compte de la transacció existent no es pot convertir en llibre major El Compte de la transacció existent no es pot convertir a llibre major
83 Account {0} cannot be a Group El Compte {0} no pot ser un grup
84 Account {0} does not belong to Company {1} El compte {0} no pertany a l'empresa {1}
85 Account {0} does not belong to company: {1}
201 Airline Aerolínia
202 All Tots
203 All Addresses.
204 All Contact All Contact Tots els contactes
205 All Contacts.
206 All Customer Contact Contacte tot client
207 All Customer Groups
1582 Latest Més recent
1583 Lead Client potencial
1584 Lead Details Detalls del client potencial
1585 Lead Id Identificació de l'enviament Identificador del client potencial
1586 Lead Name
1587 Lead Owner Responsable del client potencial
1588 Lead Source Origen de clients potencials
2788 Selecting "Yes" will allow you to create Bill of Material showing raw material and operational costs incurred to manufacture this item. En seleccionar "Sí" li permetrà crear la llista de materials que mostra la matèria primera i els costos operatius incorreguts en la fabricació d'aquest element.
2789 Selecting "Yes" will allow you to make a Production Order for this item.
2790 Selecting "Yes" will give a unique identity to each entity of this item which can be viewed in the Serial No master. En seleccionar "Sí" li donarà una identitat única a cada entitat d'aquest article que es pot veure a la taula mestre de Números de sèrie
2791 Selling De venda Vendes
2792 Selling Amount
2793 Selling Rate La tarifa de venda
2794 Selling Settings
3012 Supplier
3013 Supplier (Payable) Account Proveïdor (a pagar) Compte
3014 Supplier (vendor) name as entered in supplier master Nom del Proveïdor (venedor) tal i com es va entrar a la configuració de proveïdors
3015 Supplier > Supplier Type Proveïdor> Tipus Proveïdor Proveïdor > Tipus Proveïdor
3016 Supplier Account
3017 Supplier Account Head
3018 Supplier Address Adreça del Proveïdor
3020 Supplier Details
3021 Supplier Id Identificador de Proveïdor
3022 Supplier Invoice Date Data Factura Proveïdor
3023 Supplier Invoice No Factura de Proveïdor No Número de Factura de Proveïdor
3024 Supplier Name Nom del proveïdor
3025 Supplier Naming By NOmenament de proveïdors per
3026 Supplier Part Number PartNumber del proveïdor
3029 Supplier Reference Referència Proveïdor
3030 Supplier Type Tipus de Proveïdor
3031 Supplier Type / Supplier
3032 Supplier Type master. Taula metre de tipus de proveïdor Taula mestre de tipus de proveïdor
3033 Supplier Warehouse Magatzem Proveïdor
3034 Supplier Warehouse mandatory for sub-contracted Purchase Receipt
3035 Supplier database.
3046 Support Manager Gerent de Suport
3047 Support Password Contrasenya de suport
3048 Support Team Equip de suport
3049 Support Ticket Tiquet Tiquet de suport
3050 Support queries from customers.
3051 Symbol
3052 Sync Support Mails Sincronitzar Suport Mails

Some files were not shown because too many files have changed in this diff Show More