Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-10-2006
Avatar de poliburro
[poliburro] poliburro is offline
Miembro Premium
 
Registrado: ago 2004
Ubicación: México D.F
Posts: 3.068
Poder: 23
poliburro Va por buen camino
A veces sucede que los motores de bases de datos te incluyen la parte de tiempo, por que no pruebas limitando los campos a que solo validen la parte de la fecha?.



Por cierto, que motor de base de datos usas?.
Responder Con Cita
  #2  
Antiguo 08-10-2006
JulioGO JulioGO is offline
Miembro
 
Registrado: ago 2004
Posts: 94
Poder: 20
JulioGO Va por buen camino
Costo de Inventario

Hola NickName:

Tengo yo realizo el proceso de costear el inventario de un almacen de la siguiente manera: en una tabla tengo los datos de la compra y en otro los de la venta(cabeceras), cada una con su respectiva tabla de detalles. Es con las tablas de detalles con las q trabajo. En la tabla detalles de compras es donde guardo el precio de compra, y en la tabla detalles de ventas el precio de venta.

Luego lo q hago es mediante vistas, unir los datos de la cabecera(fecha, proveedor/cliente, id_articulo, precio compra, precio venta). Una vista para lo q es compras y otra para lo q es ventas.

De ahi uno las dos vistas mandando el rango de fechas q desea procesar y voy realizando el costo de inv. Todo esto ultimo en un procedimiento almacenado:

Aqui te envio el procedimiento:

Código SQL [-]
create procedure costeo_articulo(codart, fecini, fecfin)
results(tipo, fecha, proveed_cliente, cantidad, precio, total, precio_costo)
for select tipo, fecha, 
from (
     select 'C' tipo, fecha, proveedor proveed_cliente, cantidad, precio_compra
       from vista_compras
      where codart=:codart and fecha between :fecini and :fecfin
    union all
    select 'V' tipo, fecha, cliente proveed_cliente, cantid, precio_venta
      from vista_ventas
      where codart=:codart and fecha between :fecini and :fecfin
)
order by fecha
into :tipo, :fecha, roveed_cliente, :cantidad, recio do
begin
 total = recio * :cantidad;
 if (:tipo = 'C') then /*si el mov. es compras realiza el precio de costo*/
      precio_costo = :cantidad/recio;
 else
     total = recio_costo * :cantidad;
 suspend;
end

Si revisas el codigo el procedimiento realiza el proceso de costeo por articulo
q lo puedes anexar a otro procedimeinto para poder sacar el costeo de todos los articulos

Espero te sirva.

Saludos
Responder Con Cita
  #3  
Antiguo 08-10-2006
Avatar de NickName
NickName NickName is offline
Miembro
 
Registrado: may 2003
Ubicación: Guerrero, México
Posts: 96
Poder: 22
NickName Va por buen camino
Thumbs up

Hola.
Gracias por contestar...perdon si se me paso poner con que estoy trabajando... Uso Delphi7, Firebird 1.0, IBx como conexión.

Cita:
JulioGo: Espero te sirva
Claro que si me sirve hasta q llego la luz... Muchas Gracias ahora nadamas deja probar la forma que dices aver que sale.... y les cuento.

Cita:
JulioGo: Si revisas el codigo el procedimiento realiza el proceso de costeo por articulo q lo puedes anexar a otro procedimeinto para poder sacar el costeo de todos los articulos
Si esta super bien lo Pruebo y les cuento...
GRACIAS...
__________________
Saludos...
Responder Con Cita
  #4  
Antiguo 09-10-2006
Avatar de NickName
NickName NickName is offline
Miembro
 
Registrado: may 2003
Ubicación: Guerrero, México
Posts: 96
Poder: 22
NickName Va por buen camino
Hola.

