public static void Update(tsa_ComprobantesDetDataset.tsa_ComprobantesDetRow row) { if (row.RowState == DataRowState.Detached) { ((tsa_ComprobantesDetDataset.tsa_ComprobantesDetDataTable)row.Table).Addtsa_ComprobantesDetRow(row); } Update(row.Table); }
public static void UpdateWithValidation(tsa_ComprobantesDetDataset.tsa_ComprobantesDetRow row) { ApplicationAssert.Check(row != null, "El argumento row no debe ser nulo.", ApplicationAssert.LineNumber); if (RowIsValid(row)) { Update(row); } }
/// <summary> /// Obtiene un registro de la tabla tsa_ComprobantesDet que luego puede ser persistido en la base de datos. /// </summary> public static tsa_ComprobantesDetDataset.tsa_ComprobantesDetRow GetByPk(string IdComprobante, long Ordinal) { tsa_ComprobantesDetDataset.tsa_ComprobantesDetRow row = mz.erp.dataaccess.tsa_ComprobantesDet.GetByPk(IdComprobante, Ordinal); if (row != null) { foreach (DataColumn dc in row.Table.Columns) { if (row[dc] == System.DBNull.Value) { row[dc] = Util.DefaultValue(dc.DataType); } } } return(row); }
//Fin German 20120307 - Tarea 0000290 private void FillStepData(RelacionesComprobanteOrigenDestino relaciones) { this.ClearCache(); bool PermitePendienteCero = Variables.GetValueBool(_comprobanteDeVenta.ProcessName(), _comprobanteDeVenta.TaskName(), "PermitePendienteCero"); string IdListaDePrecioDefault = Variables.GetValueString(_comprobanteDeVenta.ProcessName(), _comprobanteDeVenta.TaskName(), "ListaDePreciosDefault"); string listaComodines = Variables.GetValueString(_comprobanteDeVenta.ProcessName(), _comprobanteDeVenta.TaskName(), "Emision.Editar.Items.ListaItemComodin"); bool permiteComodin = Variables.GetValueBool(_comprobanteDeVenta.ProcessName(), _comprobanteDeVenta.TaskName(), "Emision.Editar.Items.HabilitaItemComodin"); foreach (RelacionComprobanteOrigenDestino relacion in relaciones) { if (relacion.CantidadDestino > 0 || PermitePendienteCero) { System.Data.DataRow row = (System.Data.DataRow)mz.erp.businessrules.tsa_ComprobantesDet.GetByPk(relacion.IdComprobante, relacion.OrdinalOrigen); decimal precioDeCosto = 0; decimal bonificacionAplicada = 0; decimal bonificacionRecargoFinanciero = 0; decimal bonificacionRecargoProducto = 0; decimal precioBruto = 0; decimal porcentajeDescuento = 0; //Sabrina: Tarea 1075. 20110323 string idCombo = string.Empty; string combo = string.Empty; //Fin Sabrina: Tarea 1075. 20110323 if (row != null) { precioDeCosto = (decimal)row["PrecioDeCosto"]; bonificacionAplicada = (decimal)row["DescuentosAplicados"]; bonificacionRecargoFinanciero = (decimal)row["BonificacionRecargoFinanciero"]; bonificacionRecargoProducto = (decimal)row["BonificacionRecargoProducto"]; precioBruto = (decimal)row["PrecioBruto"]; _porcentajeRecargoFinanciero = bonificacionRecargoFinanciero; porcentajeDescuento = (decimal)row["PorcentajeDescuentoFijoAplicado"]; //Sabrina: Tarea 1075. 20110323 idCombo = (string)row["IdCombo"]; combo = (string)row["Combo"]; //Fin Sabrina: Tarea 1075. 20110323 } //German 20120224 - Tarea 0000247 Productos miProducto = null; if (!this.ComprobanteDeVenta.ListasDePrecios) { miProducto = new mz.erp.businessrules.Productos(relacion.IdProducto); } else { miProducto = new mz.erp.businessrules.Productos("IdProducto", relacion.IdProducto, relacion.IdListaDePrecios, tsh_ListasDePrecios.GetDefault().IdListaDePrecio, this.ComprobanteDeVenta.ListasDePrecios, false); } //Fin German 20120224 - Tarea 0000247 Item item = new Item(miProducto); item.PrecioCostoMonedaReferencia = precioDeCosto; item.BonificacionRecargoFinanciero = bonificacionRecargoFinanciero; item.BonificacionRecargoProducto = bonificacionRecargoProducto; // matias if (row != null) { item.PrecioFinalOriginal = (decimal)row["PrecioFinalOriginal"]; } if (!relaciones.ActualizaPrecio) //Para ver si deja el precio fijado del comprobante previo { item.PrecioBruto = precioBruto; } //Sabrina: Tarea 1075. 20110323 else //si es comodin o item de un combo no actualiza el producto con precio nuevo; le pongo el precio del comprob anterior //German 20120524 - Tarea 0000340 //if ((permiteComodin) & (EsComodin(listaComodines, miProducto.Codigo)) && !idCombo.Equals(string.Empty)) if ((permiteComodin) & (EsComodin(listaComodines, miProducto.Codigo)) /*&& !idCombo.Equals(string.Empty)*/) { //Fin German 20120524 - Tarea 0000340 item.PrecioBruto = precioBruto; } //Fin Sabrina: Tarea 1075. 20110323 if (precioBruto != 0) { item.BonificacionAplicada = Decimal.Round(bonificacionAplicada * 100 / precioBruto, 4); } else { item.BonificacionAplicada = 0; } item.IdProducto = relacion.IdProducto; item.Cantidad = relacion.CantidadDestino; item.PrecioNeto = relacion.PrecioNetoActual; item.OrdinalOrigen = relacion.OrdinalOrigen; item.IdComprobanteOrigen = relacion.IdComprobante; item.IdTipoComprobanteOrigen = relacion.IdTipoDeComprobante; item.OrdinalDestino = this.Count; item.IdListaDePrecios = relacion.IdListaDePrecios; item.CoeficienteListaDePrecios = relacion.CoeficienteListaDePrecios; item.ModoDeAplicacionListaDePrecios = relacion.ModoDeAplicacionListaDePrecios; if (!IdListaDePrecioDefault.Equals(string.Empty)) { item.IdListaDePreciosDefault = IdListaDePrecioDefault; } string descripcion = string.Empty; descripcion = mz.erp.businessrules.tsa_ComprobanteDetalleDescripcionAdicional.GetDescripcionAdicional(relacion.IdComprobante, relacion.OrdinalOrigen); if (descripcion.Equals(string.Empty)) { item.Descripcion = miProducto.Descripcion; item.DescripcionCorta = miProducto.DescripcionCorta; item.DescripcionLarga = miProducto.DescripcionLarga; item.DescripcionDetallada = miProducto.DescripcionDetallada; item.CampoAuxiliar1 = miProducto.CampoAuxiliar1; item.CampoAuxiliar2 = miProducto.CampoAuxiliar2; item.CampoAuxiliar3 = miProducto.CampoAuxiliar3; item.CampoAuxiliar4 = miProducto.CampoAuxiliar4; item.CampoAuxiliar5 = miProducto.CampoAuxiliar5; } else { item.Descripcion = descripcion; item.DescripcionCorta = descripcion; item.DescripcionLarga = descripcion; item.DescripcionDetallada = descripcion; item.TieneDescripcionDetallada = true; } /*Nuevo German*/ if (relacion.IdTipoDeComprobante.Equals("OR")) { item.IdTipoProducto = relacion.IdTipoProducto; if (!item.IdTipoProducto.Equals("S") && !item.IdTipoProducto.Equals("E")) { string aux = Variables.GetValueString("Comprobantes.OrdenReparacion.Repuestos.Descripcion"); string prefix = string.Format(aux, new object[] { item.IdComprobanteOrigen }) + " "; item.Descripcion = prefix + relacion.Descripcion; item.DescripcionCorta = prefix + relacion.Descripcion; item.DescripcionLarga = prefix + relacion.Descripcion; item.DescripcionDetallada = prefix + relacion.Descripcion; } else { item.Descripcion = relacion.Descripcion; item.DescripcionCorta = relacion.Descripcion; item.DescripcionLarga = relacion.Descripcion; item.DescripcionDetallada = relacion.Descripcion; } item.TieneDescripcionDetallada = true; if (miProducto != null) { item.PrecioCostoMonedaReferencia = miProducto.PrecioDeCostoMonedaReferencia; } else { item.PrecioCostoMonedaReferencia = 0; } item.PrecioBruto = relacion.Precio; item.PrecioNeto = relacion.Precio; item.IdInstanciaOR = relacion.IdInstanciaOR; } item.AfectaStock = relacion.AfectaStock; item.AllowEdit = relacion.AllowEdit; item.CierraCircuito = relacion.CierraCircuito; item.Entregar = relacion.Entregar; item.Visible = relacion.Visible; item.IdTipoProducto = relacion.IdTipoProducto; item.PercibeIB = relacion.PercibeIB; item.SetConversion(this._comprobanteDeVenta.Momento); item.ContadorOrigen = relacion.ContadorOrigen; item.ContadorDestino = relacion.ContadorDestino; item.IdResponsableOrigen = relacion.IdResponsableOrigen; item.Equipo = relacion.Equipo; //German 20120307 - Tarea 0000290 ItemComprobante miItemComprobante = null; if (this._comprobanteDeVenta.ProcessName().Equals("ProcesoRemitirVender") || this._comprobanteDeVenta.ProcessName().Equals("ProcesoRemitirPrestar") || this._comprobanteDeVenta.ProcessName().Equals("ProcesoRemitirVenderManual")) { if (!this.ContainsCached(relacion.IdProducto)) { item.OrigenMultiple = true; miItemComprobante = new ItemComprobante("STEP", this, item); RelacionComprobanteOrigen origen = new RelacionComprobanteOrigen(miItemComprobante.IdComprobanteOrigen, miItemComprobante.OrdinalOrigen, relacion.CantidadOrigen, relacion.CantidadPendiente, miItemComprobante.Cantidad, miItemComprobante.Precio); miItemComprobante.AddOrigen(origen); this.AddInCache(miItemComprobante); //Falta la politica de precios } else { miItemComprobante = (ItemComprobante)this.GetByIdProductoCached(item.IdProducto)[0]; RelacionComprobanteOrigen origen = new RelacionComprobanteOrigen(item.IdComprobanteOrigen, item.OrdinalOrigen, relacion.CantidadOrigen, relacion.CantidadPendiente, relacion.CantidadDestino, item.PrecioCosto); miItemComprobante.AddOrigen(origen); miItemComprobante.CantidadUnidadOrigen = miItemComprobante.Cantidad + relacion.CantidadDestino; //Falta la politica de precios if (!relaciones.ActualizaPrecio) { decimal nuevoPrecio = (item.PrecioBruto * item.Cantidad + miItemComprobante.PrecioDeVentaBruto * miItemComprobante.CantidadUnidadOrigen) / (item.Cantidad + miItemComprobante.CantidadUnidadOrigen); miItemComprobante.PrecioDeVentaBruto = nuevoPrecio; } } } else { miItemComprobante = new ItemComprobante("STEP", this, item); this.AddInCache(miItemComprobante); } //Fin German 20120307 - Tarea 0000290 //if (miItemComprobante.Visible) /*Modificacion 08/09/2007*/ miItemComprobante.IdInstanciaOrdenReparacion = relacion.IdInstanciaOrdenReparacion; miItemComprobante.IdOrdenReparacion = relacion.IdOrdenReparacion; miItemComprobante.IdRepuestoOrdenReparacion = relacion.IdRepuestoOrdenReparacion; miItemComprobante.IdTareaRealizada = relacion.IdTareaRealizada; miItemComprobante.IdComprobantesPredecesores = relacion.IdComprobantesPredecesores + "," + relacion.IdComprobante; miItemComprobante.IdComprobantesSucesores = relacion.IdComprobantesSucesores; miItemComprobante.IdTiposComprobantesPredecesores = relacion.IdTiposComprobantesPredecesores + "," + relacion.IdTipoDeComprobante; miItemComprobante.IdTiposComprobantesSucesores = relacion.IdTiposComprobantesSucesores; miItemComprobante.OrdinalesPredecesores = relacion.OrdinalesPredecesores + "," + relacion.OrdinalOrigen; miItemComprobante.OrdinalesSucesores = relacion.OrdinalesSucesores; //German 20110905 - Tarea 0000208 //miItemComprobante.PorcentajeDescuentoSinRecalculo(porcentajeDescuento); miItemComprobante.PorcentajeDescuento = porcentajeDescuento; //Fin German 20110905 - Tarea 0000208 //Sabrina: Tarea 1075. 20110323 miItemComprobante.IdCombo = idCombo; miItemComprobante.Combo = combo; //Fin Sabrina: Tarea 1075. 20110323 //German 20120307 - Tarea 0000290 //if (!this.ContainsCached(relacion.IdProducto)) //this.AddInCache(miItemComprobante); //Fin German 20120307 - Tarea 0000290 //German 20120302 - Tarea 0000284 - Se saco del for pq agrega el ITem seña por cada item que este en la prefactura por reserva /* Silvina 20111212 - Tarea 0000232 */ //if (_comprobanteDeVenta.ProcessName().Equals("ProcesoPrevenderVenderReserva") && _comprobanteDeVenta.GetTaskName().Equals("Vender")) //{ // string idCompFac = tsa_ComprobantesReservasRelacion.GetByPk(relacion.IdComprobante).IdComprobanteFactura; // tsa_ComprobantesDetDataset.tsa_ComprobantesDetRow rowS = tsa_ComprobantesDet.GetByPk(idCompFac, 0); // if (rowS != null) // { // Productos prodSeña = new mz.erp.businessrules.Productos(rowS.IdProducto); // Item it = new Item(prodSeña); // it.SetConversion(_comprobanteDeVenta.Momento); // ItemComprobante itc = new ItemComprobante("NEW", this, it); // itc.PrecioConImpuestos = rowS.PrecioFinal * -1; // itc.CantidadUnidadOrigen = rowS.Cantidad ; // this.AddInCache(itc); // } //} /* Fin Silvina 20111212 - Tarea 0000232 */ //Fin German 20120302 - Tarea 0000284 } } //German 20120302 - Tarea 0000284 string IdComprob = string.Empty; foreach (RelacionComprobanteOrigenDestino relacion in relaciones) { IdComprob = relacion.IdComprobante; break;//Me quedo con el primero, se hace esta negrada porque la coleccion relaciones no se puede acceder por [0] } if (_comprobanteDeVenta.ProcessName().Equals("ProcesoPrevenderVenderReserva") && _comprobanteDeVenta.GetTaskName().Equals("Vender")) { string idCompFac = tsa_ComprobantesReservasRelacion.GetByPk(IdComprob).IdComprobanteFactura; tsa_ComprobantesDetDataset.tsa_ComprobantesDetRow rowS = tsa_ComprobantesDet.GetByPk(idCompFac, 0); if (rowS != null) { Productos prodSeña = null; if (!this.ComprobanteDeVenta.ListasDePrecios) { prodSeña = new mz.erp.businessrules.Productos(rowS.IdProducto); } else { prodSeña = new mz.erp.businessrules.Productos("IdProducto", rowS.IdProducto, tsh_ListasDePrecios.GetDefault().IdListaDePrecio, tsh_ListasDePrecios.GetDefault().IdListaDePrecio, this.ComprobanteDeVenta.ListasDePrecios, false); } Item it = new Item(prodSeña); it.SetConversion(_comprobanteDeVenta.Momento); ItemComprobante itc = new ItemComprobante("NEW", this, it); itc.PrecioConImpuestos = rowS.PrecioFinal * -1; itc.CantidadUnidadOrigen = rowS.Cantidad; this.AddInCache(itc); } } //Fin German 20120302 - Tarea 0000284 this.FlushCache(); }
/// <summary> /// Establece los valores por defecto de tsa_ComprobantesDetRow. /// </summary> public static tsa_ComprobantesDetDataset.tsa_ComprobantesDetRow SetRowDefaultValues(tsa_ComprobantesDetDataset.tsa_ComprobantesDetRow row) { row.IdComprobante = Util.NewStringId(); row.Ordinal = 0; row.IdEmpresa = Security.IdEmpresa; row.IdSucursal = Security.IdSucursal; row.IdTipoDeComprobante = string.Empty; row.Fecha = mz.erp.businessrules.Sistema.DateTime.Now; row.Numero = string.Empty; row.IdProducto = string.Empty; row.Cantidad = 0; row.PrecioFinal = 0; row.PrecioBruto = 0; row.PrecioNeto = 0; row.DescuentosAplicados = 0; row.BonificacionRecargoFinanciero = 0; row.BonificacionRecargoCuenta = 0; row.BonificacionRecargoProducto = 0; row.PrecioDeCosto = 0; row.ImpuestosDirectos = 0; row.ImpuestosIndirectos = 0; row.IdMonedaOrigen = string.Empty; row.IdMonedaCierre = string.Empty; row.IdCotizacionCierre = string.Empty; row.FechaCreacion = mz.erp.businessrules.Sistema.DateTime.Now; row.IdConexionCreacion = Security.IdConexion; //row.UltimaModificacion = null; row.IdConexionUltimaModificacion = Security.IdConexion; row.IdReservado = 0; row.RowId = Guid.Empty; row.SetRowIdGeneradoNull(); row.IdListaDePrecio = string.Empty; row.CoeficienteListaDePrecio = 0; row.ModoDeAplicacion = string.Empty; row.PrecioDeCostoDirectoOriginal = 0; row.PrecioDeCostoIndirectoOriginal = 0; row.Coeficiente1Original = 0; row.Coeficiente2Original = 0; row.Coeficiente3Original = 0; row.Coeficiente4Original = 0; row.Coeficiente5Original = 0; row.Coeficiente6Original = 0; row.Coeficiente7Original = 0; row.Coeficiente8Original = 0; row.Coeficiente9Original = 0; row.Coeficiente10Original = 0; row.CodigoSecundarioOriginal = string.Empty; //Sabrina: Tarea 1073. 20110323 row.IdCombo = string.Empty; row.Combo = string.Empty; //Fin Sabrina: Tarea 1073. 20110323 return(row); }
/// <summary> /// Valida un tsa_ComprobantesDetRow. /// </summary> public static bool RowIsValid(tsa_ComprobantesDetDataset.tsa_ComprobantesDetRow row) { ApplicationAssert.Check(row != null, "El argumento row no debe ser nulo.", ApplicationAssert.LineNumber); bool isValid = true; string mensaje; if (!IdComprobanteIsValid(row.IdComprobante, out mensaje)) { row.SetColumnError("IdComprobante", mensaje); isValid = false; } if (!OrdinalIsValid(row.Ordinal, out mensaje)) { row.SetColumnError("Ordinal", mensaje); isValid = false; } if (!IdEmpresaIsValid(row.IdEmpresa, out mensaje)) { row.SetColumnError("IdEmpresa", mensaje); isValid = false; } if (!IdSucursalIsValid(row.IdSucursal, out mensaje)) { row.SetColumnError("IdSucursal", mensaje); isValid = false; } if (!IdTipoDeComprobanteIsValid(row.IdTipoDeComprobante, out mensaje)) { row.SetColumnError("IdTipoDeComprobante", mensaje); isValid = false; } if (!FechaIsValid(row.Fecha, out mensaje)) { row.SetColumnError("Fecha", mensaje); isValid = false; } if (!NumeroIsValid(row.Numero, out mensaje)) { row.SetColumnError("Numero", mensaje); isValid = false; } if (!IdProductoIsValid(row.IdProducto, out mensaje)) { row.SetColumnError("IdProducto", mensaje); isValid = false; } if (!CantidadIsValid(row.Cantidad, out mensaje)) { row.SetColumnError("Cantidad", mensaje); isValid = false; } if (!PrecioFinalIsValid(row.PrecioFinal, out mensaje)) { row.SetColumnError("PrecioFinal", mensaje); isValid = false; } if (!PrecioBrutoIsValid(row.PrecioBruto, out mensaje)) { row.SetColumnError("PrecioBruto", mensaje); isValid = false; } if (!PrecioNetoIsValid(row.PrecioNeto, out mensaje)) { row.SetColumnError("PrecioNeto", mensaje); isValid = false; } if (!DescuentosAplicadosIsValid(row.DescuentosAplicados, out mensaje)) { row.SetColumnError("DescuentosAplicados", mensaje); isValid = false; } if (!BonificacionRecargoFinancieroIsValid(row.BonificacionRecargoFinanciero, out mensaje)) { row.SetColumnError("BonificacionRecargoFinanciero", mensaje); isValid = false; } if (!BonificacionRecargoCuentaIsValid(row.BonificacionRecargoCuenta, out mensaje)) { row.SetColumnError("BonificacionRecargoCuenta", mensaje); isValid = false; } if (!BonificacionRecargoProductoIsValid(row.BonificacionRecargoProducto, out mensaje)) { row.SetColumnError("BonificacionRecargoProducto", mensaje); isValid = false; } if (!PrecioDeCostoIsValid(row.PrecioDeCosto, out mensaje)) { row.SetColumnError("PrecioDeCosto", mensaje); isValid = false; } if (!ImpuestosDirectosIsValid(row.ImpuestosDirectos, out mensaje)) { row.SetColumnError("ImpuestosDirectos", mensaje); isValid = false; } if (!ImpuestosIndirectosIsValid(row.ImpuestosIndirectos, out mensaje)) { row.SetColumnError("ImpuestosIndirectos", mensaje); isValid = false; } if (!IdMonedaOrigenIsValid(row.IdMonedaOrigen, out mensaje)) { row.SetColumnError("IdMonedaOrigen", mensaje); isValid = false; } if (!IdMonedaCierreIsValid(row.IdMonedaCierre, out mensaje)) { row.SetColumnError("IdMonedaCierre", mensaje); isValid = false; } if (!IdCotizacionCierreIsValid(row.IdCotizacionCierre, out mensaje)) { row.SetColumnError("IdCotizacionCierre", mensaje); isValid = false; } if (!FechaCreacionIsValid(row.FechaCreacion, out mensaje)) { row.SetColumnError("FechaCreacion", mensaje); isValid = false; } if (!IdConexionCreacionIsValid(row.IdConexionCreacion, out mensaje)) { row.SetColumnError("IdConexionCreacion", mensaje); isValid = false; } if (!UltimaModificacionIsValid(row.UltimaModificacion, out mensaje)) { row.SetColumnError("UltimaModificacion", mensaje); isValid = false; } if (!IdConexionUltimaModificacionIsValid(row.IdConexionUltimaModificacion, out mensaje)) { row.SetColumnError("IdConexionUltimaModificacion", mensaje); isValid = false; } if (!IdReservadoIsValid(row.IdReservado, out mensaje)) { row.SetColumnError("IdReservado", mensaje); isValid = false; } if (!RowIdIsValid(row.RowId, out mensaje)) { row.SetColumnError("RowId", mensaje); isValid = false; } ; return(isValid); }
/// <summary> /// Envia los cambios del tsa_ComprobantesDetRow a la base de datos. /// </summary> public static void Update(tsa_ComprobantesDetDataset.tsa_ComprobantesDetRow row) { ApplicationAssert.Check(row != null, "El argumento row no debe ser nulo.", ApplicationAssert.LineNumber); mz.erp.dataaccess.tsa_ComprobantesDet.Update(row); }