Switched to management branch to develop management module.
Initial commit dunno what has changed.
This commit is contained in:
parent
2d1030abf6
commit
a984b1f527
Tanshu.Accounts.PointOfSale
MainForm.csMainForm.designer.cs
Management
AmountForm.csAmountForm.designer.csAmountForm.resxFoodForm.csFoodForm.designer.csFoodForm.resxMoveForm.csMoveForm.designer.csMoveForm.resxNcForm.csNcForm.designer.csNcForm.resxQuantityForm.csQuantityForm.designer.cs
Profiling
Tanshu.Accounts.PointOfSale.csprojTanshu.Accounts.Repository/BusinessLayer
@ -179,7 +179,15 @@ namespace Tanshu.Accounts.PointOfSale
|
||||
btnDiscountReport.Visible = Session.IsAllowed(RoleConstants.VOID_OR_REPRINTED_BILL_REPORT);
|
||||
|
||||
btnChangePassword.Visible = Session.IsAuthenticated;
|
||||
btnManagement.Visible = false;
|
||||
#if (DEBUG)
|
||||
btnMgtBeer.Visible = true;
|
||||
btnMgtFood.Visible = true;
|
||||
btnMgtLiq.Visible = true;
|
||||
#else
|
||||
btnMgtBeer.Visible = false;
|
||||
btnMgtFood.Visible = false;
|
||||
btnMgtLiq.Visible = false;
|
||||
#endif
|
||||
}
|
||||
|
||||
private void btnGroupRoles_Click(object sender, EventArgs e)
|
||||
@ -264,12 +272,6 @@ namespace Tanshu.Accounts.PointOfSale
|
||||
frm.ShowDialog();
|
||||
}
|
||||
|
||||
private void btnManagement_Click(object sender, EventArgs e)
|
||||
{
|
||||
using (var frm = new QuantityForm())
|
||||
frm.ShowDialog();
|
||||
}
|
||||
|
||||
private void btnDiscountReport_Click(object sender, EventArgs e)
|
||||
{
|
||||
using (var frm = new DiscountReportForm())
|
||||
@ -277,6 +279,22 @@ namespace Tanshu.Accounts.PointOfSale
|
||||
|
||||
}
|
||||
|
||||
private void btnMgtBeer_Click(object sender, EventArgs e)
|
||||
{
|
||||
using (var frm = new MoveForm())
|
||||
frm.ShowDialog();
|
||||
}
|
||||
|
||||
private void btnMgtFood_Click(object sender, EventArgs e)
|
||||
{
|
||||
using (var frm = new FoodForm())
|
||||
frm.ShowDialog();
|
||||
}
|
||||
|
||||
private void btnMgtLiq_Click(object sender, EventArgs e)
|
||||
{
|
||||
using (var frm = new AmountForm())
|
||||
frm.ShowDialog();
|
||||
}
|
||||
}
|
||||
}
|
160
Tanshu.Accounts.PointOfSale/MainForm.designer.cs
generated
160
Tanshu.Accounts.PointOfSale/MainForm.designer.cs
generated
@ -49,15 +49,18 @@
|
||||
this.btnDiscountReport = new System.Windows.Forms.Button();
|
||||
this.btnChangePassword = new System.Windows.Forms.Button();
|
||||
this.btnExit = new System.Windows.Forms.Button();
|
||||
this.btnManagement = new System.Windows.Forms.Button();
|
||||
this.btnMgtBeer = new System.Windows.Forms.Button();
|
||||
this.btnMgtFood = new System.Windows.Forms.Button();
|
||||
this.btnMgtLiq = new System.Windows.Forms.Button();
|
||||
this.flowLayoutPanel1.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// btnLogin
|
||||
//
|
||||
this.btnLogin.Location = new System.Drawing.Point(3, 3);
|
||||
this.btnLogin.Location = new System.Drawing.Point(4, 4);
|
||||
this.btnLogin.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnLogin.Name = "btnLogin";
|
||||
this.btnLogin.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnLogin.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnLogin.TabIndex = 1;
|
||||
this.btnLogin.Text = "&Login";
|
||||
this.btnLogin.UseVisualStyleBackColor = true;
|
||||
@ -65,9 +68,10 @@
|
||||
//
|
||||
// btnSale
|
||||
//
|
||||
this.btnSale.Location = new System.Drawing.Point(315, 3);
|
||||
this.btnSale.Location = new System.Drawing.Point(420, 4);
|
||||
this.btnSale.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnSale.Name = "btnSale";
|
||||
this.btnSale.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnSale.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnSale.TabIndex = 3;
|
||||
this.btnSale.Text = "&Sale";
|
||||
this.btnSale.UseVisualStyleBackColor = true;
|
||||
@ -95,18 +99,22 @@
|
||||
this.flowLayoutPanel1.Controls.Add(this.btnDiscountReport);
|
||||
this.flowLayoutPanel1.Controls.Add(this.btnChangePassword);
|
||||
this.flowLayoutPanel1.Controls.Add(this.btnExit);
|
||||
this.flowLayoutPanel1.Controls.Add(this.btnManagement);
|
||||
this.flowLayoutPanel1.Controls.Add(this.btnMgtBeer);
|
||||
this.flowLayoutPanel1.Controls.Add(this.btnMgtFood);
|
||||
this.flowLayoutPanel1.Controls.Add(this.btnMgtLiq);
|
||||
this.flowLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Fill;
|
||||
this.flowLayoutPanel1.Location = new System.Drawing.Point(0, 0);
|
||||
this.flowLayoutPanel1.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.flowLayoutPanel1.Name = "flowLayoutPanel1";
|
||||
this.flowLayoutPanel1.Size = new System.Drawing.Size(792, 537);
|
||||
this.flowLayoutPanel1.Size = new System.Drawing.Size(1056, 661);
|
||||
this.flowLayoutPanel1.TabIndex = 0;
|
||||
//
|
||||
// btnSwipeLogin
|
||||
//
|
||||
this.btnSwipeLogin.Location = new System.Drawing.Point(159, 3);
|
||||
this.btnSwipeLogin.Location = new System.Drawing.Point(212, 4);
|
||||
this.btnSwipeLogin.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnSwipeLogin.Name = "btnSwipeLogin";
|
||||
this.btnSwipeLogin.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnSwipeLogin.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnSwipeLogin.TabIndex = 2;
|
||||
this.btnSwipeLogin.Text = "Swipe Login";
|
||||
this.btnSwipeLogin.UseVisualStyleBackColor = true;
|
||||
@ -114,9 +122,10 @@
|
||||
//
|
||||
// btnCustomer
|
||||
//
|
||||
this.btnCustomer.Location = new System.Drawing.Point(471, 3);
|
||||
this.btnCustomer.Location = new System.Drawing.Point(628, 4);
|
||||
this.btnCustomer.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnCustomer.Name = "btnCustomer";
|
||||
this.btnCustomer.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnCustomer.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnCustomer.TabIndex = 4;
|
||||
this.btnCustomer.Text = "Customers";
|
||||
this.btnCustomer.UseVisualStyleBackColor = true;
|
||||
@ -124,9 +133,10 @@
|
||||
//
|
||||
// btnProduct
|
||||
//
|
||||
this.btnProduct.Location = new System.Drawing.Point(627, 3);
|
||||
this.btnProduct.Location = new System.Drawing.Point(836, 4);
|
||||
this.btnProduct.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnProduct.Name = "btnProduct";
|
||||
this.btnProduct.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnProduct.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnProduct.TabIndex = 5;
|
||||
this.btnProduct.Text = "Products";
|
||||
this.btnProduct.UseVisualStyleBackColor = true;
|
||||
@ -134,9 +144,10 @@
|
||||
//
|
||||
// btnProductGroup
|
||||
//
|
||||
this.btnProductGroup.Location = new System.Drawing.Point(3, 109);
|
||||
this.btnProductGroup.Location = new System.Drawing.Point(4, 135);
|
||||
this.btnProductGroup.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnProductGroup.Name = "btnProductGroup";
|
||||
this.btnProductGroup.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnProductGroup.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnProductGroup.TabIndex = 6;
|
||||
this.btnProductGroup.Text = "Product Groups";
|
||||
this.btnProductGroup.UseVisualStyleBackColor = true;
|
||||
@ -144,9 +155,10 @@
|
||||
//
|
||||
// btnOpenBill
|
||||
//
|
||||
this.btnOpenBill.Location = new System.Drawing.Point(159, 109);
|
||||
this.btnOpenBill.Location = new System.Drawing.Point(212, 135);
|
||||
this.btnOpenBill.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnOpenBill.Name = "btnOpenBill";
|
||||
this.btnOpenBill.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnOpenBill.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnOpenBill.TabIndex = 7;
|
||||
this.btnOpenBill.Text = "Open Bill";
|
||||
this.btnOpenBill.UseVisualStyleBackColor = true;
|
||||
@ -154,9 +166,10 @@
|
||||
//
|
||||
// btnAdvanceReceive
|
||||
//
|
||||
this.btnAdvanceReceive.Location = new System.Drawing.Point(315, 109);
|
||||
this.btnAdvanceReceive.Location = new System.Drawing.Point(420, 135);
|
||||
this.btnAdvanceReceive.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnAdvanceReceive.Name = "btnAdvanceReceive";
|
||||
this.btnAdvanceReceive.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnAdvanceReceive.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnAdvanceReceive.TabIndex = 8;
|
||||
this.btnAdvanceReceive.Text = "Receive Advance";
|
||||
this.btnAdvanceReceive.UseVisualStyleBackColor = true;
|
||||
@ -164,9 +177,10 @@
|
||||
//
|
||||
// btnAdvanceAdjust
|
||||
//
|
||||
this.btnAdvanceAdjust.Location = new System.Drawing.Point(471, 109);
|
||||
this.btnAdvanceAdjust.Location = new System.Drawing.Point(628, 135);
|
||||
this.btnAdvanceAdjust.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnAdvanceAdjust.Name = "btnAdvanceAdjust";
|
||||
this.btnAdvanceAdjust.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnAdvanceAdjust.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnAdvanceAdjust.TabIndex = 9;
|
||||
this.btnAdvanceAdjust.Text = "Adjust Advance";
|
||||
this.btnAdvanceAdjust.UseVisualStyleBackColor = true;
|
||||
@ -174,9 +188,10 @@
|
||||
//
|
||||
// btnCreateUser
|
||||
//
|
||||
this.btnCreateUser.Location = new System.Drawing.Point(627, 109);
|
||||
this.btnCreateUser.Location = new System.Drawing.Point(836, 135);
|
||||
this.btnCreateUser.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnCreateUser.Name = "btnCreateUser";
|
||||
this.btnCreateUser.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnCreateUser.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnCreateUser.TabIndex = 10;
|
||||
this.btnCreateUser.Text = "Create User";
|
||||
this.btnCreateUser.UseVisualStyleBackColor = true;
|
||||
@ -184,9 +199,10 @@
|
||||
//
|
||||
// btnUserRoles
|
||||
//
|
||||
this.btnUserRoles.Location = new System.Drawing.Point(3, 215);
|
||||
this.btnUserRoles.Location = new System.Drawing.Point(4, 266);
|
||||
this.btnUserRoles.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnUserRoles.Name = "btnUserRoles";
|
||||
this.btnUserRoles.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnUserRoles.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnUserRoles.TabIndex = 11;
|
||||
this.btnUserRoles.Text = "Manage User Roles";
|
||||
this.btnUserRoles.UseVisualStyleBackColor = true;
|
||||
@ -194,9 +210,10 @@
|
||||
//
|
||||
// btnGroupRoles
|
||||
//
|
||||
this.btnGroupRoles.Location = new System.Drawing.Point(159, 215);
|
||||
this.btnGroupRoles.Location = new System.Drawing.Point(212, 266);
|
||||
this.btnGroupRoles.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnGroupRoles.Name = "btnGroupRoles";
|
||||
this.btnGroupRoles.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnGroupRoles.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnGroupRoles.TabIndex = 12;
|
||||
this.btnGroupRoles.Text = "Manage Group Roles";
|
||||
this.btnGroupRoles.UseVisualStyleBackColor = true;
|
||||
@ -204,9 +221,10 @@
|
||||
//
|
||||
// btnCashierCheckout
|
||||
//
|
||||
this.btnCashierCheckout.Location = new System.Drawing.Point(315, 215);
|
||||
this.btnCashierCheckout.Location = new System.Drawing.Point(420, 266);
|
||||
this.btnCashierCheckout.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnCashierCheckout.Name = "btnCashierCheckout";
|
||||
this.btnCashierCheckout.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnCashierCheckout.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnCashierCheckout.TabIndex = 13;
|
||||
this.btnCashierCheckout.Text = "Cashier Checkout";
|
||||
this.btnCashierCheckout.UseVisualStyleBackColor = true;
|
||||
@ -214,9 +232,10 @@
|
||||
//
|
||||
// btnSaleAnalysis
|
||||
//
|
||||
this.btnSaleAnalysis.Location = new System.Drawing.Point(471, 215);
|
||||
this.btnSaleAnalysis.Location = new System.Drawing.Point(628, 266);
|
||||
this.btnSaleAnalysis.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnSaleAnalysis.Name = "btnSaleAnalysis";
|
||||
this.btnSaleAnalysis.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnSaleAnalysis.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnSaleAnalysis.TabIndex = 14;
|
||||
this.btnSaleAnalysis.Text = "Sale Analysis";
|
||||
this.btnSaleAnalysis.UseVisualStyleBackColor = true;
|
||||
@ -224,9 +243,10 @@
|
||||
//
|
||||
// btnSaleDetail
|
||||
//
|
||||
this.btnSaleDetail.Location = new System.Drawing.Point(627, 215);
|
||||
this.btnSaleDetail.Location = new System.Drawing.Point(836, 266);
|
||||
this.btnSaleDetail.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnSaleDetail.Name = "btnSaleDetail";
|
||||
this.btnSaleDetail.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnSaleDetail.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnSaleDetail.TabIndex = 15;
|
||||
this.btnSaleDetail.Text = "Sale Detail";
|
||||
this.btnSaleDetail.UseVisualStyleBackColor = true;
|
||||
@ -234,9 +254,10 @@
|
||||
//
|
||||
// btnBillDetails
|
||||
//
|
||||
this.btnBillDetails.Location = new System.Drawing.Point(3, 321);
|
||||
this.btnBillDetails.Location = new System.Drawing.Point(4, 397);
|
||||
this.btnBillDetails.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnBillDetails.Name = "btnBillDetails";
|
||||
this.btnBillDetails.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnBillDetails.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnBillDetails.TabIndex = 16;
|
||||
this.btnBillDetails.Text = "Bill Details";
|
||||
this.btnBillDetails.UseVisualStyleBackColor = true;
|
||||
@ -244,9 +265,10 @@
|
||||
//
|
||||
// btnVoidOrReprints
|
||||
//
|
||||
this.btnVoidOrReprints.Location = new System.Drawing.Point(159, 321);
|
||||
this.btnVoidOrReprints.Location = new System.Drawing.Point(212, 397);
|
||||
this.btnVoidOrReprints.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnVoidOrReprints.Name = "btnVoidOrReprints";
|
||||
this.btnVoidOrReprints.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnVoidOrReprints.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnVoidOrReprints.TabIndex = 19;
|
||||
this.btnVoidOrReprints.Text = "Voids or Reprints";
|
||||
this.btnVoidOrReprints.UseVisualStyleBackColor = true;
|
||||
@ -254,9 +276,10 @@
|
||||
//
|
||||
// btnDiscountReport
|
||||
//
|
||||
this.btnDiscountReport.Location = new System.Drawing.Point(315, 321);
|
||||
this.btnDiscountReport.Location = new System.Drawing.Point(420, 397);
|
||||
this.btnDiscountReport.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnDiscountReport.Name = "btnDiscountReport";
|
||||
this.btnDiscountReport.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnDiscountReport.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnDiscountReport.TabIndex = 21;
|
||||
this.btnDiscountReport.Text = "Discount Report";
|
||||
this.btnDiscountReport.UseVisualStyleBackColor = true;
|
||||
@ -264,9 +287,10 @@
|
||||
//
|
||||
// btnChangePassword
|
||||
//
|
||||
this.btnChangePassword.Location = new System.Drawing.Point(471, 321);
|
||||
this.btnChangePassword.Location = new System.Drawing.Point(628, 397);
|
||||
this.btnChangePassword.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnChangePassword.Name = "btnChangePassword";
|
||||
this.btnChangePassword.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnChangePassword.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnChangePassword.TabIndex = 17;
|
||||
this.btnChangePassword.Text = "Change Password";
|
||||
this.btnChangePassword.UseVisualStyleBackColor = true;
|
||||
@ -274,30 +298,56 @@
|
||||
//
|
||||
// btnExit
|
||||
//
|
||||
this.btnExit.Location = new System.Drawing.Point(627, 321);
|
||||
this.btnExit.Location = new System.Drawing.Point(836, 397);
|
||||
this.btnExit.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnExit.Name = "btnExit";
|
||||
this.btnExit.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnExit.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnExit.TabIndex = 18;
|
||||
this.btnExit.Text = "Exit";
|
||||
this.btnExit.UseVisualStyleBackColor = true;
|
||||
this.btnExit.Click += new System.EventHandler(this.btnExit_Click);
|
||||
//
|
||||
// btnManagement
|
||||
// btnMgtBeer
|
||||
//
|
||||
this.btnManagement.Location = new System.Drawing.Point(3, 427);
|
||||
this.btnManagement.Name = "btnManagement";
|
||||
this.btnManagement.Size = new System.Drawing.Size(150, 100);
|
||||
this.btnManagement.TabIndex = 20;
|
||||
this.btnManagement.Text = "Mgt";
|
||||
this.btnManagement.UseVisualStyleBackColor = true;
|
||||
this.btnManagement.Click += new System.EventHandler(this.btnManagement_Click);
|
||||
this.btnMgtBeer.Location = new System.Drawing.Point(4, 528);
|
||||
this.btnMgtBeer.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnMgtBeer.Name = "btnMgtBeer";
|
||||
this.btnMgtBeer.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnMgtBeer.TabIndex = 20;
|
||||
this.btnMgtBeer.Text = "Beer Quantity";
|
||||
this.btnMgtBeer.UseVisualStyleBackColor = true;
|
||||
this.btnMgtBeer.Click += new System.EventHandler(this.btnMgtBeer_Click);
|
||||
//
|
||||
// btnMgtFood
|
||||
//
|
||||
this.btnMgtFood.Location = new System.Drawing.Point(212, 528);
|
||||
this.btnMgtFood.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnMgtFood.Name = "btnMgtFood";
|
||||
this.btnMgtFood.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnMgtFood.TabIndex = 22;
|
||||
this.btnMgtFood.Text = "Food Amount";
|
||||
this.btnMgtFood.UseVisualStyleBackColor = true;
|
||||
this.btnMgtFood.Click += new System.EventHandler(this.btnMgtFood_Click);
|
||||
//
|
||||
// btnMgtLiq
|
||||
//
|
||||
this.btnMgtLiq.Location = new System.Drawing.Point(420, 528);
|
||||
this.btnMgtLiq.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnMgtLiq.Name = "btnMgtLiq";
|
||||
this.btnMgtLiq.Size = new System.Drawing.Size(200, 123);
|
||||
this.btnMgtLiq.TabIndex = 23;
|
||||
this.btnMgtLiq.Text = "Liq Amount";
|
||||
this.btnMgtLiq.UseVisualStyleBackColor = true;
|
||||
this.btnMgtLiq.Click += new System.EventHandler(this.btnMgtLiq_Click);
|
||||
//
|
||||
// MainForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(792, 537);
|
||||
this.ClientSize = new System.Drawing.Size(1056, 661);
|
||||
this.Controls.Add(this.flowLayoutPanel1);
|
||||
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
|
||||
this.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.Name = "MainForm";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "MainForm";
|
||||
@ -330,7 +380,9 @@
|
||||
private System.Windows.Forms.Button btnOpenBill;
|
||||
private System.Windows.Forms.Button btnBillDetails;
|
||||
private System.Windows.Forms.Button btnVoidOrReprints;
|
||||
private System.Windows.Forms.Button btnManagement;
|
||||
private System.Windows.Forms.Button btnMgtBeer;
|
||||
private System.Windows.Forms.Button btnDiscountReport;
|
||||
private System.Windows.Forms.Button btnMgtFood;
|
||||
private System.Windows.Forms.Button btnMgtLiq;
|
||||
}
|
||||
}
|
49
Tanshu.Accounts.PointOfSale/Management/AmountForm.cs
Normal file
49
Tanshu.Accounts.PointOfSale/Management/AmountForm.cs
Normal file
@ -0,0 +1,49 @@
|
||||
using System;
|
||||
using System.Windows.Forms;
|
||||
using Tanshu.Accounts.Repository;
|
||||
|
||||
namespace Tanshu.Accounts.Management
|
||||
{
|
||||
public partial class AmountForm : Form
|
||||
{
|
||||
public AmountForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void Sale_Analysis_Form_Load(object sender, EventArgs e)
|
||||
{
|
||||
dtpStart.Value = DateTime.Today;
|
||||
dtpFinish.Value = DateTime.Today;
|
||||
}
|
||||
|
||||
private void btnGo_Click(object sender, EventArgs e)
|
||||
{
|
||||
dtpStart.Value = dtpStart.Value.Date.AddHours(7);
|
||||
dtpFinish.Value = dtpFinish.Value.Date.AddDays(1).AddHours(7);
|
||||
var amount = GetAmount();
|
||||
var newAmount = TryConvert(txtQuantity.Text);
|
||||
if (MessageBox.Show(amount.ToString(), "Amounts", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2) == DialogResult.Yes && amount > newAmount)
|
||||
{
|
||||
MessageBox.Show(SetAmount(newAmount).ToString());
|
||||
}
|
||||
}
|
||||
private decimal TryConvert(string amount)
|
||||
{
|
||||
decimal result = 0;
|
||||
decimal.TryParse(amount, out result);
|
||||
return result;
|
||||
}
|
||||
private decimal GetAmount()
|
||||
{
|
||||
using (var bi = new ManagementBI())
|
||||
return bi.GetFood(2, dtpStart.Value, dtpFinish.Value);
|
||||
}
|
||||
private decimal SetAmount(decimal quantity)
|
||||
{
|
||||
using (var bi = new ManagementBI())
|
||||
return bi.SetAmount(2, quantity, dtpStart.Value, dtpFinish.Value);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
116
Tanshu.Accounts.PointOfSale/Management/AmountForm.designer.cs
generated
Normal file
116
Tanshu.Accounts.PointOfSale/Management/AmountForm.designer.cs
generated
Normal file
@ -0,0 +1,116 @@
|
||||
namespace Tanshu.Accounts.Management
|
||||
{
|
||||
partial class AmountForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.dtpFinish = new System.Windows.Forms.DateTimePicker();
|
||||
this.dtpStart = new System.Windows.Forms.DateTimePicker();
|
||||
this.label10 = new System.Windows.Forms.Label();
|
||||
this.txtQuantity = new System.Windows.Forms.TextBox();
|
||||
this.btnGo = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// dtpFinish
|
||||
//
|
||||
this.dtpFinish.CustomFormat = "dd-MMM-yyyy";
|
||||
this.dtpFinish.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.dtpFinish.Location = new System.Drawing.Point(224, 15);
|
||||
this.dtpFinish.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.dtpFinish.Name = "dtpFinish";
|
||||
this.dtpFinish.Size = new System.Drawing.Size(119, 22);
|
||||
this.dtpFinish.TabIndex = 21;
|
||||
//
|
||||
// dtpStart
|
||||
//
|
||||
this.dtpStart.CustomFormat = "dd-MMM-yyyy";
|
||||
this.dtpStart.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.dtpStart.Location = new System.Drawing.Point(16, 15);
|
||||
this.dtpStart.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.dtpStart.Name = "dtpStart";
|
||||
this.dtpStart.Size = new System.Drawing.Size(119, 22);
|
||||
this.dtpStart.TabIndex = 20;
|
||||
//
|
||||
// label10
|
||||
//
|
||||
this.label10.AutoSize = true;
|
||||
this.label10.Location = new System.Drawing.Point(144, 20);
|
||||
this.label10.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.label10.Name = "label10";
|
||||
this.label10.Size = new System.Drawing.Size(72, 17);
|
||||
this.label10.TabIndex = 22;
|
||||
this.label10.Text = "<- Date ->";
|
||||
//
|
||||
// txtQuantity
|
||||
//
|
||||
this.txtQuantity.Location = new System.Drawing.Point(16, 223);
|
||||
this.txtQuantity.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.txtQuantity.Name = "txtQuantity";
|
||||
this.txtQuantity.Size = new System.Drawing.Size(445, 22);
|
||||
this.txtQuantity.TabIndex = 5;
|
||||
//
|
||||
// btnGo
|
||||
//
|
||||
this.btnGo.Location = new System.Drawing.Point(16, 255);
|
||||
this.btnGo.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnGo.Name = "btnGo";
|
||||
this.btnGo.Size = new System.Drawing.Size(200, 28);
|
||||
this.btnGo.TabIndex = 24;
|
||||
this.btnGo.Text = "Go";
|
||||
this.btnGo.UseVisualStyleBackColor = true;
|
||||
this.btnGo.Click += new System.EventHandler(this.btnGo_Click);
|
||||
//
|
||||
// FoodForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(479, 298);
|
||||
this.Controls.Add(this.btnGo);
|
||||
this.Controls.Add(this.dtpFinish);
|
||||
this.Controls.Add(this.dtpStart);
|
||||
this.Controls.Add(this.label10);
|
||||
this.Controls.Add(this.txtQuantity);
|
||||
this.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.MaximizeBox = false;
|
||||
this.Name = "FoodForm";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "Sale Analysis Form";
|
||||
this.Load += new System.EventHandler(this.Sale_Analysis_Form_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.DateTimePicker dtpFinish;
|
||||
private System.Windows.Forms.DateTimePicker dtpStart;
|
||||
private System.Windows.Forms.Label label10;
|
||||
private System.Windows.Forms.TextBox txtQuantity;
|
||||
private System.Windows.Forms.Button btnGo;
|
||||
}
|
||||
}
|
120
Tanshu.Accounts.PointOfSale/Management/AmountForm.resx
Normal file
120
Tanshu.Accounts.PointOfSale/Management/AmountForm.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
46
Tanshu.Accounts.PointOfSale/Management/FoodForm.cs
Normal file
46
Tanshu.Accounts.PointOfSale/Management/FoodForm.cs
Normal file
@ -0,0 +1,46 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Windows.Forms;
|
||||
using Tanshu.Accounts.Repository;
|
||||
using Tanshu.Accounts.Contracts;
|
||||
|
||||
namespace Tanshu.Accounts.Management
|
||||
{
|
||||
public partial class FoodForm : Form
|
||||
{
|
||||
public FoodForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void Sale_Analysis_Form_Load(object sender, EventArgs e)
|
||||
{
|
||||
dtpStart.Value = DateTime.Today;
|
||||
dtpFinish.Value = DateTime.Today;
|
||||
}
|
||||
|
||||
private void btnGo_Click(object sender, EventArgs e)
|
||||
{
|
||||
dtpStart.Value = dtpStart.Value.Date.AddHours(7);
|
||||
dtpFinish.Value = dtpFinish.Value.Date.AddDays(1).AddHours(7);
|
||||
var amount = GetFood();
|
||||
var newAmount = Convert.ToDecimal(txtQuantity.Text);
|
||||
if (MessageBox.Show(amount.ToString(), "Food Sales", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2) == DialogResult.Yes && amount > newAmount)
|
||||
{
|
||||
MessageBox.Show(SetFood(newAmount).ToString());
|
||||
}
|
||||
}
|
||||
private decimal GetFood()
|
||||
{
|
||||
using (var bi = new ManagementBI())
|
||||
return bi.GetFood(1, dtpStart.Value, dtpFinish.Value);
|
||||
}
|
||||
private decimal SetFood(decimal quantity)
|
||||
{
|
||||
using (var bi = new ManagementBI())
|
||||
return bi.SetFood(1, quantity, dtpStart.Value, dtpFinish.Value);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
116
Tanshu.Accounts.PointOfSale/Management/FoodForm.designer.cs
generated
Normal file
116
Tanshu.Accounts.PointOfSale/Management/FoodForm.designer.cs
generated
Normal file
@ -0,0 +1,116 @@
|
||||
namespace Tanshu.Accounts.Management
|
||||
{
|
||||
partial class FoodForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.dtpFinish = new System.Windows.Forms.DateTimePicker();
|
||||
this.dtpStart = new System.Windows.Forms.DateTimePicker();
|
||||
this.label10 = new System.Windows.Forms.Label();
|
||||
this.txtQuantity = new System.Windows.Forms.TextBox();
|
||||
this.btnGo = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// dtpFinish
|
||||
//
|
||||
this.dtpFinish.CustomFormat = "dd-MMM-yyyy";
|
||||
this.dtpFinish.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.dtpFinish.Location = new System.Drawing.Point(224, 15);
|
||||
this.dtpFinish.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.dtpFinish.Name = "dtpFinish";
|
||||
this.dtpFinish.Size = new System.Drawing.Size(119, 22);
|
||||
this.dtpFinish.TabIndex = 21;
|
||||
//
|
||||
// dtpStart
|
||||
//
|
||||
this.dtpStart.CustomFormat = "dd-MMM-yyyy";
|
||||
this.dtpStart.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.dtpStart.Location = new System.Drawing.Point(16, 15);
|
||||
this.dtpStart.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.dtpStart.Name = "dtpStart";
|
||||
this.dtpStart.Size = new System.Drawing.Size(119, 22);
|
||||
this.dtpStart.TabIndex = 20;
|
||||
//
|
||||
// label10
|
||||
//
|
||||
this.label10.AutoSize = true;
|
||||
this.label10.Location = new System.Drawing.Point(144, 20);
|
||||
this.label10.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
|
||||
this.label10.Name = "label10";
|
||||
this.label10.Size = new System.Drawing.Size(72, 17);
|
||||
this.label10.TabIndex = 22;
|
||||
this.label10.Text = "<- Date ->";
|
||||
//
|
||||
// txtQuantity
|
||||
//
|
||||
this.txtQuantity.Location = new System.Drawing.Point(16, 223);
|
||||
this.txtQuantity.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.txtQuantity.Name = "txtQuantity";
|
||||
this.txtQuantity.Size = new System.Drawing.Size(445, 22);
|
||||
this.txtQuantity.TabIndex = 5;
|
||||
//
|
||||
// btnGo
|
||||
//
|
||||
this.btnGo.Location = new System.Drawing.Point(16, 255);
|
||||
this.btnGo.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnGo.Name = "btnGo";
|
||||
this.btnGo.Size = new System.Drawing.Size(200, 28);
|
||||
this.btnGo.TabIndex = 24;
|
||||
this.btnGo.Text = "Go";
|
||||
this.btnGo.UseVisualStyleBackColor = true;
|
||||
this.btnGo.Click += new System.EventHandler(this.btnGo_Click);
|
||||
//
|
||||
// FoodForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(479, 298);
|
||||
this.Controls.Add(this.btnGo);
|
||||
this.Controls.Add(this.dtpFinish);
|
||||
this.Controls.Add(this.dtpStart);
|
||||
this.Controls.Add(this.label10);
|
||||
this.Controls.Add(this.txtQuantity);
|
||||
this.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.MaximizeBox = false;
|
||||
this.Name = "FoodForm";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "Sale Analysis Form";
|
||||
this.Load += new System.EventHandler(this.Sale_Analysis_Form_Load);
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.DateTimePicker dtpFinish;
|
||||
private System.Windows.Forms.DateTimePicker dtpStart;
|
||||
private System.Windows.Forms.Label label10;
|
||||
private System.Windows.Forms.TextBox txtQuantity;
|
||||
private System.Windows.Forms.Button btnGo;
|
||||
}
|
||||
}
|
120
Tanshu.Accounts.PointOfSale/Management/FoodForm.resx
Normal file
120
Tanshu.Accounts.PointOfSale/Management/FoodForm.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
162
Tanshu.Accounts.PointOfSale/Management/MoveForm.cs
Normal file
162
Tanshu.Accounts.PointOfSale/Management/MoveForm.cs
Normal file
@ -0,0 +1,162 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Windows.Forms;
|
||||
using Tanshu.Accounts.Repository;
|
||||
|
||||
namespace Tanshu.Accounts.Management
|
||||
{
|
||||
public partial class MoveForm : Form
|
||||
{
|
||||
private IList<ComboBox> comboBoxes;
|
||||
private IDictionary<int, string> list;
|
||||
public MoveForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
list = new Dictionary<int, string>
|
||||
{
|
||||
{1, "1 - Dark"},
|
||||
{2, "2 - Wheat"},
|
||||
{3, "3 - Premium"},
|
||||
{4, "4 - Light"},
|
||||
{5, "5 - Dragon"},
|
||||
{6, "6 - Festival"},
|
||||
{7, "7 - Vanilla"},
|
||||
{8, "8 - Strong"}
|
||||
};
|
||||
}
|
||||
|
||||
private void Sale_Analysis_Form_Load(object sender, EventArgs e)
|
||||
{
|
||||
dtpStartDate.Value = DateTime.Today;
|
||||
dtpFinishDate.Value = DateTime.Today;
|
||||
}
|
||||
|
||||
private void btnGo_Click(object sender, EventArgs e)
|
||||
{
|
||||
comboBoxes = new List<ComboBox>();
|
||||
var startDate = dtpStartDate.Value.Date.AddHours(7);
|
||||
var finishDate = dtpFinishDate.Value.Date.AddDays(1).AddHours(7);
|
||||
var details = GetMove(startDate, finishDate);
|
||||
foreach (var detail in details)
|
||||
{
|
||||
var item = (object[])detail;
|
||||
var text = GetName((int)item[0]) + " ---> " + ((decimal)item[1]).ToString();
|
||||
|
||||
var label = new Label()
|
||||
{
|
||||
Name = "label" + ((int)item[0]).ToString(CultureInfo.InvariantCulture),
|
||||
AutoSize = true,
|
||||
Text = text
|
||||
};
|
||||
flpProducts.Controls.Add(label);
|
||||
var comboBox = GetBox((int)item[0]);
|
||||
comboBoxes.Add(comboBox);
|
||||
flpProducts.Controls.Add(comboBox);
|
||||
|
||||
}
|
||||
//foreach (var comboBox in comboBoxes)
|
||||
//{
|
||||
// var startDate = dtpStartDate.Value.Date.AddHours(7);
|
||||
// var finishDate = startDate.AddDays(1);
|
||||
|
||||
// var baseCode = (int)(((object[])comboBox.Tag)[0]);
|
||||
// var text = (string)(((object[])comboBox.Tag)[1]);
|
||||
// foreach (var item in comboBox.Text.Split(','))
|
||||
// {
|
||||
// var newQuantity = TryConvert(item);
|
||||
// var quantity = GetQuantity(baseCode, startDate, finishDate);
|
||||
|
||||
// if (MessageBox.Show(text + " " + startDate.ToString("dd-MMM-yyyy") + " " + quantity.ToString(), "Quantity of Beer", MessageBoxButtons.YesNo,
|
||||
// MessageBoxIcon.Information, MessageBoxDefaultButton.Button2) == DialogResult.Yes &&
|
||||
// quantity > newQuantity && newQuantity > 0)
|
||||
// {
|
||||
// MessageBox.Show(SetQuantity(baseCode, newQuantity, startDate, finishDate).ToString());
|
||||
// }
|
||||
// startDate = startDate.AddDays(1);
|
||||
// finishDate = finishDate.AddDays(1);
|
||||
// }
|
||||
//}
|
||||
}
|
||||
private ComboBox GetBox(int code)
|
||||
{
|
||||
var comboBox = new ComboBox()
|
||||
{
|
||||
Name = "comboBox" + (code).ToString(CultureInfo.InvariantCulture),
|
||||
Width = 400,
|
||||
Height = 20,
|
||||
Tag = code,
|
||||
DisplayMember = "Value",
|
||||
ValueMember = "Key",
|
||||
DropDownStyle = ComboBoxStyle.DropDownList,
|
||||
DataSource = new BindingSource(list, null)
|
||||
};
|
||||
//foreach (var item in list)
|
||||
// comboBox.Items.Add(new { Code = item.Key, Name = item.Value });
|
||||
//MessageBox.Show(code.ToString());
|
||||
//comboBox.SelectedIndex = code - 1;
|
||||
comboBox.SelectedValue = code;
|
||||
return comboBox;
|
||||
}
|
||||
private static string GetName(int code)
|
||||
{
|
||||
switch (code)
|
||||
{
|
||||
case 1:
|
||||
return "1 - Dark";
|
||||
case 2:
|
||||
return "2 - Wheat";
|
||||
case 3:
|
||||
return "3 - Premium";
|
||||
case 4:
|
||||
return "4 - Light";
|
||||
case 5:
|
||||
return "5 - Dragon";
|
||||
case 6:
|
||||
return "6 - Festival";
|
||||
case 7:
|
||||
return "7 - Vanilla";
|
||||
case 8:
|
||||
return "8 - Strong";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
private static decimal TryConvert(string amount)
|
||||
{
|
||||
decimal result = 0;
|
||||
decimal.TryParse(amount, out result);
|
||||
return result;
|
||||
}
|
||||
|
||||
private static IList GetMove(DateTime startDate, DateTime finishDate)
|
||||
{
|
||||
using (var bi = new ManagementBI())
|
||||
return bi.GetMove(startDate, finishDate);
|
||||
}
|
||||
private static void SetMove(int fromBaseCode, int toBaseCode, DateTime startDate, DateTime finishDate)
|
||||
{
|
||||
using (var bi = new ManagementBI())
|
||||
bi.SetMove(fromBaseCode, toBaseCode, startDate, finishDate);
|
||||
}
|
||||
|
||||
private void btnProcess_Click(object sender, EventArgs e)
|
||||
{
|
||||
btnProcess.Enabled = false;
|
||||
var startDate = dtpStartDate.Value.Date.AddHours(7);
|
||||
var finishDate = dtpFinishDate.Value.Date.AddDays(1).AddHours(7);
|
||||
foreach (var item in comboBoxes)
|
||||
{
|
||||
var fromBaseCode = (int) item.Tag;
|
||||
var toBaseCode = (int) item.SelectedValue;
|
||||
if (fromBaseCode == toBaseCode)
|
||||
continue;
|
||||
Text = GetName(fromBaseCode) + " to " + GetName(toBaseCode);
|
||||
MessageBox.Show(Text);
|
||||
SetMove(fromBaseCode, toBaseCode, startDate , finishDate);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
119
Tanshu.Accounts.PointOfSale/Management/MoveForm.designer.cs
generated
Normal file
119
Tanshu.Accounts.PointOfSale/Management/MoveForm.designer.cs
generated
Normal file
@ -0,0 +1,119 @@
|
||||
namespace Tanshu.Accounts.Management
|
||||
{
|
||||
partial class MoveForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.dtpStartDate = new System.Windows.Forms.DateTimePicker();
|
||||
this.flpProducts = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.btnGo = new System.Windows.Forms.Button();
|
||||
this.dtpFinishDate = new System.Windows.Forms.DateTimePicker();
|
||||
this.btnProcess = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// dtpStartDate
|
||||
//
|
||||
this.dtpStartDate.CustomFormat = "dd-MMM-yyyy";
|
||||
this.dtpStartDate.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.dtpStartDate.Location = new System.Drawing.Point(16, 15);
|
||||
this.dtpStartDate.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.dtpStartDate.Name = "dtpStartDate";
|
||||
this.dtpStartDate.Size = new System.Drawing.Size(119, 22);
|
||||
this.dtpStartDate.TabIndex = 0;
|
||||
//
|
||||
// flpProducts
|
||||
//
|
||||
this.flpProducts.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.flpProducts.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
|
||||
this.flpProducts.Location = new System.Drawing.Point(16, 47);
|
||||
this.flpProducts.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.flpProducts.Name = "flpProducts";
|
||||
this.flpProducts.Size = new System.Drawing.Size(447, 390);
|
||||
this.flpProducts.TabIndex = 2;
|
||||
//
|
||||
// btnGo
|
||||
//
|
||||
this.btnGo.Location = new System.Drawing.Point(16, 445);
|
||||
this.btnGo.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnGo.Name = "btnGo";
|
||||
this.btnGo.Size = new System.Drawing.Size(200, 28);
|
||||
this.btnGo.TabIndex = 24;
|
||||
this.btnGo.Text = "Load";
|
||||
this.btnGo.UseVisualStyleBackColor = true;
|
||||
this.btnGo.Click += new System.EventHandler(this.btnGo_Click);
|
||||
//
|
||||
// dtpFinishDate
|
||||
//
|
||||
this.dtpFinishDate.CustomFormat = "dd-MMM-yyyy";
|
||||
this.dtpFinishDate.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.dtpFinishDate.Location = new System.Drawing.Point(143, 15);
|
||||
this.dtpFinishDate.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.dtpFinishDate.Name = "dtpFinishDate";
|
||||
this.dtpFinishDate.Size = new System.Drawing.Size(119, 22);
|
||||
this.dtpFinishDate.TabIndex = 1;
|
||||
//
|
||||
// btnProcess
|
||||
//
|
||||
this.btnProcess.Location = new System.Drawing.Point(263, 445);
|
||||
this.btnProcess.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnProcess.Name = "btnProcess";
|
||||
this.btnProcess.Size = new System.Drawing.Size(200, 28);
|
||||
this.btnProcess.TabIndex = 25;
|
||||
this.btnProcess.Text = "Process";
|
||||
this.btnProcess.UseVisualStyleBackColor = true;
|
||||
this.btnProcess.Click += new System.EventHandler(this.btnProcess_Click);
|
||||
//
|
||||
// MoveForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(479, 488);
|
||||
this.Controls.Add(this.btnProcess);
|
||||
this.Controls.Add(this.dtpFinishDate);
|
||||
this.Controls.Add(this.btnGo);
|
||||
this.Controls.Add(this.flpProducts);
|
||||
this.Controls.Add(this.dtpStartDate);
|
||||
this.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.MaximizeBox = false;
|
||||
this.Name = "MoveForm";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "Sale Analysis Form";
|
||||
this.Load += new System.EventHandler(this.Sale_Analysis_Form_Load);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.DateTimePicker dtpStartDate;
|
||||
private System.Windows.Forms.FlowLayoutPanel flpProducts;
|
||||
private System.Windows.Forms.Button btnGo;
|
||||
private System.Windows.Forms.DateTimePicker dtpFinishDate;
|
||||
private System.Windows.Forms.Button btnProcess;
|
||||
}
|
||||
}
|
120
Tanshu.Accounts.PointOfSale/Management/MoveForm.resx
Normal file
120
Tanshu.Accounts.PointOfSale/Management/MoveForm.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
129
Tanshu.Accounts.PointOfSale/Management/NcForm.cs
Normal file
129
Tanshu.Accounts.PointOfSale/Management/NcForm.cs
Normal file
@ -0,0 +1,129 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
using System.Windows.Forms;
|
||||
using Tanshu.Accounts.Repository;
|
||||
|
||||
namespace Tanshu.Accounts.Management
|
||||
{
|
||||
public partial class NcForm : Form
|
||||
{
|
||||
private IList<CheckBox> checkBoxes;
|
||||
private IDictionary<int, string> list;
|
||||
public NcForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void Sale_Analysis_Form_Load(object sender, EventArgs e)
|
||||
{
|
||||
dtpStartDate.Value = DateTime.Today;
|
||||
dtpFinishDate.Value = DateTime.Today;
|
||||
}
|
||||
|
||||
private void btnGo_Click(object sender, EventArgs e)
|
||||
{
|
||||
checkBoxes = new List<CheckBox>();
|
||||
var startDate = dtpStartDate.Value.Date.AddHours(7);
|
||||
var finishDate = dtpFinishDate.Value.Date.AddDays(1).AddHours(7);
|
||||
var details = GetNc(startDate, finishDate);
|
||||
foreach (var detail in details)
|
||||
{
|
||||
var item = (object[])detail;
|
||||
var text = GetName((int)item[0]) + " ---> " + ((decimal)item[1]).ToString();
|
||||
|
||||
var label = new Label()
|
||||
{
|
||||
Name = "label" + ((int)item[0]).ToString(CultureInfo.InvariantCulture),
|
||||
AutoSize = true,
|
||||
Text = text
|
||||
};
|
||||
flpProducts.Controls.Add(label);
|
||||
var checkBox = GetBox((int)item[0]);
|
||||
checkBoxes.Add(checkBox);
|
||||
flpProducts.Controls.Add(checkBox);
|
||||
|
||||
}
|
||||
}
|
||||
private ComboBox GetBox(int code)
|
||||
{
|
||||
var checkBox = new CheckBox()
|
||||
{
|
||||
Name = "comboBox" + (code).ToString(CultureInfo.InvariantCulture),
|
||||
Width = 400,
|
||||
Height = 20,
|
||||
Tag = code,
|
||||
DisplayMember = "Value",
|
||||
ValueMember = "Key",
|
||||
DropDownStyle = ComboBoxStyle.DropDownList,
|
||||
DataSource = new BindingSource(list, null)
|
||||
};
|
||||
//foreach (var item in list)
|
||||
// comboBox.Items.Add(new { Code = item.Key, Name = item.Value });
|
||||
//MessageBox.Show(code.ToString());
|
||||
//comboBox.SelectedIndex = code - 1;
|
||||
comboBox.SelectedValue = code;
|
||||
return comboBox;
|
||||
}
|
||||
private static string GetName(int code)
|
||||
{
|
||||
switch (code)
|
||||
{
|
||||
case 1:
|
||||
return "1 - Dark";
|
||||
case 2:
|
||||
return "2 - Wheat";
|
||||
case 3:
|
||||
return "3 - Premium";
|
||||
case 4:
|
||||
return "4 - Light";
|
||||
case 5:
|
||||
return "5 - Dragon";
|
||||
case 6:
|
||||
return "6 - Festival";
|
||||
case 7:
|
||||
return "7 - Vanilla";
|
||||
case 8:
|
||||
return "8 - Strong";
|
||||
default:
|
||||
return "";
|
||||
}
|
||||
}
|
||||
private static decimal TryConvert(string amount)
|
||||
{
|
||||
decimal result = 0;
|
||||
decimal.TryParse(amount, out result);
|
||||
return result;
|
||||
}
|
||||
|
||||
private static IList GetNcable(DateTime startDate, DateTime finishDate)
|
||||
{
|
||||
using (var bi = new ManagementBI())
|
||||
return bi.GetNcable(startDate, finishDate);
|
||||
}
|
||||
private static void SetMove(int fromBaseCode, int toBaseCode, DateTime startDate, DateTime finishDate)
|
||||
{
|
||||
using (var bi = new ManagementBI())
|
||||
bi.SetMove(fromBaseCode, toBaseCode, startDate, finishDate);
|
||||
}
|
||||
|
||||
private void btnProcess_Click(object sender, EventArgs e)
|
||||
{
|
||||
btnProcess.Enabled = false;
|
||||
var startDate = dtpStartDate.Value.Date.AddHours(7);
|
||||
var finishDate = dtpFinishDate.Value.Date.AddDays(1).AddHours(7);
|
||||
foreach (var item in comboBoxes)
|
||||
{
|
||||
var fromBaseCode = (int) item.Tag;
|
||||
var toBaseCode = (int) item.SelectedValue;
|
||||
if (fromBaseCode == toBaseCode)
|
||||
continue;
|
||||
Text = GetName(fromBaseCode) + " to " + GetName(toBaseCode);
|
||||
MessageBox.Show(Text);
|
||||
SetMove(fromBaseCode, toBaseCode, startDate , finishDate);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
119
Tanshu.Accounts.PointOfSale/Management/NcForm.designer.cs
generated
Normal file
119
Tanshu.Accounts.PointOfSale/Management/NcForm.designer.cs
generated
Normal file
@ -0,0 +1,119 @@
|
||||
namespace Tanshu.Accounts.Management
|
||||
{
|
||||
partial class NcForm
|
||||
{
|
||||
/// <summary>
|
||||
/// Required designer variable.
|
||||
/// </summary>
|
||||
private System.ComponentModel.IContainer components = null;
|
||||
|
||||
/// <summary>
|
||||
/// Clean up any resources being used.
|
||||
/// </summary>
|
||||
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||
protected override void Dispose(bool disposing)
|
||||
{
|
||||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
base.Dispose(disposing);
|
||||
}
|
||||
|
||||
#region Windows Form Designer generated code
|
||||
|
||||
/// <summary>
|
||||
/// Required method for Designer support - do not modify
|
||||
/// the contents of this method with the code editor.
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.dtpStartDate = new System.Windows.Forms.DateTimePicker();
|
||||
this.flpProducts = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.btnGo = new System.Windows.Forms.Button();
|
||||
this.dtpFinishDate = new System.Windows.Forms.DateTimePicker();
|
||||
this.btnProcess = new System.Windows.Forms.Button();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// dtpStartDate
|
||||
//
|
||||
this.dtpStartDate.CustomFormat = "dd-MMM-yyyy";
|
||||
this.dtpStartDate.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.dtpStartDate.Location = new System.Drawing.Point(16, 15);
|
||||
this.dtpStartDate.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.dtpStartDate.Name = "dtpStartDate";
|
||||
this.dtpStartDate.Size = new System.Drawing.Size(119, 22);
|
||||
this.dtpStartDate.TabIndex = 0;
|
||||
//
|
||||
// flpProducts
|
||||
//
|
||||
this.flpProducts.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.flpProducts.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
|
||||
this.flpProducts.Location = new System.Drawing.Point(16, 47);
|
||||
this.flpProducts.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.flpProducts.Name = "flpProducts";
|
||||
this.flpProducts.Size = new System.Drawing.Size(447, 390);
|
||||
this.flpProducts.TabIndex = 2;
|
||||
//
|
||||
// btnGo
|
||||
//
|
||||
this.btnGo.Location = new System.Drawing.Point(16, 445);
|
||||
this.btnGo.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnGo.Name = "btnGo";
|
||||
this.btnGo.Size = new System.Drawing.Size(200, 28);
|
||||
this.btnGo.TabIndex = 24;
|
||||
this.btnGo.Text = "Load";
|
||||
this.btnGo.UseVisualStyleBackColor = true;
|
||||
this.btnGo.Click += new System.EventHandler(this.btnGo_Click);
|
||||
//
|
||||
// dtpFinishDate
|
||||
//
|
||||
this.dtpFinishDate.CustomFormat = "dd-MMM-yyyy";
|
||||
this.dtpFinishDate.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.dtpFinishDate.Location = new System.Drawing.Point(143, 15);
|
||||
this.dtpFinishDate.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.dtpFinishDate.Name = "dtpFinishDate";
|
||||
this.dtpFinishDate.Size = new System.Drawing.Size(119, 22);
|
||||
this.dtpFinishDate.TabIndex = 1;
|
||||
//
|
||||
// btnProcess
|
||||
//
|
||||
this.btnProcess.Location = new System.Drawing.Point(263, 445);
|
||||
this.btnProcess.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.btnProcess.Name = "btnProcess";
|
||||
this.btnProcess.Size = new System.Drawing.Size(200, 28);
|
||||
this.btnProcess.TabIndex = 25;
|
||||
this.btnProcess.Text = "Process";
|
||||
this.btnProcess.UseVisualStyleBackColor = true;
|
||||
this.btnProcess.Click += new System.EventHandler(this.btnProcess_Click);
|
||||
//
|
||||
// MoveForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(479, 488);
|
||||
this.Controls.Add(this.btnProcess);
|
||||
this.Controls.Add(this.dtpFinishDate);
|
||||
this.Controls.Add(this.btnGo);
|
||||
this.Controls.Add(this.flpProducts);
|
||||
this.Controls.Add(this.dtpStartDate);
|
||||
this.Margin = new System.Windows.Forms.Padding(4);
|
||||
this.MaximizeBox = false;
|
||||
this.Name = "MoveForm";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "Sale Analysis Form";
|
||||
this.Load += new System.EventHandler(this.Sale_Analysis_Form_Load);
|
||||
this.ResumeLayout(false);
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.DateTimePicker dtpStartDate;
|
||||
private System.Windows.Forms.FlowLayoutPanel flpProducts;
|
||||
private System.Windows.Forms.Button btnGo;
|
||||
private System.Windows.Forms.DateTimePicker dtpFinishDate;
|
||||
private System.Windows.Forms.Button btnProcess;
|
||||
}
|
||||
}
|
120
Tanshu.Accounts.PointOfSale/Management/NcForm.resx
Normal file
120
Tanshu.Accounts.PointOfSale/Management/NcForm.resx
Normal file
@ -0,0 +1,120 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<root>
|
||||
<!--
|
||||
Microsoft ResX Schema
|
||||
|
||||
Version 2.0
|
||||
|
||||
The primary goals of this format is to allow a simple XML format
|
||||
that is mostly human readable. The generation and parsing of the
|
||||
various data types are done through the TypeConverter classes
|
||||
associated with the data types.
|
||||
|
||||
Example:
|
||||
|
||||
... ado.net/XML headers & schema ...
|
||||
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||
<resheader name="version">2.0</resheader>
|
||||
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||
</data>
|
||||
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||
<comment>This is a comment</comment>
|
||||
</data>
|
||||
|
||||
There are any number of "resheader" rows that contain simple
|
||||
name/value pairs.
|
||||
|
||||
Each data row contains a name, and value. The row also contains a
|
||||
type or mimetype. Type corresponds to a .NET class that support
|
||||
text/value conversion through the TypeConverter architecture.
|
||||
Classes that don't support this are serialized and stored with the
|
||||
mimetype set.
|
||||
|
||||
The mimetype is used for serialized objects, and tells the
|
||||
ResXResourceReader how to depersist the object. This is currently not
|
||||
extensible. For a given mimetype the value must be set accordingly:
|
||||
|
||||
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||
that the ResXResourceWriter will generate, however the reader can
|
||||
read any of the formats listed below.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.binary.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.soap.base64
|
||||
value : The object must be serialized with
|
||||
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||
: and then encoded with base64 encoding.
|
||||
|
||||
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||
value : The object must be serialized into a byte array
|
||||
: using a System.ComponentModel.TypeConverter
|
||||
: and then encoded with base64 encoding.
|
||||
-->
|
||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||
<xsd:element name="root" msdata:IsDataSet="true">
|
||||
<xsd:complexType>
|
||||
<xsd:choice maxOccurs="unbounded">
|
||||
<xsd:element name="metadata">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||
<xsd:attribute name="type" type="xsd:string" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="assembly">
|
||||
<xsd:complexType>
|
||||
<xsd:attribute name="alias" type="xsd:string" />
|
||||
<xsd:attribute name="name" type="xsd:string" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="data">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||
<xsd:attribute ref="xml:space" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
<xsd:element name="resheader">
|
||||
<xsd:complexType>
|
||||
<xsd:sequence>
|
||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||
</xsd:sequence>
|
||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:choice>
|
||||
</xsd:complexType>
|
||||
</xsd:element>
|
||||
</xsd:schema>
|
||||
<resheader name="resmimetype">
|
||||
<value>text/microsoft-resx</value>
|
||||
</resheader>
|
||||
<resheader name="version">
|
||||
<value>2.0</value>
|
||||
</resheader>
|
||||
<resheader name="reader">
|
||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
<resheader name="writer">
|
||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||
</resheader>
|
||||
</root>
|
@ -9,63 +9,106 @@ namespace Tanshu.Accounts.Management
|
||||
{
|
||||
public partial class QuantityForm : Form
|
||||
{
|
||||
private IList<TextBox> textBoxes;
|
||||
public QuantityForm()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
|
||||
private void ShowStatement()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
private void Sale_Analysis_Form_Load(object sender, EventArgs e)
|
||||
{
|
||||
dtpStart.Value = DateTime.Today;
|
||||
dtpFinish.Value = DateTime.Today;
|
||||
dtpDate.Value = DateTime.Today;
|
||||
|
||||
textBoxes = new List<TextBox>();
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
var text = "";
|
||||
switch (i)
|
||||
{
|
||||
case 0:
|
||||
text = "1 - Dark";
|
||||
break;
|
||||
case 1:
|
||||
text = "2 - Wheat";
|
||||
break;
|
||||
case 2:
|
||||
text = "3 - Premium";
|
||||
break;
|
||||
case 3:
|
||||
text = "4 - Light";
|
||||
break;
|
||||
case 4:
|
||||
text = "5 - Dragon";
|
||||
break;
|
||||
case 5:
|
||||
text = "6 - Festival";
|
||||
break;
|
||||
case 6:
|
||||
text = "7 - Vanilla";
|
||||
break;
|
||||
case 7:
|
||||
text = "8 - Strong";
|
||||
break;
|
||||
}
|
||||
var label = new Label()
|
||||
{
|
||||
Name = "label" + (i + 1).ToString(CultureInfo.InvariantCulture),
|
||||
AutoSize = true,
|
||||
Text = text
|
||||
};
|
||||
flpProducts.Controls.Add(label);
|
||||
var textBox = new TextBox()
|
||||
{
|
||||
Name = "textBox" + (i + 1).ToString(CultureInfo.InvariantCulture),
|
||||
Width = 400,
|
||||
Height = 22,
|
||||
Tag = new object[] { (i + 1), text }
|
||||
};
|
||||
textBoxes.Add(textBox);
|
||||
flpProducts.Controls.Add(textBox);
|
||||
}
|
||||
}
|
||||
|
||||
private void btnGo_Click(object sender, EventArgs e)
|
||||
{
|
||||
int baseCode = 0;
|
||||
if (rbLight.Checked)
|
||||
foreach (var textBox in textBoxes)
|
||||
{
|
||||
baseCode = 1;
|
||||
}
|
||||
else if (rbPremium.Checked)
|
||||
{
|
||||
baseCode = 2;
|
||||
}
|
||||
else if (rbWheat.Checked)
|
||||
{
|
||||
baseCode = 3;
|
||||
}
|
||||
else if (rbDark.Checked)
|
||||
{
|
||||
baseCode = 4;
|
||||
}
|
||||
else if (rbFestival.Checked)
|
||||
{
|
||||
baseCode = 5;
|
||||
}
|
||||
dtpStart.Value = dtpStart.Value.Date.AddHours(7);
|
||||
dtpFinish.Value = dtpFinish.Value.Date.AddDays(1).AddHours(7);
|
||||
var quantity = GetQuantity(baseCode);
|
||||
var newQuantity = Convert.ToDecimal(txtQuantity.Text);
|
||||
if (MessageBox.Show(quantity.ToString(), "Quantity of Beer", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2) == DialogResult.Yes && quantity > newQuantity)
|
||||
{
|
||||
MessageBox.Show(SetQuantity(baseCode, newQuantity).ToString());
|
||||
var startDate = dtpDate.Value.Date.AddHours(7);
|
||||
var finishDate = startDate.AddDays(1);
|
||||
|
||||
var baseCode = (int)(((object[])textBox.Tag)[0]);
|
||||
var text = (string)(((object[])textBox.Tag)[1]);
|
||||
foreach (var item in textBox.Text.Split(','))
|
||||
{
|
||||
var newQuantity = TryConvert(item);
|
||||
var quantity = GetQuantity(baseCode, startDate, finishDate);
|
||||
|
||||
if (MessageBox.Show(text + " " + startDate.ToString("dd-MMM-yyyy") + " " + quantity.ToString(), "Quantity of Beer", MessageBoxButtons.YesNo,
|
||||
MessageBoxIcon.Information, MessageBoxDefaultButton.Button2) == DialogResult.Yes &&
|
||||
quantity > newQuantity && newQuantity > 0)
|
||||
{
|
||||
MessageBox.Show(SetQuantity(baseCode, newQuantity, startDate, finishDate).ToString());
|
||||
}
|
||||
startDate = startDate.AddDays(1);
|
||||
finishDate = finishDate.AddDays(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
private decimal GetQuantity(int baseCode)
|
||||
private decimal TryConvert(string amount)
|
||||
{
|
||||
using (var bi = new ManagementBI())
|
||||
return bi.GetQuantity(baseCode, dtpStart.Value, dtpFinish.Value);
|
||||
decimal result = 0;
|
||||
decimal.TryParse(amount, out result);
|
||||
return result;
|
||||
}
|
||||
private decimal SetQuantity(int baseCode, decimal quantity)
|
||||
private decimal GetQuantity(int baseCode, DateTime startDate, DateTime finishDate)
|
||||
{
|
||||
using (var bi = new ManagementBI())
|
||||
return bi.SetQuantity(baseCode, quantity, dtpStart.Value, dtpFinish.Value);
|
||||
return bi.GetQuantity(baseCode, startDate, finishDate);
|
||||
}
|
||||
private decimal SetQuantity(int baseCode, decimal quantity, DateTime startDate, DateTime finishDate)
|
||||
{
|
||||
using (var bi = new ManagementBI())
|
||||
return bi.SetQuantity(baseCode, quantity, startDate, finishDate);
|
||||
}
|
||||
|
||||
private void btnGetClipboard_Click(object sender, EventArgs e)
|
||||
@ -102,7 +145,7 @@ namespace Tanshu.Accounts.Management
|
||||
startDate = startDate.AddHours(7);
|
||||
if (!int.TryParse(data[1], out baseCode))
|
||||
continue;
|
||||
if (baseCode <=0)
|
||||
if (baseCode <= 0)
|
||||
continue;
|
||||
if (!decimal.TryParse(data[2], out quantity))
|
||||
continue;
|
||||
|
@ -28,182 +28,65 @@
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
this.dtpFinish = new System.Windows.Forms.DateTimePicker();
|
||||
this.dtpStart = new System.Windows.Forms.DateTimePicker();
|
||||
this.label10 = new System.Windows.Forms.Label();
|
||||
this.dtpDate = new System.Windows.Forms.DateTimePicker();
|
||||
this.flpProducts = new System.Windows.Forms.FlowLayoutPanel();
|
||||
this.rbLight = new System.Windows.Forms.RadioButton();
|
||||
this.rbPremium = new System.Windows.Forms.RadioButton();
|
||||
this.rbWheat = new System.Windows.Forms.RadioButton();
|
||||
this.rbDark = new System.Windows.Forms.RadioButton();
|
||||
this.rbFestival = new System.Windows.Forms.RadioButton();
|
||||
this.txtQuantity = new System.Windows.Forms.TextBox();
|
||||
this.btnGo = new System.Windows.Forms.Button();
|
||||
this.btnGetClipboard = new System.Windows.Forms.Button();
|
||||
this.flpProducts.SuspendLayout();
|
||||
this.SuspendLayout();
|
||||
//
|
||||
// dtpFinish
|
||||
// dtpDate
|
||||
//
|
||||
this.dtpFinish.CustomFormat = "dd-MMM-yyyy";
|
||||
this.dtpFinish.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.dtpFinish.Location = new System.Drawing.Point(168, 12);
|
||||
this.dtpFinish.Name = "dtpFinish";
|
||||
this.dtpFinish.Size = new System.Drawing.Size(90, 20);
|
||||
this.dtpFinish.TabIndex = 21;
|
||||
//
|
||||
// dtpStart
|
||||
//
|
||||
this.dtpStart.CustomFormat = "dd-MMM-yyyy";
|
||||
this.dtpStart.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.dtpStart.Location = new System.Drawing.Point(12, 12);
|
||||
this.dtpStart.Name = "dtpStart";
|
||||
this.dtpStart.Size = new System.Drawing.Size(90, 20);
|
||||
this.dtpStart.TabIndex = 20;
|
||||
//
|
||||
// label10
|
||||
//
|
||||
this.label10.AutoSize = true;
|
||||
this.label10.Location = new System.Drawing.Point(108, 16);
|
||||
this.label10.Name = "label10";
|
||||
this.label10.Size = new System.Drawing.Size(54, 13);
|
||||
this.label10.TabIndex = 22;
|
||||
this.label10.Text = "<- Date ->";
|
||||
this.dtpDate.CustomFormat = "dd-MMM-yyyy";
|
||||
this.dtpDate.Format = System.Windows.Forms.DateTimePickerFormat.Custom;
|
||||
this.dtpDate.Location = new System.Drawing.Point(16, 15);
|
||||
this.dtpDate.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.dtpDate.Name = "dtpDate";
|
||||
this.dtpDate.Size = new System.Drawing.Size(119, 22);
|
||||
this.dtpDate.TabIndex = 20;
|
||||
//
|
||||
// flpProducts
|
||||
//
|
||||
this.flpProducts.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
|
||||
| System.Windows.Forms.AnchorStyles.Right)));
|
||||
this.flpProducts.Controls.Add(this.rbLight);
|
||||
this.flpProducts.Controls.Add(this.rbPremium);
|
||||
this.flpProducts.Controls.Add(this.rbWheat);
|
||||
this.flpProducts.Controls.Add(this.rbDark);
|
||||
this.flpProducts.Controls.Add(this.rbFestival);
|
||||
this.flpProducts.FlowDirection = System.Windows.Forms.FlowDirection.TopDown;
|
||||
this.flpProducts.Location = new System.Drawing.Point(12, 38);
|
||||
this.flpProducts.Location = new System.Drawing.Point(16, 47);
|
||||
this.flpProducts.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.flpProducts.Name = "flpProducts";
|
||||
this.flpProducts.Size = new System.Drawing.Size(335, 137);
|
||||
this.flpProducts.Size = new System.Drawing.Size(447, 390);
|
||||
this.flpProducts.TabIndex = 23;
|
||||
//
|
||||
// rbLight
|
||||
//
|
||||
this.rbLight.AutoSize = true;
|
||||
this.rbLight.Location = new System.Drawing.Point(3, 3);
|
||||
this.rbLight.Name = "rbLight";
|
||||
this.rbLight.Size = new System.Drawing.Size(48, 17);
|
||||
this.rbLight.TabIndex = 0;
|
||||
this.rbLight.TabStop = true;
|
||||
this.rbLight.Text = "Light";
|
||||
this.rbLight.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// rbPremium
|
||||
//
|
||||
this.rbPremium.AutoSize = true;
|
||||
this.rbPremium.Location = new System.Drawing.Point(3, 26);
|
||||
this.rbPremium.Name = "rbPremium";
|
||||
this.rbPremium.Size = new System.Drawing.Size(65, 17);
|
||||
this.rbPremium.TabIndex = 1;
|
||||
this.rbPremium.TabStop = true;
|
||||
this.rbPremium.Text = "Premium";
|
||||
this.rbPremium.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// rbWheat
|
||||
//
|
||||
this.rbWheat.AutoSize = true;
|
||||
this.rbWheat.Location = new System.Drawing.Point(3, 49);
|
||||
this.rbWheat.Name = "rbWheat";
|
||||
this.rbWheat.Size = new System.Drawing.Size(57, 17);
|
||||
this.rbWheat.TabIndex = 2;
|
||||
this.rbWheat.TabStop = true;
|
||||
this.rbWheat.Text = "Wheat";
|
||||
this.rbWheat.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// rbDark
|
||||
//
|
||||
this.rbDark.AutoSize = true;
|
||||
this.rbDark.Location = new System.Drawing.Point(3, 72);
|
||||
this.rbDark.Name = "rbDark";
|
||||
this.rbDark.Size = new System.Drawing.Size(48, 17);
|
||||
this.rbDark.TabIndex = 3;
|
||||
this.rbDark.TabStop = true;
|
||||
this.rbDark.Text = "Dark";
|
||||
this.rbDark.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// rbFestival
|
||||
//
|
||||
this.rbFestival.AutoSize = true;
|
||||
this.rbFestival.Location = new System.Drawing.Point(3, 95);
|
||||
this.rbFestival.Name = "rbFestival";
|
||||
this.rbFestival.Size = new System.Drawing.Size(61, 17);
|
||||
this.rbFestival.TabIndex = 4;
|
||||
this.rbFestival.TabStop = true;
|
||||
this.rbFestival.Text = "Festival";
|
||||
this.rbFestival.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// txtQuantity
|
||||
//
|
||||
this.txtQuantity.Location = new System.Drawing.Point(12, 181);
|
||||
this.txtQuantity.Name = "txtQuantity";
|
||||
this.txtQuantity.Size = new System.Drawing.Size(335, 20);
|
||||
this.txtQuantity.TabIndex = 5;
|
||||
//
|
||||
// btnGo
|
||||
//
|
||||
this.btnGo.Location = new System.Drawing.Point(12, 207);
|
||||
this.btnGo.Location = new System.Drawing.Point(16, 445);
|
||||
this.btnGo.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.btnGo.Name = "btnGo";
|
||||
this.btnGo.Size = new System.Drawing.Size(150, 23);
|
||||
this.btnGo.Size = new System.Drawing.Size(200, 28);
|
||||
this.btnGo.TabIndex = 24;
|
||||
this.btnGo.Text = "Go";
|
||||
this.btnGo.UseVisualStyleBackColor = true;
|
||||
this.btnGo.Click += new System.EventHandler(this.btnGo_Click);
|
||||
//
|
||||
// btnGetClipboard
|
||||
//
|
||||
this.btnGetClipboard.Location = new System.Drawing.Point(168, 207);
|
||||
this.btnGetClipboard.Name = "btnGetClipboard";
|
||||
this.btnGetClipboard.Size = new System.Drawing.Size(179, 23);
|
||||
this.btnGetClipboard.TabIndex = 25;
|
||||
this.btnGetClipboard.Text = "Go Clipboard";
|
||||
this.btnGetClipboard.UseVisualStyleBackColor = true;
|
||||
this.btnGetClipboard.Click += new System.EventHandler(this.btnGetClipboard_Click);
|
||||
//
|
||||
// QuantityForm
|
||||
//
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
|
||||
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F);
|
||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||
this.ClientSize = new System.Drawing.Size(359, 242);
|
||||
this.Controls.Add(this.btnGetClipboard);
|
||||
this.ClientSize = new System.Drawing.Size(479, 488);
|
||||
this.Controls.Add(this.btnGo);
|
||||
this.Controls.Add(this.flpProducts);
|
||||
this.Controls.Add(this.dtpFinish);
|
||||
this.Controls.Add(this.dtpStart);
|
||||
this.Controls.Add(this.label10);
|
||||
this.Controls.Add(this.txtQuantity);
|
||||
this.Controls.Add(this.dtpDate);
|
||||
this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
|
||||
this.MaximizeBox = false;
|
||||
this.Name = "QuantityForm";
|
||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
|
||||
this.Text = "Sale Analysis Form";
|
||||
this.Load += new System.EventHandler(this.Sale_Analysis_Form_Load);
|
||||
this.flpProducts.ResumeLayout(false);
|
||||
this.flpProducts.PerformLayout();
|
||||
this.ResumeLayout(false);
|
||||
this.PerformLayout();
|
||||
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
private System.Windows.Forms.DateTimePicker dtpFinish;
|
||||
private System.Windows.Forms.DateTimePicker dtpStart;
|
||||
private System.Windows.Forms.Label label10;
|
||||
private System.Windows.Forms.DateTimePicker dtpDate;
|
||||
private System.Windows.Forms.FlowLayoutPanel flpProducts;
|
||||
private System.Windows.Forms.RadioButton rbLight;
|
||||
private System.Windows.Forms.RadioButton rbPremium;
|
||||
private System.Windows.Forms.RadioButton rbWheat;
|
||||
private System.Windows.Forms.RadioButton rbDark;
|
||||
private System.Windows.Forms.RadioButton rbFestival;
|
||||
private System.Windows.Forms.TextBox txtQuantity;
|
||||
private System.Windows.Forms.Button btnGo;
|
||||
private System.Windows.Forms.Button btnGetClipboard;
|
||||
}
|
||||
}
|
@ -1,14 +1,11 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace Tanshu.Accounts.PointOfSale
|
||||
{
|
||||
public class BlockTimer : IDisposable
|
||||
{
|
||||
private string _description;
|
||||
private long _start;
|
||||
private readonly string _description;
|
||||
private readonly long _start;
|
||||
|
||||
public BlockTimer(string description)
|
||||
{
|
||||
@ -18,7 +15,7 @@ namespace Tanshu.Accounts.PointOfSale
|
||||
|
||||
public void Dispose()
|
||||
{
|
||||
long totalTime = DateTime.Now.Ticks - _start;
|
||||
var totalTime = DateTime.Now.Ticks - _start;
|
||||
Console.WriteLine(_description);
|
||||
Console.Write(" - Total Execution Time: ");
|
||||
Console.Write(new TimeSpan(totalTime).TotalMilliseconds.ToString());
|
||||
|
@ -118,6 +118,7 @@
|
||||
<Compile Include="Authentication\KeyboardLogin.cs" />
|
||||
<Compile Include="Authentication\ILogin.cs" />
|
||||
<Compile Include="Controllers\BillController.cs" />
|
||||
<Compile Include="Controllers\BillDict.cs" />
|
||||
<Compile Include="Controllers\ISaleForm.cs" />
|
||||
<Compile Include="CurrencyCounter.cs">
|
||||
<SubType>Form</SubType>
|
||||
@ -125,6 +126,24 @@
|
||||
<Compile Include="CurrencyCounter.Designer.cs">
|
||||
<DependentUpon>CurrencyCounter.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Management\AmountForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Management\AmountForm.designer.cs">
|
||||
<DependentUpon>AmountForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Management\MoveForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Management\MoveForm.designer.cs">
|
||||
<DependentUpon>MoveForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Management\FoodForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Management\FoodForm.designer.cs">
|
||||
<DependentUpon>FoodForm.cs</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Management\QuantityForm.cs">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
@ -292,6 +311,15 @@
|
||||
<EmbeddedResource Include="CurrencyCounter.resx">
|
||||
<DependentUpon>CurrencyCounter.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Management\AmountForm.resx">
|
||||
<DependentUpon>AmountForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Management\MoveForm.resx">
|
||||
<DependentUpon>MoveForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Management\FoodForm.resx">
|
||||
<DependentUpon>FoodForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Management\QuantityForm.resx">
|
||||
<DependentUpon>QuantityForm.cs</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
|
@ -1,12 +1,9 @@
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Data.SqlClient;
|
||||
using NHibernate;
|
||||
using Tanshu.Accounts.Contracts;
|
||||
using Tanshu.Accounts.Entities;
|
||||
using Tanshu.Data.DAO;
|
||||
|
||||
namespace Tanshu.Accounts.Repository
|
||||
{
|
||||
@ -28,6 +25,162 @@ namespace Tanshu.Accounts.Repository
|
||||
: base(session, beginTransaction)
|
||||
{ }
|
||||
|
||||
public decimal GetFood(int vatID, DateTime startDate, DateTime finishDate)
|
||||
{
|
||||
const string query = @"
|
||||
select sum(i.Quantity * i.Price * (1 - i.Discount) * (1 + case when i.IsScTaxable then i.ServiceCharge else 0 end)) as Amount
|
||||
from Voucher v
|
||||
inner join v.Kots k
|
||||
inner join k.Inventories i
|
||||
inner join i.Product p
|
||||
where v.Date >= :startDate and v.Date <= :finishDate and p.Vat.TaxID = :vatID and v.Void = false and v.VoucherType not in (:nc, :staff)
|
||||
";
|
||||
var qty = Session
|
||||
.CreateQuery(query)
|
||||
.SetParameter("startDate", startDate)
|
||||
.SetParameter("finishDate", finishDate)
|
||||
.SetParameter("vatID", vatID)
|
||||
.SetParameter("nc", VoucherType.NoCharge)
|
||||
.SetParameter("staff", VoucherType.Staff)
|
||||
.UniqueResult();
|
||||
return qty == null ? 0 : (decimal)qty;
|
||||
}
|
||||
public decimal SetFood(int vatID, decimal amount, DateTime startDate, DateTime finishDate)
|
||||
{
|
||||
var list = Randomize(new VoucherBI().List(x => x.Date >= startDate && x.Date <= finishDate && x.Void == false && x.VoucherType != VoucherType.NoCharge && x.VoucherType != VoucherType.Staff));
|
||||
var left = GetFood(vatID, startDate, finishDate) - amount;
|
||||
foreach (var item in list)
|
||||
{
|
||||
if (left <= 0)
|
||||
break;
|
||||
foreach (var kot in item.Kots)
|
||||
{
|
||||
if (left <= 0)
|
||||
break;
|
||||
foreach (var inventory in kot.Inventories)
|
||||
{
|
||||
if (left <= 0)
|
||||
break;
|
||||
if (inventory.Product.Vat.TaxID == vatID)
|
||||
{
|
||||
using (var bi = new InventoryBI())
|
||||
{
|
||||
var inventoryAmount = inventory.Quantity * inventory.Price * (1 - inventory.Discount) *
|
||||
(1 + (inventory.IsScTaxable ? inventory.ServiceCharge : 0));
|
||||
if (inventoryAmount > left)
|
||||
{
|
||||
var newQuantity = inventory.Quantity * (inventoryAmount - left) / inventoryAmount;
|
||||
var i = bi.Get(x => x.InventoryID == inventory.InventoryID);
|
||||
i.Quantity = newQuantity;
|
||||
bi.Update(i);
|
||||
left = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
left -= inventoryAmount;
|
||||
bi.Delete(x => x.InventoryID == inventory.InventoryID);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return GetFood(vatID, startDate, finishDate);
|
||||
}
|
||||
|
||||
public decimal SetAmount(int vatID, decimal amount, DateTime startDate, DateTime finishDate)
|
||||
{
|
||||
var random = new Random();
|
||||
var list = Randomize(new VoucherBI().List(x => x.Date >= startDate && x.Date <= finishDate && x.Void == false && x.VoucherType != VoucherType.NoCharge && x.VoucherType != VoucherType.Staff));
|
||||
var left = GetFood(vatID, startDate, finishDate) - amount;
|
||||
foreach (var item in list)
|
||||
{
|
||||
if (left <= 0)
|
||||
break;
|
||||
var discount = Convert.ToDecimal(random.Next(20, 70));
|
||||
discount -= discount % 5;
|
||||
discount = discount / 100;
|
||||
foreach (var kot in item.Kots)
|
||||
{
|
||||
if (left <= 0)
|
||||
break;
|
||||
foreach (var inventory in kot.Inventories)
|
||||
{
|
||||
if (left <= 0)
|
||||
break;
|
||||
if (inventory.Product.Vat.TaxID == vatID)
|
||||
{
|
||||
using (var bi = new InventoryBI())
|
||||
{
|
||||
if (discount < inventory.Discount)
|
||||
continue;
|
||||
var inventoryAmount = inventory.Quantity * inventory.Price * (1 - inventory.Discount) *
|
||||
(1 + (inventory.IsScTaxable ? inventory.ServiceCharge : 0));
|
||||
var reduction = inventory.Quantity * inventory.Price * (discount - inventory.Discount) *
|
||||
(1 + (inventory.IsScTaxable ? inventory.ServiceCharge : 0));
|
||||
if (reduction > left)
|
||||
{
|
||||
var newDiscount = (1 - inventory.Discount) * left / inventoryAmount;
|
||||
var i = bi.Get(x => x.InventoryID == inventory.InventoryID);
|
||||
i.Discount = newDiscount;
|
||||
bi.Update(i);
|
||||
left = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
var i = bi.Get(x => x.InventoryID == inventory.InventoryID);
|
||||
i.Discount = discount;
|
||||
bi.Update(i);
|
||||
left -= reduction;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return GetFood(vatID, startDate, finishDate);
|
||||
}
|
||||
|
||||
public IList GetNcable(DateTime startDate, DateTime finishDate)
|
||||
{
|
||||
const string query = @"
|
||||
select v.VoucherID, sum(case when p.TaxID = 1 then i.ServiceCharge else 0 end) , sum(i.Quantity * p.Quantity) as Quantity
|
||||
from Voucher v
|
||||
inner join v.Kots k
|
||||
inner join k.Inventories i
|
||||
inner join i.Product p
|
||||
where v.Date >= :startDate and v.Date <= :finishDate and v.Void = false
|
||||
group by p.BaseCode
|
||||
order by p.BaseCode
|
||||
";
|
||||
var list = Session
|
||||
.CreateQuery(query)
|
||||
.SetParameter("startDate", startDate)
|
||||
.SetParameter("finishDate", finishDate)
|
||||
.List();
|
||||
return list;
|
||||
}
|
||||
|
||||
public IList GetMove(DateTime startDate, DateTime finishDate)
|
||||
{
|
||||
const string query = @"
|
||||
select p.BaseCode, sum(i.Quantity * p.Quantity) as Quantity
|
||||
from Voucher v
|
||||
inner join v.Kots k
|
||||
inner join k.Inventories i
|
||||
inner join i.Product p
|
||||
where v.Date >= :startDate and v.Date <= :finishDate and v.Void = false and p.BaseCode != 0
|
||||
group by p.BaseCode
|
||||
order by p.BaseCode
|
||||
";
|
||||
var list = Session
|
||||
.CreateQuery(query)
|
||||
.SetParameter("startDate", startDate)
|
||||
.SetParameter("finishDate", finishDate)
|
||||
.List();
|
||||
return list;
|
||||
}
|
||||
|
||||
public decimal GetQuantity(int baseCode, DateTime startDate, DateTime finishDate)
|
||||
{
|
||||
const string query = @"
|
||||
@ -49,34 +202,36 @@ where v.Date >= :startDate and v.Date <= :finishDate and v.Void = false and p.Ba
|
||||
public decimal SetQuantity(int baseCode, decimal quantity, DateTime startDate, DateTime finishDate)
|
||||
{
|
||||
var list = Randomize(new VoucherBI().List(x => x.Date >= startDate && x.Date <= finishDate && x.Void == false));
|
||||
var current = GetQuantity(baseCode, startDate, finishDate);
|
||||
var left = GetQuantity(baseCode, startDate, finishDate) - quantity;
|
||||
foreach (var item in list)
|
||||
{
|
||||
if (current <= quantity)
|
||||
continue;
|
||||
if (left <= 0)
|
||||
break;
|
||||
foreach (var kot in item.Kots)
|
||||
{
|
||||
if (current <= quantity)
|
||||
continue;
|
||||
if (left <= 0)
|
||||
break;
|
||||
foreach (var inventory in kot.Inventories)
|
||||
{
|
||||
if (current <= quantity)
|
||||
continue;
|
||||
if (left <= 0)
|
||||
break;
|
||||
if (inventory.Product.BaseCode == baseCode)
|
||||
{
|
||||
using (var bi = new InventoryBI())
|
||||
{
|
||||
if (inventory.Quantity * inventory.Product.Quantity > current - quantity)
|
||||
var inventoryQuantity = inventory.Quantity * inventory.Product.Quantity;
|
||||
|
||||
if (inventoryQuantity > left)
|
||||
{
|
||||
current = quantity;
|
||||
inventory.Quantity = (current - quantity) / inventory.Product.Quantity;
|
||||
var newQuantity = inventory.Quantity * (inventoryQuantity - left) / inventoryQuantity;
|
||||
var i = bi.Get(x => x.InventoryID == inventory.InventoryID);
|
||||
i.Quantity = current - quantity;
|
||||
i.Quantity = newQuantity;
|
||||
bi.Update(i);
|
||||
left = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
current -= inventory.Quantity * inventory.Product.Quantity;
|
||||
left -= inventoryQuantity;
|
||||
bi.Delete(x => x.InventoryID == inventory.InventoryID);
|
||||
}
|
||||
}
|
||||
@ -86,75 +241,103 @@ where v.Date >= :startDate and v.Date <= :finishDate and v.Void = false and p.Ba
|
||||
}
|
||||
return GetQuantity(baseCode, startDate, finishDate);
|
||||
}
|
||||
// public decimal GetBalance(decimal? tax, DateTime startDate, DateTime endDate)
|
||||
// {
|
||||
// GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType);
|
||||
// using (IConnectionDAO connection = factory.Connection)
|
||||
// {
|
||||
// using (IManagementDAO dao = factory.GetManagementDAO(startDate, endDate, connection))
|
||||
// {
|
||||
// return dao.GetBalance(tax);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// public List<Guid> GetUpdateBillList(decimal tax, bool voided, bool paid, bool creditCard, DateTime startDate, DateTime endDate)
|
||||
// {
|
||||
// GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType);
|
||||
// using (IConnectionDAO connection = factory.Connection)
|
||||
// {
|
||||
// using (IManagementDAO dao = factory.GetManagementDAO(startDate, endDate, connection))
|
||||
// {
|
||||
// return dao.GetUpdateBillList(tax, voided, paid, creditCard);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// public decimal Update(Guid voucherID, decimal tax, DateTime startDate, DateTime endDate)
|
||||
// {
|
||||
// GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType);
|
||||
// using (IConnectionDAO connection = factory.Connection)
|
||||
// {
|
||||
// using (IManagementDAO dao = factory.GetManagementDAO(startDate, endDate, connection))
|
||||
// {
|
||||
// return dao.Update(voucherID, tax);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
public void SetMove(int fromBaseCode, int toBaseCode, DateTime startDate, DateTime finishDate)
|
||||
{
|
||||
var list = Randomize(new VoucherBI().List(x => x.Date >= startDate && x.Date <= finishDate));
|
||||
using (var bi = new InventoryBI())
|
||||
{
|
||||
using (var pbi = new ProductBI())
|
||||
{
|
||||
foreach (var item in list)
|
||||
{
|
||||
foreach (var kot in item.Kots)
|
||||
{
|
||||
foreach (var inventory in kot.Inventories)
|
||||
{
|
||||
if (inventory.Product.BaseCode == fromBaseCode)
|
||||
{
|
||||
var i = bi.Get(x => x.InventoryID == inventory.InventoryID);
|
||||
i.Product = pbi.Get(x => x.ProductID == GetNewID(i.Product.ProductID, toBaseCode));
|
||||
GetNewID(i.InventoryID, toBaseCode);
|
||||
bi.Update(i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
private static int GetNewID(int code, int toBaseCode)
|
||||
{
|
||||
// Name Mug, Pit, H H
|
||||
// Dark 301, 305, 384 // BaseCode = 1
|
||||
// Wheat 300, 304, 383 // BaseCode = 2
|
||||
// Premium 299, 303, 382 // BaseCode = 3
|
||||
// Light 297, 302, 363 // BaseCode = 4
|
||||
// Dragon 677, 679, 678 // BaseCode = 5
|
||||
// Festival 409 // BaseCode = 6
|
||||
// Vanilla 408, 587 // BaseCode = 7
|
||||
// Strong 697, 708, 707 // BaseCode = 8
|
||||
if (code == 301 || code == 300 || code == 299 || code == 297 || code == 677 || code == 408 || code == 697)
|
||||
{
|
||||
if (toBaseCode == 1)
|
||||
return 301;
|
||||
if (toBaseCode == 2)
|
||||
return 300;
|
||||
if (toBaseCode == 3)
|
||||
return 299;
|
||||
if (toBaseCode == 4)
|
||||
return 297;
|
||||
if (toBaseCode == 5)
|
||||
return 677;
|
||||
if (toBaseCode == 6)
|
||||
return code;
|
||||
if (toBaseCode == 7)
|
||||
return 408;
|
||||
if (toBaseCode == 8)
|
||||
return 697;
|
||||
}
|
||||
if (code == 305 || code == 304 || code == 303 || code == 302 || code == 679 || code == 409 || code == 708)
|
||||
{
|
||||
if (toBaseCode == 1)
|
||||
return 305;
|
||||
if (toBaseCode == 2)
|
||||
return 304;
|
||||
if (toBaseCode == 3)
|
||||
return 303;
|
||||
if (toBaseCode == 4)
|
||||
return 302;
|
||||
if (toBaseCode == 5)
|
||||
return 679;
|
||||
if (toBaseCode == 6)
|
||||
return 409;
|
||||
if (toBaseCode == 7)
|
||||
return code;
|
||||
if (toBaseCode == 8)
|
||||
return 708;
|
||||
}
|
||||
if (code == 384 || code == 383 || code == 382 || code == 363 || code == 678 || code == 587 || code == 707)
|
||||
{
|
||||
if (toBaseCode == 1)
|
||||
return 384;
|
||||
if (toBaseCode == 2)
|
||||
return 383;
|
||||
if (toBaseCode == 3)
|
||||
return 382;
|
||||
if (toBaseCode == 4)
|
||||
return 363;
|
||||
if (toBaseCode == 5)
|
||||
return 678;
|
||||
if (toBaseCode == 6)
|
||||
return code;
|
||||
if (toBaseCode == 7)
|
||||
return 587;
|
||||
if (toBaseCode == 8)
|
||||
return 707;
|
||||
}
|
||||
|
||||
// public void Reorder(DateTime startDate, DateTime endDate, ShowProgessDelegate showProgressDelegate)
|
||||
// {
|
||||
// GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType);
|
||||
// using (IConnectionDAO connection = factory.Connection)
|
||||
// {
|
||||
// using (IManagementDAO dao = factory.GetManagementDAO(startDate, endDate, connection))
|
||||
// {
|
||||
// dao.Reorder(showProgressDelegate);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// public bool MergeData(DateTime startDate, DateTime endDate, string sourceDB, string targetDB)
|
||||
// {
|
||||
// GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType);
|
||||
// using (IConnectionDAO connection = factory.Connection)
|
||||
// {
|
||||
// using (IManagementDAO dao = factory.GetManagementDAO(startDate, endDate, connection))
|
||||
// {
|
||||
// return dao.MergeData(sourceDB, targetDB);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// public List<PendingBills> GetPaidBills(DateTime startDate, DateTime finishDate)
|
||||
// {
|
||||
// GetFactory factory = GetFactory.GetDAOFactory(Database.GetFactoryType);
|
||||
// using (IConnectionDAO connection = factory.Connection)
|
||||
// {
|
||||
// using (IManagementDAO dao = factory.GetManagementDAO(startDate, finishDate, connection))
|
||||
// {
|
||||
// return dao.GetPaidBills();
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
return code;
|
||||
}
|
||||
private static IList<T> Randomize<T>(IEnumerable<T> list)
|
||||
{
|
||||
var tList = list.ToArray();
|
||||
|
Loading…
x
Reference in New Issue
Block a user