public override void ListenerAfterExecuteDependentTask(object sender) { ITask taskInstance = (ITask)sender; if (sender.GetType().Equals(typeof(mz.erp.businessrules.SeleccionEstadoDeItem))) { ArrayList estadoDeItems = ((SeleccionEstadoDeItem)sender).ArrayItems; LoadDataFromClassSeleccionEstadoDeItem(estadoDeItems); } if (sender.GetType().Equals(typeof(mz.erp.businessrules.comprobantes.ComprobanteDeVenta))) { ComprobanteDeVenta comprobante = (ComprobanteDeVenta)sender; string _sourceTask = comprobante.GetTaskName(); if (_sourceTask.Equals("Vender") || _sourceTask.Equals("Prevender") || _sourceTask.Equals("VenderManual") || _sourceTask.Equals("Prestar") || _sourceTask.Equals("Preprestar") || _sourceTask.Equals("Pedir")) { LoadDataFromClassComprobanteDeVenta(comprobante); } } }
//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(); }
public string GetTaskName() { return(_comprobanteDeVenta.GetTaskName()); }