protected void Page_Load (object sender, EventArgs e)
    {
        _payrollItem = GetPayrollItem();

        if (!_authority.HasPermission(Permission.CanManagePayroll, _payrollItem.OrganizationId, -1, Authorization.Flag.ExactOrganization))
            throw new UnauthorizedAccessException("Access Denied");


        if (!Page.IsPostBack)
        {
            // Populate all data

            this.TextDescription.Style.Add(HtmlTextWriterStyle.Width, "200px");
            this.TextAmount.Style.Add(HtmlTextWriterStyle.Width, "80px");

            this.LabelPayroll.Text = _payrollItem.Person.Canonical;
            this.LabelMonth.Text = DateTime.Now.AddMonths(1).ToString("yyyy MMM");

            PopulateGrid();

        }

        Page.Title = "Editing payroll of " + _payrollItem.Person.Canonical;

    }
        public ActionResult Edit(int CompId, int Month, int Year)
        {
            objPayService = new PayrollService();
            objPayItem    = new PayrollItem();
            List <PayrollItem>  PayItem = new List <PayrollItem>();
            List <EmployeeItem> lstEmp  = new List <EmployeeItem>();

            PayItem = objPayService.GetPayrollDetails1(Month, Year, CompId);

            if (PayItem.Count != 0)
            {
                objPayItem.lstPayroll = new List <PayrollItem>();
                TempData["Msg"]       = "EmployeeExists";
                objPayItem.lstPayroll.AddRange(PayItem);
                ViewBag.MonthList = Month;
                ViewBag.YearList  = Year;
            }

            List <CompanyItem> clsCompany = new List <CompanyItem>();

            clsCompany            = objPayService.BindCompany();
            objPayItem.lstCompany = new List <CompanyItem>();
            objPayItem.lstCompany.AddRange(clsCompany);
            BindMonthYear();

            // return View("_List", objPayItem);
            return(View(objPayItem));
        }
        public static int PumpAllPayrollItems(string Company)
        {
            Console.WriteLine("PayrollItemWage for Company " + Company);
            string sql = "SELECT * FROM PayrollItemWage";
            List <QBPayrollItem> payItems = new ODBCReaderToModel <QBPayrollItem>().CreateList(sql, Company);

            using (clsDataGetter dg = new clsDataGetter(CommonProcs.WCompanyConnStr))
            {
                dg.RunCommand("DELETE FROM PayrollItem WHERE QBFile='" + Company + "'");
            }
            if (payItems.Count > 0)
            {
                foreach (var QBpayItem in payItems)
                {
                    if (QBpayItem.Name.Contains("00") || QBpayItem.Name.Contains("01") || QBpayItem.Name.Contains("02"))
                    {
                        PayrollItem payItem = QBpayItem.ConvertTo <PayrollItem>();
                        Console.WriteLine("PayrollItem " + payItem.Name);
                        payItem.QBFile = Company;
                        payItem.Branch = payItem.Name.Substring(0, 2);

                        new ModelToSQL <PayrollItem>().WriteInsertSQL("PayrollItem", payItem, "payItemID", CommonProcs.WCompanyConnStr);
                    }
                }
            }
            return(payItems.Count);
        }
    private PayrollItem GetPayrollItem()
    {
        int         payrollItemId = Int32.Parse(Request.QueryString["PayrollItemId"]);
        PayrollItem payrollItem   = PayrollItem.FromIdentity(payrollItemId);

        return(payrollItem);
    }
        public ActionResult Create()
        {
            objPayService = new PayrollService();
            objPayItem    = new PayrollItem();

            List <CompanyItem> clsCompany = new List <CompanyItem>();

            clsCompany            = objPayService.BindCompany();
            objPayItem.lstCompany = new List <CompanyItem>();
            objPayItem.lstCompany.AddRange(clsCompany);
            BindMonthYear();

            int cid = 0;

            if (Session["CompID"] != null)
            {
                cid = Convert.ToInt32(Session["CompID"].ToString());
            }
            List <PayrollItem> lstPayoll = new List <PayrollItem>();

            lstPayoll             = objPayService.GridPayroll(cid);
            objPayItem.lstPayroll = new List <PayrollItem>();

            objPayItem.lstPayroll.AddRange(lstPayoll);
            return(View(objPayItem));
        }
Beispiel #6
0
    protected void GridPayroll_ItemCreated(object sender, GridItemEventArgs e)
    {
        if (e.Item is GridDataItem)
        {
            PayrollItem payrollItem = (PayrollItem)e.Item.DataItem;

            if (payrollItem == null)
            {
                return;
            }

            Label labelBudget      = (Label)e.Item.FindControl("LabelBudget");
            Label labelReportsTo   = (Label)e.Item.FindControl("LabelReportsTo");
            Label labelMonthlyCost = (Label)e.Item.FindControl("LabelMonthlyCost");

            if (payrollItem.BudgetId == 0)
            {
                labelBudget.Text = "UNBUDGETED!";
            }
            else
            {
                labelBudget.Text = payrollItem.Budget.Name;
            }

            labelReportsTo.Text   = payrollItem.ReportsToPerson.Canonical;
            labelMonthlyCost.Text = String.Format("{0:N2}", (payrollItem.BaseSalaryCents / 100.0) * (1.0 + payrollItem.AdditiveTaxLevel));


            HyperLink editLink = (HyperLink)e.Item.FindControl("LinkEdit");
            editLink.Attributes["href"]    = "#";
            editLink.Attributes["onclick"] = String.Format("return ShowPayrollAdjustmentsForm('{0}','{1}');",
                                                           payrollItem.Identity, e.Item.ItemIndex);
        }
    }
    protected void Page_Load(object sender, EventArgs e)
    {
        _payrollItem = GetPayrollItem();

        if (!_authority.HasPermission(Permission.CanManagePayroll, _payrollItem.OrganizationId, -1, Authorization.Flag.ExactOrganization))
        {
            throw new UnauthorizedAccessException("Access Denied");
        }


        if (!Page.IsPostBack)
        {
            // Populate all data

            this.TextDescription.Style.Add(HtmlTextWriterStyle.Width, "200px");
            this.TextAmount.Style.Add(HtmlTextWriterStyle.Width, "80px");

            this.LabelPayroll.Text = _payrollItem.Person.Canonical;
            this.LabelMonth.Text   = DateTime.Now.AddMonths(1).ToString("yyyy MMM");

            PopulateGrid();
        }

        Page.Title = "Editing payroll of " + _payrollItem.Person.Canonical;
    }
Beispiel #8
0
        public ActionResult PayrollReport(PayrollItem model)
        {
            List <PayrollItem> payrollItemList = new List <PayrollItem>();
            PayrollService     payrollService  = new PayrollService();
            int?cid = 0;

            if (Session["CompID"] != null)
            {
                cid = Convert.ToInt32(Session["CompID"].ToString());
            }
            if (cid == 0)
            {
                cid = model.CompId;
            }
            payrollItemList = payrollService.GetPayrollDetailsReport(model.Month, model.Year, cid);
            PayrollItem payrollitem = new PayrollItem();

            payrollitem.lstPayroll = new List <PayrollItem>();
            payrollitem.lstPayroll.AddRange(payrollItemList);
            BindMonthYear();
            List <CompanyItem> clsCompany = new List <CompanyItem>();

            clsCompany             = payrollService.BindCompany();
            payrollitem.lstCompany = new List <CompanyItem>();
            payrollitem.lstCompany.AddRange(clsCompany);
            return(View(payrollitem));
        }
