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);
        }
        private void LoadDataFromClassSeleccionEstadoDeItem(ArrayList estadodeItems)
        {
            this.ArrayItems.Clear();
            EstadosCollection estadosentrega = new EstadosCollection().GenerateFormaDeEntrega();
            string            idBuscado      = estadosentrega.KeyOfValue("Enviar");

            foreach (mz.erp.businessrules.EstadoItem unestadoItem in estadodeItems)
            {
                if (unestadoItem.IdEstado == idBuscado)                 //"1" es el enviar
                {
                    //German 20120302 -  Tarea 0000247
                    EstadoItem miitem = new EstadoItem(unestadoItem.Item);
                    //Fin German 20120302 -  Tarea 0000247
                    miitem.IdProducto       = unestadoItem.IdProducto;
                    miitem.Codigo           = unestadoItem.Codigo;
                    miitem.Descripcion      = unestadoItem.Descripcion;
                    miitem.DescripcionLarga = unestadoItem.DescripcionLarga;
                    miitem.Cantidad         = unestadoItem.Cantidad;
                    miitem.FechaDeEntrega   = unestadoItem.FechaDeEntrega;
                    miitem.IdEstado         = unestadoItem.IdEstado;
                    miitem.Ordinal          = unestadoItem.Ordinal;
                    this.ArrayItems.Add(miitem);
                }
            }
        }
        /// <summary>
        /// asigna un valor determinado a todos los itmes
        /// </summary>
        /// <param name="str">debe ser un str que exista en EstadosCollecion</param>
        public void AsignarEstadoAItems(string str)
        {
            //obtengo el nuevo id para los items
            EstadosCollection estadosCol = (new EstadosCollection()).GenerateFormaDeEntrega();
            string            id         = estadosCol.KeyOfValue(str);

            //le seteo ese id a cada item
            foreach (EstadoItem item in ArrayItems)
            {
                item.IdEstado = id;
            }
            if (ObjectHasChanged != null)
            {
                this.ObjectHasChanged(this, new EventArgs());
            }
        }
        public void LoadDataFromClassSeleccionEstadoDeItem(ArrayList estadodeItems)
        {
            this.Clear();
            System.Collections.Hashtable tupla          = new Hashtable();
            EstadosCollection            estadosEntrega = new EstadosCollection().GenerateFormaDeEntrega();

            foreach (Estado _estado in estadosEntrega)
            {
                string _tarea = Variables.GetValueString("Momentos." + this.GetTaskName() + "." + _estado.Descripcion + ".TareaAsociada");
                if (!_tarea.Equals(string.Empty))
                {
                    tupla.Add(_estado.IdItem, _tarea);
                }
            }

            foreach (EstadoItem unestadoItem in estadodeItems)
            {
                int    index         = _conjunto.IndexOf(unestadoItem.IdEstado, unestadoItem.FechaDeEntrega);
                string _nombreestado = estadosEntrega.GetValue(unestadoItem.IdEstado);
                string _subtaskName  = string.Empty;
                if (tupla.ContainsKey(unestadoItem.IdEstado))
                {
                    _subtaskName = (string)tupla[unestadoItem.IdEstado];
                }
                if (_subtaskName != null && _subtaskName != string.Empty)
                {
                    if (index != -1)
                    {
                        ((ColeccionDatosComprobantesEntrega)_conjunto[index]).Add(unestadoItem);
                        ((ColeccionDatosComprobantesEntrega)_conjunto[index]).FechaEntrega     = unestadoItem.FechaDeEntrega;
                        ((ColeccionDatosComprobantesEntrega)_conjunto[index]).IdEstado         = unestadoItem.IdEstado;
                        ((ColeccionDatosComprobantesEntrega)_conjunto[index]).Estado           = _nombreestado;
                        ((ColeccionDatosComprobantesEntrega)_conjunto[index]).TaskName         = _subtaskName;
                        ((ColeccionDatosComprobantesEntrega)_conjunto[index]).IdResponsable    = this._idResponsable;
                        ((ColeccionDatosComprobantesEntrega)_conjunto[index]).CodigoCuenta     = this._codigoCuenta;
                        ((ColeccionDatosComprobantesEntrega)_conjunto[index]).InfoCliente      = this._infoCliente;
                        ((ColeccionDatosComprobantesEntrega)_conjunto[index]).FechaConvenida   = this._fechaConvenida;
                        ((ColeccionDatosComprobantesEntrega)_conjunto[index]).FechaVencimiento = this._fechaVencimiento;
                    }
                    else
                    {
                        ColeccionDatosComprobantesEntrega _nuevogrupo = new ColeccionDatosComprobantesEntrega();
                        _nuevogrupo.Add(unestadoItem);
                        _nuevogrupo.FechaEntrega     = unestadoItem.FechaDeEntrega;
                        _nuevogrupo.IdEstado         = unestadoItem.IdEstado;
                        _nuevogrupo.Estado           = _nombreestado;
                        _nuevogrupo.TaskName         = _subtaskName;
                        _nuevogrupo.IdResponsable    = this._idResponsable;
                        _nuevogrupo.CodigoCuenta     = this._codigoCuenta;
                        _nuevogrupo.InfoCliente      = this._infoCliente;
                        _nuevogrupo.FechaConvenida   = this._fechaConvenida;
                        _nuevogrupo.FechaVencimiento = this._fechaVencimiento;
                        _conjunto.Add(_nuevogrupo);
                    }
                }
            }

            foreach (ColeccionDatosComprobantesEntrega _datostarea in _conjunto)
            {
                mz.erp.businessrules.comprobantes.ComprobanteDeEntrega _compEntrega = new mz.erp.businessrules.comprobantes.ComprobanteDeEntrega();
                _compEntrega.SetTaskName(_datostarea.TaskName);
                _compEntrega.SetProcessManagerParent(this.GetProcessManagerParent());
                _compEntrega.Init();
                _compEntrega.OnTaskAfterExecute += new System.EventHandler(this.ListenerAfterExecuteSubTask);
                _compEntrega.OnTaskAfterFlush   += new System.EventHandler(this.ListenerAfterFlushSubTask);

                this.AddTask(_compEntrega);
            }
            base.SpreadingListenerAfterExecuteDependentTask(this);
        }