public bool IsRemovable(object selectedItem)
        {
            ItemComprobante item = (ItemComprobante)selectedItem;

            string nombreProceso = this._processManager.GetProcessName();
            string nombreTarea   = this._brClass.GetTaskName();
            string colaVariable  = string.Empty;

            if (item.IdComprobanteOrigen != null && item.IdComprobanteOrigen != string.Empty)
            {
                if (item.IdTipoComprobanteOrigen != null && item.IdTipoComprobanteOrigen != string.Empty && !item.IdTipoComprobanteOrigen.Equals("OR"))
                {
                    bool      habilitaComodines = Variables.GetValueBool(nombreProceso, nombreTarea, "Emision.Editar.Items.HabilitaItemComodin");
                    string    comodines         = Variables.GetValueString(nombreProceso, nombreTarea, "Emision.Editar.Items.ListaItemComodin");
                    ArrayList aux = systemframework.Util.Parse(comodines, ",");


                    if (habilitaComodines && aux.Contains(item.Codigo))
                    {
                        colaVariable = "Emision.Step.Delete.ItemComodin";
                    }
                    else
                    {
                        colaVariable = "Emision.Step.Delete.Items";
                    }
                    return(Variables.GetValueBool(nombreProceso, nombreTarea, colaVariable));
                }
            }

            return(item.AllowEdit);
        }
Beispiel #2
0
    /*Modificado para Filtrar Los No Visibles en otra Coleccion*/
    private void AddItem(ItemComprobante item)
    {
        if ((this.Contains(item)) && false)
        {
            ItemComprobante itemCargado = this.Get(item.IdProducto);
            decimal         valorOrigen = itemCargado.CantidadUnidadOrigen + item.CantidadUnidadOrigen;
            itemCargado.CantidadUnidadOrigen = valorOrigen;
        }
        else
        if ((this.ContainsNoVisible(item)) && false)
        {
            ItemComprobante itemCargado = this.GetItemNoVisible(item.IdProducto);
            decimal         valorOrigen = itemCargado.CantidadUnidadOrigen + item.CantidadUnidadOrigen;
            itemCargado.CantidadUnidadOrigen = valorOrigen;
        }
        else
        {
            if (item.Visible)
            {
                item.Ordinal = this.GetOrdinal();
                List.Add(item);
                this.RefrescarBonificaciones();
            }
            else
            {
                item.Ordinal = this.GetOrdinal();
                this._itemsNoVisibles.Add(item);
            }
        }

        this._isDirtyItems  = true;
        item.OnRecalcItem  += new ItemComprobante.RecalcularItem(this.EscuchoRecalculo);
        item.OnRefreshItem += new ItemComprobante.RefrescarItem(this.EscuchoRefresco);
    }
        public void AddItem(object sender)
        {
            Item            item            = (Item)sender;
            ItemComprobante itemComprobante = new ItemComprobante("NEW", this.Items, item);

            this.Items.Add(itemComprobante);
        }
        private EstadoItem CreateItem(ItemComprobante item)
        {
            //German 20120302 -  Tarea 0000247
            EstadoItem miitem = new EstadoItem(item);

            //Fin German 20120302 -  Tarea 0000247
            miitem.IdProducto                = item.IdProducto;
            miitem.Codigo                    = item.Codigo;
            miitem.Descripcion               = item.Descripcion;
            miitem.DescripcionLarga          = item.DescripcionLarga;
            miitem.TieneDescripcionDetallada = item.TieneDescripcionPersonalizada;
            miitem.Cantidad                  = item.Cantidad;
            miitem.FechaDeEntrega            = mz.erp.businessrules.Sistema.DateTime.Now;
            EstadosCollection estadosCol = (new EstadosCollection()).GenerateFormaDeEntrega();
            string            id         = estadosCol.KeyOfValue(_estadoItemDefault);

            miitem.IdEstado = id;
            miitem.Ordinal  = item.Ordinal;
            miitem.Visible  = item.Visible;
            miitem.IdTipoDeComprobanteOrigen = item.ItemsComprobantes.ComprobanteDeVenta.TipoComprobanteDestino;
            miitem.IdComprobanteOrigen       = item.ItemsComprobantes.ComprobanteDeVenta.IdComprobante;

            // ---- Matias - Tarea 204 - 20090722
            miitem.CampoAuxiliar1 = item.CampoAuxiliar1;
            miitem.CampoAuxiliar2 = item.CampoAuxiliar2;
            miitem.CampoAuxiliar3 = item.CampoAuxiliar3;
            miitem.CampoAuxiliar4 = item.CampoAuxiliar4;
            miitem.CampoAuxiliar5 = item.CampoAuxiliar5;
            miitem.CampoAuxiliar6 = string.Empty;
            miitem.Observaciones  = string.Empty;
            // ---- FinMatias

            return(miitem);
        }
        public bool IsEditable(object selectedItem, string Propiedad)
        {
            if (Propiedad.Equals("IdListaDePrecios") && !_listaDePreciosHabilitadas)
            {
                return(false);
            }
            ItemComprobante item = (ItemComprobante)selectedItem;


            string nombreProceso = this._processManager.GetProcessName();
            string nombreTarea   = this._comprobanteDeVenta.GetTaskName();
            string colaVariable  = string.Empty;

            bool      habilitaComodines = Variables.GetValueBool(nombreProceso, nombreTarea, "Emision.Editar.Items.HabilitaItemComodin");
            string    comodines         = Variables.GetValueString(nombreProceso, nombreTarea, "Emision.Editar.Items.ListaItemComodin");
            ArrayList aux = systemframework.Util.Parse(comodines, ",");


            if (Propiedad.Equals("CantidadUnidadOrigen"))
            {
                if (item.IdComprobanteOrigen != null && item.IdComprobanteOrigen != string.Empty)
                {
                    if (item.IdTipoComprobanteOrigen != null && item.IdTipoComprobanteOrigen != string.Empty && !item.IdTipoComprobanteOrigen.Equals("OR"))
                    {
                        if (habilitaComodines && aux.Contains(item.Codigo))
                        {
                            colaVariable = "Emision.Editar.Step.ItemComodin." + Propiedad;
                        }
                        else
                        {
                            colaVariable = "Emision.Editar.Step." + Propiedad;
                        }
                        bool result1 = Variables.GetValueBool(nombreProceso, nombreTarea, colaVariable);
                        return(item.AllowEdit && result1);
                    }
                }
            }

            //Sabrina: Tarea 1072. 20110323
            if (Propiedad.Equals("PorcentajeDescuento"))
            {
                if (item.IdCombo != null && !item.IdCombo.Equals(string.Empty)) //Es parte de combo
                {
                    Propiedad = "PorcentajeDescuentoCombo";
                }
            }
            //Fin Sabrina: Tarea 1072. 20110323

            if (habilitaComodines && aux.Contains(item.Codigo))
            {
                colaVariable = "Emision.Editar.ItemComodin." + Propiedad;
            }
            else
            {
                colaVariable = "Emision.Editar." + Propiedad;
            }
            bool result = Variables.GetValueBool(nombreProceso, nombreTarea, colaVariable);

            return(item.AllowEdit && result);            //&& (!habiltaComodines || (habiltaComodines && aux.Contains(item.Codigo)));
        }
Beispiel #6
0
 public virtual void Add(ItemComprobante item)
 {
     AddItem(item);
     this.IsDirty = true;
     this.RefrescarBonificaciones();
     if (OnRecalcItems != null)
     {
         this.OnRecalcItems(this, new System.EventArgs());
     }
 }
Beispiel #7
0
    /// <summary>
    /// Agrega una nueva instancia del item a la coleccion de items.
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="item"></param>
    public virtual void Add(ComprobanteDeVenta sender, ItemComprobante item)
    {
        this._comprobanteDeVenta = sender;
        this.AddItem(item);

        if (OnRecalcItems != null)
        {
            this.OnRecalcItems(this, new System.EventArgs());
        }
    }
Beispiel #8
0
 public bool Contains(ItemComprobante item)
 {
     foreach (ItemComprobanteCompra it in this.List)
     {
         if (it.IdProducto.Equals(item.IdProducto))
         {
             return(true);
         }
     }
     return(false);
 }
Beispiel #9
0
 /// <summary>
 /// Sobrecargado. Elimina un item de la coleccion
 /// </summary>
 /// <param name="item"></param>
 public virtual void Remove(ItemComprobante item)
 {
     Remove((object)item);
     this._isDirtyItems = true;
     this.IsDirty       = true;
     this.RefrescarBonificaciones();
     if (OnRecalcItems != null)
     {
         this.OnRecalcItems(this, new System.EventArgs());
     }
 }
