Programmer:Stock Assembly

From AutoCount Resource Center
Revision as of 03:16, 7 December 2017 by DanielY (talk | contribs)

Go to menu

Go to top
Resources For AutoCount Software Developers


Rules in Sale Invoice

  1. Item's UOM of quantity must be in base UOM

Assemblies version 1.8

BCE.AutoCount.Stock.dll
BCE.AutoCount.Manufacturing.dll

Create New Stock Assembly

public void CreateNewStockAssembly(BCE.Data.DBSetting dbSetting, StockAssemblySource source)
{
    BCE.AutoCount.Manufacturing.StockAssembly.StockAssemblyCommand cmd = 
        BCE.AutoCount.Manufacturing.StockAssembly.StockAssemblyCommand.Create(dbSetting);
    BCE.AutoCount.Manufacturing.StockAssembly.StockAssembly doc = cmd.AddNew();

    doc.DocNo = source.DocNo;
    doc.DocDate = source.DocDate;
    doc.ItemCode = source.ItemCode;
    doc.Qty = source.Quantity;
    doc.Location = source.Location ?? doc.Location;
    if (source.Project != null)
        doc.ProjNo = source.Project;
    if (source.Department != null)
        doc.DeptNo = source.Department;
    doc.RefDocNo = source.ReferenceNo;
    //Item's UOM is always Base UOM

    source.Detail.ForEach(s => AddStockAssemblyDetail(s, doc.AddDetail));

    try
    {
        doc.Save();
        //Log Successful
    }
    catch (BCE.Application.AppException ex)
    {
        //Log error
    }
}

public void AddStockAssemblyDetail(StockAssemblyDetailSource source, Func<BCE.AutoCount.Manufacturing.StockAssembly.StockAssemblyDetail> addDetail)
{
    BCE.AutoCount.Manufacturing.StockAssembly.StockAssemblyDetail dtl = addDetail();
    dtl.ItemCode = source.ItemCode;
    dtl.Description = source.Description ?? dtl.Description;
    dtl.Location = source.Location ?? dtl.Location;
    if (source.Project != null)
        dtl.ProjNo = source.Project;
    if (source.Department != null)
        dtl.DeptNo = source.Department;
    dtl.Qty = source.Quantity;
    dtl.ItemCost = source.UnitCost;
    dtl.OverHeadCost = source.OverheadCost;
    //Item's UOM is always Base UOM
}

Classes of source

public class StockAssemblySource
{
    public string DocNo { get; set; }
    public DateTime DocDate { get; set; }
    //Finished Goods
    public string ItemCode { get; set; }
    //Finished Goods Assembled Qty
    public decimal Quantity { get; set; }
    public string Location { get; set; }
    public string Project { get; set; }
    public string Department { get; set; }
    public string ReferenceNo { get; set; }

    public List<StockAssemblyDetailSource> Detail = new List<StockAssemblyDetailSource>();
}

public class StockAssemblyDetailSource
{
    //Raw Materials
    public string ItemCode { get; set; }
    public string Description { get; set; }
    public string Location { get; set; }
    public string Project { get; set; }
    public string Department { get; set; }
    public decimal Quantity { get; set; }
    public decimal UnitCost { get; set; }
    public decimal OverheadCost { get; set; }
}

Implementation

//Coming soon...

See Also