コード例 #1
0
        public void TestManualJournalCanBeSerialized()
        {
            ManualJournal manualJournal = new ManualJournal
            {
                Narration = "Test Manual Journal",
                Status = "ACTIVE",
                JournalLines = new ManualJournalLineItems
                {
                    new ManualJournalLineItem
                    {
                        AccountCode = "200",
                        Description = "Description",
                        LineAmount = 10.0m
                    }
                }
            };

            string xml = ModelSerializer.Serialize(manualJournal);

            Assert.AreEqual(@"<ManualJournal>
  <ManualJournalID>00000000-0000-0000-0000-000000000000</ManualJournalID>
  <Status>ACTIVE</Status>
  <LineAmountTypes>NoTax</LineAmountTypes>
  <Narration>Test Manual Journal</Narration>
  <JournalLines>
    <JournalLine>
      <Description>Description</Description>
      <LineAmount>10.0</LineAmount>
      <AccountCode>200</AccountCode>
    </JournalLine>
  </JournalLines>
</ManualJournal>".Replace("'", "\""), xml);
        }
コード例 #2
0
ファイル: XeroCoreApi.cs プロジェクト: vxhoa/Xero-Net
 public ManualJournal Update(ManualJournal item)
 {
     return(ManualJournals.Update(item));
 }
コード例 #3
0
ファイル: XeroCoreApi.cs プロジェクト: vxhoa/Xero-Net
 public ManualJournal Create(ManualJournal item)
 {
     return(ManualJournals.Create(item));
 }
コード例 #4
0
 public async Task <ManualJournal> UpdateAsync(ManualJournal item)
 {
     return(await ManualJournals.UpdateAsync(item));
 }
コード例 #5
0
        public void UploadExpensestoXero()
        {
            string  Narration          = "";
            string  FootCheck          = "";
            decimal ExpenseValueTotal  = 0;
            decimal ExpenseValue       = 0;
            string  Nominal            = "000";
            int     ExpenseLineCount   = 0;
            string  DefaultExpenseCode = DefaultExpenseNominalCode.Text;
            string  DefaultBSCode      = DefaultExpenseNominalCode.Text;
            string  TaxType            = "NONE";
            decimal VATValue           = 0;


            try {
                myxeroapi = XeroAuthenticate(this, true, "");
            }
            catch
            {
                throw new Exception("Not connected to Xero");
            }


            XeroConnection.Text = myxeroapi.Organisation.Name.ToString();

            dynamic stuff = JsonConvert.DeserializeObject(GetPeopleHRData());


            try {
                ExpenseLineCount = Convert.ToInt32(stuff.Result.Count);
            }
            catch
            {
                Completed.Text = "No Expenses to upload";
                throw new Exception("No Expenses to upload");
            }

            try
            {
                var Journal = new ManualJournal {
                };
                int counter = 0;
                foreach (var x in stuff.Result)
                {
                    if (Narration != string.Concat("Expense Claim", " - ", x["Expense Report Description"], " - ", x["First Name"], " ", x["Last Name"]))
                    {
                        Journal = new ManualJournal
                        {
                            Date      = x["Expense Line Date"],
                            Narration = string.Concat("Expense Claim", " - ", x["Expense Report Description"], " - ", x["First Name"], " ", x["Last Name"]),
                        };
                        Journal.Status          = ManualJournalStatus.Draft;
                        Journal.LineAmountTypes = Xero.Api.Core.Model.Types.LineAmountType.Inclusive;
                        Journal.Lines           = new List <Line>();
                        Narration         = string.Concat("Expense Claim", " - ", x["Expense Report Description"], " - ", x["First Name"], " ", x["Last Name"]);
                        ExpenseValueTotal = 0;
                    }
                    String St = x["Expense Line Category"];


                    if (St == null)
                    {
                        Nominal = "";
                    }
                    else
                    {
                        int pFrom = St.IndexOf("(") + "(".Length;
                        int pTo   = St.LastIndexOf(")");
                        Nominal = St.Substring(pFrom, pTo - pFrom);
                    }

                    // Tax Calculation

                    if (x["Expense Line Taxable Amount"] == null)
                    {
                        TaxType  = "NONE";
                        VATValue = 0;
                    }
                    else
                    {
                        TaxType = "INPUT2";
                        double LineValue = (double)x["Expense Line Amount"];
                        VATValue = (decimal)Math.Round(LineValue - (LineValue / 1.2), 2);
                    }

                    // Expense Journal
                    Journal.Lines.Add(
                        new Line
                    {
                        AccountCode = Nominal,
                        TaxType     = TaxType,
                        Description = string.Concat(x["Expense Line Title"], " - ", x["Expense Report Description"], " - ", x["First Name"], " ", x["Last Name"]),
                        Amount      = x["Expense Line Amount"],
                        TaxAmount   = VATValue
                    }
                        );
                    ExpenseValue      = x["Expense Line Amount"];
                    ExpenseValueTotal = ExpenseValueTotal + ExpenseValue;
                    if (counter == ExpenseLineCount - 1)
                    {
                        FootCheck = "";
                    }
                    else
                    {
                        FootCheck = string.Concat("Expense Claim", " - ", stuff.Result[counter + 1]["Expense Report Description"], " - ", stuff.Result[counter + 1]["First Name"], " ", stuff.Result[counter + 1]["Last Name"]);
                    }
                    counter++;
                    if (Narration != FootCheck)
                    {
                        // Employee Expense Balance Sheet Account
                        Journal.Lines.Add(
                            new Line
                        {
                            AccountCode = DefaultBSCode,
                            TaxType     = "NONE",
                            Description = string.Concat(x["Expense Report Description"], " - ", x["First Name"], " ", x["Last Name"]),
                            Amount      = -ExpenseValueTotal,
                        }
                            );

                        myxeroapi.Create(Journal);
                        Completed.Text = "Journals Written";
                    }
                }
            }
            catch (Exception e)
            {
                Completed.Text = e.ToString();
            }
        }
コード例 #6
0
 public Task <ManualJournal> CreateAsync(ManualJournal item)
 {
     return(ManualJournals.CreateAsync(item));
 }