Beispiel #9
0
 public int InsertPayroll(PayrollItem model)
 {
     try
     {
         PayrollMaster objPayroll = new PayrollMaster();
         objPayroll.Days        = model.Days;
         objPayroll.EmpId       = model.Empid;
         objPayroll.Month       = model.Month;
         objPayroll.Year        = model.Year;
         objPayroll.CompId      = model.CompId;
         objPayroll.OT          = model.OT;
         objPayroll.CreatedBy   = Convert.ToString(System.DateTime.Now);
         objPayroll.CreatedBy   = Convert.ToString(System.DateTime.Now);
         objPayroll.TotalDays   = model.TotalDays;
         objPayroll.DA          = model.DA;
         objPayroll.CreatedDate = System.DateTime.Now;
         objPayroll.UpdatedDate = System.DateTime.Now;
         //Mapper.CreateMap<PayrollItem, PayrollMaster>();
         //PayrollMaster objPayroll = Mapper.Map<PayrollMaster>(model);
         DbContext.PayrollMasters.Add(objPayroll);
         return(DbContext.SaveChanges());
     }
     catch (Exception ex)
     {
         throw;
     }
 }
Beispiel #10
0
        public int PumpPayrollItems(string Company)
        {
            string sql = "SELECT * FROM PayrollItemWage WHERE TimeModified > " + CommonProcs.TimeStampString(DateTime.Now.AddDays(-1));

            UpdateStatusBar("Opening Quickbooks", 10);
            List <QBPayrollItem> payItems = new ODBCReaderToModel <QBPayrollItem>().CreateList(sql, Company);

            if (payItems.Count > 0)
            {
                foreach (var QBpayItem in payItems)
                {
                    if (QBpayItem.Name.Contains("00") || QBpayItem.Name.Contains("01") || QBpayItem.Name.Contains("02"))
                    {
                        UpdateStatusBar("Adding " + QBpayItem.Name, 1);
                        PayrollItem payItem = QBpayItem.ConvertTo <PayrollItem>();
                        payItem.QBFile = Company;
                        using (clsDataGetter dg = new clsDataGetter(CommonProcs.WCompanyConnStr))
                        {
                            payItem.payItemID = dg.GetScalarInteger("SELECT payItemID FROM PayrollItem WHERE ListID='" + payItem.ListID + "' AND QBFile='" + Company + "'");
                        }
                        new ModelToSQL <PayrollItem>().WriteUpdateToSQL("PayrollItem", payItem, "payItemID", CommonProcs.WCompanyConnStr);
                    }
                }
            }
            UpdateStatusBar("Done", progBar.Maximum);
            return(payItems.Count);
        }
Beispiel #11
0
        public void DeletePayrollItems(string id)
        {
            PayrollItem pi = rep.GetPayrollItem(id);

            if (!pi.DefaultItem.Value)
            {
                rep.DeletePayrollItems(id);
            }
        }
Beispiel #12
0
        public List <PayrollItem> BindPayroll(int CompId)
        {
            Mapper.CreateMap <employee_master, EmployeeItem>();
            PayrollItem        pay         = new PayrollItem();
            List <PayrollItem> objEmpItem1 = new List <PayrollItem>();
            //   objEmpItem1.Add(new PayrollItem() { Empname = "crank arm", id = 1234 });

            // List<employee_master> objEmpMst = DbContext.employee_master.Where(m => m.Compid == (CompId == null || CompId == 0 ? m.Compid : CompId)).ToList();
            List <PayrollItem> objEmpItem = Mapper.Map <List <PayrollItem> >(objEmpItem1);

            return(objEmpItem);
        }
 public IActionResult Create(PayrollItem pro)
 {
     try
     {
         pro = _context.PayrollItems.Add(pro).Entity;
         _context.SaveChanges();
         return(Ok(new
         {
             Id = pro.Id,
             Message = "Ok"
         }));
     }
     catch (Exception e)
     {
         return(StatusCode(500));
     }
 }
 private void PopulateModelToNewEntity(PayrollItem query, IPayrollItemModel model)
 {
     query.Id            = model.Id;
     query.RowVersion    = model.RowVersion;
     query.RowStatus     = model.RowStatus;
     query.PayrolGroupId = model.PayrolGroupId;
     query.Name          = model.Name;
     query.ItemType      = model.ItemType;
     query.Type          = model.Type;
     query.Value         = model.Value;
     query.Unit          = model.Unit;
     query.Description   = model.Description;
     query.CreatedBy     = model.CreatedBy;
     query.CreatedDate   = model.CreatedDate;
     query.ModifiedBy    = model.ModifiedBy;
     query.ModifiedDate  = model.ModifiedDate;
 }
Beispiel #15
0
        public ActionResult PayrollReport()
        {
            PayrollService payrollService = new PayrollService();
            PayrollItem    payrollitem    = new PayrollItem();
            //List<PayrollItem> payrollItemList = new List<PayrollItem>();
            //payrollItemList = payrollService.GetPayrollDetails1();
            //payrollitem.lstPayroll = new List<PayrollItem>();
            //payrollitem.lstPayroll.AddRange(payrollItemList);

            List <CompanyItem> clsCompany = new List <CompanyItem>();

            clsCompany             = payrollService.BindCompany();
            payrollitem.lstCompany = new List <CompanyItem>();
            payrollitem.lstCompany.AddRange(clsCompany);
            BindMonthYear();
            //return View(objPayItem);
            return(View(payrollitem));
        }
 private static PayrollItemModel PopulateEntityToNewModel(PayrollItem item)
 {
     return(new PayrollItemModel
     {
         Id = item.Id,
         RowVersion = item.RowVersion,
         RowStatus = item.RowStatus,
         PayrolGroupId = item.PayrolGroupId,
         Name = item.Name,
         ItemType = item.ItemType,
         Type = item.Type,
         Value = item.Value,
         Unit = item.Unit,
         Description = item.Description,
         CreatedBy = item.CreatedBy,
         CreatedDate = item.CreatedDate,
         ModifiedBy = item.ModifiedBy,
         ModifiedDate = item.ModifiedDate,
     });
 }
Beispiel #17
0
    public List <PayrollInfo> Get(string WorkerID, DateTime saralyDate)
    {
        db.Open();

        string query = "select * from Payroll "
                       + " where WorkerID = @WorkerID and  SalaryDate = @SalaryDate ";

        var obj = (List <PayrollInfo>)db.Query <PayrollInfo>(query, new { WorkerID = WorkerID, SalaryDate = saralyDate });

        db.Close();

        PayrollItem itemHander = new PayrollItem(this.db, this.transaction);

        foreach (var header in obj)
        {
            header.PayrollItemList = itemHander.Get(header.WorkerID, header.SalaryDate);
        }


        return(obj);
    }
        public SheduleModelBuilder(DAL.Employer employer, bool _current, DAL.Payroll payroll, DAL.PayrollItem payrollitem, string Conn)
        {
            //initialization
            if (string.IsNullOrEmpty(Conn))
            {
                throw new ArgumentNullException("connection");
            }
            connection = Conn;

            db  = new SBPayrollDBEntities(connection);
            rep = new Repository(connection);

            current      = _current;
            _year        = payroll.Year;
            _period      = payroll.Period;
            _payrollitem = payrollitem;
            _employer    = employer;

            fileLogo = _employer.Logo;
            slogan   = _employer.Slogan;
        }
        public ActionResult BindEmp(int CompId, int Month, int Year)
        {
            objPayService = new PayrollService();
            objPayItem    = new PayrollItem();
            List <PayrollItem>  PayItem = new List <PayrollItem>();
            List <EmployeeItem> lstEmp  = new List <EmployeeItem>();

            PayItem = objPayService.GetPayrollDetails1(Month, Year, CompId);

            if (PayItem.Count != 0)
            {
                objPayItem.lstPayroll = new List <PayrollItem>();
                TempData["Msg"]       = "EmployeeExists";
                objPayItem.lstPayroll.AddRange(PayItem);
                ViewBag.MonthList = Month;
                ViewBag.YearList  = Year;

                //lstEmp = objPayService.BindEmployee(CompId);
                //objPayItem.lstEmployee = new List<EmployeeItem>();
                //objPayItem.lstEmployee.AddRange(lstEmp);
            }
            else
            {
                TempData["Msg"] = "";
                if (CompId != 0)
                {
                    lstEmp = objPayService.BindEmployee(CompId);
                    objPayItem.lstEmployee = new List <EmployeeItem>();

                    objPayItem.lstEmployee.AddRange(lstEmp);
                }

                PayItem = objPayService.BindPayroll(CompId);
                objPayItem.lstPayroll = new List <PayrollItem>();
                objPayItem.lstPayroll.AddRange(PayItem);
                ViewBag.MonthList = Month;
                ViewBag.YearList  = Year;
            }
            return(PartialView("_List", objPayItem));
        }
Beispiel #20
0
        private void populateDgvPayrollItems()
        {
            List <Guid?> Payrolls_Id = new List <Guid?>();

            foreach (DataGridViewRow row in dgvPayrolls.Rows)
            {
                if (Util.getCheckboxValue(row, col_dgvPayrolls_Selected.Index))
                {
                    Payrolls_Id.Add((Guid)row.Cells[col_dgvPayrolls_Id.Name].Value);
                }
            }

            DataTable datatable = null;

            if (Payrolls_Id.Count != 0)
            {
                datatable = PayrollItem.get(Payrolls_Id);
            }

            Util.populateDataGridView(dgvPayrollItems, datatable);
            calculateTotals();
        }
Beispiel #21
0
    public void SaveHelper(PayrollInfo info)
    {
        if (this.IsExisted(info))
        {
            this.Update(info);
        }
        else
        {
            this.Insert(info);
        }

        PayrollItem itemObj   = new PayrollItem(this.db, this.transaction);
        List <int>  rowNoList = new List <int>();

        foreach (var payrollItem in info.PayrollItemList)
        {
            payrollItem.WorkerID   = info.WorkerID;
            payrollItem.SalaryDate = info.SalaryDate;
            itemObj.Save(payrollItem);
            rowNoList.Add(payrollItem.RowNo);
        }
        itemObj.DeleteNotIn(info.WorkerID, info.SalaryDate, rowNoList);
    }
Beispiel #22
0
 public int UpdatePayroll(PayrollItem model)
 {
     try
     {
         PayrollMaster objPayroll = new PayrollMaster();
         objPayroll           = DbContext.PayrollMasters.Where(m => m.EmpId == model.Empid && m.Month == model.Month && m.Year == model.Year && m.CompId == model.CompId).SingleOrDefault();
         objPayroll.Days      = model.Days;
         objPayroll.EmpId     = model.Empid;
         objPayroll.Month     = model.Month;
         objPayroll.Year      = model.Year;
         objPayroll.CompId    = model.CompId;
         objPayroll.OT        = model.OT;
         objPayroll.DA        = model.DA;
         objPayroll.CreatedBy = Convert.ToString(System.DateTime.Now);
         objPayroll.CreatedBy = Convert.ToString(System.DateTime.Now);
         objPayroll.TotalDays = model.TotalDays;
         // DbContext.PayrollMasters.Add(objPayroll);
         return(DbContext.SaveChanges());
     }
     catch (Exception ex)
     {
         throw;
     }
 }
Beispiel #23
0
 public bool ShowByproduct(PayrollItem Item, List <Payslip> pslips, string sFilePDF)
 {
     return(false);
 }
