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);
                }
            }
        }
Beispiel #2
0
    //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());
 }