Funciones REST

<< Haga clic para mostrar la tabla de contenido >>

Navegación:  Rest API >

Funciones REST

AUTORIZACIÓN

 

El acceso al API es de tipo BASICO, donde se requiere Usuario y Contraseña, el cual debe existir en la Base de datos de DisPRO con las credenciales: Credenciales de Acceso a Funciones

 

 

 

 


LISTA DE FUNCIONES

 

Empresa

oGetEmpresa

oListaAgentesVenta

oListaUsuarios

oListaAlmacenes

oWA_Mensaje

Clientes

oListaCliente

oListaCliente_DoctosEnDeuda

oCliente_AbonoADocto

Tarjetas

oAlta_Tarjeta

oConsultaTarjetaPuntos

oProcesarTarjetaPuntos

oConsultaTarjetaRegalo

oConsultaTarjetaRegaloBanda

oProcesarTarjetaRegalo

oProcesarTarjetaRegaloBanda

Productos

oProducto_ExistenciaActual

oProducto_ExistenciaActualReal

oAjusteInventario

oListaProducto

oObtenerCategorias

oProducto_PrecioPG

Pedidos En Linea

oAlta_PedidoEnLinea

oProcesar_PedidoEnLinea

oPDF_FacturaXFolioPedido

oPDF_FacturaXFolioVenta

Proveedores

oListaProveedor

Compras

oAlta_Entrada

oAlta_Conversion

Almacén Digital

oAsociarXML

oSubirXML

oSubirXML_EnZip

 

 

 


EMPRESA

 

[HttpGet] Function GetEmpresa():TJSONObject;

Devuelve los datos de la Empresa princiaples

URI: http://localhost:8888/service/DisPROAPI/GetEmpresa/

 

Response:

{

   "NOMBRE": "KARLA FUENTE NOLASCO",

   "COMERCIAL": "MERCADO MÉXICO",

   "RFC": "FUNK-671228-PH6",

   "DOMICILIO": "Bucaneros 55, Playa Ensenada México ",

   "CORREO": "rdaniel@mxfactura.com",

   "TELEFONO": "6461521901",

   "IVAINCLUIDO": "F",

   "PRINTER1": "Impresora 1",

   "PRINTER2": "Impresora 2",

   "PRINTER3": "Impresora 3",

   "PRINTER4": "Impresora 4",

   "PROTITULO1": "Fabricante",

   "PROTITULO2": "Modelo",

   "PROTITULO3": "Unidad",

   "OP_MOSTRARPIEZAS": "T",

   "TASA2_INC_BASEIVA": "T",

   "ENTREGA_CONFOTO": "",

   "TIPOFOTO": "",

   "OP_ORDENPRO_TITULOS": "",

   "URL_POST_EN_ENTREGAPEDIDOS": "",

   "OP_AUTHPEDIDOPRECIO": "",

   "OP_AUTOGEN_PRECIOPACTO": "",

   "OP_ORDENPRO_TITULOS": "",

   "TC_VENTACREDITO": "18.5",

   "TC_COBRANZACREDITO": "18.5",

   "FOLIOTRUPERLINEA": "",

   "PAPELETA": "",

   "OP_ART_EXTRA_REL": "",

   "OP_IEPS_SOBRE_IVA": "2",

   "URL_PHOTO": "https:\/\/cwinsystems.com\/foto\/",

   "OP_SIN_DERIVACION": "T"

}

 

 

 

 

[HttpGet] Function ListaAgentesVenta():TJSONObject;

Devuelve la Lista de Agentes de Venta

URI: http://localhost:8888/service/DisPROAPI/ListaAgentesVenta/

 

Response:

{

   "CATALOGO": [

       {

           "NOMBRE": "DANIEL",

           "NUUSER": "2"

       },

       {

           "NOMBRE": "JOEL",

           "NUUSER": "44"

       },

       {

           "NOMBRE": "SAMUEL",

           "NUUSER": "722"

       },

       {

           "NOMBRE": "CRISTOPHER",

           "NUUSER": "714"

       }

   ]

}

 

 

 

[HttpGet] Function ListaUsuarios():TJSONObject;

Devuelve la Lista de Usuarios Activos

URI: http://localhost:8888/service/DisPROAPI/ListaUsuarios/

 

Response:

{

   "CATALOGO": [

       {

           "NOMBRE": "DANIEL",

           "NUUSER": "2"

       },

       {

           "NOMBRE": "ENTRENAMIENTO",

           "NUUSER": "7"

       },

       {

           "NOMBRE": "GABRIEL",

           "NUUSER": "15"

       },

       {

           "NOMBRE": "SAMUEL",

           "NUUSER": "723"

       },

       {

           "NOMBRE": "OSWALDO",

           "NUUSER": "713"

       }

   ]

}

 

 

 

 

 

[HttpGet] Function ListaAlmacenes():TJSONObject;

Devuelve la Lista de Almacenes Activos

URI: http://localhost:8888/service/DisPROAPI/ListaAlmacenes/

 

 

Response:

{

   "CATALOGO": [

       {

           "NUALMACEN": 0,

           "NOMBRE": "Matriz",

           "DESCRIPCION": "Matriz",

           "PRECIO": "G",

           "TASAIVA": 0

       },

       {

           "NUALMACEN": 1,

           "NOMBRE": "Gastelum",

           "DESCRIPCION": "Gastelum",

           "PRECIO": "G",

           "TASAIVA": 8

       }

   ]

}

 

 

 

 

 

[HttpPost] Function WA_Mensaje([FromBody] WA: TJSONObject):TJSONObject;

Enviar mensaje a traves de la plataforma de WhatsApp, requiere previa configuracion.

 

