Programmer:Bonus Point Adjustment: Difference between revisions

From AutoCount Resource Center
Content added Content deleted
No edit summary
No edit summary
Line 53: Line 53:
//doc.DocNo = "<<New>>";
//doc.DocNo = "<<New>>";
doc.DocDate = DateTime.Today.Date;
doc.DocDate = DateTime.Today.Date;
doc.Description = "Test Member Point Adjustment";
doc.Description = "API Test Member Point Adjustment";
doc.RefDocNo = "I-000001";
doc.RefDocNo = "I-000001";


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



Revision as of 06:39, 6 August 2018

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 = "API Test Member Point Adjustment";
    doc.RefDocNo = "I-000001";

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

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

    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 = "API 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.Point = 5;
    //dtl.Row["Point"] = 5;

    //Decrease point
    dtl = doc.AddDetail();
    dtl.MemberNo = "M-0002";
    dtl.Point = -5;
    //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}");
    }
}

Cancel (Void)

public void CancelDocument(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.View(docNo);

    try
    {
        doc.CancelDocument(BCE.AutoCount.Authentication.UserAuthentication.GetOrCreate(dbSetting).LoginUserID);
        //Log success
        BCE.Application.AppMessage.ShowMessage($"'{docNo}' is cancelled.");
    }
    catch (BCE.Application.AppException ex)
    {
        //Log Failure
        BCE.Application.AppMessage.ShowMessage($"Fail to cancel {docNo}.\n{ex.Message}");
    }
}

Uncancel (Unvoid)

public void UncancelDocument(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.View(docNo);

    try
    {
        doc.UncancelDocument(BCE.AutoCount.Authentication.UserAuthentication.GetOrCreate(dbSetting).LoginUserID);
        //Log success
        BCE.Application.AppMessage.ShowMessage($"'{docNo}' is uncancelled.");
    }
    catch (BCE.Application.AppException ex)
    {
        //Log Failure
        BCE.Application.AppMessage.ShowMessage($"Fail to uncancel {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