Autor Tema: Crear codigo en todas las tablas  (Leído 1692 veces)

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

Desconectado xcero

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 11
  • -Receive: 50
  • Mensajes: 401
  • xcero.xyz
    • Realidad Cero
Crear codigo en todas las tablas
« : mayo 17, 2012, 11:37:49 am »
Base de Datos: SQL 2005

Problema no se crean los Articulos Nuevos en todas las bodegas


Cada vez que se crea un articulo inserta estos valore en la tabla Cat_articulo

Código: [Seleccionar]
INSERT INTO CAT_ARTICULO (
 CODARTICULO,
 NOMBRE,
 EXISMINIMA,
 EXISACTUAL,
 CODUNIDADVENTA,
 COSTO,
 PRECIO,
 FACTOR,
 CODUNIDADCOMPRA,
 EXISMAXIMA,
 DEVUELVE,
 CODGRUPO,
 CANTA,
 PRECIOA,
 CANTB,
 PRECIOB,
 CANTC,
 PRECIOC,
 CODBODEGA,
 ESCOMBO
)


El problema que solo crea en las 3 Primeras Bodegas, ahorita veo el procedimeinto para copiarla en las otras.

BOD001   BODEGA TIENDA
BOD002   BODEGA PRINCIPAL
BOD003   BODEGA MAL ESTADO
BOD004   BODEGA PAPELERIA
BOD005   BODEGA MOVIMIENTOS SOYAPANGO
BOD006   BODEGA DE REACOMODO
BOD007   BODEGA DE PREMIOS
BOD008   BODEGA DE AJUSTES
BOD009   BODEGA MISCELANEOS
BOD010   Bodega Obsolescencia
BOD011   BODEGA DESTRUCCION
BOD012   BODEGA EQUIPOS NOMBRAMIENTOS

Este problema lo pongo para ir documentando y ver las soluciones posibles


OTRO PROBLEMA RESUELTO
Escribir en el Reporte de Facturas el TOTAL en letras .

