예제 #1
0
        public void GetOperator()
        {
            DataTable table = SD3000.GetOperators(ConnString);

            if (table != null)
            {
                cboBiller.DataSource    = table;
                cboBiller.DisplayMember = "opname";
                cboBiller.ValueMember   = "opname";
            }
        }
예제 #2
0
        public void GetCredTypes()
        {
            DataTable table = SD3000.GetCredTypes(ConnString);

            if (table != null)
            {
                cboCredType.DataSource    = table;
                cboCredType.DisplayMember = "name";
                cboCredType.ValueMember   = "id";
            }
        }
예제 #3
0
        /// <summary>
        /// 获取速达账套
        /// </summary>
        public void GetAccounts()
        {
            DataTable table = SD3000.GetAccounts(ConnString);

            if (table != null)
            {
                cboAccount.DataSource            = table;
                cboAccount.DisplayMember         = "corpname";
                cboAccount.ValueMember           = "accsetname";
                cboAccount.SelectedIndexChanged += CboAccount_SelectedIndexChanged;
            }
        }
예제 #4
0
        public void GetSubjects()
        {
            if (string.IsNullOrWhiteSpace(ConnString))
            {
                throw new ArgumentNullException("数据库链接字符串不能为空!");
            }

            DataTable subjects = SD3000.GetSubjects(ConnString);

            if (subjects != null)
            {
                DataTable table = subjects.Copy();

                //税金科目
                cboTaxSSubject.DataSource    = table;
                cboTaxSSubject.DisplayMember = "displayname";
                cboTaxSSubject.ValueMember   = "subid";
                DataRow[] rows = table.Select("subcode='2221001005'");
                if (rows.Length > 0)
                {
                    cboTaxSSubject.SelectedIndex = table.Rows.IndexOf(rows[0]);
                }

                //主营业务科目
                cboIncomeSubject.DataSource    = subjects;
                cboIncomeSubject.DisplayMember = "displayname";
                cboIncomeSubject.ValueMember   = "subid";
                DataRow[] rows2 = subjects.Select("subcode='6001'");
                if (rows2.Length > 0)
                {
                    cboIncomeSubject.SelectedIndex = subjects.Rows.IndexOf(rows2[0]);
                }

                //收入科目
                DataTable cashTable = subjects.Copy();
                cboCashSubject.DataSource    = cashTable;
                cboCashSubject.DisplayMember = "displayname";
                cboCashSubject.ValueMember   = "subid";
                DataRow[] rows3 = cashTable.Select("subcode='1001'");
                if (rows2.Length > 0)
                {
                    cboCashSubject.SelectedIndex = cashTable.Rows.IndexOf(rows2[0]);
                }


                _SubjectTable = table.Copy();
                cboDetailSubject.DataSource            = _SubjectTable;
                cboDetailSubject.DisplayMember         = "displayname";
                cboDetailSubject.ValueMember           = "subid";
                cboDetailSubject.SelectedIndexChanged += CboSubject_SelectedIndexChanged;
            }
        }
예제 #5
0
        private void DataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            string    server             = string.Empty;
            string    dbUser             = string.Empty;
            string    password           = string.Empty;
            bool      IntegratedSecurity = false;
            DataTable table     = dataGridView1.DataSource as DataTable;
            string    fieldName = dataGridView1.Columns[e.ColumnIndex].DataPropertyName.ToLower();

            if (fieldName.Equals("integratedSecurity") || fieldName.Equals("password"))
            {
                if (dataGridView1.CurrentRow != null)
                {
                    server   = dataGridView1.CurrentRow.Cells["server"].Value.ToString();
                    dbUser   = dataGridView1.CurrentRow.Cells["dbUser"].Value.ToString();
                    password = dataGridView1.CurrentRow.Cells["password"].Value.ToString();
                    bool.TryParse(dataGridView1.CurrentRow.Cells["integratedSecurity"].Value.ToString()
                                  , out IntegratedSecurity);
                }
                else
                {
                    if (table != null && table.Rows.Count > 0)
                    {
                        server   = table.Rows[0]["server"].ToString();
                        dbUser   = table.Rows[0]["dbUser"].ToString();
                        password = table.Rows[0]["password"].ToString();
                        bool.TryParse(table.Rows[0]["integratedSecurity"].ToString()
                                      , out IntegratedSecurity);
                    }
                }

                if (!string.IsNullOrWhiteSpace(password) || IntegratedSecurity)
                {
                    string connString = DBHelper.GetConnectionString(server, "master", dbUser, password, IntegratedSecurity);
                    try
                    {
                        accset.Items.Clear();
                        _AccountTable = SD3000.GetSDSysDb(connString);
                    }
                    catch (SqlException e1)
                    {
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
            }
        }
예제 #6
0
 void SaveData()
 {
     Cursor.Current = Cursors.WaitCursor;
     try
     {
         DataTable table = dataGridView1.DataSource as DataTable;
         SD3000.SaveConnection(table);
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace + "\r\nSaveData");
     }
     finally
     {
         Cursor.Current = Cursors.Default;
     }
 }