URI: http://localhost:8888/service/DisPROAPI/WA_Mensaje/

 

Request1:

{

  "WA": {

       "CELULAR": "6461902030",

       "TITULO": "ORDEN #34534",

       "MENSAJE": "LE INFORMAMOS QUE SU PEDIDO HA SIDO ENVIADO"

  }

}

 

Request2:

{

  "WA": {

       "CELULAR": "526461902030",

       "TITULO": "ORDEN #34534",

       "MENSAJE": "LE INFORMAMOS QUE SU PEDIDO HA SIDO ENVIADO"

  }

}

 

 

Response:

{

   "RESULT": 2,

   "MSG": "Mensaje enviado con Exito"

}

 

 

 

 

 


CLIENTES

 

 

[HttpGet] Function ListaCliente(Tipo:Integer; Filtro: String):TJSONObject;

Devuelve el catálogo de artículos que cumplan con el Filtro enviado

 

Parámetros:

Tipo =

1: Buscar por Nombre o Comercial

2: Buscar en RFC

3: Buscar en Correo

4: Buscar en Teléfono

5: Buscar por Clave Principal

6: Buscar por Extra1

7: Buscar por Extra2

8: Buscar por Extra3

 

Filtro = Clave o Palabra a buscar según el Tipo elegido

 

 

URI: http://localhost:8888/service/DisPROAPI/ListaCliente/

 

Ejemplos:

http://localhost:8888/service/DisPROAPI/ListaCliente/?Tipo=1&Filtro=DANIEL

http://localhost:8888/service/DisPROAPI/ListaCliente/?Tipo=5&Filtro=124

 

 

Response:

{

   "CATALOGO": [

       {

           "NUCLIENTE": "",

           "NUCLIENTEDISPRO": "118432",

           "NOMBRE": "DANIEL RAMIREZ JAIMES",

           "COMERCIAL": "",

           "RFC": "RAJD-760129-8SX",

           "CALLE": "",

           "NUMERO": "",

           "INTERIOR": "",

           "COLONIA": "",

           "LATITUD": "",

           "LONGITUD": "",

           "CIUDAD": "",

           "ESTADO": "",

           "PAIS": "Mexico",

           "CP": "22880",

           "EMAIL": "rdaniel@cwinsystems.com",

           "TELEFONO": "",

           "DOMICILIOENTREGA": "",

           "MSG_LIVE": "",

           "SALDO": "",

           "LIMITE": "",

           "NUTIPOPAGO": "1",

           "EXTRA1": "",

           "EXTRA2": "",

           "EXTRA3": "",

           "NUPRECIO": "A"

       }

   ]

}

 

 

 

 

[HttpGet] Function ListaCliente_DoctosEnDeuda (NuMoneda, NuCliente:Integer):TJSONObject;

Devuelve la lista de documentos que se encuentran en Deuda en una Moneda determinada de un Cliente, función que servirá para poder hacer una abono sobre una factura en deuda.

 

URI: http://localhost:8888/service/DisPROAPI/ListaCliente_DoctosEnDeuda/

 

 

Ejemplo: http://localhost:8888/service/DisPROAPI/ListaCliente_DoctosEnDeuda/?NuMoneda=1&NuCliente=116914

 

Response:

{

   "CATALOGO": [

       {

           "NUCLIENTE_MOV": 144194,

           "FECHA": "03\/09\/2022",

           "FECHAVENCE": "02\/11\/2022",

           "FOLIOSTR": "F00T00R0192",

           "UUID": "",

           "DESCRIPCION": "Venta a Crédito",

           "SERIEFACTURA": "",

           "SERIETICKET": "",

           "SERIEREMISION": "0",

           "FOLIOFACTURA": 0,

           "FOLIOTICKET": 0,

           "FOLIOREMISION": 192,

           "IMPORTEORIGINAL": 6565.86,

           "IMPORTEDEUDA": 6365.86,

           "TIPO": 1,

           "FACILIDAD271": "F",

           "PAGOFACILIDAD271": "30\/12\/1899"

       },

       {

           "NUCLIENTE_MOV": 144366,

           "FECHA": "06\/09\/2022",

           "FECHAVENCE": "05\/11\/2022",

           "FOLIOSTR": "F00T00R0195",

           "UUID": "",

           "DESCRIPCION": "Venta a Crédito",

           "SERIEFACTURA": "",

           "SERIETICKET": "",

           "SERIEREMISION": "0",

           "FOLIOFACTURA": 0,

           "FOLIOTICKET": 0,

           "FOLIOREMISION": 195,

           "IMPORTEORIGINAL": 5479.92,

           "IMPORTEDEUDA": 5479.92,

           "TIPO": 1,

           "FACILIDAD271": "F",

           "PAGOFACILIDAD271": "30\/12\/1899"

       }

   ]

}

 

 

 

 

[HttpGet] Function Cliente_AbonoADocto ([FromBody] PAGOJSON:TJSONObject):TJSONObject;

Realizar el abono de 1 hasta 10 documentos a traves del Folio "NuCliente_Mov" obtenido con la funcion de "ListaCliente_DoctosEnDeuda"

URI: http://localhost:8888/service/DisPROAPI/Cliente_AbonoADocto/

 

NUMONEDA:

1= MXN

2= USD

 

NUMETODOPAGO:

F= Efectivo

T= Cheque

R= Transferencia

J= Tarjeta de Crédito

D= Tarjeta de Débito

M= Monedero Electrónico

E= Dinero Electrónico

V= Vales de Despensa

 

 

Request

