Browse Source

一次均衡计划调整。

master
yibo 7 years ago
parent
commit
d6a600acd6
1 changed files with 142 additions and 29 deletions
  1. +142
    -29
      B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/SaleOutStoreBalance.cs

+ 142
- 29
B3ButcherManageToSale.Web/Pages/B3ButcherManageToSale/Overlays/SaleOutStoreBalance.cs View File

@ -68,8 +68,8 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays
private Label goodsNameShow, _difNumber, _adjustNumberLabel;
DFBoolRadioBox adjustType;
DFCheckBox avgAdjust;
VLayoutPanel panel1, panel2;
DFEditGrid _editGrid1, _editGrid2;
VLayoutPanel panel1, panel11, panel2;
DFEditGrid _editGrid1, _editGrid11, _editGrid2;
bool byLine
{
get
@ -142,8 +142,10 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays
foreach (var item in list.OrderByDescending(x => x.Number))
details.Add(item);
_editGrid1.DataBind();
_editGrid11.DataBind();
_editGrid2.DataBind();
panel1.Visible = byLine;
panel1.Visible = byLine && !avgAdjust.Checked;
panel11.Visible = byLine && avgAdjust.Checked;
panel2.Visible = !byLine;
avgAdjust.Visible = byLine;
};
@ -169,6 +171,7 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays
query.Columns.Add(DQSelectColumn.Field("SecondNumber", detail));
query.Columns.Add(DQSelectColumn.Field("Unit", detail));
query.Columns.Add(DQSelectColumn.Field("UnitNum", detail));
query.Columns.Add(DQSelectColumn.Field("DeliverGoodsLine_ID"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Domain_ID", DomainContext.Current.ID), DQCondition.EQ("BillState", .)));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ(detail, "SaleGoods_ID", goodsId), DQCondition.EQ("Store_ID", storeID)));
@ -189,6 +192,7 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays
item.Unit = (string)reader[6];
item.Number = (Money<decimal>?)reader[7];
item.SendNumber = item.Number.EToDecimal();
item.DeliverGoodsLine_ID = (long?)reader[8];
list.Add(item);
}
}
@ -253,6 +257,7 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays
details.Clear();
innerDetails.Clear();
_editGrid1.DataBind();
_editGrid11.DataBind();
_editGrid2.DataBind();
}
}
@ -321,18 +326,25 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays
avgAdjust = hPanel.Add(new DFCheckBox() { Text = "平均分配" });
avgAdjust.Style.Add("margin", "0px 20px");
avgAdjust.AutoPostBack = true;
avgAdjust.CheckedChanged += delegate
{
panel1.Visible = !avgAdjust.Checked;
panel11.Visible = !panel1.Visible;
_editGrid1.DataBind();
_editGrid11.DataBind();
};
hPanel.Add(new TSButton("更新报价数量", delegate { AdjustSaleOutStore(); }));
AddGrid1(titlePanel);
AddGrid11(titlePanel);
AddGrid2(titlePanel);
}
void AddGrid1(TitlePanel titlePanel)
{
panel1 = titlePanel.EAdd(new VLayoutPanel());
var editor = new DFCollectionEditor<SendOutStoreDetail>(() => details);
_editGrid1 = panel1.Add(new DFEditGrid(editor) { Width = Unit.Percentage(100) });
_editGrid1.Columns.Add(new DFEditGridColumn("DeliverGoodsLine_Name"));
_editGrid1.Columns.Add(new DFEditGridColumn("SecondUnit"));
@ -369,6 +381,29 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays
_editGrid1.Columns.Add(new DFEditGridColumn("AdjustNumber"));
}
void AddGrid11(TitlePanel titlePanel)
{
panel11 = titlePanel.EAdd(new VLayoutPanel());
var editor = new DFCollectionEditor<SendOutStoreDetail>(() => details);
editor.IsEditableFunc = (field, detail) => { return field.Name == "SendNumber"; };
_editGrid11 = panel11.Add(new DFEditGrid(editor) { Width = Unit.Percentage(100) });
_editGrid11.ID = "_gridUp";
_editGrid11.ClientIDMode = ClientIDMode.Static;
_editGrid11.Columns.Add(new DFEditGridColumn("DeliverGoodsLine_Name"));
_editGrid11.Columns.Add(new DFEditGridColumn("SecondUnit"));
_editGrid11.Columns.Add(new DFEditGridColumn("SecondNumber"));
_editGrid11.Columns.Add(new DFEditGridColumn("Unit"));
_editGrid11.Columns.Add(new DFEditGridColumn("Number"));
var col = new DFEditGridColumn<DFTextBox>("SendNumber");
col.InitEditControl += (sender, e) =>
{
e.Control.Attributes["onchange"] = "_SumNumberUp();";
};
_editGrid11.Columns.Add(col);
_editGrid11.Columns.Add(new DFEditGridColumn("AdjustNumber"));
}
void SaveCookie(string value)
{
HttpCookie cookie = new HttpCookie("innerDetails", value);
@ -383,6 +418,8 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays
editor.IsEditableFunc = (field, detail) => { return field.Name == "SendNumber"; };
_editGrid2 = panel2.Add(new DFEditGrid(editor) { Width = Unit.Percentage(100) });
_editGrid2.ID = "_gird2";
_editGrid2.ClientIDMode = ClientIDMode.Static;
_editGrid2.Columns.Add(new DFEditGridColumn("Date"));
_editGrid2.Columns.Add(new DFEditGridColumn("ID"));
_editGrid2.Columns.Add(new DFEditGridColumn("CustomerName"));
@ -406,6 +443,7 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays
{
if (avgAdjust.Checked)
{
_editGrid11.GetFromUI();
innerDetails.Clear();
AvgAdjust();
}
@ -422,20 +460,38 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays
void AvgAdjust()
{
var total = details.Sum(x => (x.Number ?? 0).Value);
if (total == 0)
var f = details.FirstOrDefault();
if (f == null)
return;
var avg = productNumber / total;
var f = details.First();
var list = CreateDetailsByBill(f.Goods_ID, f.Store_ID);
foreach (var item in list)
foreach (var item in details)
{
var entity = new InnerDetail();
entity.ID = item.ID;
entity.DetailID = item.DetailID;
entity.Number = item.Number.EToDecimal();
entity.SendNumber = entity.Number * avg;
innerDetails.Add(entity);
if (item.Number == 0)
continue;
if ((item.SendNumber ?? 0) == item.Number.Value)
continue;
var avg = item.SendNumber / item.Number;
var tag = list.Where(x => x.DeliverGoodsLine_ID == item.DeliverGoodsLine_ID);
var lastNum = (item.SendNumber ?? 0);
bool exist = false;
foreach (var t in tag)
{
var entity = new InnerDetail();
entity.ID = t.ID;
entity.DetailID = t.DetailID;
entity.Number = t.Number.EToDecimal();
entity.SendNumber = entity.Number * avg;
if (entity.SendNumber.HasValue)
{
entity.SendNumber = decimal.Floor(entity.SendNumber.Value);
lastNum -= entity.SendNumber.Value;
}
innerDetails.Add(entity);
if (!exist)
exist = true;
}
if (lastNum != 0 && exist)
innerDetails.Last().SendNumber += lastNum;
}
}
@ -470,8 +526,8 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays
{
base.OnPreRender(e);
var pageIndex = _editGrid1.CurrentPageIndex;
var size = _editGrid1.PageSize;
var pageIndex = _editGrid2.CurrentPageIndex;
var size = _editGrid2.PageSize;
var index = 0;
Money<decimal> unitNum = 0;
@ -486,17 +542,74 @@ namespace BWP.Web.Pages.B3ButcherManageToSale.Overlays
index++;
}
var s = string.Format(@"<script language=javascript>
var sumUnitNumOtherPage = {0};
</script>", unitNum);
var sumUnitNumOtherPage = {0};
</script>", unitNum);
Page.ClientScript.RegisterClientScriptBlock(GetType(), "OtherPageNumber", s, false);
string script = @"var defaultGrid=document.all." + _editGrid1.ClientID + @";
function _SumNumber()
string script = @"var defaultGrid=document.all._gird2;"+ @";
function _SumNumber()
{
var grid = defaultGrid.behind;
var itemEndIndex = grid.mItemEndIndex - 1;
var sumN = sumUnitNumOtherPage;
for (i = 1; i <= itemEndIndex; i++) {
var row = grid.front.rows[i];
var m = row.dfContainer.getValue('SendNumber');
var rownumber=row.dfContainer.getValue('Number');
row.dfContainer.setValue('AdjustNumber',(rownumber-m).toFixed(2));
if (m != null && m != '') {
sumN = sumN + 1 * m;
}
}
var label = document.getElementById('{adjustNumberLabel}')
label.innerText = sumN.toFixed(2);
if( sumN > {thisNumber}){
label.style.color = 'red';
} else {
label.style.color = 'black';
}
var labelDiffNumber = document.getElementById('{difNumber}')
labelDiffNumber.innerText = (sumN-{thisNumber}).toFixed(2);
} ";
script = script.Replace("{thisNumber}", productNumber.ToString());
script = script.Replace("{adjustNumberLabel}", _adjustNumberLabel.ClientID);
script = script.Replace("{difNumber}", _difNumber.ClientID);
Page.ClientScript.RegisterStartupScript(GetType(), "Startup", script, true);
var pageIndex11 = _editGrid11.CurrentPageIndex;
var size11 = _editGrid11.PageSize;
var index11 = 0;
Money<decimal> unitNum11 = 0;
foreach (var detail in details)
{
var begin = size11 * pageIndex11;
var end = Math.Min(details.Count, (pageIndex11 + 1) * size11);
if (index11 < begin || index11 > end - 1)
{
unitNum11 += (detail.SendNumber ?? 0);
}
index11++;
}
var s11 = string.Format(@"<script language=javascript>
var sumUnitNumOtherPage11 = {0};
</script>", unitNum11);
Page.ClientScript.RegisterClientScriptBlock(GetType(), "OtherPageNumber11", s11, false);
string script11 = @"var defaultGrid11=document.all._gridUp;" + @";
function _SumNumberUp()
{
var grid = defaultGrid.behind;
var grid = defaultGrid11.behind;
var itemEndIndex = grid.mItemEndIndex - 1;
var sumN = sumUnitNumOtherPage;
var sumN = sumUnitNumOtherPage11;
for (i = 1; i <= itemEndIndex; i++) {
var row = grid.front.rows[i];
@ -521,10 +634,10 @@ var labelDiffNumber = document.getElementById('{difNumber}')
labelDiffNumber.innerText = (sumN-{thisNumber}).toFixed(2);
} ";
script = script.Replace("{thisNumber}", productNumber.ToString());
script = script.Replace("{adjustNumberLabel}", _adjustNumberLabel.ClientID);
script = script.Replace("{difNumber}", _difNumber.ClientID);
Page.ClientScript.RegisterStartupScript(GetType(), "Startup", script, true);
script11 = script11.Replace("{thisNumber}", productNumber.ToString());
script11 = script11.Replace("{adjustNumberLabel}", _adjustNumberLabel.ClientID);
script11 = script11.Replace("{difNumber}", _difNumber.ClientID);
Page.ClientScript.RegisterStartupScript(GetType(), "Startup11", script11, true);
}
}
@ -585,7 +698,7 @@ labelDiffNumber.innerText = (sumN-{thisNumber}).toFixed(2);
}
dateStr = dateStr.TrimEnd('&');
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Domain_ID", DomainContext.Current.ID), DQCondition.EQ("BillState", .), DQCondition.GreaterThan(detail, "ProductNumber", 0)));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Domain_ID", DomainContext.Current.ID), DQCondition.EQ("BillState", .), DQCondition.GreaterThan(detail, "ProductNumber", 0)));
return query;
}
}


Loading…
Cancel
Save