Beispiel #1
0
        public void Initial(string mode, long costCenterID)
        {
            ResetValue();
            Mode         = mode;
            CostCenterID = costCenterID;
            if (mode == FlagEnum.EditFlag)
            {
                DbCostCenter costCenter = DbCostCenterService.FindByIdentity(costCenterID);
                if ((costCenter.CompanyID != null))
                {
                    DbCompany company = DbCompanyService.FindByIdentity(costCenter.CompanyID.CompanyID);
                    ctlCompanyTextboxAutoComplete.CompanyCode = costCenter.CompanyID.CompanyCode;
                }

                this.CostCenterCode              = costCenter.CostCenterCode;
                ctlCostCenterCodeLabel.Text      = costCenter.CostCenterCode;
                ctlCostCenterCodeLabel.Visible   = true;
                ctlTextBoxCostCenterCode.Visible = false;
                ctlTextBoxDescription.Text       = costCenter.Description;

                //ctlCalendarValid.DateValue = costCenter.Valid.ToString(Constant.CalendarDateFormat);
                //ctlCalendarExpire.DateValue = costCenter.Valid.ToString(Constant.CalendarDateFormat);

                ctlCalendarValid.Value  = costCenter.Valid;
                ctlCalendarExpire.Value = costCenter.Expire;
                ctlChkLock.Checked      = costCenter.ActualPrimaryCosts;
                ctlChkActive.Checked    = costCenter.Active;
                ctlBusinessArea.Text    = costCenter.BusinessArea;
                ctlProfitCenter.Text    = costCenter.ProfitCenter;
            }
        }
Beispiel #2
0
        protected void ctlGridView_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            #region e.CommandName == "Delete"
            if (e.CommandName == "DeleteCostCenter")
            {
                int  rowIndex     = ((GridViewRow)((ImageButton)e.CommandSource).NamingContainer).RowIndex;
                long costCenterID = UIHelper.ParseLong(ctlGridView.DataKeys[rowIndex].Value.ToString());

                DbCostCenter costCenter = new DbCostCenter();
                costCenter.CostCenterID = costCenterID;
                try
                {
                    DbCostCenterService.DeleteCostCenter(costCenter);
                }
                catch (ServiceValidationException ex)
                {
                    ValidationErrors.MergeErrors(ex.ValidationErrors);
                }
            }
            #endregion
            #region e.CommandName == "Edit"
            else if (e.CommandName == "EditCostCenter")
            {
                int  rowIndex     = ((GridViewRow)((ImageButton)e.CommandSource).NamingContainer).RowIndex;
                long costCenterID = UIHelper.ParseLong(ctlGridView.DataKeys[rowIndex].Value.ToString());
                ctlCostCenterEditor.Initial(FlagEnum.EditFlag, costCenterID);
                ctlCostCenterEditor.ShowPopUp();
            }
            #endregion
            RefreshUpdatePanel(sender, e);
        }
        public void SetValue(long costCenterID)
        {
            DbCostCenter costCenter = ScgDbQueryProvider.DbCostCenterQuery.FindByIdentity(costCenterID);

            if (costCenter != null)
            {
                ctlAutoCostCenter.CostCenterCode = costCenter.CostCenterCode;
                ctlDescription.Text     = costCenter.Description;
                ctlCostCenterCode.Value = costCenter.CostCenterCode.ToString();
                ctlCostCenterID.Value   = costCenter.CostCenterID.ToString();
                Control ioField = this.NamingContainer.FindControl(IOFieldControlID);

                if (ioField != null && ioField is IOAutoCompleteLookup)
                {
                    IOAutoCompleteLookup io = (IOAutoCompleteLookup)ioField;
                    //io.CostCenterId = costCenter.CostCenterID;
                    io.SetCostCenter(costCenter.CostCenterID);
                }
            }
            else
            {
                this.ResetValue();
            }
            ctlUpdatePanelCostCenter.Update();
        }
Beispiel #4
0
        protected int RequestCount()
        {
            DbCostCenter costCenter = new DbCostCenter();

            costCenter.CostCenterCode = ctlTxtCostCenterCode.Text;
            costCenter.Description    = ctlTxtCostCenterDescription.Text;
            return(ScgDbQueryProvider.DbCostCenterQuery.CountCostCenterCompany(costCenter));
        }
Beispiel #5
0
        protected Object RequestData(int startRow, int pageSize, string sortExpression)
        {
            DbCostCenter costCenter = new DbCostCenter();

            costCenter.CostCenterCode = ctlTxtCostCenterCode.Text;
            costCenter.Description    = ctlTxtCostCenterDescription.Text;
            return(ScgDbQueryProvider.DbCostCenterQuery.FindCostCenterCompany(costCenter, startRow, pageSize, sortExpression));
        }
        protected void ctlCostCenterLookUp_OnObjectLookUpReturn(object sender, ObjectLookUpReturnArgs e)
        {
            IList <DbCostCenter> CostCenter   = (IList <DbCostCenter>)e.ObjectReturn;
            DbCostCenter         dbCostCenter = CostCenter.First <DbCostCenter>();

            CostCenterID       = dbCostCenter.CostCenterID;
            ctlCostCenter.Text = dbCostCenter.CostCenterCode;
            ctlUpdatePanelCostCenterSimple.Update();
        }
        public void SetCostCenterValue(long costcenterId)
        {
            if (costcenterId > 0)
            {
                CostCenterID = costcenterId;
                DbCostCenter cost = ScgDbQueryProvider.DbCostCenterQuery.FindProxyByIdentity(costcenterId);

                ctlCostCenter.Text = String.Format("{0}", cost.CostCenterCode);
            }
            ctlUpdatePanelCostCenterSimple.Update();
        }
 protected void ctlCostCenterLookup_OnNotifyPopup(object sender, PopUpReturnArgs args)
 {
     if (args.Type.Equals(PopUpReturnType.OK))
     {
         IList <DbCostCenter> CostCenter   = (IList <DbCostCenter>)args.Data;
         DbCostCenter         dbCostCenter = CostCenter.First <DbCostCenter>();
         CostCenterId = dbCostCenter.CostCenterID.ToString();
         ctlAutoCostCenter.CostCenterCode = dbCostCenter.CostCenterCode;
         ctlDescription.Text = dbCostCenter.Description;
         CallOnObjectLookUpReturn(dbCostCenter);
     }
     ctlUpdatePanelCostCenter.Update();
 }
Beispiel #9
0
 public string DisplayCostCenter(Object obj)
 {
     ExpenseDataSet.FnExpenseInvoiceItemRow row = (ExpenseDataSet.FnExpenseInvoiceItemRow)obj;
     if (!string.IsNullOrEmpty(row["CostCenterID"].ToString()))
     {
         DbCostCenter costCenter = ScgDbQueryProvider.DbCostCenterQuery.FindByIdentity(row.CostCenterID);
         if (costCenter != null)
         {
             return(Server.HtmlEncode(costCenter.CostCenterCode));
         }
     }
     return(string.Empty);
 }
        public void BindCostCenterControl(long costCenterId)
        {
            DbCostCenter costCenter = ScgDbQueryProvider.DbCostCenterQuery.FindByIdentity(costCenterId);

            if (costCenter != null)
            {
                ctlCostCenterID.Value            = costCenter.CostCenterID.ToString();
                ctlCostCenterCode.Value          = costCenter.CostCenterCode;
                ctlAutoCostCenter.CostCenterID   = costCenter.CostCenterID.ToString();
                ctlAutoCostCenter.CostCenterCode = costCenter.CostCenterCode;
                ctlDescription.Text = costCenter.Description;
            }
            ctlUpdatePanelCostCenter.Update();
        }
        public override void SaveOrUpdate(FnExpensePerdiem perdiem)
        {
            if (perdiem.CostCenter != null)
            {
                DbCostCenter costcenter = ScgDbDaoProvider.DbCostCenterDao.FindProxyByIdentity(perdiem.CostCenter.CostCenterID);
                perdiem.CostCenter = costcenter;
            }
            if (perdiem.Account != null)
            {
                DbAccount account = ScgDbDaoProvider.DbAccountDao.FindProxyByIdentity(perdiem.Account.AccountID);
                perdiem.Account = account;
            }
            if (perdiem.IO != null)
            {
                DbInternalOrder io = ScgDbDaoProvider.DbIODao.FindProxyByIdentity(perdiem.IO.IOID);
                perdiem.IO = io;
            }

            base.SaveOrUpdate(perdiem);
        }
        public override long Save(FnExpenseInvoiceItem invoiceItem)
        {
            if (invoiceItem.CostCenter != null)
            {
                DbCostCenter costcenter = ScgDbDaoProvider.DbCostCenterDao.FindProxyByIdentity(invoiceItem.CostCenter.CostCenterID);
                invoiceItem.CostCenter = costcenter;
            }
            if (invoiceItem.Account != null)
            {
                DbAccount account = ScgDbDaoProvider.DbAccountDao.FindProxyByIdentity(invoiceItem.Account.AccountID);
                invoiceItem.Account = account;
            }
            if (invoiceItem.IO != null)
            {
                DbInternalOrder io = ScgDbDaoProvider.DbIODao.FindProxyByIdentity(invoiceItem.IO.IOID);
                invoiceItem.IO = io;
            }

            return(base.Save(invoiceItem));
        }
Beispiel #13
0
        private void CheckDataValueUpdate(DbCostCenter costCenter)
        {
            Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors();

            if (string.IsNullOrEmpty(costCenter.CostCenterCode))
            {
                errors.AddError("CostCenter.Error", new Spring.Validation.ErrorMessage("RequiredCostCenterCode"));
            }
            if (string.IsNullOrEmpty(costCenter.CompanyCode))
            {
                errors.AddError("CostCenter.Error", new Spring.Validation.ErrorMessage("RequiredCompanyCode"));
            }
            if ((CostCenterCode.ToString() != ctlTextBoxCostCenterCode.Text) && (ScgDbQueryProvider.DbCostCenterQuery.IsDuplicateCostCenterCode(costCenter)))
            {
                errors.AddError("CostCenter.Error", new Spring.Validation.ErrorMessage("DuplicationCostCenterCode"));
            }

            if (!errors.IsEmpty)
            {
                throw new ServiceValidationException(errors);
            }
        }
        protected void ctlCostCenterPopupCaller_NotifyPopupResult(object sender, string action, string value)
        {
            if (action != "ok")
            {
                return;
            }

            object returnValue = new object();

            if (!isMultiple)
            {
                //DbCostCenter costCenter = ScgDbQueryProvider.DbCostCenterQuery.FindProxyByIdentity(UIHelper.ParseLong(value));
                //returnValue = costCenter;
                DbCostCenter         costCenter = ScgDbQueryProvider.DbCostCenterQuery.FindByIdentity(UIHelper.ParseLong(value));
                IList <DbCostCenter> list       = new List <DbCostCenter>();
                list.Add(costCenter);
                returnValue = list;
                NotifyPopUpReturn(new PopUpReturnArgs(PopUpReturnType.OK, returnValue));
            }
            else
            {
                string[]     strCostCenterIDList = value.Split('|');
                IList <long> costCenterIDList    = new List <long>();
                foreach (string id in strCostCenterIDList)
                {
                    costCenterIDList.Add(UIHelper.ParseLong(id));
                }

                if (costCenterIDList.Count > 0)
                {
                    returnValue = ScgDbQueryProvider.DbCostCenterQuery.FindByCostCenterIDList(costCenterIDList);
                }

                NotifyPopUpReturn(new PopUpReturnArgs(PopUpReturnType.OK, returnValue));
                //CallOnObjectLookUpReturn(returnValue);
            }
        }
Beispiel #15
0
        protected void ctlInsert_Click1(object sender, ImageClickEventArgs e)
        {
            DbInternalOrder io;

            try
            {
                if (Mode.Equals(FlagEnum.EditFlag))
                {
                    io = ScgDbQueryProvider.DbIOQuery.FindByIdentity(IOID);
                }
                else
                {
                    io          = new DbInternalOrder();
                    io.IONumber = ctlIONumber.Text;
                }


                io.IOType       = ctlIOType.Text;
                io.IOText       = ctlIOText.Text;
                io.Active       = ctlIOActive.Checked;
                io.BusinessArea = ctlBusinessArea.Text;
                io.ProfitCenter = ctlProfitCenter.Text;

                DbCostCenter cost = ScgDbQueryProvider.DbCostCenterQuery.FindByIdentity(UIHelper.ParseLong(ctlCostCenterField.CostCenterId));
                if (cost != null)
                {
                    io.CostCenterID   = cost.CostCenterID;
                    io.CostCenterCode = cost.CostCenterCode;
                }

                DbCompany com = ScgDbQueryProvider.DbCompanyQuery.FindByIdentity(UIHelper.ParseLong(ctlCompanyField.CompanyID));
                if (com != null)
                {
                    io.CompanyID   = com.CompanyID;
                    io.CompanyCode = com.CompanyCode;
                }

                io.CreBy   = UserAccount.UserID;
                io.CreDate = DateTime.Now;
                io.UpdBy   = UserAccount.UserID;
                io.UpdDate = DateTime.Now;
                io.UpdPgm  = UserAccount.CurrentLanguageCode;

                if (!string.IsNullOrEmpty(ctlCalEffectiveDate.DateValue))
                {
                    try
                    {
                        io.EffectiveDate = UIHelper.ParseDate(ctlCalEffectiveDate.DateValue).Value;
                    }
                    catch {}
                }
                else
                {
                    io.EffectiveDate = null;
                }

                if (!string.IsNullOrEmpty(ctlCalLastDisplayDate.DateValue))
                {
                    try
                    {
                        io.ExpireDate = UIHelper.ParseDate(ctlCalLastDisplayDate.DateValue).Value;
                    }
                    catch { }
                }
                else
                {
                    io.ExpireDate = null;
                }

                CheckDataValueUpdate(io);
                if (Mode.Equals(FlagEnum.EditFlag))
                {
                    DbIOService.UpdateIO(io);
                }
                else
                {
                    DbIOService.AddIO(io);
                }
                Notify_Ok(sender, e);
            }
            catch (ServiceValidationException ex)
            {
                this.ValidationErrors.MergeErrors(ex.ValidationErrors);
            }

            catch (NullReferenceException)
            {
                //Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors();
                //errors.AddError("InternalOrder.Error", new ErrorMessage("CostCenter and Company Require."));
                //ValidationErrors.MergeErrors(errors);
                //return;
            }
        }
        public void ValidateInvoiceItem(Guid txId, long expenseId)
        {
            Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors();

            ExpenseDataSet expDs = (ExpenseDataSet)TransactionService.GetDS(txId);

            ExpenseDataSet.FnExpenseDocumentRow      expRow   = expDs.FnExpenseDocument.FindByExpenseID(expenseId);
            ExpenseDataSet.DocumentRow               docRow   = expDs.Document.FindByDocumentID(expRow.DocumentID);
            ExpenseDataSet.FnExpenseInvoiceItemRow[] itemRows = (ExpenseDataSet.FnExpenseInvoiceItemRow[])expDs.FnExpenseInvoiceItem.Select();

            foreach (ExpenseDataSet.FnExpenseInvoiceItemRow row in itemRows)
            {
                string accountCode = string.Empty;
                if (!row.IsIOIDNull())
                {
                    DbInternalOrder io = ScgDbQueryProvider.DbIOQuery.FindByIdentity(row.IOID);
                    if (io == null || !io.CompanyID.HasValue || io.CompanyID.Value != docRow.CompanyID)
                    {
                        if (io == null)
                        {
                            io = new DbInternalOrder()
                            {
                                IONumber = "Unknown"
                            };
                        }
                        errors.AddError("Provider.Error", new Spring.Validation.ErrorMessage("InternalOrder_Is_Invalid", new object[] { io.IONumber }));
                    }
                }
                if (!row.IsAccountIDNull())
                {
                    DbAccount account = ScgDbQueryProvider.DbAccountQuery.FindByIdentity(row.AccountID);


                    IList <VOAccountCompany> accountList = ScgDbQueryProvider.DbAccountCompanyQuery.FindAccountCompany(docRow.CompanyID, row.AccountID);
                    if (account == null || accountList.Count == 0)
                    {
                        if (account == null)
                        {
                            account = new DbAccount()
                            {
                                AccountCode = "Unknown"
                            };
                        }
                        errors.AddError("Provider.Error", new Spring.Validation.ErrorMessage("ExpenseCode_Is_Invalid", new object[] { account.AccountCode }));
                    }
                    accountCode = account.AccountCode;
                }
                if (!row.IsCostCenterIDNull())
                {
                    DbCostCenter cost = ScgDbQueryProvider.DbCostCenterQuery.FindByIdentity(row.CostCenterID);

                    if (cost == null || cost.CompanyID == null || cost.CompanyID.CompanyID != docRow.CompanyID)
                    {
                        errors.AddError("Provider.Error", new Spring.Validation.ErrorMessage("CostCenter_Is_Invalid", new object[] { cost.CostCenterCode }));
                    }
                    else
                    {
                        if (!string.IsNullOrEmpty(accountCode))
                        {
                            DbAccount ac = ScgDbQueryProvider.DbAccountQuery.FindAccountByAccountCodeExpenseGroup(accountCode, null);
                            if (ac == null)
                            {
                                errors.AddError("Provider.Error", new Spring.Validation.ErrorMessage("ExpenseCode_Is_Invalid_With_Costcenter", new object[] { accountCode, cost.CostCenterCode }));
                            }
                        }
                    }
                }
            }

            if (!errors.IsEmpty)
            {
                throw new ServiceValidationException(errors);
            }
        }
Beispiel #17
0
        public void UpdateExpenseMileageOnTransaction(FnExpenseMileage expenseMileage, Guid txId)
        {
            Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors();
            ExpenseDataSet ds         = (ExpenseDataSet)TransactionService.GetDS(txId);
            long           documentId = 0;

            if (expenseMileage.Expense != null)
            {
                ExpenseDataSet.FnExpenseDocumentRow expRow = ds.FnExpenseDocument.FindByExpenseID(expenseMileage.Expense.ExpenseID);
                documentId = expRow == null ? 0 : expRow.DocumentID;
            }

            if (expenseMileage.CarLicenseNo.Length.Equals(0))
            {
                errors.AddError("Mileage.Error", new Spring.Validation.ErrorMessage("RequiredCarLicenseNo"));
            }

            if (expenseMileage.Owner.Equals(OwnerMileage.Employee))
            {
                if (expenseMileage.First100KmRate.Equals((double)0))
                {
                    errors.AddError("Mileage.Error", new Spring.Validation.ErrorMessage("RequiredFirst100KmOverZero"));
                }
                if (expenseMileage.Exceed100KmRate.Equals((double)0))
                {
                    errors.AddError("Mileage.Error", new Spring.Validation.ErrorMessage("RequiredExceed100KmOverZero"));
                }
            }
            else
            {
                if (expenseMileage.TotalAmount.Equals((double)0))
                {
                    errors.AddError("Mileage.Error", new Spring.Validation.ErrorMessage("RequiredTotalAmountOverZero"));
                }
            }

            if (!expenseMileage.Owner.Equals(OwnerMileage.Company) || !expenseMileage.TypeOfCar.Equals(TypeOfCar.Pickup))
            {
                // Validate CostCenter.
                if (expenseMileage.CostCenter == null)
                {
                    errors.AddError("Mileage.Error", new Spring.Validation.ErrorMessage("RequiredCostCenter"));
                }
                else
                {
                    if (ScgDbQueryProvider.DbCostCenterQuery.FindByIdentity(expenseMileage.CostCenter.CostCenterID) == null)
                    {
                        errors.AddError("Mileage.Error", new Spring.Validation.ErrorMessage("RequiredCostCenter"));
                    }
                }

                // Validate Account.
                if (expenseMileage.Account == null)
                {
                    errors.AddError("Mileage.Error", new Spring.Validation.ErrorMessage("RequiredAccountID"));
                }
                else
                {
                    if (ScgDbQueryProvider.DbAccountQuery.FindByIdentity(expenseMileage.Account.AccountID) == null)
                    {
                        errors.AddError("Mileage.Error", new Spring.Validation.ErrorMessage("RequiredAccountID"));
                    }
                }
            }
            if (!errors.IsEmpty)
            {
                throw new ServiceValidationException(errors);
            }

            ExpenseDataSet.FnExpenseMileageRow row = ds.FnExpenseMileage.FindByExpenseMileageID(expenseMileage.ExpenseMileageID);

            row.BeginEdit();
            if (expenseMileage.Expense != null)
            {
                row.ExpenseID = expenseMileage.Expense.ExpenseID;
            }
            row.Owner                 = expenseMileage.Owner;
            row.CarLicenseNo          = expenseMileage.CarLicenseNo;
            row.TypeOfCar             = expenseMileage.TypeOfCar;
            row.PermissionNo          = expenseMileage.PermissionNo;
            row.HomeToOfficeRoundTrip = (decimal)expenseMileage.HomeToOfficeRoundTrip;
            row.PrivateUse            = (decimal)expenseMileage.PrivateUse;
            row.IsOverrideLevel       = expenseMileage.IsOverrideLevel;
            if (expenseMileage.OverrideCompanyId != null)
            {
                row.OverrideCompanyId = (long)expenseMileage.OverrideCompanyId;
            }
            if (expenseMileage.CurrentCompanyId != null)
            {
                row.CurrentCompanyId = (long)expenseMileage.CurrentCompanyId;
            }

            row.OverrideLevelRemark           = expenseMileage.OverrideLevelRemark;
            row.OverrideUserPersonalLevelCode = expenseMileage.OverrideUserPersonalLevelCode;
            row.CurrentUserPersonalLevelCode  = expenseMileage.CurrentUserPersonalLevelCode;

            row.First100KmRate    = (decimal)expenseMileage.First100KmRate;
            row.Exceed100KmRate   = (decimal)expenseMileage.Exceed100KmRate;
            row.HelpingAmount     = (decimal)expenseMileage.HelpingAmount;
            row.OverHelpingAmount = (decimal)expenseMileage.OverHelpingAmount;

            row.TotalAmount = (decimal)expenseMileage.TotalAmount;

            if (expenseMileage.CostCenter != null)
            {
                row.CostCenterID = expenseMileage.CostCenter.CostCenterID;
            }
            else
            {
                row.SetCostCenterIDNull();
            }

            if (expenseMileage.Account != null)
            {
                row.AccountID = expenseMileage.Account.AccountID;
            }
            else
            {
                row.SetAccountIDNull();
            }

            if (expenseMileage.IO != null)
            {
                row.IOID = expenseMileage.IO.IOID;
            }
            else
            {
                row.SetIOIDNull();
            }

            row.CreDate = DateTime.Now;
            row.CreBy   = UserAccount.UserID;
            row.UpdDate = DateTime.Now;
            row.UpdBy   = UserAccount.UserID;
            row.UpdPgm  = UserAccount.CurrentProgramCode;
            row.Active  = true;
            row.EndEdit();

            UpdateMileageSummary(txId, expenseMileage);

            ExpenseDataSet.FnExpenseMileageRow mileageRow = ds.FnExpenseMileage.FindByExpenseMileageID(expenseMileage.ExpenseMileageID);

            ExpenseDataSet.FnExpenseDocumentRow expenseRow = ds.FnExpenseDocument.FindByExpenseID(row.ExpenseID);
            long requesterId = 0;

            if (expenseRow != null)
            {
                ExpenseDataSet.DocumentRow docRow = ds.Document.FindByDocumentID(expenseRow.DocumentID);
                if (docRow != null)
                {
                    requesterId = docRow.RequesterID;
                }
            }
            long invoiceId = 0;

            DataRow[]        invoiceRows = ds.FnExpenseInvoice.Select(String.Format("InvoiceDocumentType = '{0}'", InvoiceType.Mileage));
            FnExpenseInvoice invoice     = new FnExpenseInvoice();

            string accountCode = string.Empty;
            SuUser requester   = SS.SU.Query.QueryProvider.SuUserQuery.FindByIdentity(requesterId);

            if (expenseMileage.Owner.Equals(OwnerMileage.Employee) || (expenseMileage.Owner.Equals(OwnerMileage.Company) && !expenseMileage.TypeOfCar.Equals(TypeOfCar.Pickup)))
            {
                if (invoiceRows.Length > 0)
                {
                    foreach (DataRow inv in invoiceRows)
                    {
                        invoiceId = inv.Field <long>("InvoiceID");
                        DataRow[] invoiceItemRows = ds.FnExpenseInvoiceItem.Select(String.Format("InvoiceID = {0} ", invoiceId));
                        foreach (DataRow item in invoiceRows)
                        {
                            item.Delete();
                        }
                        inv.Delete();
                    }
                }
            }

            //Add empty invoice
            invoice.InvoiceDocumentType = InvoiceType.Mileage;
            invoice.Expense             = expenseMileage.Expense;
            DbCostCenter cost         = null;
            string       expenseGroup = "0";

            if (!mileageRow.IsCostCenterIDNull())
            {
                cost         = ScgDbQueryProvider.DbCostCenterQuery.FindByIdentity(mileageRow.CostCenterID);
                expenseGroup = (cost == null ? string.Empty : cost.CostCenterCode.Substring(3, 1).Equals("0") ? "0" : "1");
            }

            DbInternalOrder io = null;

            if (expenseMileage.IO != null)
            {
                io = ScgDbQueryProvider.DbIOQuery.FindByIdentity(expenseMileage.IO.IOID);
            }

            if (expenseMileage.Owner.Equals(OwnerMileage.Employee))
            {
                double total = (double)mileageRow.TotalAmount;
                invoice.TotalAmount     = total;
                invoice.TotalBaseAmount = total;
                invoice.NetAmount       = total;
                invoiceId = FnExpenseInvoiceService.AddInvoiceOnTransaction(invoice, txId);

                invoice.InvoiceID = invoiceId;

                FnExpenseInvoiceItem invoiceItemGov   = new FnExpenseInvoiceItem();
                FnExpenseInvoiceItem invoiceItemExtra = new FnExpenseInvoiceItem();

                invoiceItemGov.Invoice   = invoice;
                invoiceItemExtra.Invoice = invoice;

                invoiceItemGov.CostCenter = expenseMileage.CostCenter;
                invoiceItemGov.Account    = expenseMileage.Account;
                invoiceItemGov.IO         = expenseMileage.IO;

                invoiceItemExtra.CostCenter = expenseMileage.CostCenter;
                if (io != null && !string.IsNullOrEmpty(io.IONumber))
                {
                    string ioType = io.IONumber.Substring(4, 2);
                    if (ioType.Contains("02") || ioType.Contains("03") || ioType.Contains("04") || ioType.Contains("09"))
                    {
                        invoiceItemExtra.IO = null;
                    }
                    else
                    {
                        invoiceItemExtra.IO = io;
                    }
                }

                invoiceItemExtra.Account = ScgDbQueryProvider.DbAccountQuery.FindAccountByAccountCodeExpenseGroup(ParameterServices.AccountMileageExtra, null);

                //switch (expenseGroup)
                //{
                //    case "0":
                //        invoiceItemExtra.Account = ScgDbQueryProvider.DbAccountQuery.FindAccountByAccountCodeExpenseGroup(ParameterServices.AccountMileageOfficeExtra, expenseGroup, null);
                //        break;
                //    case "1":
                //        invoiceItemExtra.Account = ScgDbQueryProvider.DbAccountQuery.FindAccountByAccountCodeExpenseGroup(ParameterServices.AccountMileageFactoryExtra, expenseGroup, null);
                //        break;

                //    default:
                //        break;
                //}
                if (mileageRow.HelpingAmount <= mileageRow.TotalAmount)
                {
                    invoiceItemGov.Amount = (double)mileageRow.HelpingAmount;
                }
                else if (mileageRow.HelpingAmount > mileageRow.TotalAmount)
                {
                    invoiceItemGov.Amount = (double)mileageRow.TotalAmount;
                }

                invoiceItemExtra.Amount = (double)mileageRow.OverHelpingAmount;
                if (invoiceItemGov.Amount > 0)
                {
                    FnExpenseInvoiceItemService.AddMileageInvoiceItem(invoiceItemGov, txId);
                }

                if (invoiceItemExtra.Amount > 0)
                {
                    FnExpenseInvoiceItemService.AddMileageInvoiceItem(invoiceItemExtra, txId);
                }
            }
            else if (expenseMileage.Owner.Equals(OwnerMileage.Company) && (!expenseMileage.TypeOfCar.Equals(TypeOfCar.Pickup)))
            {
                invoice.TotalAmount     = (double)mileageRow.HelpingAmount;
                invoice.TotalBaseAmount = (double)mileageRow.HelpingAmount;
                invoice.NetAmount       = (double)mileageRow.HelpingAmount;
                invoiceId = FnExpenseInvoiceService.AddInvoiceOnTransaction(invoice, txId);

                FnExpenseInvoiceItem invoiceItem = new FnExpenseInvoiceItem();

                invoice.InvoiceID      = invoiceId;
                invoiceItem.Invoice    = invoice;
                invoiceItem.CostCenter = expenseMileage.CostCenter;
                invoiceItem.Account    = expenseMileage.Account;
                invoiceItem.IO         = expenseMileage.IO;

                //switch (expenseGroup)
                //{
                //    case "0":
                //        accountCode = ParameterServices.AccountMileageOfficeCompany;
                //        break;
                //    case "1":

                //        accountCode = ParameterServices.AccountMileageFactoryCompany;
                //        break;

                //    default:
                //        break;
                //}

                //invoiceItem.Account = ScgDbQueryProvider.DbAccountQuery.FindAccountByAccountCodeExpenseGroup(accountCode, expenseGroup, null);
                invoiceItem.Amount = (double)mileageRow.HelpingAmount;
                FnExpenseInvoiceItemService.AddMileageInvoiceItem(invoiceItem, txId);
            }
        }
        protected void ctlInsert_Click1(object sender, ImageClickEventArgs e)
        {
            try
            {
                if (Mode == FlagEnum.NewFlag)
                {
                    #region Insert
                    user                               = new SuUser();
                    user.UserName                      = ctlUserProfileId.Text;
                    user.PeopleID                      = ctlUserProfilePeopleId.Text;
                    user.SetFailTime                   = UIHelper.ParseShort(ctlSetFailTime.Text);
                    user.EmployeeCode                  = ctlUserProfileEmployeeCode.Text;
                    user.EmployeeName                  = ctlUserProfileEmployeeName.Text;
                    user.SMSApproveOrReject            = ctlApproveRecject.Checked;
                    user.SMSReadyToReceive             = ctlToReceive.Checked;
                    user.MobilePhoneNo                 = ctlUserProfileMobilePhoneNo.Text;
                    user.SectionName                   = ctlUserProfileSectionName.Text;
                    user.PersonalLevel                 = ctlUserProfilePersonalLevel.Text;
                    user.PersonalDescription           = ctlUserProfilePersonalLevelDescription.Text;
                    user.PersonalGroup                 = ctlUserProfilePersonalGroup.Text;
                    user.PersonalLevelGroupDescription = ctlUserProfilePersonalGroupDescription.Text;
                    user.PositionName                  = ctlUserProfilePositionName.Text;
                    user.PhoneNo                       = ctlUserProfilePhoneNo.Text;
                    user.Email                         = ctlUserProfileEmail.Text;
                    user.ApprovalFlag                  = ctlUserProfileApprovalFlag.Checked;
                    user.Active                        = ctlUserProfileActive.Checked;
                    user.Language                      = new SS.DB.DTO.DbLanguage(UIHelper.ParseShort(ctlCmbLanguage.SelectedValue));
                    user.ChangePassword                = ctlChangePassword.Checked;
                    user.IsAdUser                      = ctlIsAdUser.Checked;
                    user.VendorCode                    = ctlVendorCode.Text;
                    user.EmailActive                   = ctlEmailActive.Checked;

                    DbCompany com = ScgDbQueryProvider.DbCompanyQuery.FindByIdentity(UIHelper.ParseLong(ctlCompanyField.CompanyID));
                    if (com != null)
                    {
                        user.CompanyCode = com.CompanyCode;
                        user.Company     = com;
                    }
                    if (ctlLocationField.LocationID != null)
                    {
                        DbLocation location = ScgDbQueryProvider.DbLocationQuery.FindProxyByIdentity(ctlLocationField.LocationID.Value);
                        if (location != null)
                        {
                            user.LocationCode = location.LocationCode;
                            user.Location     = location;
                        }
                    }
                    DbCostCenter cost = ScgDbQueryProvider.DbCostCenterQuery.FindByIdentity(UIHelper.ParseLong(ctlCostCenterField.CostCenterId));
                    if (cost != null)
                    {
                        user.CostCenter     = cost;
                        user.CostCenterCode = cost.CostCenterCode;
                    }
                    if (ctlSupervisor.UserID != null)
                    {
                        SuUser su = QueryProvider.SuUserQuery.FindProxyByIdentity(ctlSupervisor.UserID.Value);
                        if (su != null)
                        {
                            user.Supervisor = su.Userid;
                        }
                    }
                    user.UpdBy   = UserAccount.UserID;
                    user.UpdDate = DateTime.Now;
                    user.CreBy   = UserAccount.UserID;
                    user.CreDate = DateTime.Now;
                    user.UpdPgm  = UserAccount.CurrentProgramCode;

                    // ========== Add code for control password same as Password Policy by Anuwat S on 23/04/2009 ==========
                    if (!string.IsNullOrEmpty(ctlUserPassword.Text))
                    {
                        user.Password = Encryption.Md5Hash(ctlUserPassword.Text);
                    }
                    user.AllowPasswordChangeDate = DateTime.Now.AddDays(ParameterServices.MinPasswordAge);
                    user.PasswordExpiryDate      = DateTime.Now.AddDays(ParameterServices.MaxPasswordAge);

                    if (ctlLockUser.Checked)
                    {
                        user.FailTime = user.SetFailTime;
                    }
                    else
                    {
                        user.FailTime = 0;
                    }

                    // ======== End add code for control password same as Password Policy by Anuwat S on 23/04/2009 ========

                    SuUserService.SaveUserProfile(user);

                    // ========== Add code for control password same as Password Policy by Anuwat S on 23/04/2009 ==========
                    SCGEmailService.SendEmailEM08(user.Userid, ctlUserPassword.Text);
                    #endregion Insert
                }
                else if (Mode == FlagEnum.EditFlag)
                {
                    #region Edit
                    user                               = QueryProvider.SuUserQuery.FindByIdentity(UserID);
                    user.UserName                      = ctlUserProfileId.Text;
                    user.PeopleID                      = ctlUserProfilePeopleId.Text;
                    user.SetFailTime                   = UIHelper.ParseShort(ctlSetFailTime.Text);
                    user.EmployeeCode                  = ctlUserProfileEmployeeCode.Text;
                    user.EmployeeName                  = ctlUserProfileEmployeeName.Text;
                    user.SMSApproveOrReject            = ctlApproveRecject.Checked;
                    user.SMSReadyToReceive             = ctlToReceive.Checked;
                    user.MobilePhoneNo                 = ctlUserProfileMobilePhoneNo.Text;
                    user.SectionName                   = ctlUserProfileSectionName.Text;
                    user.PersonalLevel                 = ctlUserProfilePersonalLevel.Text;
                    user.PersonalDescription           = ctlUserProfilePersonalLevelDescription.Text;
                    user.PersonalGroup                 = ctlUserProfilePersonalGroup.Text;
                    user.PersonalLevelGroupDescription = ctlUserProfilePersonalGroupDescription.Text;
                    user.PositionName                  = ctlUserProfilePositionName.Text;
                    user.PhoneNo                       = ctlUserProfilePhoneNo.Text;
                    user.Email                         = ctlUserProfileEmail.Text;
                    user.ApprovalFlag                  = ctlUserProfileApprovalFlag.Checked;
                    user.Active                        = ctlUserProfileActive.Checked;
                    user.Language                      = new SS.DB.DTO.DbLanguage(UIHelper.ParseShort(ctlCmbLanguage.SelectedValue));
                    user.ChangePassword                = ctlChangePassword.Checked;
                    user.IsAdUser                      = ctlIsAdUser.Checked;
                    user.VendorCode                    = ctlVendorCode.Text;
                    user.EmailActive                   = ctlEmailActive.Checked;

                    DbCompany com = ScgDbQueryProvider.DbCompanyQuery.FindByIdentity(UIHelper.ParseLong(ctlCompanyField.CompanyID));
                    if (com != null)
                    {
                        user.CompanyCode = com.CompanyCode;
                        user.Company     = com;
                    }
                    if (ctlLocationField.LocationID != null)
                    {
                        DbLocation location = ScgDbQueryProvider.DbLocationQuery.FindProxyByIdentity(ctlLocationField.LocationID.Value);
                        if (location != null)
                        {
                            user.LocationCode = location.LocationCode;
                            user.Location     = location;
                        }
                    }
                    DbCostCenter cost = ScgDbQueryProvider.DbCostCenterQuery.FindByIdentity(UIHelper.ParseLong(ctlCostCenterField.CostCenterId));
                    if (cost != null)
                    {
                        user.CostCenter     = cost;
                        user.CostCenterCode = cost.CostCenterCode;
                    }
                    if (ctlSupervisor.UserID != null)
                    {
                        SuUser su = QueryProvider.SuUserQuery.FindProxyByIdentity(ctlSupervisor.UserID.Value);
                        if (su != null)
                        {
                            user.Supervisor = su.Userid;
                        }
                    }
                    user.UpdBy   = UserAccount.UserID;
                    user.UpdDate = DateTime.Now;
                    user.CreBy   = UserAccount.UserID;
                    user.CreDate = DateTime.Now;

                    user.UpdPgm = UserAccount.CurrentProgramCode;

                    // ========== Add code for control password same as Password Policy by Anuwat S on 23/04/2009 ==========
                    if ((int.Parse(ctlOriginFailTime.Value) <= (user.FailTime) && !ctlLockUser.Checked) ||
                        !user.SetFailTime.Equals(short.Parse(ctlOriginFailTime.Value)))
                    {
                        user.FailTime = 0;  // Unlock user
                    }
                    else if (ctlLockUser.Checked)
                    {
                        user.FailTime = user.SetFailTime;   // Still lock user
                    }
                    // ========== Add code for control password same as Password Policy by Anuwat S on 23/04/2009 ==========

                    //SuUserService.SaveOrUpdate(user);
                    SuUserService.UpdateUserProfile(user);

                    #endregion Edit
                }



                // ========== Add code for control password same as Password Policy by Anuwat S on 23/04/2009 ==========
                IList <SuPasswordHistory> passwordHistoryList = QueryProvider.SuPasswordHistoryQuery.FindActiveByUserId(user.Userid);
                foreach (SuPasswordHistory passwordHist in passwordHistoryList)
                {
                    passwordHist.Active  = false;
                    passwordHist.UpdBy   = UserAccount.UserID;
                    passwordHist.UpdDate = DateTime.Now;
                    passwordHist.UpdPgm  = ProgramCode;
                    SuPasswordHistoryService.SaveOrUpdate(passwordHist);
                }
                // ========== Add code for control password same as Password Policy by Anuwat S on 23/04/2009 ==========
                if (Notify_Ok != null)
                {
                    Notify_Ok(sender, e);
                }

                Alert(GetMessage("SaveSuccessFully"));
            }
            catch (ServiceValidationException ex)
            {
                ValidationErrors.MergeErrors(ex.ValidationErrors);
                ctlUpdatePanelUserProfileForm.Update();
            }
        }
