Descontar Cantidad en Utilidad

Iniciado por Antoniio, 14 Mayo 2017, 06:30 AM

0 Miembros y 1 Visitante están viendo este tema.

Antoniio

Hola, buenas. Tengo un sistema de inventario que no fue creado por mi pero estoy intentando modificarle algunas cosas. Hay una opción que se llama "Utilidades" dentro del sistema, es la suma de comisiones de cada vendedor, lo que yo quisiera saber es cómo hago para descontarle x cantidad a ese número, osea, tener la opción de poder descontar ese número:


Se utiliza este código en esa parte:
<?php
$u 
null;
if( 
Session::getUID() != "" && !empty( $_GET["id"] ) ):

$u UserData::getByIdSession::getUID() );
    
$user $u->name." ".$u->lastname;
    
$client_id $_GET["id"];
    
$client ClientData::getById$client_id );
    
$cliente false;
elseif( 
Session::getUID() != "" && empty( $_GET["id"] ) ):

$u UserData::getByIdSession::getUID() );
    
$user $u->name." ".$u->lastname;
    
    
$client ClientData::getByIdUser$u->id );
    
$client_id $client->id;
    
$cliente true;
else:

print "<script>window.location='index.php';</script>";
endif;
?>

<div class="row">
<div class="col-md-12">
<h1><i class='fa fa-clock-o'></i> <?php echo $client->name." ".$client->lastname?> </h1>
<br>

<?php
$products = array();
if(isset($_GET["start_at"]) && $_GET["start_at"]!="" && isset($_GET["finish_at"]) && $_GET["finish_at"]!=""){

if($_GET["start_at"]<$_GET["finish_at"]){

$products OperationData::getAllByClientIdAndRange$client->id,$_GET["start_at"], $_GET["finish_at"] );
}
}
else{

$products OperationData::getAllByClientId$client->id );
}
$comision_total 0;
if( count$products ) > ){
?>

<br>
<table class="table table-bordered table-hover ">
<thead>
<th>Clave</th>
<th>Precio de Venta</th>
<th>Precio de Costo</th>
<th>Fecha del pedido</th>
<th>Comisión</th>
<?
                if( $u->is_admin == 1 ):?>
<th></th>
<?
endif;?>
</thead>
<?php 
#echo "<pre>";print_r( $products );echo "</pre>";
foreach($products as $sell):


#$item = $sell->getItem();
$book BookData::getById$sell->book_id );
?>

<tr>
<td>
<?php echo $book->isbn?>
</td>
<td><?php echo $book->cantidad?></td>
<td><?php echo $book->precio_costo?></td>
<td><?php echo $sell->start_at?></td>
<td>
<?
$comision = $book->cantidad - $book->precio_costo;
if( $comision >= 80 ){

echo '$40';
$comision_total = 40 + $comision_total;
}
else{

echo '$20';
$comision_total = 20 + $comision_total;
}
?>
</td>
<?
                if( $u->is_admin == 1 ):?>
<td>
<a href="index.php?action=delorder&id=<?php echo $sell->id;?>" class="btn btn-danger btn-xs">Eliminar</a>
</td>
<?
endif;?>
</tr>
<?php
endforeach; ?>

</table>

<div class="clearfix"></div>
<?php
}
else{
?>

<p class="alert alert-danger">No hay pedidos.</p>
<?php
}
$inventario OperationData::getInventory$client->id );
$list_inventario OperationData::Discount_list$client->id );
$inventario_sum OperationData::Discount_sum$client->id );
$initial_vendedor ClientData::getById$client->id );
?>

<div class="row">
<div class="col-lg-3">
Inventario Inicial<br>
<?
if( !$cliente ):?>
<form action="index.php?action=updateinventory" method="post">
<input id="vendedor" type="hidden" name="vendedor" value="<?= $client->id ?>">
<input required id="invetory_initial" type="text" name="invetory_initial" value="<?= $initial_vendedor->initial_inventory ?>">
<button type="submit" class="btn btn-success">Editar</button>
</form>
<?
else:?>
<h3>$<?= $initial_vendedor->initial_inventory ?></h3>
<?
endif;?>
</div>
<div class="col-lg-2">
Pedidos Realizados: <h3> $<?= ( empty( $inventario[0]->total ) ) ? 0 : $inventario[0]->total ?></h3>
</div>
<div class="col-lg-2">
Abonos: <h3> $<?= ( empty( $inventario_sum[0]->total ) ) ? 0 : $inventario_sum[0]->total ?></h3>
</div>
<div class="col-lg-2">
Deuda Total: <h3>$<?= ( ( $initial_vendedor->initial_inventory + $inventario[0]->total ) - $inventario_sum[0]->total ) ?></h3>
</div>
<div class="col-lg-2">
<label><font color='red'>Utilidades:</font></label> <font color='red'><h3> $<?= $comision_total ?></h3></font>
</div><br>
</div>
<?
if( count( $list_inventario ) > 0 ){?>
<div class="row">
<h3 class="col-lg-4 col-lg-offset-4">Lista de Abonos:</h3><br>
<?
if( count( $list_inventario ) > 0 ){
?>
<br>
<table align="center" class="table table-bordered table-hover">
<thead>
<th>Abono:</th>
<th>Fecha del Abono:</th>
</thead>
<?php 
foreach($list_inventario as $list_inventario):
?>

<tr>
<td>
<?php echo $list_inventario->discount_valor?>
</td>
<td>
<?php echo $list_inventario->discount_date?>
</td>
</tr>
<?php
endforeach; ?>

</table>
<?php
}?>

</div>
<?
}
if( !$cliente ):?>
<div>
<form action="index.php?action=addiscount" method="post">
<input id="cliente" name="cliente" type="hidden" value="<?= $client->id ?>">
<label>Abono: </label>
<input required id="discount_n" type="text" name="discount_n">
<button type="submit" class="btn btn-success">Abonar</button>
</form>
</div>
<?
endif;?>
<div class="clearfix"></div>
<br><br><br><br><br><br><br><br><br><br>
</div>
</div>


La utilidad se obtiene sumando la comisión de los productos. Ahora, cuando se paga esa utilidad a los vendedores es cuando ese número debe descontarse (la cantidad que se pague). Como mencioné, es un sistema gratuito que encontré en internet y que estoy modificando pero ya no encuentro la forma de aplicar esto. Les muestro el sistema y la base de datos actual: https://mega.nz/#!7chmSLwC!hr30QNhit...lJuVWdAqs9si68

Se los envío para que se den una idea más detallada de dónde está lo que intento hacer, no pido que resuelvan mi problema haciéndolo, sólo que me ayuden a saber qué debo hacer para realizar lo que pregunto..

Espero puedan apoyarme, saludos!

MOD: Imagen adaptada lo permitido.

3n31ch

#1
Modifica la etiqueta GeSHi y pon PHP pls. (Es muy dificil leer codigo asi).

¿Quieres descontar en la variable o quieres descontar en la base de datos? - (No he descargado la BD y no planeo hacerlo, si posees un modelo relacional seria genial)

Si lo que quieres es descontar de la variable solo tienes que agregar el codigo de los descuentos haciendo restas sobre la variable, por ejemplo:

Código (php) [Seleccionar]
$comision_total -= $pago

Aunque no creo que eso sea lo que quieras, ya que es muy facil.

He de suponer que tienes en la base de datos la cantidad de pagos y la cantidad de utilidades del mes (seleccionando los del ultimo mes), en dicho caso puedes seleccionar directamente la diferencia, o cargar los dos datos y luego restarlos.




Por otro lado, si es cosa de bases de datos ahi necesito el modelo y que bd es.

Antoniio

Cita de: 3n31ch en 14 Mayo 2017, 06:43 AM
Modifica la etiqueta GeSHi y pon PHP pls. (Es muy dificil leer codigo asi).