Segun yo ya resolvi lo mas importante q era sacar el costo de cada mercancia q existiera en almacen... les pongo lo que hice, bueno primero 2 vistas como me recomendo JulioGo:
Código SQL [-]
CREATE VIEW VISTA_COMPRAS(
    COD_PROVEEDOR,
    FECHA_COMPRA,
    PRECIO_COMPRA,
    COD_MERCANCIA,
    CANTIDAD)
AS
select  C.Cod_Proveedor, C.Fecha_Compra, P.Precio_Compra, LC.Cod_Mercancia, LC.Cantidad
From    Compras C, Lineas_Compra LC, Precios P
where   LC.Cod_Compra = C.Cod_Compra And
        LC.Cod_Mercancia = P.Cod_Mercancia And
        C.Cancelada = 'NO'

Código SQL [-]
CREATE VIEW VISTA_VENTAS(
    FECHA_VENTA,
    COD_MERCANCIA,
    CANTIDAD)
AS
select  N.Fecha_Venta, LN.Cod_Mercancia, LN.Cantidad
From    Notas N, Lineas_Nota LN
where   LN.Cod_Nota = N.Cod_Nota

Luego mi SP no habia hecho uno en mi vida... sera por eso q la variable Total_Inventario no me toma el valor q le digo... chequenlo, Jusgenlo y hechenme otra ayudadita para ver por q esa variable no me toma ningun valor:
Código SQL [-]
CREATE PROCEDURE COSTEO_INVENTARIO (
    FECHA_INICIO DATE,
    FECHA_FIN DATE)
RETURNS (
    FECHA_COMPRA DATE,
    COD_PROVEEDOR INTEGER,
    COD_MERCANCIA VARCHAR(7),
    PRECIO_COMPRA DECIMAL(15,2),
    CANTIDAD INTEGER,
    TOTAL_MERCANCIA DECIMAL(15,2),
    TOTAL_INVENTARIO DECIMAL(15,2))
AS
DECLARE VARIABLE CANTIDAD_VENTA INTEGER;
begin
For Select Cod_Proveedor, Fecha_Compra, Precio_Compra, Cod_Mercancia, Cantidad
From Vista_Compras C Where C.Fecha_Compra Between :Fecha_Inicio And :Fecha_Fin
Order By Fecha_Compra
Into :Cod_Proveedor, :Fecha_Compra, :Precio_Compra, :Cod_Mercancia, :Cantidad Do
Begin
   /* cuanto se ha vendido */
   Select Count(Cod_Mercancia)
   From Vista_Ventas V Where V.Cod_Mercancia = :Cod_Mercancia And V.Fecha_Venta Between :Fecha_Inicio And :Fecha_Fin
   Into :Cantidad_Venta;
   /* Operaciones */
   Cantidad = Cantidad - :Cantidad_Venta;
   Total_Mercancia = Precio_Compra * Cantidad;
   /* Se puede hacer esto en un SP ? por q es la variable q no toma valor */
   Total_Inventario = Total_inventario + Total_Mercancia;
  suspend;
end
End

Segun las pruebas q he realizado funciona bien exepto por la variable Total_Inventario ya comentada de hay en fuera todo bien

Se me estaba olvidando comentar q sumo el codigo de Mercancia de las ventas por q si una mercancia la vendo 2 veces en una Nota genero 2 Registros con el mismo codigo esto es por los numeros de serie q son distintos... bueno ojala y me aya explicado...
ha y esta super esto de los SP...
__________________
Saludos...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Inventario de Hardware vichovi API de Windows 3 03-01-2005 15:35:10
Costo de DelphiPack AGAG4 DelphiPACK 4 11-10-2004 22:20:23
Controlar inventario? AbcXxx Varios 4 12-06-2004 00:54:13
Costo del Software francisco182 Varios 1 17-04-2004 10:18:00
Costo de mi aplicación. Walterdf Varios 1 24-05-2003 02:41:09


La franja horaria es GMT +2. Ahora son las 10:42:16.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi