For the complete documentation index, see llms.txt. This page is also available as Markdown.

Stock Transfer

Stock Transfer's Database

UI Name
Database
Type
Remarks

Stock Transfer No

String

Avoid using the same Stock Transfer No to prevent overwrite. E.g.: STC00001

Description

String

E.g.: STOCK TRANSFER

Date

String

E.g.: 2024-11-27T00:00:00+08:00

From Location

String

Must have existing FromLocation in the accounting system.

E.g.: HQ

To Location

String

Must have existing ToLocation in the accounting system.

E.g.: CUST

Table Item

Array

Stock Transfer's Table Item

UI Name
Database
Type
Remarks

Item Code

String

E.g.: A001

Description

String

E.g.: PRODUCT - CL14

UOM

String

E.g.: UNIT

Qty

Decimal

Value must be number, and value cannot be zero or negative.

E.g.: 10.0

Unit Price

Decimal

Value must be number, and value cannot be negative.

E.g.: 10.0

Stock Transfer's Sample Code

To find {fieldName}, you are required to have access to Alpha or use Network in Developer Tools [F12].

import clr

clr.AddReference("Newtonsoft.Json")
clr.AddReference("System.Net")
clr.AddReference("System.IO")

from System.Text import *
from Newtonsoft.Json import *
from Newtonsoft.Json.Linq import *
from System import *

clr.AddReference("System.Drawing")
from System.Drawing import Bitmap, Image
from System.Drawing.Imaging import ImageFormat
from System.IO import MemoryStream, StreamWriter
from System.Net import WebClient
import binascii
from System import BitConverter

# search
documentList = Module("{YOUR-MODULE-NAME}").findAll(
    {
        "Audit.UpdatedDate": {"$gt": Inputs["lastSync"]},
        "Audit.UpdatedBy": {"$ne": "External"},
    }
)
debug("documentList", documentList)

resultList = []

def prepareRow(x):
    row = JObject()
    row["itemCode"] = x["{YOUR-ITEM-CODE}"]
    row["description"] = x["{YOUR-DESCRIPTION}"].ToString()
    row["uom"] = x["{YOUR-UOM}"]
    row["qty"] = x["{YOUR-QTY}"]
    row["unitPrice"] = x["{YOUR-UNIT-PRICE}"]
    return row


def preparePayload(data):
    payloadData = JObject()
    payloadData["type"] = "ST"
    payloadData["payload"] = JObject()

    # payloadData["payload"]["docNo"] = None if data['{YOUR-DOC-NO}'] == "" or data['{YOUR-DOC-NO}'] is None else data['{YOUR-DOC-NO}']
    payloadData["payload"]["docNo"] = data.DocumentId

    payloadData["payload"]["description"] = "STOCK TRANSFER"
    payloadData["payload"]["docDate"] = data["{YOUR-DOC-DATE}"]
    payloadData["payload"]["FromLocation"] = data["{YOUR-FROM-LOCATION}"]
    payloadData["payload"]["ToLocation"] = data["{YOUR-TO-LOCATION}"]

    payloadData["payload"]["details"] = JArray.FromObject(
        data["{YOUR-TABLE}"].Select(lambda x: prepareRow(x))
    )

    payloadData["LastModified"] = data.UpdatedDate
    return payloadData


# end of added
for entry in documentList:
    payloadData = preparePayload(entry)
    resultList.append(payloadData)
    # debug('payloadData', payloadData)

# debug('done', resultList)
outputs["results"] = JArray.FromObject(resultList)
debug("result", resultList)

a

Last updated