Beispiel #24
0
 public PayrollItemForm(PayrollItem item)
 {
     InitializeComponent();
     this.PayrollItem = item;
 }
        public ActionResult Create(IEnumerable <EmployeeItem> lstEmployee, PayrollItem payroll, IEnumerable <PayrollItem> lstPayroll)
        {
            string strMsg = "";

            if (TempData["Msg"] != "")
            {
                strMsg = TempData["Msg"].ToString();
            }

            objPayService = new PayrollService();
            List <CompanyItem> clsCompany = new List <CompanyItem>();

            clsCompany            = objPayService.BindCompany();
            objPayItem.lstCompany = new List <CompanyItem>();
            objPayItem.lstCompany.AddRange(clsCompany);
            BindMonthYear();
            var lstEmp = lstEmployee.ToList();

            for (int i = 0; i < lstEmployee.ToList().Count; i++)
            {
                objPayItem = new PayrollItem();

                var ID = lstEmp[i].id;

                objPayItem.Month  = Convert.ToInt32(payroll.Month);
                objPayItem.Year   = Convert.ToInt32(payroll.Year);
                objPayItem.CompId = Convert.ToInt32(payroll.CompId);
                objPayItem.Empid  = lstEmp[i].id;
                objPayItem.OT     = lstEmp[i].OT;
                objPayItem.DA     = lstEmp[i].DA;
                if (payroll.Month == 2)
                {
                    if ((payroll.Year % 4 == 0 && payroll.Year % 100 != 0) || (payroll.Year % 400 == 0))
                    {
                        objPayItem.TotalDays = 29;

                        objPayItem.Days = lstEmp[i].Days;
                    }
                    else
                    {
                        objPayItem.TotalDays = 28;
                        objPayItem.Days      = lstEmp[i].Days;
                    }
                }
                if (payroll.Month == 1 || payroll.Month == 3 || payroll.Month == 5 || payroll.Month == 7 || payroll.Month == 8 || payroll.Month == 10 || payroll.Month == 12)
                {
                    objPayItem.TotalDays = 31;
                    if (lstEmp[i].Days > 31)
                    {
                        objPayItem.lstEmployee = new List <EmployeeItem>();
                        objPayItem.lstEmployee.AddRange(lstEmp);
                        ViewBag.ErrorMsg = "Data Not Successfully Added..Check Proper Days";
                        ModelState.AddModelError(string.Empty, "The item cannot be removed");
                        return(View());
                    }
                    else
                    {
                        objPayItem.Days = lstEmp[i].Days;
                    }
                }
                if (payroll.Month == 4 || payroll.Month == 6 || payroll.Month == 9 || payroll.Month == 11)
                {
                    objPayItem.TotalDays = 30;
                    if (lstEmp[i].Days > 30)
                    {
                        ViewBag.ErrorMsg = "Data Not Successfully Added..Check Proper Days";
                        return(View(objPayItem));
                    }
                    else
                    {
                        objPayItem.Days = lstEmp[i].Days;
                    }
                }
                List <CompanyItem> clsCompany1 = new List <CompanyItem>();
                clsCompany1           = objPayService.BindCompany();
                objPayItem.lstCompany = new List <CompanyItem>();
                objPayItem.lstCompany.AddRange(clsCompany1);
                if (strMsg.ToString() == "")
                {
                    objPayService.InsertPayroll(objPayItem);
                }
                else
                {
                    objPayService.UpdatePayroll(objPayItem);
                }
            }
            int cid = 0;

            if (Session["CompID"] != null)
            {
                cid = Convert.ToInt32(Session["CompID"].ToString());
            }
            List <PayrollItem> lstPayoll = new List <PayrollItem>();

            lstPayoll             = objPayService.GridPayroll(cid);
            objPayItem.lstPayroll = new List <PayrollItem>();
            objPayItem.lstPayroll.AddRange(lstPayoll);
            ModelState.Clear();
            return(View(objPayItem));
        }
