Multiple journals are created in the production process. When the order is started route card journal and picking list journal are auto created. But system does not create job card journal automatically. It requires a small customization. Following method can be called when the production order is started with the production order id passed as the parameter.
/// <summary>
/// This method auto creates Job Card Journal and its lines against selected production order.
/// </summary>
private void autoCreateJobCardJournal(ProdId _prodId)
{
ProdJournalTable prodJournalTable;
ProdRoute prodRoute;
ProdRouteJob prodRouteJob;
ProdJournalRoute prodJournalRoute;
ProdParametersDim prodParametersDim;
int jobLinesCount = 0;
if (_prodId != "")
{
// select job card journal name as set on parameters form
select firstOnly JobCardJournalNameId
from ProdParametersDim;
// create job card journal
prodJournalTable.initWaitCreateLine(ProdParametersDim.JobCardJournalNameId,
_prodId,
ProdJournalType::JobCard,
str2time(""),
ProdRouteJob::findProdId
(_prodId).OprNum);
prodJournalTable.SystemBlocked = NoYes::No;
prodJournalTable.EndJob = NoYes::No;
prodJournalTable.insert();
// create lines against job card journal
while select prodRouteJob
where prodRouteJob.ProdId == _prodId
join prodRoute
where prodRoute.ProdId == prodRouteJob.ProdId &&
prodRoute.OprNum == prodRouteJob.OprNum
{
prodJournalRoute.clear();
prodJournalRoute.JournalId = prodJournalTable.JournalId;
prodJournalRoute.WrkCtrId = prodRouteJob.WrkCtrId;
prodJournalRoute.JobType = prodRouteJob.JobType;
prodJournalRoute.OprNum = prodRouteJob.OprNum;
prodJournalRoute.OprPriority = prodRouteJob.OprPriority;
prodJournalRoute.ProdId = prodRouteJob.ProdId;
prodJournalRoute.JobId = prodRouteJob.JobId;
prodJournalRoute.TransDate = systemDateGet();
prodJournalRoute.OprId = prodRoute.OprId;
prodJournalRoute.CategoryQtyId = prodRoute.QtyCategoryId;
prodJournalRoute.QtyGood = prodRoute.CalcQty;
prodJournalRoute.insert();
jobLinesCount++;
}
// update number of lines against job card journal
prodJournalTable.NumOfLines = jobLinesCount;
prodJournalTable.update();
info(int2str(jobLinesCount) + " job card lines created against Job Card
Journal " +
prodJournalTable.JournalId + " and Production Order " +
prodJournalTable.ProdId);
}
}
This is it! :)
/// <summary>
/// This method auto creates Job Card Journal and its lines against selected production order.
/// </summary>
private void autoCreateJobCardJournal(ProdId _prodId)
{
ProdJournalTable prodJournalTable;
ProdRoute prodRoute;
ProdRouteJob prodRouteJob;
ProdJournalRoute prodJournalRoute;
ProdParametersDim prodParametersDim;
int jobLinesCount = 0;
if (_prodId != "")
{
// select job card journal name as set on parameters form
select firstOnly JobCardJournalNameId
from ProdParametersDim;
// create job card journal
prodJournalTable.initWaitCreateLine(ProdParametersDim.JobCardJournalNameId,
_prodId,
ProdJournalType::JobCard,
str2time(""),
ProdRouteJob::findProdId
(_prodId).OprNum);
prodJournalTable.SystemBlocked = NoYes::No;
prodJournalTable.EndJob = NoYes::No;
prodJournalTable.insert();
// create lines against job card journal
while select prodRouteJob
where prodRouteJob.ProdId == _prodId
join prodRoute
where prodRoute.ProdId == prodRouteJob.ProdId &&
prodRoute.OprNum == prodRouteJob.OprNum
{
prodJournalRoute.clear();
prodJournalRoute.JournalId = prodJournalTable.JournalId;
prodJournalRoute.WrkCtrId = prodRouteJob.WrkCtrId;
prodJournalRoute.JobType = prodRouteJob.JobType;
prodJournalRoute.OprNum = prodRouteJob.OprNum;
prodJournalRoute.OprPriority = prodRouteJob.OprPriority;
prodJournalRoute.ProdId = prodRouteJob.ProdId;
prodJournalRoute.JobId = prodRouteJob.JobId;
prodJournalRoute.TransDate = systemDateGet();
prodJournalRoute.OprId = prodRoute.OprId;
prodJournalRoute.CategoryQtyId = prodRoute.QtyCategoryId;
prodJournalRoute.QtyGood = prodRoute.CalcQty;
prodJournalRoute.insert();
jobLinesCount++;
}
// update number of lines against job card journal
prodJournalTable.NumOfLines = jobLinesCount;
prodJournalTable.update();
info(int2str(jobLinesCount) + " job card lines created against Job Card
Journal " +
prodJournalTable.JournalId + " and Production Order " +
prodJournalTable.ProdId);
}
}
This is it! :)
Comments
Post a Comment