{

   "PAGOJSON": {

       "NUCLIENTE_MOV1": 144194,

       "NUCLIENTE_MOV2": 0,

       "NUCLIENTE_MOV3": 0,

       "NUCLIENTE_MOV4": 0,

       "NUCLIENTE_MOV5": 0,

       "NUCLIENTE_MOV6": 0,

       "NUCLIENTE_MOV7": 0,

       "NUCLIENTE_MOV8": 0,

       "NUCLIENTE_MOV9": 0,

       "NUCLIENTE_MOV10": 0,

       "NUUSER": 2,

       "NUALMACEN": 0,

       "PAGONUMONEDA": 1,

       "ABONO": 200,

       "TCCOBRO": 19.2,

       "FECHAPAGO": "14/11/2024",

       "NUMETODOPAGO": "F",

       "NUMOPERACION": "12345",

       "DESCRIPCION": "ABONO DE FACTURA"

   }

}

 

Response:

{

   "RESULT": 2,

   "MSG": "Se hizo el abono exitosamente",

   "FOLIOABONO": 380,

   "FOLIOINTERNO": 146367

}

 

 

 

 


TARJETAS

 

[HttpPost] Function Alta_Tarjeta([FromBody] TARJETAJSON: TJSONObject):TJSONObject;

Permite realizar alta de tarjeta de Puntos o de Regalo.

 

URI: http://localhost:8888/service/DisPROAPI/Alta_Tarjeta/

 

TIPO

0 = TARJETA DE PUNTOS

1 = TARJETA DE REGALO

 

El campo Banda, solo es necesario en Tarjeta de Regalo

El campo Year define la cantidad de años de Vigencia de la tarjeta, si Year es igual a 0 (Cero) no tendrá vigencia

 

Request:

{

   "TARJETAJSON": {

       "TIPO": 0,

       "IDCREDENCIAL": 15000,

       "NOMBRE": "DANIEL RAMIREZ",

       "TELEFONO": "",

       "CORREO": "",

       "ALTERNO": "",

       "BANDA": "",

       "YEAR": 1

   }

}

 

Response:

{

   "RESULT": 2,

   "MSG": "Alta Exitosamente"

}

 

 

 

 

[HttpGet] Function ConsultaTarjetaPuntos(IDCredencial:LongInt):TJSONObject;

Consulta de una Tarjeta de Puntos utilizando el ID de la credencial

 

URI: http://localhost:8888/service/DisPROAPI/ConsultaTarjetaPuntos/?IDCredencial=4500

 

Response:

{

   "RESULT": 2,

   "MSG": "Encontrada Exitosamente",

   "NOMBRE": "DANIEL RAMIREZ",

   "ALTERNO": "ERIKA PEREZ",

   "TELEFONO": "6461142333",

   "CORREO": "rdaniel@mxfactura.com",

   "SOLOSALDO": "",

   "FECHAVENCE": "23\/11\/2024",

   "PUNTOS": 1034,

   "CONTEO": 30

}

 

{

   "RESULT": 3,

   "MSG": "La tarjeta esta Vencida con Fecha 12\/11\/2024"

}

 

 

 

[HttpGet] Function ProcesarTarjetaPuntos(IDCredencial, Tipo, Puntos, Referencia:LongInt):TJSONObject;

Función para abonar puntos o redimir puntos a una tarjeta:

 

Tipo: 1 Abonar Puntos, 2 Redimir Puntos

Puntos: Cantidad de Puntos

Referencia: Folio numérico para identificar la transacción

 

URI: http://localhost:8888/service/DisPROAPI/ProcesarTarjetaPuntos/?IDCredencial=4500&Tipo=1&Puntos=100&Referencia=10000

 

 

Response:

{

   "RESULT": 2,

   "MSG": "Se han abonado 100 Puntos"

}

 

{

   "RESULT": 2,

   "MSG": "Se han redimido 100 Puntos"

}

 

 

 

 

[HttpGet] Function ConsultaTarjetaRegalo(IDCredencial:LongInt):TJSONObject;

Consulta los datos de una Tarjeta de Regalo existente a través del ID único

 

URI: http://localhost:8888/service/DisPROAPI/ConsultaTarjetaRegalo/?IDCredencial=4500

 

Response:

{

   "RESULT": 2,

   "MSG": "Encontrada Exitosamente",

   "NOMBRE": "DANIEL RAMIREZ",

   "ALTERNO": "ERIKA PEREZ",

   "TELEFONO": "6461434832",

   "CORREO": "rdaniel@mxfactura.com",

   "SOLOSALDO": "",

   "FECHAVENCE": "23\/11\/2024",

   "IMPORTE": 550.00,

   "CONTEO": 30

}

 

{

   "RESULT": 3,

   "MSG": "La tarjeta esta Vencida con Fecha 12\/11\/2024"

}

 

 

 

 

 

[HttpPost] Function ConsultaTarjetaRegaloBanda(Banda:String):TJSONObject;

Consulta los datos de una Tarjeta de Regalo existente a través de la Banda asignada

 

URI: http://localhost:8888/service/DisPROAPI/ConsultaTarjetaRegaloBanda/

 

Request:

{

"Banda"="L3410-93FD500"

}

 

Response:

{

   "RESULT": 2,

   "MSG": "Encontrada Exitosamente",

   "NOMBRE": "DANIEL RAMIREZ",

   "ALTERNO": "ERIKA PEREZ",

   "TELEFONO": "6461156345",

   "CORREO": "rdaniel@mxfactura.com",

   "SOLOSALDO": "",

   "FECHAVENCE": "23\/11\/2024",

   "IMPORTE": 550.00,

   "CONTEO": 30,

   "IDCREDENCIAL"=4500

}

 

