82 lines
3.0 KiB
Plaintext
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 |