Skip to content

Instantly share code, notes, and snippets.

@rvgarimrj
Created March 15, 2016 19:49
Show Gist options
  • Save rvgarimrj/ed26bd1e08c1ebd2ca16 to your computer and use it in GitHub Desktop.
Save rvgarimrj/ed26bd1e08c1ebd2ca16 to your computer and use it in GitHub Desktop.
GIst tentativa de ler codigo de barras
<% if @tipo == "devolucao" %>
<div class="nested-fields">
<div class="row listCod" data-cod="<%= f.object.barcode %>">
<div class="small-6 columns show-for-small-only">
<%= f.input :barcode, label: "Cod Barras", input_html: { class: 'barcode_ror_dev' } %>
</div>
<%= f.input :order_id, :as => :hidden, input_html: { class: 'order_id_ror_dev' } %>
<div class="show-for-medium-up small-2 columns">
<%= f.input :cod_produto, label: "Produto", input_html: { class: 'cod_produto_ror_dev' } %>
</div>
<%= f.input :desc_produto,:as => :hidden, input_html: { class: 'desc_produto_ror_dev' } %>
<%= f.input :cod_cor,:as => :hidden, input_html: { class: 'cod_cor_ror_dev' } %>
<div class="small-2 show-for-medium-up columns">
<%= f.input :desc_cor,label: "Cor", input_html: { class: 'desc_cor_ror_dev' } %>
</div>
<div class="small-2 show-for-medium-up columns">
<%= f.input :desc_tamanho,label: "Tam", input_html: { class: 'desc_tamanho_ror_dev' } %>
</div>
<div class="small-2 show-for-medium-up columns">
<%= f.input :preco,label: "Preço",input_html: { class: 'preco_ror_dev' } %>
</div>
<div class="small-6 medium-2 columns">
<%= f.input :quantidade_dev,label: "Qtd Dev", input_html: { class: 'quantidade_ror_dev' } %>
</div>
<div class="show-for-medium-up medium-2 columns end">
<%= f.input :total_dev,label: "Total Dev",input_html: { class: 'total_ror_dev' } %>
</div>
<div class="small-1 columns end">
<%= link_to_remove_association "-", f, :class => "button tiny alert remove"%>
</div>
</div>
</div>
<% else %>
<div class="nested-fields">
<div class="row">
<div class="small-6 medium-2 columns leitor">
<form action="#" method="post">
<a id='scanBtn' type="button"
onclick="bridgeit.scan('scanBtn', 'onAfterCaptureScan');">Scan a Code</a>
<input class = "cod_barras" type="text" name="cod_barras" value="" />
</form>
</div>
<div class="small-5 columns end not_found">
<span class="not_found">Produto não existe ! <%= link_to 'Cadastrar ?', new_product_path, :target => "_blank", class: "button radius tiny" %></span>
</div>
</div>
<div class="row">
<%= f.input :id, :as => :hidden, input_html: { class: 'id_detail_ror' } %>
<div class="small-6 columns show-for-small-only">
<%= f.input :barcode, :as => :hidden, input_html: { class: 'barcode_ror' } %>
</div>
<%= f.input :order_id, :as => :hidden, input_html: { class: 'order_id_ror' } %>
<div class="show-for-medium-up small-1 columns">
<%= f.input :cod_produto, label: "Produto", input_html: { class: 'cod_produto_ror' } %>
</div>
<%= f.input :desc_produto,:as => :hidden, input_html: { class: 'desc_produto_ror' } %>
<%= f.input :cod_cor,:as => :hidden, input_html: { class: 'cod_cor_ror' } %>
<div class="small-2 show-for-medium-up columns">
<%= f.input :desc_cor,label: "Cor", input_html: { class: 'desc_cor_ror' } %>
</div>
<div class="small-1 show-for-medium-up columns">
<%= f.input :desc_tamanho,label: "Tam", input_html: { class: 'desc_tamanho_ror' } %>
</div>
<div class="small-2 show-for-medium-up columns">
<%= f.input :preco,label: "Preço",input_html: { class: 'preco_ror' } %>
</div>
<div class="small-4 medium-1 columns">
<% if !f.object.id.present? %>
<%= f.input :quantidade,label: "Qtd", input_html: { class: 'quantidade_ror' } %>
<% else %>
<%= f.input :quantidade,label: "Qtd", input_html: { class: 'read_only' } %>
<% end %>
</div>
<div class="show-for-medium-up small-2 columns end">
<%= f.input :total,label: "Total",input_html: { class: 'total_ror' } %>
</div>
<div class="small-1 columns end">
<% if !f.object.id.present? %>
<%= link_to_remove_association "-", f, :class => "button tiny alert"%>
<% end %>
</div>
<hr/>
</div>
</div>
<% end %>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title><%= content_for?(:title) ? yield(:title) : "Jolét" %></title>
<%= Gon::Base.render_data({}) %>
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>
<%= javascript_include_tag "vendor/modernizr" %>
<script type="text/javascript" src="http://api.bridgeit.mobi/bridgeit/bridgeit.js"></script>
<script type="text/javascript">
function onAfterCaptureScan(event)
{
var text = event.value;
alert(text);
novo_cod_barras($this,text);
// var btn_barcode = $(this);
// var parents_barcode = $(this).parents('.nested-fields');
// var input_barcode = $(parent).find('.cod_barras');
// $(input_barcode).val(text);
}
</script>
<%= csrf_meta_tags %>
</head>
<body>
<div class="contain-to-grid sticky">
<nav class="top-bar" data-topbar role="navigation">
<ul class="title-area">
<li class="name">
<h1><%= link_to "Jolét", root_path %></li></h1>
</li>
<!-- Remove the class "menu-icon" to get rid of menu icon. Take out "Menu" to just have icon alone -->
<li class="toggle-topbar menu-icon"><a href="#"><span>Menu</span></a></li>
</ul>
<section class="top-bar-section">
<ul class="left">
<% if user_signed_in? %>
<li><%= link_to "Logout", destroy_user_session_path, method: :delete, :class => 'navbar-link'%></li>
<% else %>
<li><%= link_to "Login", new_user_session_path, :class => 'navbar-link'%></li>
<% end %>
</ul>
<!-- Right Nav Section -->
<ul class="right">
<li class="has-dropdown">
<a href="#">Cadastros</a>
<ul class="dropdown">
<li><%= link_to "Produto", products_path %></li>
<li><%= link_to "Cliente", customers_path %></li>
<li><%= link_to "Cor", colors_path %></li>
<li><%= link_to "Tamanho", sizes_path %></li>
</ul>
</li>
<li class="divider"></li>
<li class="has-dropdown">
<a href="#">Pedidos</a>
<ul class="dropdown">
<li><%= link_to "Listar", orders_path %></li>
<li><%= link_to "Novo", new_order_path %></li>
</ul>
<li class="divider"></li>
<li><%= link_to "Relatórios" %></li>
<li class="has-dropdown">
<a href="#">Exportar</a>
<ul class="dropdown">
<li><%= link_to "Código de Barras", variations_export_path(format: "csv") %></li>
<li><%= link_to "Base de dados", new_order_path %></li>
</ul>
</section>
</nav>
</div>
<div class="row">
<div class="small-12 columns">
<p class="alert"><%= alert %></p>
<!-- <% if user_signed_in? %>
<%= current_user.email %>
<% end %> -->
<% flash.each do |key, value| %>
<div data-alert class="alert-box radius success"><%= value %></div>
<% end %>
<%= yield %>
</div>
</div>
</body>
</html>
$(document).ready(function(){
$("#inputCod").keyup(function(){
var cod = $(this).val();
$(".listCod").show();
if(cod){
$(".listCod:not([data-cod^="+ cod +"])").hide();
}
});
});
jQuery(document).ready(function($)
{
function novo_cod_barras(buttonScan,valor)
{
alert(buttonScan+valor);
if (valor === "") return;
var parent = $(buttonScan).parents('.nested-fields');
var cod_barras = $(parent).find('.cod_barras');
var desc_produto = $(parent).find('.desc_produto_ror');
var cod_cor = $(parent).find('.cod_cor_ror');
var desc_cor = $(parent).find('.desc_cor_ror');
var desc_tamanho = $(parent).find('.desc_tamanho_ror');
var input_preco = $(parent).find('.preco_ror');
var input_qtd = $(parent).find('.quantidade_ror');
var input_total = $(parent).find('.total_ror');
var not_found = $(parent).find('.not_found');
var barcode_variacao = $(parent).find('.barcode_ror');
$(cod_barras).val(valor);
$.ajax({
type: "GET",
url: "/consulta_produto",
dataType: "json",
data: { barcode: valor},
complete: function() {},
success: function(response)
{
if ((response.resultado.cod_produto === undefined) || (response.resultado.cod_produto === null))
{
not_found.show();
$(cod_produto).val('');
$(desc_produto).val('');
$(cod_cor).val('');
$(desc_cor).val('');
$(desc_tamanho).val('');
$(input_preco).val('');
$(barcode).focus();
}
else
{
not_found.hide();
$(cod_produto).val(response.resultado.cod_produto);
$(desc_produto).val(response.resultado.desc_produto);
$(cod_cor).val(response.resultado.cod_cor);
$(desc_cor).val(response.resultado.desc_cor);
$(desc_tamanho).val(response.resultado.desc_tamanho);
$(input_preco).val(response.resultado.preco);
$(barcode_variacao).val(response.resultado.barcode);
$(input_qtd).focus();
}
}
});
}
// $(document).on("click","#scanBtn",function()
// {
// bridgeit.scan('scanBtn', 'onAfterCaptureScan');
// });
// function onAfterCaptureScan(event) {
// var text = event.value;
// alert("text");
// var scans = document.getElementById("scans");
// var row1 = document.createElement('div');
// row1.setAttribute('class','row');
// row1.innerHTML = text;
// scans.insertBefore(row1, scans.firstChild);
// }
$(document).on("cocoon:after-insert",".container",function() {
$('.cod_produto_ror').attr('readonly', true);
$('.desc_produto_ror').attr('readonly', true);
$('.desc_cor_ror').attr('readonly', true);
$('.desc_tamanho_ror').attr('readonly', true);
$('.preco_ror').attr('readonly', true);
$('.total_ror').attr('readonly', true);
$(".not_found").hide();
});
$(document).on("cocoon:after-remove",".container",function() {
});
$(document).on("focusout",".cod_barras_dev",function() {
// alert("ok");
// cod_barras_proc = $(".cod_barras_dev").val();
// $( "div:contains('160P10')" ).css( "text-decoration", "underline" );
// alert(cod_barras_proc);
// $('input:contains("160P10")').filter(function() {
// alert("achei");
// return $(this).text() == "findthis";
// }).addClass('active');
});
$(document).on("focusout",".cod_barras",function() {
barcode = $(this).val();
if (barcode === "") return;
var parent = $(this).parents('.nested-fields');
var cod_produto = $(parent).find('.cod_produto_ror');
var desc_produto = $(parent).find('.desc_produto_ror');
var cod_cor = $(parent).find('.cod_cor_ror');
var desc_cor = $(parent).find('.desc_cor_ror');
var desc_tamanho = $(parent).find('.desc_tamanho_ror');
var input_preco = $(parent).find('.preco_ror');
var input_qtd = $(parent).find('.quantidade_ror');
var input_total = $(parent).find('.total_ror');
var not_found = $(parent).find('.not_found');
var barcode_variacao = $(parent).find('.barcode_ror');
$.ajax({
type: "GET",
url: "/consulta_produto",
dataType: "json",
data: { barcode: barcode},
complete: function() {},
success: function(response)
{
if ((response.resultado.cod_produto === undefined) || (response.resultado.cod_produto === null))
{
not_found.show();
$(cod_produto).val('');
$(desc_produto).val('');
$(cod_cor).val('');
$(desc_cor).val('');
$(desc_tamanho).val('');
$(input_preco).val('');
$(barcode).focus();
}
else
{
not_found.hide();
$(cod_produto).val(response.resultado.cod_produto);
$(desc_produto).val(response.resultado.desc_produto);
$(cod_cor).val(response.resultado.cod_cor);
$(desc_cor).val(response.resultado.desc_cor);
$(desc_tamanho).val(response.resultado.desc_tamanho);
$(input_preco).val(response.resultado.preco);
$(barcode_variacao).val(response.resultado.barcode);
$(input_qtd).focus();
}
}
});
});
// $(document).on("focusin",".quantidade_ror",function() {
// console.log("Saving value " + $(this).val());
// $(this).data('val', $(this).val());
// });
// $(document).on("change",".quantidade_ror",function() {
// var prev = $(this).data('val');
// var current = $(this).val();
// var parent1 = $(this).parents('.nested-fields');
// var preco1 = $(parent1).find('.preco_ror');
// preco_atual = preco1.val();
// console.log(preco_atual);
// console.log("Prev value " + prev);
// console.log("New value " + current);
// if (prev > current) {
// valor_total = valor_total - ((prev * preco_atual) - (current * preco_atual));
// console.log(valor_total);
// }
// else
// {
// }
// });
$(document).on("focusout",".quantidade_ror",function() {
quantidade_ror = $(this).val();
if (quantidade_ror === "") return;
var parent = $(this).parents('.nested-fields');
var preco = $(parent).find('.preco_ror');
preco_final = preco.val();
var total = $(parent).find('.total_ror');
var resultado = quantidade_ror * preco_final;
$(total).val(resultado);
});
$(document).on("focusout",".quantidade_ror_dev",function() {
quantidade_ror_dev = $(this).val();
if (quantidade_ror_dev === "") return;
var parent = $(this).parents('.nested-fields');
var preco_dev = $(parent).find('.preco_ror_dev');
preco_final_dev = preco_dev.val();
var total_dev = $(parent).find('.total_ror_dev');
var resultado_dev = quantidade_ror_dev * preco_final_dev;
$(total_dev).val(resultado_dev);
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment