Esta es como la tercera y ultima...
Continuacion de la segunda parte
Ahora si aplausan.... lo logreeee
Código PHP:
for($k=0; $k<count($mat_mov); $k++)
{
$tipo_c = $mat_mov[$k]['tipo_c'];
$cantidad = $mat_mov[$k]['cantidad'];
$valor = $mat_mov[$k]['valor'];
$nit = $mat_mov[$k]['nit'];
$origen = $mat_mov[$k]['origen'];
$transaccion = $mat_mov[$k]['transaccion'];
$numero = $mat_mov[$k]['numero'];
$costo_tr = $mat_mov[$k]['costo_tr'];
$tipo_ajuste = $mat_mov[$k]['nota'];
switch ($tipo_c)
{
case "DVP":
$valor = -$costo_tr;
$cantidad = -$cantidad;
break;
case "SAL":
case "DVM":
case "CSM":
case "FAC":
if ($saldo !=0)
$valor = $costo * $cantidad / $saldo;
else
$valor = 0;
if ($tipo_c =="FAC" & $cantidad <0)
# en neiva hubo facturas negativas
$valor = $costo_tr;
if ($saldo<$cantidad)
{
if ($saldo ==0)
{
#valoriza con la proxima entrada
for($n=$k; $n<count($mat_mov); $n++)
{
if ($mat_mov[$n]['tipo_c']=="EAC" || $mat_mov[$n]['tipo_c']=="ENT" )
{
$valor = $cantidad * $mat_mov[$n]['valor'];
break;
}
}
if ($n>=count($mat_mov))
{
# no encontro compra, toma el ultimo promedio conocido
$valor = $cantidad * $u_promedio;
}
}
$mat_neg[$item]=0;
}
$lee = "UPDATE movil SET costo_tr = $valor WHERE transaccion = '$transaccion' AND numero = '$numero' AND origen = $origen AND item = '$item' ";
ejecuta_query($lee);
$cantidad = -$cantidad;
$valor = -$valor;
break;
case "EAC":
case "ENT":
case "ALP":
$valor = $valor * $cantidad;
break;
case "ENS":
case "DNS":
case "DES":
case "TRA":
if ($cantidad<0)
{
if ($saldo !=0)
$valor = $costo * $cantidad / $saldo;
else
$valor = 0;
if (($tipo_c == "TRA" || $tipo_c == "DES")& $pasada ==0)
{
$alm_de = $mat_mov[$k]['almacen_destino'];
$val = -$valor;
$lee = "UPDATE movil SET costo_tr = $val WHERE transaccion = '$transaccion' AND numero = '$numero' AND almacen2 = $alm_de AND item = '$item' ";
ejecuta_query($lee);
}
$lee = "UPDATE movil SET costo_tr = $valor WHERE transaccion = '$transaccion' AND numero = '$numero' AND origen = $origen AND item = '$item' AND cantidad <0 ";
ejecuta_query($lee);
}
else
$valor = $costo_tr;
break;
case "DVC":
case "REI":
$t_pedido = $mat_mov[$k]['t_pedido'];
$n_pedido = $mat_mov[$k]['n_pedido'];
$lee = "SELECT movil.costo_tr / movil.cantidad AS costo_tr FROM movil WHERE transaccion = '$t_pedido' AND numero = '$n_pedido' AND item = '$item' ";
$m_dvc = lee_uno($lee);
$cost = abs($m_dvc['costo_tr']);
if (count($m_dvc)>0)
{
$costo_tr = $cost * $cantidad;
$lee = "UPDATE movil SET costo_tr = $costo_tr WHERE transaccion = '$transaccion' AND numero = '$numero' AND origen = $origen AND item = '$item' ";
ejecuta_query($lee);
}
$valor = $costo_tr;
break;
case "AJV":
if (trim($tipo_ajuste)=="AJUSTE")
{
if ($saldo !=0)
$valor = $costo * $cantidad / $saldo;
else
$valor = 0;
$lee = "UPDATE movil SET valor = $valor WHERE transaccion = '$transaccion' AND numero = '$numero' AND origen = $origen AND item = '$item' ";
ejecuta_query($lee);
}
break;
default:
echo "Transaccion desconocida $tipo_c ";
}
$saldo = $saldo + $cantidad;
$costo = $costo + $valor;
if ($clase_a == "P" || $clase_a == "S")
$mat_nit[$nit] += $cantidad;
}
if ($saldo !=0 & $costo!=0)
{
$u_promedio = $costo/$saldo;
}
if ($saldo == 0)
$costo = 0;
$lee = "SELECT sinve.item, sinve.costo FROM sinve WHERE ano_mesi = $ano_mesf AND almacen = $almacen AND item = '$item' ";
$m_sal = lee_uno($lee);
if (trim($m_sal['item'])== trim($item))
$lee = "UPDATE sinve SET saldo = $saldo, costo = $costo WHERE ano_mesi = $ano_mesf AND almacen = $almacen AND item = '$item' ";
else
$lee = "INSERT INTO sinve (item, almacen, ano_mesi, saldo, costo) VALUES ('$item',$almacen,$ano_mesf,$saldo,$costo) ";
ejecuta_query($lee);
if ($clase_a == "P" || $clase_a == "S")
{
foreach ($mat_nit as $nit => $saldo)
{
$lee = "SELECT sinvnit.item, sinvnit.saldo_nit FROM sinvnit WHERE ano_mes = $ano_mesf AND almacen = $almacen AND item = '$item' AND nit = '$nit' ";
$m_sal = lee_uno($lee);
if (trim($m_sal['item'])== trim($item))
$lee = "UPDATE sinvnit SET saldo_nit = $saldo WHERE ano_mes = $ano_mesf AND almacen = $almacen AND item = '$item' AND nit = $nit ";
else
$lee = "INSERT INTO sinvnit (item, almacen, ano_mes, saldo_nit, nit) VALUES ('$item',$almacen,$ano_mesf,$saldo,$nit) ";
ejecuta_query($lee);
}
}
commit();
}
}
}
# reconstruye el consolidado
$lee = "SELECT item, SUM(saldo) AS saldo, SUM(costo) AS costo FROM sinve WHERE ano_mesi = $ano_mesf and almacen !=0 GROUP BY item";
$mat_con = lee_todo($lee);
for($i=0; $i<count($mat_con); $i++)
{
$item = $mat_con[$i]['item'];
$saldo = $mat_con[$i]['saldo'];
$costo = $mat_con[$i]['costo'];
$lee = "SELECT sinve.item, sinve.costo FROM sinve WHERE ano_mesi = $ano_mesf AND almacen = 0 AND item = '$item' ";
$m_sal = lee_uno($lee);
if (trim($m_sal['item'])== trim($item))
$lee = "UPDATE sinve SET saldo = $saldo, costo = $costo WHERE ano_mesi = $ano_mesf AND almacen = 0 AND item = '$item' ";
else
$lee = "INSERT INTO sinve (item, almacen, ano_mesi, saldo, costo) VALUES ('$item','0',$ano_mesf,$saldo,$costo) ";
ejecuta_query($lee);
}
if ($recons != 1)
{
$lee = "UPDATE iden SET f_cierrei = '$fecha_f' ";
ejecuta_query($lee);
}
$ya = hoy_minuto("YMD");
echo "termina:$ya";
?>
<script language="javascript" type="text/javascript" >
alert('Proceso terminado ');
</script>
<?
session_destroy();
?>
<script languaje="JavaScript"> location.href='index.php?programa=cia';</script>
<?php
}