Beispiel #26
0
        static public object FromBasic(IHasIdentity basic)
        {
            string argumentType = basic.GetType().ToString();

            switch (argumentType)
            {
            // ----- Is there any way to make self-writing code here through replication or similar, so
            // ----- that every case doesn't need to be listed?


            // ------------ COMMUNICATION CLASSES ------------

            case "Swarmops.Basic.Types.BasicCommunicationTurnaround":
                return(CommunicationTurnaround.FromBasic((BasicCommunicationTurnaround)basic));

            case "Swarmops.Basic.Types.Communications.BasicOutboundComm":
                return(OutboundComm.FromBasic((BasicOutboundComm)basic));

            case "Swarmops.Basic.Types.Communications.BasicOutboundCommRecipient":
                return(OutboundCommRecipient.FromBasic((BasicOutboundCommRecipient)basic));


            // ----------- FINANCIAL CLASSES ----------

            case "Swarmops.Basic.Types.BasicExpenseClaim":
                return(ExpenseClaim.FromBasic((BasicExpenseClaim)basic));

            case "Swarmops.Basic.Types.Financial.BasicCashAdvance":
                return(CashAdvance.FromBasic((BasicCashAdvance)basic));

            case "Swarmops.Basic.Types.BasicInboundInvoice":
                return(InboundInvoice.FromBasic((BasicInboundInvoice)basic));

            case "Swarmops.Basic.Types.Financial.BasicFinancialAccount":
                return(FinancialAccount.FromBasic((BasicFinancialAccount)basic));

            case "Swarmops.Basic.Types.Financial.BasicFinancialTransaction":
                return(FinancialTransaction.FromBasic((BasicFinancialTransaction)basic));

            case "Swarmops.Basic.Types.BasicFinancialValidation":
                return(FinancialValidation.FromBasic((BasicFinancialValidation)basic));

            case "Swarmops.Basic.Types.BasicOutboundInvoice":
                return(OutboundInvoice.FromBasic((BasicOutboundInvoice)basic));

            case "Swarmops.Basic.Types.BasicOutboundInvoiceItem":
                return(OutboundInvoiceItem.FromBasic((BasicOutboundInvoiceItem)basic));

            case "Swarmops.Basic.Types.BasicPayment":
                return(Payment.FromBasic((BasicPayment)basic));

            case "Swarmops.Basic.Types.BasicPaymentGroup":
                return(PaymentGroup.FromBasic((BasicPaymentGroup)basic));

            case "Swarmops.Basic.Types.BasicPayout":
                return(Payout.FromBasic((BasicPayout)basic));

            case "Swarmops.Basic.Types.BasicPayrollAdjustment":
                return(PayrollAdjustment.FromBasic((BasicPayrollAdjustment)basic));

            case "Swarmops.Basic.Types.BasicPayrollItem":
                return(PayrollItem.FromBasic((BasicPayrollItem)basic));

            case "Swarmops.Basic.Types.BasicSalary":
                return(Salary.FromBasic((BasicSalary)basic));

            case "Swarmops.Basic.Types.Financial.BasicFinancialTransactionTagSet":
                return(FinancialTransactionTagSet.FromBasic((BasicFinancialTransactionTagSet)basic));

            case "Swarmops.Basic.Types.Financial.BasicFinancialTransactionTagType":
                return(FinancialTransactionTagType.FromBasic((BasicFinancialTransactionTagType)basic));

            // ------------ GOVERNANCE CLASSES ------------

            case "Swarmops.Basic.Types.BasicBallot":
                return(Ballot.FromBasic((BasicBallot)basic));

            case "Swarmops.Basic.Types.BasicMeetingElectionCandidate":
                return(MeetingElectionCandidate.FromBasic((BasicInternalPollCandidate)basic));

            case "Swarmops.Basic.Types.BasicMeetingElection":
                return(MeetingElection.FromBasic((BasicInternalPoll)basic));

            case "Swarmops.Basic.Types.BasicMeetingElectionVote":
                return(MeetingElectionVote.FromBasic((BasicInternalPollVote)basic));

            case "Swarmops.Basic.Types.Governance.BasicMotion":
                return(Motion.FromBasic((BasicMotion)basic));

            case "Swarmops.Basic.Types.Governance.BasicMotionAmendment":
                return(MotionAmendment.FromBasic((BasicMotionAmendment)basic));


            // ------------ PARLEY/ACTIVISM CLASSES ------------

            case "Swarmops.Basic.Types.BasicExternalActivity":
                return(ExternalActivity.FromBasic((BasicExternalActivity)basic));

            case "Swarmops.Basic.Types.BasicParley":
                return(Parley.FromBasic((BasicParley)basic));

            case "Swarmops.Basic.Types.BasicParleyAttendee":
                return(ParleyAttendee.FromBasic((BasicParleyAttendee)basic));

            case "Swarmops.Basic.Types.BasicParleyOption":
                return(ParleyOption.FromBasic((BasicParleyOption)basic));

            case "Swarmops.Basic.Types.BasicPerson":
                return(Person.FromBasic((BasicPerson)basic));

            // ------------------ FAIL ----------------

            default:
                throw new NotImplementedException("Unimplemented argument type: " + argumentType);
            }
        }