Programmer:Bonus Point Adjustment

From AutoCount Resource Center
Revision as of 04:14, 6 August 2018 by DanielY (talk | contribs)

Technical Specifications

  1. Adjustment Point is to increase or decrease the balance point.

Columns Specification

Master Table

Master Table Columns
Column Name Data Type Size Mandatory Remark
DocNo string 20 Yes If apply system running number,
do not assign or assigned with "<<New>>"
DocDate DateTime Yes Date only, without time
Eg. DateTime.Today.Date
Description string 100 No
RefDocNo string 20 No
Remark1 string 40 No
Remark2 string 40 No
Remark3 string 40 No
Remark4 string 40 No
Note string Max No

Detail Table Columns

Columns Table
Column Name Data Type Size Mandatory Remark
MemberNo string 20 Yes Value must be maintained at Bonus Point > Member Maintenance
Point decimal 19,2 No

API Usage

New

public void NewBonusPointAdjustment(BCE.Data.DBSetting dbSetting)
{
    BCE.AutoCount.Invoicing.Sales.BonusPointAdjustment.BonusPointAdjustmentCommand cmd =
        BCE.AutoCount.Invoicing.Sales.BonusPointAdjustment.BonusPointAdjustmentCommand.Create(dbSetting);
    BCE.AutoCount.Invoicing.Sales.BonusPointAdjustment.BonusPointAdjustment doc = cmd.AddNew();
    BCE.AutoCount.Invoicing.Sales.BonusPointAdjustment.BonusPointAdjustmentDetail dtl;

    //When apply system running number,
    //do not assign or assigned with "<<New>>"
    //doc.DocNo = "<<New>>";
    doc.DocDate = DateTime.Today.Date;
    doc.Description = "Test Member Point Adjustment";
    doc.RefDocNo = "I-000001";

    //Increase point
    dtl = doc.AddDetail();
    dtl.MemberNo = "M-0001";
    dtl.Row["Point"] = 10;

    //Decrease point
    dtl = doc.AddDetail();
    dtl.MemberNo = "M-0002";
    dtl.Row["Point"] = -2;

    try
    {
        doc.Save();
        //Log Success
        BCE.Application.AppMessage.ShowMessage($"Success created '{doc.DocNo}'.");
    }
    catch (BCE.Application.AppException ex)
    {
        //Log failure
        BCE.Application.AppMessage.ShowMessage($"Fail to create new Member Point Adjustment.\n{ex.Message}");
    }
}

Update / Edit

public void UpdateBonusPointAdjustment(string docNo, BCE.Data.DBSetting dbSetting)
{
    BCE.AutoCount.Invoicing.Sales.BonusPointAdjustment.BonusPointAdjustmentCommand cmd =
        BCE.AutoCount.Invoicing.Sales.BonusPointAdjustment.BonusPointAdjustmentCommand.Create(dbSetting);
    BCE.AutoCount.Invoicing.Sales.BonusPointAdjustment.BonusPointAdjustment doc = cmd.Edit(docNo);
    BCE.AutoCount.Invoicing.Sales.BonusPointAdjustment.BonusPointAdjustmentDetail dtl;

    if (doc == null)
    {
        //log document not found
        return;
    }

    //Update any necessary data
    //doc.DocDate = DateTime.Today.Date;
    //doc.Description = "Test Member Point Adjustment";
    //doc.RefDocNo = "I-000002";

    //Clear all details and add all details back
    doc.ClearDetails();

    //Increase point
    dtl = doc.AddDetail();
    dtl.MemberNo = "M-0001";
    dtl.Row["Point"] = 5;

    //Decrease point
    dtl = doc.AddDetail();
    dtl.MemberNo = "M-0002";
    dtl.Row["Point"] = -5;

    try
    {
        doc.Save();
        //Log Success
        BCE.Application.AppMessage.ShowMessage($"Success updated '{doc.DocNo}'.");
    }
    catch (BCE.Application.AppException ex)
    {
        //Log failure
        BCE.Application.AppMessage.ShowMessage($"Fail to update {doc.DocNo}.\n{ex.Message}");
    }
}

Delete

public void DeleteBonusPointAdjustment(string docNo, BCE.Data.DBSetting dbSetting)
{
    BCE.AutoCount.Invoicing.Sales.BonusPointAdjustment.BonusPointAdjustmentCommand cmd =
        BCE.AutoCount.Invoicing.Sales.BonusPointAdjustment.BonusPointAdjustmentCommand.Create(dbSetting);

    //Because BonusPointAdjustmentCommand Delete() method accept only DocKey
    //Programmer needs to find the related DocKey of known DocNo.
    long? docKey = GetDocKeyByDocNo(docNo, dbSetting);
    if (!docKey.HasValue)
    {
        //log document not found
        return;
    }

    try
    {
        cmd.Delete(docKey.Value);
        //Log Success
        BCE.Application.AppMessage.ShowMessage($"'{docNo}' is deleted.");
    }
    catch (BCE.Application.AppException ex)
    {
        //Log failure
        BCE.Application.AppMessage.ShowMessage($"Fail to delete {docNo}.\n{ex.Message}");
    }
}

private long? GetDocKeyByDocNo(string docNo, BCE.Data.DBSetting dbSetting)
{
    object obj = dbSetting.ExecuteScalar("SELECT DocKey FROM BonusPointADJ WHERE DocNo=?", docNo);
    return obj == null ? default(long?) : BCE.Data.Convert.ToInt64(obj);
}



See Also

Maintenance (Master Data)

Transactions

Reporting

  • Member List and Point Balance - [1.8, 1.9] [2.0]

    Go to menu

    Go to top
    Resources For AutoCount Software Developers