Merge branch 'develop'
This commit is contained in:
commit
84f25b3214
@ -2,7 +2,7 @@
|
|||||||
from __future__ import unicode_literals
|
from __future__ import unicode_literals
|
||||||
import frappe
|
import frappe
|
||||||
|
|
||||||
__version__ = '7.0.0'
|
__version__ = '7.0.1'
|
||||||
|
|
||||||
def get_default_company(user=None):
|
def get_default_company(user=None):
|
||||||
'''Get default company for user'''
|
'''Get default company for user'''
|
||||||
|
|||||||
@ -1,12 +1,24 @@
|
|||||||
from frappe import _
|
from frappe import _
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
'docstatus': 1,
|
|
||||||
'fieldname': 'purchase_order',
|
'fieldname': 'purchase_order',
|
||||||
|
'internal_links': {
|
||||||
|
'Material Request': ['items', 'material_request'],
|
||||||
|
'Supplier Quotation': ['items', 'supplier_quotation'],
|
||||||
|
'Project': ['project'],
|
||||||
|
},
|
||||||
'transactions': [
|
'transactions': [
|
||||||
{
|
{
|
||||||
'label': _('Related'),
|
'label': _('Related'),
|
||||||
'items': ['Purchase Receipt', 'Purchase Invoice', 'Stock Entry']
|
'items': ['Purchase Receipt', 'Purchase Invoice']
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'label': _('Reference'),
|
||||||
|
'items': ['Material Request', 'Supplier Quotation', 'Project']
|
||||||
|
},
|
||||||
|
{
|
||||||
|
'label': _('Sub-contracting'),
|
||||||
|
'items': ['Stock Entry']
|
||||||
},
|
},
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
@ -11,10 +11,24 @@ def get_data():
|
|||||||
"type": "doctype",
|
"type": "doctype",
|
||||||
"name": "Student"
|
"name": "Student"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "doctype",
|
||||||
|
"name": "Student Batch"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"type": "doctype",
|
"type": "doctype",
|
||||||
"name": "Student Group"
|
"name": "Student Group"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"type": "doctype",
|
||||||
|
"name": "Student Group Creation Tool"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"label": _("Admission"),
|
||||||
|
"items": [
|
||||||
|
|
||||||
{
|
{
|
||||||
"type": "doctype",
|
"type": "doctype",
|
||||||
"name": "Student Applicant"
|
"name": "Student Applicant"
|
||||||
@ -26,10 +40,6 @@ def get_data():
|
|||||||
{
|
{
|
||||||
"type": "doctype",
|
"type": "doctype",
|
||||||
"name": "Program Enrollment Tool"
|
"name": "Program Enrollment Tool"
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "doctype",
|
|
||||||
"name": "Student Group Creation Tool"
|
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -47,11 +57,11 @@ def get_data():
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "doctype",
|
"type": "doctype",
|
||||||
"name": "Scheduling Tool"
|
"name": "Examination"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"type": "doctype",
|
"type": "doctype",
|
||||||
"name": "Examination"
|
"name": "Scheduling Tool"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@ -78,6 +88,23 @@ def get_data():
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"label": _("LMS"),
|
||||||
|
"items": [
|
||||||
|
{
|
||||||
|
"type": "doctype",
|
||||||
|
"name": "Announcement"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "doctype",
|
||||||
|
"name": "Topic"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"type": "doctype",
|
||||||
|
"name": "Discussion"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"label": _("Setup"),
|
"label": _("Setup"),
|
||||||
"items": [
|
"items": [
|
||||||
|
|||||||
@ -43,15 +43,15 @@ class Opportunity(TransactionBase):
|
|||||||
|
|
||||||
def make_new_lead_if_required(self):
|
def make_new_lead_if_required(self):
|
||||||
"""Set lead against new opportunity"""
|
"""Set lead against new opportunity"""
|
||||||
if not (self.lead or self.customer):
|
if not (self.lead or self.customer) and self.contact_email:
|
||||||
lead_name = frappe.db.get_value("Lead", {"email_id": self.contact_email})
|
lead_name = frappe.db.get_value("Lead", {"email_id": self.contact_email})
|
||||||
if not lead_name:
|
if not lead_name:
|
||||||
sender_name = get_fullname(self.contact_email)
|
sender_name = get_fullname(self.contact_email)
|
||||||
if sender_name == self.contact_email:
|
if sender_name == self.contact_email:
|
||||||
sender_name = None
|
sender_name = None
|
||||||
|
|
||||||
if not sender_name and self.contact_email.index('@'):
|
if not sender_name and ('@' in self.contact_email):
|
||||||
email_name = self.contact_email[0:self.contact_email.index('@')]
|
email_name = self.contact_email.split('@')[0]
|
||||||
|
|
||||||
email_split = email_name.split('.')
|
email_split = email_name.split('.')
|
||||||
sender_name = ''
|
sender_name = ''
|
||||||
|
|||||||
@ -3,11 +3,13 @@
|
|||||||
"allow_import": 1,
|
"allow_import": 1,
|
||||||
"allow_rename": 1,
|
"allow_rename": 1,
|
||||||
"autoname": "field:employee_type_name",
|
"autoname": "field:employee_type_name",
|
||||||
|
"beta": 0,
|
||||||
"creation": "2013-01-10 16:34:14",
|
"creation": "2013-01-10 16:34:14",
|
||||||
"custom": 0,
|
"custom": 0,
|
||||||
"docstatus": 0,
|
"docstatus": 0,
|
||||||
"doctype": "DocType",
|
"doctype": "DocType",
|
||||||
"document_type": "Setup",
|
"document_type": "Setup",
|
||||||
|
"editable_grid": 0,
|
||||||
"fields": [
|
"fields": [
|
||||||
{
|
{
|
||||||
"allow_on_submit": 0,
|
"allow_on_submit": 0,
|
||||||
@ -17,6 +19,7 @@
|
|||||||
"fieldtype": "Data",
|
"fieldtype": "Data",
|
||||||
"hidden": 0,
|
"hidden": 0,
|
||||||
"ignore_user_permissions": 0,
|
"ignore_user_permissions": 0,
|
||||||
|
"ignore_xss_filter": 0,
|
||||||
"in_filter": 0,
|
"in_filter": 0,
|
||||||
"in_list_view": 1,
|
"in_list_view": 1,
|
||||||
"label": "Employment Type",
|
"label": "Employment Type",
|
||||||
@ -26,6 +29,7 @@
|
|||||||
"oldfieldtype": "Data",
|
"oldfieldtype": "Data",
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
"print_hide": 0,
|
"print_hide": 0,
|
||||||
|
"print_hide_if_no_value": 0,
|
||||||
"read_only": 0,
|
"read_only": 0,
|
||||||
"report_hide": 0,
|
"report_hide": 0,
|
||||||
"reqd": 1,
|
"reqd": 1,
|
||||||
@ -38,13 +42,14 @@
|
|||||||
"hide_toolbar": 0,
|
"hide_toolbar": 0,
|
||||||
"icon": "icon-flag",
|
"icon": "icon-flag",
|
||||||
"idx": 1,
|
"idx": 1,
|
||||||
|
"image_view": 0,
|
||||||
"in_create": 0,
|
"in_create": 0,
|
||||||
"in_dialog": 0,
|
"in_dialog": 0,
|
||||||
"is_submittable": 0,
|
"is_submittable": 0,
|
||||||
"issingle": 0,
|
"issingle": 0,
|
||||||
"istable": 0,
|
"istable": 0,
|
||||||
"max_attachments": 0,
|
"max_attachments": 0,
|
||||||
"modified": "2015-11-16 06:29:46.733350",
|
"modified": "2016-07-22 05:34:43.238512",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "HR",
|
"module": "HR",
|
||||||
"name": "Employment Type",
|
"name": "Employment Type",
|
||||||
@ -91,6 +96,9 @@
|
|||||||
"write": 1
|
"write": 1
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"quick_entry": 1,
|
||||||
"read_only": 0,
|
"read_only": 0,
|
||||||
"read_only_onload": 0
|
"read_only_onload": 0,
|
||||||
|
"sort_order": "DESC",
|
||||||
|
"track_seen": 0
|
||||||
}
|
}
|
||||||
@ -5,6 +5,8 @@ def execute():
|
|||||||
frappe.reload_doc('portal', 'doctype', 'homepage_featured_product')
|
frappe.reload_doc('portal', 'doctype', 'homepage_featured_product')
|
||||||
frappe.reload_doc('portal', 'doctype', 'homepage')
|
frappe.reload_doc('portal', 'doctype', 'homepage')
|
||||||
frappe.reload_doc('portal', 'doctype', 'products_settings')
|
frappe.reload_doc('portal', 'doctype', 'products_settings')
|
||||||
|
frappe.reload_doctype('Item')
|
||||||
|
frappe.reload_doctype('Item Group')
|
||||||
|
|
||||||
website_settings = frappe.get_doc('Website Settings', 'Website Settings')
|
website_settings = frappe.get_doc('Website Settings', 'Website Settings')
|
||||||
if frappe.db.exists('Web Page', website_settings.home_page):
|
if frappe.db.exists('Web Page', website_settings.home_page):
|
||||||
|
|||||||
@ -91,9 +91,6 @@ class Timesheet(Document):
|
|||||||
frappe.throw(_("Row {0}: Completed Qty cannot be more than {0} for operation {1}").format(data.idx, pending_qty, self.operation),
|
frappe.throw(_("Row {0}: Completed Qty cannot be more than {0} for operation {1}").format(data.idx, pending_qty, self.operation),
|
||||||
OverProductionLoggedError)
|
OverProductionLoggedError)
|
||||||
|
|
||||||
if data.billable and flt(data.billing_rate) == 0.0 and data.activity_type:
|
|
||||||
frappe.throw(_("Row {0}: Billing Rate must be greater than zero.").format(data.idx))
|
|
||||||
|
|
||||||
def update_production_order(self, time_sheet):
|
def update_production_order(self, time_sheet):
|
||||||
if self.production_order:
|
if self.production_order:
|
||||||
pro = frappe.get_doc('Production Order', self.production_order)
|
pro = frappe.get_doc('Production Order', self.production_order)
|
||||||
|
|||||||
@ -127,8 +127,9 @@
|
|||||||
.dashboard-list-item:last-child {
|
.dashboard-list-item:last-child {
|
||||||
border-bottom: none;
|
border-bottom: none;
|
||||||
}
|
}
|
||||||
.payment-toolbar {
|
.payment-toolbar .row {
|
||||||
margin-left: 35px;
|
width: 323px;
|
||||||
|
margin: 0 auto;
|
||||||
}
|
}
|
||||||
.payment-mode {
|
.payment-mode {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
@ -159,6 +160,38 @@
|
|||||||
background-color: #FDFDFD;
|
background-color: #FDFDFD;
|
||||||
border-color: #e8e8e8;
|
border-color: #e8e8e8;
|
||||||
}
|
}
|
||||||
|
.multimode-payments {
|
||||||
|
padding-left: 30px;
|
||||||
|
}
|
||||||
|
.payment-toolbar {
|
||||||
|
padding-right: 30px;
|
||||||
|
}
|
||||||
|
body[data-route="pos"] .modal-dialog {
|
||||||
|
width: 750px;
|
||||||
|
}
|
||||||
|
@media (max-width: 767px) {
|
||||||
|
body[data-route="pos"] .modal-dialog {
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
body[data-route="pos"] .modal-dialog .modal-content {
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@media (max-width: 767px) {
|
||||||
|
.amount-row h3 {
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
.pos-keyboard-key,
|
||||||
|
.delete-btn {
|
||||||
|
height: 50px;
|
||||||
|
}
|
||||||
|
.multimode-payments {
|
||||||
|
padding-left: 15px;
|
||||||
|
}
|
||||||
|
.payment-toolbar {
|
||||||
|
padding-right: 15px;
|
||||||
|
}
|
||||||
|
}
|
||||||
.amount-label {
|
.amount-label {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,7 +11,6 @@ erpnext.payments = erpnext.stock.StockController.extend({
|
|||||||
|
|
||||||
this.dialog.show();
|
this.dialog.show();
|
||||||
this.$body = this.dialog.body;
|
this.$body = this.dialog.body;
|
||||||
this.dialog.$wrapper.find('.modal-dialog').css("width", "750px");
|
|
||||||
this.set_payment_primary_action();
|
this.set_payment_primary_action();
|
||||||
this.make_keyboard();
|
this.make_keyboard();
|
||||||
},
|
},
|
||||||
|
|||||||
@ -1,40 +1,36 @@
|
|||||||
<div class="pos_payment row">
|
<div class="pos_payment row">
|
||||||
<div class="col-sm-6">
|
<div class="row amount-row">
|
||||||
<div class="row">
|
<div class="col-xs-6 col-sm-3 text-center">
|
||||||
<div class="col-xs-6 text-center">
|
<p class="amount-label"> Total <h3>{%= format_currency(grand_total, currency) %} </h3></p>
|
||||||
<p class="amount-label"> Total <h3>{%= format_currency(grand_total, currency) %} </h3></p>
|
</div>
|
||||||
</div>
|
<div class="col-xs-6 col-sm-3 text-center">
|
||||||
<div class="col-xs-6 text-center">
|
<p class="amount-label"> Paid <h3 class="paid_amount">{%= format_currency(paid_amount, currency) %}</h3></p>
|
||||||
<p class="amount-label"> Paid <h3 class="paid_amount">{%= format_currency(paid_amount, currency) %}</h3></p>
|
</div>
|
||||||
</div>
|
<div class="col-xs-6 col-sm-3 text-center">
|
||||||
</div>
|
<p class="amount-label"> Outstanding <h3 class="outstanding_amount">{%= format_currency(outstanding_amount, currency) %} </h3></p>
|
||||||
<hr>
|
</div>
|
||||||
<div class="multimode-payments">
|
<div class="col-xs-6 col-sm-3 text-center">
|
||||||
</div>
|
<p class="amount-label"> Change <h3 class="change_amount">{%= format_currency(change_amount, currency) %}</h3>
|
||||||
</div>
|
</p>
|
||||||
<div class="col-sm-6">
|
</div>
|
||||||
<div class="row">
|
</div>
|
||||||
<div class="col-xs-6 text-center">
|
<hr>
|
||||||
<p class="amount-label"> Outstanding <h3 class="outstanding_amount">{%= format_currency(outstanding_amount, currency) %} </h3></p>
|
<div class="row">
|
||||||
</div>
|
<div class="col-sm-6 multimode-payments">
|
||||||
<div class="col-xs-6 text-center">
|
</div>
|
||||||
<p class="amount-label"> Change <h3 class="change_amount">{%= format_currency(change_amount, currency) %}</h3></p>
|
<div class="col-sm-6 payment-toolbar">
|
||||||
</div>
|
{% for(var i=0; i<3; i++) { %}
|
||||||
</div>
|
|
||||||
<hr>
|
|
||||||
<div class="payment-toolbar">
|
|
||||||
{% for(var i=0; i<3; i++) { %}
|
|
||||||
<div class="row">
|
|
||||||
{% for(var j=i*3; j<(i+1)*3; j++) { %}
|
|
||||||
<button type="button" class="btn btn-default pos-keyboard-key">{{j+1}}</button>
|
|
||||||
{% } %}
|
|
||||||
</div>
|
|
||||||
{% } %}
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<button type="button" class="btn btn-default delete-btn">Del</button>
|
{% for(var j=i*3; j<(i+1)*3; j++) { %}
|
||||||
<button type="button" class="btn btn-default pos-keyboard-key">0</button>
|
<button type="button" class="btn btn-default pos-keyboard-key">{{j+1}}</button>
|
||||||
<button type="button" class="btn btn-default pos-keyboard-key">.</button>
|
{% } %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
{% } %}
|
||||||
</div>
|
<div class="row">
|
||||||
|
<button type="button" class="btn btn-default delete-btn">Del</button>
|
||||||
|
<button type="button" class="btn btn-default pos-keyboard-key">0</button>
|
||||||
|
<button type="button" class="btn btn-default pos-keyboard-key">.</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -162,7 +162,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.payment-toolbar {
|
.payment-toolbar {
|
||||||
margin-left: 35px;
|
.row {
|
||||||
|
width: 323px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.payment-mode {
|
.payment-mode {
|
||||||
@ -197,6 +200,41 @@
|
|||||||
border-color: #e8e8e8;
|
border-color: #e8e8e8;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.multimode-payments {
|
||||||
|
padding-left: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.payment-toolbar {
|
||||||
|
padding-right: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
|
body[data-route="pos"] .modal-dialog {
|
||||||
|
width: 750px;
|
||||||
|
|
||||||
|
@media (max-width: @screen-xs) {
|
||||||
|
width: auto;
|
||||||
|
|
||||||
|
.modal-content {
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: @screen-xs) {
|
||||||
|
.amount-row h3 {
|
||||||
|
font-size: 15px;
|
||||||
|
}
|
||||||
|
.pos-keyboard-key, .delete-btn {
|
||||||
|
height: 50px;
|
||||||
|
}
|
||||||
|
.multimode-payments {
|
||||||
|
padding-left: 15px;
|
||||||
|
}
|
||||||
|
.payment-toolbar {
|
||||||
|
padding-right: 15px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.amount-label {
|
.amount-label {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -126,7 +126,7 @@
|
|||||||
"label": "Academic Term",
|
"label": "Academic Term",
|
||||||
"length": 0,
|
"length": 0,
|
||||||
"no_copy": 0,
|
"no_copy": 0,
|
||||||
"options": "Academic Year",
|
"options": "Academic Term",
|
||||||
"permlevel": 0,
|
"permlevel": 0,
|
||||||
"precision": "",
|
"precision": "",
|
||||||
"print_hide": 0,
|
"print_hide": 0,
|
||||||
@ -199,7 +199,7 @@
|
|||||||
"issingle": 0,
|
"issingle": 0,
|
||||||
"istable": 0,
|
"istable": 0,
|
||||||
"max_attachments": 0,
|
"max_attachments": 0,
|
||||||
"modified": "2016-07-22 05:31:12.683404",
|
"modified": "2016-07-22 09:19:51.141234",
|
||||||
"modified_by": "Administrator",
|
"modified_by": "Administrator",
|
||||||
"module": "Schools",
|
"module": "Schools",
|
||||||
"name": "Student Batch",
|
"name": "Student Batch",
|
||||||
|
|||||||
@ -5,8 +5,7 @@
|
|||||||
"autoname": "naming_series:",
|
"autoname": "naming_series:",
|
||||||
"beta": 0,
|
"beta": 0,
|
||||||
"creation": "2013-05-24 19:29:08",
|
"creation": "2013-05-24 19:29:08",
|
||||||
"custom": 0,
|
"custom": 0,
|
||||||
"default_print_format": "test123",
|
|
||||||
"docstatus": 0,
|
"docstatus": 0,
|
||||||
"doctype": "DocType",
|
"doctype": "DocType",
|
||||||
"document_type": "Document",
|
"document_type": "Document",
|
||||||
|
|||||||
@ -79,7 +79,7 @@ erpnext.buying.MaterialRequestController = erpnext.buying.BuyingController.exten
|
|||||||
|
|
||||||
// stop
|
// stop
|
||||||
cur_frm.add_custom_button(__('Stop'),
|
cur_frm.add_custom_button(__('Stop'),
|
||||||
cur_frm.cscript['Stop Material Request'], __("Status"));
|
cur_frm.cscript['Stop Material Request']);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -102,7 +102,7 @@ erpnext.buying.MaterialRequestController = erpnext.buying.BuyingController.exten
|
|||||||
|
|
||||||
if(doc.docstatus == 1 && doc.status == 'Stopped')
|
if(doc.docstatus == 1 && doc.status == 'Stopped')
|
||||||
cur_frm.add_custom_button(__('Re-open'),
|
cur_frm.add_custom_button(__('Re-open'),
|
||||||
cur_frm.cscript['Unstop Material Request'], __("Status"));
|
cur_frm.cscript['Unstop Material Request']);
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,6 @@
|
|||||||
from frappe import _
|
from frappe import _
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
'docstatus': 1,
|
|
||||||
'fieldname': 'material_request',
|
'fieldname': 'material_request',
|
||||||
'transactions': [
|
'transactions': [
|
||||||
{
|
{
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user