Browse Source

结算单奖罚。

master
yibo 7 years ago
parent
commit
7ae57bfb9f
2 changed files with 68 additions and 42 deletions
  1. +61
    -0
      B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/StatPay_/StatPayEdit.cs
  2. +7
    -42
      B3SheepButcherManage/BL/Bill/StatPayBL/StatPayBL.cs

+ 61
- 0
B3SheepButcherManage.Web/Pages/B3SheepButcherManage/Bills/StatPay_/StatPayEdit.cs View File

@ -17,6 +17,13 @@ using BWP.Web.Layout;
using BWP.Web.Utils;
using BWP.B3SheepButcherManage;
using BWP.B3CowButcherManage;
using CW = BWP.B3CowButcherManage.BO;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.SqlDoms;
using BWP.B3Frameworks.BO.NamedValueTemplate;
using TSingSoft.WebPluginFramework;
using Forks.EnterpriseServices.SimpleScript;
namespace BWP.Web.Pages.B3SheepButcherManage.Bills.StatPay_
{
@ -417,6 +424,17 @@ __DFContainer.getControl('Employee_ID').fill('','');
e.Control.DataKind = B3CowButcherManageConsts.DataSources.;
e.Control.DFDisplayField = "RewardItem_Name";
e.Control.OnBeforeDrop = "this.codeArgument=__DFContainer.getValue('AccountingUnit_ID');";
e.Control.AutoPostBack = true;
e.Control.SelectedValueChanged += (ss, ee) =>
{
GetFromUI();
if (!e.Control.IsEmpty)
{
var itemId = long.Parse(e.Control.Value);
SetExceptionByRewardItemId(Dmo, itemId);
_exceptionGrid.DataBind();
}
};
};
_otherRewardGrid.Columns.Add(column);
_otherRewardGrid.Columns.EAdd(new DFEditGridColumn<DFTextBox>("Number") { SumMode = SumMode.Sum }).InitEditControl += (sender, e) =>
@ -455,6 +473,49 @@ __DFContainer.getControl('Employee_ID').fill('','');
vPanel.Add(_otherRewardGrid);
}
void SetExceptionByRewardItemId(StatPay dmo, long rewardItemId)
{
var detail = dmo.OtherRewardDetails.First(x => x.RewardItem_ID == rewardItemId);
var sanction = new JoinAlias(typeof(CW.SanctionSetting));
var abnormalItem = new JoinAlias(typeof(CW.RewardItem));
var dom = new DQueryDom(sanction);
dom.From.AddJoin(JoinType.Left, new DQDmoSource(abnormalItem),
DQCondition.EQ(sanction, "RewardItem_ID", abnormalItem, "ID"));
dom.Columns.Add(DQSelectColumn.Field("Condition", sanction));
dom.Columns.Add(DQSelectColumn.Field("BeforeScript", sanction));
dom.Where.Conditions.Add(DQCondition.EQ(sanction, "FitBill", .));
dom.Where.Conditions.Add(DQCondition.EQ("BillState", .));
dom.Where.Conditions.Add(DQCondition.EQ(abnormalItem, "ID", rewardItemId));
var sanctionList = dom.EExecuteList<string, string>();
var runner = new Runner();
foreach (var item in sanctionList)
{
if (string.IsNullOrEmpty(item.Item1))
continue;
if (string.IsNullOrEmpty(item.Item2))
continue;
runner.Global["奖罚依据"] = "";
runner.Execute(item.Item2);
var bType = TypeMarshal.AsString(runner.Global["奖罚依据"]);
if (bType == "羊结算单")
{
runner.Global["单价"] = 0m;
runner.Execute(item.Item2);
var price = TypeMarshal.AsNumber(runner.Global["单价"]);
detail.Price = price;
if (price == 0)
{
detail.Price = null;
}
break;
}
}
detail.Money = detail.Number * detail.Price;
}
private void AddOtherRewardToolsBar(VLayoutPanel vPanel)
{
if (!CanSave || IsNew)


+ 7
- 42
B3SheepButcherManage/BL/Bill/StatPayBL/StatPayBL.cs View File

@ -127,7 +127,6 @@ namespace BWP.B3SheepButcherManage.BL
}
FillOtherRewardInfo(dmo);
foreach (StatPay_OtherReward detail in dmo.OtherRewardDetails)
{
detail.Money = detail.Price * detail.Number;
@ -162,40 +161,6 @@ namespace BWP.B3SheepButcherManage.BL
base.beforeSave(dmo);
}
void FillOtherRewardInfo(StatPay dmo)
{
var tags = dmo.OtherRewardDetails.Where(x => x.RewardItem_ID.HasValue && x.Price == null);
if (tags.Count() == 0)
return;
var sanction = new JoinAlias(typeof(CW.SanctionSetting));
var abnormalItem = new JoinAlias(typeof(CW.RewardItem));
var dom = new DQueryDom(sanction);
dom.From.AddJoin(JoinType.Left, new DQDmoSource(abnormalItem),
DQCondition.EQ(sanction, "RewardItem_ID", abnormalItem, "ID"));
dom.Columns.Add(DQSelectColumn.Field("ID", abnormalItem));
dom.Columns.Add(DQSelectColumn.Field("Condition", sanction));
dom.Columns.Add(DQSelectColumn.Field("BeforeScript", sanction));
dom.Where.Conditions.Add(DQCondition.EQ(sanction, "FitBill", .));
dom.Where.Conditions.Add(DQCondition.EQ("BillState", .));
dom.Where.Conditions.Add(DQCondition.InList(DQExpression.Field(abnormalItem, "ID"), tags.Select(x => DQExpression.Value(x)).ToArray()));
var sanctionList = dom.EExecuteList<long, string, string>(Session);
var runner = new Runner();
foreach (var item in sanctionList)
{
var detail = dmo.OtherRewardDetails.First(x => x.RewardItem_ID == item.Item1);
runner.Global["单价"] = 0m;
runner.Execute(item.Item2);
var price = TypeMarshal.AsNumber(runner.Global["单价"]);
detail.Price = price;
if (price == 0)
{
detail.Price = null;
}
}
}
public void WeightCreateStayDom(StatPay dmo)
{
if (dmo.ValuationArea_ID == null)
@ -336,24 +301,24 @@ namespace BWP.B3SheepButcherManage.BL
{
var = dmo.Details.Sum(x => x.Number ?? 0);
var = dmo.HurryButcherDetails.Sum(x => x.Number ?? 0); //StatPay_HurryButcher
var = dmo.HurryButcherDetails.Sum(x => x.Number ?? 0);
//var 磅后记录头数 = dmo.HurryButcherDetails.Sum(x => x.Number ?? 0);
// if (屠宰记录头数 + 急宰记录头数 == dmo.RealNumber)
// {
// return;
// }
var = + ;
var = + ;
var = Get过磅单已结算(dmo.ID, dmo.WeightBill_ID);
var = .Item1;
var = Math.Round((decimal).Item2, 2);
if ( + > (dmo.WeighBill_BuyNum ?? 0))
if ( + > (dmo.WeighBill_BuyNum ?? 0))
{
throw new Exception("已结算头数:" + + " 本次结算头数:" + + "不能大于 过磅单:" + dmo.WeightBill_ID + " 总收购头数:" + dmo.WeighBill_BuyNum);
throw new Exception("已结算头数:" + + " 本次结算头数:" + + "不能大于 过磅单:" + dmo.WeightBill_ID + " 总收购头数:" + dmo.WeighBill_BuyNum);
}
dmo.RealNumber = + ;//收购头数计算
dmo.RealNumber = ;//收购头数计算
var = Math.Round(dmo.HurryButcherDetails.Sum(x => (decimal?)x.Weight ?? 0), 2);
if ( + == (dmo.WeighBill_BuyNum ?? 0))
if ( == (dmo.WeighBill_BuyNum ?? 0))
{
//如果刚好等于过磅单的头数,则重量直接减掉,防止小数点
dmo.RealWeight = Math.Round((decimal)(dmo.WeighBill_BuyWeigh1 ?? 0), 2);//收购重量计算
@ -361,7 +326,7 @@ namespace BWP.B3SheepButcherManage.BL
else
{
var = dmo.WeighBill_BuyWeigh1 / dmo.WeighBill_BuyNum;
var = Math.Round(( * ?? 0), 2);
var = Math.Round(( * ?? 0), 2);
dmo.RealWeight = + ;
}
//更新到数据库


Loading…
Cancel
Save