Ver Mensaje Individual
  #11 (permalink)  
Antiguo 18/02/2005, 17:59
augusto_jaramil
 
Fecha de Ingreso: junio-2004
Ubicación: Ciudad de Panama
Mensajes: 551
Antigüedad: 19 años, 9 meses
Puntos: 8
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

}