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); } }
public void TransferirTodo() { _transferencia.TransferirTodo(); }