

var cont=0;
var datosServicio = new Array(); //[1,2,1]

$("#servicios").on('change', function(event) {
	event.preventDefault();

	var idservicio = $("#servicios").val();
	//$("#cronogramapago").empty();
	$("#CodigoContrato").val($("#servicios option:selected").text());
	$("#idservicios").val($("#servicios").val());

	var datos = new FormData();
    datos.append("idservicio", idservicio);

    const meses = new Array ("Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre");


	$.ajax({
		url:"ajax/cobros.ajax.php",
      method: "POST",
      data: datos,
      cache: false,
      contentType: false,
      processData: false,
      dataType:"json",
	})
	.done(function(response) {
		//console.log("servicios f");

		let idCronogramaPago = response[0].idcronograma_pago;
		let idservicio = response[0].idservicios;


		let servicio = $("#servicios option:selected").text();
		let conceptoPago = response[0]["nombre"] +" "+response[0]["descripcion"];
		let descripcion = response[0]["descripcion"];

		//let ndate = new Date(response[0]["fechas_pagos"]);
		let ndate = new Date(response[0]["fechas_pagos"]+"T00:00:00");
		let mes = meses[ndate.getMonth()] +" - "+ndate.getFullYear();


		let subtotal = response[0]["monto"];
    	let vencido = response[0]["estado"];

    	let idcronograma_pago = response[0]["idcronograma_pago"];

    	let recargo = 0;

    	if(response[0]["estado_servicio"] == 1){
    		recargo = 1;
    	}



  		$("#meses").empty();
        $("#meses").append('<option value="0">Seleccionar</option>');

		$.each(response, function(index, val) {
			let ndates = new Date(val["fechas_pagos"]+"T00:00:00");
			let mess = meses[ndates.getMonth()]+ " - "+ndates.getFullYear();
			//let mess = meses[(ndates.getMonth()+1)]+ " - "+ndates.getFullYear();

			$("#meses").append(`<option value=${val['idcronograma_pago']}>${mess}</option>`);
		});

		let concepto = "";

		var duplicado = $.inArray(idCronogramaPago, datosServicio);

		if (duplicado < 0){
		datosServicio.push(idCronogramaPago);//agrego nuevos campos al array list
		concepto += `<tr class="filas" id="fila${cont}" >
						<td style="display:none;">${idcronograma_pago}</td>
						<td>${servicio}</td>
						<td>${conceptoPago}</td>
						<td>${mes}</td>
						<td>${number_format(subtotal,2)}</td>
						<td>${number_format(subtotal,2)}</td>
						<td><button class="btn btn-danger" onclick=btnEliminarConcepto(${cont}); type="button">X</button></td>
						<td style="display:none;">${recargo}</td>
						<td style="display:none;">${descripcion}</td>
						<td style="display:none;">${idservicio}</td>
					</tr>`;

		}

		if (recargo == 1){
			concepto += `<tr class="filaRecargo" id="fila${cont}" >
						<td style="display:none;"></td>
						<td></td>
						<td>Recargos</td>
						<td></td>
						<td></td>
						<td>0.00</td>
						<td><button class="btn btn-danger" onclick=btnEliminarConcepto(${cont}); type="button">X</button></td>
						<td style="display:none;"></td>
					</tr>`;
		}

		$(".detalle").append(concepto);


		cont++;
		calcularTotal();

	})
	.fail(function(response) {
		//console.log(response);
	})
	.always(function(response) {
		//console.log(response);
	});


});


