sell product changes
This commit is contained in:
@@ -1,35 +1,98 @@
|
||||
function ProductSell(o){
|
||||
|
||||
var app = this;
|
||||
var product = null;
|
||||
|
||||
this.defaults = {
|
||||
selector_filter_text: '#filter_text',
|
||||
lookup_product_url: ''
|
||||
lookup_product_url: '' ,
|
||||
selector_form: '#product_form',
|
||||
form_invalid: 'Az ürlap hibákat tartalmaz'
|
||||
};
|
||||
|
||||
init();
|
||||
|
||||
function init(){
|
||||
this.defaults = $.extend(this.defaults, o );
|
||||
$.extend(app.defaults, o );
|
||||
addBehaviorEnterPressedListener();
|
||||
addBehaviourBtnSell();
|
||||
addBehaviourBtnSellAndAppendToBill();
|
||||
addBehaviorAjaxSubmit();
|
||||
setFocus();
|
||||
addBehaviorCountEnterPressedListener();
|
||||
addBehaviorCountChangedListener();
|
||||
addBehaviorCurrencyEnterPressedListener();
|
||||
addBehaviorAccountEnterPressedListener();
|
||||
addBehaviorDiscountEnterPressedListener();
|
||||
productChanged();
|
||||
}
|
||||
|
||||
function setFocus(){
|
||||
$("#filter_text").focus();
|
||||
|
||||
}
|
||||
|
||||
function addBehaviorEnterPressedListener(){
|
||||
alert($( this.defaults.selector_filter_text ).length);
|
||||
$( this.defaults.selector_filter_text ).keypress(function( event ) {
|
||||
$( app.defaults.selector_filter_text ).keypress(function( event ) {
|
||||
if ( event.which == 13 ) {
|
||||
event.preventDefault();
|
||||
lookupProduct();
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
function addBehaviorCountEnterPressedListener(){
|
||||
$( '#productsaleform-count' ).keypress(function( event ) {
|
||||
if ( event.which == 13 ) {
|
||||
event.preventDefault();
|
||||
event.stopImmediatePropagation();
|
||||
$('#productsaleform-id_currency').focus();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function addBehaviorCurrencyEnterPressedListener(){
|
||||
$( '#productsaleform-id_currency' ).keypress(function( event ) {
|
||||
if ( event.which == 13 ) {
|
||||
event.preventDefault();
|
||||
event.stopImmediatePropagation();
|
||||
$('#productsaleform-id_account').focus();
|
||||
}
|
||||
});
|
||||
}
|
||||
function addBehaviorAccountEnterPressedListener(){
|
||||
$( '#productsaleform-id_account' ).keypress(function( event ) {
|
||||
if ( event.which == 13 ) {
|
||||
event.preventDefault();
|
||||
event.stopImmediatePropagation();
|
||||
$('#productsaleform-id_discount').focus();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function addBehaviorDiscountEnterPressedListener(){
|
||||
$( '#productsaleform-id_discount' ).keypress(function( event ) {
|
||||
if ( event.which == 13 ) {
|
||||
event.preventDefault();
|
||||
event.stopImmediatePropagation();
|
||||
$('#productsaleform-comment').focus();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function addBehaviorCountChangedListener(){
|
||||
$( '#productsaleform-count' ).change(function( event ) {
|
||||
refreshCalculatedValues();
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
function lookupProduct(){
|
||||
var data, url;
|
||||
|
||||
url = this.defaults.lookup_product_url;
|
||||
url = app.defaults.lookup_product_url;
|
||||
data = {
|
||||
'query' : $( this.defaults.selector_filter_text ).val()
|
||||
'query' : $( app.defaults.selector_filter_text ).val()
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
@@ -41,27 +104,106 @@ function ProductSell(o){
|
||||
}
|
||||
|
||||
function onLookupProductReady( data ){
|
||||
alert('ok');
|
||||
productChanged(data.product);
|
||||
app.product = data.product;
|
||||
productChanged();
|
||||
}
|
||||
|
||||
|
||||
function productChanged(product){
|
||||
function productChanged( ){
|
||||
clearForm();
|
||||
if ( product == null){
|
||||
applyProduct();
|
||||
if ( app.product != null){
|
||||
applyProduct( app.product);
|
||||
refreshCalculatedValues();
|
||||
$("#productsaleform-count").focus().select();
|
||||
}
|
||||
}
|
||||
|
||||
function clearForm(){
|
||||
$('.product-name').html('-');
|
||||
$('.product-price').html('-');
|
||||
$('.product-number').html('-');
|
||||
$('.product-barcode').html('-');
|
||||
$('.product-stock').html('-');
|
||||
$('.product-price').html('-');
|
||||
$('.product-sale-price').html('-');
|
||||
$("#productsaleform-count").val(1);
|
||||
$('#productsaleform-id_product').val('');
|
||||
$('#productsaleform-id_account').val('');
|
||||
}
|
||||
|
||||
function applyProduct(product){
|
||||
$('#productsaleform-id_product').val(product.id_product);
|
||||
$('.product-name').html(product.name);
|
||||
$('.product-sale-price').html(product.sale_price);
|
||||
$('.product-number').html(product.product_number);
|
||||
$('.product-barcode').html(product.barcode);
|
||||
$('.product-stock').html(product.stock);
|
||||
$('#productsaleform-id_account').val(product.id_account);
|
||||
|
||||
}
|
||||
|
||||
function refreshCalculatedValues(){
|
||||
var count,price;
|
||||
count = $("#productsaleform-count").val();
|
||||
count = +count;
|
||||
if ( isNaN(count)){
|
||||
count = 0;
|
||||
}
|
||||
price = count * app.product.sale_price;
|
||||
$('.product-count').html(count);
|
||||
$('.product-price').html(price);
|
||||
}
|
||||
|
||||
function addBehaviourBtnSell(){
|
||||
$('#btn_sell').on('click',submitSell);
|
||||
}
|
||||
|
||||
function addBehaviourBtnSellAndAppendToBill(){
|
||||
$('#btn_sell_append').on('click',submitSell);
|
||||
}
|
||||
|
||||
function submitSell(){
|
||||
$('#product_form').submit();
|
||||
}
|
||||
|
||||
function addBehaviorAjaxSubmit(){
|
||||
|
||||
$('body').on('beforeSubmit', '#product_form', function () {
|
||||
var form = $(this);
|
||||
// return false if form still have some validation errors
|
||||
if (form.find('.has-error').length) {
|
||||
$.notify(app.defaults.form_invalid, { 'type' : 'success' });
|
||||
return false;
|
||||
}
|
||||
// submit form
|
||||
$.ajax({
|
||||
url: form.attr('action'),
|
||||
type: 'post',
|
||||
data: form.serialize(),
|
||||
success: function (response) {
|
||||
// do something with response
|
||||
if ( response.code == 'success'){
|
||||
$.notify(response.message, { 'type' : 'success' });
|
||||
clearForm();
|
||||
refreshCalculatedValues();
|
||||
$("#filter_text").val('');
|
||||
setFocus();
|
||||
}else if ( response.code == 'invalid'){
|
||||
if ( response.errors ){
|
||||
$.each(response.errors, function (key, value){
|
||||
var message;
|
||||
message = $.map(value, function(obj){ return obj }).join(' ');
|
||||
$.notify(message, { 'type' : 'danger' });
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user