Para eso busque en Internet  como crear un Procedimiento Almacenado y me encontre con la funcion Num2Text  ejecute el Query siguiente
Código: [Seleccionar]
USE [Nombre de Base de Datos]
GO
/****** Object:  UserDefinedFunction [dbo].[Num2Text]    Script Date: 05/17/2012 11:26:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER Function [dbo].[Num2Text](@valor money)

returns varchar(500)

as

begin

  declare @textoValor varchar(500)

  Select @textoValor = Case when @valor = 0 then 'CERO'

                            when @valor = 1 then 'UN'

                            when @valor = 2 then 'DOS'

                            when @valor = 3 then 'TRES'

                            when @valor = 4 then 'CUATRO'

                            when @valor = 5 then 'CINCO'

                            when @valor = 6 then 'SEIS'

                            when @valor = 7 then 'SIETE'

                            when @valor = 8 then 'OCHO'

                            when @valor = 9 then 'NUEVE'

                            when @valor = 10 then 'DIEZ'

                            when @valor = 11 then 'ONCE'

                            when @valor = 12 then 'DOCE'

                            when @valor = 13 then 'TRECE'

                            when @valor = 14 then 'CATORCE'

                            when @valor = 15 then 'QUINCE'

                            when @valor < 20 then 'DIECI' + dbo.Num2Text(@valor - 10)

                            when @valor = 20 then 'VEINTE'

                            when @valor < 30 then 'VEINTI' + dbo.Num2Text(@valor - 20)

                            when @valor = 30 then 'TREINTA'

                            when @valor = 40 then 'CUARENTA'

                            when @valor = 50 then 'CINCUENTA'

                            when @valor = 60 then 'SESENTA'

                            when @valor = 70 then 'SETENTA'

                            when @valor = 80 then 'OCHENTA'

                            when @valor = 90 then 'NOVENTA'

                            when @valor < 100 then dbo.Num2Text(floor(@valor / 10) * 10) + ' Y ' + dbo.Num2Text(@valor % 10)

                            when @valor = 100 then 'CIEN'

                            when @valor < 200 then 'CIENTO ' + dbo.Num2Text(@valor - 100)

                            when @valor in (200, 300, 400, 600, 800) then dbo.Num2Text(floor(@valor / 100)) + 'CIENTOS'

                            when @valor = 500 then 'QUINIENTOS'

                            when @valor = 700 then 'SETECIENTOS'

                            when @valor = 900 then 'NOVECIENTOS'

                            when @valor < 1000 then dbo.Num2Text(floor(@valor / 100) * 100) + ' ' + dbo.Num2Text(@valor % 100)

                            when @valor = 1000 then 'MIL'

                            when @valor < 2000 then 'MIL ' + dbo.Num2Text(@valor % 1000)

                            when @valor < 1000000 then case when @valor % 1000 > 0

                                                            then dbo.Num2Text(floor(@valor / 1000)) + ' MIL' + ' ' + dbo.Num2Text(@valor % 1000)

                                                            else dbo.Num2Text(floor(@valor / 1000)) + ' MIL'

                                                       end

                            when @valor = 1000000 then 'UN MILLON'

                            when @valor < 2000000 then 'UN MILLON ' + dbo.Num2Text(@valor % 1000000)

                            when @valor < 1000000000000.0 then case when (@valor - floor(@valor / 1000000) * 1000000) > 0

                                                                    then dbo.Num2Text(floor(@valor / 1000000)) + ' MILLONES ' + dbo.Num2Text(@valor - floor(@valor / 1000000) * 1000000)

                                                                    else dbo.Num2Text(floor(@valor / 1000000)) + ' MILLONES '

                                                               end

                            when @valor = 1000000000000.0 then 'UN BILLON'

                            when @valor < 2000000000000.0 then 'UN BILLON ' + dbo.Num2Text(@valor - floor(@valor / 1000000000000.0) * 1000000000000.0)

                            else case when (@valor - floor(@valor / 1000000000000.0) * 1000000000000.0) > 0

                                      then dbo.Num2Text(floor(@valor / 1000000000000.0)) + ' BILLONES'

                                      else dbo.Num2Text(floor(@valor / 1000000000000.0)) + ' BILLONES' + ' ' + dbo.Num2Text(@valor - floor(@valor / 1000000000000.0) * 1000000000000.0)

                                 end

                       end

  return(@textoValor)

end

Y depues en el CrystalReport le pasa la funcion la total

Aprovechando el contenido loque quiero crear, es un programa POS de una pequeña empresa, en la U solo esto manejabamos lastimosamente Visual Basic.NET y SQL Server, asi que ire poniendo para ver como avanza este programa y que se pueda utilizar en cualquier comercio minorista.
« Última Modificación: mayo 17, 2012, 12:03:19 pm por xcero »
http://xcero.xyz

Desconectado tekun

  • -^- Elite Silver -^-
  • Trade Count: (1)
  • The Communiter-
  • *
  • Thank You
  • -Given: 53
  • -Receive: 101
  • Mensajes: 3212
  • Han convertido mi casa en cueva de mercaderes!!!!
    • www.tekun.es
Re:Crear codigo en todas las tablas
« Respuesta #1 : mayo 17, 2012, 05:34:41 pm »
y este post para que es?.....



lo otro que puedo comentar es:

para que les pones BODEGA, a todos los ítems.... si vas a guardar sólo bodegas esta demás el identificador.... has visto las pupuserias.... has visto esto en los letreros: pupusas de chicharon, pupusas de queso, pupusas revueltas, pupusas de loroco, pupusas, pupusas, pupusas, pupusas.... ??¿¿??¿¿


sólo le ponen, chicharon, revueltas, de queso etc. etc. etc. 

.........

El problema que solo crea en las 3 Primeras Bodegas, ahorita veo el procedimeinto para copiarla en las otras.

BOD001   BODEGA TIENDA
BOD002   BODEGA PRINCIPAL
BOD003   BODEGA MAL ESTADO
BOD004   BODEGA PAPELERIA
BOD005   BODEGA MOVIMIENTOS SOYAPANGO
BOD006   BODEGA DE REACOMODO
BOD007   BODEGA DE PREMIOS
BOD008   BODEGA DE AJUSTES
BOD009   BODEGA MISCELANEOS
BOD010   Bodega Obsolescencia
BOD011   BODEGA DESTRUCCION
BOD012   BODEGA EQUIPOS NOMBRAMIENTOS

......
lo difícil lo hago rápido, con lo imposible, casi siempre me tardo un poquito

Desconectado Non Servium

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 6
  • -Receive: 39
  • Mensajes: 426
  • Ilix Punx :)
Re:Crear codigo en todas las tablas
« Respuesta #2 : mayo 18, 2012, 08:02:11 am »
y este post para que es?.....

lo otro que puedo comentar es:
para que les pones BODEGA, a todos los ítems.... si vas a guardar sólo bodegas esta demás el identificador.... has visto las pupuserias.... has visto esto en los letreros: pupusas de chicharon, pupusas de queso, pupusas revueltas, pupusas de loroco, pupusas, pupusas, pupusas, pupusas.... ??¿¿??¿¿

sólo le ponen, chicharon, revueltas, de queso etc. etc. etc. 

hahahaha esta bueno tu ejemplo de las pupusas! Bien adaptado!

Enserio q no entendí nada del post de xcero!! explicate de nuevo, resumidamente si es posible ^^
♫ Condenados a perder la libertad! Por no acatar las leyes que les asignaron. ♪ ♫
Decididos, decididos a emprender! Un camino largo y duro por no ser esclavos ♫


Watch

Desconectado edu_guerr

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 51
  • -Receive: 70
  • Mensajes: 463
Re:Crear codigo en todas las tablas
« Respuesta #3 : mayo 18, 2012, 09:32:48 am »
hahahaha esta bueno tu ejemplo de las pupusas! Bien adaptado!

Enserio q no entendí nada del post de xcero!! explicate de nuevo, resumidamente si es posible ^^

Yo creo que son problemas que @xcero ha tenido, y esta explicando como los resolvio.


Problema no se crean los Articulos Nuevos en todas las bodegas
Cada vez que se crea un articulo inserta estos valore en la tabla Cat_articulo

.....
El problema que solo crea en las 3 Primeras Bodegas, ahorita veo el procedimeinto para copiarla en las otras.

BOD001   BODEGA TIENDA
BOD002   BODEGA PRINCIPAL
BOD003   BODEGA MAL ESTADO
BOD004   BODEGA PAPELERIA
BOD005   BODEGA MOVIMIENTOS SOYAPANGO
BOD006   BODEGA DE REACOMODO
BOD007   BODEGA DE PREMIOS
BOD008   BODEGA DE AJUSTES
BOD009   BODEGA MISCELANEOS
BOD010   Bodega Obsolescencia
BOD011   BODEGA DESTRUCCION
BOD012   BODEGA EQUIPOS NOMBRAMIENTOS

-----------------------------
Aquí se debe de tener cuidado, no se si sea el caso, en algunas empresas existirán artículos que no necesariamente deben estar registrados en TODAS las bodegas, por ejemplo:

Código: [Seleccionar]
BOD008 BODEGA DE AJUSTES
En esta bodega( en algunas empresas se conoce como sub-almacen) no tiene porque guardarse el articulo cuando lo creas por primera vez,
el porcentaje de artículos que pueden llegar a ser "ajustados" es bajisimo,  en pocas palabras si los guardas tambien en esta bodega cuando
creas el articulo por primera vez, puede ser que tengas códigos de artículos guardados para esa bodega que nunca los ajustes, entonces
estarías ocupando espacio en tu base de datos  con datos que no utilizas.

Código: [Seleccionar]
BOD010 Bodega Obsolescencia
Lo mismo con esta bodega, para que un articulo tenga este "estado" a veces deben de pasar hasta meses,osea que mientras no "caiga"
en el estado "obsoleto" tendrías el registro guardado de por gusto. en este caso de obsoletos, lo mejor es definir rangos de obsolescencia en base a días y hacer los cálculos en la base de datos en base a la fechas de los artículos.

Por eso considero que no seria necesario guardar los artículos en todas las bodegas al momento que los creas.

En pocas palabras hay ciertos "estados"(obsoleto, ajustado....) de los artículos en los cuales "pueden" llegar a caer, cuando caen
en ese estado debe ser registrados en esas bodega(BOD008   BODEGA DE AJUSTES,BOD010   Bodega Obsolescencia)