| Server IP : 162.214.74.102 / Your IP : 216.73.217.80 Web Server : Apache System : Linux dedi-4363141.lrsys.com.br 3.10.0-1160.119.1.el7.tuxcare.els25.x86_64 #1 SMP Wed Oct 1 17:37:27 UTC 2025 x86_64 User : lrsys ( 1015) PHP Version : 5.6.40 Disable Function : exec,passthru,shell_exec,system MySQL : ON | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/lrsys/public_html/lrsys_apps/dialogo/ui/lib/jslib/ |
Upload File : |
/* global _list_units, app_url, _L, existingFiles, _tagsSelecioandas */
var _list_units = [];
var _list_units_int = [];
var rowNum = 0;
var _list_width = [];
var _list_height = [];
var _list_diameter = [];
var _list_length = [];
var subTotalGeral = "0" + $("#_dec_point").val() + "00";
var qtdAnterior = ["1.000"];
var qtdCorrente = 1;
var validaDecimal;
var ind_decimal = $("#_dec_point").val();
var ind_mil = $("#_mil_point").val();
var curr_code = $("#_curr_code").val();
var optionsContact;
var optionsSegment;
Dropzone.autoDiscover = false;
$(document).ready(function () {
$("#emsg").hide();
$(".progress").hide();
var _url = $("#_url").val();
//habilita select2
$(".select2").select2({
theme: "bootstrap"
});
$('.amount').autoNumeric('init', {aSep: ind_mil, aDec: ind_decimal, mDec: 2, aSign: curr_code + ' '});
$('.discount').autoNumeric('init', {aSep: ind_mil, aDec: ind_decimal, mDec: 2, aSign: ''});
//função para exibir o ítem em estoque de acordo com o valor selecionado para unidade
$('#unit').on('change', function () {
if ($(this).val() == '') {
$('.addon-unity').text("un");
$('.input-unit').autoNumeric('update', {aSep: '', aDec: ind_decimal, mDec: 0, aSign: ' ', pSign: 's'});
} else {
$('.addon-unity').text(_list_units[$(this).val()]);
if (_list_units_int[$(this).val()] == 1) {
$('.input-unit').autoNumeric('update', {aSep: '', aDec: ind_decimal, mDec: 0, aSign: ' ', pSign: 's'});
$('#current_stock').val($('#current_stock').val() ) ;
} else {
$('.input-unit').autoNumeric('update', {aSep: '', aDec: ind_decimal, mDec: 3, aSign: ' ', pSign: 's'});
}
}
});
$('.input-unit').autoNumeric('init', {aSep: '', aDec: ind_decimal, mDec: 0, aSign: ' ', pSign: 's'});
$('.input-float').autoNumeric('init', {aSep: '', aDec: ind_decimal, mDec: 2, aSign: ' ', pSign: 's'});
$("#submit").click(function (e) {
e.preventDefault();
$('#ibox_form').block({message: null});
var _url = $("#_url").val();
var url_post = 'ps/add-post/';
if ($("#id").val() != "" && $("#id").val() > 0) {
url_post = 'ps/edit-post/';
}
$.post(_url + url_post, $("#rform").serialize())
.done(function (data) {
setTimeout(function () {
var sbutton = $("#submit");
var _url = $("#_url").val();
if ($.isNumeric(data)) {
var body = $("html, body");
body.animate({scrollTop: 0}, '1000', 'swing');
location.reload();
} else {
$('#ibox_form').unblock();
$("#emsgbody").html(data);
$("#emsg").show("slow");
var body = $("html, body");
body.animate({scrollTop: 0}, '1000', 'swing');
}
}, 2000);
});
});
///////////////////////////////////////////UNIT//////////////////////////
//adicionar unidade de medida
//formulario para adicionar
var ib_form_bootbox_unit = "<form class=\"form-horizontal push-10\" method=\"post\" onsubmit=\"return false;\">\n \n\
<div class=\"form-group\">\n <div class=\"col-xs-12\">\n <div class=\"form-material floating open\">\n <input class=\"form-control\" type=\"text\" id=\"unit_name\" name=\"unit_name\">\n <label for=\"envato_api_key\">" + _L['Unit Name'] + "<span class='red'>*</span></label>\n </div>\n </div>\n </div>\n\n\n\
<div class=\"form-group\">\n <div class=\"col-xs-12\">\n <div class=\"form-material floating open\">\n <input class=\"form-control\" type=\"text\" id=\"unit_initial\" maxlength='6' name=\"unit_initial\">\n <label for=\"envato_api_key\">" + _L['Unit Initials'] + "<span class='red'>*</span></label>\n </div>\n </div>\n </div>\n\n\n\
<div class=\"form-group\">\n <div class=\"col-md-12 col-sm-12 col-xs-12\">\n <div class=\"form-material floating open\"> <label class=\"\" >"+_L['Int Value']+"</label> <input type=\"checkbox\" data-toggle=\"toggle\" id=\"unit_int_value\" data-size=\"small\" data-on=\""+_L['Yes']+"\" data-off=\""+_L['No']+"\" name=\"int_value\" value=\"1\"> </div>\n </div>\n </div>\n\n\n\
</form>";
//adiciona nova unidade
$("#add_new_unit").click(function (e) {
var box = bootbox.dialog({
title: _L['Add New Unit'],
message: ib_form_bootbox_unit,
buttons: {
success: {
label: _L['Save'],
className: "btn-primary",
callback: function () {
var name_val = $('#unit_name').val();
var initial_val = $('#unit_initial').val();
var unit_int_value = ($('#unit_int_value').prop("checked") == true)?1:'';
$.post(_url + "unit/add-post/no-msg", {name: name_val, initials: initial_val,int_value:unit_int_value})
.done(function (data) {
if ($.isNumeric(data)) {
//recarrega as unidades de medida
loadUnits('');
} else {
bootbox.alert(data);
}
});
}
}
},
show: false
}
);
e.preventDefault();
box.modal('show');
$("[data-toggle='toggle']").bootstrapToggle();
});
if ($('#unit_id').val() != "") {
loadUnits($('#unit_id').val());
} else {
loadUnits('');
}
/////////////////////////////////////////Localização
var ib_form_location = "<form class=\"form-horizontal push-10\" method=\"post\" onsubmit=\"return false;\">\n <div class=\"form-group\">\n <div class=\"col-xs-12\">\n <div class=\"form-material floating open\">\n <input class=\"form-control\" type=\"text\" id=\"location_name\" name=\"location_name\">\n <label for=\"envato_api_key\">" + _L['Location'] + "</label>\n </div>\n </div>\n </div>\n\n</form>";
///adiciona nova l9ocalização
$("#add_new_location").click(function (e) {
e.preventDefault();
var box = bootbox.dialog({
title: _L['Add New Location'],
message: ib_form_location,
buttons: {
success: {
label: _L['Save'],
className: "btn-primary",
callback: function () {
var name_val = $('#location_name').val();
$.post(_url + "product_location/add-post/", {location_name: name_val})
.done(function (data) {
if ($.isNumeric(data)) {
//recarrega as unidades de medida
loadLocation('');
} else {
bootbox.alert(data);
}
});
}
}
},
show: false
}
);
box.modal('show');
});
if ($('#location_id').val() != "") {
loadLocation($('#location_id').val());
} else {
loadLocation('');
}
if ($('#category_id').val() != "") {
loadProductCategory($('#category_id').val());
} else {
loadProductCategory('');
}
if ($('#packing_type').val() != "") {
loadPacking($('#packing_type').val(), $('#product_packing_id').val());
}
//////////////////////////////////////Product CATEGORIA
//formulario para adicionar
var form_product_category = "<form class=\"form-horizontal push-10\" method=\"post\" onsubmit=\"return false;\">\n \n\
<div id='category_msg'></div>\n\
<div id=\"div_parent_category\" class=\"form-group\">\n <div class=\"col-xs-12\">\n <div class=\"form-material floating open\">\n <select name=\"parent\" id=\"parent_category\" style='width:100%' class=\"form-control select2\"></select>\n <label for=\"envato_api_key\">" + _L["Parent Category"] + "</label>\n </div>\n </div>\n </div>\n\n\n\
<div class=\"form-group\">\n <div class=\"col-xs-12\">\n <div class=\"form-material floating open\">\n <input class=\"form-control\" type=\"text\" id=\"name_category\" maxlength='60' name=\"name\">\n <label for=\"envato_api_key\">" + _L["Category"] + " <span class='red'>*</span></label>\n </div>\n </div>\n </div>\n\n\n\
</form>";
//adiciona nova categoria
$("#add_new_category").click(function (e) {
var box = bootbox.dialog({
title: _L['Add New Category'],
message: form_product_category,
buttons: {
success: {
label: _L['Save'],
className: "btn-primary",
callback: function () {
var name_val = $('#name_category').val();
var parent_val = $('#parent_category').val();
$.post(_url + "product_category/add-post/", {name: name_val, parent: parent_val})
.done(function (data) {
if ($.isNumeric(data)) {
// location.reload();
loadProductCategory();
} else {
bootbox.alert(data);
}
});
}
}
},
show: false
}
);
loadParentCategory('');
e.preventDefault();
box.modal('show');
});
//evento ao escolher o tipo de campo de embalagem em dados complementares
$('#packing_type').on('change', function () {
//carrega o combo de opções com as embalagens cadastradas
$("#div_pack_width").hide();
$("#div_pack_height").hide();
$("#div_pack_length").hide();
$("#div_pack_diameter").hide();
$("#img_pack").html("");
loadPacking($(this).val(), 0);
});
$('#packing').on('change', function () {
montaForm($('#packing_type').val(), $(this).val());
//opção escolhida é novo. libera para insercao
if ($(this).val() == '0') {
$("#pack_width").removeAttr('disabled');
$("#pack_height").removeAttr('disabled');
$("#pack_length").removeAttr('disabled');
$("#pack_diameter").removeAttr('disabled');
}
});
//aciona o montar form ao iniciar a tela
montaForm($('#packing_type').val(), $('#packing').val());
//função que monta o form para envelope, desabilita os campos que irão mostrar os dados
function montaForm(type, val) {
//desabilita os inputs
$("#pack_width").attr('disabled', 'disabled');
$("#pack_height").attr('disabled', 'disabled');
$("#pack_length").attr('disabled', 'disabled');
$("#pack_diameter").attr('disabled', 'disabled');
//monta para pacote ou caixa
if (type == 'package_box') {
$("#div_pack_width").show(); //mostra o input de medida do pacote
$("#pack_width").val(_list_width[val]);//atribbui o valor guardado no vetor com o id da embalagem width
$("#div_pack_height").show();//repete o conceito de cima
$("#pack_height").val(_list_height[val]);
$("#div_pack_length").show();
$("#pack_length").val(_list_length[val]);
$("#div_pack_diameter").hide();//esconde a medida diferente desse item
$("#img_pack").html("<img src='" + app_url + "/ui/theme/lrsys/img/package_box.png'/>");
} else if (type == 'envelope') {
$("#div_pack_width").show();
$("#pack_width").val(_list_width[val]);
$("#div_pack_height").hide();
$("#div_pack_length").show();
$("#pack_length").val(_list_length[val]);
$("#div_pack_diameter").hide();
$("#img_pack").html("<img src='" + app_url + "/ui/theme/lrsys/img/envelope.png'/>");
} else if (type == 'roller_cylinder') {
$("#div_pack_width").hide();
$("#div_pack_height").hide();
$("#div_pack_length").show();
$("#pack_length").val(_list_length[val]);
$("#div_pack_diameter").show();
$("#pack_diameter").val(_list_diameter[val]);
$("#img_pack").html("<img src='" + app_url + "/ui/theme/lrsys/img/roller_cylinder.png'/>");
} else {
$("#div_pack_width").hide();
$("#div_pack_height").hide();
$("#div_pack_length").hide();
$("#div_pack_diameter").hide();
$("#img_pack").html("");
$('#div_packing').hide();
}
}
////////////////////////IMAGES
var upload_resp;
var $ib_form_submit = $("#submit");
var ib_file = new Dropzone("#upload_container",
{
url: _url + "ps/product-add-image/" + $("#id").val(),
maxFiles: 100,
acceptedFiles: "image/*",
// autoProcessQueue: false,
addRemoveLinks: true,
dictRemoveFile: _L["Remove"],
dictCancelUpload: _L["Cancel"],
removedfile: function (file) {
var id = file.id;
$.ajax({
type: 'POST',
url: _url + 'ps/product-delete-image/',
data: "name=" + file.name,
dataType: 'html'
}).done(function (data) {
//se ok remove
//remove com uma vírgula caso encontre o id
$('#images').val($('#images').val().replace(id + ",", ""));
$('#images').val($('#images').val().replace("," + id, ""));
$('#images').val($('#images').val().replace(id, ""));
var obj = JSON.parse(data);
toastr.success(obj.msg);
if (obj.status == 'OK') {
var _ref;
return (_ref = file.previewElement) != null ? _ref.parentNode.removeChild(file.previewElement) : void 0;
}
});
}
}
);
ib_file.on("sending", function () {
$ib_form_submit.prop('disabled', true);
});
ib_file.on("success", function (file, response) {
$ib_form_submit.prop('disabled', false);
upload_resp = response;
if (upload_resp.success == 'Yes') {
$('#images').val(function (i, val) {
return val + (!val ? '' : ',') + upload_resp.id;
});
file.id = upload_resp.id;
toastr.success(upload_resp.msg);
} else {
toastr.error(upload_resp.msg);
ib_file.removeFile(file);
}
});
//Add existing files into dropzone arquivos existentes
for (i = 0; i < existingFiles.length; i++) {
ib_file.emit("addedfile", existingFiles[i]);
ib_file.createThumbnailFromUrl(existingFiles[i], existingFiles[i].url);
ib_file.emit("complete", existingFiles[i]);
}
/////////////////////////FIM IMAGES
//tags dos produtos
//formulario para adicionar
var form_product_tag = "<form class=\"form-horizontal push-10\" method=\"post\" onsubmit=\"return false;\">\n \n\
<div id='category_msg'></div>\n\
<div id=\"div_parent_tag\" class=\"form-group\">\n <div class=\"col-xs-12\">\n <div class=\"form-material floating open\">\n <select name=\"tag_group\" id=\"tag_group\" style='width:100%' class=\"form-control select2\"></select>\n <label for=\"envato_api_key\">" + _L["Group Tags"] + "<span class='red'>*</span></label>\n </div>\n </div>\n </div>\n\n\n\
<div class=\"form-group\">\n <div class=\"col-xs-12\">\n <div class=\"form-material floating open\">\n <input class=\"form-control\" type=\"text\" id=\"tag_name\" maxlength='60' name=\"tag_name\">\n <label id='label_data' for=\"envato_api_key\">" + _L["Tags"] + " <span class='red'>*</span></label>\n </div>\n </div>\n </div>\n\n\n\
</form>";
//adiciona nova tag e grupo de tag
$(".add_new_product_tag").click(function (e) {
var type = $(this).attr('data-type');
var box = bootbox.dialog({
title: _L['Add New Tags'],
message: form_product_tag,
buttons: {
success: {
label: _L['Save'],
className: "btn-primary",
callback: function () {
var name_val = $('#tag_name').val();
var tag_group = $('#tag_group').val();
$.post(_url + "product_tags/add-post/msg", {name: name_val, group: tag_group, type: type})
.done(function (data) {
if ($.isNumeric(data)) {
loadTags('');
} else {
bootbox.alert(data);
}
});
}
}
},
show: false
}
);
if ($(this).attr('data-type') == 'group_tags') {
$('#div_parent_tag').hide(); //esconde o cadastro da informação
$('#label_data').html(_L["Group Tags"] + "<span class='red'>*</span>");
} else {
loadGroupTags('');
}
e.preventDefault();
box.modal('show');
});
loadTags(_tagsSelecionadas);
////////////////////////modal IPI enqudramento/////////////
var $modal_ipi_framework = $('#ajax-modal');
$('#list_ipi_framework').on('click', function (e) {
e.preventDefault();
// create the backdrop and wait for next modal to be triggered
$('body').modalmanager('loading');
setTimeout(function () {
$modal_ipi_framework.load(_url + 'ps/modal_ipi_framework/', '', function () {
$modal_ipi_framework.modal();
});
}, 1000);
});
//Manufacturer
//formulario para adicionar
var form_manufacturer = "<form class=\"form-horizontal push-10\" method=\"post\" onsubmit=\"return false;\">\n \n\
<div class=\"form-group\">\n <div class=\"col-xs-12\">\n <div class=\"form-material floating open\">\n <input class=\"form-control\" type=\"text\" id=\"manufacturer_name\" maxlength='60' name=\"manufacturer_name\">\n <label for=\"envato_api_key\">" + _L['Manufacturer Name'] + "<span class='red'>*</span></label>\n </div>\n </div>\n </div>\n\n\n\
<div class=\"form-group\">\n <div class=\"col-xs-12\">\n <div class=\"form-material floating open\">\n <input class=\"form-control\" type=\"text\" id=\"manufacturer_code\" maxlength='60' name=\"manufacturer_code\">\n <label for=\"envato_api_key\">" + _L['Code'] + "</label>\n </div>\n </div>\n </div>\n\n\n\
</form>";
//adiciona novo
$("#add_new_manufacturer").click(function (e) {
var box = bootbox.dialog({
title: _L['Add New Manufacturer'],
message: form_manufacturer,
buttons: {
success: {
label: _L['Save'],
className: "btn-primary",
callback: function () {
var name_val = $('#manufacturer_name').val();
var code_val = $('#manufacturer_code').val();
$.post(_url + "product_manufacturer/add-post/msg", {name: name_val, code: code_val})
.done(function (data) {
if ($.isNumeric(data)) {
loadManufacturer('');
} else {
bootbox.alert(data);
}
});
}
}
},
show: false
}
);
e.preventDefault();
box.modal('show');
});
loadManufacturer($('#sys_items_manufacturer_id').val());
//////////////////ETAPAS
var $step_items = $('#step_items');
$('#step-add').on('click', function () {
$step_items.find('tbody')
.append(
'<tr> <td><input type="text" name="description_step[]" maxlength="100" class="form-control" value=""></td> <td class="col-xs-1"><button class="btn btn-danger btn-xs delete_step_item" ><i class="fa fa-trash"></i> </button></td></tr>'
);
});
//chamada para remover o contato adicionado
$("#step_items").on("click", ".delete_step_item", function (e) {
$(this).closest('tr').remove();
});
//PRODUCTION
var $modal_product_structure = $('#ajax-modal');
var $production_items = $('#production_items');
$('#product-add').on('click', function () {
// create the backdrop and wait for next modal to be triggered
$('body').modalmanager('loading');
$modal_product_structure.load(_url + 'ps/modal-list-structure/', $(".idItenBusc").serialize(), function () {
$modal_product_structure.modal();
});
});
$modal_product_structure.on('click', '.update', function () {
var tableControl = document.getElementById('items_table');
$modal_product_structure.modal('loading');
var guardaItens = [];
$('input:checkbox:checked', tableControl).each(function () {
rowNum++;
var item_code = $(this).closest('tr').find('td:eq(1)').text();
var item_name = $(this).closest('tr').find('td:eq(2)').text();
var item_price = $(this).closest('tr').find('td:eq(4)').text();
var item_id = $(this).closest('tr').find('td:eq(5)').text();
var item_unit = $(this).closest('tr').find('td:eq(6)').text();
var item_sifr = $(this).closest('tr').find('td:eq(7)').text();
$(tableControl).find('tr_' + item_id).hide();
$production_items.find('tbody')
.append(
'<tr><td><input type="hidden" name="item_id[]" value="' + item_id + '" class="idItenBusc"><input type="hidden" value="' + item_sifr + '" id="unit_itm' + rowNum + '"><input type="text" value="' + item_name + '" class="form-control itm_nm_ftura" id="i_' + rowNum + '" name="desc[]" readonly></td> <td><input type="text" class="form-control qtyl qtyVal' + rowNum + '" data-qty-inicial="1" value="1' + ind_decimal + '000" name="qty[]" id="' + rowNum + '"><input type="hidden" name="qtdBe[]" id="qtdBe' + rowNum + '" value="1' + ind_decimal + '000"></td> <td><input type="text" class="form-control item_price' + rowNum + ' am" name="amount[]" value="' + item_price + '" readonly></td> <td class="ltotal"><input type="text" class="form-control lvtotal lvtotal' + rowNum + ' am" readonly value="' + item_price + '"></td><td class="col-xs-1"><button class="btn btn-danger btn-xs delete_production_item" data-row=' + rowNum + ' ><i class="fa fa-trash"></i> </button></td></tr>'
);
$('.am').autoNumeric('init', {aSep: ind_mil, aDec: ind_decimal, mDec: 2, aSign: curr_code + ' '});
$('.am').trigger('blur');
if (item_unit == 0)
$('#' + rowNum + '').autoNumeric('init', {aSep: '', aDec: ind_decimal, mDec: 3, aSign: ' ' + item_sifr, pSign: 's'});
else
$('#' + rowNum + '').autoNumeric('init', {aSep: '', aDec: ind_decimal, mDec: 0, aSign: ' ' + item_sifr, pSign: 's'});
admItens(item_id, item_price);
// $('#i_' + rowNum).redactor({paragraphize: false,
// replaceDivs: false,
// linebreaks: true});
});
// console.debug(obj); // Write it to the console
// calculateTotal();
$modal_product_structure.modal('hide');
});
$production_items.on('blur', '.qtyl', function () {
if ($('.qtyVal' + this.id).val() == "")
return;
var unit = $("#unit_itm" + this.id).val();
var qtd_itn = $('.qtyVal' + this.id).val().replace(" " + unit, "");
$('#qtdBe' + this.id).val(calculaValor(qtd_itn, "1", "*", 3));
var preco_itn = $('.item_price' + this.id).val().replace(curr_code + " ", "");
var valorTotal = calculaValor(qtd_itn, preco_itn, "*", 3);
$('.lvtotal' + this.id).val(retrataValor(valorTotal));
var id = parseInt(this.id) - 1;
qtdAnterior[id] = $(this).attr("data-qty-inicial");
var valorAnterior = calculaValor(qtdAnterior[id], preco_itn, "*", 3);
var subTotalCorrente = "0.000";
subTotalCorrente = calculaValor(subTotalGeral, valorAnterior, "-", 3)
subTotalGeral = calculaValor(subTotalCorrente, valorTotal, "+", 3);
$('#sub_total').html(retrataValor(subTotalGeral));
// $("#subTotal").val(retrataValor(subTotalGeral));
$('.am').trigger('blur');
$(this).attr("data-qty-inicial", qtd_itn);
});
//remove os item de production.
$('#production_items').on("click", ".delete_production_item", function (e) {
val = $('.lvtotal' + $(this).attr("data-row")).val().replace(curr_code + " ", "");
subTotalGeral = calculaValor(subTotalGeral, val, "-", 2);
$('#sub_total').html(retrataValor(subTotalGeral));
$("#subTotal").val(retrataValor(subTotalGeral));
$(this).closest('tr').remove();
});
loadStructure();
montaProduction($('#type_of_product').val());
$('#type_of_product').on('change', function () {
montaProduction($(this).val());
});
function montaProduction(val) {
if (val == 'Finished product' || val == 'Component') {
$('.step').show();
$('.structure').show();
} else {
$('#div_packing').show();
$('.step').hide();
$('.structure').hide();
}
}
//////////////////FIM PRODUÇÃO
///costs
var $cost_items = $('#cost_items');
$('.cost-add').on('click', function () {
$cost_items.find('tbody')
.append(
'<tr>'
+ '<td> <input type="text" value="' + $("#data_atual").val() + '" class="form-control datepicker" name="cost_date[]" datepicker data-date-format="yyyy-mm-dd" data-auto-close="true"> </td>'
+ '<td> <input type="text" name="cost_current_balance[]" class="form-control amount" autocomplete="off" data-a-sign="' + curr_code + ' " data-a-dec="' + ind_decimal + '" data-a-sep="' + ind_mil + '" data-d-group="2"></td>'
+ '<td> <input type="text" name="cost_previus_balance[]" class="form-control amount" autocomplete="off" data-a-sign="' + curr_code + ' " data-a-dec="' + ind_decimal + '" data-a-sep="' + ind_mil + '" data-d-group="2"></td>'
+ '<td> <input type="text" name="cost_recoverable_taxes[]" class="form-control amount" autocomplete="off" data-a-sign="' + curr_code + ' " data-a-dec="' + ind_decimal + '" data-a-sep="' + ind_mil + '" data-d-group="2"></td>'
+ '<td> <input type="text" value="' + $("#sub_total").html() + '" name="cost_price[]" class="form-control amount" autocomplete="off" data-a-sign="' + curr_code + ' " data-a-dec="' + ind_decimal + '" data-a-sep="' + ind_mil + '" data-d-group="2"></td>'
+ '<td> <input type="text" name="cost_average[]" class="form-control amount" autocomplete="off" data-a-sign="' + curr_code + ' " data-a-dec="' + ind_decimal + '" data-a-sep="' + ind_mil + '" data-d-group="2"></td>'
+ '<td> <input type="text" value="' + $("#sales_price").val() + '" name="cost_sales_price[]" class="form-control amount" autocomplete="off" data-a-sign="' + curr_code + ' " data-a-dec="' + ind_decimal + '" data-a-sep="' + ind_mil + '" data-d-group="2"></td>'
+ '<td class="col-xs-1"> <button class="btn btn-danger btn-xs delete_cost_item" ><i class="fa fa-trash"></i> </button></td></tr>'
);
$(".datepicker").datepicker();
$(".amount").autoNumeric('init');
$("#li_production").removeClass('active');
$("#li_costs").addClass('active');
});
//chamada para remover o contato adicionado
$("#cost_items").on("click", ".delete_cost_item", function (e) {
$(this).closest('tr').remove();
});
//costs
/////////////////preços diferenciados
var product_prices = $('#product_prices');
var row=$('#product_prices_row').val();
$('#price-add').on('click', function () {
//validação para saber se adiciona nova linha
var products_prices = document.getElementsByName('product_prices[]');
var adicionar=true;
for (var i = 0; i <products_prices.length; i++) {
if(products_prices[i].value==""){
adicionar=false;
}
}
if(adicionar){
product_prices.find('tbody')
.append(
'<tr> \n\
<td class=""><input type="hidden" name="product_row[]" value="'+row+'"> <input type="text" value="" class="form-control amount" name="product_prices[]" > </td> \n\
<td class=""><input type="text" value="" class="form-control input-unit" name="product_quantity[]" > </td> \n\
<td> <select name="product_segment_'+row+'[]" multiple="multiple" class="form-control product_segment select2">'+optionsSegment+'<select> <div class="form-group"><label class="col-md-8 control-label" for="" data-toggle="tooltip" title="Defina se este preço deve ser aplicado aos filhos dos SEGMENTOS escolhidos." data-original-title="Defina se este preço deve ser aplicado aos filhos dos SEGMENTOS escolhidos.">'+_L['Apply for children']+'</label><div class="col-md-4"><input type="checkbox" id="check_'+row+'"checked data-toggle="toggle" data-size="small" data-on="'+_L['Yes']+'" data-off="'+_L['No']+'" name="apply_children_segments['+row+']" value="1"></div></div></td> n\
<td> <select name="product_clients_'+row+'[]" multiple="multiple" class="form-control product_clients select2">'+optionsContact+'<select></td> \n\
<td> <select name="product_type_delivery[]" class="form-control "><option value="All">'+_L['All Type']+'</option><option value="Delivery">'+_L['Delivery']+'</option><option value="Withdrawal">'+_L['Withdrawal']+'</option><select></td> \n\
<td class=""> <div class="input-group"><input type="text" value="" class="form-control discount" name="product_margin_discount[]" > <span class="input-group-addon after" id="span_type_disc">%</span> </div> </td> \n\
<td class=""><span class="btn btn-danger btn-xs delete_price" ><i class="fa fa-trash"></i> </span></td>\n\
</tr>');
$("#check_"+row).bootstrapToggle();
$('.amount').autoNumeric('init', {aSep: ind_mil, aDec: ind_decimal, mDec: 2, aSign: curr_code + ' '});
$('.discount').autoNumeric('init', {aSep: ind_mil, aDec: ind_decimal, mDec: 2, aSign: ''});
$(".select2").select2({ theme: "bootstrap"});
$('.input-unit').autoNumeric('init', {aSep: '', aDec: ind_decimal, mDec: 0, aSign: ' ', pSign: 's'});
row++;
}else{
bootbox.alert(_L['There is a non-value price record, please enter this field first.'] );
}
// carrego o tooltip
// TODO: verificar pq a tooltip ta quebrando os campos do input.
tooltip();
});
product_prices.on("click", ".delete_price", function (e) {
$(this).closest('tr').remove();
});
///////////////fim dos preços diferenciados
loadContacts();
loadSegments();
// Scprit para Module_med_schedulling
$("#expense_item").select2({
theme: "bootstrap",
width: "100%",
ajax: {
url: $("#_url").val() + 'module_med_scheduling/ajax/tissExpenses/',
dataType: 'json',
delay: 250,
method: "POST",
data: function (params) {
var queryParameters = {
term: params.term
};
return queryParameters;
},
processResults: function (data) {
return {
results: $.map(data, function (item) {
return {
text: item.name,
id: item.id
}
})
};
},
cache: true
}
});
$('#expense_item').on('change', function(e){
console.log($(this).find(":selected").text());
var title = $(this).find(":selected").text().split(" - ");
title = title.splice(1);
title = title.join(" - ")
console.log(title);
$("#description").val(title);
$("#description").attr('readonly', 'readonly');
});
});
//função que carrega as unidades de medidas no select
function loadManufacturer(val) {
//carrega os grupos;
$.getJSON($("#_url").val() + 'product_manufacturer/ajax-list', function (j) {
var options = '';
options += '<option value="">' + _L['Select'] + '</option>';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].id + '">' + j[i].code + " - " + j[i].name + '</option>';
}
$('#manufacturer').html(options);
if (val != '') {
$('#manufacturer').select2('val', val);
}
});
}
//função que carrega as unidades de medidas no select
function loadUnits(val) {
//carrega os grupos;
$.getJSON($("#_url").val() + 'unit/ajax-list', function (j) {
var options = '';
options += '<option value="">' + _L['Select'] + '</option>';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].id + '">' + j[i].initials + " - " + j[i].name + '</option>';
//atribuo as opções retornadas a lista de unidades
//utilizzo para mostrar o ítem correto em estoque
_list_units[j[i].id] = j[i].initials;
_list_units_int[j[i].id] = j[i].int_value;
}
// $('#commercial_unit').html(options); //carrega nos dois select
// $('#tax_unit').html(options);
$('#unit').html(options);
if ('val' != '') {
$('#unit').select2('val', val);
}
});
}
//load category
function loadProductCategory(val) {
//carrega os grupos;
$.getJSON($("#_url").val() + 'product_category/ajax-list', function (j) {
var options = '';
options += '<option value="">' + _L['Select'] + '</option>';
for (var i = 0; i < j.length; i++) {
if (j[i].name_parent === null) {
options += '<option value="' + j[i].id + '">' + j[i].name + '</option>';
} else {
options += '<option value="' + j[i].id + '">' + j[i].name_parent + " > " + j[i].name + '</option>';
}
}
$('#category').html(options);
if (val != '') {
$('#category').select2('val', val);
}
});
}
//função que carrega as localizações no select
function loadLocation(val) {
//carrega os grupos;
$.getJSON($("#_url").val() + 'product_location/ajax-list', function (j) {
if (j != null) {
var options = '';
options += '<option value="">' + _L['Select'] + '</option>';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].id + '">' + j[i].name + '</option>';
}
$('#location').html(options);
if ('val' != '') {
$('#location').select2('val', val);
}
}
});
}
//metodo que carrega as categorias dentro bo bootbox, para adicionar categoria
function loadParentCategory() {
//carega as categorias pai antes de mostrar
$.getJSON($("#_url").val() + 'product_category/ajax-list-parent', function (j) {
var options = '';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].id + '">' + j[i].name + '</option>';
}
if (options != '') {
$('#parent_category').html("<option value=''>" + _L['Select Category'] + "</option>" + options);
$(".select2").select2({
theme: "bootstrap"
});
} else {
$('#div_parent_category').hide();
}
});
/// carrega no form ou esconde a div, caso ainda não exista
}
//CARREGA AS EMBALAGENS
function loadPacking(type, val) {
if (type) {
$.getJSON($("#_url").val() + 'product_packing/ajax-list', {type: type}, function (j) {
var options = '';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].id + '">' + j[i].description + '</option>';
_list_width[j[i].id] = j[i].width;
_list_height[j[i].id] = j[i].height;
_list_diameter[j[i].id] = j[i].diameter;
_list_length[j[i].id] = j[i].length;
}
options += '<option value="0">' + _L['Add New Packing'] + ' ... </option>'; //0 para novo
_list_width[0] = '';
_list_height[0] = '';
_list_diameter[0] = '';
_list_length[0] = '';
$('#packing').html(options);
$('#packing').select2('val', val);
$('#div_packing').show();
});
} else {
$('#div_packing').hide();
}
}
function loadGroupTags(val) {
//carega as categorias pai antes de mostrar
$.getJSON($("#_url").val() + 'product_tags/ajax-list-group', function (j) {
var options = '';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].id + '">' + j[i].name + '</option>';
}
if (options != '') {
$('#tag_group').html("<option value=''>" + _L['Select'] + "</option>" + options);
$(".select2").select2({
theme: "bootstrap"
});
$("#tag_group").select2("val", val);
}
});
/// carrega no form ou esconde a div, caso ainda não exista
}
//carrega as tags
function loadTags(tags_selecionadas) {
//carega as categorias pai antes de mostrar
$.getJSON($("#_url").val() + 'product_tags/ajax-list', function (j) {
var options = '';
for (var i = 0; i < j.length; i++) {
if (j[i].group_id === null) {
options += '<optgroup label="' + j[i].name + '">';
} else {
//verifica se no alterar precisa selecioanr as tags
options += '<option value="' + j[i].id + '">' + j[i].group_name + " > " + j[i].name + '</option>';
}
}
//remove o select 2
$('#tags').select2('destroy');
//verifica as tags que foram selecionadas
if (tags_selecionadas != "") {
for (var i = 0; i < tags_selecionadas.length; i++) {
options = options.replace('value="' + tags_selecionadas[i] + '"', 'value="' + tags_selecionadas[i] + '" selected')
}
}
//atribui as opções ao select
$('#tags').html(options);
// habilita o select2
$('#tags').select2();
});
/// carrega no form ou esconde a div, caso ainda não exista
}
//carrega os produtos que compõem a estrutura
function loadStructure() {
//carega as categorias pai antes de mostrar
$.getJSON($("#_url").val() + 'ps/ajax-product-structure/' + $("#id").val(), function (j) {
for (var i = 0; i < j.length; i++) {
rowNum++;
var preco_itn = calculaValor(j[i].production_qty, j[i].price, "*", 2);
$('#production_items').find('tbody')
.append(
'<tr><td><input type="hidden" name="item_id[]" value="' + j[i].id + '" class="idItenBusc"><input type="hidden" value="' + j[i].item_sifr + '" id="unit_itm' + rowNum + '"><input type="text" value="' + j[i].description + '" class="form-control itm_nm_ftura" id="i_' + rowNum + '" readonly></td> <td><input type="text" class="form-control qtyl qtyVal' + rowNum + '" value="' + j[i].production_qty + '" name="qty[]" data-qty-inicial="' + j[i].production_qty + '" id="' + rowNum + '"><input type="hidden" name="qtdBe[]" id="qtdBe' + rowNum + '" value="' + j[i].production_qty + '"></td> <td><input type="text" class="form-control item_price' + rowNum + ' am" name="amount[]" value="' + j[i].price + '" readonly></td> <td class="ltotal"><input type="text" class="form-control lvtotal lvtotal' + rowNum + ' am" readonly value="' + (preco_itn) + '"></td><td class="col-xs-1"><button class="btn btn-danger btn-xs delete_production_item" data-row=' + rowNum + ' ><i class="fa fa-trash"></i> </button></td></tr>'
);
$('.am').autoNumeric('init', {aSep: ind_mil, aDec: ind_decimal, mDec: 2, aSign: curr_code + ' '});
$('.am').trigger('blur');
if (j[i].item_unit == 0)
$('#' + rowNum + '').autoNumeric('init', {aSep: ind_mil, aDec: ind_decimal, mDec: 3, aSign: ' ' + j[i].item_sifr, pSign: 's'});
else
$('#' + rowNum + '').autoNumeric('init', {aSep: ind_mil, aDec: ind_decimal, mDec: 0, aSign: ' ' + j[i].item_sifr, pSign: 's'});
// admItens(j[i].id, j[i].price);
subTotalGeral = calculaValor(subTotalGeral, preco_itn, "+", 3);
$('#sub_total').html(retrataValor(subTotalGeral));
}
});
}
//adiciona o item
function admItens(item_id, item_price) {
var unit = $("#unit_itm" + item_id).val();
var preco_itn = item_price.replace(curr_code + " ", "");
subTotalGeral = calculaValor(subTotalGeral, preco_itn, "+", 3);
$('#sub_total').html(retrataValor(subTotalGeral));
}
function retrataValor(val) {
var valor = val.replace(".", "");
var valorDecimal = ind_decimal + '' + valor.substr(valor.length - 2);
var valorCenMil = valor.substr(0, valor.length - 2);
var primCasa = "";
var segCasa = "";
var terCasa = "";
var quaCasa = "";
var quiCasa = "";
var valorFim;
var tamnh = valorCenMil.length;
if (tamnh <= 3) {
valorFim = valorCenMil + valorDecimal;
} else {
if (tamnh <= 6) {
var primCasa = valorCenMil.substr(tamnh - 3, 3);
var segCasa = valorCenMil.substr(0, tamnh - 3);
valorFim = segCasa + ind_mil + primCasa + valorDecimal;
} else if (tamnh <= 9) {
var primCasa = valorCenMil.substr(tamnh - 3, 3);
var segCasa = valorCenMil.substr(tamnh - 6, 3);
var terCasa = valorCenMil.substr(0, tamnh - 6);
valorFim = terCasa + ind_mil + segCasa + ind_mil + primCasa + valorDecimal;
} else if (tamnh <= 12) {
var primCasa = valorCenMil.substr(tamnh - 3, 3);
var segCasa = valorCenMil.substr(tamnh - 6, 3);
var terCasa = valorCenMil.substr(tamnh - 9, 3);
var quaCasa = valorCenMil.substr(0, tamnh - 9);
valorFim = quaCasa + ind_mil + terCasa + ind_mil + segCasa + ind_mil + primCasa + valorDecimal;
} else if (tamnh <= 15) {
var primCasa = valorCenMil.substr(tamnh - 3, 3);
var segCasa = valorCenMil.substr(tamnh - 6, 3);
var terCasa = valorCenMil.substr(tamnh - 9, 3);
var quaCasa = valorCenMil.substr(tamnh - 12, 3);
var quiCasa = valorCenMil.substr(0, tamnh - 12);
valorFim = quiCasa + ind_mil + quaCasa + ind_mil + terCasa + ind_mil + segCasa + ind_mil + primCasa + valorDecimal;
} else {
return;
}
}
return valorFim;
}
//Padronizar valor para JS tirando a mask.
function trataValor(val, qtdFix) {
if ((val.indexOf('.') <= 0) && (val.indexOf(',') <= 0)) {
if (qtdFix == 3)
val = val + '' + '.000';
else
val = val + '' + '.00';
}
var valor = val.replace(",", "");
valor = valor.replace(".", "");
valor = valor.substr(0, valor.length - qtdFix) + '.' + valor.substr(valor.length - qtdFix);
return valor;
}
function calculaValor(val1, val2, op, qtdFxd) {
var valor1 = trataValor(val1, qtdFxd);
var valor2 = trataValor(val2, qtdFxd);
var valorFinal;
switch (op) {
case "+":
valorFinal = (parseFloat(valor1) + parseFloat(valor2)).toFixed(qtdFxd);
break;
case "-":
valorFinal = (parseFloat(valor1) - parseFloat(valor2)).toFixed(qtdFxd);
break;
case "*":
valorFinal = (parseFloat(valor1) * parseFloat(valor2)).toFixed(qtdFxd);
break;
case "/":
valorFinal = (parseFloat(valor1) / parseFloat(valor2)).toFixed(qtdFxd);
break;
}
return(valorFinal);
}
function loadContacts() {
//carrega os segmentos
$.getJSON($("#_url").val() + 'contacts/ajax-list', function (j) {
var options = '';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].id + '">' + j[i].name_email + '</option>';
}
optionsContact=options;
});
}
function loadSegments(){
//carrega os segmentos
$.getJSON($("#_url").val()+'segment/ajax-list',function (j) {
var options = '';
for (var i = 0; i < j.length; i++) {
options += '<option value="' + j[i].id + '">' + j[i].name + '</option>';
}
optionsSegment=options;
});
}
function tooltip() {
$('body').find('[data-toggle="tooltip"]').tooltip();
}