Beispiel #10
0
 private bool ContainsNoVisible(ItemComprobante item)
 {
     foreach (ItemComprobante itemAux in this._itemsNoVisibles)
     {
         if (item.IdProducto.Equals(itemAux.IdProducto))
         {
             return(true);
         }
     }
     return(false);
 }
Beispiel #11
0
 private bool Contains(ItemComprobante item)
 {
     foreach (ItemComprobante it in this.List)
     {
         if (it.IdProducto == item.IdProducto)
         {
             return(true);
         }
     }
     return(false);
 }
Beispiel #12
0
        private bool EstaReservado(ItemComprobante item, long IdOrdenReparacion, long IdInstanciaOR)
        {
            RepuestosOrdenreparacion repuestos = (RepuestosOrdenreparacion)_repuestosOR[IdInstanciaOR];

            foreach (Repuesto rep in repuestos)
            {
                if (rep.IdProducto.Equals(item.IdProducto) && repuestos.IdOrdenReparacion.Equals(IdOrdenReparacion) &&
                    item.CantidadUnidadOrigen.Equals(rep.CantidadEntregada + rep.CantidadReservada))
                {
                    return(rep.CantidadReservada > 0);
                }
            }
            return(false);
        }
Beispiel #13
0
 private long GetInstanciaORAsociada(ItemComprobante item, long IdOrdenReparacion)
 {
     foreach (RepuestosOrdenreparacion repuestos in _repuestosOR.Values)
     {
         foreach (Repuesto rep in repuestos)
         {
             if (rep.IdProducto.Equals(item.IdProducto) && repuestos.IdOrdenReparacion.Equals(IdOrdenReparacion) &&
                 item.CantidadUnidadOrigen.Equals(rep.CantidadEntregada + rep.CantidadReservada))
             {
                 return(repuestos.IdInstanciaOrdenReparacion);
             }
         }
     }
     return(long.MinValue);
 }
        private void FillLoadData(ItemComprobante item, string TipoDeComprobanteDestino, RelacionesComprobanteDeCompraOrigenDestino relaciones)
        {
            //Tomar el XML con lo guardado
            switch (this._state)
            {
            case "NEW":
            {
                DatasetComprobante = new tpu_ComprobantesExDataset();
                try
                {
                    DatasetComprobante.ReadXml(mz.erp.systemframework.Util.ResourcePath() + "/temp/pedido" + Security.IdUsuario + ".xml");
                    FillStaticData("EDIT", item, null, null);
                }
                catch (Exception e)
                {
                    DatasetComprobante = mz.erp.businessrules.tpu_ComprobantesEx.NewDataSet();
                    FillStaticData("NEW", item, null, null);
                }



                break;
            }

            case "STEP":
            {
                this.DatasetComprobante = new mz.erp.commontypes.data.tpu_ComprobantesExDataset();

                this.IdResponsable = relaciones.IdResponsable;


                this.IdProveedor = relaciones.IdProveedor;

                this.TipoComprobanteDestino = TipoDeComprobanteDestino;

                this.FechaComprobante = System.DateTime.Now;
                this.IdComprobante    = Util.NewStringId();

                this.Numero = string.Empty;
                this.Items  = new ItemsComprobantesCompra("STEP", this, relaciones);
                this.Total  = 0;
                break;
                break;
            }
            }
            SetEditablesProperty();
        }
        public void AddItems(object sender)
        {
            this._brClass.OnRecalcularComprobante -= new mz.erp.businessrules.comprobantes.ComprobanteDeVenta.RecalcularComprobante(_brClass_OnRecalcularComprobante);
            this._brClass.OnRefrescarComprobante  -= new mz.erp.businessrules.comprobantes.ComprobanteDeVenta.RefrescarComprobante(_brClass_OnRecalcularComprobante);
            ArrayList items = (ArrayList)sender;

            this.Items.ClearCache();
            foreach (Item item in items)
            {
                ItemComprobante itemComprobante = new ItemComprobante("NEW", this.Items, item);
                this.Items.AddInCache(itemComprobante);
            }
            this.Items.FlushCache();
            this._brClass.OnRecalcularComprobante += new mz.erp.businessrules.comprobantes.ComprobanteDeVenta.RecalcularComprobante(_brClass_OnRecalcularComprobante);
            this._brClass.OnRefrescarComprobante  += new mz.erp.businessrules.comprobantes.ComprobanteDeVenta.RefrescarComprobante(_brClass_OnRecalcularComprobante);
            _brClass_OnRecalcularComprobante(this, new EventArgs());
        }
        public bool IsEditable(object selectedItem, string Propiedad)
        {
            ItemComprobante item          = (ItemComprobante)selectedItem;
            string          nombreProceso = this._processManager.GetProcessName();
            string          nombreTarea   = this._brClass.GetTaskName();

            string    colaVariable      = string.Empty;
            bool      habilitaComodines = Variables.GetValueBool(nombreProceso, nombreTarea, "Emision.Editar.Items.HabilitaItemComodin");
            string    comodines         = Variables.GetValueString(nombreProceso, nombreTarea, "Emision.Editar.Items.ListaItemComodin");
            ArrayList aux = systemframework.Util.Parse(comodines, ",");


            if (Propiedad.Equals("CantidadUnidadOrigen"))
            {
                if (item.IdComprobanteOrigen != null && item.IdComprobanteOrigen != string.Empty)
                {
                    if (item.IdTipoComprobanteOrigen != null && item.IdTipoComprobanteOrigen != string.Empty && !item.IdTipoComprobanteOrigen.Equals("OR"))
                    {
                        if (habilitaComodines && aux.Contains(item.Codigo))
                        {
                            colaVariable = "Emision.Editar.Step.ItemComodin." + Propiedad;
                        }
                        else
                        {
                            colaVariable = "Emision.Editar.Step." + Propiedad;
                        }
                        bool result1 = Variables.GetValueBool(nombreProceso, nombreTarea, colaVariable);
                        return(item.AllowEdit && result1);
                    }
                }
            }

            if (habilitaComodines && aux.Contains(item.Codigo))
            {
                colaVariable = "Emision.Editar.ItemComodin." + Propiedad;
            }
            else
            {
                colaVariable = "Emision.Editar." + Propiedad;
            }
            bool result = Variables.GetValueBool(nombreProceso, nombreTarea, colaVariable);

            return(item.AllowEdit && result);            //&& (!habiltaComodines || (habiltaComodines && aux.Contains(item.Codigo)));
        }
