AVANCE GANANCIAS
unknown
javascript
a year ago
3.7 kB
19
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