public static tfi_InstanciasCajaExDataset.tfi_InstanciasCajaRow AbrirCajaConSaldo(string IdCaja, string IdInstanciaCaja, bool poseeValores)
        {
            string IdTransaction = dataaccess.PoolTransaction.BeginTransaction();

            try
            {
                tfi_InstanciasCajaExDataset data = new tfi_InstanciasCajaExDataset();

                tfi_InstanciasCajaExDataset.tfi_InstanciasCajaRow row = mz.erp.dataaccess.tfi_InstanciasCaja.NewRowEx();
                SetRowDefaultValues(row);
                row.IdCaja = IdCaja;
                data.tfi_InstanciasCaja.LoadDataRow(row.ItemArray, false);
                TransferenciaValores _transferencia = new TransferenciaValores();
                mz.erp.commontypes.ApplicationLog.WriteInfo("Apertura de la Caja " + IdCaja + " Responsable " + Security.IdUsuario + ". Instancia " + Convert.ToString(IdInstanciaCaja));
                if (poseeValores)
                {
                    //realizar la transferencia entre esta instancia row y la caja anterior
                    mz.erp.commontypes.ApplicationLog.WriteInfo("La caja Posee Valores");
                    _transferencia.Init("AbrirCaja", "ProcesoAbrirCaja");
                    _transferencia.KeyValueCajaOrigen  = IdInstanciaCaja;
                    _transferencia.KeyValueCajaDestino = row.IdInstanciaCaja;
                    _transferencia.SearchValoresDisponibles();
                    mz.erp.commontypes.ApplicationLog.WriteInfo("Valores Disponibles " + _transferencia.ValoresDisponibles.Count.ToString());
                    _transferencia.TransferirTodo();
                    _transferencia.Commit();
                }
                else
                {
                    mz.erp.commontypes.ApplicationLog.WriteInfo("La caja NO Posee Valores");
                }
                mz.erp.dataaccess.tfi_InstanciasCaja.Update(data.tfi_InstanciasCaja, IdTransaction);
                if (poseeValores)
                {
                    string  IdInstanciaCajaDestino = Convert.ToString(data.tfi_InstanciasCaja.Rows[0]["IdInstanciaCaja"]);
                    DataSet dataValoresD           = _transferencia.DataValoresDestino;
                    if (dataValoresD.Tables.Count > 0)
                    {
                        foreach (DataRow rowV in dataValoresD.Tables[0].Rows)
                        {
                            rowV["IdInstanciaCaja"] = IdInstanciaCajaDestino;
                        }
                    }
                    DataSet dataAux = _transferencia.DataMovimientosD;
                    if (dataAux.Tables.Count > 0)
                    {
                        foreach (DataRow rowMD in dataAux.Tables[0].Rows)
                        {
                            rowMD["IdInstanciaCaja"] = IdInstanciaCajaDestino;
                        }
                    }
                    dataAux = _transferencia.DataPagosMovimientosD;
                    if (dataAux.Tables.Count > 0)
                    {
                        foreach (DataRow rowPMD in dataAux.Tables[0].Rows)
                        {
                            rowPMD["IdInstanciaCaja"] = IdInstanciaCajaDestino;
                        }
                    }
                    _transferencia.Flush(IdTransaction);
                }

                PoolTransaction.Commit(IdTransaction);
                return(row);
            }
            catch (Exception e)
            {
                mz.erp.commontypes.ApplicationLog.WriteInfo("EXCEPCION en la Apertura de la Caja " + IdCaja + " Responsable " + Security.IdUsuario + ". Instancia " + Convert.ToString(IdInstanciaCaja));
                PoolTransaction.RollBack(IdTransaction);
                throw e;
                return(null);
            }
        }
Exemple #2
0
 public void Init()
 {
     _transferencia = new TransferenciaValores();
     _transferencia.Init(this.GetTaskName(), this._processParent.Process.ProcessName);
     _transferencia.OnObjectHasChanged += new EventHandler(_transferencia_OnObjectHasChanged);
 }