Beispiel #17
0
        private void EliminarRepuesto(ItemComprobante item, long IdOrdenReparacion, long IdInstanciaOR)
        {
            RepuestosOrdenreparacion repuestos = (RepuestosOrdenreparacion)_repuestosOR[IdInstanciaOR];
            Repuesto aux = null;

            foreach (Repuesto rep in repuestos)
            {
                if (rep.IdProducto.Equals(item.IdProducto) && repuestos.IdOrdenReparacion.Equals(IdOrdenReparacion) &&
                    item.CantidadUnidadOrigen.Equals(rep.CantidadEntregada + rep.CantidadReservada))
                {
                    aux = rep;
                    break;
                }
            }
            if (aux != null)
            {
                repuestos.Remove(aux);
            }
        }
        private void Init(string Action, ItemComprobante item, string momento, string idTipoDeComprobanteDestino, RelacionesComprobanteDeCompraOrigenDestino relaciones)
        {
            this.Momento = momento;
            switch (Action.ToUpper())
            {
            case "NEW":
            {
                this._state = "NEW";
                FillLoadData(item, null, null);
                break;
            }

            case "STEP":
            {
                this._state = "STEP";
                FillLoadData(null, idTipoDeComprobanteDestino, relaciones);
                break;
            }
            }
        }
