internal void Update(InputInvoice parent) { // if we're not dirty then don't update the database if (!this.IsDirty) { return; } this.OidFactura = parent.Oid; ValidationRules.CheckRules(); if (!IsValid) { throw new iQValidationException(moleQule.Resources.Messages.GENERIC_VALIDATION_ERROR); } SessionCode = parent.SessionCode; InputInvoiceLineRecord obj = Session().Get <InputInvoiceLineRecord>(Oid); long oid_exp_old = obj.OidExpediente; obj.CopyValues(_base.Record); Session().Update(obj); if ((OidExpediente != 0) && (parent.OidExpediente != OidExpediente)) { Store.Expedient.Get(OidExpediente, false, true, parent.SessionCode); } if ((oid_exp_old != 0) && (OidExpediente != oid_exp_old)) { Store.Expedient.Get(oid_exp_old, false, true, parent.SessionCode); InputDeliveryLineInfo ca = InputDeliveryLineInfo.Get(OidConceptoAlbaran, false); if (ca.OidExpediente != OidExpediente) { InputDelivery albaran = InputDelivery.Get(ca.OidAlbaran, ETipoAcreedor.Todos, true, SessionCode); albaran.Conceptos.GetItem(ca.Oid).OidExpediente = OidExpediente; albaran.SaveAsChild(); } } MarkOld(); }
protected void CopyValues(IDataReader source) { if (source == null) { return; } _base.CopyValues(source); //Esto es necesario pq si el OidExpediente viene a cero y se le asigna el del gasto //el objeto de sesion no se entera y luego en el Update no lo tenenmos InputInvoiceLineRecord obj = Session().Get <InputInvoiceLineRecord>(Oid); obj.OidExpediente = OidExpediente; //obj.Expediente = Expediente; }