public EstimadoVersion(Estimado estimado, decimal version) { EstimadoDetVersionDTO estDetVer; EstimadoSKUVersionDTO estSKUVer; Cabecera = new EstimadoCabVersionDTO(estimado.Cabecera); Cabecera.Version = version; Lineas = new List<EstimadoDetVersionDTO>(); foreach (var estDet in estimado.Lineas) { estDetVer = new EstimadoDetVersionDTO(estDet); estDetVer.Version = version; estDetVer.RecId = 0; Lineas.Add(estDetVer); } SKUs = new List<EstimadoSKUVersionDTO>(); foreach (var estSKU in estimado.SKUs) { estSKUVer = new EstimadoSKUVersionDTO(estSKU); estSKUVer.Version = version; estSKUVer.RecId = 0; SKUs.Add(estSKUVer); } }
public static Estimado Confirmar(EstimadoCabDTO estimadoCab, List<EstimadoDetDTO> lineas, List<EstimadoSKUDTO> skus) { using (SqlTransaction tran = dao.IniciarTransaccion()) { try { Estimado estimado = new Estimado(); estimado.Cabecera = estimadoCab; estimado.Lineas = lineas; estimado.SKUs = skus; dao.Update(estimado.Cabecera, estimado.Cabecera.RecId, tran); EstimadoCabVersionDTO cabVer = new EstimadoCabVersionDTO(estimado.Cabecera); cabVer.RecId = 0; daoVer.Create(cabVer, tran); //Elimino toda las lineas del estimado y las re-creo. daoDetalle.Delete( string.Format("PautaId = '{0}'", estimado.Cabecera.PautaId), tran); foreach (var det in estimado.Lineas) { det.RecId = 0; det.DatareaId = estimadoCab.DatareaId; det.PautaId = estimadoCab.PautaId; daoDetalle.Create(det, tran); EstimadoDetVersionDTO detVer = new EstimadoDetVersionDTO(det); detVer.Version = estimado.Cabecera.Version; detVer.RecId = 0; daoDetalleVer.Create(detVer, tran); } //Elimino toda las lineas del estimado y las re-creo. daoSKU.Delete( string.Format("PautaId = '{0}'", estimado.Cabecera.PautaId), tran); var dtSKU = BuildAllSKU(lineas); foreach (System.Data.DataRow dr in dtSKU.Rows) { var sku = new EstimadoSKUDTO(); sku.RecId = 0; sku.DatareaId = estimado.Cabecera.DatareaId; sku.PautaId = estimado.Cabecera.PautaId; if (dr["Duracion"] != DBNull.Value) sku.Duracion = Convert.ToDecimal(dr["Duracion"]); else sku.Duracion = null; sku.CantSalidas = Convert.ToDecimal(dr["CantSalidas"]); sku.IdentifAviso = Convert.ToString(dr["IdentifAviso"]); sku.IdentifSKU = Convert.ToString(dr["IdentifSKU"]); daoSKU.Create(sku, tran); EstimadoSKUVersionDTO skuVer = new EstimadoSKUVersionDTO(sku); skuVer.Version = estimado.Cabecera.Version; skuVer.RecId = 0; daoSKUVer.Create(skuVer, tran); } dao.CommitTransaccion(tran); return estimado; } catch (Exception) { dao.RollbackTransaccion(tran); throw; } } }