//********************************************************************
//********************************************************************
//*****Funciones para envio,calculo y busqueda de Compras*************
//*****Version:1.0
//*****Herramientas utilizadas:Jquery,ajax,json,JS,sweetalert
//*****Creador:Pedro Avila
//********************************************************************
//********************************************************************
// onsubmit para  el modulo addcompras
//************************************

//Agregar detalle, concepto o articulos a las compras
//***************************************************
function get_lineas(){
  const datos ={'action':'getlineas','id':$('#id_compra').val()};
  $.ajax({
    url: url_local,
    async:true,
    cache:false,
    data: datos,
    type: 'POST',
    dataType: 'json',
  })
  .done(function(data) {
    //obtengo los datos  de las lineas y creo su tabla 
    //*********************************************//
    let igv = 0,  desc = 0, totales =0,id_compra = $('#id_compra').val(),identidad=$('#identidad_num').val();
    let anticipo = 0,divisa = $('#divisa_change').val(),cambio = $('#cambioinput').val(),scambio='';
    $('.content-lineas-table').html('');

    //recorremos las lineas sea concepto o articulo//
    //*********************************************//
    console.log(data);
    if(!jQuery.isEmptyObject(data.date.lineas)){
      $.each(data.date.lineas, function(i,item){  
        let delinea=(item.dhber == 'debe') ? item.precio : '' , halinea=(item.dhber == 'haber') ? item.precio : '', ccostos = (item.ccostos_codigo !== null) ? item.ccostos_codigo : '' ;
        let dolares = (divisa == 'US' || divisa == 'USD') ? item.precio : '',cuentas  = item.cuentas_codigo ,status ='';

        cuentas = cuentas.toString().substring(0,3);
        if (dolares !== '') {
          delinea = (delinea !='') ? item.precio_soles : '';
          halinea = (halinea !='') ? item.precio_soles : ''; 
        }
        //calculos para el debe y el haber cuando es una compra el debe suma y el haber resta

        if (item.dhber == 'debe') {
          igv +=  parseFloat(item.igv_val);
          desc += parseFloat(item.descuento_valor);
          totales += parseFloat(item.total_valor);
        }else if (item.dhber == 'haber') {
          igv -=  parseFloat(item.igv_val);
          totales -= parseFloat(item.total_valor);
        }
        //validamos si existe anticipo y si las cuentas que vienen son las 422 y la 122

        if (cuentas == '422' || cuentas == '122') {
          anticipo = item.precio;
        }
        //recorremos los items  de conceptos y articulos
        //**********************************************
        if (data.date.status == 1) { status = 'd-none'  }
        $('.content-lineas-table').append(
          `<tr class="fila-lineas-${item.id}Clinea" ><td>${$.trim(item.codigo_art)}</td>
          <td>${item.cuentas_descripcion} ${ccostos}</td>
          <td>${item.cantidad}</td>
          <td>${$.trim(item.um)}</td>
          <td>${$.trim(item.precio_art)}</td>
          <td>${item.cuentas_codigo}</td>
          <td>${formatNumber(dolares)}</td>
          <td>${formatNumber(delinea)}</td>
          <td>${formatNumber(halinea)}</td>
          <td><a href="#" data-id="${item.id}" class="buttons-contables ${status}"  data-compra="${id_compra}" data-identidad="${identidad}" data-action="updateModal"  onclick="modals_show(this); return false"><i class="icon-compose"></i></a> <a href="#" class="buttons-contables ${status}" data-id="${item.id}Clinea"  data-url="${url_local}/${item.id}&linea" onclick="delete_line(this); return false"><i class="icon-trash"></i></a></td>
          </tr>`
        );
      });

      //recorremos las cuentas y validamos si viene por el debe o haber//
      //***************************************************************//

      $.each(data.date.cuentas, function(i,cuentas){
        if (!jQuery.isEmptyObject(cuentas)) {
            let dc =  '' , hc = '',dolares =  '';
            if (cuentas.cuenta == 'cuenta1'  && !jQuery.isEmptyObject(cuentas.dhber) && desc != 0) {
              if (divisa === 'US' || divisa === 'USD') {
                dc = (cuentas.dhber == 'debe') ? parseFloat(desc*cambio).toFixed(2) : '', hc = (cuentas.dhber == 'haber') ? parseFloat(desc*cambio).toFixed(2) : '',dolares = desc.toFixed(2);
              }else{
                dc = (cuentas.dhber == 'debe') ? desc : '' , hc = (cuentas.dhber == 'haber') ? desc : '';
              }
              $('.content-lineas-table').append(`<tr class="fila-${cuentas.id}"><td></td>
                <td>${cuentas.descripcion}</td>
                <td></td>
                <td></td>
                <td></td>
                <td>${cuentas.codigo}</td>
                <td>${formatNumber(dolares)}</td>
                <td>${formatNumber(dc)}</td>
                <td>${formatNumber(hc)}</td>
                <td></td>
                </tr>`); 
            }else if (cuentas.cuenta == 'cuenta2' && !jQuery.isEmptyObject(cuentas.dhber) ) {
              if (divisa === 'US' || divisa === 'USD') {
                dc = (cuentas.dhber == 'debe') ? parseFloat(igv*cambio).toFixed(2) : '',hc = (cuentas.dhber == 'haber') ? parseFloat(igv*cambio).toFixed(2) : '',dolares = igv;
              }else{
                dc = (cuentas.dhber == 'debe') ? igv : '' , hc = (cuentas.dhber == 'haber') ? igv : '';
              }
              $('.content-lineas-table').append(`<tr class="fila-${cuentas.id}"><td></td>
                <td>${cuentas.descripcion}</td>
                <td></td>
                <td></td>
                <td></td>
                <td>${cuentas.codigo}</td>
                <td>${formatNumber(dolares)}</td>
                <td>${formatNumber(dc)}</td>
                <td>${formatNumber(hc)}</td>
                <td></td>
                </tr>`); 
            }else if(cuentas.cuenta == 'cuenta3' && !jQuery.isEmptyObject(cuentas.dhber)){
              if (divisa === 'US' || divisa === 'USD') {
                dc = (cuentas.dhber == 'debe') ? parseFloat(totales*cambio).toFixed(2) : '', hc = (cuentas.dhber == 'haber') ? parseFloat(totales*cambio).toFixed(2) : '',dolares = totales;
              }else{
                dc = (cuentas.dhber == 'debe') ? totales : '' , hc = (cuentas.dhber == 'haber') ? totales : '';
              }
              $('.content-lineas-table').append(`<tr class="fila-${cuentas.id}"><td></td>
                <td>${cuentas.descripcion}</td>
                <td></td>
                <td></td>
                <td></td>
                <td>${cuentas.codigo}</td>
                <td>${formatNumber(dolares)}</td>
                <td>${formatNumber(dc)}</td>
                <td>${formatNumber(hc)}</td>
                <td></td>
                </tr>`); 
            }
          }
        });
      }
      //recorremos los totales//
      //**********************//
      $.each(data.date.totales, function(i,item){  
        $(`#${i}`).val(parseFloat(item).toFixed(2));
        $(`#${i}_v`).val(formatNumber(parseFloat(item).toFixed(2)));
        scambio = parseFloat(item*cambio);
        $(`#${i}_cambio_v`).val(formatNumber(scambio.toFixed(2)));
        $(`#${i}_cambio`).val(scambio.toFixed(2));
      });
  })
  .fail(function(jqXHR, textStatus, errorThrown) {
    console.log("error");
    if (jqXHR.status === 200) {
      error_t +=1;
      if (error_t > 3) {
        alert('Existe un error en la ruta contacte al administrador');
      }else{
        console.log('error :'+error_t);
        get_lineas();
      }
    }
  })
  .always(function() {
    console.log("complete");
  });  
}
$.fn.datepicker.defaults.format = "yyyy-mm-dd";
$('.fec').datepicker({
    weekStart: 1,
    daysOfWeekHighlighted: "6,0",
    autoclose: true,
    todayHighlight: true,
});

// Calculos para  adicionar  conceptos y articulos
//************************************************
function calcula_valor(i){
  var myvalue = $('#precio_venta').val(),desc_perc = $('#desc_1').val(), desc_val = '', igv_perc = $('#igvpercent').val(),igv_val = $('#igvpercent2').val(), cambio = $('#cambioinput').val(); 
  var descuento  =  Number(myvalue*desc_perc/100), igv= '',precio_soles = 0,desc_soles=0,igv_soles=0;
  if (isNaN(myvalue)) {
     myvalue =0;
  }

  if (!isNaN(descuento)) {
    desc_val =    (desc_perc == '' && $(i).attr('data-percent')) ? $('#desc_2').val() : descuento.toFixed(2) ;
    $('#desc_2').val(desc_val);
    myvalue =  (myvalue-desc_val);
  }
  precio_soles = myvalue*cambio; 
  $('#precio_soles').val(precio_soles.toFixed(2));
  igv = Number(myvalue*igv_perc/100);
  if (!isNaN(igv)) {
    $('#igvpercent2').val(igv.toFixed(2));
    myvalue = igv + myvalue;
  }
  $('#total_valor').val(myvalue);
  //cambios para soles
  desc_soles = desc_val*cambio; igvsoles = igv*cambio;
  $('#desc_soles').val(desc_soles.toFixed(2));
  $('#igvsoles').val(igvsoles.toFixed(2));
}
function calcular_valor_art(i){
  // cambio para la parte de  articulos cantidad,precio, importe total
  if ($(i).attr('data-imports')) {
    let cantidad = $('#cantidad_art').val() , precio_art = $('#precio_art').val();
    $('#importe_art').val(cantidad*precio_art);
    $('#precio_venta').val(cantidad*precio_art);
  }
  //calculos para el resto de los campos de articulo
  var myvalue = $('#precio_venta').val(),desc_perc = $('#desc_1').val(), desc_val = $('#desc_1').val(), igv_perc = $('#igvpercent').val(),igv_val = $('#igvpercent2').val(), cambio = $('#cambioinput').val(), sel_percent = $('#sel_percent').val(); 
  var descuento  = Number(myvalue*desc_perc/100), igv= '',sel='',precio_soles = 0,desc_soles=0,igv_soles=0,sel_soles=0;
  if (isNaN(myvalue)) {
     myvalue =0;
  }
  if (!isNaN(descuento)) {
    desc_val =    (desc_perc == '' && $(i).attr('data-percent')) ? $('#desc_2').val()  : descuento.toFixed(2);
    $('#desc_2').val(desc_val);
    myvalue =  (myvalue - desc_val);
  }
  precio_soles = myvalue*cambio; 
  $('#precio_soles').val(precio_soles.toFixed(2));

  sel = Number(myvalue*sel_percent/100)
  if (!isNaN(sel)) {
    $('#sel_2').val(sel.toFixed(2));
    myvalue = myvalue + sel;
  }
  igv = Number(myvalue*igv_perc/100);
  if (!isNaN(igv)) {
    $('#igvpercent2').val(igv.toFixed(2));
    myvalue = igv + myvalue;
  }

  $('#total_art_valor').val(myvalue);
  //cambios para soles
  desc_soles = desc_val*cambio; igvsoles = igv*cambio; sel_soles = sel*cambio; 
  $('#desc_soles').val(desc_soles.toFixed(2));
  $('#imp_soles').val(sel_soles.toFixed(2));
  $('#igvsoles').val(igvsoles.toFixed(2));
}

//otros calculos
//**************
function percentc(){
  if($('#afect_js').is(":checked")){
    $('#igvpercent').val('18');
  }else{
    $('#igvpercent').val('');
  }
  calcula_valor();
}
// fin de  calculos para conceptos 
// FIN de functions
