Diagrama Entidad Relación Facturación

Seguramente muchos de ustedes han reporteado facturaciones, ya sea como solo facturación, ventas netas, ventas x vendedor, por tipo de producto, lotes, cartera, x cliente, x rango de fechas, etc. Sabrán que aunque tal vez los nombres de las tablas estén indicados en la configuración de la base de datos, es complicado andar buscando las relaciones de las mismas. Por tal motivo, he creado un diagrama entidad relación donde incluyo la gran mayoría de las tablas necesarias en la facturación.

 Poniendo al centro la tabla factf01 (Cabecero de facturas), agrego los campos adicionales del cabecero de las facturas que es (factf_clib01),  pongo la relación con partidas (par_factf01) y sus adicionales (par_factf_clib01), así mismo las observaciones de las facturas (obs_docf01), el vendedor (vend01), el cliente (clien01) y sus datos adicionales (clie_clib01) así como las observaciones del cliente (oclie01), la bitácora del sistema (bita01), el almacén principal de la factura (almacenes01 que como observaremos es solo el principal, porque las partidas pueden salir de diferentes almacenes si asi lo permitimos en la configuración), el tipo de moneda (moned01) la cuenta x cobrar (cuen_m01), opcionalmente la información de envío (infenvio01), de las partidas el inventario (inve01) y sus campos adicionales(inve_clib01), con el número de movimiento tenemos todo de movimientos al inventario (minve01), si la partida tiene lotes, su enlace de lotes (enlace_ltpd01) y su detalle de lotes (ltpd01) y por cada detalle de lotes sus observaciones (oltpd01), finalmente la tabla de documentos asociados (doctosigf01).

 A los familiarizados con los diagramas entidad relación, sabrán que con este podrán construir prácticamente cualquier query. Observen que las tablas donde se tiene una flecha, indica que se debe hacer el query con un left join entre ellas ya que el campo es opcional (Ejemplo FACTF01.CVE_OBS con OBS_DOCF01.CVE_OBS).

 Omití otras tablas como FACTP01 (Cabecero de pedidos), CUEN_DETM01 (Detalle de movimientos de cuentas x cobrar), números de serie NUMSER01 y HNUMSER01, las claves alternas del inventario (CVES_ALTER01) y el folio fiscal de la factura (CFDI01), si los requieren puedo actualizar el diagrama.

 Y aquí lo tienen. Por favor si ven que requiere alguna corrección mucho se los agradeceré.

 

Comentarios   

+1 #10 Super User 31-07-2017 14:31
Hola Alex.

Las tabla principal de movimientos al inventario es la MINVE01 para la empresa 1, esto lleva la relación de todos los movimientos al inventario, sin embargo también es necesario afectar la tabla MULT01 que es donde se llevan las existencias de los almacenes, restar del que se saca el producto y sumar en el que se agrega el producto.

Para insertar el registro en MINVE01, necesitarás obtener los folios de control de TBLCONTROL01 de donde necesitas sacar el codigo 44 (Para el campo NUM_MOV) el cual es único para cada movimiento, y adicional puedes tener un movimiento agrupado de varios movimientos repitiendo el mismo folio obtenido con el control 32 para digamos 10 movimientos de un misma agrupación de movimientos u obtengas uno por cada movimiento lo cual es perfectament válido.

Ahora bien, los movimientos de lotes son un punto y aparte. Requieres familiarizarte primero con las tablas, te recomiendo la discución: [spam][spam][spam].cyberadmin.com.mx/portal/9-sae/ 6-resolver-problemas-comunes-con-lotes


Cito a Alex Betancourt:
Hola!
Quiero realizar un movimiento entre almacenes de un producto, alguien me puede decir qué tablas debo afectar?

Y alguien me puede explicar para qué se usa la tabla enlace_ltpd01 en SAE y cómo se debe afectar?

GRACIAS!!!!
+1 #9 Alex Betancourt 29-07-2017 15:37
Hola!
Quiero realizar un movimiento entre almacenes de un producto, alguien me puede decir qué tablas debo afectar?

Y alguien me puede explicar para qué se usa la tabla enlace_ltpd01 en SAE y cómo se debe afectar?

GRACIAS!!!!
+1 #8 Super User 02-06-2017 19:57
Cito a isantosp:
Que tal Super User.. Una disculpa, desde un inicio debí decirlo, es un desarrollo externo usando SAE 6.0 con SQL Server.

En este desarrollo externo tengo sincronizados productos, clientes y proveedores. Actualmente mando pedidos de clientes directamente a la BD para solo facturar en SAE (lo que resta de inventarios creo).

Lo que ahora necesito hacer es generar, primero requisiciones de compras (aun no se mueve el inventario).. Después, dependiendo lo que mande el proveedor, pasar esa requisición directo a una compra o generar una recepción con lo que manda el proveedor y en este paso ya mover el inventario sumando las existencias.


He hecho muchos desarrollos como el que comentas, pero nunca con las tablas que requieres. Te paso un tip que a mi he ha servido demasiado cuando necesito automatizar procesos de Aspel

1. Crea una nueva Requisición de compra pero no la guardes. Cuando estés listo para finalizar
2. Abre el SQL Server Profiler
3. Configúralo para cachar todas las sentencias en Ejecución y de preferencia solo filtra el usuario de Aspel y el host de tu máquina
4. Dale grabar a la requisición
5. Al terminar de grabar detern inmediatamente el SQL Profiler
6. Analiza detenidamente cada una de las sentencias, conviértelas en un algoritmo y finalmente construye un Store Procedure con cada uno de los pasos.