{

   "RESULT": 3,

   "MSG": "La tarjeta esta Vencida con Fecha 12\/11\/2024"

}

 

 

 

 

 

[HttpGet] Function ProcesarTarjetaRegalo(IDCredencial, Tipo, Referencia:LongInt; Importe:Real):TJSONObject;

Función para abonar Importe o redimir importe a una tarjeta:

 

Tipo: 1 Abonar Importe, 2 Redimir Importe

Importe: Cantidad de dinero en Pesos

Referencia: Folio numérico para identificar la transacción

 

URI: http://localhost:8888/service/DisPROAPI/ProcesarTarjetaRegalo/?IDCredencial=4500&Tipo=1&Importe=100&Referencia=10000

 

 

Response:

{

   "RESULT": 2,

   "MSG": "Se han abonado $ 100.00 pesos de Importe"

}

 

{

   "RESULT": 2,

   "MSG": "Se han redimido $ 100.00 pesos de Importe"

}

 

 

 

 

 

 

 

[HttpPost] Function ProcesarTarjetaRegaloBanda(Banda:String; Tipo, Referencia:LongInt; Importe:Real):TJSONObject;

Función para abonar Importe o redimir importe a una tarjeta:

 

Tipo: 1 Abonar Importe, 2 Redimir Importe

Importe: Cantidad de dinero en Pesos

Referencia: Folio numérico para identificar la transacción

 

URI: http://localhost:8888/service/DisPROAPI/ProcesarTarjetaRegaloBanda/

 

Request:

{

"Banda"="L3410-93FD500",

"Tipo"=1,

"Importe":100,

"Referencia":10000

}

 

Response:

{

   "RESULT": 2,

   "MSG": "Se han abonado $ 100.00 pesos de Importe"

}

 

{

   "RESULT": 2,

   "MSG": "Se han redimido $ 100.00 pesos de Importe"

}

 

 

 

 

 

 

 


PRODUCTOS

 

[HttpGet] Function Producto_ExistenciaActual(NuAlmacen:Integer; ID:String):TJSONObject;

Devuelve la Existencia actual de un Producto (la que tenga el Expediente)

URI: http://localhost:8888/service/DisPROAPI/Producto_ExistenciaActual/?NuAlmacen=0&ID=00034888

 

Parámetros:

NuAlmacen = 0 (La lista de almacenes empieza desde Cero, sino maneja almacenes deber ser Cero)

ID = 00034888 (La clave debe llevar todos los ceros a la izquierda)

 

Response:

{

   "EXISTENCIA": 2

}

 

 

 

 

[HttpGet] Function Producto_ExistenciaActualReal(NuAlmacen:Integer; ID:String):TJSONObject;

Devuelve la Existencia Final descontando todos los procesos pendientes de un Producto

URI: http://localhost:8888/service/DisPROAPI/Producto_ExistenciaActualReal/?NuAlmacen=0&ID=00034888

 

Parámetros:

NuAlmacen = 0 (La lista de almacenes empieza desde Cero, sino maneja almacenes deber ser Cero)

ID = 00034888 (La clave debe llevar todos los ceros a la izquierda)

 

Response:

{

   "ACTUAL": 2,   (Existencia en Expediente)

   "ENESPERA": 0, (Ventas Foliadas En Espera)

   "SINFACTURA": 0, (Ventas realizadas en POS sin Facturar)

   "SALDO": 2,  (Existencia Real)

   "ENPEDIDO": 0 (Ventas realizadas en Pedidos En Linea aun no procesadas)

}

 

 

 

 

[HttpGet] Function AjusteInventario (NuAlmacen:Integer; ID: String; Cantidad:Real):TJSONObject;

Realiza un Ajuste de Inventario de forma Express a un producto

URI: http://localhost:8888/service/DisPROAPI/AjusteInventario/?NuAlmacen=0&ID=00034888&Cantidad=0

 

Parámetros:

NuAlmacen = 0 (La lista de almacenes empieza desde Cero, sino maneja almacenes deber ser Cero)

ID = 00034888 (La clave debe llevar todos los ceros a la izquierda)

Cantidad = Es la Existencia Real que se desea que tenga el Producto (no necesariamente la del expediente)

 

Response:

{

   "RESULT": 2,

   "MSG": "Inventario Ajustado Exitosamente"

}

 

 

 

 

[HttpGet] Function ListaProducto(Tipo:Integer; Filtro: String):TJSONObject;

Devuelve el catálogo de artículos que cumplan con el Filtro enviado

 

Parámetros:

Tipo =

1: Buscar en Descripción Por Palabra Y

2: Buscar en Descripción Por Palabra O

3: Buscar en Modelo Por Palabra Y

4: Buscar en Descripción por Contenido

5: Buscar por Clave Principal

6: Buscar por Cualquier Clave o Barra de Código

 

Filtro = Clave o Plabra a buscar según el Tipo elegido

 

Ejemplos:

Buscar en Descripción Por Palabra Y

URI: http://localhost:8888/service/DisPROAPI/ListaProducto/?Tipo=1&Filtro=DOVE

 

Buscar en Descripción Por Palabra O

URI: http://localhost:8888/service/DisPROAPI/ListaProducto/?Tipo=2&Filtro=DOVE

 

Buscar en Modelo Por Palabra Y

URI: http://localhost:8888/service/DisPROAPI/ListaProducto/?Tipo=3&Filtro=DOVE

 

Buscar en Descripción por Contenido

URI: http://localhost:8888/service/DisPROAPI/ListaProducto/?Tipo=4&Filtro=DOVE

 

Buscar por Clave Principal

URI: http://localhost:8888/service/DisPROAPI/ListaProducto/?Tipo=5&Filtro=00034888

 

