private AmountInfo ConvertToAmount(bool needConvert, Money money) { var info = new AmountInfo { CurrencyCode = CurrencyConvertor.BaseCurrency, Value = 0 }; if (needConvert) { if (money.IsSetCurrencyCode()) { info.CurrencyCode = money.CurrencyCode; } if (money.IsSetAmount()) { double amount; if (double.TryParse(money.Amount, out amount)) { info.Value = amount; } } } return(info); }
} // ConvertToCurrency public AmountInfo ConvertToCurrency(AmountInfo amountInfo, DateTime? purchaseDate, string currencyTo) { if (amountInfo == null || string.IsNullOrWhiteSpace(amountInfo.CurrencyCode) || amountInfo.CurrencyCode == currencyTo) return amountInfo; double value = m_oCurrencyRateRepository.GetCurrencyHistoricalRate(purchaseDate, amountInfo.CurrencyCode); return new AmountInfo { CurrencyCode = currencyTo, Value = Math.Abs(value) < 0.0000001 ? 0 : amountInfo.Value / value, }; } // ConvertToCurrency
//public DataTable MakBoxOne(int TaskID, int PjAmount, int WAmount, int TableTypeID) //{ // int BoxNum = 1; // int z = 0; // int j = 0; // Hownet.BLL.ProductTaskMain bllPTM = new ProductTaskMain(); // Hownet.BLL.AmountInfo bllPTI = new AmountInfo(); // Hownet.Model.ProductTaskMain modPTM = bllPTM.GetModel(TaskID); // DataSet dsPt = bllPTI.GetBox(TaskID, TableTypeID); // // DataSet dsColor = bllPT.GetColor("(ProduceTaskID='" + TaskID + "')"); // // DataSet dsSize = bllPT.GetSize("(ProduceTaskID='" + TaskID + "')"); // DataTable dtBox = new DataTable(); // dtBox.Columns.Add("ColorID", typeof(int)); // dtBox.Columns.Add("SizeID", typeof(int)); // dtBox.Columns.Add("ColorOneID", typeof(int)); // dtBox.Columns.Add("ColorTwoID", typeof(int)); // dtBox.Columns.Add("Amount", typeof(int)); // dtBox.Columns.Add("BoxNum", typeof(int)); // dtBox.Columns.Add("ColorName", typeof(string)); // dtBox.Columns.Add("SizeName", typeof(string)); // dtBox.Columns.Add("MListID", typeof(int)); // if (modPTM.PWorkingID != 0) // { // for (int r = 0; r < dsPt.Tables[0].Rows.Count; r++) // { // //某数量少于尾箱数量,直接取该数量 // if (int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()) < WAmount) // { // dtBox.Rows.Add(int.Parse(dsPt.Tables[0].DefaultView[r]["ColorID"].ToString()), int.Parse(dsPt.Tables[0].DefaultView[r]["SizeID"].ToString()), // int.Parse(dsPt.Tables[0].DefaultView[r]["ColorOneID"].ToString()), int.Parse(dsPt.Tables[0].DefaultView[r]["ColorTwoID"].ToString()), // int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()), BoxNum, dsPt.Tables[0].DefaultView[r]["ColorName"].ToString(), // dsPt.Tables[0].DefaultView[r]["SizeName"].ToString(), dsPt.Tables[0].DefaultView[r]["MListID"]); // BoxNum++; // } // else // { // int x = int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()) % PjAmount; // if (x <= (WAmount - PjAmount)) // { // z = 3; // } // if (x == 0) // { // z = 1; // } // if (x > (WAmount - PjAmount)) // { // z = 2; // } // switch (z) // { // case 1: // { // for (j = BoxNum; j < (BoxNum + (int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()) / PjAmount)); j++) // { // dtBox.Rows.Add(int.Parse(dsPt.Tables[0].DefaultView[r]["ColorID"].ToString()), int.Parse(dsPt.Tables[0].DefaultView[r]["SizeID"].ToString()), // int.Parse(dsPt.Tables[0].DefaultView[r]["ColorOneID"].ToString()), int.Parse(dsPt.Tables[0].DefaultView[r]["ColorTwoID"].ToString()), PjAmount, // j, dsPt.Tables[0].DefaultView[r]["ColorName"].ToString(), dsPt.Tables[0].DefaultView[r]["SizeName"].ToString(), dsPt.Tables[0].DefaultView[r]["MListID"]); // } // BoxNum = j; // break; // } // case 2: // { // for (j = BoxNum; j < (BoxNum + int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()) / PjAmount); j++) // { // dtBox.Rows.Add(int.Parse(dsPt.Tables[0].DefaultView[r]["ColorID"].ToString()), int.Parse(dsPt.Tables[0].DefaultView[r]["SizeID"].ToString()), // int.Parse(dsPt.Tables[0].DefaultView[r]["ColorOneID"].ToString()), int.Parse(dsPt.Tables[0].DefaultView[r]["ColorTwoID"].ToString()), PjAmount, // j, dsPt.Tables[0].DefaultView[r]["ColorName"].ToString(), dsPt.Tables[0].DefaultView[r]["SizeName"].ToString(), dsPt.Tables[0].DefaultView[r]["MListID"]); // } // dtBox.Rows.Add(int.Parse(dsPt.Tables[0].DefaultView[r]["ColorID"].ToString()), int.Parse(dsPt.Tables[0].DefaultView[r]["SizeID"].ToString()), // int.Parse(dsPt.Tables[0].DefaultView[r]["ColorOneID"].ToString()), int.Parse(dsPt.Tables[0].DefaultView[r]["ColorTwoID"].ToString()), x, // j, dsPt.Tables[0].DefaultView[r]["ColorName"].ToString(), dsPt.Tables[0].DefaultView[r]["SizeName"].ToString(), dsPt.Tables[0].DefaultView[r]["MListID"]); // BoxNum = j + 1; // break; // } // case 3: // { // for (j = BoxNum; j < (BoxNum + int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()) / PjAmount) - 1; j++) // { // dtBox.Rows.Add(int.Parse(dsPt.Tables[0].DefaultView[r]["ColorID"].ToString()), int.Parse(dsPt.Tables[0].DefaultView[r]["SizeID"].ToString()), // int.Parse(dsPt.Tables[0].DefaultView[r]["ColorOneID"].ToString()), int.Parse(dsPt.Tables[0].DefaultView[r]["ColorTwoID"].ToString()), PjAmount, // j, dsPt.Tables[0].DefaultView[r]["ColorName"].ToString(), dsPt.Tables[0].DefaultView[r]["SizeName"].ToString(), dsPt.Tables[0].DefaultView[r]["MListID"]); // } // dtBox.Rows.Add(int.Parse(dsPt.Tables[0].DefaultView[r]["ColorID"].ToString()), int.Parse(dsPt.Tables[0].DefaultView[r]["SizeID"].ToString()), // int.Parse(dsPt.Tables[0].DefaultView[r]["ColorOneID"].ToString()), int.Parse(dsPt.Tables[0].DefaultView[r]["ColorTwoID"].ToString()), (PjAmount + x), // j, dsPt.Tables[0].DefaultView[r]["ColorName"].ToString(), dsPt.Tables[0].DefaultView[r]["SizeName"].ToString(), dsPt.Tables[0].DefaultView[r]["MListID"]); // BoxNum = j + 1; // break; // } // } // } // } // } // return dtBox; //} //public void MakBoxThree(int ProductWorkID, int TaskID, int PjAmount, int WAmount, int MaterielID, int BrandID, int TableTypeID) //{ // DataTable Main = MakBoxOne(TaskID, PjAmount, WAmount, TableTypeID); // Hownet.BLL.ProductWorkingInfo bllPWI = new ProductWorkingInfo(); // Hownet.BLL.WorkTicket bllWT = new WorkTicket(); // Hownet.BLL.WorkTicketInfo bllWkInfo = new WorkTicketInfo(); // Hownet.Model.WorkTicket modWK = new Hownet.Model.WorkTicket(); // Hownet.Model.WorkTicketInfo modWKI = new Hownet.Model.WorkTicketInfo(); // bool t = false; // DataSet dsPw = bllPWI.GetBoxWork(ProductWorkID); // DataTable dtSpecial = bllPWI.GetList("(PWMID=" + ProductWorkID + ")").Tables[0];//查出特殊工序明细表 // if (dtSpecial.Rows.Count == 0) // { // #region 没有特殊工序 // for (int r = 0; r < Main.Rows.Count; r++) // { // modWK.ColorID = int.Parse(Main.DefaultView[r]["ColorID"].ToString()); // modWK.SizeID = int.Parse(Main.DefaultView[r]["SizeID"].ToString()); // modWK.ColorOneID = int.Parse(Main.DefaultView[r]["ColorOneID"].ToString()); // modWK.ColorTwoID = int.Parse(Main.DefaultView[r]["ColorTwoID"].ToString()); // modWK.BoxNum = int.Parse(Main.DefaultView[r]["BoxNum"].ToString()); // modWK.Amount = int.Parse(Main.DefaultView[r]["Amount"].ToString()); // modWK.MListID = int.Parse(Main.DefaultView[r]["MListID"].ToString()); // modWK.TaskID = TaskID; // int mainID = bllWT.Add(modWK); // for (int c = 0; c < dsPw.Tables[0].Rows.Count; c++) // { // modWKI.EmployeeID = 0; // modWKI.PWorkingInfoID = int.Parse(dsPw.Tables[0].DefaultView[c]["ID"].ToString()); // modWKI.WorkingID = int.Parse(dsPw.Tables[0].DefaultView[c]["WorkingID"].ToString()); // modWKI.MainID = mainID; // modWKI.Amount = modWKI.NotAmount = modWK.Amount; // modWKI.TaskID = TaskID; // bllWkInfo.Add(modWKI); // } // } // } // #endregion // #region 特殊工序 // else // { // for (int r = 0; r < Main.Rows.Count; r++) // { // modWK.ColorID = int.Parse(Main.DefaultView[r]["ColorID"].ToString()); // modWK.SizeID = int.Parse(Main.DefaultView[r]["SizeID"].ToString()); // modWK.ColorOneID = 0; // modWK.ColorTwoID = 0; // modWK.BoxNum = int.Parse(Main.DefaultView[r]["BoxNum"].ToString()); // modWK.Amount = int.Parse(Main.DefaultView[r]["Amount"].ToString()); // modWK.MListID = int.Parse(Main.DefaultView[r]["MListID"].ToString()); // modWK.TaskID = TaskID; // int mainID = bllWT.Add(modWK); // for (int c = 0; c < dsPw.Tables[0].Rows.Count; c++) // { // t = false; // modWKI.EmployeeID = 0; // int w = int.Parse(dsPw.Tables[0].DefaultView[c]["WorkingID"].ToString()); // modWKI.WorkingID = w; // modWKI.PWorkingInfoID = int.Parse(dsPw.Tables[0].DefaultView[c]["ID"].ToString()); // if ((bool.Parse(dsPw.Tables[0].DefaultView[c]["IsSpecial"].ToString())))//判断某道工序是否是特殊工序 // { // DataRow[] drs = dtSpecial.Select("(SpecialWork=" + w + ") and (ColorID=" + modWK.ColorID + ")"); // if (drs.Length > 0)//在特殊工序列表中,是否有当前颜色记录 // { // modWKI.WorkingID = int.Parse(drs[0]["WorkingID"].ToString()); // modWKI.PWorkingInfoID = int.Parse(drs[0]["ID"].ToString()); // } // else // { // drs = dtSpecial.Select("(SpecialWork=" + w + ") and (ColorID=0)");//是否有通用颜色工序 // if (drs.Length > 0) // { // modWKI.WorkingID = int.Parse(drs[0]["WorkingID"].ToString()); // modWKI.PWorkingInfoID = int.Parse(drs[0]["ID"].ToString()); // } // else // { // t = true; // } // } // } // modWKI.MainID = mainID; // modWKI.Amount = modWKI.NotAmount = modWK.Amount; // modWKI.TaskID = TaskID; // if (!t) // bllWkInfo.Add(modWKI);//有特殊工序的普通工序,则添加记录,否则不添加 // } // } // } // #endregion //} //public void MakBoxOneID(int TaskID, int PjAmount, int WAmount, int TableTypeID, int BrandID) //{ // int BoxNum = 1; // int z = 0; // int j = 0; // Hownet.BLL.ProductTaskMain bllPTM = new ProductTaskMain(); // Hownet.BLL.WorkTicket bllWT = new WorkTicket(); // Hownet.BLL.AmountInfo bllPTI = new AmountInfo(); // Hownet.Model.ProductTaskMain modPTM = bllPTM.GetModel(TaskID); // DataSet dsPt = bllPTI.GetBoxID(TaskID, TableTypeID, 0); // // DataSet dsColor = bllPT.GetColor("(ProduceTaskID='" + TaskID + "')"); // // DataSet dsSize = bllPT.GetSize("(ProduceTaskID='" + TaskID + "')"); // DataTable dtBox = bllWT.GetListNoA("(ID=0)").Tables[0]; // //dtBox.Columns.Add("ColorID", typeof(int)); // //dtBox.Columns.Add("SizeID", typeof(int)); // //dtBox.Columns.Add("ColorOneID", typeof(int)); // //dtBox.Columns.Add("ColorTwoID", typeof(int)); // //dtBox.Columns.Add("Amount", typeof(int)); // //dtBox.Columns.Add("BoxNum", typeof(int)); // //dtBox.Columns.Add("MListID", typeof(int)); // if (modPTM.PWorkingID != 0) // { // for (int r = 0; r < dsPt.Tables[0].Rows.Count; r++) // { // //某数量少于尾箱数量,直接取该数量 // if (int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()) < WAmount) // { // dtBox.Rows.Add(0, dsPt.Tables[0].DefaultView[r]["ColorID"], dsPt.Tables[0].DefaultView[r]["ColorOneID"], // dsPt.Tables[0].DefaultView[r]["ColorTwoID"], dsPt.Tables[0].DefaultView[r]["SizeID"], // dsPt.Tables[0].DefaultView[r]["Amount"], BoxNum, TaskID, 0, 0, 0, 0, 0, dsPt.Tables[0].DefaultView[r]["MListID"], BrandID); // BoxNum++; // } // else // { // int x = int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()) % PjAmount; // if (x <= (WAmount - PjAmount)) // { // z = 3; // } // if (x == 0) // { // z = 1; // } // if (x > (WAmount - PjAmount)) // { // z = 2; // } // switch (z) // { // case 1: // { // for (j = BoxNum; j < (BoxNum + (int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()) / PjAmount)); j++) // { // dtBox.Rows.Add(0, dsPt.Tables[0].DefaultView[r]["ColorID"], dsPt.Tables[0].DefaultView[r]["ColorOneID"], // dsPt.Tables[0].DefaultView[r]["ColorTwoID"], dsPt.Tables[0].DefaultView[r]["SizeID"], PjAmount, // j, TaskID, 0, 0, 0, 0, 0, dsPt.Tables[0].DefaultView[r]["MListID"], BrandID); // } // BoxNum = j; // break; // } // case 2: // { // for (j = BoxNum; j < (BoxNum + int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()) / PjAmount); j++) // { // dtBox.Rows.Add(0, dsPt.Tables[0].DefaultView[r]["ColorID"], dsPt.Tables[0].DefaultView[r]["ColorOneID"], dsPt.Tables[0].DefaultView[r]["ColorTwoID"], // dsPt.Tables[0].DefaultView[r]["SizeID"], PjAmount, j, TaskID, 0, 0, 0, 0, 0, dsPt.Tables[0].DefaultView[r]["MListID"], BrandID); // } // dtBox.Rows.Add(0, dsPt.Tables[0].DefaultView[r]["ColorID"], dsPt.Tables[0].DefaultView[r]["ColorOneID"], // dsPt.Tables[0].DefaultView[r]["ColorTwoID"], dsPt.Tables[0].DefaultView[r]["SizeID"], x, j, TaskID, 0, 0, 0, 0, 0, dsPt.Tables[0].DefaultView[r]["MListID"], BrandID); // BoxNum = j + 1; // break; // } // case 3: // { // for (j = BoxNum; j < (BoxNum + int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()) / PjAmount) - 1; j++) // { // // A,ID,ColorID,ColorOneID,ColorTwoID,SizeID,Amount,BoxNum,TaskID,DepartmentID,P2DInfoID,EligibleAmount,InferiorAmount,P2DDepartmentID,MListID,BrandID // dtBox.Rows.Add(0, dsPt.Tables[0].DefaultView[r]["ColorID"], dsPt.Tables[0].DefaultView[r]["ColorOneID"], // dsPt.Tables[0].DefaultView[r]["ColorTwoID"], dsPt.Tables[0].DefaultView[r]["SizeID"], PjAmount, j, TaskID, 0, 0, 0, 0, 0, dsPt.Tables[0].DefaultView[r]["MListID"], BrandID); // } // dtBox.Rows.Add(0, dsPt.Tables[0].DefaultView[r]["ColorID"], dsPt.Tables[0].DefaultView[r]["ColorOneID"], // dsPt.Tables[0].DefaultView[r]["ColorTwoID"], dsPt.Tables[0].DefaultView[r]["SizeID"], (PjAmount + x), // j, TaskID, 0, 0, 0, 0, 0, dsPt.Tables[0].DefaultView[r]["MListID"], BrandID); // BoxNum = j + 1; // break; // } // } // } // } // } // DAL.BaseFile.MakeBox.AddWorkTicket(dtBox); //} /// <summary> /// /// </summary> /// <param name="ProductWorkID">生产任务中工艺单ID</param> /// <param name="TaskID">生产任务ID</param> /// <param name="PjAmount">平均箱数量</param> /// <param name="WAmount">尾箱数量</param> /// <param name="MaterielID">款号</param> /// <param name="BrandID">商标</param> /// <param name="TableTypeID">单据类型</param> public void MakBoxThreeID(int ProductWorkID, int TaskID, int PjAmount, int WAmount, int MaterielID, int BrandID, int TableTypeID) { try { //MakBoxOneID(TaskID, PjAmount, WAmount, TableTypeID,BrandID); #region WorkTicket表 int BoxNum = 1; int z = 0; int j = 0; int _PJAmount = 0; int _WAmount = 0; // int CompanyID = 0; Hownet.BLL.ProductTaskMain bllPTM = new ProductTaskMain(); Hownet.BLL.WorkTicket bllWT = new WorkTicket(); Hownet.BLL.AmountInfo bllPTI = new AmountInfo(); Hownet.BLL.ProductWorkingInfo bllPWI = new ProductWorkingInfo(); Hownet.Model.ProductTaskMain modPTM = bllPTM.GetModel(TaskID); DataSet dsPt = bllPTI.GetBoxID(TaskID, TableTypeID); DataTable dtBox = bllWT.GetListNoA("(ID=0)").Tables[0]; DataTable dtPWIAmount = bllPWI.GetOneAmount(modPTM.PWorkingID).Tables[0]; if (modPTM.PWorkingID != 0) { for (int g = 0; g < dtPWIAmount.Rows.Count; g++) { #region 正常分箱 if (Convert.ToInt32(dtPWIAmount.Rows[g]["OneAmount"]) == 0) { _PJAmount = PjAmount; _WAmount = WAmount; for (int r = 0; r < dsPt.Tables[0].Rows.Count; r++) { //某数量少于尾箱数量,直接取该数量 if (int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()) < _WAmount) { dtBox.Rows.Add(0, dsPt.Tables[0].DefaultView[r]["ColorID"], dsPt.Tables[0].DefaultView[r]["ColorOneID"], dsPt.Tables[0].DefaultView[r]["ColorTwoID"], dsPt.Tables[0].DefaultView[r]["SizeID"], dsPt.Tables[0].DefaultView[r]["Amount"], BoxNum, TaskID, modPTM.DeparmentID, 0, 0, 0, 0, dsPt.Tables[0].DefaultView[r]["MListID"], BrandID, 0); BoxNum++; } else { int x = int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()) % _PJAmount; if (x <= (_WAmount - _PJAmount)) { z = 3; } if (x == 0) { z = 1; } if (x > (_WAmount - _PJAmount)) { z = 2; } switch (z) { case 1: { for (j = BoxNum; j < (BoxNum + (int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()) / _PJAmount)); j++) { dtBox.Rows.Add(0, dsPt.Tables[0].DefaultView[r]["ColorID"], dsPt.Tables[0].DefaultView[r]["ColorOneID"], dsPt.Tables[0].DefaultView[r]["ColorTwoID"], dsPt.Tables[0].DefaultView[r]["SizeID"], _PJAmount, j, TaskID, modPTM.DeparmentID, 0, 0, 0, 0, dsPt.Tables[0].DefaultView[r]["MListID"], BrandID, 0); } BoxNum = j; break; } case 2: { for (j = BoxNum; j < (BoxNum + int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()) / _PJAmount); j++) { dtBox.Rows.Add(0, dsPt.Tables[0].DefaultView[r]["ColorID"], dsPt.Tables[0].DefaultView[r]["ColorOneID"], dsPt.Tables[0].DefaultView[r]["ColorTwoID"], dsPt.Tables[0].DefaultView[r]["SizeID"], _PJAmount, j, TaskID, modPTM.DeparmentID, 0, 0, 0, 0, dsPt.Tables[0].DefaultView[r]["MListID"], BrandID, 0); } dtBox.Rows.Add(0, dsPt.Tables[0].DefaultView[r]["ColorID"], dsPt.Tables[0].DefaultView[r]["ColorOneID"], dsPt.Tables[0].DefaultView[r]["ColorTwoID"], dsPt.Tables[0].DefaultView[r]["SizeID"], x, j, TaskID, modPTM.DeparmentID, 0, 0, 0, 0, dsPt.Tables[0].DefaultView[r]["MListID"], BrandID, 0); BoxNum = j + 1; break; } case 3: { for (j = BoxNum; j < (BoxNum + int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()) / _PJAmount) - 1; j++) { // A,ID,ColorID,ColorOneID,ColorTwoID,SizeID,Amount,BoxNum,TaskID,DepartmentID,P2DInfoID,EligibleAmount,InferiorAmount,P2DDepartmentID,MListID,BrandID dtBox.Rows.Add(0, dsPt.Tables[0].DefaultView[r]["ColorID"], dsPt.Tables[0].DefaultView[r]["ColorOneID"], dsPt.Tables[0].DefaultView[r]["ColorTwoID"], dsPt.Tables[0].DefaultView[r]["SizeID"], _PJAmount, j, TaskID, modPTM.DeparmentID, 0, 0, 0, 0, dsPt.Tables[0].DefaultView[r]["MListID"], BrandID, 0); } dtBox.Rows.Add(0, dsPt.Tables[0].DefaultView[r]["ColorID"], dsPt.Tables[0].DefaultView[r]["ColorOneID"], dsPt.Tables[0].DefaultView[r]["ColorTwoID"], dsPt.Tables[0].DefaultView[r]["SizeID"], (_PJAmount + x), j, TaskID, modPTM.DeparmentID, 0, 0, 0, 0, dsPt.Tables[0].DefaultView[r]["MListID"], BrandID, 0); BoxNum = j + 1; break; } } } } } #endregion #region 预设数量分箱 if (Convert.ToInt32(dtPWIAmount.Rows[g]["OneAmount"]) > 0) { _PJAmount = Convert.ToInt32(dtPWIAmount.Rows[g]["OneAmount"]); _WAmount = Convert.ToInt32(_PJAmount * 1.5); for (int r = 0; r < dsPt.Tables[0].Rows.Count; r++) { //某数量少于尾箱数量,直接取该数量 if (int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()) < _WAmount) { dtBox.Rows.Add(0, dsPt.Tables[0].DefaultView[r]["ColorID"], dsPt.Tables[0].DefaultView[r]["ColorOneID"], dsPt.Tables[0].DefaultView[r]["ColorTwoID"], dsPt.Tables[0].DefaultView[r]["SizeID"], dsPt.Tables[0].DefaultView[r]["Amount"], BoxNum, TaskID, modPTM.DeparmentID, 0, 0, 0, 0, dsPt.Tables[0].DefaultView[r]["MListID"], BrandID, _PJAmount); BoxNum++; } else { int x = int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()) % _PJAmount; if (x <= (_WAmount - _PJAmount)) { z = 3; } if (x == 0) { z = 1; } if (x > (_WAmount - _PJAmount)) { z = 2; } switch (z) { case 1: { for (j = BoxNum; j < (BoxNum + (int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()) / _PJAmount)); j++) { dtBox.Rows.Add(0, dsPt.Tables[0].DefaultView[r]["ColorID"], dsPt.Tables[0].DefaultView[r]["ColorOneID"], dsPt.Tables[0].DefaultView[r]["ColorTwoID"], dsPt.Tables[0].DefaultView[r]["SizeID"], _PJAmount, j, TaskID, modPTM.DeparmentID, 0, 0, 0, 0, dsPt.Tables[0].DefaultView[r]["MListID"], BrandID, _PJAmount); } BoxNum = j; break; } case 2: { for (j = BoxNum; j < (BoxNum + int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()) / _PJAmount); j++) { dtBox.Rows.Add(0, dsPt.Tables[0].DefaultView[r]["ColorID"], dsPt.Tables[0].DefaultView[r]["ColorOneID"], dsPt.Tables[0].DefaultView[r]["ColorTwoID"], dsPt.Tables[0].DefaultView[r]["SizeID"], _PJAmount, j, TaskID, modPTM.DeparmentID, 0, 0, 0, 0, dsPt.Tables[0].DefaultView[r]["MListID"], BrandID, _PJAmount); } dtBox.Rows.Add(0, dsPt.Tables[0].DefaultView[r]["ColorID"], dsPt.Tables[0].DefaultView[r]["ColorOneID"], dsPt.Tables[0].DefaultView[r]["ColorTwoID"], dsPt.Tables[0].DefaultView[r]["SizeID"], x, j, TaskID, modPTM.DeparmentID, 0, 0, 0, 0, dsPt.Tables[0].DefaultView[r]["MListID"], BrandID, _PJAmount); BoxNum = j + 1; break; } case 3: { for (j = BoxNum; j < (BoxNum + int.Parse(dsPt.Tables[0].DefaultView[r]["Amount"].ToString()) / _PJAmount) - 1; j++) { // A,ID,ColorID,ColorOneID,ColorTwoID,SizeID,Amount,BoxNum,TaskID,DepartmentID,P2DInfoID,EligibleAmount,InferiorAmount,P2DDepartmentID,MListID,BrandID dtBox.Rows.Add(0, dsPt.Tables[0].DefaultView[r]["ColorID"], dsPt.Tables[0].DefaultView[r]["ColorOneID"], dsPt.Tables[0].DefaultView[r]["ColorTwoID"], dsPt.Tables[0].DefaultView[r]["SizeID"], _PJAmount, j, TaskID, modPTM.DeparmentID, 0, 0, 0, 0, dsPt.Tables[0].DefaultView[r]["MListID"], BrandID, _PJAmount); } dtBox.Rows.Add(0, dsPt.Tables[0].DefaultView[r]["ColorID"], dsPt.Tables[0].DefaultView[r]["ColorOneID"], dsPt.Tables[0].DefaultView[r]["ColorTwoID"], dsPt.Tables[0].DefaultView[r]["SizeID"], (_PJAmount + x), j, TaskID, modPTM.DeparmentID, 0, 0, 0, 0, dsPt.Tables[0].DefaultView[r]["MListID"], BrandID, _PJAmount); BoxNum = j + 1; break; } } } } } #endregion #region 各色各码总数分为一箱 if (Convert.ToInt32(dtPWIAmount.Rows[g]["OneAmount"]) == -1) { for (int r = 0; r < dsPt.Tables[0].Rows.Count; r++) { dtBox.Rows.Add(0, dsPt.Tables[0].DefaultView[r]["ColorID"], dsPt.Tables[0].DefaultView[r]["ColorOneID"], dsPt.Tables[0].DefaultView[r]["ColorTwoID"], dsPt.Tables[0].DefaultView[r]["SizeID"], dsPt.Tables[0].DefaultView[r]["Amount"], BoxNum, TaskID, modPTM.DeparmentID, 0, 0, 0, 0, dsPt.Tables[0].DefaultView[r]["MListID"], BrandID, -1); BoxNum++; } } #endregion } } DAL.BaseFile.MakeBox.AddWorkTicket(dtBox); #endregion Hownet.BLL.WorkTicketInfo bllWkInfo = new WorkTicketInfo(); Hownet.Model.WorkTicketInfo modWKI = new Hownet.Model.WorkTicketInfo(); bool t = false; DataTable Main = new DataTable(); DataTable dtInfo = bllWkInfo.GetListNoA("(ID=0)").Tables[0]; DataSet dsPw = new DataSet(); DataTable dtSpecial = new DataTable(); for (int g = 0; g < dtPWIAmount.Rows.Count; g++) { Main = bllWT.GetIDList(TaskID, Convert.ToInt32(dtPWIAmount.Rows[g]["OneAmount"])).Tables[0]; dsPw = bllPWI.GetBoxWorkID(ProductWorkID, Convert.ToInt32(dtPWIAmount.Rows[g]["OneAmount"])); dtSpecial = bllPWI.GetSpecialWork(ProductWorkID, Convert.ToInt32(dtPWIAmount.Rows[g]["OneAmount"])).Tables[0];//查出特殊工序明细表 DateTime dtNull = DateTime.Parse("1900-1-1"); if (dtSpecial.Rows.Count == 0) { #region 没有特殊工序 for (int r = 0; r < Main.Rows.Count; r++) { for (int c = 0; c < dsPw.Tables[0].Rows.Count; c++) { dtInfo.Rows.Add(0, Main.Rows[r]["ID"], DBNull.Value, 0, dsPw.Tables[0].DefaultView[c]["ID"], 0, 0, Main.Rows[r]["Amount"], Main.Rows[r]["Amount"], TaskID, dsPw.Tables[0].DefaultView[c]["WorkingID"], Main.Rows[r]["Amount"]); } } } #endregion #region 特殊工序 else { DataRow[] drs; for (int r = 0; r < Main.Rows.Count; r++) { for (int c = 0; c < dsPw.Tables[0].Rows.Count; c++) { t = false; modWKI.EmployeeID = 0; int w = int.Parse(dsPw.Tables[0].DefaultView[c]["WorkingID"].ToString()); modWKI.WorkingID = w; modWKI.PWorkingInfoID = int.Parse(dsPw.Tables[0].DefaultView[c]["ID"].ToString()); if ((bool.Parse(dsPw.Tables[0].DefaultView[c]["IsSpecial"].ToString())))//判断某道工序是否是特殊工序 { //if (modPTM.CompanyID > 0) //{ //有特定客户、特定尺码、特定颜色的特殊工序 drs = dtSpecial.Select("(SpecialWork=" + w + ") and (CompanyID=" + modPTM.CompanyID + ") and (ColorID=" + Main.Rows[r]["ColorID"] + ") And (MaterielID=" + Main.Rows[r]["SizeID"] + ")"); if (drs.Length == 0) { //有特定尺码、特定颜色的特殊工序 drs = dtSpecial.Select("(SpecialWork=" + w + ") and (CompanyID=0) and (ColorID=" + Main.Rows[r]["ColorID"] + ") And (MaterielID=" + Main.Rows[r]["SizeID"] + ")"); if (drs.Length == 0) { //有特定尺码、特定客户的特殊工序 drs = dtSpecial.Select("(SpecialWork=" + w + ") and (CompanyID=" + modPTM.CompanyID + ") and (ColorID=0) And (MaterielID=" + Main.Rows[r]["SizeID"] + ")"); if (drs.Length == 0) { //有特定客户、特定颜色的特殊工序 drs = dtSpecial.Select("(SpecialWork=" + w + ") and (CompanyID=" + modPTM.CompanyID + ") and (ColorID=" + Main.Rows[r]["ColorID"] + ") And (MaterielID=0)"); if (drs.Length == 0) { //只有特定颜色的特殊工序 drs = dtSpecial.Select("(SpecialWork=" + w + ") and (MaterielID=0) And (CompanyID=0) and (ColorID=" + Main.Rows[r]["ColorID"] + ")"); if (drs.Length == 0) { //有只特定客户的特殊工序 drs = dtSpecial.Select("(SpecialWork=" + w + ") and (CompanyID=" + modPTM.CompanyID + ") and (ColorID=0) and (MaterielID=0)"); if (drs.Length == 0) { //有只特定尺码的特殊工序 drs = dtSpecial.Select("(SpecialWork=" + w + ") and (MaterielID=" + Main.Rows[r]["SizeID"] + ") and (ColorID=0) and (CompanyID=0)"); if (drs.Length == 0) { //不分颜色、客户的特殊工序 drs = dtSpecial.Select("(SpecialWork=" + w + ") and (CompanyID=0) and (ColorID=0)"); if (drs.Length == 0) { t = true; } } } } } } } } if (drs.Length > 0) { modWKI.WorkingID = int.Parse(drs[0]["WorkingID"].ToString()); modWKI.PWorkingInfoID = int.Parse(drs[0]["ID"].ToString()); if (modWKI.WorkingID == 0) { t = true; } } } if (!t) { dtInfo.Rows.Add(0, Main.Rows[r]["ID"], DBNull.Value, 0, modWKI.PWorkingInfoID, 0, 0, Main.Rows[r]["Amount"], Main.Rows[r]["Amount"], TaskID, modWKI.WorkingID, Main.Rows[r]["Amount"]); } } } #endregion } } DAL.BaseFile.MakeBox.AddWorkTicketInfo(dtInfo); } catch (Exception ex) { } }
} // ConvertToBaseCurrency public AmountInfo ConvertToBaseCurrency(AmountInfo amountInfo, DateTime? purchaseDate) { return ConvertToCurrency(amountInfo, purchaseDate, BaseCurrency); } // ConvertToBaseCurrency
} // YodleeBalance public void CalculateYodleeRunningBalance( MP_CustomerMarketPlace mp, string sourceId, AmountInfo currentBalance, List <MP_YodleeOrderItemBankTransaction> transactions, List <string> directors ) { if (transactions.Count < 1) { return; } List <MP_YodleeGroup> yodleeGroupRepository = new YodleeGroupRepository(this._session).GetAll().ToList(); List <MP_YodleeGroupRuleMap> yodleeGroupRuleMapRepository = new YodleeGroupRuleMapRepository(this._session).GetAll().ToList(); var currDate = new DateTime(); int currIndex = 0; MP_YodleeOrderItemBankTransaction oLastTransaction = null; int nCurTransactionPosition = 0; foreach (MP_YodleeOrderItemBankTransaction oCurrentTransaction in transactions) { CategorizeTransaction(oCurrentTransaction, yodleeGroupRepository, yodleeGroupRuleMapRepository, mp, directors); if (!oCurrentTransaction.runningBalance.HasValue) { if (nCurTransactionPosition == 0) { oCurrentTransaction.runningBalance = currentBalance.Value; oCurrentTransaction.runningBalanceCurrency = currentBalance.CurrencyCode; currDate = (oCurrentTransaction.postDate ?? oCurrentTransaction.transactionDate).Value; } else { double amount = 0; if (oCurrentTransaction.transactionAmount.HasValue) { amount = this._CurrencyConvertor.ConvertToBaseCurrency( oCurrentTransaction.transactionAmountCurrency, oCurrentTransaction.transactionAmount.Value, oCurrentTransaction.postDate ?? oCurrentTransaction.transactionDate ) .Value; } // if if (oCurrentTransaction.transactionBaseType == "credit") { oCurrentTransaction.runningBalance = oLastTransaction.runningBalance + amount; } else //debit { oCurrentTransaction.runningBalance = oLastTransaction.runningBalance - amount; } oCurrentTransaction.runningBalanceCurrency = currentBalance.CurrencyCode; var newDate = (oCurrentTransaction.postDate ?? oCurrentTransaction.transactionDate).Value; if (newDate.Date != currDate.Date) { for (int j = currIndex; j < nCurTransactionPosition; j++) { transactions[j].runningBalance = oLastTransaction.runningBalance; } currDate = (oCurrentTransaction.postDate ?? oCurrentTransaction.transactionDate).Value.Date; currIndex = nCurTransactionPosition; } // if new date differs from current date } // if first transaction } // if has no running balance oLastTransaction = oCurrentTransaction; nCurTransactionPosition++; } // for using (var tx = this._session.BeginTransaction()) { this._session.SetBatchSize(1000); foreach (var trn in transactions) { this._session.SaveOrUpdate(trn); } tx.Commit(); _Log.InfoFormat("Finished saving categorization for mp {0} num of transactions {1}", mp.Id, transactions.Count); } this._session.Flush(); } // CalculateYodleeRunningBalance