Esempio n. 1
0
 private void DGV_DoDragDrop(DataGridView dgv, string columnName, DataGridViewCellMouseEventArgs e, AccDataSource sourceType)
 {
     try
     {
         if (e.ColumnIndex < 0 || e.RowIndex < 0)
         {
             return;
         }
         List <AccDragItem> list = new List <AccDragItem>();
         foreach (DataGridViewRow row in dgv.SelectedRows)
         {
             AccDragItem item = new AccDragItem();
             item.dataSourceType = sourceType;
             item.dgv            = dgv;
             if (sourceType == AccDataSource.PosRevenue)
             {
                 item.intDragID = Date2Int((DateTime)row.Cells[columnName].Value);
             }
             else
             {
                 item.intDragID = (int)row.Cells[columnName].Value;
             }
             item.row = row;
             list.Add(item);
         }
         if (list.Count != 0)
         {
             DoDragDrop(list, DragDropEffects.Copy);
         }
     }
     catch { }
 }
Esempio n. 2
0
        private bool AddAccVoucherDetail(AccDragItem item, DamaiDataSet.AccVouchRow parent)
        {
            if (parent == null)
            {
                return(false);
            }
            if (item.row == null)
            {
                return(false);
            }
            if (item.row.DataBoundItem == null || item.row.DataBoundItem == DBNull.Value)
            {
                return(false);
            }
            string note = "", note1;
            string creditCode = "", debtCode = "";
            var    sourceRowView = item.row.DataBoundItem as DataRowView;

            if (sourceRowView == null)
            {
                return(false);
            }
            if (sourceRowView.Row == null)
            {
                return(false);
            }
            var detailTable = damaiDataSet.AccVouchDetail;

            try
            {
                short  shType = (short)item.dataSourceType;
                string strDay;
                switch (item.dataSourceType)
                {
                case AccDataSource.Voucher:
                    var voucherRow = sourceRowView.Row as DamaiDataSet.VoucherRow;
                    note = SafeNote(voucherRow.VendorRow.Name + " " + voucherRow.StockTime.Month.ToString() + "月貨款");
                    string dotVendorID = "." + (voucherRow.IsVendorIDNull()?"x":voucherRow.VendorID.ToString());
                    note1 = SafeNote(note + voucherRow.VoucherID);
                    detailTable.AddAccVouchDetailRow(Guid.NewGuid(), parent, Setup.AssetIngredients, voucherRow.Cost, 0, note1, shType, item.intDragID);
                    detailTable.AddAccVouchDetailRow(Guid.NewGuid(), parent, Setup.VoucherShouldPay + dotVendorID, 0, voucherRow.Cost, note1, shType, item.intDragID);
                    if (parent.IsNoteNull())
                    {
                        parent.Note = note;
                    }
                    return(true);

                case AccDataSource.Expense:
                    var expenseRow = sourceRowView.Row as DamaiDataSet.ExpenseRow;
                    strDay = expenseRow.IsApplyTimeNull()?"":expenseRow.ApplyTime.ToString("M/dd");
                    if (!expenseRow.IsNoteNull())
                    {
                        note = SafeNote(expenseRow.Note);
                    }
                    if (expenseRow.IsTitleCodeCreditNull())
                    {
                        creditCode = damaiDataSet.BankAccount[0].AccountTitleCode;
                    }
                    else
                    {
                        creditCode = expenseRow.TitleCodeCredit;
                    }
                    if (!expenseRow.IsTitleCodeNull())
                    {
                        debtCode = expenseRow.TitleCode;
                    }
                    detailTable.AddAccVouchDetailRow(Guid.NewGuid(), parent, debtCode, expenseRow.Money, 0, strDay + note, shType, item.intDragID);
                    detailTable.AddAccVouchDetailRow(Guid.NewGuid(), parent, creditCode, 0, expenseRow.Money, strDay + note, shType, item.intDragID);
                    if (parent.IsNoteNull())
                    {
                        parent.Note = "零用金 " + note + " ...";
                    }
                    return(true);

                case AccDataSource.PosRevenue:
                    var revenueRow = sourceRowView.Row as DamaiDataSet.HeaderRow;
                    note = SafeNote(revenueRow.DataDate.ToString("M/dd"));
                    if (!revenueRow.IsRevenueNull() && revenueRow.IsCashNull() &&
                        revenueRow.IsCreditCardNull() && revenueRow.IsCoupondNull())
                    {
                        detailTable.AddAccVouchDetailRow(Guid.NewGuid(), parent, Setup.CashIncome, 0, revenueRow.Revenue, note + "營收", shType, item.intDragID);
                        detailTable.AddAccVouchDetailRow(Guid.NewGuid(), parent, Setup.CashReceivable, revenueRow.Revenue, 0, note + "营收", shType, item.intDragID);
                    }
                    if (!revenueRow.IsCashNull() && revenueRow.Cash != 0)
                    {
                        detailTable.AddAccVouchDetailRow(Guid.NewGuid(), parent, Setup.CashIncome, 0, revenueRow.Cash, note + "现金营收", shType, item.intDragID);
                        detailTable.AddAccVouchDetailRow(Guid.NewGuid(), parent, Setup.CashReceivable, revenueRow.Cash, 0, note + "现金营收", shType, item.intDragID);
                    }
                    if (!revenueRow.IsCreditCardNull() && revenueRow.CreditCard != 0)
                    {
                        detailTable.AddAccVouchDetailRow(Guid.NewGuid(), parent, Setup.CardIncome, 0, revenueRow.CreditCard, note + "刷卡营收", shType, item.intDragID);
                        detailTable.AddAccVouchDetailRow(Guid.NewGuid(), parent, Setup.CardReceivable, revenueRow.CreditCard, 0, note + "刷卡营收", shType, item.intDragID);
                    }
                    if (!revenueRow.IsCoupondNull() && revenueRow.Coupond != 0)
                    {
                        detailTable.AddAccVouchDetailRow(Guid.NewGuid(), parent, Setup.SoldOnCreditIncome, 0, revenueRow.Coupond, note + "赊销-劵", shType, item.intDragID);
                        detailTable.AddAccVouchDetailRow(Guid.NewGuid(), parent, Setup.SoldOnCreditReceivable, revenueRow.Coupond, 0, note + "赊销-劵", shType, item.intDragID);
                    }
                    if (parent.IsNoteNull())
                    {
                        parent.Note = note + "營收";
                    }
                    return(true);

                case AccDataSource.Bank:
                    var bankRow = sourceRowView.Row as DamaiDataSet.BankDetailRow;
                    if (bankRow == null)
                    {
                        return(false);
                    }
                    int    bankID     = bankRow.BankID;
                    var    bankAccRow = damaiDataSet.BankAccount.FindByID(bankID);
                    string bankName   = "銀行" + bankID.ToString();
                    if (bankAccRow != null && !bankAccRow.IsShowNameNull())
                    {
                        bankName = bankAccRow.ShowName;
                    }
                    strDay     = (bankRow.IsDayNull()?"":bankRow.Day.ToString("M/dd"));
                    note       = SafeNote("<" + bankName + strDay + ">" + (bankRow.IsNoteNull() ? "" : bankRow.Note));
                    creditCode = bankAccRow.AccountTitleCode + "." + bankID.ToString();
                    debtCode   = bankRow.IsTitleCodeNull() ? "" : bankRow.TitleCode;
                    if (bankRow.IsIsCreditNull() || !bankRow.IsCredit)      // 存款增加
                    {
                        detailTable.AddAccVouchDetailRow(Guid.NewGuid(), parent, creditCode, bankRow.Money, 0, note, (short)item.dataSourceType, item.intDragID);
                        detailTable.AddAccVouchDetailRow(Guid.NewGuid(), parent, debtCode, 0, bankRow.Money, note, (short)item.dataSourceType, item.intDragID);
                    }
                    else
                    {
                        detailTable.AddAccVouchDetailRow(Guid.NewGuid(), parent, creditCode, 0, bankRow.Money, note, (short)item.dataSourceType, item.intDragID);
                        detailTable.AddAccVouchDetailRow(Guid.NewGuid(), parent, debtCode, bankRow.Money, 0, note, (short)item.dataSourceType, item.intDragID);
                    }
                    if (parent.IsNoteNull())
                    {
                        parent.Note = note;
                    }
                    return(true);

                case AccDataSource.Shipment:
                    var shipmentRow = sourceRowView.Row as DamaiDataSet.ShipmentRow;
                    if (shipmentRow.IsCustomerNull())
                    {
                        note = "";
                    }
                    else
                    {
                        note = shipmentRow.CustomerRow.Name + " ";
                    }
                    if (!shipmentRow.IsShipTimeNull())
                    {
                        note += shipmentRow.ShipTime.Month.ToString() + "月進貨";
                    }
                    note1 = SafeNote(note + (shipmentRow.IsShipCodeNull() ? "" : shipmentRow.ShipCode.ToString()));
                    string dotCumstomerID = "." + (shipmentRow.IsCustomerNull()?"x":shipmentRow.Customer.ToString());
                    debtCode   = Setup.SoldOnCreditReceivable + dotCumstomerID;
                    creditCode = Setup.SoldOnCreditIncome + dotCumstomerID;
                    decimal cost = (shipmentRow.IsCostNull()?0:shipmentRow.Cost);
                    detailTable.AddAccVouchDetailRow(Guid.NewGuid(), parent, debtCode, cost, 0, note1, (short)item.dataSourceType, item.intDragID);
                    detailTable.AddAccVouchDetailRow(Guid.NewGuid(), parent, creditCode, 0, cost, note1, (short)item.dataSourceType, item.intDragID);
                    if (parent.IsNoteNull())
                    {
                        parent.Note = SafeNote("赊销 " + note);
                    }
                    return(true);

                default: return(false);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("加入傳票項目時出錯,原因:" + ex.Message);
                return(false);
            }
        }