Beispiel #19
0
    private void FillEditData()
    {
        //tsa_ComprobantesDetDataset data =  (tsa_ComprobantesDetDataset)mz.erp.businessrules.tsa_ComprobantesDet.GetList( this._comprobanteDeVenta.IdComprobante,DateTime.MinValue,null,null, long.MinValue);
        tsa_ComprobantesDetDataset data = (tsa_ComprobantesDetDataset)mz.erp.businessrules.tsa_ComprobantesDet.GetByPk(this._comprobanteDeVenta.IdComprobante);

        System.Data.DataTable table = data.Tables[0];

        foreach (System.Data.DataRow row in table.Rows)
        {
            Productos miProducto = new mz.erp.businessrules.Productos((string)row["IdProducto"]);

            Item item = new Item(miProducto);
            item.IdProducto                    = miProducto.IdProducto;
            item.Cantidad                      = (decimal)row["Cantidad"];
            item.PrecioNeto                    = (decimal)row["PrecioNeto"];
            item.PrecioBruto                   = (decimal)row["PrecioBruto"];
            item.Descripcion                   = miProducto.Descripcion;
            item.DescripcionCorta              = miProducto.DescripcionCorta;
            item.DescripcionLarga              = miProducto.DescripcionLarga;
            item.BonificacionRecargoProducto   = (decimal)row["BonificacionRecargoProducto"];
            item.PrecioCostoMonedaReferencia   = (decimal)row["PrecioDeCosto"];
            item.BonificacionAplicada          = (decimal)row["DescuentosAplicados"];
            item.BonificacionRecargoFinanciero = (decimal)row["BonificacionRecargoFinanciero"];
            item.OrdinalDestino                = (long)row["Ordinal"];

            /*Nuevo medidas German*/
            item.SetConversion(this._comprobanteDeVenta.Momento);
            item.IdListaDePrecios               = (string)row["IdListaDePrecio"];
            item.CoeficienteListaDePrecios      = (decimal)row["CoeficienteListaDePrecio"];
            item.ModoDeAplicacionListaDePrecios = (string)row["ModoDeAplicacion"];



            ItemComprobante miItemComprobante = new ItemComprobante("EDIT", this, item);
            //if (miItemComprobante.Visible)
            this.Add(miItemComprobante);

            //Hasta Aca
            //this.Add(new ItemComprobante("EDIT",this, row));
        }
    }
 private void ProcessItemComprobante(ArrayList lista)
 {
     _comprobanteDeVenta.Items.ClearCache();
     foreach (mz.erp.businessrules.comprobantes.Item item in lista)
     {
         //Sabrina: Tarea 1071. 20110322
         if (item.EsCombo)
         {
             tsh_CombosDetDataset.tsh_CombosDetDataTable tableProductosCombo = tsh_CombosDet.GetByIdProducto(item.IdProducto).tsh_CombosDet;
             for (int i = 0; i < item.Cantidad; i++)
             {
                 foreach (tsh_CombosDetDataset.tsh_CombosDetRow rowPC in tableProductosCombo.Rows)
                 {
                     Productos productoC = new Productos(rowPC, item.IdListaDePrecios, item.IdListaDePreciosDefault, this.ListaDePreciosHabilitadas);
                     Item      itemPC    = new Item(productoC);
                     itemPC.SetConversion(string.Empty);
                     itemPC.Conversion.Items.Get(0).ValorSinConvertir = rowPC.Cantidad;
                     itemPC.PorcentajeDescuento = productoC.DescuentoProcentualProductoCombo;
                     mz.erp.businessrules.comprobantes.ItemComprobante itemComprobantePC = new ItemComprobante("NEW", _comprobanteDeVenta.Items, itemPC);
                     itemComprobantePC.IdCombo = item.IdProducto;
                     itemComprobantePC.Combo   = item.Descripcion;
                     _comprobanteDeVenta.Items.AddInCache(itemComprobantePC);
                 }
             }
         }
         else
         {
             mz.erp.businessrules.comprobantes.ItemComprobante _miItemComprobante = new ItemComprobante("NEW", _comprobanteDeVenta.Items, item);
             _comprobanteDeVenta.Items.AddInCache(_miItemComprobante);
         }
         //Fin Sabrina: Tarea 1071. 20110322
     }
     _comprobanteDeVenta.Items.FlushCache();
     if (AddItemsChanged != null)
     {
         AddItemsChanged(this, new EventArgs());
     }
 }
Beispiel #21
0
        public ItemComprobanteCompra(ItemComprobante item, ItemsComprobantesCompra items)
        {
            Productos  miProducto = new mz.erp.businessrules.Productos("CODIGO", item.Codigo);
            ItemCompra itemCompra = new mz.erp.businessrules.Comprobantes_de_Compra.ItemComprobanteCompra.ItemCompra();

            itemCompra.IdProducto = miProducto.IdProducto;
            itemCompra.Cantidad   = 0;

            itemCompra.Descripcion = miProducto.Descripcion;

            itemCompra.PrecioCosto = miProducto.PrecioDeCosto;

            itemCompra.Codigo = miProducto.Codigo;


            this.IdProducto                = item.IdProducto;
            this.ItemsComprobantes         = items;
            this._descripcion              = item.Descripcion;
            this._descripcionOriginal      = item.Descripcion;
            this._descripcionCorta         = itemCompra.DescripcionCorta;
            this._descripcionLarga         = item.DescripcionLarga;
            this._descripcionLargaOriginal = item.DescripcionLarga;
            this._codigo = itemCompra.Codigo;


            this._cantidad = Math.Abs(item.Cantidad);


            this._precioDeCosto = itemCompra.PrecioCosto;

            this._idComprobanteOrigen     = null;
            this._ordinalOrigen           = long.MinValue;
            this._idTipoComprobanteOrigen = null;
            this._ordinal = this.ItemsComprobantes.Count;

            //this._impuestos = new Impuestos("NEW", this );
        }
Beispiel #22
0
        /// <summary>
        /// Obtiene una nueva instancia de impuesto
        /// </summary>
        /// <param name="action">Valores NEW or EDIT</param>
        /// <param name="itemComprobante"></param>
        ///

        public Impuestos(string action, ItemComprobante itemComprobante)
        {
            _itemComprobante = itemComprobante;
            Init(action);
        }
 public EstadoItem(ItemComprobante item)
 {
     _item = item;
 }
 public ComprobanteDeCompra(string action, ItemComprobante item, string momento, string idTipoComprobanteDestino)
 {
     Init(action, item, null, idTipoComprobanteDestino, null);
 }
 public ComprobanteDeCompra(string action, ItemComprobante item, string momento, string idTipoComprobanteDestino, RelacionesComprobanteDeCompraOrigenDestino relaciones)
 {
     Init(action, item, momento, idTipoComprobanteDestino, relaciones);
 }
Beispiel #26
0
 public virtual void AddInCache(ItemComprobante item)
 {
     this._itemsCached.Add(item);
 }
        private void FillStaticData(string Action, ItemComprobante item, string idTipoDeComprobanteDestino, RelacionesComprobanteDeCompraOrigenDestino relaciones)
        {
            switch (Action.ToUpper())
            {
            case "NEW":
            {
                this.IdComprobante             = mz.erp.systemframework.Util.NewStringId();
                this.IdResponsable             = Security.IdPersona;
                this.IdProveedor               = Variables.GetValueString("Compras.Pedidos.ProveedorPorDefault");
                this.FechaComprobante          = DateTime.Now;
                this._itemsComprobantesCompras = new ItemsComprobantesCompra("New", this);
                //this.IdComprobanteDestino = "CPE";
                this._tipoComprobanteDestino = "CPE";
                //this.TipoComprobanteDestino = mz.erp.businessrules.tsy_TiposDeComprobantes.GetByPk(this.IdComprobanteDestino).Descripcion;

                if (item != null)
                {
                    ItemComprobanteCompra itemCompra = new ItemComprobanteCompra(item, this._itemsComprobantesCompras);
                    this._itemsComprobantesCompras.Add(itemCompra);
                }



                break;
            }

            case "EDIT":
            {
                tpu_ComprobantesExDataset.tpu_ComprobantesDataTable tableComp = this.DatasetComprobante.tpu_Comprobantes;
                tpu_ComprobantesExDataset.tpu_ComprobantesRow       rowComp   = (tpu_ComprobantesExDataset.tpu_ComprobantesRow)tableComp.Rows[0];

                this.IdComprobante        = rowComp.IdComprobante;
                this.IdComprobanteDestino = rowComp.IdComprobante;
                this.IdResponsable        = rowComp.IdResponsable;
                this.FechaComprobante     = rowComp.Fecha;

                this.TipoComprobanteDestino = rowComp.IdTipoDeComprobante;
                this.IdProveedor            = rowComp.IdProveedor;
                this.Total = rowComp.Total;
                this._itemsComprobantesCompras = new ItemsComprobantesCompra("New", this);
                ItemComprobanteCompra itemCompra;
                tpu_ComprobantesExDataset.tpu_ComprobantesDetDataTable tableDet = this.DatasetComprobante.tpu_ComprobantesDet;
                foreach (tpu_ComprobantesExDataset.tpu_ComprobantesDetRow rowDet in tableDet.Rows)
                {
                    itemCompra = new ItemComprobanteCompra(rowDet, this._itemsComprobantesCompras);
                    this._itemsComprobantesCompras.Add(itemCompra);
                }
                if (item != null)
                {
                    if (!this._itemsComprobantesCompras.Contains(item))
                    {
                        itemCompra = new ItemComprobanteCompra(item, this._itemsComprobantesCompras);
                        this._itemsComprobantesCompras.Add(itemCompra);
                    }
                }



                break;
            }
            }
        }
Beispiel #28
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();
    }