Fixed merge conflict

This commit is contained in:
Nabin Hait 2016-10-18 15:37:33 +05:30
commit fa1cdd5bf0
30 changed files with 412 additions and 377 deletions

View File

@ -10,6 +10,7 @@
"docstatus": 0,
"doctype": "DocType",
"document_type": "Setup",
"editable_grid": 0,
"fields": [
{
"allow_on_submit": 0,
@ -249,14 +250,15 @@
"hide_toolbar": 0,
"icon": "icon-money",
"idx": 1,
"in_create": 0,
"image_view": 0,
"in_create": 1,
"in_dialog": 0,
"is_submittable": 0,
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"menu_index": 0,
"modified": "2016-05-16 15:23:14.770933",
"modified": "2016-10-18 14:22:00.207907",
"modified_by": "Administrator",
"module": "Accounts",
"name": "Cost Center",
@ -368,6 +370,5 @@
"read_only_onload": 0,
"search_fields": "parent_cost_center, is_group",
"sort_order": "ASC",
"track_seen": 0,
"version": 0
"track_seen": 0
}

View File

@ -71,7 +71,7 @@ class PurchaseInvoice(BuyingController):
frappe.throw(_("Cash or Bank Account is mandatory for making payment entry"))
if flt(self.paid_amount) + flt(self.write_off_amount) \
- flt(self.base_grand_total) > 1/(10**(self.precision("base_grand_total") + 1)):
- flt(self.grand_total) > 1/(10**(self.precision("base_grand_total") + 1)):
frappe.throw(_("""Paid amount + Write Off Amount can not be greater than Grand Total"""))
def create_remarks(self):

View File

@ -1,6 +1,7 @@
from frappe import _
data = {
def get_data():
return {
'fieldname': 'purchase_invoice',
'non_standard_fieldnames': {
'Delivery Note': 'against_sales_invoice',

View File

@ -1,6 +1,7 @@
from frappe import _
data = {
def get_data():
return {
'fieldname': 'sales_invoice',
'non_standard_fieldnames': {
'Delivery Note': 'against_sales_invoice',

View File

@ -93,7 +93,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({
me.get_data_from_server(function(){
me.load_data(false);
me.make_customer();
me.make_item_list(true);
me.make_item_list();
me.set_missing_values();
})
});
@ -269,7 +269,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({
make: function() {
this.make_search();
this.make_customer();
this.make_item_list(true);
this.make_item_list();
this.make_discount_field()
},
@ -290,7 +290,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({
this.search.$input.on("keyup", function() {
setTimeout(function() {
me.items = me.get_items();
me.make_item_list(false);
me.make_item_list();
}, 1000);
});
@ -375,7 +375,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({
}
},
make_item_list: function(index_search) {
make_item_list: function() {
var me = this;
if(!this.price_list) {
msgprint(__("Price List not found or disabled"));
@ -389,7 +389,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({
if (this.items) {
$.each(this.items, function(index, obj) {
if(!index_search || index < 16){
if(index < 30){
$(frappe.render_template("pos_item", {
item_code: obj.name,
item_price: format_currency(obj.price_list_rate, obj.currency),
@ -435,7 +435,7 @@ erpnext.pos.PointOfSale = erpnext.taxes_and_totals.extend({
key = this.search.$input.val().toLowerCase();
var re = new RegExp('%', 'g');
var reg = new RegExp(key.replace(re, '\\w*\\s*[a-zA-Z0-9]*'))
var reg = new RegExp(key.replace(re, '[\\w*\\s*[a-zA-Z0-9]*]*'))
search_status = true
if(key){

View File

@ -303,6 +303,11 @@ def make_purchase_invoice(source_name, target_doc=None):
target.base_amount = target.amount * flt(source_parent.conversion_rate)
target.qty = target.amount / flt(obj.rate) if (flt(obj.rate) and flt(obj.billed_amt)) else flt(obj.qty)
item = frappe.db.get_value("Item", target.item_code, ["item_group", "buying_cost_center"], as_dict=1)
target.cost_center = frappe.db.get_value("Project", obj.project, "cost_center") \
or item.buying_cost_center \
or frappe.db.get_value("Item Group", item.item_group, "default_cost_center")
doc = get_mapped_doc("Purchase Order", source_name, {
"Purchase Order": {
"doctype": "Purchase Invoice",

View File

@ -1,6 +1,7 @@
from frappe import _
data = {
def get_data():
return {
'fieldname': 'purchase_order',
'internal_links': {
'Material Request': ['items', 'material_request'],

View File

@ -1,6 +1,7 @@
from frappe import _
data = {
def get_data():
return {
'docstatus': 1,
'fieldname': 'request_for_quotation',
'transactions': [

View File

@ -1,6 +1,7 @@
from frappe import _
data = {
def get_data():
return {
'heatmap': True,
'heatmap_message': _('This is based on transactions against this Supplier. See timeline below for details'),
'fieldname': 'supplier',

View File

@ -1,6 +1,7 @@
from frappe import _
data = {
def get_data():
return {
'fieldname': 'supplier_quotation',
'internal_links': {
'Material Request': ['items', 'material_request'],

View File

@ -338,7 +338,7 @@ class calculate_taxes_and_totals(object):
tax.item_wise_tax_detail = json.dumps(tax.item_wise_tax_detail, separators=(',', ':'))
def set_discount_amount(self):
if not self.doc.discount_amount and self.doc.additional_discount_percentage:
if self.doc.additional_discount_percentage:
self.doc.discount_amount = flt(flt(self.doc.get(scrub(self.doc.apply_discount_on)))
* self.doc.additional_discount_percentage / 100, self.doc.precision("discount_amount"))

View File

@ -1,10 +1,8 @@
from frappe import _
data = {
'fieldname': 'opportunity',
'non_standard_fieldnames': {
'Quotation': 'prevdoc_docname'
},
def get_data():
return {
'fieldname': 'prevdoc_docname',
'transactions': [
{
'label': _('Related'),

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 52 KiB

After

Width:  |  Height:  |  Size: 47 KiB

View File

@ -18,6 +18,11 @@ choose to start its fiscal year on October 1. That way, they know what their
income will be for that year, and can adjust their expenses to maintain their
desired profit margins.
To set the Fiscal Year as default, click on the 'Default' button.
In case you have multiple companies sharing the same Fiscal Year, you can add
it into the grid as shown below.
<img class="screenshot" alt="Fiscal Year" src="{{docs_base_url}}/assets/img/accounts/fiscal-year.png">
{next}

View File

@ -1,7 +1,7 @@
A Material Request is a simple document identifying a requirement of a set of
Items (products or services) for a particular reason.
![Workflow]({{docs_base_url}}/assets/old_images/erpnext/material-request-workflow.jpg)
![Workflow]({{docs_base_url}}/assets/img/buying/material-request-flowchart.png)
To generate a Material Request manually go to:
@ -25,6 +25,8 @@ A Material Request can be of type:
* Material Issue - If the requested material is to be Issued.
* Manufacture - If the requested material is to be Produced.
The User can also raise a [Request For Quotation]({{docs_base_url}}/user/manual/en/buying/request-for-quotation.html) against a Material Request. To create a Request For Quotation the user can click on 'Make'.
> Info: Material Request is not mandatory. It is ideal if you have centralized
buying so that you can collect this information from various departments.

View File

@ -1,6 +1,7 @@
from frappe import _
data = {
def get_data():
return {
'heatmap': True,
'heatmap_message': _('This is based on the attendance of this Employee'),
'fieldname': 'employee',

View File

@ -58,6 +58,7 @@ class ProductionOrder(Document):
if so[0].project:
self.project = so[0].project
if not self.material_request:
self.validate_production_order_against_so()
else:
frappe.throw(_("Sales Order {0} is not valid").format(self.sales_order))

View File

@ -473,6 +473,7 @@ class ProductionPlanningTool(Document):
material_request.update({"material_request_type": item_wrapper.default_material_request_type})
for sales_order, requested_qty in items_to_be_requested[item].items():
if sales_order != 'No Sales Order':
material_request.append("items", {
"doctype": "Material Request Item",
"__islocal": 1,

View File

@ -1,6 +1,7 @@
from frappe import _
data = {
def get_data():
return {
'heatmap': True,
'heatmap_message': _('This is based on the Time Sheets created against this project'),
'fieldname': 'project',

View File

@ -1,6 +1,7 @@
from frappe import _
data = {
def get_data():
{
'heatmap': True,
'heatmap_message': _('This is based on the attendance of this Student'),
'fieldname': 'student',
@ -9,7 +10,7 @@ data = {
'items': ['Student Log', 'Student Group', 'Student Attendance']
},
{
'items': ['Program Enrollment', 'Fees', 'Assessment']
'items': ['Program Enrollment', 'Fees', 'Assessment', 'Guardian']
}
]
}

View File

@ -1,6 +1,7 @@
from frappe import _
data = {
def get_data():
return {
'heatmap': True,
'heatmap_message': _('This is based on transactions against this Customer. See timeline below for details'),
'fieldname': 'customer',

View File

@ -1,6 +1,7 @@
from frappe import _
data = {
def get_data():
return {
'fieldname': 'prevdoc_docname',
'transactions': [
{

View File

@ -443,6 +443,11 @@ def make_sales_invoice(source_name, target_doc=None, ignore_permissions=False):
target.base_amount = target.amount * flt(source_parent.conversion_rate)
target.qty = target.amount / flt(source.rate) if (source.rate and source.billed_amt) else source.qty
item = frappe.db.get_value("Item", target.item_code, ["item_group", "selling_cost_center"], as_dict=1)
target.cost_center = frappe.db.get_value("Project", obj.project, "cost_center") \
or item.selling_cost_center \
or frappe.db.get_value("Item Group", item.item_group, "default_cost_center")
doclist = get_mapped_doc("Sales Order", source_name, {
"Sales Order": {
"doctype": "Sales Invoice",

View File

@ -1,6 +1,7 @@
from frappe import _
data = {
def get_data():
return {
'fieldname': 'sales_order',
'non_standard_fieldnames': {
'Delivery Note': 'against_sales_order',

View File

@ -1,6 +1,7 @@
from frappe import _
data = {
def get_data():
return {
'fieldname': 'delivery_note_no',
'non_standard_fieldnames': {
'Sales Invoice': 'delivery_note',

View File

@ -1,6 +1,7 @@
from frappe import _
data = {
def get_data():
return {
'heatmap': True,
'heatmap_message': _('This is based on stock movement. See {0} for details')\
.format('<a href="#query-report/Stock Ledger">' + _('Stock Ledger') + '</a>'),

View File

@ -1,6 +1,8 @@
from frappe import _
data = {
def get_data():
return {
'fieldname': 'material_request',
'transactions': [
{
@ -10,6 +12,6 @@ data = {
{
'label': _('Manufacturing'),
'items': ['Production Order']
},
}
]
}

View File

@ -1,6 +1,7 @@
from frappe import _
data = {
def get_data():
return {
'fieldname': 'purchase_receipt_no',
'non_standard_fieldnames': {
'Purchase Invoice': 'purchase_receipt',