예제 #7
0
        private void btnToSDInvoice_Click(object sender, EventArgs e)
        {
            FormMergeType formMergeType = new FormMergeType();

            if (formMergeType.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            string mergeType = formMergeType.MergeType;

            formMergeType.Close();

            try
            {
                DataTable table              = SD3000.GetConnectionTable();
                string    server             = table.Rows[0]["server"].ToString();
                string    dbName             = table.Rows[0]["accset"].ToString();
                string    dbUser             = table.Rows[0]["dbUser"].ToString();
                string    password           = table.Rows[0]["password"].ToString();
                bool      integratedSecurity = false;
                bool.TryParse(table.Rows[0]["integratedSecurity"].ToString(), out integratedSecurity);
                string connString = DBHelper.GetConnectionString(server, dbName, dbUser, password, integratedSecurity);

                DataTable mst = dataGridView_Mst.DataSource as DataTable;
                if (mst == null || mst.Rows.Count == 0)
                {
                    MessageBox.Show("没有可转凭证的记录!");
                    return;
                }

                DataTable credenceTable = GroupByMst(mergeType);

                FormCredence cred = new FormCredence();
                cred.InitialDataSource(connString, mergeType, credenceTable);
                cred.ShowDialog();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
예제 #8
0
 void GetData()
 {
     try
     {
         DataTable table = SD3000.GetConnectionTable();
         if (table.Rows.Count > 0)
         {
             accset.Items.Add(table.Rows[0]["accset"].ToString());
             dataGridView1.AllowUserToAddRows = false;
         }
         else
         {
             dataGridView1.AllowUserToAddRows = true;
         }
         dataGridView1.DataSource = table;
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace + "\r\nGetData");
     }
 }
예제 #9
0
        //获取应收账款科目
        private void btnGetSub_Click(object sender, EventArgs e)
        {
            if (cboAccount.SelectedIndex == -1)
            {
                if (cboAccount.SelectedIndex == -1)
                {
                    MessageBox.Show("请选择要导入的账套");
                    cboAccount.Focus();
                    return;
                }
            }

            DataTable table = dataGridView1.DataSource as DataTable;

            if (table == null || table.Rows.Count == 0)
            {
                MessageBox.Show("细表资料为空,无法获取科目");
                return;
            }

            foreach (DataRow row in table.Rows)
            {
                string vendor = row["vendor"].ToString();
                if (string.IsNullOrWhiteSpace(vendor))
                {
                    continue;
                }

                DataTable subTable = SD3000.GetSubjectByName(ConnString, vendor);
                if (subTable != null && subTable.Rows.Count > 0)
                {
                    row["subid"]        = subTable.Rows[0]["subid"];
                    row["subID_D_Name"] = subTable.Rows[0]["name"];
                }
            }
        }
예제 #10
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            if (cboAccount.SelectedIndex == -1)
            {
                MessageBox.Show("请选择要导入的账套");
                cboAccount.Focus();
                return;
            }
            if (cboCredType.SelectedIndex == -1)
            {
                MessageBox.Show("请选择凭证字");
                cboCredType.Focus();
                return;
            }
            if (cboBiller.SelectedIndex == -1)
            {
                MessageBox.Show("请选择制单人");
                cboBiller.Focus();
                return;
            }
            if (cboIncomeSubject.SelectedIndex == -1)
            {
                MessageBox.Show("请选择主营业务收入科目");
                cboIncomeSubject.Focus();
                return;
            }
            if (cboTaxSSubject.SelectedIndex == -1)
            {
                MessageBox.Show("请选择应交税费科目");
                cboTaxSSubject.Focus();
                return;
            }

            int credtype = -1;

            if (int.TryParse(cboCredType.SelectedValue.ToString(), out credtype))
            {
                Credtype = credtype;
            }

            int subId_C = -1;

            if (int.TryParse(cboIncomeSubject.SelectedValue.ToString(), out subId_C))
            {
                Sub_C = subId_C;
            }

            int subId_D = -1;

            int.TryParse(cboCashSubject.SelectedValue.ToString(), out subId_D);

            int subId_Tax = -1;

            if (int.TryParse(cboTaxSSubject.SelectedValue.ToString(), out subId_Tax))
            {
                Sub_Tax = subId_Tax;
            }

            BillMaker = cboBiller.SelectedValue.ToString();

            CredDate = dteCredDate.Value;

            int moneyId = 0;

            DataTable table = dataGridView1.DataSource as DataTable;

            if (table == null || table.Rows.Count == 0)
            {
                MessageBox.Show("细表为空,无凭证可生成!");
                return;
            }

            try
            {
                SD3000.CreateCredence(ConnString, table, credtype, CredDate, BillMaker, subId_Tax, subId_C, subId_D, moneyId);
                MessageBox.Show("凭证生成成功!");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
예제 #11
0
        DataTable GroupByMst(string mergeType)
        {
            DataTable credenceTable = SD3000.GetEmptyCredenceItem();

            DataTable mstTable = dataGridView_Mst.DataSource as DataTable;

            if (mstTable == null)
            {
                return(credenceTable);
            }

            switch (mergeType)
            {
            case  "按购货单位合并":
                #region
                var query = from t in mstTable.AsEnumerable()
                            group t by new { t1 = t.Field <string>("ghdwsbh") } into m
                    select new
                {
                    vendorcode = m.Key.t1,
                    vendor     = m.FirstOrDefault().Field <string>("ghdwmc"),
                    debit      = m.Sum(n => n.Field <decimal>("jshj")),
                    credit     = m.Sum(n => n.Field <decimal>("hjse"))
                };
                if (query.ToList().Count > 0)
                {
                    query.ToList().ForEach(q =>
                    {
                        DataRow row   = credenceTable.NewRow();
                        row["debit"]  = q.debit;
                        row["credit"] = q.credit;
                        row["vendor"] = q.vendor;
                        credenceTable.Rows.Add(row);
                    });
                }
                #endregion
                break;

            case "按购货单位和期别合并":
                #region
                var query2 = from t in mstTable.AsEnumerable()
                             group t by new { t1 = t.Field <string>("ghdwmc"), t2 = t.Field <string>("qb") } into m
                    select new
                {
                    vendor = m.Key.t1,
                    kprq   = m.Key.t2,
                    debit  = m.Sum(n => n.Field <decimal>("jshj")),
                    credit = m.Sum(n => n.Field <decimal>("hjse"))
                };
                if (query2.ToList().Count > 0)
                {
                    query2.ToList().ForEach(q =>
                    {
                        DataRow row   = credenceTable.NewRow();
                        row["debit"]  = q.debit;
                        row["credit"] = q.credit;
                        row["vendor"] = q.vendor;
                        credenceTable.Rows.Add(row);
                    });
                }
                #endregion
                break;

            case "合并生成一张凭证":
                #region
                DataRow r      = credenceTable.NewRow();
                decimal debit  = 0m;
                decimal credit = 0m;
                foreach (DataRow row in mstTable.Rows)
                {
                    if (row.RowState == DataRowState.Deleted)
                    {
                        continue;
                    }

                    debit  += decimal.Parse(row["jshj"].ToString());
                    credit += decimal.Parse(row["hjse"].ToString());
                }
                r["debit"]  = debit;
                r["credit"] = credit;
                credenceTable.Rows.Add(r);
                #endregion
                break;

            case "不合并":
                #region
                foreach (DataRow row in mstTable.Rows)
                {
                    if (row.RowState == DataRowState.Deleted)
                    {
                        continue;
                    }

                    DataRow r2 = credenceTable.NewRow();
                    r2["debit"]  = row["jshj"];
                    r2["credit"] = row["hjse"];
                    r2["vendor"] = row["ghdwmc"];
                    credenceTable.Rows.Add(r2);
                }
                #endregion
                break;
            }

            return(credenceTable);
        }