Beispiel #19
0
        protected void ctlButtonSave_Click(object sender, EventArgs e)
        {
            if (Mode == FlagEnum.EditFlag)
            {
                DbCostCenter costCenter = DbCostCenterService.FindByIdentity(CostCenterID);

                costCenter.ActualPrimaryCosts = ctlChkLock.Checked;
                costCenter.Active             = ctlChkActive.Checked;
                costCenter.CompanyCode        = ctlCompanyTextboxAutoComplete.Text;
                costCenter.Description        = ctlTextBoxDescription.Text;
                //costCenter.CostCenterCode = ctlTextBoxCostCenterCode.Text;
                costCenter.BusinessArea = ctlBusinessArea.Text;
                costCenter.ProfitCenter = ctlProfitCenter.Text;

                try
                {
                    costCenter.Valid  = UIHelper.ParseDate(ctlCalendarValid.DateValue).Value;
                    costCenter.Expire = UIHelper.ParseDate(ctlCalendarExpire.DateValue).Value;
                }
                catch (Exception)
                {
                    Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors();
                    errors.AddError("CostCenter.Error", new ErrorMessage("Invalid or Null in Datetime fields."));
                    ValidationErrors.MergeErrors(errors);
                    //return;
                }


                costCenter.UpdBy   = UserAccount.UserID;
                costCenter.UpdDate = DateTime.Now.Date;
                costCenter.UpdPgm  = ProgramCode;

                try
                {
                    CheckDataValueUpdate(costCenter);
                    DbCostCenterService.UpdateCostCenter(costCenter);
                    DbCostCenterService.UpdateCostCenterToExp(costCenter);
                }
                catch (ServiceValidationException ex)
                {
                    ValidationErrors.MergeErrors(ex.ValidationErrors);
                    return;
                }
            }
            if (Mode == FlagEnum.NewFlag)
            {
                DbCostCenter costCenter = new DbCostCenter();
                costCenter.CompanyID = new DbCompany();

                costCenter.ActualPrimaryCosts = ctlChkLock.Checked;
                costCenter.Active             = ctlChkActive.Checked;
                costCenter.CompanyCode        = ctlCompanyTextboxAutoComplete.Text;
                costCenter.Description        = ctlTextBoxDescription.Text;
                costCenter.CostCenterCode     = ctlTextBoxCostCenterCode.Text;
                costCenter.BusinessArea       = ctlBusinessArea.Text;
                costCenter.ProfitCenter       = ctlProfitCenter.Text;

                try
                {
                    costCenter.Valid  = UIHelper.ParseDate(ctlCalendarValid.DateValue).Value;
                    costCenter.Expire = UIHelper.ParseDate(ctlCalendarExpire.DateValue).Value;
                }
                catch (Exception)
                {
                    Spring.Validation.ValidationErrors errors = new Spring.Validation.ValidationErrors();
                    errors.AddError("CostCenter.Error", new ErrorMessage("Invalid or Null in Datetime fields."));
                    ValidationErrors.MergeErrors(errors);
                    //return;
                }

                costCenter.UpdBy   = UserAccount.UserID;
                costCenter.UpdDate = DateTime.Now.Date;
                costCenter.UpdPgm  = ProgramCode;
                costCenter.CreBy   = UserAccount.UserID;
                costCenter.CreDate = DateTime.Now.Date;

                try
                {
                    CheckDataValueInsert(costCenter);
                    DbCostCenterService.AddCostCenter(costCenter);
                }
                catch (ServiceValidationException ex)
                {
                    ValidationErrors.MergeErrors(ex.ValidationErrors);
                    return;
                }
            }

            HidePopUp();
            Notify_Ok(sender, e);
        }