Files
MBS/WEBSERVICES/tiendaonline/apiorden.4gl
T

82 lines
3.0 KiB
Plaintext

IMPORT util
FUNCTION ordenApi(xorden)
DEFINE xorden STRING
DEFINE cliente RECORD
nombre,cond_pago,rnc,tipo_doc STRING,
limite_cr FLOAT,
tipo_negocio INT,
direccion,urbanizacion,sector,pais,zona,provincia, telefono_casa,telefono_celular,email,url STRING,
tipo_cliente INT
END RECORD
DEFINE orden RECORD
credenciales RECORD
usuario,clave STRING
END RECORD,
encabezado RECORD
nombre,direccion_linea1,direccion_linea2,ciudad,codigo_postal,pais_region,region_provincia,
telefono1,telefono2,correo_electronico VARCHAR(100),
orden_externa VARCHAR(30),
fecha_orden DATE,
metodo_pago STRING,
total_bruto,monto_descuento,monto_itbis,total_neto,itbis FLOAT,
num_rnc VARCHAR(11),
ventas VARCHAR(1),
cod_zona VARCHAR(3)
END RECORD,
detalle DYNAMIC ARRAY OF RECORD
ultima_cotizacion,cod_n,cod_grupo,cod_tipo,cod_sec INT,
precio,cantidad1,cantdad,descuento FLOAT
END RECORD
END RECORD
DEFINE respuesta RECORD
cod_msg INT,
descripcion STRING,
ncf_string STRING
END RECORD
DEFINE ult_numero,xtipocliente,xseccliente INT
TRY
CALL util.JSON.parse(xorden,orden)
CATCH
LET respuesta.cod_msg=404
LET respuesta.descripcion = 'ERROR EN JSON ',SQLCA.sqlerrm
LET respuesta.ncf_string = 'NO TIENE'
RETURN util.JSON.stringify(respuesta)
END TRY
TRY
CONNECT TO "marmotech" USER orden.credenciales.usuario USING orden.credenciales.clave
CATCH
LET respuesta.cod_msg=404
LET respuesta.descripcion = 'ERROR EN CONEXION DB ',SQLCA.sqlerrm
LET respuesta.ncf_string = 'NO TIENE'
DISCONNECT CURRENT
RETURN util.JSON.stringify(respuesta)
END TRY
# GESTION CLIENTE
LET cliente.tipo_cliente=25
CALL crearcliente(cliente.*) RETURNING xtipocliente,xseccliente
SELECT ISNULL(a.num_oc,0) INTO ult_numero FROM prtb00020
IF ult_numero = 0 THEN
INSERT INTO prtb00020 (num_oc,us_crea) VALUES (ult_numero,orden.credenciales.usuario)
END IF
LET ult_numero = ult_numero + 1
INSERT INTO prtb00012 (ventas,tipo_orden,num_oc,fecha,tipo_cliente,sec_cliente,telefono,direccion,ubicacion,
cerrada,cond_pago,itbis, valor_bruto,monto_desc,sub_total,neto,us_crea,fech_crea,num_oc_r)
VALUES ('1','ECOMMERCE',ult_numero,orden.encabezado.fecha_orden,xtipocliente,xseccliente,
'N',1,orden.encabezado.itbis, orden.encabezado.total_bruto,
orden.encabezado.monto_descuento,orden.encabezado.total_bruto-orden.encabezado.monto_descuento,
orden.encabezado.total_neto,orden.credenciales.usuario,getdate(),
orden.encabezado.orden_externa)
END FUNCTION