Example #1
0
        public static TaxCode GetVatRateByPrimaryKey(string key)
        {
            TaxCode taxcode = null;

            if (application != null)
            {
                Sage.Common.Data.DbKey dbkey = new Sage.Common.Data.DbKey(Convert.ToInt32(key));
                taxcode = Sage.Accounting.TaxModule.TaxCodeFactory.Factory.Fetch(dbkey);
            }

            return(taxcode);
        }
Example #2
0
        public static ClassificationRoot SageTaxCodeToMTClassification(TaxCode taxcode)
        {
            ClassificationRoot classificationroot = new ClassificationRoot();
            Classification     classification     = new Classification();

            classification.id         = "";
            classification.externalId = taxcode.PrimaryKey.DbValue.ToString();

            classification.name = string.Format("{0}-{1} ({2})", taxcode.Code, taxcode.Name, taxcode.TaxRate);

            classification.active = true;

            classificationroot.classification = classification;
            return(classificationroot);
        }
Example #3
0
        public static string CreateInvoice(string supplierid, string invoicenumber, string invoicedate, decimal amount, decimal taxamount, List <LineItem> lineitems)
        {
            string newid = "";

            try
            {
                Sage.Accounting.PurchaseLedger.PurchaseInvoiceInstrument invoice = Sage.Accounting.PurchaseLedger.PurchaseInvoiceInstrumentFactory.Factory.CreateNew();

                invoice.SuppressExceedsCreditLimitException = true;
                invoice.Supplier     = Sage200Api.GetSupplierByPrimaryKey(supplierid);
                invoice.InstrumentNo = invoicenumber;

                invoice.InstrumentDate = DateTime.ParseExact(invoicedate, "MM/dd/yyyy hh:mm:ss", CultureInfo.InvariantCulture);

                invoice.NetValue = amount - taxamount;
                invoice.TaxValue = taxamount;

                invoice.Authorised = Sage.Accounting.AuthorisationTypeEnum.AuthorisationTypeNotRequired;

                // ADD IN THE LINE ITEMS - GLACCOUNT, DEPARTMENT, CLASSIFICATION (VAT Rate), LINE AMOUNT
                NominalAnalysisItem nominal = (Sage.Accounting.TradeLedger.NominalAnalysisItem)invoice.NominalAnalysisItems[0];
                TaxAnalysisItem     tax     = (Sage.Accounting.TradeLedger.TaxAnalysisItem)invoice.TaxAnalysisItems[0];

                bool first = true;

                foreach (LineItem lineitem in lineitems)
                {
                    if (first)
                    {
                        first = false;
                    }
                    else
                    {
                        nominal = (NominalAnalysisItem)invoice.NominalAnalysisItems.AddNew();
                        tax     = (TaxAnalysisItem)invoice.TaxAnalysisItems.AddNew();
                    }

                    // CREATE THE NOMINAL ANALYSIS
                    NominalCode nominalcode = Sage200Api.GetNominalCodeByPrimaryKey(lineitem.GLAccountID);
                    nominal.NominalSpecification = nominalcode.NominalSpecification;
                    nominal.Narrative            = lineitem.Description;
                    nominal.Amount = lineitem.NetAmount;

                    // CREATE THE VAT ANALYSIS
                    TaxCode taxcode = Sage200Api.GetVatRateByPrimaryKey(lineitem.ClassificationID);
                    tax.TaxCode   = taxcode;
                    tax.Goods     = lineitem.NetAmount;
                    tax.TaxAmount = lineitem.TaxAmount;
                }

                //
                invoice.Validate();
                invoice.Update();                 // NO WAY TO TELL IF THIS SUCCEEDS!
                newid = invoice.ActualPostedAccountEntry.PrimaryKey.DbValue.ToString();
            }
            catch (Exception ex)
            {
                newid = "";
                Logger.WriteLog(ex);
            }

            return(newid);
        }