AVANCE GANANCIAS
unknown
javascript
a year ago
3.7 kB
3
Indexable
function calcularGananciaNetaDiaria() { try { var ss = SpreadsheetApp.getActiveSpreadsheet(); var hojaDestino = ss.getSheetByName('DESTINO'); var hojaResultados = ss.getSheetByName('GANANCIAS'); var ui = SpreadsheetApp.getUi(); var responseFecha = ui.prompt('Ingrese la fecha para calcular la ganancia neta (formato: DD/MM/YYYY):'); var responseCostoPublicidad = ui.prompt('Ingrese el costo de publicidad para esa fecha:'); var responseCostoServicioCourier = ui.prompt('Ingrese el costo del servicio de courier para esa fecha:'); var responseCostoProductos = ui.prompt('Ingrese el costo total de los productos vendidos para esa fecha:'); if (responseFecha.getSelectedButton() == ui.Button.CLOSE || responseCostoPublicidad.getSelectedButton() == ui.Button.CLOSE || responseCostoServicioCourier.getSelectedButton() == ui.Button.CLOSE || responseCostoProductos.getSelectedButton() == ui.Button.CLOSE) { return; } var fechaIngresada = responseFecha.getResponseText(); var costoPublicidad = parseFloat(responseCostoPublicidad.getResponseText()); var costoServicioCourier = parseFloat(responseCostoServicioCourier.getResponseText()); var costoProductos = parseFloat(responseCostoProductos.getResponseText()); var fechaObjetivo = new Date(fechaIngresada.split('/').reverse().join('/')); var datosDestino = hojaDestino.getDataRange().getDisplayValues(); var totalIngresos = 0; var totalComisiones = 0; var comisionPorPedido = 1.0; // Ejemplo de comisión por pedido, modificar según sea necesario for (var i = 1; i < datosDestino.length; i++) { var fila = datosDestino[i]; var fechaEntregaTexto = fila[17]; var montoPedido = parseFloat(fila[11]); var estadoPedido = fila[13]; var fechaEntrega = new Date(fechaEntregaTexto.split('/').reverse().join('/')); if (fechaEntrega.getTime() === fechaObjetivo.getTime() && (estadoPedido === '[CONTRA ENTREGA] - PEDIDO ENTREGADO' || estadoPedido === '[AGENCIA] 100% - PEDIDO ENTREGADO (MONTO RESTANTE RECIBIDO)')) { totalIngresos += montoPedido; totalComisiones += comisionPorPedido; } } var gananciaNeta = totalIngresos - (costoPublicidad + costoServicioCourier + costoProductos + totalComisiones); var ultimaFila = hojaResultados.getLastRow(); if (ultimaFila === 0) { hojaResultados.appendRow([ 'Fecha', 'Ingresos Totales', 'Gastos de Publicidad', 'Costo del Servicio de Courier', 'Costos de Productos', 'Comisiones', 'Ganancia Neta' ]); ultimaFila++; } hojaResultados.appendRow([ fechaIngresada, totalIngresos.toFixed(2), costoPublicidad.toFixed(2), costoServicioCourier.toFixed(2), costoProductos.toFixed(2), totalComisiones.toFixed(2), gananciaNeta.toFixed(2) ]); console.log('Fecha ingresada: ' + fechaIngresada); console.log('Ingresos totales: ' + totalIngresos.toFixed(2)); console.log('Costo de publicidad: ' + costoPublicidad.toFixed(2)); console.log('Costo del servicio de courier: ' + costoServicioCourier.toFixed(2)); console.log('Costos de productos: ' + costoProductos.toFixed(2)); console.log('Comisiones: ' + totalComisiones.toFixed(2)); console.log('Ganancia neta: ' + gananciaNeta.toFixed(2)); } catch (e) { console.error('Error al ejecutar el script: ' + e.message); } }
Editor is loading...
Leave a Comment