Buscar por Cualquier Clave o Barra de Código

URI: http://localhost:8888/service/DisPROAPI/ListaProducto/?Tipo=6&Filtro=34888

 

Response:

{

   "CATALOGO": [

       {

           "ID": "00012978",

           "DESCRIPCION": "ACON. DOVE RECONSTRUCCION COMPLT. 1\/1.1LT",

           "MODELO": " ",

           "EXISTENCIA": "0",

           "NUCATEGORIA": "410",

           "NUSUBCATEGORIA": "13",

           "NUUNIDADMEDIDA": "5",

           "NUMONEDA": "1",

           "OP_UNIDADDEVENTA": "0",

           "NUPRECIO1": "G",

           "NUPRECIO2": "A",

           "NUPRECIO3": "B",

           "NUPRECIO4": "C",

           "NUPRECIO5": "D",

           "BARCODE1": "7506306212978",

           "NUUNIDADMEDIDA2": "5",

           "NUUNIDADMEDIDA3": "5",

           "NUUNIDADMEDIDA4": "5",

           "NUUNIDADMEDIDA5": "5",

           "CATEGORIA": "Miscelanea*",

           "SUBCATEGORIA": "Miscelanea*",

           "CLAVEPRODSERV": "53131602",

           "NUESTADO": "0",

           "MOD6": "                              ",

           "MOD7": "                              ",

           "MOD8": "                              ",

           "MOD9": "                              ",

           "MOD10": "                              ",

           "PRECIO07": "151.9",

           "COSTO": "65.64",

           "TASAIVA": "8.00",

           "TASAIEPS": "0",

           "OP_PROMO_SINLIMITE": "X",

           "OP_PROMO_MIN_STOCK": "0",

           "FIN_PROMOCION": "30\/12\/1899",

           "PRECIO": "151.9",

           "PRECIO7": "151.9",

           "PRECIOCONIMP": 164.05,

           "PRECIOCONIMP2": 0,

           "PRECIOCONIMP3": 0,

           "PRECIOCONIMP4": 0,

           "PRECIOCONIMP5": 0,

           "PRECIOCONIMP6": 0,

           "PRECIOCONIMP7": 164.05,

           "PRECIOCONIMP8": 0,

           "UXC1": "1.00",

           "UXC2": "1.00",

           "UXC3": "1.00",

           "UXC4": "1.00",

           "UXC5": "1.00",

           "UXC6": "0.00",

           "UXC7": "0.00",

           "UXC8": "0.00",

           "UNIDAD": "pz",

           "UNIDAD2": "pz",

           "UNIDAD3": "pz",

           "UNIDAD4": "pz",

           "UNIDAD5": "pz"

       }

   ]

}

 

 

 

[HttpGet] Function ObtenerCategorias ():TJSONObject;

Devuelve la Lista de Categorías y Subcategorías activas

 

URI: http://localhost:8888/service/DisPROAPI/ObtenerCategorias/

 

Response:

{

   "CATEGORIAS": [

       {

           "NUCATEGORIA": 100,

           "DESCRIPCION": "Abarrotes en General*",

           "SUBCATEGORIAS": [

               {

                   "NUSUBCATEGORIA": 1,

                   "DESCRIPCION": "Artículos de Limpieza"

               },

               {

                   "NUSUBCATEGORIA": 4,

                   "DESCRIPCION": "Bebidas Alcohólicas"

               },

               {

                   "NUSUBCATEGORIA": 3,

                   "DESCRIPCION": "Bebidas No Alcohólicas"

               },

               {

                   "NUSUBCATEGORIA": 6,

                   "DESCRIPCION": "Comida para Mascotas"

               },

               {

                   "NUSUBCATEGORIA": 5,

                   "DESCRIPCION": "Desechables y Plásticos"

               }

           ]

       }

   ]

}

 

 

 

 

[HttpGet] Function Producto_PrecioPG(NuAlmacen:Integer; IDProducto:String):TJSONObject;

Devuelve el Precio de Publico General del producto solicitado

 

URI: http://localhost:8888/service/DisPROAPI/Producto_PrecioPG/

 

NuAlmacen = Folio del Almacén

IDProducto = Clave del Producto

 

Request:

http://localhost:8888/service/DisPROAPI/Producto_PrecioPG/?NuAlmacen=0&IDProducto=249455

 

Response:

{

   "RESULT": 2,

   "Precio": 137.01,

   "Descripcion": "ACONDICIONADOR TRESEMME EFECTO BOTOX 1\/1.1L",

   "Modelo": "ACONDICIONADOR ",

   "Unidad": "PIEZA - MXN",

   "Claves": "Clave [00249455]     BarCode [7506306249455]"

}

 

 

 

 


PEDIDOS EN LINEA

 

[HttpPost] function Alta_PedidoEnLinea([FromBody] PEDIDOJSON: TJSONObject):TJSONObject;

Se realizar el Alta de un Pedido mediante el envío de un JSON. El Almacén donde va a ser almacenado el Pedido será el que tenga asignado el Usuario como predeterminado, de lo contrario sera el Almacén 0.

 

URI: http://localhost:8888/service/DisPROAPI/Alta_PedidoEnLinea/

 

NUMONEDA:

1= MXN

2= USD

 

NUESTADO

{

0: Sin Pago

1: Pagado

2: Token de Pago

3: Token Rechazado

4: Pagar al Recoger

5: Transferencia por Confirmar

50: Transferencia Confirmada

6: Cheque por Confirmar

60: Cheque Confirmado

7: Oxxo por Confirmar

70: Oxxo Confirmada

}

 

NUIMPRESO

