Exemplo n.º 1
0
        public override void ExportTo(CABankStatementEntry graph, List <CABankStatement> aStatements)
        {
            bool updateCurrent = graph.casetup.Current.ImportToSingleAccount ?? false;

            foreach (OFXStatementReader.STMTRS iAcctStatement in this.Content.Stmtrs)
            {
                this.Export(graph, iAcctStatement, updateCurrent);
                aStatements.Add(graph.BankStatement.Current);
            }
        }
Exemplo n.º 2
0
		protected void Export(CABankStatementEntry aGraph, STMTRS aAcctStatement, bool updateCurrent) 
		{
			if (!aAcctStatement.HasAccountInfo())
				throw new PXException(Messages.OFXImportErrorAccountInfoIsIncorrect);
			
			CashAccount acct = aGraph.cashAccountByExtRef.Select(aAcctStatement.IsBankAccount() ? aAcctStatement.BANKACCTFROM.ACCTID : aAcctStatement.CCACCTFROM.ACCTID);
			if (acct == null) throw new PXException(Messages.CashAccountWithExtRefNbrIsNotFoundInTheSystem, aAcctStatement.BANKACCTFROM.ACCTID);
			if (aGraph.casetup.Current.IgnoreCuryCheckOnImport != true && acct.CuryID != aAcctStatement.CURDEF)
                throw new PXException(Messages.CashAccountHasCurrencyDifferentFromOneInStatement, acct.CashAccountCD, acct.CuryID, aAcctStatement.CURDEF);

			foreach (OFXStatementReader.STMTTRN iTran in aAcctStatement.BANKTRANLIST.Trans)
			{
				string stmtRefNbr;
				if (aGraph.IsAlreadyImported(acct.CashAccountID, iTran.FITID, out stmtRefNbr))
				{
                    throw new PXException(Messages.TransactionWithFitIdHasAlreadyBeenImported, iTran.FITID, stmtRefNbr, acct.CashAccountCD, acct.Descr);
				}
			}

			CABankStatement statement = null;
			if (updateCurrent == false || aGraph.BankStatement.Current == null || aGraph.BankStatement.Current.CashAccountID == null)
			{
				aGraph.Clear();
				statement = new CABankStatement();
				statement.CashAccountID = acct.CashAccountID;
				statement = aGraph.BankStatement.Insert(statement);
				aGraph.BankStatement.Current = statement;
			}
			else
			{
				statement = aGraph.BankStatement.Current ;
				if (statement.CashAccountID.HasValue)
				{
					if (statement.CashAccountID != acct.CashAccountID)
					{
                        throw new PXException(Messages.ImportedStatementIsMadeForAnotherAccount, acct.CashAccountCD, acct.Descr);
					}
				}				
			}
			CABankStatement copy = (CABankStatement)aGraph.BankStatement.Cache.CreateCopy(statement);
			Copy(copy, aAcctStatement);
			statement = aGraph.BankStatement.Update(copy);
			foreach (OFXStatementReader.STMTTRN iTran in aAcctStatement.BANKTRANLIST.Trans)
			{
				CABankStatementDetail detail = new CABankStatementDetail();
				Copy(detail,iTran);				
				detail = aGraph.Details.Insert(detail);
				CABankStatementDetail detail1 = (CABankStatementDetail)aGraph.Details.Cache.CreateCopy(detail);
				//Must be done after to avoid overwriting of debit by credit
				CopyForUpdate(detail1, iTran);
				detail = aGraph.Details.Update(detail1);
			}
			aGraph.Save.Press();
		}
Exemplo n.º 3
0
		public override void ExportTo(CABankStatementEntry graph, List<CABankStatement> aStatements)
		{
			bool updateCurrent = graph.casetup.Current.ImportToSingleAccount ?? false;
			foreach (OFXStatementReader.STMTRS iAcctStatement in this.Content.Stmtrs)
			{
				this.Export(graph, iAcctStatement, updateCurrent);
				aStatements.Add(graph.BankStatement.Current);
			}
		}
Exemplo n.º 4
0
        protected void Export(CABankStatementEntry aGraph, STMTRS aAcctStatement, bool updateCurrent)
        {
            if (!aAcctStatement.HasAccountInfo())
            {
                throw new PXException(Messages.OFXImportErrorAccountInfoIsIncorrect);
            }

            CashAccount acct = aGraph.cashAccountByExtRef.Select(aAcctStatement.IsBankAccount() ? aAcctStatement.BANKACCTFROM.ACCTID : aAcctStatement.CCACCTFROM.ACCTID);

            if (acct == null)
            {
                throw new PXException(Messages.CashAccountWithExtRefNbrIsNotFoundInTheSystem, aAcctStatement.BANKACCTFROM.ACCTID);
            }
            if (aGraph.casetup.Current.IgnoreCuryCheckOnImport != true && acct.CuryID != aAcctStatement.CURDEF)
            {
                throw new PXException(Messages.CashAccountHasCurrencyDifferentFromOneInStatement, acct.CashAccountCD, acct.CuryID, aAcctStatement.CURDEF);
            }

            foreach (OFXStatementReader.STMTTRN iTran in aAcctStatement.BANKTRANLIST.Trans)
            {
                string stmtRefNbr;
                if (aGraph.IsAlreadyImported(acct.CashAccountID, iTran.FITID, out stmtRefNbr))
                {
                    throw new PXException(Messages.TransactionWithFitIdHasAlreadyBeenImported, iTran.FITID, stmtRefNbr, acct.CashAccountCD, acct.Descr);
                }
            }

            CABankStatement statement = null;

            if (updateCurrent == false || aGraph.BankStatement.Current == null || aGraph.BankStatement.Current.CashAccountID == null)
            {
                aGraph.Clear();
                statement = new CABankStatement();
                statement.CashAccountID = acct.CashAccountID;
                statement = aGraph.BankStatement.Insert(statement);
                aGraph.BankStatement.Current = statement;
            }
            else
            {
                statement = aGraph.BankStatement.Current;
                if (statement.CashAccountID.HasValue)
                {
                    if (statement.CashAccountID != acct.CashAccountID)
                    {
                        throw new PXException(Messages.ImportedStatementIsMadeForAnotherAccount, acct.CashAccountCD, acct.Descr);
                    }
                }
            }
            CABankStatement copy = (CABankStatement)aGraph.BankStatement.Cache.CreateCopy(statement);

            Copy(copy, aAcctStatement);
            statement = aGraph.BankStatement.Update(copy);
            foreach (OFXStatementReader.STMTTRN iTran in aAcctStatement.BANKTRANLIST.Trans)
            {
                CABankStatementDetail detail = new CABankStatementDetail();
                Copy(detail, iTran);
                detail = aGraph.Details.Insert(detail);
                CABankStatementDetail detail1 = (CABankStatementDetail)aGraph.Details.Cache.CreateCopy(detail);
                //Must be done after to avoid overwriting of debit by credit
                CopyForUpdate(detail1, iTran);
                detail = aGraph.Details.Update(detail1);
            }
            aGraph.Save.Press();
        }