Shipmoney API View
Information about the Shipmoney interface and SQL view is needed to enable Shipmoney to subtract information from the customer's database. ( APM) Adonis APM → Shipmoney
Description
Shipmoney uses the APP API and the SQL view API_Shipmoney to subtract the member information. The below SQL statement, and the APP need to be installed on the shoreside.
Create view statement
In the line 'COMPANY_NAME' AS AgencyName
remember to replace your COMPANY_NAME
used by Shipmoney.
CREATE VIEW [dbo].[API_Shipmoney]
as
SELECT
p01.pin,org.name AS VesselName,
p01.FIRSTNAME AS FirstName,
p01.LASTNAME AS LastName,
p01.[NAME] AS NAME,
NULL AS OtherSeafarerID,
p01.ADDRESS1 AS Address1,
p01.ADDRESS2 AS Address2,
p01.ADDRESS3 AS Address3,
p01.POSTCODE AS PostalCode,
CONVERT(VARCHAR,p01.birthdate,23) AS BirthDate,
p01.POSTPLACE AS City,
p01.NATIONALITY AS Citizenship,
p01.ADDRESS_COUNTRY AS CountryCode,
us.COUNTYNAME AS StateRegion,
c02.NAME AS Occupation,
'Passport' AS Passport,
p08.TDNUMBER AS IDValue,
CONVERT(VARCHAR,p08.DATETO,23) AS IDExpire,
scan.DOCNO AS IDImage,
phone.TELENO AS MobilePhoneNumber,
email.TELENO AS EmailAddress,
'COMPANY_NAME' AS AgencyName,
p01.CURRENCYFORPAYMENT AS ContractId,
CONVERT(VARCHAR,dbo.ad_signondate(p03.numorgid,p03.pin,p03.datefrom),23) AS SignOn,
CONVERT(VARCHAR,p03.dateto,23) AS ConfirmedSignOff,
CONVERT(VARCHAR,p03.todateestimated,23) AS plannedSignOff
FROM pw001p01 p01
LEFT JOIN (SELECT * FROM (SELECT *,ROW_NUMBER() OVER(PARTITION BY p03.PIN ORDER BY p03.DATEFROM DESC) AS Nr FROM pw001p03 p03
WHERE EXISTS(SELECT 1 FROM pw001c12 c12 WHERE c12.CODE=p03.CODE AND c12.OPTIONS LIKE '%S%') AND ISNULL(p03.PLANNED,'N') <> 'Y') p03
WHERE p03.Nr = 1) p03 ON p03.PIN=p01.PIN
LEFT JOIN (SELECT NUMORGID,dbo.ad_scanorgtree(NUMORGID, 3) AS VesselID FROM pworg WHERE ORGTYPE IN ('3', '4', '5')) ou ON ou.NUMORGID=p03.NUMORGID
LEFT JOIN pw001c12 c12 ON c12.CODE=p03.CODE
LEFT JOIN pworg org ON org.NUMORGID=ou.VesselID
LEFT JOIN pw001p0p p0p ON p01.PIN=p0p.PIN AND p0p.PNUMBER='A'
LEFT JOIN pw001c02 c02 ON c02.CODE=p0p.POSITIONID
LEFT JOIN PW001P08 AS p08 ON p08.PIN=p01.PIN AND EXISTS(SELECT 1 FROM PW001C23 C23 WHERE C23.CODE=P08.CODE AND C23.OPTIONS LIKE '%T%')
AND NOT EXISTS (SELECT 1 FROM pw001p08 p08t JOIN PW001C23 C23t on c23t.code=p08t.code and c23t.options like '%T%' WHERE p01.PIN=p08t.PIN AND p08t.DATETO > p08.DATETO)
LEFT JOIN PW001OLEDOCS scan ON p08.scanneddocno=scan.DOCNO
LEFT JOIN (SELECT * FROM (SELECT *,ROW_NUMBER() OVER(PARTITION BY P0T.PIN ORDER BY P0T.REPL_MODIFIEDDATE DESC) AS Nr
FROM PW001P0T p0t WHERE P0T.TELETYPE IN (3)) p0t WHERE p0t.Nr=1) phone ON phone.PIN=p01.PIN
LEFT JOIN (SELECT * FROM (SELECT *,ROW_NUMBER() OVER(PARTITION BY P0T.PIN ORDER BY P0T.REPL_MODIFIEDDATE DESC) AS Nr
FROM PW001P0T p0t WHERE P0T.TELETYPE IN (6)) p0t WHERE p0t.Nr=1) email ON email.PIN=p01.PIN
LEFT JOIN pwpost post ON post.POSTCODE=p01.POSTCODE AND post.COUNTRYCODE=p01.ADDRESS_COUNTRY AND post.[NAME]=p01.POSTPLACE
LEFT JOIN PWCOUNTY us ON us.COUNTYCODE=post.COUNTYCODE AND us.COUNTRYCODE=post.COUNTRYCODE WHERE P03.DATEFROM IS NOT NULL
AND scan.docno is not null and p03.todateestimated is not null
GO
Drop view statement
If there is a need to rebuild the view the following statement can be run
Drop view [dbo].[API_Shipmoney]
Afterward, the create statement can be sent again.
Shipmoney → Adonis APM
Common error
NOTE: Passport Scan and Estimated End date on the Current sea-service activity are mandatory for the crew to appear in the API Shipmoney view.
An error message that the users can have when a crew is missing one or both mentioned above: Data is not found:
Solution: add Passport scan and/or Estimated End Date for the Current Sea-service activity.