¿Quieres descontar en la variable o quieres descontar en la base de datos? - (No he descargado la BD y no planeo hacerlo, si posees un modelo relacional seria genial)

Si lo que quieres es descontar de la variable solo tienes que agregar el codigo de los descuentos haciendo restas sobre la variable, por ejemplo:

Código (php) [Seleccionar]
$comision_total -= $pago

Aunque no creo que eso sea lo que quieras, ya que es muy facil.

He de suponer que tienes en la base de datos la cantidad de pagos y la cantidad de utilidades del mes (seleccionando los del ultimo mes), en dicho caso puedes seleccionar directamente la diferencia, o cargar los dos datos y luego restarlos.




Por otro lado, si es cosa de bases de datos ahi necesito el modelo y que bd es.


El problema aquí es que no es un sistema mío y no comprendo bien el código en sí. Sin mencionar que a penas estoy aprendiendo esto de php y programación.

Sobre tu respuesta, por lo que entiendo, debería crear una nueva variable de pago? y recibir ahí la cantidad que se descontará de "comision_total" ?, o algo así?

Saludos.

3n31ch

Aaah, con razón. Ya decia yo que pregunta tan rara.

1. Primero te recomiendo aprender a programar bien antes de ponerte a editar codigo de terceros (que por cierto, no es el mejor codigo del mundo si lo que quieres es aprender a programar bien).

2. Si, tendras que descontar el valor de los pagos a la comision tontal, por tanto tienes tres opciones:
        • Seleccionar todos los pagos en BD y descontarlos a comision_total (uno por uno, o la suma de todos)
        • Seleccionar la suma de todos los pagos desde la BD y decontarlo directamente en comosión total.
        • Seleccionar comision_total menos la suma de todos los pagos directamente en bd y luego imprimirla con PHP.

Tampoco se como funciona la plataforma en detalle. Y dudo que alguien del foro se ponga a descargar la base de datos, leer la documentación o el codigo para responderte (se supone que tu tienes que hacer eso).


Antoniio

Cita de: 3n31ch en 18 Mayo 2017, 22:29 PM
Aaah, con razón. Ya decia yo que pregunta tan rara.

1. Primero te recomiendo aprender a programar bien antes de ponerte a editar codigo de terceros (que por cierto, no es el mejor codigo del mundo si lo que quieres es aprender a programar bien).

2. Si, tendras que descontar el valor de los pagos a la comision tontal, por tanto tienes tres opciones:
        • Seleccionar todos los pagos en BD y descontarlos a comision_total (uno por uno, o la suma de todos)
        • Seleccionar la suma de todos los pagos desde la BD y decontarlo directamente en comosión total.
        • Seleccionar comision_total menos la suma de todos los pagos directamente en bd y luego imprimirla con PHP.

Tampoco se como funciona la plataforma en detalle. Y dudo que alguien del foro se ponga a descargar la base de datos, leer la documentación o el codigo para responderte (se supone que tu tienes que hacer eso).



Hola, después de tanto intentar no he podido lograr hacer funcionar esto.
Primero intenté creando un botón al costado donde incluí la "comisión total" como valor por defecto. Después lo que quise hacer fue restar esa cantidad de la base de datos pero al hacerlo se eliminaban todos los valores de la "Deuda Total", osea, se perdía ese valor y eso no debe pasar, ahí tuve el problema ....

Ya no sé qué hacer  :(

Antoniio


3n31ch

Pon la QRY de que usaste en la BD y pon el diagrama MR de las tablas implicadas. Si es posible aísla la parte del código que posee el conflicto y pone la solución que intentaste.

Seguramente el 50% de este foro te podrá responder, el problema esta en que nadie utilizara su tiempo para leer mas de una pagina de documentación (somos personas horribles).

Suerte! (Mañana intentare ver el tema otra vez)  :silbar: