示例#1
0
        protected override void EditarImporteAction(DataGridViewRow row)
        {
            InputDecimalForm form = new InputDecimalForm();

            form.Message = Resources.Labels.IMPORTE_COBRO;

            if (form.ShowDialog(this) == DialogResult.OK)
            {
                LineaFomentoInfo item = row.DataBoundItem as LineaFomentoInfo;

                _no_asignado += item.Asignado;

                CobroFactura cobro = _entity.CobroFacturas.GetItemByFactura(item.Oid);
                if (cobro != null)
                {
                    cobro.Cantidad = 0;
                }
                item.ImporteCobrado -= item.Asignado;
                item.Pendiente      += item.Asignado;

                item.Asignado = form.Value;
                VinculaFacturaAction(row, true);
                SetUnlinkedGridValues(Facturas_DGW.Name);
                Datos_Facturas.ResetBindings(false);
                SetGridColors(Facturas_DGW);
            }
        }
示例#2
0
        protected virtual void UnlinkInvoiceAction(DataGridViewRow row)
        {
            if (row == null)
            {
                return;
            }

            OutputInvoiceInfo item = row.DataBoundItem as OutputInvoiceInfo;

            if (item == null)
            {
                return;
            }

            UpdateAsignado();

            item.Asignado = 0;

            CobroFactura cobro = _entity.CobroFacturas.GetItemByFactura(item.Oid);

            if (cobro != null)
            {
                _entity.CobroFacturas.Remove(cobro);
                item.Cobrado          -= cobro.Cantidad;
                item.PendienteVencido += cobro.Cantidad;
            }

            UpdateAsignado();

            MarkAsActiva(row);
        }
示例#3
0
        protected virtual void EditAmountAction(DataGridViewRow row)
        {
            InputDecimalForm form = new InputDecimalForm();

            form.Message = Resources.Labels.IMPORTE_COBRO;

            if (form.ShowDialog(this) == DialogResult.OK)
            {
                OutputInvoiceInfo item = row.DataBoundItem as OutputInvoiceInfo;

                _no_asignado += item.Asignado;

                CobroFactura cobro = _entity.CobroFacturas.GetItemByFactura(item.Oid);
                if (cobro != null)
                {
                    cobro.Cantidad = 0;
                }
                item.Cobrado          -= item.Asignado;
                item.PendienteVencido += item.Asignado;

                item.Asignado = form.Value;
                LinkInvoiceAction(row);
                SetUnlinkedGridValues(Facturas_DGW.Name);
                Datos_Facturas.ResetBindings(false);
                SetGridColors(Facturas_DGW.Name);
            }
        }
示例#4
0
        protected virtual void LinkInvoiceAction(DataGridViewRow row)
        {
            if (row == null)
            {
                return;
            }

            OutputInvoiceInfo item = row.DataBoundItem as OutputInvoiceInfo;

            if (item == null)
            {
                return;
            }

            UpdateAsignado();

            if (_entity.EMedioPago != EMedioPago.CompensacionFactura)
            {
                //No permitimos asociar facturas si no queda asignado y la factura es distinto de cero
                if ((NoAsignado == 0) && (item.Total != 0))
                {
                    UnlinkInvoiceAction(row);
                    return;
                }
            }

            //Se le ha asignado algo a mano
            if (item.Asignado != 0)
            {
                if (_entity.EMedioPago != EMedioPago.CompensacionFactura)
                {
                    //Cobros en positivo
                    if (_entity.Importe >= 0)
                    {
                        if (item.Asignado > NoAsignado)
                        {
                            item.Asignado = NoAsignado;
                        }
                        if (item.Asignado > item.PendienteVencido)
                        {
                            item.Asignado = item.PendienteVencido;
                        }
                    }
                    //Cobros en negativo. Abonos
                    else
                    {
                        if (item.Asignado < NoAsignado)
                        {
                            item.Asignado = NoAsignado;
                        }
                        if (item.Asignado < item.PendienteVencido)
                        {
                            item.Asignado = item.PendienteVencido;
                        }
                    }
                }
            }
            else
            {
                if (_entity.EMedioPago != EMedioPago.CompensacionFactura)
                {
                    //Cobros en positivo
                    if (_entity.Importe >= 0)
                    {
                        if (item.PendienteVencido <= NoAsignado)
                        {
                            item.Asignado = item.PendienteVencido;
                        }
                        else
                        {
                            item.Asignado = NoAsignado;
                        }
                    }
                    //Cobros en negativo. Abonos
                    else
                    {
                        if (item.PendienteVencido >= NoAsignado)
                        {
                            item.Asignado = item.PendienteVencido;
                        }
                        else
                        {
                            item.Asignado = NoAsignado;
                        }
                    }
                }
                else
                {
                    item.Asignado = item.PendienteVencido;
                }
            }

            CobroFactura cobro = _entity.CobroFacturas.GetItemByFactura(item.Oid);

            if (cobro == null)
            {
                cobro = _entity.CobroFacturas.NewItem(_entity, item);
                item.FechaAsignacion   = DateTime.Now.ToShortDateString();
                item.Cobrado          += cobro.Cantidad;
                item.PendienteVencido -= cobro.Cantidad;
            }
            else
            {
                item.Cobrado          -= cobro.Cantidad;
                item.PendienteVencido += cobro.Cantidad;
                cobro.CopyFrom(_entity, item);
                item.Cobrado          += cobro.Cantidad;
                item.PendienteVencido -= cobro.Cantidad;
                item.FechaAsignacion   = DateTime.Now.ToShortDateString();
            }

            UpdateAsignado();

            MarkAsNoActiva(row);
        }