{0: No Requiere Factura (Remisión)  

1: Requiere Factura}

 

NUPASO

{

0 En Captura (Usarse para Dejar En Espera)

8 En Captura (Local)

1 En Proceso (Usarse para que el depto de Ventas haga la Factura)

2 Facturado  (No se use, es exclusivo de DisPRO)

3 Denegado   (No se use, es exclusivo de DisPRO)

4 Con Error  (No se use, es exclusivo de DisPRO)

5 Cancelado por Agente  (No se use, es exclusivo de DisPRO)

6 Cancelado por Ventas  (No se use, es exclusivo de DisPRO)

7 Cancelado por Cliente (No se use, es exclusivo de DisPRO)

9 Cotización (Usar para enviar solo la cotización)

10 En Revisión (para revisar Cantidades y Totales)

11 En Espera de Pago (Falta procesar el Token de pago)

}

 

 

Request:

{

   "PEDIDOJSON": {

       "NUPEDIDO": 0,

       "FECHA": "13/11/2024",

       "HORA": "13:37:19",

       "NOTAS": "TENER CUIDAD CON EL PRODUCTO CONGELADO",

       "REFERENCIAPAGO": "NUM. AUTORIZACION 3492394",

       "NUESTADO": 0,

       "NUIMPRESO": 1,

       "NUMONEDA": 1,

       "TIPOCAMBIO": 20,

      "NUPASO": 1,

      "TIPOFOLIOCLIENTE": 1,

"CLIENTE": [

           {

               "NUCLIENTEDISPRO": 111973,

               "NOMBRE": "DANIEL RAMIREZ JAIME",

               "RFC": "RAJD7601298SA",

               "TELEFONO": "6461156345",

               "EMAIL": "RDANIEL@MXFACTURA.COM"

           }

       ],

       "PRODUCTO": [

           {

               "NUDETALLE": 1,

               "VNUMEDIDA": 5,

               "NUPRODUCTO": "00034888",

               "OBSERVACION": "AQUI VAN LAS OBSERVACIONES",

               "CANTIDAD": 1,

               "PRECIO": 20.5,

               "DESCUENTO": 0,

               "TASAIVA": 16,

               "TASAIEPS": 0

           }

       ]

   }

}

 

Nota1: Vea los campos que puede usar en TPedido, TDetalle y TCliente (todos los campos deben ir en MAYÚSCULAS)

Nota2: Es importante definir el TipoFolioCliente correctamente para que el sistema determine de donde buscara al cliente, así como el Folio NuClienteDisPRO.

 

 

Response:

{

   "RESULT": 2,

   "MSG": "Pedido Guardado Exitosamente",

   "FOLIOPEDIDO": 664

}

 

 

 

 

[HttpGet] function Procesar_PedidoEnLinea(FolioPedido, Proceso: Integer):TJSONObject;

Convierte un Pedido En Linea en una Venta donde los Procesos pueden ser los siguientes:

       0= Dejar en Espera

       1= Facturar con Fecha Original

       2= Facturar con Fecha Actual

       3= Remisionar con Fecha Original

 

URI: http://localhost:8888/service/DisPROAPI/Procesar_PedidoEnLinea/?FolioPedido=664&Proceso=1

 

Response:

{

   "RESULT": 2,

   "MSG": "Procesado Exitosamente",

   "FOLIOVENTA": 2050801

}

 

       Posibles resultados:

       0: Error. No Existe el Pedido

       1: Error. No se puede Facturar sino esta En Proceso

       2: Procesado Exitosamente

       3: No se proceso completo

       4,5: Se Proceso, pero No se pudo Entregar de Almacén

 

 

 

 

[HttpGet] function PDF_FacturaXFolioVenta(FolioVenta:Integer):TJSONObject;

Se recupera el PDF de una Factura a través del Folio de Venta que se obtuvo al Procesar un Pedido En Linea

 

URI: http://localhost:8888/service/DisPROAPI/PDF_FacturaXFolioVenta/?FolioVenta=2050801

 

Response:

{

   "RESULT": 2,

   "MSG": "PDF extraido exitosamente",

   "PDF_BASE64": "JVBERi0xLjcNCiWAgYKDDQoxIDAgb2JqDQo8PCAvQ3JlYXRvciA8Pg0KL0NyZWF0aW9uRGF0ZSA8\r\nNDQzYTMyMzAzMjM0MzEzMTMxMzQzMTM5MzUzOTM1MzQyZDMwMzcyNzMwMzA+DQovVGl0bGUgPD4N\r\nCi9BdXRob3IgPD4NCi9Qcm9kdWNlciA8NTI2NTcwNmY3Mjc0NDI3NTY5NmM2NDY1NzI+DQovS2V5\r\nd29yZHMgPD4NCi9TdWJqZWN0IDw+ID4+DQplbmRvYmoNCjIgMCBvYmoNClsvUERGIC9UZXh0IC9J\r\nbWFnZUIgL0ltYWdlQyAvSW1hZ2VJXQ0KZW5kb2JqDQozIDAgb2JqDQo8PCAvVHlwZSAvRXh0R1N0\r

....

....

....

....

}

 

Nota: El PDF esta en base64, deberá convertirlo de Base64 a Bytes para poder ver la representación en PDF

 

 

 

 

[HttpGet] function PDF_FacturaXFolioPedido(FolioPedido:Integer):TJSONObject;

Se recupera el PDF de una Factura a través del Folio de Pedido que se obtuvo al dar de alta un Pedido En Linea

 

URI: http://localhost:8888/service/DisPROAPI/PDF_FacturaXFolioPedido/?FolioPedido=666

 

 

Response:

{

   "RESULT": 2,

   "MSG": "PDF extraido exitosamente",

   "PDF_BASE64": "JVBERi0xLjcNCiWAgYKDDQoxIDAgb2JqDQo8PCAvQ3JlYXRvciA8Pg0KL0NyZWF0aW9uRGF0ZSA8\r\nNDQzYTMyMzAzMjM0MzEzMTMxMzQzMTM5MzUzOTM1MzQyZDMwMzcyNzMwMzA+DQovVGl0bGUgPD4N\r\nCi9BdXRob3IgPD4NCi9Qcm9kdWNlciA8NTI2NTcwNmY3Mjc0NDI3NTY5NmM2NDY1NzI+DQovS2V5\r\nd29yZHMgPD4NCi9TdWJqZWN0IDw+ID4+DQplbmRvYmoNCjIgMCBvYmoNClsvUERGIC9UZXh0IC9J\r\nbWFnZUIgL0ltYWdlQyAvSW1hZ2VJXQ0KZW5kb2JqDQozIDAgb2JqDQo8PCAvVHlwZSAvRXh0R1N0\r

....

....

....

....

}

 

Nota: El PDF esta en base64, deberá convertirlo de Base64 a Bytes para poder ver la representación en PDF

 

 

 

 


PROVEEDORES

 

[HttpGet] Function ListaProveedor(Tipo:Integer; Filtro: String):TJSONObject;

Devuelve el catálogo de artículos que cumplan con el Filtro enviado

 

Parámetros:

Tipo =

1: Buscar por Nombre o Comercial

2: Buscar en RFC

3: Buscar en Correo

4: Buscar en Teléfono

5: Buscar por Clave Principal

6: Buscar por Extra1

7: Buscar por Extra2

8: Buscar por Extra3

 

Filtro = Clave o Palabra a buscar según el Tipo elegido

 

URI: http://localhost:8888/service/DisPROAPI/ListaProveedor/

 

Ejemplos:

http://localhost:8888/service/DisPROAPI/ListaProveedor/?Tipo=1&Filtro=DANIEL

http://localhost:8888/service/DisPROAPI/ListaProveedor/?Tipo=5&Filtro=124

 

 

Response:

{

   "CATALOGO": [

       {

           "NUPROVEEDOR": 6659195,

           "NOMBRE": "Marquez Oscar Daniel",

           "COMERCIAL": "",

           "RFC": "MARO-660714-XXX",

           "CALLE": "VALLE DE LAS PALMAS ",

           "NUMERO": "KM 30",

           "COLONIA": "VALLE DE LAS PALMAS",

           "CIUDAD": "Tecate",

           "ESTADO": "Baja California",

           "PAIS": "Mexico",

           "CP": "22510",

           "EMAIL": "danerika@gmail.com",

           "EMAIL2": "wend@hotmail.com",

           "EMAIL3": "",

           "TELEFONO": "6651210000",

           "MSG_LIVE": "",

           "SALDO": "2518462.83",

           "LIMITE": "",

           "NUTIPOPAGO": "",

           "EXTRA1": "",

           "EXTRA2": "",

           "EXTRA3": ""

       }

}

 

 

 

 

 


COMPRAS

 

 

 

[HttpPost] function Alta_Entrada([FromBody] ENTRADAJSON: TJSONObject):TJSONObject;

Función para dar de Alta una Entrada de diferentes tipos

 

URI: http://localhost:8888/service/DisPROAPI/Alta_Entrada/

 

NUCOMPRA

Deje en CERO para que el sistema genere una nueva Entrada, de lo contrario significa que se agregaran los productos que se envie al Entrada que debe estar En Espera.

 

NUPROVEEDOR

El folio del proveedor al cual se asignará la Entrada, obtenga de la lista de proveedores el Folio

 

NUALMACEN

El folio de Almacén en donde se estableceré la Entrada.

 

NUTIPOENTRADA

1=Compra Nacional

2=Importación

3=Entrada Almacén

5=Orden de Compra

6=Entrada Importación

7=OC Importación

8=Cotización

 

NUMONEDA

1=PESOS

2=DOLARES

 

UNIDAD

Dentro del desglose de productos se define la Unidad de Medida que puede ser 1-8, que indica:

1=La Unidad Principal del producto en su expediente

2=La Unidad Segunda del producto en su expediente

3=La Unidad Tercera del producto en su expediente

etc...

 

Request:

{

   "ENTRADAJSON": {

       "NUCOMPRA": 0,

       "NUALMACEN": 0,

       "NUMONEDA": 1,

       "NUPROVEEDOR": -10,

       "NUTIPOENTRADA": 5,

       "NOTAENTRADA": "ESTA ES UNA ORDEN DE COMPRA NECESARIA",

       "PRODUCTO": [

           {

               "CLAVE": "00022589",

               "CANTIDAD": 200,

               "COSTO": 45.89,

               "UNIDAD": 1,

               "NOTACONCEPTO": "DEBE ESTAR EMPAQUETADO"

           },

           {

               "CLAVE": "00130103",

               "CANTIDAD": 100,

               "COSTO": 33.8,

               "UNIDAD": 1,

               "NOTACONCEPTO": ""

           }

       ]

   }

}

 

Response:

{

   "RESULT": 2,

   "MSG": "Alta Exitosamente de Entrada",

   "FOLIOENTRADA": 137947

}

 

 

 

 

 

 

[HttpPost] Function Alta_Conversion([FromBody] CONVERSIONJSON: TJSONObject):TJSONObject;

Realiza la conversión de un Producto (Padre) en un Producto (hijo), esta conversión es de  1 a 10. Es decir tanto el Padre como el Hijo debe ser solo de 1 a 10 registros.

 

URI: http://localhost:8888/service/DisPROAPI/Alta_Conversion/

 

Request:

{

  "CONVERSIONJSON": {

       "NUALMACEN": 0,

       "DESCRIPCION": "SE REQUIERE GENERAR UN FILETEADO DEL PRODUCTO",

       "PADRE" : [

         {

         "CLAVE":"00531071",

         "CANT" : 2

         },

         {

         "CLAVE":"00077103",

         "CANT" : 2

         }

       ],

       "HIJO": [

         {

         "CLAVE":"00508540",

         "CANT" : 1.8

         },

         {

         "CLAVE":"00028021",

         "CANT" : 1.7

         }

       ]

  }

}

 

Response:

{

   "RESULT": 2,

   "MSG": "Se ha generado la conversion con exito",

   "NUCONVERSION": 11,

   "NUCOMPRA": 137949,

   "NUPEDIDO": 2050808

}

 

 

 

 

 

 

 

 


ALMACEN DIGITAL

 

 

 

[HttpPost] function AsociarXML ([FromBody] XMLJSON: TJSONObject):TJSONObject;

Función asociar un CFDI que ya esta previamente almacenado en el almacén digital al ERP, en las operaciones que son factibles a ser asociadas son:

Compras Nacionales

Facturas de Servicios

Notas de Crédito de proveedores

Pagos a Proveedor (REP)

 

URI: http://localhost:8888/service/DisPROAPI/AsociarXML/

 

USER

Nombre de Usuario de Proveedor, las mismas credenciales de Proveedor En Linea

 

PASS

Contraseña del Proveedor, las mismas credenciales de Proveedor En Linea

 

UUID

Folio Fiscal a ser asociado, que ya se encuentra almacenado en el Almacén Digital.

 

 

Request:

{

 "XMLJSON": {

   "USER": "MARTINEZ",

   "PASS": "2025",

   "UUID": "CB342444-E5B3-46F7-A875-3934672FBB31"

 }

}

 

 

Response:

{

   "RESULT": 1,

   "MSG": "Se asocio un REP con 3 documentos pagados"

}

 

 

 

 

 

[HttpPost] function SubirXML ([FromBody] XMLJSON: TJSONObject):TJSONObject;

Función cargar un CFDI de Tipo Ingreso, Egreso o Pago proveniente de un proveedor, donde se podrá auto asociar

 

URI: http://localhost:8888/service/DisPROAPI/SubirXML/

 

ASOCIAR

0: No asociar, solo almacenar

1: Después de Almacenarlo, buscar una asociación

 

USER

Nombre de Usuario de Proveedor, las mismas credenciales de Proveedor En Linea

 

PASS

Contraseña del Proveedor, las mismas credenciales de Proveedor En Linea

 

CFDI

Aquí se debe colocar el XML con formato Escape.

 

 

Request:

{

   "XMLJSON": {

 "USER": "PROVEEDORA",

 "PASS": "48129297",

 "ASOCIAR": 1,

       "CFDI": "<?xml version=\"1.0\" encoding=\"utf-8\"?><cfdi:Comprobante xmlns:cfdi=\"http://www.sat.gob.mx/cfd/4\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:schemaLocation=\"http://www.sat.gob.mx/cfd/4 http://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd\"></cfdi:Comprobante>"

   }

}

 

Response:

 

Ejemplo de un CFDI Ingreso

{

   "RESULT": 1,

   "MSG": "Cargado con Exito"

}

 

Ejemplo de un CFDI Pago

{

   "RESULT": 1,

   "MSG": "Cargado con Exito, y se Asocio con Exito (Se asocio un REP con 3 documentos pagados)"

}

 

 

 

 

 

[HttpPost] function SubirXML_EnZip ([FromBody] ZIPJSON: TJSONObject):TJSONObject;

Función cargar un CFDI de Tipo Ingreso, Egreso o Pago proveniente de un proveedor, cuando es usada esta función solamente se podrá subir al almacén digital pero no se asociará a ninguna operación.

 

URI: http://localhost:8888/service/DisPROAPI/SubirXML_EnZip/

 

 

USER

Nombre de Usuario de Proveedor, las mismas credenciales de Proveedor En Linea

 

PASS

Contraseña del Proveedor, las mismas credenciales de Proveedor En Linea

 

BASE64

Aquí se debe colocar el archivo ZIP en Base64.

 

 

Request:

{

   "XMLJSON": {

 "USER": "PROVEEDORA",

 "PASS": "48129297",

 "BASE64": "JVBERi0xLjcNCiWAgYKDDQoxIDAgb2JqDQo8PCAvQ3JlYXRvciA8Pg0KL0NyZWF0aW9uRGF0ZSA8\r\nNDQzYTMyMzAzMjM0MzEzMTMxMzQzMTM5MzUzOTM1MzQyZDMwMzcyNzMwMzA+DQovVGl0bGUgPD4N\r\nCi9BdXRob3IgPD4NCi9Qcm9kdWNlciA8NTI2NTcwNmY3Mjc0NDI3NTY5NmM2NDY1NzI+DQovS2V5\r\nd29yZHMgPD4NCi9TdWJqZWN0IDw+ID4+DQplbmRvYmoNCjIgMCBvYmoNClsvUERGIC9UZXh0IC9J\r\nbWFnZUIgL0ltYWdlQyAvSW1hZ2VJXQ0KZW5kb2JqDQozIDAgb2JqDQo8PCAvVHlwZSAvRXh0R1N0\r",

   }

}

 

Response:

Ejemplo de un CFDI Ingreso

{

   "RESULT": 1,

   "MSG": "Cargado con Exito"

}