private void ImportData(bool overwrite) { if (PacketDataList != null && PacketDataList.Length > 0) { DateTime uploadOn = DateTime.Now; string shop = PacketDataList[0].Shop; string hht = PacketDataList[0].HHT.Length == 0 ? "POS_ADV1" : PacketDataList[0].HHT; System.Guid workplaceId = WorkplaceEx.GetWorkplaceIdByCode(shop); if (workplaceId != System.Guid.Empty) { System.Guid headerId = CreateStockTakeHHTHeader(PacketDataList[0].ExportNum, hht, workplaceId, uploadOn, overwrite); if (headerId != System.Guid.Empty) { CreateStockTakeHHTDetails(headerId, uploadOn, overwrite); Result.Add(shop); Result.Add("Success"); Result.Add(this.Remarks); Result.Add(hht); } } else { Result.Add(shop); Result.Add("Failed"); Result.Add("Shop does not exist!"); Result.Add(hht); } } }
/** * private void UpdateTXFSubLedger(string txnumber_Batch) * { * using (var ctx = new EF6.RT2020Entities()) * { * var oSubTXF = ctx.InvtSubLedgerTXF_Header.Find(this.TxferId); * if (oSubTXF != null) * { * UpdateTXFSubLedgerDetail(oSubTXF.HeaderId); * * oSubTXF.CONFIRM_TRF = this.IsConfirmedTransaction; * oSubTXF.CONFIRM_TRF_LASTUPDATE = DateTime.Now; * oSubTXF.CONFIRM_TRF_LASTUSER = ConfigHelper.CurrentUserId; * * oSubTXF.ModifiedBy = ConfigHelper.CurrentUserId; * oSubTXF.ModifiedOn = DateTime.Now; * * ctx.SaveChanges(); * } * } * } * * private void UpdateTXFSubLedgerDetail(Guid subledgerHeaderId) * { * foreach (ListViewItem listItem in lvDetailsList.Items) * { * if (Common.Utility.IsGUID(listItem.SubItems[10].Text)) * { * string sql = "HeaderId = '" + subledgerHeaderId.ToString() + "' AND ProductId = '" + listItem.SubItems[10].Text + "'"; * InvtSubLedgerTXF_Details oSubLedgerDetail = InvtSubLedgerTXF_Details.LoadWhere(sql); * if (oSubLedgerDetail != null) * { * if (Common.Utility.IsNumeric(listItem.SubItems[9].Text)) * { * oSubLedgerDetail.QtyConfirmed = Convert.ToDecimal(listItem.SubItems[9].Text); * * oSubLedgerDetail.Save(); * } * } * } * } * } */ #endregion #region Ledger /** * private void UpdateLedger(string txnumber_Batch) * { * InvtLedgerHeader oLedgerHeader = InvtLedgerHeader.Load(this.TxferId); * if (oLedgerHeader != null) * { * UpdateLedgerDetails(oLedgerHeader.HeaderId); * * oLedgerHeader.CONFIRM_TRF = this.IsConfirmedTransaction; * oLedgerHeader.CONFIRM_TRF_LASTUPDATE = DateTime.Now; * oLedgerHeader.CONFIRM_TRF_LASTUSER = ModelEx.StaffEx.GetStaffNumberById(ConfigHelper.CurrentUserId); * * oLedgerHeader.ModifiedBy = ConfigHelper.CurrentUserId; * oLedgerHeader.ModifiedOn = DateTime.Now; * oLedgerHeader.Save(); * } * } * * private void UpdateLedgerDetails(Guid ledgerHeaderId) * { * foreach (ListViewItem listItem in lvDetailsList.Items) * { * if (Common.Utility.IsGUID(listItem.SubItems[10].Text)) * { * string sql = "HeaderId = '" + ledgerHeaderId.ToString() + "' AND ProductId = '" + listItem.SubItems[10].Text + "'"; * InvtLedgerDetails oLedgerDetail = InvtLedgerDetails.LoadWhere(sql); * if (oLedgerDetail != null) * { * if (Common.Utility.IsNumeric(listItem.SubItems[9].Text)) * { * oLedgerDetail.Qty = Convert.ToDecimal(listItem.SubItems[9].Text); * * oLedgerDetail.Save(); * } * } * } * } * } */ #endregion #region FEP /** * private void UpdateFEP() * { * FepBatchHeader oFepHeader = FepBatchHeader.Load(this.TxferId); * if (oFepHeader != null) * { * UpdateLedgerDetails(oFepHeader.HeaderId); * * oFepHeader.CONFIRM_TRF = this.IsConfirmedTransaction; * oFepHeader.CONFIRM_TRF_LASTUPDATE = DateTime.Now; * oFepHeader.CONFIRM_TRF_LASTUSER = ModelEx.StaffEx.GetStaffNumberById(ConfigHelper.CurrentUserId); * * oFepHeader.ModifiedBy = ConfigHelper.CurrentUserId; * oFepHeader.ModifiedOn = DateTime.Now; * oFepHeader.Save(); * } * } * * private void UpdateFepDetails(Guid fepHeaderId) * { * foreach (ListViewItem listItem in lvDetailsList.Items) * { * if (Common.Utility.IsGUID(listItem.SubItems[10].Text)) * { * string sql = "HeaderId = '" + fepHeaderId.ToString() + "' AND ProductId = '" + listItem.SubItems[10].Text + "'"; * FepBatchDetail oFepDetail = FepBatchDetail.LoadWhere(sql); * if (oFepDetail != null) * { * if (Common.Utility.IsNumeric(listItem.SubItems[9].Text)) * { * oFepDetail.CONFIRM_TRF_QTY = Convert.ToDecimal(listItem.SubItems[9].Text); * * oFepDetail.Save(); * } * } * } * } * } */ #endregion #region Product /** * private void UpdateProduct(InvtBatchTXF_Header oBatchHeader) * { * string sql = "HeaderId = '" + oBatchHeader.HeaderId.ToString() + "'"; * InvtBatchTXF_DetailsCollection detailsList = InvtBatchTXF_Details.LoadCollection(sql); * for (int i = 0; i < detailsList.Count; i++) * { * InvtBatchTXF_Details detail = detailsList[i]; * //Out * UpdateProductQty(detail.ProductId, oBatchHeader.FromLocation, detail.QtyConfirmed * (-1)); * //In * UpdateProductQty(detail.ProductId, oBatchHeader.ToLocation, detail.QtyConfirmed); * } * } * * private void UpdateProductQty(Guid productId, Guid workplaceId, decimal qty) * { * using (var ctx = new EF6.RT2020Entities()) * { * //string sql = "ProductId = '" + productId.ToString() + "' AND WorkplaceId = '" + workplaceId.ToString() + "'"; * var item = ctx.ProductWorkplace.Where(x => x.ProductId == productId && x.WorkplaceId == workplaceId).FirstOrDefault(); * if (item == null) * { * item = new EF6.ProductWorkplace(); * item.ProductWorkplaceId = Guid.NewGuid(); * item.ProductId = productId; * item.WorkplaceId = workplaceId; * ctx.ProductWorkplace.Add(item); * } * item.CDQTY += qty; * if (qty > 0) * { * item.RECQTY += qty; * } * ctx.SaveChanges(); * } * } */ #endregion #endregion #region Load Txfer Header Info private void LoadTxferInfo() { using (var ctx = new EF6.RT2020Entities()) { var oBatchHeader = ctx.InvtBatchTXF_Header.Find(this.TxferId); if (oBatchHeader != null) { txtTxNumber.Text = oBatchHeader.TxNumber; txtTxType.Text = oBatchHeader.TxType; cboFromLocation.SelectedValue = oBatchHeader.FromLocation; cboToLocation.SelectedValue = oBatchHeader.ToLocation; dtpTxDate.Value = oBatchHeader.TxDate.Value; txtLatestConfirmedOn.Text = DateTimeHelper.DateTimeToString(oBatchHeader.CONFIRM_TRF_LASTUPDATE.Value, false); txtLatestConfirmedBy.Text = StaffEx.GetStaffNumberById(oBatchHeader.CONFIRM_TRF_LASTUSER.Value); txtRecordStatus.Text = string.Format(txtRecordStatus.Text, oBatchHeader.TxType); txtConfirmationStatus.Text = oBatchHeader.CONFIRM_TRF == "Y" ? "Completed" : (oBatchHeader.CONFIRM_TRF.Trim() == "" ? "Unprocessed" : "Incompleted"); } else { #region LoadTxferLedgerInfo(); var oLedgerHeader = ctx.InvtLedgerHeader.Find(this.TxferId); if (oLedgerHeader != null) { txtTxNumber.Text = oLedgerHeader.TxNumber; txtTxType.Text = oLedgerHeader.TxType; cboFromLocation.SelectedValue = oLedgerHeader.WorkplaceId; cboToLocation.SelectedValue = oLedgerHeader.VsLocationId; dtpTxDate.Value = oLedgerHeader.TxDate.Value; txtLatestConfirmedOn.Text = DateTimeHelper.DateTimeToString(oLedgerHeader.CONFIRM_TRF_LASTUPDATE.Value, false); txtLatestConfirmedBy.Text = oLedgerHeader.CONFIRM_TRF_LASTUSER; txtRecordStatus.Text = string.Format(txtRecordStatus.Text, oLedgerHeader.TxType); } #endregion #region LoadTxferFepInfo(); var oFepHeader = ctx.FepBatchHeader.Find(this.TxferId); if (oFepHeader != null) { txtTxNumber.Text = oFepHeader.TxNumber; txtTxType.Text = oFepHeader.TxType; cboFromLocation.SelectedValue = WorkplaceEx.GetWorkplaceIdByCode(oFepHeader.SHOP); cboToLocation.SelectedValue = WorkplaceEx.GetWorkplaceIdByCode(oFepHeader.FTSHOP); dtpTxDate.Value = oFepHeader.TxDate.Value; txtLatestConfirmedOn.Text = DateTimeHelper.DateTimeToString(oFepHeader.CONFIRM_TRF_LASTUPDATE.Value, false); txtLatestConfirmedBy.Text = oFepHeader.CONFIRM_TRF_LASTUSER; txtRecordStatus.Text = string.Format(txtRecordStatus.Text, oFepHeader.TxType); } #endregion } } BindTxferDetailsInfo(); CalcTotal(); }
private int Import() { int result = 0; using (var ctx = new EF6.RT2020Entities()) { using (var scope = ctx.Database.BeginTransaction()) { try { for (int i = 0; i < md.Length; i++) { string txNumber = SystemInfoHelper.Settings.QueuingTxNumber(EnumHelper.TxType.TXF); #region Guid headerId = ImportTxferHeader(md[i].Master as TxferTxtIEMaster, txNumber); var master = md[i].Master as TxferTxtIEMaster; var oHeader = new EF6.InvtBatchTXF_Header(); oHeader.HeaderId = Guid.NewGuid(); oHeader.TxType = EnumHelper.TxType.TXF.ToString(); oHeader.TxNumber = txNumber; oHeader.TxDate = master.TxDate; oHeader.TransferredOn = master.TxferDate; oHeader.CompletedOn = master.CompletionDate; oHeader.FromLocation = WorkplaceEx.GetWorkplaceIdByCode(master.FromLocation); oHeader.ToLocation = WorkplaceEx.GetWorkplaceIdByCode(master.ToLocation); oHeader.StaffId = StaffEx.GetStaffIdByStaffNumber(master.Operator); oHeader.Status = Convert.ToInt32(EnumHelper.Status.Draft.ToString("d")); oHeader.Reference = master.RefNumber; oHeader.Remarks = master.Remarks; oHeader.CreatedBy = ConfigHelper.CurrentUserId; oHeader.CreatedOn = DateTime.Now; oHeader.ModifiedBy = ConfigHelper.CurrentUserId; oHeader.ModifiedOn = DateTime.Now; ctx.InvtBatchTXF_Header.Add(oHeader); ctx.SaveChanges(); Guid headerId = oHeader.HeaderId; #endregion if (headerId != Guid.Empty) { lvImportedList.Items[i].Text = txNumber; #region ImportTxferDetails(md[i].Details, headerId, txNumber); object[] details = md[i].Details; if (details != null) { for (int j = 0; j < details.Length; j++) { TxferTxtIEDetails detail = details[j] as TxferTxtIEDetails; Guid prodId = GetProductId(detail); if (prodId != Guid.Empty) { var oDetail = new EF6.InvtBatchTXF_Details(); oDetail.DetailsId = Guid.NewGuid(); oDetail.ProductId = prodId; oDetail.HeaderId = headerId; oDetail.LineNumber = j + 1; oDetail.TxNumber = txNumber; oDetail.TxType = EnumHelper.TxType.TXF.ToString(); oDetail.QtyConfirmed = 0; oDetail.QtyHHT = 0; oDetail.QtyManualInput = 0; oDetail.QtyReceived = detail.TxferQty; oDetail.QtyRequested = detail.RequiredQty; oDetail.Remarks = detail.Remarks; ctx.InvtBatchTXF_Details.Add(oDetail); ctx.SaveChanges(); result++; } } } #endregion result++; } } scope.Commit(); } catch (Exception ex) { scope.Rollback(); } } } return(result); }
private int Import() { int result = 0; using (var ctx = new EF6.RT2020Entities()) { using (var scope = ctx.Database.BeginTransaction()) { try { for (int i = 0; i < md.Length; i++) { string txNumber = SystemInfoHelper.Settings.QueuingTxNumber(EnumHelper.TxType.CAP); #region Guid headerId = ImportCAPHeader(md[i].Master as CAPTxtIEMaster, txNumber); CAPTxtIEMaster master = md[i].Master as CAPTxtIEMaster; var oHeader = new EF6.InvtBatchCAP_Header(); oHeader.HeaderId = Guid.NewGuid(); oHeader.TxType = EnumHelper.TxType.CAP.ToString(); oHeader.TxNumber = txNumber; oHeader.TxDate = master.RecvDate; oHeader.WorkplaceId = WorkplaceEx.GetWorkplaceIdByCode(master.Location); oHeader.StaffId = StaffEx.GetStaffIdByStaffNumber(master.Operator); oHeader.SupplierId = SupplierEx.GetSupplierIdBySupplierCode(master.Supplier); oHeader.Status = Convert.ToInt32(EnumHelper.Status.Draft.ToString("d")); oHeader.Reference = master.RefNumber; oHeader.Remarks = master.Remarks; oHeader.CurrencyCode = "HKD"; oHeader.ExchangeRate = (decimal)1; oHeader.CreatedBy = ConfigHelper.CurrentUserId; oHeader.CreatedOn = DateTime.Now; oHeader.ModifiedBy = ConfigHelper.CurrentUserId; oHeader.ModifiedOn = DateTime.Now; ctx.InvtBatchCAP_Header.Add(oHeader); ctx.SaveChanges(); Guid headerId = oHeader.HeaderId; #endregion decimal ttlAmt = 0; #region decimal ttlAmt = ImportCAPDetails(md[i].Details, headerId, txNumber); object[] details = md[i].Details; if (details != null) { for (int j = 0; j < details.Length; j++) { CAPTxtIEDetails detail = details[j] as CAPTxtIEDetails; Guid prodId = GetProductId(detail); if (prodId != Guid.Empty) { var oDetail = new EF6.InvtBatchCAP_Details(); oDetail.DetailsId = Guid.NewGuid(); oDetail.ProductId = prodId; oDetail.HeaderId = headerId; oDetail.LineNumber = j + 1; oDetail.TxNumber = txNumber; oDetail.TxType = EnumHelper.TxType.CAP.ToString(); oDetail.Qty = detail.ReceivedQty; oDetail.UnitAmount = detail.ReceivedUnitAmount; oDetail.UnitAmountInForeignCurrency = detail.ReceivedUnitAmount; ctx.InvtBatchCAP_Details.Add(oDetail); ctx.SaveChanges(); ttlAmt += oDetail.Qty.Value * oDetail.UnitAmount.Value; } else { string skippedProduct = String.Format("?{0} {1} {2} {3}", detail.StockCode, detail.Appendix1, detail.Appendix2, detail.Appendix3); skippedList.Add(skippedProduct); } } } #endregion oHeader = ctx.InvtBatchCAP_Header.Find(headerId); if (oHeader != null) { oHeader.TotalAmount = ttlAmt; ctx.SaveChanges(); UpdateListView(i, txNumber); skippedList.Clear(); } result++; } scope.Commit(); } catch (Exception ex) { scope.Rollback(); } } } return(result); }