$(".btnAgregarConcepto").on('click', function(event) {
	event.preventDefault();
	var idcronograma_pago = $("#meses").val();

	var datos = new FormData();
    datos.append("idcronograma_pago", idcronograma_pago);

    let servicio = $("#servicios option:selected").text();
	let mesPago = $("#meses option:selected").text();




    $.ajax({
    	url: "ajax/cobros.ajax.php",
    	 method: "POST",
      data: datos,
      cache: false,
      contentType: false,
      processData: false,
      dataType:"json",
    })
    .done(function(response) {

    	let conceptoPago = response["nombre"] +" "+response["descripcion"];
    	let subtotal = response["monto"];
    	let vencido = response["estado"];
		let descripcion = response["descripcion"];
    	let idcronograma_pago = response["idcronograma_pago"];
		let idservicio = response['idservicios'];

		let recargo = 0;

    	if(response["estado_servicio"] == 1){
    		recargo = 1;
    	}



		cambiarRecargos();
    	let concepto = "";
		var duplicado = $.inArray(idcronograma_pago, datosServicio);

		if (duplicado < 0){
		datosServicio.push(idcronograma_pago);//agrego nuevos campos al array list
		concepto += `<tr class="filas" id="fila${cont}">
						<td style="display:none;">${idcronograma_pago}</td>
						<td>${servicio}</td>
						<td>${conceptoPago}</td>
						<td>${mesPago}</td>
						<td>${number_format(subtotal,2)}</td>
						<td>${number_format(subtotal,2)}</td>
						<td><button class="btn btn-danger" onclick=btnEliminarConcepto(${cont}); type="button">X</button></td>
						<td style="display:none;">${recargo}</td>
						<td style="display:none;">${descripcion}</td>
						<td style="display:none;">${idservicio}</td>
					</tr>`;
		}
		if (recargo == 1){
			concepto += `<tr class="filaRecargo" id="fila${cont}" >
						<td style="display:none;"></td>
						<td></td>
						<td>Recargos</td>
						<td></td>
						<td></td>
						<td>Q.5.00</td>
						<td><button class="btn btn-danger" onclick=btnEliminarConcepto(${cont}); type="button">X</button></td>
						<td style="display:none;"></td>
					</tr>`;
		}

		$(".detalle").append(concepto);
		cont++;

		calcularTotal();

    })
    .fail(function() {
    	console.log("error");
    })
    .always(function() {
    	console.log("complete");
    });


});


function btnEliminarConcepto(indice){
  	$("#fila" + indice).remove();
  	calcularTotal();
  }

function cambiarRecargos(){
	$(".filaRecargo").remove();
}


   function calcularTotal(){
  	const table = $('.filas').parent('tbody');
  	const trs   = table.find('tr');
  	const p = [];
  	let horas = 0;
  	let creditos = 0;
		$.each(trs, function(index,val) {
			const tds = $(this).find('td');
			p[index] = [];
			$.each(tds, function(i,v) {
				p[index][i] = $(this).text();
			});
			let cadena = p[index][5].split('.')[0];
			//let h = cadena.substring(2,cadena.length - 3);
			let h = cadena.replace(',','');
			horas += parseInt(h);
		});

	$("#totalh").html(`${number_format(horas,2)}`);
    $("#total_horas").val(horas);
  }




  $(".guardarCobro").on('click', function(event) {
  	event.preventDefault();
	  guardarCobro();

  });
  $(".btn-continuar-apertura").on("click", function(event){
		guardarCobro();
  })


$(".btnEditarPersona").on('click', function(event) {
	event.preventDefault();
	var idserviciosCobro = $(this).attr("idservicios");


    var datos = new FormData();
    datos.append("idserviciosCobro", idserviciosCobro);


    $.ajax({
    	url:"ajax/contratos.ajax.php",
      method: "POST",
      data: datos,
      cache: false,
      contentType: false,
      processData: false,
      dataType:"json",
    })
    .done(function(response) {
    	console.log(response);
    	var count = 1;
    	var estado = "";
    	$("#tablebody1").empty();
    	$.each(response, function(index, val) {
    			if (val["estado"] == 0){
    				estado = "<span class='badge bg-yellow'>Pendiente</span>";
    			}else if (val["estado"] == 1){
    				estado = "<span class='badge bg-green'>Pagado</span>";
    			}else if (val["estado"] == 2) {
    				estado = "<span class='badge bg-red'>Vencido</span>";
    			}
              $(".tablaContratos").append(`<tr id="fila">
					<td>${count}</td>
					<td>${val["fechas_pagos"]}</td>
					<td>${val["monto"]}</td>
					<td>${estado}</td>
					<td><button type="button" class="btn btn-danger" onclick=btnEliminarCobro(${val["idcronograma_pago"]});><i class="fa fa-trash"></i></button></td>
				</tr>

              	`);
              count++;
         });
    	$("#modalEditarContrato").modal("show");


    })
    .fail(function() {
    	console.log("error");
    })
    .always(function() {
    	console.log("complete");
    });

});


