Ejemplo n.º 1
0
        private Decimal[] BuildBottomBalance(Grille grid, GridBrowser browser)
        {
            Decimal      credit            = 0;
            Decimal      debit             = 0;
            GrilleColumn leftAmountColumn  = null;
            GrilleColumn rightAmountColumn = null;
            GrilleColumn creditDebitColumn = null;
            Measure      leftMeasure       = this.EditedObject.leftMeasure;
            Measure      rightMeasure      = this.EditedObject.rightMeasure;

            if (leftMeasure != null)
            {
                leftAmountColumn = grid.GetColumn(ParameterType.MEASURE.ToString(), leftMeasure.oid.Value);
            }
            if (rightMeasure != null)
            {
                rightAmountColumn = grid.GetColumn(ParameterType.MEASURE.ToString(), rightMeasure.oid.Value);
            }
            if (leftAmountColumn != null && rightAmountColumn != null)
            {
                String creditValue = "C";
                String debitValue  = "D";
                if (this.EditedObject.useDebitCredit == true)
                {
                    Misp.Kernel.Domain.ReconciliationContext context = ApplicationManager.Instance.ControllerFactory.ServiceFactory.GetReconciliationContextService().getReconciliationContext();
                    if (context != null)
                    {
                        creditValue = context.creditAttributeValue != null ? context.creditAttributeValue.name : "C";
                        debitValue  = context.debitAttributeValue != null ? context.debitAttributeValue.name : "D";
                        if (context.dcNbreAttribute != null)
                        {
                            creditDebitColumn = grid.GetColumn(ParameterType.SCOPE.ToString(), context.dcNbreAttribute.oid.Value);
                        }
                    }
                }
                foreach (object row in browser.gridControl.SelectedItems)
                {
                    if (row is GridItem)
                    {
                        String side = ((GridItem)row).Side;
                        if (string.IsNullOrWhiteSpace(side))
                        {
                            continue;
                        }
                        GrilleColumn amountColumn = side == GridItem.LEFT_SIDE ? leftAmountColumn : rightAmountColumn;
                        if (amountColumn == null)
                        {
                            continue;
                        }
                        Object[] datas  = ((GridItem)row).Datas;
                        Decimal  amount = 0;
                        object   item   = item = datas[amountColumn.position];
                        try
                        {
                            Decimal.TryParse(item.ToString(), out amount);
                        }
                        catch (Exception) { }

                        if (this.EditedObject.useDebitCredit == true)
                        {
                            if (creditDebitColumn == null)
                            {
                                continue;
                            }
                            item = datas[creditDebitColumn.position];
                            Boolean isCredit = item != null && item.ToString().Equals(creditValue, StringComparison.OrdinalIgnoreCase);
                            Boolean isDebit  = item != null && item.ToString().Equals(debitValue, StringComparison.OrdinalIgnoreCase);

                            if (side == GridItem.LEFT_SIDE)
                            {
                                if (isCredit)
                                {
                                    credit += amount;
                                }
                                else if (isDebit)
                                {
                                    credit -= amount;
                                }
                            }
                            else
                            {
                                if (isCredit)
                                {
                                    debit += amount;
                                }
                                else if (isDebit)
                                {
                                    debit -= amount;
                                }
                            }
                        }
                        else
                        {
                            if (side == GridItem.LEFT_SIDE)
                            {
                                credit += amount;
                            }
                            else
                            {
                                debit += amount;
                            }
                        }
                    }
                }
            }
            Decimal[] balances = new Decimal[] { credit, debit };
            return(balances);
        }
Ejemplo n.º 2
0
        private List <FormatCondition> BuildFormatConditions(GridBrowser grid, Measure leftMeasure, Measure rightMeasure)
        {
            List <FormatCondition> conditions = new List <FormatCondition>(0);

            if (leftMeasure == null && rightMeasure == null)
            {
                return(conditions);
            }
            if (this.EditedObject.useDebitCredit.Value)
            {
                Misp.Kernel.Domain.ReconciliationContext context = ApplicationManager.Instance.ControllerFactory.ServiceFactory.GetReconciliationContextService().getReconciliationContext();
                if (context != null && context.dcNbreAttribute != null)
                {
                    GrilleColumn creditDebitColumn = grid.Grille.GetColumn(ParameterType.SCOPE.ToString(), context.dcNbreAttribute.oid.Value);
                    if (creditDebitColumn != null)
                    {
                        String debitValue = context.debitAttributeValue != null ? context.debitAttributeValue.name : "D";
                        conditions.Add(new FormatCondition()
                        {
                            ApplyToRow = true,
                            Expression = "[" + creditDebitColumn.name + "] == '" + debitValue + "'",
                            FieldName  = creditDebitColumn.name,
                            Format     = new Format()
                            {
                                Foreground = Brushes.Red
                            }
                        });
                    }
                }
            }
            else
            {
                if (leftMeasure != null)
                {
                    GrilleColumn amountColumn = grid.Grille.GetColumn(ParameterType.MEASURE.ToString(), leftMeasure.oid.Value);
                    if (amountColumn != null)
                    {
                        conditions.Add(new FormatCondition()
                        {
                            ApplyToRow = true,
                            Expression = "[" + amountColumn.name + "] < 0.0",
                            FieldName  = amountColumn.name,
                            Format     = new Format()
                            {
                                Background = Brushes.Red
                            }
                        });
                    }
                }
                if (rightMeasure != null)
                {
                    GrilleColumn amountColumn = grid.Grille.GetColumn(ParameterType.MEASURE.ToString(), rightMeasure.oid.Value);
                    if (amountColumn != null)
                    {
                        conditions.Add(new FormatCondition()
                        {
                            ApplyToRow = true,
                            Expression = "[" + amountColumn.name + "] < 0.0",
                            FieldName  = amountColumn.name,
                            Format     = new Format()
                            {
                                Background = Brushes.Red
                            }
                        });
                    }
                }
            }
            return(conditions);
        }