using System;
using CoreSavingLibrary;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using CoreSavingLibrary.WcfNCommon;
using Sybase.DataWindow;
using System.Web.Services.Protocols;
using CoreSavingLibrary.WcfNFinance;
namespace Saving.Applications.app_finance
{
public partial class w_sheet_finance : PageWebSheet, WebSheet
{
n_financeClient fin;
private DwThDate tDwMain;
private Decimal cashAmt;
private Decimal moneyRemain;
protected String postInitUser;
protected String postPrintSlip;
protected String postChangeTeller;
DataStore DStore;
#region WebSheet Members
public void InitJsPostBack()
{
tDwMain = new DwThDate(DwMain, this);
tDwMain.Add("operate_date", "operate_tdate");
postInitUser = WebUtil.JsPostBack(this, "postInitUser");
postPrintSlip = WebUtil.JsPostBack(this, "postPrintSlip");
postChangeTeller = WebUtil.JsPostBack(this, "postChangeTeller");
}
public void WebSheetLoadBegin()
{
LtAlert.Text = "";
String fincashctrl_info = "";
Int32 resultXml;
fin = wcf.NFinance;
this.ConnectSQLCA();
DStore = new DataStore();
DStore.LibraryList = WebUtil.PhysicalPath + @"Saving\DataWindow\app_finance\finquery.pbl";
DStore.DataWindowObject = "d_finquery_userid";
if (!IsPostBack)
{
try
{
resultXml = fin.of_init_fincashcontrol(state.SsWsPass, state.SsCoopId, state.SsWorkDate, state.SsUsername, ref fincashctrl_info);
string rexml = resultXml.ToString();
DwMain.Reset();
DwMain.ImportString(fincashctrl_info, Sybase.DataWindow.FileSaveAsType.Xml);
tDwMain.Eng2ThaiAllRow();
//ส่งค่า coop_id และวันที่ทำการ ไปเพื่อแสดงรายละเอียดสมาชิก
DwUserList.SetTransaction(sqlca);
DwUserList.Retrieve(state.SsCoopId, state.SsWorkDate);
}
catch (Exception ex)
{
LtServerMessage.Text = WebUtil.ErrorMessage(ex);
}
}
else
{
this.RestoreContextDw(DwMain);
}
DwUtil.RetrieveDDDW(DwMain, "coop_id", "finance.pbl", null);
cashAmt = DwMain.GetItemDecimal(1, "cash_amt");
DwMain.Modify("cash_amt_t.text='" + cashAmt.ToString("#,##0.00") + "'");
}
public void CheckJsPostBack(string eventArg)
{
switch (eventArg)
{
case "postInitUser":
InitUser();
break;
case "postChangeTeller":
ChangeTeller();
break;
case "postPrintSlip":
PostPrintSlip();
break;
}
}
public void SaveWebSheet()
{
Int32 result,resultXml;
String mainXml ,finctrl_info ="";
this.ConnectSQLCA();
DStore = new DataStore();
DStore.LibraryList = WebUtil.PhysicalPath + @"Saving\DataWindow\app_finance\finquery.pbl";
DStore.DataWindowObject = "d_finquery_userid";
try
{
mainXml = DwMain.Describe("DataWindow.Data.XML");
result = fin.of_fincashcontrol_process(state.SsWsPass, mainXml, state.SsClientIp, state.SsApplication);
if (result > 0)
{
Hprintslip.Value = "true";
Happname.Value = DwMain.GetItemString(1, "application");
Husername.Value = DwMain.GetItemString(1, "entry_id");
Hseqno.Value = Convert.ToString(result);
LtServerMessage.Text = WebUtil.CompleteMessage("บันทึกเรียบร้อยแล้ว");
resultXml = fin.of_init_fincashcontrol(state.SsWsPass, state.SsCoopId, state.SsWorkDate, state.SsUsername, ref finctrl_info);
DwMain.Reset();
DwMain.ImportString(finctrl_info, Sybase.DataWindow.FileSaveAsType.Xml);
tDwMain.Eng2ThaiAllRow();
//ส่งค่า coop_id และวันที่ทำการ ไปเพื่อแสดงรายละเอียดสมาชิก
DwUserList.SetTransaction(sqlca);
DwUserList.Retrieve(state.SsCoopId, state.SsWorkDate);
}
}
catch (SoapException ex)
{
LtServerMessage.Text = WebUtil.ErrorMessage(WebUtil.SoapMessage(ex));
}
catch (Exception ex)
{
LtServerMessage.Text = WebUtil.ErrorMessage(ex.Message);
}
}
public void WebSheetLoadEnd()
{
DwMain.SaveDataCache();
}
#endregion
protected void InitUser()
{
String DwMainXml,fullname = "";
Int32 resultXml;
try
{
DwMainXml = DwMain.Describe("DataWindow.Data.XML");
resultXml = fin.of_init_fincashcontrol_user(state.SsWsPass,ref DwMainXml,ref fullname);
DwMain.Reset();
DwMain.ImportString(DwMainXml, FileSaveAsType.Xml);
DwMain.Modify("t_fullname.text='" + fullname + "'");
DwUtil.RetrieveDDDW(DwMain, "item_type", "finance.pbl", state.SsCoopControl);
DataWindowChild DcItemType = DwMain.GetChild("item_type");
if (DcItemType.RowCount == 0)
{
DcItemType.ImportString(fin.of_dddwfinitemtype(state.SsWsPass), FileSaveAsType.Xml);
}
if (DwMain.GetItemDecimal(1, "status") == 11)
{
DwMain.SetItemDecimal(1, "item_type", 15);
}
else if (DwMain.GetItemDecimal(1, "status") == 14)
{
DwMain.SetItemDecimal(1, "item_type", 11);
}
else { DwMain.SetItemDecimal(1, "item_type", 11); }
cashAmt = DwMain.GetItemDecimal(1, "cash_amt");
HfCashAmt.Value = Convert.ToString(cashAmt);
moneyRemain = DwMain.GetItemDecimal(1, "money_remain");
HfMoneyRemain.Value = Convert.ToString(moneyRemain);
DwMain.Modify("money_remain_text.text='" + moneyRemain.ToString("#,##0.00") + "'");
}
catch (SoapException ex)
{
LtServerMessage.Text = WebUtil.ErrorMessage(WebUtil.SoapMessage(ex));
}
catch (Exception ex)
{
LtServerMessage.Text = WebUtil.ErrorMessage(ex.Message);
}
}
protected void ChangeTeller()
{
Int32 resultXml;
String mainXml, columnName,fullname = "";
Decimal status, NewValue, ItemType;
mainXml = DwMain.Describe("DataWindow.Data.XML");
resultXml = fin.of_init_fincashcontrol_user(state.SsWsPass,ref mainXml,ref fullname);
DwMain.Modify("t_fullname.text='" + HfFullName.Value + "'");
DwMain.Modify("t_fullname.text='" + fullname + "'");
columnName = HfColumn.Value;
status = DwMain.GetItemDecimal(1, "status");
try
{
NewValue = Convert.ToDecimal(HfValue.Value);
}
catch { NewValue = 0; }
if (NewValue < 0)
{
NewValue = 0;
LtServerMessage.Text = WebUtil.ErrorMessage("จำนวนเงินติดลบไม่ได้");
}
ItemType = Convert.ToInt16(DwMain.GetItemDecimal(1, "item_type"));
if (ItemType != status)
{
cashAmt = Convert.ToDecimal(HfCashAmt.Value);
moneyRemain = Convert.ToDecimal(HfMoneyRemain.Value);
try
{
if (ItemType == 14) //14 ปิดลิ้นชัก
{
if (moneyRemain >= 0)
{
cashAmt = cashAmt + moneyRemain;
DwMain.SetItemDecimal(1, "money_remain", 0);
DwMain.SetItemDecimal(1, "cash_amt", cashAmt);
DwMain.SetItemDecimal(1, "operate_amt", moneyRemain);
DwMain.Modify("t_moneyreturn.text='" + "ยอดเงินที่ต้องส่งคืนทั้งหมด =" + moneyRemain.ToString("#,##0.00") + "'");
}
else
{
LtServerMessage.Text = WebUtil.ErrorMessage("จำนวนเงินสดคงเหลือติดลบ");
DwMain.SetItemDecimal(1, "item_type", 15);
}
}
else if (ItemType == 11 && columnName == "operate_amt")//11 เปิดลิ้นชัก
{
cashAmt = cashAmt - NewValue;
DwMain.SetItemDecimal(1, "cash_amt", cashAmt);
DwMain.SetItemDecimal(1, "operate_amt", NewValue);
DwMain.SetItemDecimal(1, "money_remain", NewValue);
DwMain.Modify("t_moneyreturn.text='" + "" + "'");
}
else if (ItemType == 15)//15 เบิกเงินเพิ่ม
{
if (status == 11 && columnName == "operate_amt")
{
if (NewValue <= cashAmt)
{
cashAmt = cashAmt - NewValue;
moneyRemain = moneyRemain + NewValue;
DwMain.SetItemDecimal(1, "cash_amt", cashAmt);
DwMain.SetItemDecimal(1, "operate_amt", NewValue);
DwMain.SetItemDecimal(1, "money_remain", moneyRemain);
DwMain.Modify("t_moneyreturn.text='" + "" + "'");
}
else if (NewValue > cashAmt)
{
DwMain.SetItemDecimal(1, "operate_amt", 0);
LtServerMessage.Text = WebUtil.ErrorMessage("จำนวนเงินที่เบิกมากกว่าจำนวนเงินคงเหลือ");
}
}
else if (status == 11 && columnName == "item_type")
{
DwMain.SetItemDecimal(1, "operate_amt", 0);
DwMain.SetItemDecimal(1, "cash_amt", cashAmt);
DwMain.SetItemDecimal(1, "money_remain", moneyRemain);
}
else
{
//LtAlert.Text = "";
DwMain.SetItemDecimal(1, "item_type", 11);
LtServerMessage.Text = WebUtil.ErrorMessage("ต้องมีสถานะเปิดลิ้นชักเท่านั้น");
}
}
else if (ItemType == 16)//16 ส่งเงินคืน
{
if (status == 11 && columnName == "operate_amt")
{
if (NewValue <= moneyRemain)
{
cashAmt = cashAmt + NewValue;
moneyRemain = moneyRemain - NewValue;
DwMain.SetItemDecimal(1, "cash_amt", cashAmt);
DwMain.SetItemDecimal(1, "operate_amt", NewValue);
DwMain.SetItemDecimal(1, "money_remain", moneyRemain);
DwMain.Modify("t_moneyreturn.text='" + "" + "'");
}
else if (NewValue > moneyRemain)
{
DwMain.SetItemDecimal(1, "operate_amt", 0);
LtServerMessage.Text = WebUtil.ErrorMessage("จำนวนเงินที่คืนมากกว่าจำนวนเงินคงเหลือ");
}
}
else if (status == 11 && columnName == "item_type")
{
DwMain.SetItemDecimal(1, "operate_amt", 0);
DwMain.SetItemDecimal(1, "cash_amt", cashAmt);
DwMain.SetItemDecimal(1, "money_remain", moneyRemain);
}
else
{
//LtAlert.Text = "";
DwMain.SetItemDecimal(1, "item_type", 11);
LtServerMessage.Text = WebUtil.ErrorMessage("ต้องมีสถานะเปิดลิ้นชักเท่านั้น");
}
}
}
catch (SoapException ex)
{
LtServerMessage.Text = WebUtil.ErrorMessage(WebUtil.SoapMessage(ex));
}
catch (Exception ex)
{
LtServerMessage.Text = WebUtil.ErrorMessage(ex.Message);
}
}
else if (ItemType == status)
{
cashAmt = Convert.ToDecimal(HfCashAmt.Value);
moneyRemain = Convert.ToDecimal(HfMoneyRemain.Value);
if (ItemType == 11)// เปิดลิ้นชัก
{
DwMain.SetItemDecimal(1, "item_type", 15);
DwMain.SetItemDecimal(1, "operate_amt", 0);
DwMain.SetItemDecimal(1, "cash_amt", cashAmt);
DwMain.SetItemDecimal(1, "money_remain", moneyRemain);
LtServerMessage.Text = WebUtil.ErrorMessage("มีสถานะเปิดอยู่แล้ว ไม่สามารถเปิดได้อีก");
}
else if (ItemType == 14)// ปิดลิ้นชัก
{
LtServerMessage.Text = WebUtil.ErrorMessage("ยังไม่ทำการเปิดลิ้นชัก หรือ มีสถานะปิดลิ้นชักแล้ว");
}
}
}
protected void PostPrintSlip()
{
Int16 ai_seqno = 0;
String as_app = "", as_username = "";
Hprintslip.Value = "false";
try
{
as_app = Happname.Value;
as_username = Husername.Value;
ai_seqno = Convert.ToInt16(Hseqno.Value);
//fin.OfPostPrintCashCrtl(state.SsWsPass, state.SsCoopId, state.SsUsername, as_username, state.SsWorkDate, ai_seqno, state.SsPrinterSet);
}
catch (SoapException ex)
{
LtServerMessage.Text = WebUtil.ErrorMessage(WebUtil.SoapMessage(ex));
}
catch (Exception ex)
{
LtServerMessage.Text = WebUtil.ErrorMessage(ex.Message);
}
}
}
}