$(".btnEliminarContrato").on('click', function(event) {
	event.preventDefault();
	var idserviciosCobro = $(this).attr("idservicios");

    var datos = new FormData();
    datos.append("idserviciosEliminar", idserviciosCobro);

    swal({

		text: "Desea eliminar el contrato? No se podra recuperar.",
		type: 'warning',
		showCancelButton: true,
		confirmButtonColor: '#3085d6',
		cancelButtonColor: '#d33',
		confirmButtonText: 'Eliminar'
	}).then((result) => {
		if (result.value) {

			$.ajax({
		    	url:"ajax/contratos.ajax.php",
		      method: "POST",
		      data: datos,
		      cache: false,
		      contentType: false,
		      processData: false,
		      dataType:"json",
		    })
		    .done(function(response) {
		    	if(response == "ok"){
					swal({
						type: "success",
						title: "El contrato ha sido eliminado",
						showConfirmButton: true,
						confirmButtonText: "Cerrar"
						}).then(function(result){
							if (result.value) {
								window.location = "contratos";

										}
						});

				}else if (response == "error") {
					swal({
						type: "error",
						title: "El contrato no puede ser eliminado",
						showConfirmButton: true,
						confirmButtonText: "Cerrar"
						}).then(function(result){
							if (result.value) {


										}
						});
				}

		    })
		    .fail(function() {
		    	console.log("error");
		    })
		    .always(function() {
		    	console.log("complete");
		    });


			}
	})

});

// $(".tablas").on("click", ".btnEliminarCobros", function(){
// //$(".btnEliminarCobros").on('click', function(event) {
// 	event.preventDefault();

// 	var idCobros = $(this).attr("idcobros");

// 	var datos = new FormData();
//     datos.append("idcronograma", idCobros);

//      swal({

// 		text: "Desea eliminar el Cobro? No se podra recuperar.",
// 		type: 'warning',
// 		showCancelButton: true,
// 		confirmButtonColor: '#3085d6',
// 		cancelButtonColor: '#d33',
// 		confirmButtonText: 'Eliminar'
// 	}).then((result) => {
// 		if (result.value) {

// 			$.ajax({
// 		    	url:'ajax/cobros.ajax.php',
// 		      method: "POST",
// 		      data: datos,
// 		      cache: false,
// 		      contentType: false,
// 		      processData: false,
// 		      dataType:"json",
// 		    })
// 		    .done(function(response) {

// 		    	//console.log("aqui",response);

// 		    	if(response == "ok"){
// 					swal({
// 						type: "success",
// 						title: "El Cobro ha sido eliminado",
// 						showConfirmButton: true,
// 						confirmButtonText: "Cerrar"
// 						}).then(function(result){
// 							if (result.value) {
// 								window.location= "cobros";

// 										}
// 						});

// 				}else if (response == "error") {
// 					swal({
// 						type: "error",
// 						title: "El cobro no puede ser eliminado",
// 						showConfirmButton: true,
// 						confirmButtonText: "Cerrar"
// 						}).then(function(result){
// 							if (result.value) {


// 										}
// 						});
// 				}

// 		    })
// 		    .fail(function() {
// 		    	console.log("error");
// 		    })
// 		    .always(function() {
// 		    	console.log("complete");
// 		    });


// 			}
// 	})



// });


$(".tablas").on("click", ".btnDetalleCobro", function(){
//$(".btnDetalleCobro").click(function(event) {
  event.preventDefault();
  var idcobros = $(this).attr('idcobros');
 //console.log("hiiiii",idcobros);
  $.ajax({
    url: 'ajax/cobros.ajax.php',
    type: 'POST',
    dataType: 'json',
    data: {"editarCobros": idcobros},
  })
  .done(function(success) {
    //console.log("aqui ",success);
    detalleCobro(success);
  })
  .fail(function() {
    console.log("error");
  })
  .always(function() {
    console.log("complete");
  });


});


function detalleCobro(response) {
	console.log(response);
    $.ajax({
      url: 'vistas/modulos/proceso.php',
      type: 'POST',
      data: {"arregloC": JSON.stringify(response)},
      success: function() {
        //console.log(response)
        window.location.href = "detalle-cobro";
        calcularTotal();
      },
      error: function(error) {
        console.log("error");
      },
    })

}

$(".tablas").on('click', '.btnImprimirComprobanteC', function(event) {
	event.preventDefault();

	var idcobros = $(this).attr('idcobros');

	window.open("extensiones/tcpdf/pdf/comprobante.php?idcobros="+idcobros, "_blank");
	//window.open("extensiones/tcpdf/pdf/ticket.php?idcobros="+idcobros, "_blank");
});

$(".tablas").on('click', '.btnImprimirTicket', function(event) {
	event.preventDefault();

	var idcobros = $(this).attr('idcobros');

	window.open("extensiones/tcpdf/pdf/ticket.php?idcobros="+idcobros, "_blank");
	//window.open("extensiones/tcpdf/pdf/ticket.php?idcobros="+idcobros, "_blank");
});


/*=============================================
ELIMINAR COBROS O DESACTIVAR
=============================================*/
// $(".tablas").on("click", ".btnEliminarCobros", function(){

// 	var idcobros = $(this).attr("idcobros");
// 	var estadoCobro = $(this).attr("estadoCobro");

// 	var datos = new FormData();
//  	datos.append("activarId", idcobros);
//   	datos.append("desactivarCobros", estadoCobro);

//   	$.ajax({

// 	  url:"ajax/cobros.ajax.php",
// 	  method: "POST",
// 	  data: datos,
// 	  cache: false,
//       contentType: false,
//       processData: false,
//       success: function(respuesta){


// 				if(estadoCobro == "0"){


// 					swal({
// 						type: "error",
// 						title: "La cobranza fue eliminado correctamente",
// 						showConfirmButton: true,
// 						confirmButtonText: "Cerrar"
// 						}).then(function(result){
// 							if (result.value) {
// 								window.location = "cobros";

// 										}
// 						});

// 				}else{
// 					swal({
// 						type: "success",
// 						title: "La cobranza fue restaurado correctamente",
// 						showConfirmButton: true,
// 						confirmButtonText: "Cerrar"
// 						}).then(function(result){
// 							if (result.value) {

// 								window.location = "cobros";
// 										}
// 						});
// 				}




//       }

//   	})

// })



/*=============================================
ELIMINAR COBROS Y RESTAURAR COBROS
=============================================*/
$(".tablas").on("click", ".btnEliminarCobros", function(){

	var idcobros = $(this).attr("idcobros");
	var estadoCobro = $(this).attr("estadoCobro");

	if(estadoCobro == "0"){

		swal({
	        title: '¿Está seguro de eliminar el cobro?',
	        text: "¡Si no lo está puede cancelar la acción!",
	        type: 'warning',
	        showCancelButton: true,
	        confirmButtonColor: '#3085d6',
	        cancelButtonColor: '#d33',
	        cancelButtonText: 'Cancelar',
	        confirmButtonText: 'Si, eliminar cobro!'
	      }).then(function(result){
	        if (result.value) {

	            var datos = new FormData();
			 	datos.append("activarId", idcobros);
			  	datos.append("desactivarCobros", estadoCobro);

			  	$.ajax({

					  url:"ajax/cobros.ajax.php",
					  method: "POST",
					  data: datos,
					  cache: false,
				      contentType: false,
				      processData: false,
				      success: function(respuesta){
						swal({
							type: "error",
							title: "El cobro fue eliminado correctamente",
							showConfirmButton: true,
							confirmButtonText: "Cerrar"
							}).then(function(result){
								if (result.value) {
									window.location = "cobros";

								}
							});

				      }

	  			})
	        }

	  	})

	}else{

		swal({
	        title: '¿Está seguro de restaurar el cobro?',
	        text: "¡Si no lo está puede cancelar la acción!",
	        type: 'warning',
	        showCancelButton: true,
	        confirmButtonColor: '#3085d6',
	        cancelButtonColor: '#d33',
	        cancelButtonText: 'Cancelar',
	        confirmButtonText: 'Si, restaurar cobro!'
	      }).then(function(result){
	        if (result.value) {

	            var datos = new FormData();
			 	datos.append("activarId", idcobros);
			  	datos.append("desactivarCobros", estadoCobro);

			  	$.ajax({

					  url:"ajax/cobros.ajax.php",
					  method: "POST",
					  data: datos,
					  cache: false,
				      contentType: false,
				      processData: false,
				      success: function(respuesta){
						swal({
							type: "success",
							title: "El cobro fue restaurado correctamente",
							showConfirmButton: true,
							confirmButtonText: "Cerrar"
							}).then(function(result){
								if (result.value) {
									window.location = "cobros";

								}
							});

				      }

	  			})
	        }

	  	})

	}



})





function guardarCobro(){

	let idpersona = $("#idpersona").val();
	let idusuario = $("#IdUsuario").val();
	let idservicio = $("#servicios").val();
  let codigoContrato = $("#CodigoContrato1").val();
  let idCaja = $("#idCaja").val();
	let CodigoA = $("#nuevoCodigo").val();
	let CodigoR = $("#nuevoCodigoR").val();

	
	let tipo = $('#tipoPago').val();
	let mpago = $("#mmpago").val();
	let notitas = $("#nnotitas").val();
	let banco = $("#bbanco").val();

  if(idCaja == 0 || idCaja == ""){
	  $(document).ready(function(){
		  $('#modalApertura').modal('toggle')
	  });
  }else {

	let d = new Date();

	let fecha =  d.getFullYear()+ "-" + [d.getMonth()+1] + "-" + d.getDate();

	let idcronograma_pago = $("#meses").val();

	let totalMonto = $("#total_horas").val();


	const table = $('.filas').parent('tbody');

	const trs   = table.find('tr');
	//console.log(trs);
	const p = [];

		// recorro las filas de la tabla para obtener todos los datos
		/*datos que obtengo de la fila son:
		1°  idcronograma_pago, servicio, conceptoPago, mes, subtotal, subtotal, X, recargo, descripcion, idservicio.
		luego con la funcion append recorro nuevamente el array y agrego nuevos campos que son:
		2°  idpersona, idusuario, idservicio, fecha, idcronograma_pago, totalMonto, CodigoA, CodigoR, codigoContrato, idCaja

		**** Datos que necesito para guardar el detalle de la caja ********
		id, idCaja, fecha, tipoCaja(cobranza), concepto(comercial, domiciliaria), numeroDocumento(código del contrato), importeCaja(valor pagado), tipoPago(efectivo), generadoPor(nombre del usuario activo), estado caja (pagado)
		*/
	  $.each(trs, function(index,val) {
		  const tds = $(this).find('td');
		  p[index] = [];
		  $.each(tds, function(i,v) {
			  p[index][i] = $(this).text();
		  });
	  });

	  // recorro para agregar los campos que faltan para guardar la cobranza
	  $.each(p, function(index, val) {
		  p[index].push(idpersona,idusuario,idservicio,fecha,idcronograma_pago,totalMonto,CodigoA,CodigoR,codigoContrato,idCaja,tipo,mpago,notitas,banco);
		  console.log(p[index]);
	  });
	  console.log(p);
	  
	  $.ajax({
		url: 'ajax/cobros.ajax.php',
		type: 'POST',
		data: {'arreglo': JSON.stringify(p)},
		dataType:"json",
		success: function(response) {
			console.log(response);
		  if(response == "ok"){
			  swal({
									type: "success",
									title: "El cobro fue guardado correctamente",
									showConfirmButton: true,
									confirmButtonText: "Cerrar"
									}).then(function(result){
											  if (result.value) {

											  window.location = "cobros";

											  }
										  })
		  }
		},
		error: function(error) {
		  console.log("error");
		},
	  })



	}
}
