#File;
System.IO.Stream stream;
FileUploadBuild fileUpload;
DialogGroup dlgUploadGroup;
FileUploadBuild fileUploadBuild;
FormBuildControl formBuildControl;
Dialog dialog = new Dialog("Import the data from File");
container lineParts;
int i;
container currentLine;
SalesTable salesTable;
SalesLine salesLine;
InventDim inventDim;
CustTable custTable;
NumberSeq numberSeq;
SalesId salesID;
CustAccount custAccount;
CustTable _CustTable;
dlgUploadGroup = dialog.addGroup("@SYS54759");
formBuildControl = dialog.formBuildDesign().control(dlgUploadGroup.name());
fileUploadBuild = formBuildControl.addControlEx(classstr(FileUpload), 'Upload');
fileUploadBuild.style(FileUploadStyle::MinimalWithFilename);
fileUploadBuild.fileTypesAccepted('.txt');
if (dialog.run() && dialog.closedOk())
{
FileUpload fileUploadControl = dialog.formRun().control(dialog.formRun().controlId('Upload'));
FileUploadTemporaryStorageResult fileUploadResult = fileUploadControl.getFileUploadResult();
if (fileUploadResult && fileUploadResult.getUploadStatus())
{
CommaTextStreamIo textStream = CommaTextStreamIo::constructForRead(File::UseFileFromURL(fileUploadResult.getDownloadUrl()));
textStream.inFieldDelimiter('\t');
// Skip the first line (header)
currentLine = textStream.read();
// Read and process subsequent lines
currentLine = textStream.read(); // Assign the second line for processing
while (currentLine)
{
lineParts = currentLine;
str OrgcustAccount = conPeek(lineParts,1);
str inputDate = conPeek(lineParts, 3);
str itemCode = conPeek(lineParts, 4);
real qty = conPeek(lineParts, 5);
select _CustTable
where _CustTable.OriginalAccountNum == OrgcustAccount;
if(_CustTable)
{
custAccount = _CustTable.AccountNum;
date shippingDate;
int day, month, year;
List dateParts = new List(Types::String); // Initialize a List to hold parts
ListEnumerator enumerator;
str part;
int num = 1;
// Split the date string into parts using List
dateParts = strSplit(inputDate, ".");
if (dateParts && dateParts.elements() == 3)
{
// Extract parts from the List
enumerator = dateParts.getEnumerator();
while (enumerator.moveNext())
{
part = enumerator.current();
switch (num)
{
case 1:
day = any2Int(part);
break;
case 2:
month = any2Int(part);
break;
case 3:
year = any2Int(part);
break;
}
num++;
}
}
else
{
error("Invalid date format.");
}
shippingDate = mkDate(day, month, year);
if(qty <= 0)
{
info(strFmt("Quantity for Customer:- %1 And Item %2 is Zero",custAccount, itemCode));
}
else
{
try
{
ttsbegin;
salesTable.clear();
numberSeq = NumberSeq::newGetNum(SalesParameters::numRefSalesId());
numberSeq.used();
salesTable.SalesId = numberSeq.num();
salesID = salesTable.SalesId;
salesTable.ShippingDateConfirmed = shippingDate;
salesTable.ShippingDateRequested = shippingDate;
salesTable.initValue();
salesTable.CustAccount = custAccount;
salesTable.initFromCustTable();
salesTable.InventSiteId = InventLocation::find("11").InventSiteId;
salesTable.InventLocationId = inventlocation::find("11").InventLocationId;
salesTable.insert();
inventDim.clear();
salesLine.clear();
salesLine.SalesId = salesID;
salesLine.ItemId = itemCode;
salesLine.itemIdChanged();
salesLine.initFromInventTable(InventTable::find(salesLine.ItemId));
inventdim.InventSiteId = InventLocation::find("11").InventSiteId;
inventdim.InventLocationId = Inventlocation::find("11").InventLocationId;
salesLine.InventDimId = InventdIm::findOrCreate(inventDim).inventDimId;
salesLine.createLine(NoYes::Yes, NoYes::Yes, NoYes::No, NoYes::Yes,NoYes::Yes,NoYes::Yes);
//salesLine.SalesPrice = 250;
salesLine.SalesQty = qty;
//salesLine.LineDisc = 10;
salesLine.LineAmount= salesLine.calcLineAmount();
salesLine.update();
ttscommit;
}
catch(Exception::Error)
{
ttsabort;
}
}
}
else
{
info(strFmt("Can't find customer for original customer %1",OrgcustAccount));
}
// Read the next line
currentLine = textStream.read();
}
}
}
Comments
Post a Comment