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); } }
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); }
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); } }
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); }