Si haces esto con cada uno de los procesos que quieres automatizar, no tendrás ningún problema. Realmente es algo talachudo, pero te aseguro que son pocas las tablas involucradas y si ya conoces el manejo de SQL Server esto será pan comido.
+1 #7 isantosp 01-06-2017 05:15
Que tal Super User.. Una disculpa, desde un inicio debí decirlo, es un desarrollo externo usando SAE 6.0 con SQL Server.

En este desarrollo externo tengo sincronizados productos, clientes y proveedores. Actualmente mando pedidos de clientes directamente a la BD para solo facturar en SAE (lo que resta de inventarios creo).

Lo que ahora necesito hacer es generar, primero requisiciones de compras (aun no se mueve el inventario).. Después, dependiendo lo que mande el proveedor, pasar esa requisición directo a una compra o generar una recepción con lo que manda el proveedor y en este paso ya mover el inventario sumando las existencias.
+1 #6 Super User 01-06-2017 03:00
Cito a isantosp:
Cito a Super User:
Cito a isantosp:
Hola..
Podría ayudarme con la info de tablas que debo afectar para ingresar requisiciones de compras y recepción de mercancía para afectar los inventarios y lo demás que conlleva

o_O


Hola.

Las tablas de requisiciones para la empresa 1 son
* Cabecero de requisiciones: COMPQ01
* Detalle de requisiciones: PAR_COMPQ01
* Campos libres del cabecero de requisiciones: COMPQ_CLIB01
* Campos libres del detalle de requisiciones: PAR_COMPQ_CLIB01
* Enlaces de documentos de requisiciones con compras u ordenes: DOCTOSIGC01

No mencionas para nada qué es lo que quieras específicamente hacer con los inventarios..... si crear la orden o directamente una compra a partir de la requisición o qué exactamente es lo que deseaS!!



En primer lugar necesito crear una requisición, dependiendo de lo que mande el proveedor, si manda todo lo de la requisición pasarla directamente a compra, de lo contrario crear una recepción de mercancia por lo que mande el proveedor que más o menos sería parte de los detalles de la requisición.

Depende lo que llegue del proveedor, ya sea la compra o la recepción, afectar el inventario, que realmente no se bien como funiona eso o_O



Definitivamente las tablas que debes de llenar son las que te comenté y adicionalmente en caso de compras las COMPO01, PAR_COMPO01, etc. No entiendo si lo quieres hacer desde SAE eso es muy sencillo; Ahora bien, si piensas hacer un desarrollo externo se empieza a complicar pero para nada imposible. Te recomiendo encarecidamente migrar a SQL Server y ahi crear un store procedure que reciba de parámetros los datos de tu requisición para afectar todas las tablas indicadas, incluso el foliador de compras y de requisiciones según sea el caso.
+1 #5 isantosp 31-05-2017 04:35
Cito a Super User:
Cito a isantosp:
Hola..
Podría ayudarme con la info de tablas que debo afectar para ingresar requisiciones de compras y recepción de mercancía para afectar los inventarios y lo demás que conlleva

o_O


Hola.

Las tablas de requisiciones para la empresa 1 son
* Cabecero de requisiciones: COMPQ01
* Detalle de requisiciones: PAR_COMPQ01
* Campos libres del cabecero de requisiciones: COMPQ_CLIB01
* Campos libres del detalle de requisiciones: PAR_COMPQ_CLIB01
* Enlaces de documentos de requisiciones con compras u ordenes: DOCTOSIGC01

No mencionas para nada qué es lo que quieras específicamente hacer con los inventarios..... si crear la orden o directamente una compra a partir de la requisición o qué exactamente es lo que deseaS!!



En primer lugar necesito crear una requisición, dependiendo de lo que mande el proveedor, si manda todo lo de la requisición pasarla directamente a compra, de lo contrario crear una recepción de mercancia por lo que mande el proveedor que más o menos sería parte de los detalles de la requisición.

Depende lo que llegue del proveedor, ya sea la compra o la recepción, afectar el inventario, que realmente no se bien como funiona eso o_O
+1 #4 Super User 31-05-2017 01:16
Cito a isantosp:
Hola..
Podría ayudarme con la info de tablas que debo afectar para ingresar requisiciones de compras y recepción de mercancía para afectar los inventarios y lo demás que conlleva

o_O


Hola.

Las tablas de requisiciones para la empresa 1 son
* Cabecero de requisiciones: COMPQ01
* Detalle de requisiciones: PAR_COMPQ01
* Campos libres del cabecero de requisiciones: COMPQ_CLIB01
* Campos libres del detalle de requisiciones: PAR_COMPQ_CLIB01
* Enlaces de documentos de requisiciones con compras u ordenes: DOCTOSIGC01

No mencionas para nada qué es lo que quieras específicamente hacer con los inventarios..... si crear la orden o directamente una compra a partir de la requisición o qué exactamente es lo que deseaS!!
+1 #3 isantosp 30-05-2017 21:51
Hola..
Podría ayudarme con la info de tablas que debo afectar para ingresar requisiciones de compras y recepción de mercancía para afectar los inventarios y lo demás que conlleva

o_O
+2 #2 Super User 18-05-2017 15:57
Cito a jouse:
No se mira ni naa en la imagen que subiste


La imagen está mostrada en pequeño, sin embargo si le das click se muestra completa.
+1 #1 Ernesto Arias 23-03-2017 18:27
Gracias me parece muy bien esta es información que ando buscando.

Excelente.

No tienes derecho suficientes para publicar contenido