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);
                }
            }
        }
Example #2
0
        /**
         * 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();
        }
Example #3
0
        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);
        }
Example #4
0
        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);
        }