public static void SyncPersonalPieceTemplate() { var rowVersionList = RpcFacade.Call <IEnumerable <RpcObject> >("/MainSystem/B3HR/Rpcs/PersonalPieceRpc/GetRowVersion", SysConfig.Current.AccountingUnit_ID).Select(obj => new Tuple <long, int>(obj.Get <long>("ID"), obj.Get <int>("RowVersion"))).ToList(); var folder = Path.Combine(Util.DataFolder, typeof(ClientPersonalPiece).Name); BeforeWriteFile(rowVersionList, folder); var templateList = RpcFacade.Call <IEnumerable <RpcObject> >("/MainSystem/B3HR/Rpcs/PersonalPieceRpc/GetPersonalPieceTemplate", rowVersionList.Select(x => new long?(x.Item1)).ToArray()); foreach (var template in templateList) { var clientBill = new ClientPersonalPiece(); clientBill.ID = template.Get <long>("ID"); clientBill.Name = template.Get <string>("Name"); clientBill.Department_ID = template.Get <long>("Department_ID"); clientBill.Department_Name = template.Get <string>("Department_Name"); var rowVersion = template.Get <int>("RowVersion"); var employeeDetailList = template.Get <IList <RpcObject> >("EmployeeDetails"); foreach (var detail in employeeDetailList) { var employeeDetail = new ClientPersonalPiece_EmployeeDetail(); employeeDetail.Employee_ID = detail.Get <long>("HREmployee_ID"); employeeDetail.Employee_Name = detail.Get <string>("HREmployee_Name"); employeeDetail.Employee_Code = detail.Get <string>("HREmployee_Code"); clientBill.EmployeeDetails.Add(employeeDetail); } var pieceItemDetailList = template.Get <IList <RpcObject> >("PieceItemDetails"); foreach (var detail in pieceItemDetailList) { var pieceItemDetail = new ClientPersonalPiece_PieceItemDetail(); pieceItemDetail.PieceItem_ID = detail.Get <long>("PieceItem_ID"); pieceItemDetail.PieceItem_Name = detail.Get <string>("PieceItem_Name"); pieceItemDetail.PieceItem_Code = detail.Get <string>("PieceItem_Code"); pieceItemDetail.Job_ID = detail.Get <long?>("Job_ID"); pieceItemDetail.Job_Name = detail.Get <string>("Job_Name"); clientBill.PieceItemDetails.Add(pieceItemDetail); } XmlSerializer serializer = new XmlSerializer(typeof(ClientPersonalPiece)); using (var stream = File.Open(Path.Combine(folder, clientBill.ID + ".xml"), FileMode.Create)) { serializer.Serialize(stream, clientBill); } using (var stream = File.CreateText(Path.Combine(folder, clientBill.ID + ".ver"))) { stream.Write(rowVersion); } } }
public PersonalPieceDialog(long departMentID, long template) { InitializeComponent(); Util.SetSceen(this); personalPiece = new ClientPersonalPieceBillSave { AccountingUnit_ID = SysConfig.Current.AccountingUnit_ID.Value, Department_ID = departMentID, Domain_ID = SysConfig.Current.Domain_ID, User_ID = SysConfig.Current.User_ID, CreateTime = DateTime.Now }; pieceItemJobPair = new Dictionary <long, Tuple <long?, string> >(); comboBoxEmployee.Items.Add(""); comboBoxPieceItem.Items.Add(""); string file = Path.Combine(Path.Combine(Util.DataFolder, typeof(ClientPersonalPiece).Name), template.ToString() + ".xml"); XmlSerializer serializer = new XmlSerializer(typeof(ClientPersonalPiece)); using (var stream = File.Open(file, FileMode.Open)) { personalPieceTemplate = serializer.Deserialize(stream) as ClientPersonalPiece; } foreach (var empDetail in personalPieceTemplate.EmployeeDetails) { if (empDetail.Employee_ID != 0) { comboBoxEmployee.Items.Add(new Option(empDetail.Employee_Name + "(" + empDetail.Employee_Code + ")", empDetail.Employee_ID)); } } foreach (var pieceItemDetail in personalPieceTemplate.PieceItemDetails) { if (pieceItemDetail.PieceItem_ID != 0) { comboBoxPieceItem.Items.Add(new Option(pieceItemDetail.PieceItem_Name, pieceItemDetail.PieceItem_ID)); } if (!pieceItemJobPair.ContainsKey(pieceItemDetail.PieceItem_ID)) { pieceItemJobPair.Add(pieceItemDetail.PieceItem_ID, new Tuple <long?, string>(pieceItemDetail.Job_ID, pieceItemDetail.Job_Name)); } } comboBoxEmployee.Focus(); HardwareUtil.Device.ScannerReader += new EventHandler <ScanEventArgs>(Device_ScannerReaders); }