public AccountValut BaseValut()
        {
            if (db == null)
            {
                throw new ArgumentNullException("DB connection is null!");
            }

            AccountValut val = new AccountValut();

            try
            {
                string sql = String.Format("SELECT * FROM valut WHERE deleted IS NULL AND isbase = 1");

                AtLog.AddMessage(sql);

                DataRow row = db.GetDataRow(sql);

                if (row == null)
                {
                    return(null);
                }

                val.idvalut   = (int)row["idvalut"];
                val.name      = (string)row["name"];
                val.shortname = (string)row["shortname"];
                val.ValutRate = 1d;
            }
            catch (Exception ex) {
                AtLog.AddMessage(ex.ToString());
            }

            return(val);
        }
        void AcceptBtnClick(object sender, EventArgs e)
        {
            if (importStrategies == null)
            {
                return;
            }

            try
            {
                foreach (DataRow row in importStrategies.PaymentTable().Rows)
                {
                    if (row[PaymentImport.IDCUSTOMER_COLUMN] == DBNull.Value)
                    {
                        AtMessageBox.Show("У одного или более платежей не указан контрагент!");
                        return;
                    }
                }

                string paymentGroupName = DateTime.Now.Date.ToString("yyyy-MM-dd");

                int paymentGroupId = accountingDoc.ExistPaymentGroup(paymentGroupName);

                if (paymentGroupId == -1)
                {
                    paymentGroupId = accountingDoc.AddPaymentGroup(paymentGroupName);
                }

                DataTable pTable = importStrategies.PaymentTable();

                AccountValut valut = accountingDoc.BaseValut();

                for (int count = pTable.Rows.Count - 1; count >= 0; count--)
                {
                    Payment payment = importStrategies.GetPayment(paymentGroupId, valut, pTable.Rows[count]);

                    if (!accountingDoc.SavePayment(payment))
                    {
                        return;
                    }

                    pTable.Rows.Remove(pTable.Rows[count]);
                }

                AtMessageBox.Show("Импортирование платежей закончено!");
            }
            catch (Exception exp)
            {
                AtLog.AddMessage(exp.Message + "  " + exp.StackTrace);
            }
        }
        public override Payment GetPayment(int idPaymentGroup, AccountValut valut, DataRow paymentRow)
        {
            Payment payment = new Payment();

            payment.Name              = (string)paymentRow[PAYMENT_NUMBER];
            payment.DtCre             = (DateTime)paymentRow[PAYMENT_DATE];
            payment.DtDoc             = (DateTime)paymentRow[PAYMENT_DATE];
            payment.IdPeople          = Settings.idpeople;
            payment.IdCustomer        = (int)paymentRow[IDCUSTOMER_COLUMN];
            payment.loginCre          = Settings.people_fio;
            payment.SmDoc             = (double)paymentRow[PAYMENT_SUM];
            payment.AddStr            = (string)paymentRow[PAYMENT_DESCRIPTION];
            payment.Valut             = valut;
            payment.SmBase            = (double)paymentRow[PAYMENT_SUM];
            payment.IdPaymentDocGroup = idPaymentGroup;
            payment.IdDocOper         = Payment.DOCOPER_INCOMING_PAYMENT_ORDER;
            return(payment);
        }
 public abstract Payment GetPayment(int idPaymentGroup, AccountValut valut, DataRow paymentRow);